:root {
  --paper: #F9E7C9;
  --ivory: #F3E5C7;
  --sand: #E8D7C3;
  --mist: #EDEDED;
  --ink: #1D1D1D;
  --muted: rgba(29, 29, 29, .64);
  --white: #EDEDED;
  --gold: #E8D7C3;
  --line: rgba(29, 29, 29, .18);
  --shadow: 0 24px 70px rgba(29, 29, 29, .12);
  --script: "Italianno", "Allura", "Segoe Script", cursive;
  --display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --sans: "Manrope", Montserrat, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
body::before { content: ""; position: fixed; inset: 0; background: url("/assets/images/paper-texture.jpg") repeat; opacity: .14; pointer-events: none; z-index: 1; mix-blend-mode: multiply; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; background: var(--ink); color: white; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header { position: fixed; z-index: 50; top: 0; left: 0; width: 100%; background: rgba(249, 231, 201, .9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--line); transition: background .35s ease, box-shadow .35s ease, transform .35s ease; }
.site-header.is-scrolled { background: rgba(249, 231, 201, .95); backdrop-filter: blur(20px); box-shadow: 0 2px 10px rgba(29,29,29,.08); }
.header-inner { width: min(1320px, calc(100% - 56px)); height: 92px; margin: auto; display: flex; align-items: center; justify-content: space-between; }
.brand { display: flex; align-items: center; min-width: 190px; }
.brand img { width: 178px; height: auto; }

.main-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 34px); font-size: .83rem; letter-spacing: .06em; }
.main-nav > a:not(.button) { position: relative; }
.main-nav > a:not(.button)::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 100%; height: 1px; background: var(--ink); transform: scaleX(0); transform-origin: right; transition: transform .25s; }
.main-nav > a:hover::after, .main-nav > a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; border: 0; background: transparent; width: 42px; height: 42px; padding: 10px; }
.menu-toggle span:not(.sr-only) { display: block; height: 1px; background: var(--ink); margin: 7px 0; transition: transform .25s; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; background: var(--ink); color: var(--white); border: 1px solid var(--ink); border-radius: 0; font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; transition: background .25s, color .25s, transform .25s; }
.button:hover { background: transparent; color: var(--ink); transform: translateY(-2px); }
.button-small { min-height: 44px; padding-inline: 20px; }
.button-outline { background: transparent; color: var(--ink); }
.button-outline:hover { background: var(--ink); color: var(--white); }
.button-light { background: var(--white); color: var(--ink); border-color: var(--white); }
.button-light:hover { color: var(--white); border-color: var(--white); }
.text-link { display: inline-flex; align-items: center; gap: 9px; border: 0; background: transparent; padding: 4px 0; font-size: .77rem; letter-spacing: .11em; text-transform: uppercase; cursor: pointer; border-bottom: 1px solid currentColor; }
.text-link span { transition: transform .25s; }
.text-link:hover span { transform: translate(3px, -2px); }
.text-link.light { color: white; }
.eyebrow, .section-kicker { margin: 0 0 18px; font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.display, h1, h2 { font-family: var(--display); font-weight: 700; letter-spacing: -.035em; line-height: .92; margin: 0; text-transform: uppercase; }
h1 { font-size: clamp(4rem, 7.7vw, 8.3rem); }
h2 { font-size: clamp(3rem, 5.1vw, 6rem); }
h3 { font-family: var(--display); font-size: 2rem; line-height: 1.02; font-weight: 700; margin: 0; }
em { display: inline-block; font-family: var(--script); font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: 0; line-height: .75; transform: rotate(-1deg); }
.lead { font-family: var(--sans); font-size: clamp(1.45rem, 2.3vw, 2.2rem); line-height: 1.35; letter-spacing: -.02em; }
.section { padding: clamp(95px, 11vw, 170px) max(28px, calc((100vw - 1240px) / 2)); }
.center { text-align: center; margin-top: 60px; }

.hero { min-height: 100vh; max-height: 880px; height: 100vh; display: grid; grid-template-columns: 48% 52%; position: relative; background: linear-gradient(120deg, var(--paper) 0 52%, var(--sand) 52% 100%); overflow: hidden; }
.hero-copy { padding: clamp(90px, 11vh, 120px) 4vw clamp(30px, 4vh, 50px) max(28px, calc((100vw - 1240px) / 2)); align-self: center; position: relative; z-index: 2; box-sizing: border-box; }
.hero h1 { font-family: var(--display); font-size: clamp(3.8rem, 6.8vw, 7.8rem); font-weight: 700; line-height: .92; letter-spacing: -.035em; margin: 0; text-transform: uppercase; }
.hero h1 em { display: inline-block; font-family: var(--script); font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: 0; line-height: .75; transform: rotate(-1deg); }
.hero-intro { max-width: 480px; font-family: var(--sans); font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.5; margin: 20px 0 24px; }
.hero-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.hero-note { margin-top: 26px; font-size: .68rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); }
.hero-visual { position: relative; height: 100%; min-height: 100%; }
.hero-image { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(55,34,25,.04), rgba(40,24,17,.22)), url("/assets/images/hero.png") center / cover no-repeat; clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%); }
.hero-card { position: absolute; left: 2%; top: 51%; transform: translateY(-50%); width: min(500px, 68%); padding: 42px 38px; background: rgba(243, 229, 199, .91); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: var(--shadow); }
.hero-card img { width: 100%; height: auto; display: block; }
img.floating-feather,
svg.floating-feather { position: absolute; z-index: 2; right: 5%; top: 12%; width: min(220px, 32%); height: auto; object-fit: contain; transform: rotate(13deg); opacity: .85; animation: float 7s ease-in-out infinite; filter: brightness(0) invert(1); }
.scroll-hint { position: absolute; z-index: 5; left: max(28px, calc((100vw - 1240px) / 2)); bottom: 26px; display: flex; align-items: center; gap: 9px; color: var(--navy); font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .2em; opacity: .85; transition: opacity .3s, transform .3s; }
.scroll-hint:hover { opacity: 1; transform: translateY(3px); }
.scroll-hint svg { width: 18px; height: 18px; color: var(--copper-dark); transition: transform .3s ease; }
.scroll-hint:hover svg { transform: translateY(3px); }
@keyframes float { 0%,100% { transform: translateY(0) rotate(13deg); } 50% { transform: translateY(14px) rotate(8deg); } }

.philosophy { background: var(--paper); }
.philosophy-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 9vw; align-items: start; }
.philosophy-copy { max-width: 580px; padding-top: 30px; }
.philosophy-copy p:not(.lead) { max-width: 500px; color: var(--muted); }
.philosophy-copy .text-link { margin-top: 24px; }
.values { margin-top: 0; display: grid; grid-template-columns: repeat(4, 1fr); border: 0; }
.values > div { padding: 30px 24px 34px 0; border-right: 1px solid var(--line); }
.values > div:not(:first-child) { padding-left: 24px; }
.values > div:last-child { border-right: 0; }
.values strong { display: block; color: var(--navy); font-family: var(--sans); font-size: 13.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 9px; }
.values p { display: block; max-width: 250px; margin: 0 auto; color: rgba(29,29,29,.72); font-family: var(--sans); font-size: 12.5px; line-height: 1.6; font-weight: 400; text-transform: none; }

.care-section { background: var(--ivory); }
.section-heading { display: grid; grid-template-columns: 1fr 420px; gap: 70px; align-items: end; margin-bottom: 65px; }
.section-heading p:last-child { color: var(--muted); margin: 0 0 5px; }
.care-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 38px; }
.tab { border: 1px solid rgba(61,46,37,.25); background: transparent; padding: 10px 17px; border-radius: 99px; font-size: .72rem; letter-spacing: .06em; cursor: pointer; }
.tab.is-active, .tab:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.care-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.care-card { min-height: 410px; background: rgba(255,253,249,.7); padding: 38px; display: flex; flex-direction: column; border: 1px solid rgba(79,59,47,.1); transition: transform .3s, background .3s; overflow: hidden; }
.care-card:hover { transform: translateY(-6px); background: var(--white); }
.care-card.is-hidden { display: none; }
.care-card-image { width: calc(100% + 76px); height: 210px; margin: -38px -38px 24px -38px; background-size: cover; background-position: center; border-bottom: 1px solid rgba(79,59,47,.1); }
.care-card-featured { grid-column: span 2; padding: 0; display: grid; grid-template-columns: 48% 52%; min-height: 550px; }
.care-photo { min-height: 100%; background-size: cover; background-position: center; }
.care-photo-oil { background: linear-gradient(180deg, transparent, rgba(59,34,22,.18)), url("/assets/images/massage-oil.jpg") center / cover; }
.care-content { padding: 48px; display: flex; flex-direction: column; }
.care-number { margin-left: auto; font-family: var(--display); font-size: 3.3rem; color: rgba(78,58,45,.17); }
.care-type { text-transform: uppercase; letter-spacing: .14em; font-size: .64rem; color: var(--muted); margin-bottom: 22px; }
.care-card h3 { font-size: clamp(2rem, 2.7vw, 3rem); }
.care-card p { color: var(--muted); max-width: 430px; }
.care-meta { margin-top: auto; padding-top: 30px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.care-meta span { font-size: .77rem; letter-spacing: .08em; text-transform: uppercase; }
.care-meta strong { font-family: var(--display); font-size: 1.6rem; font-weight: 400; }
.care-card .text-link { align-self: flex-start; margin-top: 20px; }

.needs { background: var(--ink); color: var(--white); display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; align-items: start; }
.needs .eyebrow { color: var(--sand-deep); }
.needs-intro p:last-child { color: rgba(255,255,255,.64); max-width: 410px; margin-top: 36px; }
.needs-list { border-top: 1px solid rgba(255,255,255,.2); }
.needs-item { border-bottom: 1px solid rgba(255,255,255,.2); transition: background-color .3s ease; }
.needs-toggle { width: 100%; padding: 22px 0; display: flex; justify-content: space-between; align-items: center; background: transparent; border: 0; color: #fff; cursor: pointer; text-align: left; }
.needs-toggle span { font-family: var(--display); font-size: clamp(1.3rem, 2.2vw, 2.1rem); font-weight: 500; letter-spacing: .02em; color: #fff; transition: color .3s ease; }
.needs-toggle i { font-style: normal; font-size: 1.5rem; color: var(--copper); transition: transform .35s ease, color .3s ease; }
.needs-item.is-open .needs-toggle i { transform: rotate(90deg); color: #fff; }
.needs-item.is-open .needs-toggle span { color: #e5bd91; }
.needs-answer { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .4s cubic-bezier(.16, 1, .3, 1), opacity .35s ease, padding .35s ease; padding: 0; }
.needs-item.is-open .needs-answer { max-height: 300px; opacity: 1; padding-bottom: 24px; }
.needs-answer p { margin: 0; color: rgba(255,255,255,.88); font-family: var(--sans); font-size: 1.02rem; line-height: 1.65; max-width: 620px; }
.need-result { grid-column: 2; min-height: 0; color: var(--sand); font-size: .9rem; }
.need-result:not(:empty) { padding: 18px 22px; border-left: 2px solid var(--gold); background: rgba(255,255,255,.05); }

.about { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; align-items: center; }
.portrait-placeholder { aspect-ratio: 4/5; background: linear-gradient(135deg, #d8c4b1, #efe4d9); display: grid; place-items: center; color: var(--brown); border-radius: 34px; position: relative; overflow: hidden; }
.portrait-placeholder::before, .image-placeholder::before { content: ""; position: absolute; inset: 8%; border: 1px solid rgba(91,65,49,.24); border-radius: inherit; }
.portrait-placeholder span, .image-placeholder span { z-index: 2; text-align: center; text-transform: uppercase; letter-spacing: .15em; font-size: .67rem; }
.photo-caption { color: var(--muted); font-size: .78rem; max-width: 380px; margin-top: 15px; }
.about-copy { max-width: 570px; }
.about-copy > p:not(.eyebrow):not(.lead) { color: var(--muted); }
.credentials { display: flex; flex-wrap: wrap; gap: 9px; margin: 35px 0; }
.credentials span { border: 1px solid var(--line); padding: 8px 12px; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }

.story { background: var(--sand); display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 8vw; }
.story-mark { display: grid; place-items: center; min-height: 220px; }
.story-mark img.story-feather,
.story-mark svg.story-feather { width: min(460px, 95%); height: auto; max-height: 280px; display: block; object-fit: contain; opacity: 1 !important; transform: rotate(-6deg); animation: float 7s ease-in-out infinite; }
.story-copy { max-width: 720px; }
.story-copy p { color: var(--muted); }
.story-copy blockquote { font-family: var(--script); font-size: clamp(1.5rem, 2.7vw, 2.7rem); line-height: 1.28; margin: 50px 0 0; padding-left: 30px; border-left: 1px solid var(--ink); }

.expertise { background: var(--paper); }
.expertise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tech-card { padding: 38px; min-height: 440px; border: 1px solid var(--line); background: rgba(255,253,249,.85); display: flex; flex-direction: column; transition: transform .3s, background .3s; overflow: hidden; }
.tech-card:hover { transform: translateY(-6px); background: var(--white); }
.tech-card-image { width: calc(100% + 76px); height: 210px; margin: -38px -38px 24px -38px; background-size: cover; background-position: center; border-bottom: 1px solid var(--line); }
.tech-card-header { margin-bottom: 8px; }
.tech-card h3 { font-size: clamp(1.8rem, 2.3vw, 2.4rem); color: var(--navy); margin: 6px 0 14px; }
.tech-card-body { color: var(--muted); font-size: .95rem; line-height: 1.6; }
.tech-disclaimer { margin-top: auto; padding-top: 18px; color: var(--muted); font-size: .78rem; font-style: italic; opacity: .8; border-top: 1px solid var(--line); }

.institute { background: var(--mist); padding: clamp(60px, 8vw, 105px) 0; }
.institute-container { max-width: 1240px; margin: 0 auto; padding: 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.institute-image { position: relative; min-height: 520px; border-radius: 4px; overflow: hidden; background: url("/assets/images/cabine.jpg") center / cover no-repeat; box-shadow: 0 24px 64px rgba(22,42,69,.12); border: 1px solid rgba(166,142,122,.2); }
.room-photo-caption { position: absolute; bottom: 24px; left: 24px; background: rgba(255,249,241,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); padding: 12px 20px; border-radius: 2px; border: 1px solid rgba(184,137,97,.3); display: flex; flex-direction: column; gap: 2px; }
.room-photo-caption span { font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--copper); font-weight: 600; }
.room-photo-caption strong { font-family: var(--display); font-size: 1.15rem; color: var(--navy); }
.institute-copy { max-width: 540px; }
.institute-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1.02rem; line-height: 1.65; }
.check-list { padding: 0; margin: 35px 0; list-style: none; border-top: 1px solid var(--line); }
.check-list li { padding: 13px 0 13px 26px; border-bottom: 1px solid var(--line); position: relative; font-size: .9rem; }
.check-list li::before { content: "·"; position: absolute; left: 4px; color: var(--gold); font-size: 1.7rem; line-height: .8; }

.gifts { background: var(--paper); }
.gift-card { background: var(--sand); padding: clamp(40px, 7vw, 95px); display: grid; grid-template-columns: 1fr .85fr; gap: 8vw; align-items: center; }
.gift-copy p:not(.eyebrow) { max-width: 520px; color: var(--muted); }
.gift-actions { display: flex; gap: 25px; align-items: center; flex-wrap: wrap; margin-top: 35px; }
.voucher { background: var(--paper); padding: 50px; min-height: 330px; box-shadow: var(--shadow); transform: rotate(2deg); display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid rgba(79,59,47,.13); }
.voucher > span { text-transform: uppercase; letter-spacing: .23em; font-size: .65rem; color: var(--gold); }
.voucher img { width: 85%; margin: 45px auto 30px; }
.voucher p { font-family: var(--sans); font-size: 1.2rem; }
.voucher small { margin-top: auto; color: var(--muted); }

.testimonials { background: var(--ivory); }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.testimonial { min-height: 330px; background: rgba(255,255,255,.58); padding: 40px; display: flex; flex-direction: column; }
.testimonial > span { font-family: var(--display); font-size: 5rem; color: var(--sand-deep); line-height: .7; }
.testimonial p { font-family: var(--sans); font-size: 1.45rem; line-height: 1.4; }
.testimonial small { margin-top: auto; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }

.faq { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10vw; }
.faq-intro p:last-child { color: var(--muted); max-width: 400px; }
.accordion { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); padding: 0; }
summary { list-style: none; padding: 24px 44px 24px 0; cursor: pointer; font-family: var(--sans); font-size: 1.4rem; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 8px; font-family: var(--sans); font-weight: 300; }
details[open] summary::after { content: "−"; }
details p { color: var(--muted); padding: 0 50px 24px 0; margin: 0; }

.practical { background: var(--mist); padding: clamp(60px, 8vw, 105px) 0; }
.practical-container { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.practical-split { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(32px, 5vw, 60px); align-items: stretch; margin-top: 40px; }
.practical-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.info-card { background: rgba(255,253,249,.85); border: 1px solid rgba(166,142,122,.22); padding: 30px; display: flex; flex-direction: column; transition: transform .3s, background .3s; }
.info-card:hover { transform: translateY(-4px); background: var(--white); }
.info-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .16em; color: var(--copper); font-weight: 600; }
.info-value { font-family: var(--display); font-size: 1.35rem; font-weight: 500; color: var(--navy); margin: 18px 0 8px; line-height: 1.35; }
.info-sub { font-size: .82rem; color: var(--muted); margin-top: auto; }

.practical-map-card { display: flex; flex-direction: column; border-radius: 4px; overflow: hidden; border: 1px solid rgba(166,142,122,.25); box-shadow: 0 20px 50px rgba(22,42,69,.08); background: var(--paper); min-height: 400px; }
.map-frame { flex: 1; min-height: 320px; width: 100%; position: relative; }
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: contrast(1.02) saturate(0.92); }
.map-caption-bar { padding: 18px 24px; background: #fffaf3; border-top: 1px solid rgba(166,142,122,.2); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.map-caption-text strong { display: block; font-family: var(--display); font-size: 1.1rem; color: var(--navy); }
.map-caption-text span { font-size: .82rem; color: var(--muted); }
.map-link { font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--copper-dark); text-decoration: none; transition: color .2s; }
.map-link:hover { color: var(--navy); }

.contact-section { background: var(--paper); padding: clamp(60px, 8vw, 105px) 0; border-top: 1px solid var(--line); }
.contact-container { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.contact-split { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(40px, 6vw, 75px); align-items: start; }
.contact-intro h2 { font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.08; color: var(--navy); margin: 8px 0 20px; }
.contact-intro h2 em { font-family: var(--script); font-weight: 400; color: var(--copper); font-style: normal; font-size: 1.1em; }
.contact-intro p { color: var(--muted); font-size: 1.02rem; line-height: 1.65; }
.contact-notice { margin-top: 24px; padding: 18px 22px; background: rgba(238,225,208,.4); border-left: 3px solid var(--copper); border-radius: 2px; }
.contact-notice strong { display: block; font-family: var(--display); font-size: 1.1rem; color: var(--navy); margin-bottom: 4px; }
.contact-notice p { font-size: .88rem; color: var(--muted); margin: 0; line-height: 1.5; }
.contact-direct { margin-top: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 28px; border-top: 1px solid var(--line); }
.contact-direct span { font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; color: var(--copper); font-weight: 600; display: block; }
.contact-direct strong { font-family: var(--display); font-size: 1.25rem; color: var(--navy); margin-top: 4px; display: block; }

.contact-form-card {
  background: rgba(255,253,249,.96);
  border: 1px solid rgba(166,142,122,.25);
  padding: clamp(30px, 4vw, 48px);
  box-shadow: 0 24px 64px rgba(22,42,69,.07);
  border-radius: 6px;
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}

.contact-form .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
  width: 100%;
}

.contact-form .form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.contact-form .form-group.full-width {
  grid-column: 1 / -1;
  margin-bottom: 20px;
}

.contact-form label {
  display: block;
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
  margin: 0;
}

.contact-form label small {
  text-transform: none;
  font-weight: 400;
  color: var(--muted);
  font-size: .78rem;
}

.contact-form input,
.contact-form textarea,
.contact-form select {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  background: #ffffff !important;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 0.95rem;
  border: 1px solid rgba(166,142,122,.35);
  border-radius: 4px;
  transition: border-color .2s, box-shadow .2s;
}

.contact-form input {
  height: 48px;
  padding: 0 16px;
  line-height: 48px;
}

.contact-form textarea {
  min-height: 130px;
  padding: 12px 16px;
  line-height: 1.5;
  resize: vertical;
}

.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--navy) !important;
  box-shadow: 0 0 0 3px rgba(22,42,69,.1) !important;
}

.contact-consent {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin: 12px 0 24px !important;
  font-size: .84rem !important;
  color: var(--muted) !important;
  text-transform: none !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  cursor: pointer;
}

.contact-consent input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  margin-top: 2px !important;
  accent-color: var(--navy) !important;
  cursor: pointer;
  flex-shrink: 0 !important;
}

.contact-form button.button,
.contact-form .button {
  display: inline-flex !important;
  align-self: flex-start !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  padding: 0 38px !important;
  background-color: #162a45 !important;
  color: #ffffff !important;
  border: 1px solid #162a45 !important;
  border-radius: 999px !important;
  font-family: var(--sans) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
  cursor: pointer !important;
  transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease !important;
  box-shadow: 0 8px 24px rgba(22,42,69,.2) !important;
  -webkit-font-smoothing: antialiased !important;
}

.contact-form button.button:hover,
.contact-form .button:hover {
  background-color: #8C6547 !important;
  border-color: #8C6547 !important;
  color: #ffffff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 28px rgba(140,101,71,.3) !important;
}

.field-error { color: #b91c1c; font-size: .8rem; margin-top: 4px; }


.final-cta { min-height: 760px; position: relative; display: grid; place-items: center; color: white; text-align: center; overflow: hidden; }
.final-bg { position: absolute; inset: 0; background: linear-gradient(rgba(35,24,18,.62), rgba(35,24,18,.72)), url("/assets/images/hero-soft.jpg") center / cover no-repeat; transform: scale(1.05); }
.final-content { position: relative; z-index: 2; width: min(900px, calc(100% - 48px)); }
.final-content .eyebrow { color: var(--sand); }
.final-content em { color: #ead8c7; }
.final-content > p:not(.eyebrow) { max-width: 640px; margin: 32px auto; color: rgba(255,255,255,.72); }
.final-actions { display: flex; justify-content: center; gap: 28px; align-items: center; flex-wrap: wrap; }

.site-footer { background: var(--ink); color: white; padding: 75px max(28px, calc((100vw - 1240px) / 2)) 28px; }
.footer-brand img { width: 330px; filter: invert(1) grayscale(1); opacity: .86; }
.footer-brand p { color: rgba(255,255,255,.55); }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 60px; max-width: 620px; margin: 70px 0; }
.footer-links strong { display: block; color: var(--sand); font-size: .66rem; text-transform: uppercase; letter-spacing: .17em; margin-bottom: 18px; }
.footer-links a { display: block; color: rgba(255,255,255,.68); margin: 7px 0; font-size: .9rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding-top: 25px; display: flex; justify-content: space-between; color: rgba(255,255,255,.4); font-size: .7rem; }
.mobile-actions { display: none; }

.modal { width: min(680px, calc(100% - 32px)); border: 0; padding: clamp(34px, 5vw, 65px); background: var(--paper); color: var(--ink); box-shadow: 0 40px 120px rgba(25,17,12,.35); }
.modal::backdrop { background: rgba(35,27,22,.6); backdrop-filter: blur(7px); }
.modal h2 { font-size: clamp(2.6rem, 5vw, 4.7rem); }
.modal p { color: var(--muted); }
.modal-close { position: absolute; right: 18px; top: 12px; border: 0; background: transparent; font-size: 2rem; cursor: pointer; }
.modal-meta { display: flex; justify-content: space-between; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 17px 0; margin: 30px 0; }
.modal-meta strong { font-family: var(--display); font-size: 1.5rem; }
.prices-modal { width: min(930px, calc(100% - 32px)); max-height: 88vh; overflow: auto; }
.modal-note { max-width: 680px; }
.price-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px; }
.price-groups h3 { font-size: 1.6rem; margin-bottom: 22px; }
.price-row { display: flex; gap: 15px; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line); }
.price-row span { font-size: .88rem; }
.price-row small { display: block; color: var(--muted); }
.price-row strong { white-space: nowrap; font-family: var(--display); font-size: 1.2rem; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.in-view { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  .main-nav { position: fixed; inset: 0 0 0 28%; background: var(--paper); padding: 130px 45px 60px; display: flex; flex-direction: column; align-items: flex-start; gap: 28px; transform: translateX(100%); transition: transform .35s ease; box-shadow: -30px 0 60px rgba(0,0,0,.12); }
  .main-nav.is-open { transform: none; }
  .main-nav a { font-family: var(--display); font-size: 1.8rem; }
  .main-nav .button { font-family: var(--sans); font-size: .72rem; }
  .menu-toggle { display: block; z-index: 2; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }
  .hero { grid-template-columns: 1fr; background: var(--ivory); min-height: auto; }
  .hero-copy { padding-top: 150px; padding-bottom: 90px; }
  .hero-visual { min-height: 680px; }
  .hero-image { clip-path: none; }
  .hero-card { left: 6%; }
  .scroll-hint { display: none; }
  .section-heading { grid-template-columns: 1fr; gap: 24px; }
  .care-grid { grid-template-columns: 1fr 1fr; }
  .care-card-featured { grid-column: span 2; }
  .values { grid-template-columns: 1fr 1fr; }
  .values > div:nth-child(2) { border-right: 0; }
  .values > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .expertise-grid { grid-template-columns: 1fr 1fr; }
  .product-card { grid-column: span 2; }
  .gift-card { grid-template-columns: 1fr; }
  .voucher { width: min(520px, 100%); margin: auto; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .testimonial { min-height: 240px; }
  .practical-panel { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body { padding-bottom: 58px; }
  .header-inner { width: calc(100% - 32px); height: 74px; }
  .brand strong { font-size: 1.05rem; }
  .brand small { font-size: .52rem; }
  .main-nav { left: 8%; }
  .hero-copy { padding-inline: 24px; }
  .hero-note { line-height: 1.8; }
  .hero-visual { min-height: 500px; }
  .hero-card { left: 22px; width: calc(100% - 44px); padding: 25px; }
  .floating-feather { width: 120px; top: 7%; }
  .section { padding: 90px 24px; }
  .philosophy-grid, .needs, .about, .story, .faq { grid-template-columns: 1fr; gap: 55px; }
  .values { grid-template-columns: 1fr; margin-top: 65px; }
  .values > div, .values > div:not(:first-child) { padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .values > div:last-child { border-bottom: 0; }
  .care-grid { grid-template-columns: 1fr; }
  .care-card-featured { grid-column: auto; grid-template-columns: 1fr; }
  .care-photo { min-height: 320px; }
  .care-content, .care-card { padding: 30px; }
  .care-card-featured { padding: 0; }
  .needs-list span { font-size: 1.3rem; }
  .need-result { grid-column: 1; }
  .story-mark { order: 2; }
  .expertise-grid { grid-template-columns: 1fr; }
  .product-card { grid-column: auto; }
  .institute { grid-template-columns: 1fr; padding-left: 0; gap: 50px; }
  .institute-image, .image-placeholder { min-height: 470px; }
  .institute-copy { padding: 0 24px 90px; }
  .gift-card { padding: 34px 24px; }
  .voucher { padding: 35px 24px; }
  .practical-grid { grid-template-columns: 1fr; }
  .final-cta { min-height: 680px; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; gap: 8px; }
  .mobile-actions { position: fixed; z-index: 60; display: grid; grid-template-columns: 1fr 1.2fr 1fr; left: 0; bottom: 0; width: 100%; height: 58px; background: var(--paper); border-top: 1px solid var(--line); }
  .mobile-actions a { display: grid; place-items: center; font-size: .67rem; text-transform: uppercase; letter-spacing: .09em; }
  .mobile-actions .primary { background: var(--ink); color: white; }
  .price-groups { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Brand guide V2 refinements */
.button, .eyebrow, .section-kicker, .main-nav, .care-type, .tab, .credentials span {
  font-family: var(--display);
  font-weight: 700;
}
.button { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.button:hover { background: var(--paper); color: var(--ink); }
.button-light { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.button-light:hover { background: transparent; color: var(--paper); }
.text-link { font-family: var(--display); font-weight: 700; }
.hero h1 em, .needs h2 em, .final-content h2 em { font-size: 1.2em; }
.hero-card { border: 1px solid rgba(29,29,29,.12); }
.hero-card img { width: 100%; }
.care-card, .tech-card, .testimonial, .voucher { border-color: rgba(29,29,29,.16); }
.footer-brand img { width: 340px; filter: brightness(0) invert(1); opacity: .95; }
@media (max-width: 1050px) { .brand img { width: 155px; } }
@media (max-width: 620px) { .brand img { width: 132px; } }




/* ==========================================================================
   L’instant plume — Brand direction refresh V2.2
   Google Fonts only: Great Vibes + Montserrat. The commercial logo type is
   preserved solely as vector outlines inside the supplied logo artwork.
   ========================================================================== */
body.brand-refresh-v22 {
  --navy: #162A45;
  --navy-soft: #243B59;
  --ink: #1D1D1D;
  --cream: #F9E7C9;
  --cream-soft: #F3E5C7;
  --sand: #E8D7C3;
  --mist: #EDEDED;
  --ivory: #FFF9F1;
  --taupe: #A68E7A;
  --brown: #7A5E4A;
  --copper: #B88961;
  --copper-dark: #8C6547;
  --muted: rgba(29,29,29,.64);
  --line: rgba(122,94,74,.22);
  --shadow: 0 24px 80px rgba(76,50,33,.12);
  --script: "Great Vibes", cursive;
  --sans: "Montserrat", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  letter-spacing: 0;
}
body.brand-refresh-v22::before {
  opacity: .42;
  background:
    radial-gradient(circle at 15% 10%, rgba(249,231,201,.8), transparent 34%),
    radial-gradient(circle at 90% 20%, rgba(232,215,195,.55), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,.14), rgba(232,215,195,.08));
  pointer-events: none;
}
body.brand-refresh-v22 h1,
body.brand-refresh-v22 h2,
body.brand-refresh-v22 h3,
body.brand-refresh-v22 .display { font-family: var(--display); color: var(--navy); }
body.brand-refresh-v22 h4 { font-family: var(--sans); color: var(--navy); text-transform: none; }
body.brand-refresh-v22 h1 em,
body.brand-refresh-v22 h2 em,
body.brand-refresh-v22 h3 em,
body.brand-refresh-v22 .display em { font-family: var(--script); font-style: normal; font-weight: 400; letter-spacing: .01em; }
body.brand-refresh-v22 p { color: rgba(29,29,29,.72); }
body.brand-refresh-v22 .section { padding: clamp(84px, 9vw, 144px) max(6vw, 28px); }
body.brand-refresh-v22 .eyebrow {
  color: var(--brown);
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}
body.brand-refresh-v22 .eyebrow::before { background: var(--copper); }
body.brand-refresh-v22 .button {
  min-height: 52px;
  border: 1px solid var(--navy);
  background: var(--navy);
  color: #fff;
  border-radius: 999px;
  padding: 0 27px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  box-shadow: 0 12px 30px rgba(22,42,69,.16);
}
body.brand-refresh-v22 .button:hover { background: var(--copper-dark); border-color: var(--copper-dark); transform: translateY(-2px); }
body.brand-refresh-v22 .button-outline { background: transparent; color: var(--navy); border-color: rgba(22,42,69,.42); box-shadow: none; }
body.brand-refresh-v22 .button-outline:hover { color: #fff; background: var(--navy); border-color: var(--navy); }
body.brand-refresh-v22 .text-link { color: var(--navy); font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; border-bottom-color: rgba(22,42,69,.35); }
body.brand-refresh-v22 .text-link span { color: var(--copper-dark); }

/* Header */
body.brand-refresh-v22 .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 88px;
  z-index: 80;
  background: rgba(255,249,241,.9);
  border-bottom: 1px solid rgba(184,137,97,.22);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
body.brand-refresh-v22 .header-inner { height: 100%; max-width: 1500px; padding: 0 4.5vw; }
body.brand-refresh-v22 .brand { width: 184px; height: 72px; display: flex; align-items: center; }
body.brand-refresh-v22 .brand img { width: 100%; height: auto; max-height: 70px; object-fit: contain; }
body.brand-refresh-v22 .main-nav { gap: clamp(18px, 2.2vw, 34px); }
body.brand-refresh-v22 .main-nav > a:not(.button) { color: var(--navy); font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
body.brand-refresh-v22 .main-nav .button { min-height: 44px; padding: 0 22px; color: #fff; }

/* Hero */
body.brand-refresh-v22 .hero {
  min-height: 100vh;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 47%) minmax(0, 53%);
  background: var(--ivory);
}
body.brand-refresh-v22 .hero-copy {
  position: relative;
  z-index: 2;
  min-height: 100%;
  padding: clamp(95px, 12vh, 130px) clamp(30px, 4vw, 80px) clamp(50px, 6vh, 80px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background:
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.78), transparent 34%),
    linear-gradient(140deg, #fffaf3 0%, #f8ead8 54%, #f2dfca 100%);
  box-sizing: border-box;
}
body.brand-refresh-v22 .hero-copy::before {
  content: "";
  position: absolute;
  width: 410px;
  height: 720px;
  left: -170px;
  top: -42px;
  opacity: .13;
  transform: rotate(-12deg);
  background: radial-gradient(ellipse at center, transparent 0 35%, rgba(184,137,97,.35) 36% 37%, transparent 38% 100%);
  border-radius: 50%;
  pointer-events: none;
}
body.brand-refresh-v22 .hero-location { margin: 0 0 10px; color: var(--navy); }
body.brand-refresh-v22 .hero-brand-logo { width: min(460px, 85%); max-height: 180px; object-fit: contain; margin: 0 auto 4px; position: relative; z-index: 1; }
.brand-ornament,
.voucher-ornament { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--copper); margin: 12px auto 20px; width: 100%; text-align: center; }
.brand-ornament span,
.voucher-ornament span { display: inline-block; width: 72px; height: 1px; background: rgba(184,137,97,.55); }
.brand-ornament b,
.voucher-ornament b { font-size: 20px; font-weight: 400; line-height: 1; display: inline-block; }
body.brand-refresh-v22 .hero h1 {
  margin: 0;
  max-width: 620px;
  color: var(--navy);
  font-family: var(--sans);
  font-size: clamp(24px, 2vw, 34px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: .01em;
  text-transform: none;
}
body.brand-refresh-v22 .hero h1 em { display: inline-block; margin-top: 2px; font-size: 1.5em; color: var(--brown); line-height: 1.05; }
body.brand-refresh-v22 .hero-intro { max-width: 580px; margin: 14px auto 0; font-size: 15px; line-height: 1.75; color: rgba(29,29,29,.67); }
body.brand-refresh-v22 .hero-actions { justify-content: center; margin-top: 20px; gap: 20px; }
body.brand-refresh-v22 .hero-note { margin-top: 18px; max-width: 580px; color: var(--brown); font-size: 9px; font-weight: 600; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; }
body.brand-refresh-v22 .hero-visual { position: relative; overflow: hidden; background: #d8c3ad; min-height: 520px; }
body.brand-refresh-v22 .hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(180deg, rgba(22,42,69,.02), rgba(122,94,74,.08)), url("/assets/images/cabine.jpg");
  background-size: cover;
  background-position: center center;
  filter: saturate(.82) contrast(.96) brightness(1.04);
  transform: scale(1.015);
}
body.brand-refresh-v22 .hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(249,231,201,.14), transparent 22%, rgba(22,42,69,.08)); pointer-events: none; }
body.brand-refresh-v22 .hero-room-label {
  position: absolute;
  left: 32px;
  bottom: 32px;
  z-index: 10;
  width: auto;
  max-width: calc(100% - 64px);
  padding: 16px 24px;
  border: 1px solid rgba(255,255,255,.58);
  background: rgba(22,42,69,.92);
  color: #fff;
  backdrop-filter: blur(10px);
  box-shadow: 0 16px 40px rgba(22,42,69,.25);
  border-radius: 12px;
}
body.brand-refresh-v22 .hero-room-label span { display: block; margin-bottom: 4px; color: #e3b98f; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
body.brand-refresh-v22 .hero-room-label strong { display: block; color: #fff; font-size: 16px; font-weight: 500; line-height: 1.35; letter-spacing: .02em; }
body.brand-refresh-v22 .floating-feather { top: 12%; right: 5%; width: 190px; z-index: 3; opacity: .65; }
body.brand-refresh-v22 .floating-feather path { stroke: rgba(255,248,237,.9); }
body.brand-refresh-v22 .scroll-hint { display: none; }

/* Brand strip */
.brand-band { position: relative; z-index: 3; padding: 48px max(5vw, 26px) 32px; background: #ffffff; border-top: 1px solid rgba(184,137,97,.24); border-bottom: 1px solid rgba(184,137,97,.24); }
.brand-band-inner { max-width: 1320px; margin: auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.brand-band-item { min-height: 150px; padding: 10px 32px 20px; text-align: center; border-right: 1px solid rgba(166,142,122,.25); }
.brand-band-item:last-child { border-right: 0; }
.brand-icon,
.value-icon,
.care-icon,
.tech-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--copper-dark); }
.brand-icon svg { width: 48px; height: 48px; margin-bottom: 10px; }
.brand-icon svg *,
.value-icon svg *,
.care-icon svg *,
.tech-icon svg * { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.brand-band-item strong { display: block; color: var(--navy); font-size: 13.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.brand-band-item small { display: block; max-width: 250px; margin: 9px auto 0; color: rgba(29,29,29,.72); font-size: 12.5px; line-height: 1.6; }
.brand-band > p { margin: 24px 0 0; text-align: center; color: var(--brown); font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.brand-band > p i { margin: 0 10px; color: var(--copper); font-style: normal; }

/* Philosophy */
body.brand-refresh-v22 .philosophy { background: #fff; }
body.brand-refresh-v22 .section-kicker { color: var(--brown); font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
body.brand-refresh-v22 .philosophy-grid { max-width: 1240px; gap: 8vw; }
body.brand-refresh-v22 .display { color: var(--navy); font-family: var(--display); font-size: clamp(42px, 5vw, 74px); font-weight: 500; line-height: 1.02; letter-spacing: -.035em; text-transform: none; }
body.brand-refresh-v22 .display em { color: var(--copper-dark); font-size: 1.15em; letter-spacing: .01em; }
body.brand-refresh-v22 .philosophy-copy .lead { color: var(--navy); font-size: 20px; line-height: 1.65; }
.values-section { position: relative; z-index: 3; padding: 48px max(5vw, 26px) 32px; background: #ffffff; border: 0 !important; box-sizing: border-box; }
.values { max-width: 1320px; margin: auto; display: grid; grid-template-columns: repeat(4, 1fr); border: 0 !important; }
.values > div { min-height: 150px; padding: 10px 32px 20px; text-align: center; border-right: 1px solid rgba(166,142,122,.25); border-top: 0 !important; border-bottom: 0 !important; }
.values > div:last-child { border-right: 0; }
.value-icon { width: 58px; height: 58px; margin: 0 auto 18px; color: var(--copper-dark); display: inline-flex; align-items: center; justify-content: center; }
.value-icon svg { width: 54px; height: 54px; }
.value-icon svg * { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.values strong { display: block; color: var(--navy); font-family: var(--sans); font-size: 13.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 9px; }
.values p { display: block; max-width: 250px; margin: 0 auto; color: rgba(29,29,29,.72); font-family: var(--sans); font-size: 12.5px; line-height: 1.6; font-weight: 400; text-transform: none; }

/* Care catalogue */
body.brand-refresh-v22 .care-section { background: #f5ede3; }
body.brand-refresh-v22 .section-heading { max-width: 1320px; }
body.brand-refresh-v22 .section-heading h2,
body.brand-refresh-v22 .needs h2,
body.brand-refresh-v22 .about h2,
body.brand-refresh-v22 .story h2,
body.brand-refresh-v22 .institute h2,
body.brand-refresh-v22 .gift-card h2,
body.brand-refresh-v22 .faq h2,
body.brand-refresh-v22 .practical h2 { color: var(--navy); font-family: var(--display); font-size: clamp(38px, 4.7vw, 68px); font-weight: 500; line-height: 1.05; letter-spacing: -.035em; text-transform: none; }
body.brand-refresh-v22 .care-tabs { max-width: 1320px; gap: 8px; padding: 6px; border: 1px solid rgba(166,142,122,.28); background: rgba(255,255,255,.65); border-radius: 999px; }
body.brand-refresh-v22 .tab { border: 0; border-radius: 999px; color: var(--navy); font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
body.brand-refresh-v22 .tab.is-active { background: var(--navy); color: #fff; }
body.brand-refresh-v22 .care-grid { max-width: 1320px; gap: 22px; }
body.brand-refresh-v22 .care-card { position: relative; overflow: hidden; min-height: 390px; padding: 34px; border: 1px solid rgba(166,142,122,.25); border-radius: 22px; background: rgba(255,250,243,.92); box-shadow: 0 18px 50px rgba(85,56,37,.07); }
body.brand-refresh-v22 .care-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--copper), #e5c79e); }
body.brand-refresh-v22 .care-card:hover { transform: translateY(-7px); box-shadow: 0 28px 70px rgba(85,56,37,.13); border-color: rgba(184,137,97,.55); }
body.brand-refresh-v22 .care-card-featured { min-height: 540px; padding: 0; background: var(--navy); border-color: var(--navy); grid-column: span 2; }
body.brand-refresh-v22 .care-card-featured::before { z-index: 4; }
body.brand-refresh-v22 .care-photo { min-height: 250px; filter: sepia(.12) saturate(.75) contrast(.98); }
body.brand-refresh-v22 .care-card-featured .care-content { padding: 34px 38px 38px; }
body.brand-refresh-v22 .care-card-featured h3,
body.brand-refresh-v22 .care-card-featured p,
body.brand-refresh-v22 .care-card-featured .care-meta,
body.brand-refresh-v22 .care-card-featured .text-link { color: #fff; }
body.brand-refresh-v22 .care-card-featured .care-type { color: #e4b888; }
body.brand-refresh-v22 .care-card-featured .care-meta { border-top-color: rgba(255,255,255,.2); }
body.brand-refresh-v22 .care-card h3 { color: var(--navy); font-family: var(--sans); font-size: clamp(25px, 2.2vw, 34px); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; text-transform: none; }
body.brand-refresh-v22 .care-type { color: var(--brown); font-family: var(--sans); font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
body.brand-refresh-v22 .care-number { display: none; }
body.brand-refresh-v22 .care-icon { width: 54px; height: 54px; margin-bottom: 20px; color: var(--copper-dark); }
body.brand-refresh-v22 .care-icon svg { width: 48px; height: 48px; }
body.brand-refresh-v22 .care-card-featured > .care-icon { display: none; }
body.brand-refresh-v22 .care-meta { border-top-color: rgba(166,142,122,.27); }
body.brand-refresh-v22 .care-meta strong { color: var(--navy); }
body.brand-refresh-v22 .care-card-featured .care-meta strong { color: #fff; }

/* Needs */
body.brand-refresh-v22 .needs { position: relative; background: var(--navy); overflow: hidden; }
body.brand-refresh-v22 .needs::after { content: ""; position: absolute; width: 560px; height: 560px; right: -220px; bottom: -240px; border: 1px solid rgba(232,215,195,.12); border-radius: 50%; box-shadow: 0 0 0 55px rgba(232,215,195,.035), 0 0 0 110px rgba(232,215,195,.025); }
body.brand-refresh-v22 .needs .eyebrow { color: #e0b285; }
body.brand-refresh-v22 .needs h2 { color: #fff; }
body.brand-refresh-v22 .needs h2 em { color: #e5bd91; }
body.brand-refresh-v22 .needs p { color: rgba(255,255,255,.68); }
body.brand-refresh-v22 .needs-list { border-top-color: rgba(255,255,255,.2); }
body.brand-refresh-v22 .needs-list button { border-bottom-color: rgba(255,255,255,.19); color: #fff; font-family: var(--sans); }
body.brand-refresh-v22 .needs-list button:hover { background: rgba(255,255,255,.06); padding-left: 20px; }
body.brand-refresh-v22 .needs-list button i { color: #e5bd91; }
body.brand-refresh-v22 .need-result { border-color: rgba(229,189,145,.5); background: rgba(255,255,255,.07); color: #fff; }

/* About / story */
body.brand-refresh-v22 .about { background: #fffaf3; }
body.brand-refresh-v22 .about-portrait { position: relative; }
body.brand-refresh-v22 .portrait-placeholder { min-height: 660px; border: 1px solid rgba(166,142,122,.3); border-radius: 34px; background:
  radial-gradient(circle at 50% 28%, rgba(255,255,255,.85), transparent 27%),
  linear-gradient(155deg, #ead8c4, #f8efe5 58%, #d8c0a8); color: var(--navy); box-shadow: var(--shadow); }
body.brand-refresh-v22 .portrait-placeholder::before { content: "♡"; display: block; margin-bottom: 18px; color: var(--copper); font-size: 30px; font-weight: 300; }
body.brand-refresh-v22 .photo-caption { color: var(--brown); font-size: 11px; }
body.brand-refresh-v22 .about-copy .lead { color: var(--navy); font-size: 20px; }
body.brand-refresh-v22 .credentials span { border-color: rgba(166,142,122,.32); background: #fff; color: var(--navy); border-radius: 999px; font-size: 10px; font-weight: 600; letter-spacing: .07em; }
body.brand-refresh-v22 .story { background: linear-gradient(135deg, #e5d2be, #f6ebde); }
body.brand-refresh-v22 .story-mark { color: var(--copper-dark); opacity: .72; }
body.brand-refresh-v22 .story-copy blockquote { color: var(--navy); font-family: var(--script); font-size: clamp(35px, 4vw, 54px); line-height: 1.2; border-left-color: var(--copper); }

/* Expertise */
body.brand-refresh-v22 .expertise { background: #fff; }
body.brand-refresh-v22 .expertise-grid { max-width: 1320px; gap: 20px; }
body.brand-refresh-v22 .tech-card,
body.brand-refresh-v22 .product-card { min-height: 360px; padding: 36px; border: 1px solid rgba(166,142,122,.27); border-radius: 22px; background: #fffaf4; box-shadow: 0 18px 50px rgba(85,56,37,.06); }
body.brand-refresh-v22 .product-card { background: var(--navy); color: #fff; }
body.brand-refresh-v22 .product-card h3,
body.brand-refresh-v22 .product-card p { color: #fff; }
body.brand-refresh-v22 .product-card small { color: rgba(255,255,255,.6); }
body.brand-refresh-v22 .tech-card > span:not(.tech-icon) { display: none; }
body.brand-refresh-v22 .tech-icon { width: 54px; height: 54px; margin-bottom: 22px; }
body.brand-refresh-v22 .tech-icon svg { width: 50px; height: 50px; }
body.brand-refresh-v22 .product-card .tech-icon { color: #e5bd91; }
body.brand-refresh-v22 .tech-card h3,
body.brand-refresh-v22 .product-card h3 { color: var(--navy); font-family: var(--sans); font-size: 27px; font-weight: 500; }
body.brand-refresh-v22 .product-card h3 { color: #fff; }

/* Institute */
body.brand-refresh-v22 .institute { background: #f4eadf; gap: clamp(45px, 7vw, 110px); }
body.brand-refresh-v22 .institute-image { min-height: 720px; position: relative; border-radius: 34px; overflow: hidden; background-image: linear-gradient(180deg, rgba(22,42,69,0), rgba(22,42,69,.12)), url("/assets/images/cabine.jpg"); background-size: cover; background-position: center; box-shadow: var(--shadow); }
body.brand-refresh-v22 .room-photo-caption { position: absolute; left: 30px; right: 30px; bottom: 28px; padding: 18px 22px; background: rgba(22,42,69,.84); color: #fff; border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(8px); }
body.brand-refresh-v22 .room-photo-caption span { display: block; color: #e5bd91; font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
body.brand-refresh-v22 .room-photo-caption strong { color: #fff; font-size: 17px; font-weight: 500; }
body.brand-refresh-v22 .check-list li::before { color: var(--copper-dark); }

/* Gifts */
body.brand-refresh-v22 .gifts { background: #fffaf3; }
body.brand-refresh-v22 .gift-card { max-width: 1320px; padding: clamp(42px, 6vw, 84px); border: 0; border-radius: 30px; background: linear-gradient(135deg, #162a45, #213b5b); box-shadow: 0 32px 90px rgba(22,42,69,.2); overflow: hidden; }
body.brand-refresh-v22 .gift-card::before { content: ""; position: absolute; width: 520px; height: 520px; right: -180px; top: -230px; border: 1px solid rgba(232,215,195,.18); border-radius: 50%; box-shadow: 0 0 0 50px rgba(232,215,195,.03), 0 0 0 100px rgba(232,215,195,.025); }
body.brand-refresh-v22 .gift-copy { position: relative; z-index: 1; }
body.brand-refresh-v22 .gift-copy .eyebrow { color: #e5bd91; }
body.brand-refresh-v22 .gift-card h2,
body.brand-refresh-v22 .gift-card p { color: #fff; }
body.brand-refresh-v22 .gift-card .check-list { border-top-color: rgba(255,255,255,.2); }
body.brand-refresh-v22 .gift-card .check-list li { color: #ffffff; border-bottom-color: rgba(255,255,255,.2); }
body.brand-refresh-v22 .gift-card .check-list li::before { color: #e5bd91; }
body.brand-refresh-v22 .gift-card .gift-conditions strong { color: #e5bd91; }
body.brand-refresh-v22 .gift-card .gift-conditions p { color: rgba(255,255,255,.9); }
body.brand-refresh-v22 .gift-card .button { background: #fff; border-color: #fff; color: var(--navy); box-shadow: none; }
body.brand-refresh-v22 .gift-card .text-link { color: #fff; border-bottom-color: rgba(255,255,255,.35); }
body.brand-refresh-v22 .voucher { position: relative; background: #fff7eb; border: 1px solid rgba(184,137,97,.55); border-radius: 18px; box-shadow: 0 28px 65px rgba(0,0,0,.18); transform: rotate(-2deg); }
body.brand-refresh-v22 .voucher::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(184,137,97,.22); border-radius: 12px; pointer-events: none; }
body.brand-refresh-v22 .voucher > span { color: var(--brown); font-family: var(--script); font-size: 35px; text-transform: none; letter-spacing: 0; }
body.brand-refresh-v22 .voucher img { width: 84%; max-height: 190px; }
body.brand-refresh-v22 .voucher p { color: var(--navy); }
body.brand-refresh-v22 .voucher small { color: var(--brown); }

/* Testimonials / FAQ / practical */
body.brand-refresh-v22 .testimonial {
  min-height: 230px;
  border: 1px solid rgba(184, 137, 97, 0.24);
  border-radius: 28px;
  background: linear-gradient(145deg, #ffffff 0%, #fffaf3 100%);
  padding: 34px 38px;
  box-shadow: 0 14px 38px rgba(85, 56, 37, 0.06), 0 2px 6px rgba(184, 137, 97, 0.04);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
body.brand-refresh-v22 .testimonial:hover {
  transform: translateY(-4px);
  border-color: rgba(184, 137, 97, 0.45);
  box-shadow: 0 22px 50px rgba(85, 56, 37, 0.1), 0 4px 12px rgba(184, 137, 97, 0.08);
}
body.brand-refresh-v22 .testimonial.placeholder {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 238, 226, 0.65) 100%);
  border: 1.5px dashed rgba(184, 137, 97, 0.35);
  box-shadow: 0 10px 30px rgba(85, 56, 37, 0.04);
}
body.brand-refresh-v22 .testimonial > span { color: var(--copper); font-family: var(--script); font-size: 52px; line-height: 0.8; margin-bottom: 14px; display: block; }
body.brand-refresh-v22 .testimonial p { color: var(--navy); font-family: var(--sans); font-size: 15px; line-height: 1.6; font-weight: 400; margin: 0 0 20px; }
body.brand-refresh-v22 .testimonial small { margin-top: auto; color: var(--brown); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
body.brand-refresh-v22 .faq { background: #fff; }
body.brand-refresh-v22 .accordion details { border-bottom-color: rgba(166,142,122,.3); }
body.brand-refresh-v22 .accordion summary { color: var(--navy); font-family: var(--sans); font-size: 16px; font-weight: 500; }
body.brand-refresh-v22 .accordion summary::after { color: var(--copper-dark); }
body.brand-refresh-v22 .practical { background: #f5ede3; }
body.brand-refresh-v22 .practical-panel { max-width: 1320px; border: 1px solid rgba(166,142,122,.3); border-radius: 28px; background: #fffaf3; box-shadow: 0 20px 60px rgba(85,56,37,.06); }
body.brand-refresh-v22 .practical-grid > div { border-color: rgba(166,142,122,.25); }
body.brand-refresh-v22 .practical-grid span { color: var(--brown); }
body.brand-refresh-v22 .practical-grid strong { color: var(--navy); }

/* Final CTA / footer */
body.brand-refresh-v22 .final-cta { min-height: 720px; background: var(--navy); }
body.brand-refresh-v22 .final-bg { background-image: linear-gradient(90deg, rgba(22,42,69,.88), rgba(22,42,69,.62)), url("/assets/images/cabine.jpg") !important; background-size: cover; background-position: center 58%; filter: saturate(.55); }
body.brand-refresh-v22 .final-content { max-width: 760px; }
body.brand-refresh-v22 .final-content .eyebrow { color: #e5bd91; }
body.brand-refresh-v22 .final-content h2 { color: #fff; font-family: var(--sans); font-weight: 500; text-transform: none; }
body.brand-refresh-v22 .final-content h2 em { color: #e5bd91; }
body.brand-refresh-v22 .final-content p { color: rgba(255,255,255,.74); }
body.brand-refresh-v22 .button-light { background: #fff; color: var(--navy); border-color: #fff; }
body.brand-refresh-v22 .site-footer { background: #11243d; color: #fff; border-top: 1px solid rgba(232,215,195,.2); }
body.brand-refresh-v22 .footer-brand img { filter: brightness(0) invert(1); opacity: .95; }
body.brand-refresh-v22 .footer-brand p,
body.brand-refresh-v22 .footer-links a,
body.brand-refresh-v22 .footer-bottom { color: rgba(255,255,255,.65); }
body.brand-refresh-v22 .footer-links strong { color: #e5bd91; }
body.brand-refresh-v22 .footer-signature { color: #e5bd91 !important; font-size: 10px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
body.brand-refresh-v22 .mobile-actions { background: rgba(255,249,241,.96); border-top-color: rgba(184,137,97,.28); }
body.brand-refresh-v22 .mobile-actions a { color: var(--navy); font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .08em; }
body.brand-refresh-v22 .mobile-actions .primary { background: var(--navy); color: #fff; }

/* Modals */
.modal { width: min(680px, calc(100% - 32px)); border: 0; padding: clamp(34px, 5vw, 65px); background: var(--paper); color: var(--ink); box-shadow: 0 40px 120px rgba(25,17,12,.35); border-radius: 0; }
.modal::backdrop { background: rgba(35,27,22,.6); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.modal h2 { font-family: var(--display); font-size: clamp(2.4rem, 4.5vw, 4.2rem); font-weight: 700; text-transform: uppercase; color: var(--navy); margin-top: 4px; }
.modal p { color: var(--muted); }
.modal-close { position: absolute; right: 22px; top: 18px; border: 0; background: transparent; font-size: 2.2rem; color: var(--navy); cursor: pointer; line-height: 1; }
.prices-modal { width: min(960px, calc(100% - 32px)); max-height: 88vh; overflow-y: auto; border-radius: 0; }
.modal-note { max-width: 680px; color: var(--muted); font-size: .92rem; line-height: 1.55; margin-top: 8px; }
.price-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; margin-top: 40px; }
.price-groups h3 { font-family: var(--display); font-size: 1.6rem; font-weight: 700; text-transform: uppercase; margin-bottom: 22px; color: var(--navy); border-bottom: 2px solid var(--copper); padding-bottom: 8px; }
.price-row { display: flex; gap: 15px; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line); }
.price-row span { font-family: var(--sans); font-size: .88rem; font-weight: 500; color: var(--ink); }
.price-row small { display: block; color: var(--muted); font-size: .78rem; margin-top: 3px; }
.price-row strong { white-space: nowrap; font-family: var(--display); font-size: 1.25rem; font-weight: 600; color: var(--navy); }

@media (max-width: 1050px) {
  body.brand-refresh-v22 .hero { height: auto; min-height: 0; grid-template-columns: 1fr; padding-top: 0 !important; }
  body.brand-refresh-v22 .hero-copy { min-height: auto; padding: 100px 8vw 70px; }
  body.brand-refresh-v22 .hero-visual { min-height: 580px; }
  body.brand-refresh-v22 .hero-brand-logo { width: min(560px, 82vw); }
  .brand-band-inner { grid-template-columns: repeat(2, 1fr); }
  .brand-band-item:nth-child(2) { border-right: 0; }
  .brand-band-item:nth-child(-n+2) { border-bottom: 1px solid rgba(166,142,122,.25); }
  body.brand-refresh-v22 .care-card-featured { grid-column: span 2; }
}

@media (max-width: 760px) {
  body.brand-refresh-v22 .site-header { height: 72px; }
  body.brand-refresh-v22 .header-inner { padding: 0 18px; }
  body.brand-refresh-v22 .brand { width: 138px; height: 62px; }
  body.brand-refresh-v22 .main-nav { background: #fffaf3; border-bottom: 1px solid rgba(184,137,97,.3); }
  body.brand-refresh-v22 .main-nav > a:not(.button) { font-size: 12px; }
  body.brand-refresh-v22 .menu-toggle span:not(.sr-only) { background: var(--navy); }
  body.brand-refresh-v22 .hero { padding-top: 0 !important; }
  body.brand-refresh-v22 .hero-copy { min-height: auto; padding: 88px 22px 54px; }
  body.brand-refresh-v22 .hero-brand-logo { width: min(460px, 96%); max-height: 205px; }
  body.brand-refresh-v22 .brand-ornament { margin-bottom: 14px; }
  body.brand-refresh-v22 .brand-ornament span { width: 50px; }
  body.brand-refresh-v22 .hero h1 { font-size: 23px; }
  body.brand-refresh-v22 .hero h1 em { font-size: 1.72em; }
  body.brand-refresh-v22 .hero-intro { font-size: 14px; line-height: 1.7; }
  body.brand-refresh-v22 .hero-actions { flex-direction: column; gap: 18px; width: 100%; }
  body.brand-refresh-v22 .hero-actions .button { width: min(330px, 100%); }
  body.brand-refresh-v22 .hero-visual { min-height: 560px; }
  body.brand-refresh-v22 .hero-room-label { left: 18px; right: 18px; bottom: 18px; width: auto; }
  body.brand-refresh-v22 .floating-feather { width: 130px; }
  .brand-band { padding: 30px 18px 24px; }
  .brand-band-inner { grid-template-columns: 1fr 1fr; }
  .brand-band-item { min-height: 165px; padding: 18px 12px; }
  .brand-band-item small { font-size: 10px; }
  .brand-band > p { line-height: 2.2; letter-spacing: .14em; }
  body.brand-refresh-v22 .section { padding: 78px 22px; }
  body.brand-refresh-v22 .display,
  body.brand-refresh-v22 .section-heading h2,
  body.brand-refresh-v22 .needs h2,
  body.brand-refresh-v22 .about h2,
  body.brand-refresh-v22 .story h2,
  body.brand-refresh-v22 .institute h2,
  body.brand-refresh-v22 .gift-card h2,
  body.brand-refresh-v22 .faq h2,
  body.brand-refresh-v22 .practical h2 { font-size: 42px; }
  .values-section { padding: 30px 18px 24px; }
  .values { grid-template-columns: 1fr 1fr; }
  .values > div { min-height: 165px; padding: 18px 12px; }
  .values > div:nth-child(2) { border-right: 0; }
  .values > div:nth-child(-n+2) { border-bottom: 1px solid rgba(166,142,122,.25); }
  body.brand-refresh-v22 .values > div:nth-child(2) { border-right: 0; }
  body.brand-refresh-v22 .values > div:nth-child(-n+2) { border-bottom: 1px solid rgba(166,142,122,.25); }
  body.brand-refresh-v22 .care-tabs { border-radius: 18px; }
  body.brand-refresh-v22 .care-card-featured { grid-column: auto; }
  body.brand-refresh-v22 .care-card { min-height: 340px; padding: 28px; }
  body.brand-refresh-v22 .care-card-featured { padding: 0; }
  body.brand-refresh-v22 .portrait-placeholder { min-height: 520px; border-radius: 34px; }
  body.brand-refresh-v22 .institute-image { min-height: 560px; border-radius: 34px; }
  body.brand-refresh-v22 .gift-card { padding: 42px 24px; border-radius: 22px; }
  body.brand-refresh-v22 .voucher { transform: none; }
  body.brand-refresh-v22 .testimonial { border-radius: 22px; padding: 28px 24px; min-height: 200px; }
  body.brand-refresh-v22 .final-cta { min-height: 650px; }
}

@media (prefers-reduced-motion: reduce) {
  body.brand-refresh-v22 .care-card:hover,
  body.brand-refresh-v22 .button:hover { transform: none; }
}



body.brand-refresh-v22 .hero-visual { clip-path: none !important; margin-left: 0 !important; transform: none !important; }
body.brand-refresh-v22 .hero-visual::before { display: none !important; }
body.brand-refresh-v22 .hero-copy { clip-path: none !important; }
body.brand-refresh-v22 .hero::before, body.brand-refresh-v22 .hero::after { display: none !important; }
@media (max-width: 1050px) { body.brand-refresh-v22 .hero-visual { clip-path: none !important; } }

body.brand-refresh-v22 .hero-image { clip-path: none !important; }

body.brand-refresh-v22 { overflow-x: hidden; }
@media (max-width: 760px) {
  body.brand-refresh-v22 .about { grid-template-columns: minmax(0, 1fr) !important; }
  body.brand-refresh-v22 .about-portrait,
  body.brand-refresh-v22 .about-copy { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  body.brand-refresh-v22 .hero-image,
  body.brand-refresh-v22 .final-bg { transform: none !important; }
}

@media (max-width: 980px) {
  body::before {
    z-index: 1 !important;
  }
  .site-header,
  body.brand-refresh-v22 .site-header {
    z-index: 100000 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 74px !important;
    background: rgba(249, 231, 201, 0.98) !important;
    border-bottom: 1px solid rgba(184, 137, 97, 0.3) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
  }
  .header-inner,
  body.brand-refresh-v22 .header-inner {
    z-index: 100000 !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: relative !important;
  }
  .brand,
  body.brand-refresh-v22 .brand {
    position: relative !important;
    z-index: 100001 !important;
    display: flex !important;
    align-items: center !important;
  }
  .menu-toggle,
  body.brand-refresh-v22 .menu-toggle {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: #162a45 !important;
    border: 1px solid #162a45 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 14px rgba(22, 42, 69, 0.25) !important;
    cursor: pointer !important;
    z-index: 100001 !important;
    position: relative !important;
  }
  .menu-toggle span:not(.sr-only),
  body.brand-refresh-v22 .menu-toggle span:not(.sr-only) {
    display: block !important;
    width: 22px !important;
    height: 2.5px !important;
    background: #ffffff !important;
    border-radius: 2px !important;
    margin: 0 !important;
    opacity: 1 !important;
    transition: all 0.25s ease !important;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(1),
  body.brand-refresh-v22 .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7.5px) rotate(45deg) !important;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(2),
  body.brand-refresh-v22 .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0 !important;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(3),
  body.brand-refresh-v22 .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7.5px) rotate(-45deg) !important;
  }
  .main-nav,
  body.brand-refresh-v22 .main-nav {
    position: fixed !important;
    top: 74px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: calc(100vh - 74px) !important;
    max-height: calc(100vh - 74px) !important;
    overflow-y: auto !important;
    background: var(--paper) !important;
    border-top: 1px solid rgba(184, 137, 97, 0.3) !important;
    padding: 24px 20px 36px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    box-shadow: 0 20px 50px rgba(22, 42, 69, 0.25) !important;
    z-index: 99999 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-12px) !important;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s ease !important;
  }
  .main-nav.is-open,
  body.brand-refresh-v22 .main-nav.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
  .main-nav > a:not(.button),
  body.brand-refresh-v22 .main-nav > a:not(.button) {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 20px !important;
    background: #ffffff !important;
    border: 1.5px solid #162a45 !important;
    border-radius: 12px !important;
    color: #162a45 !important;
    font-family: var(--sans) !important;
    font-size: 1.02rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    box-shadow: 0 4px 12px rgba(22, 42, 69, 0.06) !important;
    transition: all 0.2s ease !important;
  }
  .main-nav > a:not(.button):hover,
  body.brand-refresh-v22 .main-nav > a:not(.button):focus {
    background: #162a45 !important;
    border-color: #162a45 !important;
    color: #ffffff !important;
  }
  .main-nav .button,
  .main-nav a.button,
  body.brand-refresh-v22 .main-nav .button,
  body.brand-refresh-v22 .main-nav a.button {
    margin-top: 14px !important;
    width: 100% !important;
    min-height: 54px !important;
    padding: 0 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #162a45 !important;
    color: #ffffff !important;
    border: 2px solid #162a45 !important;
    border-radius: 999px !important;
    font-family: var(--sans) !important;
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    box-shadow: 0 10px 28px rgba(22, 42, 69, 0.3) !important;
  }
  .main-nav .button:hover,
  .main-nav a.button:hover {
    background: #b88961 !important;
    border-color: #b88961 !important;
    color: #ffffff !important;
  }
}


/* Laravel / Filament dynamic layer */
:root {
  --admin-notice: #162a45;
}
.flash-message {
  max-width: 1180px; margin: 0 auto 2rem; padding: 1rem 1.2rem;
  background: rgba(249,231,201,.65); border: 1px solid rgba(122,94,74,.25);
  color: #162a45; font-weight: 600;
}
/* Removed obsolete prototype contact form overrides */
.field-error { color:#8f342d; font-size:.82rem; text-transform:none; letter-spacing:normal; }
.care-photo-dynamic { background-size:cover; background-position:center; min-height:240px; }
body.brand-refresh-v22 .portrait-placeholder.has-image,
.portrait-placeholder.has-image { background-size:cover !important; background-position: right top !important; filter: none !important; }
body.brand-refresh-v22 .portrait-placeholder.has-image::before,
.portrait-placeholder.has-image::before { display: none !important; }
.portrait-placeholder.has-image span { position:absolute; width:1px; height:1px; overflow:hidden; }
.external-action { cursor:pointer; }
.admin-preview-note { font-size:.78rem; color:#7a5e4a; margin-top:.65rem; }
@media (max-width: 760px) {
  .contact-form .form-grid { grid-template-columns:1fr; }
  .contact-form button.button { width: 100%; justify-content: center; }
}

/* Client validation — 2026-08-03 */
body.brand-refresh-v22 .hero-brand-signature {
  margin: 0 auto 18px;
  color: #162a45;
  font-size: clamp(.82rem, 1vw, 1rem);
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.5;
  text-transform: uppercase;
}
body.brand-refresh-v22 .gift-conditions {
  max-width: 620px;
  margin: 1.4rem 0 1.8rem;
  padding: 1rem 1.1rem;
  border-left: 2px solid rgba(229,189,145,.8);
  background: rgba(255,255,255,.07);
}
body.brand-refresh-v22 .gift-conditions strong {
  display: block;
  margin-bottom: .4rem;
  color: #f2e9df;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body.brand-refresh-v22 .gift-conditions p {
  margin: .35rem 0;
  color: rgba(255,255,255,.82);
  font-size: .9rem;
}
body.brand-refresh-v22 .service-contact-note {
  margin: 1.2rem 0;
  padding: 1rem 1.1rem;
  border-left: 3px solid #a67e56;
  background: rgba(232,215,195,.42);
  color: #4f4035;
  font-weight: 500;
}
body.brand-refresh-v22 .service-contact-note[hidden] { display: none; }
@media (max-width: 760px) {
  body.brand-refresh-v22 .hero-brand-signature { letter-spacing: .1em; }
}


/* V1.4 — carte Google Maps et cartes photo rectangulaires */
body.brand-refresh-v22 .map-embed-wrap {
  grid-column: 1 / -1;
  padding: 20px;
  border-top: 1px solid rgba(166,142,122,.25);
  background: #fff7ef;
}
body.brand-refresh-v22 .map-embed {
  overflow: hidden;
  border: 1px solid rgba(166,142,122,.28);
  border-radius: 28px;
  box-shadow: 0 16px 40px rgba(85,56,37,.08);
}
body.brand-refresh-v22 .map-embed iframe {
  display: block;
  width: 100%;
  height: 360px;
  border: 0;
}
body.brand-refresh-v22 .map-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 14px 4px 0;
  color: var(--brown);
  font-size: 12px;
}
body.brand-refresh-v22 .map-caption a {
  color: var(--navy);
  font-weight: 600;
  text-decoration: none;
}
@media (max-width: 760px) {
  body.brand-refresh-v22 .map-embed-wrap { padding: 14px; }
  body.brand-refresh-v22 .map-embed iframe { height: 300px; }
  body.brand-refresh-v22 .map-caption { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* Mobile image overlapping & stacking fixes */
@media (max-width: 980px) {
  .hero,
  body.brand-refresh-v22 .hero {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    min-height: auto !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
  }
  .hero-copy,
  body.brand-refresh-v22 .hero-copy {
    width: 100% !important;
    min-height: auto !important;
    padding: 110px 24px 44px !important;
  }
  .hero-visual,
  body.brand-refresh-v22 .hero-visual {
    width: 100% !important;
    position: relative !important;
    min-height: 360px !important;
    height: 360px !important;
    overflow: hidden !important;
    margin: 0 !important;
  }
  .hero-image,
  body.brand-refresh-v22 .hero-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    clip-path: none !important;
    background-size: cover !important;
    background-position: center center !important;
  }
  .hero-card,
  body.brand-refresh-v22 .hero-card {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(380px, 86%) !important;
    padding: 22px 26px !important;
    box-shadow: 0 12px 35px rgba(29, 29, 29, 0.15) !important;
    z-index: 5 !important;
  }
  .floating-feather,
  body.brand-refresh-v22 .floating-feather {
    display: none !important;
  }
  .scroll-hint {
    display: none !important;
  }
  .brand-band,
  .values-section {
    position: relative !important;
    z-index: 10 !important;
    margin-top: 0 !important;
    clear: both !important;
  }
  .institute,
  body.brand-refresh-v22 .institute {
    padding-inline: 0 !important;
  }
  .institute-container,
  body.brand-refresh-v22 .institute-container {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    gap: 32px !important;
    padding-inline: 24px !important;
  }
  .institute-image,
  body.brand-refresh-v22 .institute-image {
    order: 1 !important;
    width: 100% !important;
    min-height: 320px !important;
    height: 320px !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 16px !important;
  }
  .institute-copy,
  body.brand-refresh-v22 .institute-copy {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  .practical-split,
  body.brand-refresh-v22 .practical-split {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    width: 100% !important;
  }
  .practical-info-grid,
  body.brand-refresh-v22 .practical-info-grid {
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    width: 100% !important;
  }
  .practical-map-card,
  body.brand-refresh-v22 .practical-map-card {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .info-card,
  body.brand-refresh-v22 .info-card {
    width: 100% !important;
  }
  .contact-split,
  body.brand-refresh-v22 .contact-split {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 36px !important;
    width: 100% !important;
  }
  .contact-intro,
  body.brand-refresh-v22 .contact-intro {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .contact-form-card,
  body.brand-refresh-v22 .contact-form-card {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .contact-form .form-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

@media (max-width: 600px) {
  .hero-visual,
  body.brand-refresh-v22 .hero-visual {
    min-height: 290px !important;
    height: 290px !important;
  }
  .hero-card,
  body.brand-refresh-v22 .hero-card {
    width: min(320px, 88%) !important;
    padding: 16px 20px !important;
  }
  .brand-band-inner,
  .values {
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
}
