/* Harmony · Dra. Ana Cláudia — /v3
   Estrutura espelhada da referência aman.com/wellness (nav 2 linhas com logo
   central, hero full-bleed com legenda, seções centradas, grade de 3 retratos,
   carrossel com barra de progresso, splits alternados). Código e copy próprios;
   fontes livres equivalentes: Source Serif 4 (≈Lyon) + Libre Franklin (≈Whitney). */

@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/source-serif-4-400.woff2') format('woff2')}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/source-serif-4-600.woff2') format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/libre-franklin-400.woff2') format('woff2')}
@font-face{font-family:'Libre Franklin';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/libre-franklin-600.woff2') format('woff2')}

:root{
  --bg:#FBFBFA;--ink:#232325;--muted:#6D6E70;--coffee:#342821;
  --gold:#B79A70;--hair:rgba(35,35,37,.16);--hair-soft:rgba(35,35,37,.09);
  --serif:'Source Serif 4',Georgia,serif;
  --sans:'Libre Franklin',system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.25,.6,.3,1);
  --nav-h:86px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:calc(var(--nav-h) + 16px)}
body{font-family:var(--serif);background:var(--bg);color:var(--ink);line-height:1.45;
  -webkit-font-smoothing:antialiased;overflow-x:clip;font-size:.875rem;letter-spacing:.055em}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.narrow{max-width:700px;margin:0 auto;padding:0 32px;text-align:center}
section{position:relative}

h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:.01em;text-wrap:balance}
h1{font-size:clamp(1.6rem,2.4vw,1.94rem);line-height:1.45;letter-spacing:.5px}
h2{font-size:clamp(1.55rem,2.4vw,1.94rem);line-height:1.45;letter-spacing:.5px}
h3{font-size:1.225rem;line-height:1.45;letter-spacing:normal}
p{color:var(--ink)}
.mutedp{color:var(--muted)}
.caps{font-family:var(--sans);font-size:.632rem;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}

/* text-link com sublinhado fino */
.tlink{display:inline-block;font-family:var(--sans);font-size:.8125rem;font-weight:400;letter-spacing:.8px;
  padding-bottom:5px;position:relative;transition:color .35s}
.tlink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);
  transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1),background .35s}
.tlink:hover{color:var(--gold)}
.tlink:hover::after{background:var(--gold);transform:scaleX(.55)}

/* botão retangular sólido (padrão "Reserve") */
.rsv{display:inline-flex;align-items:center;justify-content:center;background:var(--coffee);color:#FBFBFA;
  font-family:var(--sans);font-size:.875rem;font-weight:400;letter-spacing:.7px;
  padding:15px 34px;border:1px solid var(--coffee);transition:background .35s,color .35s}
.rsv:hover{background:transparent;color:var(--coffee)}

/* anti-FOUC */
.js [data-reveal],.js [data-reveal-group]>*{visibility:hidden}
/* chegada direta numa seção (?s= ou #hash): sem gate (conteúdo aparece mesmo se o JS
   falhar) e com fade de entrada em CSS puro, para não surgir seco */
.js.jump [data-reveal],.js.jump [data-reveal-group]>*,.js.jump [data-split]{visibility:visible!important;
  animation:jumpFade 1s cubic-bezier(.25,.6,.3,1) .25s both}
.js.jump [data-split]{animation-duration:1.1s;animation-delay:.2s}
.js.jump .pillar figure,.js.jump .tcard figure,.js.jump .feat__media,.js.jump .localA__map{
  animation:jumpFadeUp 1.15s cubic-bezier(.25,.6,.3,1) .3s both}
.js.jump [data-reveal-group]>*:nth-child(2){animation-delay:.36s}
.js.jump [data-reveal-group]>*:nth-child(3){animation-delay:.47s}
.js.jump .tcard:nth-child(2) figure{animation-delay:.42s}
.js.jump .tcard:nth-child(3) figure{animation-delay:.54s}
.js.jump .tcard:nth-child(n+4) figure{animation-delay:.62s}
@keyframes jumpFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes jumpFadeUp{from{opacity:0;transform:translateY(18px) scale(1.01)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  .js.jump [data-reveal],.js.jump [data-reveal-group]>*,.js.jump [data-split],
  .js.jump .pillar figure,.js.jump .tcard figure,.js.jump .feat__media,.js.jump .localA__map{animation:none}
}

/* ---------- nav em duas linhas, logo central ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(251,251,250,.96);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--hair-soft)}
.nav__row1{height:86px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  max-width:1400px;margin:0 auto;padding:0 28px}
.nav__menu{display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;
  color:var(--ink);font-family:var(--sans);font-size:.875rem;letter-spacing:.8px;justify-self:start;padding:8px 0}
.nav__menu svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.brand{display:flex;flex-direction:column;align-items:center;gap:6px;justify-self:center;cursor:pointer}
.brand img{display:block}
.brand span{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.42em;
  text-indent:.42em;color:var(--ink)}
.nav__right{justify-self:end}
.nav__menu{display:none}
/* desktop: logo à esquerda, abas centralizadas, Agendar à direita */
.nav__row1>.brand{order:1;justify-self:start}
.nav__tabs{display:flex;align-items:center;gap:30px;order:2;justify-self:center}
.nav__right{order:3}
.nav__tabs a{font-family:var(--sans);font-size:.875rem;letter-spacing:.8px;color:var(--ink);position:relative;white-space:nowrap;
  padding:4px 0;transition:color .3s}
.nav__tabs a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--ink);transform:scaleX(0);transition:transform .3s var(--ease)}
.nav__tabs a:hover::after{transform:scaleX(1)}

/* painel do menu (todas as telas, como na referência) */
.menu-panel{position:fixed;inset:var(--nav-h) 0 auto 0;z-index:59;background:var(--bg);
  border-bottom:1px solid var(--hair);max-height:0;overflow:hidden;visibility:hidden;
  transition:max-height .42s var(--ease),visibility .42s var(--ease)}
.menu-panel.open{max-height:80vh;visibility:visible}
.menu-panel a{display:block;font-family:var(--sans);font-size:.875rem;letter-spacing:.8px;padding:17px 32px;
  border-top:1px solid var(--hair-soft)}
.menu-panel a:first-child{border-top:0}

/* marca d'água do monograma, só no topo (pedido da cliente) */
.heroStack{position:relative}
.heroStack::before{content:"";position:absolute;top:34%;left:-34px;width:min(280px,24vw);height:min(280px,24vw);
  background:url('assets/img/logo-mark.png') no-repeat center/contain;opacity:.038;pointer-events:none;z-index:0}
.heroStack>*{position:relative;z-index:1}

/* ---------- hero: split editorial no desktop (foto contida e nítida) ---------- */
.heroStack{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"title media" "sub media";
  align-items:center;max-width:1400px;margin:0 auto;padding:56px 32px 88px;column-gap:88px}
.heroStack__title{grid-area:title;align-self:end;text-align:left;padding:0;max-width:none;margin:0}
.heroStack__title h1{font-size:clamp(1.94rem,2.8vw,2.42rem)}
.h1-brand{display:block;font-size:1.34em;line-height:1.2;color:#C9A263}
.h1-rest{display:block;font-size:.78em;line-height:1.35}
.heroStack__sub{grid-area:sub;align-self:start;text-align:left;padding:26px 0 0;max-width:none;margin:0}
.heroSub__p{margin:0;max-width:46ch}
.heroA{grid-area:media;position:relative;overflow:hidden;justify-self:end;width:100%;max-width:660px}
.heroA img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 14%}
.heroA::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 74%,rgba(26,22,17,.18))}

.heroSub__p{color:var(--ink)}
.scrollcue{display:none}

/* ---------- bloco centrado (título + texto) ---------- */
.centerhead{padding:66px 0 46px;text-align:center}
.centerhead h2{margin-bottom:18px}
.centerhead p{max-width:66ch;margin:0 auto;color:var(--ink)}

/* ---------- grade de 3 retratos ---------- */
.pillars{padding:10px 0 90px}
.pillars__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pillar figure{overflow:hidden;margin-bottom:26px}
.pillar img{width:100%;aspect-ratio:3/4;object-fit:cover}
.pillar h3{margin-bottom:10px}
.pillar p{color:var(--muted)}

/* ---------- tratamentos: intro à esquerda + carrossel sangrando à direita ---------- */
.treats{padding:96px 0 104px;border-top:1px solid var(--hair-soft)}
.treats__grid{display:grid;grid-template-columns:360px 1fr;gap:72px;align-items:start;
  padding-left:max(32px,calc((100vw - 1240px)/2 + 32px));padding-right:0}
.treats__intro{padding-top:26px}
.treats__intro h2{margin-bottom:22px}
.treats__cats{font-style:italic;font-size:.9375rem;letter-spacing:.4px;margin-bottom:18px}
.treats__intro p{color:var(--ink)}
.treats__intro p+p{margin-top:0}
.treats__note{margin-top:26px;font-family:var(--sans);font-size:.74rem;letter-spacing:.6px;color:var(--muted)}
.treats__slider{min-width:0}
.track{display:flex;gap:34px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding:6px 32px 6px 0;cursor:grab}
.track::-webkit-scrollbar{display:none}
.tcard{flex:0 0 380px;scroll-snap-align:start}
.tcard figure{overflow:hidden;margin-bottom:22px}
.tcard figure img,.pillar figure img,.feat__media img{transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.tcard:hover figure img{transform:scale(1.06) !important}
.pillar:hover figure img{transform:scale(1.05) !important}
.tcard figure img{width:100%;aspect-ratio:4/5;object-fit:cover;user-select:none;-webkit-user-drag:none}
.tcard .caps{display:block;margin-bottom:14px}
.tcard h3{margin-bottom:12px}
.tcard p{color:var(--muted);margin-bottom:20px}
.track__nav{display:flex;align-items:center;justify-content:center;margin-top:44px;padding-right:32px}
.track__bar{position:relative;width:min(560px,72%);height:1px;background:var(--hair-soft)}
.track__bar i{position:absolute;left:0;top:0;height:1px;background:var(--ink);width:20%;transition:left .3s var(--ease),width .3s}

/* ---------- splits alternados ---------- */
.feat{padding:60px 0}
.feat__grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-areas:"media head" "media body";
  column-gap:76px;align-items:center;max-width:1400px;margin:0 auto;padding:0 28px}
.feat--rev .feat__grid{grid-template-columns:.85fr 1.15fr;grid-template-areas:"head media" "body media"}
.feat__head{grid-area:head;align-self:end}
.feat__head .caps{display:block;margin-bottom:16px}
.feat__head h2{margin-bottom:20px}
.feat__media{grid-area:media;overflow:hidden}
.feat__media img{width:100%;aspect-ratio:4/5;max-height:720px;object-fit:cover}
.feat__body{grid-area:body;align-self:start}
.feat__body p{color:var(--muted);margin-bottom:14px}
.feat__body p b{color:var(--ink);font-weight:600}
.feat__quote{margin:22px 0 0;padding-top:20px;border-top:1px solid var(--hair-soft)}
.feat__quote p{font-family:var(--serif);font-size:1.2rem;line-height:1.45;color:var(--ink)}
.feat__quote cite{display:block;font-style:normal;font-family:var(--sans);font-size:.66rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:10px}
.feat__body .tlink{margin-top:16px}

/* ---------- como funciona ---------- */
.stepsA{padding:80px 0 96px;border-top:1px solid var(--hair-soft)}
.stepsA .centerhead{padding-top:0}
.stepsA__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.stepA{border-top:1px solid var(--hair);padding-top:24px}
.stepA .caps{display:block;color:var(--gold);margin-bottom:14px}
.stepA h3{margin-bottom:10px}
.stepA p{color:var(--muted)}

/* ---------- avaliação ---------- */
.reviewA{padding:96px 0;border-top:1px solid var(--hair-soft);text-align:center}
.reviewA blockquote p{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,1.94rem);line-height:1.45;letter-spacing:.5px;max-width:26ch;margin:0 auto}
.reviewA blockquote footer{margin-top:22px;font-family:var(--sans);font-size:.8125rem;color:var(--muted);letter-spacing:.8px}
.reviewA .stars{color:var(--gold);letter-spacing:.3em;margin-top:26px;font-size:.95rem}
.reviewA .caps{display:block;margin-top:8px}
.reviewA .tlink{margin-top:26px}

/* ---------- FAQ ---------- */
.faqA{padding:0 0 96px}
.faqA__list{max-width:740px;margin:0 auto;padding:0 32px}
.faqA__list details{border-bottom:1px solid var(--hair-soft)}
.faqA__list summary{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  cursor:pointer;padding:22px 0;font-family:var(--serif);font-size:1.225rem}
.faqA__list summary::-webkit-details-marker{display:none}
.faqA__list summary span{flex:0 0 auto;color:var(--muted);font-family:var(--sans);transition:transform .3s var(--ease)}
.faqA__list details[open] summary span{transform:rotate(45deg)}
.faqA__list details p{color:var(--muted);padding:0 40px 22px 0}

/* ---------- onde estamos ---------- */
.localA{padding:88px 0;border-top:1px solid var(--hair-soft)}
.localA__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
.localA__info .caps{display:block;margin-bottom:16px}
.localA__info h2{margin-bottom:26px}
.localA__row{padding:16px 0;border-top:1px solid var(--hair-soft);color:var(--muted)}
.localA__row b{color:var(--ink);font-weight:600;display:block;font-family:var(--sans);font-size:.86rem;margin-bottom:2px}
.localA__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:28px}
.localA__map{overflow:hidden;border:1px solid var(--hair-soft);min-height:420px}
.localA__map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}

/* ---------- CTA final ---------- */
.ctaA{padding:104px 0;text-align:center;border-top:1px solid var(--hair-soft)}
.ctaA h2{max-width:22ch;margin:0 auto 16px}
.ctaA p{color:var(--muted);max-width:48ch;margin:0 auto 34px}

/* ---------- footer ---------- */
.footA{border-top:1px solid var(--hair);padding:60px 0 30px;text-align:center}
.footA__brand{display:inline-flex;flex-direction:column;align-items:center;gap:10px}
.footA__brand span{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.42em;text-indent:.42em}
.footA__brand small{font-family:var(--sans);font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.footA__addr{margin-top:20px;padding:0 24px;font-family:var(--sans);font-size:.8125rem;letter-spacing:.8px;color:var(--muted)}
.footA__addr a{border-bottom:1px solid var(--gold);padding-bottom:2px}
.footA__social{margin-top:24px;display:flex;justify-content:center}
.footA__social a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--hair);
  color:var(--ink);border-radius:50%;transition:border-color .3s,color .3s}
.footA__social a:hover{border-color:var(--gold);color:var(--gold)}
.footA__social svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footA__legalbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  max-width:1240px;margin:42px auto 0;padding:20px 32px 0;border-top:1px solid var(--hair-soft);
  font-family:var(--sans);font-size:.74rem;letter-spacing:.6px;color:var(--muted)}
.footA__legalbar a{text-decoration:underline;text-underline-offset:2px}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:70;width:58px;height:58px;border-radius:50%;
  display:grid;place-items:center;background:#25D366;color:#fff;
  box-shadow:0 16px 34px -12px rgba(37,211,102,.65);transition:transform .25s var(--ease)}
.wa-float:hover{transform:scale(1.08)}

#smooth-content{padding-top:var(--nav-h);will-change:transform}

/* ================= responsivo ================= */
@media (max-width:1024px){
  .feat__grid{column-gap:44px}
  .localA__grid{gap:40px}
}
@media (max-width:820px){
  :root{--nav-h:72px}
  .nav__row1{height:72px;padding:0 20px}
  .nav__menu{display:flex;order:1}
  .nav__menu span{display:none}
  .nav__tabs{display:none}
  .nav__row1>.brand{order:2;justify-self:center}
  .nav__right{order:3}
  .brand img{height:30px !important;width:auto !important}
  .nav__right .rsv{padding:10px 16px;font-size:.72rem}

  .heroStack{display:flex;flex-direction:column;align-items:stretch;padding:0;column-gap:0;max-width:none}
  .heroStack::before{top:4px;left:50%;transform:translateX(-50%);width:170px;height:170px;opacity:.05}
  .heroA{order:2;height:52svh;min-height:320px;max-width:none;width:100%;justify-self:stretch}
  .heroA img{height:100%;aspect-ratio:auto;object-position:50% 26%}
  .heroStack__title{order:1;align-self:stretch;padding:28px 24px 18px;text-align:center}
  .heroStack__title h1{font-size:clamp(1.6rem,2.4vw,1.94rem)}
  .heroStack__sub{order:3;align-self:stretch;padding:24px 24px 42px;text-align:center}
  .heroSub__p{margin:0 auto;max-width:64ch}
  .scrollcue{display:block;position:relative;margin:26px auto 0;width:1px;height:46px;background:var(--hair-soft)}
  .scrollcue i{position:absolute;left:0;top:0;width:1px;height:18px;background:var(--gold)}
  .centerhead{padding:46px 0 32px}
  .pillars{padding:0 0 60px}
  .pillars__grid{grid-template-columns:1fr;gap:40px}
  .treats{padding:56px 0 64px}
  .treats__grid{grid-template-columns:1fr;gap:36px;padding-left:24px}
  .treats__intro{padding-top:0;padding-right:24px}
  .track{padding:6px 24px 6px 0;gap:20px}
  .tcard{flex:0 0 80%}
  .track__nav{padding-right:24px;margin-top:34px}
  .feat{padding:40px 0}
  .feat__grid,.feat--rev .feat__grid{grid-template-columns:1fr;grid-template-areas:"head" "media" "body";
    column-gap:0;padding:0}
  .feat__head{padding:0 24px 22px}
  .feat__body{padding:22px 24px 0}
  .feat__media img{max-height:none;aspect-ratio:4/5}
  .stepsA{padding:56px 0 64px}
  .stepsA__grid{grid-template-columns:1fr;gap:30px}
  .reviewA{padding:64px 0}
  .faqA{padding:0 0 64px}
  .localA{padding:56px 0}
  .localA__grid{grid-template-columns:1fr}
  .localA__ctas .rsv{width:100%}
  .localA__map,.localA__map iframe{min-height:320px}
  .ctaA{padding:70px 0}
  .footA__legalbar{justify-content:center;text-align:center}
}
