@font-face {
  font-family:'Cormorant Garamond';
  src:url('../assets/fonts/cormorant-400.woff') format('woff');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:'Cormorant Garamond';
  src:url('../assets/fonts/cormorant-400-italic.woff') format('woff');
  font-style:italic;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:'Instrument Sans';
  src:url('../assets/fonts/instrument-400.woff') format('woff');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:'Instrument Sans';
  src:url('../assets/fonts/instrument-500.woff') format('woff');
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
}

:root {
  --black:#111111;
  --graphite:#1B1B1B;
  --ivory:#F5F1E8;
  --white:#FAF8F3;
  --gold:#C9A24D;
  --gold-light:#DDBF6B;
  --muted:#68645E;
  --line:rgba(17,17,17,.14);
  --line-ivory:rgba(245,241,232,.18);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Instrument Sans',Arial,sans-serif;
  --gutter:clamp(20px,5vw,80px);
}

* { box-sizing:border-box; }
[hidden] { display:none!important; }

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body {
  margin:0;
  background:var(--ivory);
  color:var(--black);
  font:400 1.0625rem/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.has-dialog { overflow:hidden; }

img { display:block; max-width:100%; height:auto; }

button,input,select,textarea { font:inherit; color:inherit; }

button,a { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }

button { cursor:pointer; border-radius:0; }
button:disabled { cursor:not-allowed; opacity:.65; }

a { color:inherit; text-decoration:none; }
figure,h1,h2,h3,h4,p { margin:0; }
p { max-width:65ch; }

h1,h2,h3 {
  font:400 1em/1.06 var(--serif);
  letter-spacing:-.02em;
}

em { font-weight:400; }

::selection { color:var(--ivory); background:var(--black); }

:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:4px;
}

.container {
  width:min(calc(100% - var(--gutter)*2),1240px);
  margin-inline:auto;
}

.section { padding-block:clamp(48px,6vw,80px); }

.eyebrow {
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:20px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:10px 0;
  background:none;
  border:0;
  border-bottom:1px solid var(--black);
  font-size:.9rem;
  font-weight:500;
  line-height:1.5;
  color:var(--black);
  transition:border-color .2s,color .2s;
}
.text-link span[aria-hidden] { font-size:1.15rem; line-height:1; }
.text-link:hover { border-color:var(--gold); color:var(--black); }

.button {
  min-height:56px;
  padding:16px 26px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border:1px solid transparent;
  font-size:.9rem;
  font-weight:500;
  line-height:1.5;
  transition:background .2s,color .2s,border-color .2s;
}
.button span[aria-hidden] { font-size:1.25rem; line-height:1; }
.button-dark { background:var(--black); color:var(--ivory); }
.button-dark:hover { background:var(--gold); color:var(--black); }
.button-outline { background:transparent; border-color:var(--black); color:var(--black); }
.button-outline:hover { background:var(--black); color:var(--ivory); }

.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:100;
  padding:13px 22px;
  background:var(--black);
  color:var(--ivory);
  transform:translateY(-160%);
}
.skip-link:focus { transform:none; }

/* ============ HEADER ============ */
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:var(--ivory);
  border-bottom:1px solid var(--line);
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:84px;
}

.brand { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; }
.brand > img { width:48px; height:48px; object-fit:contain; }
.brand-wordmark { display:flex; flex-direction:column; }
.brand-name {
  font:400 1.45rem/1 var(--serif);
  letter-spacing:-.03em;
}
.brand-subtitle {
  margin-top:6px;
  font-size:.58rem;
  font-weight:500;
  letter-spacing:.18em;
  color:var(--muted);
}

.main-nav { display:flex; align-items:center; gap:clamp(16px,1.8vw,28px); }
.main-nav a { font-size:.9rem; padding:12px 0; border-bottom:1px solid transparent; transition:border-color .2s; }
.main-nav a:hover { border-bottom-color:var(--black); }

.header-cta { white-space:nowrap; border-bottom-color:var(--black); }

.menu-toggle { display:none; background:none; border:0; width:48px; height:48px; padding:11px; }
.menu-toggle span { display:block; width:26px; height:1px; background:var(--black); margin:7px 0; transition:transform .2s; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }

/* ============ HERO (42/58) ============ */
.hero { padding-top:clamp(36px,5vw,72px); padding-bottom:clamp(44px,5vw,80px); }

.hero-stage {
  display:grid;
  grid-template-columns:42% 58%;
  gap:clamp(32px,5vw,72px);
  align-items:center;
}

.hero-copy h1 {
  font-size:clamp(2.6rem,4.8vw,4.15rem);
  line-height:1.04;
}
.hero-copy .eyebrow { margin-bottom:22px; }
.hero-description {
  margin-top:16px;
  font-size:clamp(1.02rem,1.2vw,1.06rem);
  color:var(--muted);
}
.hero-text {
  margin-top:10px;
  color:var(--muted);
  max-width:38ch;
}
.hero-actions { display:flex; flex-wrap:wrap; gap:20px; margin-top:28px; }
.hero-actions .button { min-width:220px; }
.hero-secondary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--black);
  font-size:.9rem;
  font-weight:500;
}
.hero-secondary:hover { border-bottom-color:var(--gold); }

.hero-visual img {
  width:100%;
  max-height:680px;
  object-fit:cover;
  object-position:center 30%;
  background:var(--graphite);
}

/* ============ BRAND STATEMENT (escuro) ============ */
.brand-statement {
  background:var(--graphite);
  color:var(--ivory);
  padding-block:clamp(60px,6vw,96px);
}

.statement-inner {
  max-width:820px;
  text-align:center;
}

.statement-inner img {
  margin:0 auto 26px;
  width:min(130px,28vw);
  aspect-ratio:1;
  object-fit:contain;
  background:transparent;
}

.statement-inner .eyebrow { color:var(--gold-light); }
.statement-inner h2 {
  font-size:clamp(2.2rem,4.5vw,3.1rem);
  line-height:1.06;
}
.statement-inner h2 em { color:var(--gold-light); }
.statement-note {
  margin:20px auto 0;
  max-width:52ch;
  color:rgba(250,248,243,.78);
  font-size:.98rem;
}

/* ============ SECTION HEADING ============ */
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:clamp(32px,3.5vw,48px);
}
.section-heading h2 {
  font-size:clamp(2.05rem,3.8vw,3rem);
  line-height:1.06;
}
.section-note { font-size:.95rem; color:var(--muted); max-width:300px; padding-bottom:4px; }

/* ============ SERVICES (3 pilares) ============ */
.services-list { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,3vw,48px); align-items:start; }

.service { display:flex; flex-direction:column; }
.service-figure { overflow:hidden; background:var(--graphite); }
.service-figure img { width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .45s ease; }
.service:hover .service-figure img { transform:scale(1.02); }

.service-copy { padding-top:22px; }
.service-copy h3 {
  font-size:clamp(1.45rem,2.2vw,1.75rem);
  line-height:1.08;
}
.service-copy p { margin-top:12px; color:var(--muted); font-size:.98rem; }
.service-copy .text-link { margin-top:20px; }
.service:nth-child(2) .service-figure img { object-position:center 18%; }
.service:nth-child(3) .service-figure img { object-position:center 22%; }

/* ============ BOUTIQUE ============ */
.boutique-section { background:var(--white); }

.boutique-inner {
  display:grid;
  grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);
  gap:clamp(36px,5vw,64px);
  align-items:center;
  max-width:1180px;
  margin-inline:auto;
}

.boutique-copy h2 { font-size:clamp(2.05rem,3.8vw,3rem); line-height:1.06; }
.boutique-copy .section-note { margin-top:18px; max-width:36ch; padding-bottom:0; }
.boutique-copy .text-link { margin-top:24px; }

.boutique-main-image {
  width:100%;
  max-width:560px;
  margin-inline:auto;
}
.boutique-main-image img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

.reveal.is-pending { opacity:0; transform:translateY(18px); }
.reveal { opacity:1; transform:none; transition:opacity .5s ease,transform .5s ease; }

/* ============ EXPERIENCE (escuro) ============ */
.experience-section {
  background:var(--black);
  color:var(--ivory);
  padding-block:clamp(56px,6vw,88px);
}

.experience-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr .9fr;
  gap:clamp(28px,4vw,56px);
  align-items:center;
}

.experience-intro h2 { font-size:clamp(2.05rem,3.8vw,3rem); line-height:1.06; }
.experience-intro .eyebrow { color:var(--gold-light); }
.experience-intro > p:last-child { color:rgba(250,248,243,.8); margin-top:20px; font-size:.98rem; max-width:26ch; }

.experience-visual img {
  width:100%;
  max-height:640px;
  object-fit:cover;
  object-position:center 24%;
  background:var(--graphite);
}

.experience-words { align-self:end; padding-bottom:12px; }
.experience-words > span {
  display:block;
  border-bottom:1px solid var(--line-ivory);
  padding-block:16px;
  font:400 clamp(1.3rem,1.8vw,1.7rem)/1.2 var(--serif);
  color:var(--ivory);
}
.experience-words > span:first-child { border-top:1px solid var(--line-ivory); }
.experience-words > p { margin-top:24px; font-size:.82rem; color:rgba(250,248,243,.72); }

/* ============ ABOUT ============ */
.about-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(32px,5vw,84px); align-items:center; }

.about-visual img {
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center 26%;
  background:var(--graphite);
}

.about-copy .lead { font:400 1.65rem/1.2 var(--serif); margin-bottom:18px; }
.about-copy > p:not(.lead) { color:var(--muted); margin-top:12px; font-size:.98rem; }
.about-copy .text-link { margin-top:24px; }
.about-section h2 { font-size:clamp(2.05rem,3.8vw,3rem); }

/* ============ NATUREA (compacto) ============ */
.naturea-section { background:var(--white); }

.naturea-strip {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(28px,4vw,64px);
  align-items:center;
  background:var(--ivory);
  border:1px solid var(--line);
  padding:clamp(28px,4vw,56px);
}

.naturea-visual { overflow:hidden; background:var(--graphite); }
.naturea-visual img { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:center 30%; }

.naturea-copy h2 { font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.06; }
.naturea-copy > p:last-of-type { margin-top:14px; color:var(--muted); }
.naturea-copy .text-link { margin-top:24px; }

/* ============ GALERIA ============ */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.5vw,40px); }

.gallery-frame { min-width:0; }
.gallery-item {
  display:block;
  width:100%;
  position:relative;
  padding:0;
  background:var(--graphite);
  border:0;
  overflow:hidden;
}
.gallery-item img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .45s ease;
}
.gallery-frame:nth-child(1) .gallery-item img { object-position:center 35%; }
.gallery-frame:nth-child(2) .gallery-item img { object-position:center 30%; }
.gallery-frame:nth-child(3) .gallery-item img { object-position:center 45%; }
.gallery-frame:nth-child(4) .gallery-item img { object-position:center 32%; }
.gallery-frame:nth-child(5) .gallery-item img { object-position:center 40%; }
.gallery-frame:nth-child(6) .gallery-item img { object-position:center 45%; }
.gallery-item:hover img { transform:scale(1.02); }
.gallery-open {
  position:absolute;
  right:16px;
  bottom:16px;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  color:var(--ivory);
  background:rgba(17,17,17,.82);
  font-size:1.2rem;
}

/* ============ FAQ ============ */
.faq-section { display:grid; grid-template-columns:1fr 1.6fr; gap:clamp(32px,6vw,96px); }

.faq-list details { border-bottom:1px solid var(--line); }
.faq-list details:first-child { border-top:1px solid var(--line); }
.faq-list summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-block:22px;
  list-style:none;
  cursor:pointer;
  font-size:1rem;
  font-weight:500;
}
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary > span { flex-shrink:0; font-size:1.4rem; font-weight:400; line-height:1; transition:transform .2s; }
.faq-list details[open] summary > span { transform:rotate(45deg); }
.faq-list details > p { color:var(--muted); padding-bottom:24px; padding-right:26px; font-size:.98rem; }
.faq-list details > p a { text-decoration:underline; text-underline-offset:4px; }

/* ============ MARCAÇÃO ============ */
.booking-section {
  background:var(--white);
  padding-bottom:clamp(36px,4vw,56px);
}

.booking-section-inner {
  display:grid;
  grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  gap:clamp(36px,5vw,64px);
  align-items:start;
  max-width:1180px;
  margin-inline:auto;
}

.booking-intro h2 { font-size:clamp(2.05rem,3.8vw,3rem); line-height:1.06; }
.booking-intro .section-note { margin-top:20px; max-width:36ch; padding-bottom:0; }

.booking-form {
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 40px;
}

.booking-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.booking-form legend {
  font-family:var(--serif);
  font-size:1.28rem;
  color:var(--black);
  margin-bottom:18px;
  padding:0;
}
.booking-form .fieldset-group legend { font-family:var(--sans); font-size:.92rem; font-weight:500; color:var(--black); margin-bottom:12px; letter-spacing:.02em; }

.booking-form .field { display:grid; gap:8px; margin-bottom:0; }
.booking-form .field + .field { margin-top:18px; }

.booking-form label:not(.choice):not(.consent) { font-size:.92rem; font-weight:500; color:var(--black); }
.booking-form input:not([type="radio"]):not([type="checkbox"]),
.booking-form select,
.booking-form textarea {
  width:100%;
  font:inherit;
  font-size:.98rem;
  color:var(--black);
  background:var(--ivory);
  border:1px solid var(--line);
  height:50px;
  padding:0 14px;
  border-radius:0;
  appearance:none;
}
.booking-form select { background-image:linear-gradient(45deg,transparent 50%,var(--black) 50%),linear-gradient(135deg,var(--black) 50%,transparent 50%); background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%; background-size:5px 5px; background-repeat:no-repeat; }
.booking-form input:not([type="radio"]):not([type="checkbox"]):focus,
.booking-form select:focus,
.booking-form textarea:focus { outline:2px solid var(--gold); outline-offset:2px; border-color:var(--gold); }
.booking-form textarea { height:140px; padding:12px 14px; resize:vertical; }

.booking-form .choice { display:inline-flex; align-items:center; gap:10px; margin-right:26px; font-size:.98rem; cursor:pointer; }
.booking-form .choice input { accent-color:var(--gold); width:18px; height:18px; }
.booking-form .consent { display:flex; align-items:flex-start; gap:12px; font-size:.9rem; color:var(--muted); cursor:pointer; }
.booking-form .consent input { accent-color:var(--gold); width:18px; height:18px; flex-shrink:0; margin-top:2px; }
.booking-form .consent a { text-decoration:underline; text-underline-offset:4px; }

.booking-form .field-error { display:none; font-size:.85rem; color:var(--error, #9B2C2C); }
.booking-form .field-hint { font-size:.85rem; color:var(--muted); }
.booking-form .has-error input:not([type="radio"]):not([type="checkbox"]),
.booking-form .has-error select,
.booking-form .has-error textarea { border-color:#C0392B; }
.booking-form .has-error .field-error,
.booking-form .has-error #f-especie-h,
.booking-form .has-error .consent ~ .field-error,
.booking-form .has-error > .field-error { display:block; }

.booking-consent {
  grid-column:1/-1;
  display:grid;
  gap:12px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.booking-consent > p { font-size:.85rem; color:var(--muted); margin:0; }
#f-consent-h { display:none; }
.booking-consent.has-error #f-consent-h { display:block; }

.booking-form > .button { grid-column:1/-1; justify-self:start; min-width:280px; }
.booking-status { grid-column:1/-1; margin:0; min-height:0; }
.booking-status.is-error { color:#9B2C2C; }
.booking-status.is-ok { color:#2F5233; }

.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }

.booking-success { grid-column:1/-1; display:grid; gap:18px; }
.booking-success .button { justify-self:start; min-width:0; }

/* ============ CONTACTOS ============ */
.contact-section { background:var(--white); }

.contact-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(32px,6vw,96px); align-items:center; }

.contact-intro { margin-top:18px; color:var(--muted); }

.contact-details { margin:30px 0 26px; display:grid; grid-template-columns:1fr 1fr; gap:24px 26px; }
.contact-details strong { display:block; font-size:.78rem; font-weight:500; letter-spacing:.08em; color:var(--muted); margin-bottom:8px; }
.contact-details a { text-decoration:underline; text-underline-offset:4px; }

.contact-actions { display:flex; flex-wrap:wrap; gap:18px; }

.contact-visual img {
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center 38%;
  background:var(--graphite);
}
.contact-visual figcaption {
  margin-top:12px;
  font-size:.82rem;
  color:var(--muted);
  letter-spacing:.04em;
}

/* ============ FOOTER ============ */
.site-footer { background:var(--graphite); color:var(--ivory); padding-block:38px 34px; }

.footer-top { display:flex; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.footer-wordmark { font:400 1.6rem/1 var(--serif); letter-spacing:-.03em; }
.footer-top p { margin-top:14px; color:rgba(250,248,243,.7); font-size:.85rem; line-height:1.7; }
.footer-top nav { display:flex; flex-wrap:wrap; align-content:flex-start; gap:14px 26px; }
.footer-top nav a { font-size:.85rem; color:rgba(250,248,243,.85); transition:color .2s; }
.footer-top nav a:hover { color:var(--gold-light); }

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin-top:32px;
  padding-top:22px;
  border-top:1px solid var(--line-ivory);
  font-size:.8rem;
  color:rgba(250,248,243,.6);
}
.footer-bottom nav { display:flex; gap:20px; }
.footer-bottom nav a:hover { color:var(--gold-light); }

/* ============ CTA MOBILE FIXO ============ */
.mobile-booking {
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:40;
  display:none;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:58px;
  padding:14px 20px calc(14px + env(safe-area-inset-bottom));
  background:var(--black);
  color:var(--ivory);
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
  border-top:1px solid var(--gold);
}
.mobile-booking span[aria-hidden] { font-size:1.15rem; }

/* ============ DIALOGS ============ */
dialog { border:0; }

.info-dialog {
  max-width:480px;
  width:calc(100% - 40px);
  padding:clamp(28px,5vw,44px);
  background:var(--ivory);
  color:var(--black);
}
.info-dialog::backdrop { background:rgba(17,17,17,.6); }
.info-dialog h2 { font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.08; }
.info-dialog p:not(.eyebrow) { margin-top:18px; color:var(--muted); }
.info-dialog .button { margin-top:28px; width:100%; }

.dialog-close {
  float:right;
  margin:-6px -10px 0 0;
  padding:6px 10px;
  background:none;
  border:0;
  font-size:1.5rem;
  line-height:1;
}

.lightbox {
  max-width:min(1040px,calc(100vw - 32px));
  max-height:calc(100vh - 64px);
  width:100%;
  padding:clamp(16px,3vw,28px);
  background:var(--graphite);
  color:var(--ivory);
}
.lightbox::backdrop { background:rgba(17,17,17,.82); }
.lightbox figure { display:grid; gap:16px; }
.lightbox img { margin-inline:auto; max-height:calc(100vh - 190px); width:auto; max-width:100%; object-fit:contain; }
.lightbox figcaption { text-align:center; font-size:.82rem; color:rgba(250,248,243,.72); }
.lightbox-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  margin-top:18px;
}
.lightbox-controls button {
  padding:8px 14px;
  background:none;
  border:1px solid var(--line-ivory);
  color:var(--ivory);
  font-size:1rem;
  transition:border-color .2s,color .2s;
}
.lightbox-controls button:hover { border-color:var(--gold-light); color:var(--gold-light); }
.lightbox-controls span { font-size:.82rem; color:rgba(250,248,243,.66); }

/* ============ PÁGINAS LEGAIS ============ */
.legal-main { padding-block:clamp(44px,6vw,72px); max-width:760px; }
.legal-main h1 { font-size:clamp(2.2rem,4.5vw,3rem); line-height:1.06; }
.legal-main h2 { font-size:clamp(1.5rem,2.6vw,1.9rem); line-height:1.15; margin:36px 0 14px; }
.legal-main p { color:var(--muted); margin-top:14px; }
.legal-main ul { margin:14px 0 0; padding-left:22px; color:var(--muted); }
.legal-main li { margin-top:8px; }
.legal-notice { border:1px solid var(--line); background:var(--white); padding:22px 24px; margin-top:24px; }
.legal-notice p { margin-top:0; font-size:.95rem; }
.legal-main .text-link { margin-top:36px; margin-bottom:40px; }

/* ============ RESPONSIVE ============ */
@media(max-width:1100px) {
  .services-list { grid-template-columns:1fr 1fr; }
  .service:last-child { grid-column:1/-1; }
  .experience-grid { grid-template-columns:1fr 1fr; }
  .experience-words { grid-column:1/-1; align-self:start; display:flex; flex-wrap:wrap; gap:0 34px; padding-top:10px; }
  .experience-words > span { border-top:1px solid var(--line-ivory); border-bottom:0; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
}

@media(max-width:900px) {
  .hero-stage { grid-template-columns:1fr 1fr; }
  .about-grid { grid-template-columns:1fr; gap:36px; }
  .about-visual img { max-width:520px; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-visual img { max-width:520px; }
}

@media(max-width:768px) {
  :root { --gutter:22px; }
  html { scroll-padding-top:84px; }

  body { font-size:1.06rem; line-height:1.6; }

  .site-header .header-inner { min-height:72px; }
  .header-cta { display:none; }
  .brand > img { width:40px; height:40px; }
  .brand-name { font-size:1.15rem; }
  .brand-subtitle { font-size:.52rem; letter-spacing:.14em; }
  .menu-toggle { display:block; margin-right:-11px; }

  .main-nav {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    position:fixed;
    top:72px;
    left:0;
    right:0;
    bottom:0;
    padding:24px var(--gutter) calc(96px + env(safe-area-inset-bottom));
    background:var(--ivory);
    transform:translateX(100%);
    transition:transform .28s ease;
    overflow-y:auto;
  }
  .main-nav.is-open { transform:none; }
  .main-nav a { padding:18px 0; font-size:1.35rem; border-bottom:1px solid var(--line); }
  .main-nav a:first-child { border-top:1px solid var(--line); }

  .hero { padding-top:28px; }
  .hero-stage { grid-template-columns:1fr; gap:28px; }
  .hero-copy h1 { font-size:clamp(2.55rem,8.8vw,2.8rem); line-height:1.05; }
  .hero-description { font-size:1.02rem; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .button { width:100%; min-width:0; justify-content:center; }
  .hero-secondary { justify-content:center; }
  .hero-visual img { max-height:none; width:100%; }

  .statement-inner img { width:96px; }
  .statement-inner h2 { font-size:clamp(2rem,8vw,2.3rem); }

  .section-heading { display:block; margin-bottom:32px; }
  .section-note { margin-top:14px; max-width:34ch; }
  .section-heading h2 { font-size:clamp(2rem,7.5vw,2.2rem); }

  .services-list { grid-template-columns:1fr; }
  .service:last-child { grid-column:auto; }
  .service-figure img { aspect-ratio:1/1; }
  .service-copy p { font-size:1.02rem; }

  .experience-grid { grid-template-columns:1fr; gap:30px; }
  .experience-intro h2 { font-size:clamp(2rem,7.5vw,2.2rem); }
  .experience-visual img { max-height:none; }
  .experience-words { padding-top:0; }

  .about-section h2 { font-size:clamp(2rem,7.5vw,2.2rem); }
  .about-visual img { max-width:none; }

  .gallery-grid { grid-template-columns:1fr; }

  .boutique-inner { grid-template-columns:1fr; gap:32px; align-items:start; }
  .boutique-main-image { max-width:520px; margin-inline:auto; }

  .naturea-strip { grid-template-columns:1fr; gap:22px; padding:22px; }
  .naturea-visual img { aspect-ratio:4/3; }

  .faq-section { grid-template-columns:1fr; }
  .faq-list summary { font-size:1.02rem; }

  .booking-section-inner { grid-template-columns:1fr; gap:36px; }
  .booking-form { grid-template-columns:1fr; gap:20px; }
  .booking-consent,
  .booking-form > .button,
  .booking-status,
  .booking-success { grid-column:auto; }
  .booking-form > .button { width:100%; min-width:0; justify-content:center; }
  .booking-success .button { width:100%; justify-content:center; }
  .booking-form .field + .field { margin-top:14px; }

  .contact-details { grid-template-columns:1fr; gap:20px; }
  .contact-actions { flex-direction:column; align-items:stretch; }
  .contact-actions .button { width:100%; justify-content:center; }
  .contact-visual img { max-width:none; }

  .mobile-booking { display:flex; }

  .site-footer { padding-bottom:calc(40px + env(safe-area-inset-bottom)); }
}

@media(max-width:380px) {
  .button { width:100%; justify-content:center; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal.is-pending { opacity:1; transform:none; }
}