/* =====================================================================
   Jucilaine Grenzoski Estética & Spa - folha de estilo da landing page
   Paleta e tipografia derivadas da revista institucional (Canva, 2026).
   ===================================================================== */

/* ---------- Fontes self-hosted ---------- */
@font-face{font-family:'Cormorant Garamond';src:url('../fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/montserrat-latin-200-normal.woff2') format('woff2');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/montserrat-latin-300-normal.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/montserrat-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('../fonts/montserrat-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

/* ---------- Design tokens ---------- */
:root{
  --ink:#101E39;            /* navy da marca */
  --ink-soft:#2C3B57;
  --taupe:#CFC6C1;          /* fundo da revista */
  --taupe-deep:#B6A9A1;
  --sand:#E6DFD9;
  --cream:#F8F5F2;
  --white:#FFFFFF;
  --gold:#A9906A;
  --gold-soft:#C8B393;
  --text:#2A2A2A;
  --text-soft:#6A6560;

  --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-body:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --maxw:1240px;
  --pad:clamp(1.25rem,5vw,5rem);
  --radius:2px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --slow:.9s var(--ease);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--text);
  font-family:var(--font-body);font-weight:300;font-size:clamp(.94rem,.35vw + .84rem,1rem);
  line-height:1.85;letter-spacing:.012em;overflow-x:hidden;
}
img,picture{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
::selection{background:var(--ink);color:var(--cream)}

.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--cream);padding:.7rem 1.2rem;z-index:99}
.skip:focus{left:.6rem;top:.6rem}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

/* ---------- Tipografia utilitária ---------- */
.display{
  font-family:var(--font-display);font-weight:300;letter-spacing:.02em;
  line-height:1.06;color:var(--ink);margin:0;
  font-size:clamp(2rem,4.6vw,3.6rem);
}
.eyebrow{
  display:block;font-size:.62rem;font-weight:400;text-transform:uppercase;
  letter-spacing:.42em;color:var(--gold);margin-bottom:1rem;
}
.eyebrow-wide{letter-spacing:.58em}
.eyebrow-light{color:var(--gold-soft)}
.rule{width:54px;height:1px;background:var(--gold);margin:1.4rem 0;opacity:.85}
.rule-center{margin-inline:auto}
.rule-light{background:var(--gold-soft)}
.section-lead{max-width:56ch;margin:0 auto;color:var(--text-soft)}

/* ---------- Ícones ---------- */
.ico{width:1.05em;height:1.05em;flex:0 0 auto;vertical-align:-.15em}
.ico-arrow{width:1.35em;transition:transform .45s var(--ease)}

/* ---------- Botões ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.95rem 1.7rem;border-radius:var(--radius);
  font-size:.68rem;font-weight:400;text-transform:uppercase;letter-spacing:.24em;
  transition:background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease);
}
.btn:hover .ico-arrow{transform:translateX(5px)}
.btn-solid{background:var(--ink);color:var(--cream)}
.btn-solid:hover{background:var(--ink-soft);transform:translateY(-2px)}
.btn-outline{border:1px solid rgba(16,30,57,.35);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.btn-ghost{color:var(--ink);padding-inline:.2rem;border-bottom:1px solid rgba(16,30,57,.25)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-light{background:var(--cream);color:var(--ink)}
.btn-light:hover{background:var(--white);transform:translateY(-2px)}

/* ---------- Navegação ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  background:transparent;transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
  padding:1.4rem 0;
}
.nav.is-stuck{background:rgba(248,245,242,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(16,30,57,.08);padding:.7rem 0}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:flex;align-items:center;gap:2rem}
.nav-brand{display:flex;align-items:center;gap:.75rem;margin-right:auto}
.nav-logo{width:38px;height:auto;transition:width .5s var(--ease)}
.nav.is-stuck .nav-logo{width:32px}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.15}
.nav-brand-text strong{font-family:var(--font-display);font-weight:400;font-size:1.05rem;letter-spacing:.04em;color:var(--ink)}
.nav-brand-text em{font-style:normal;font-size:.52rem;text-transform:uppercase;letter-spacing:.4em;color:var(--text-soft)}
.nav-links{display:flex;gap:2rem}
.nav-links a{position:relative;font-size:.66rem;text-transform:uppercase;letter-spacing:.28em;color:var(--ink);padding-bottom:.3rem}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .45s var(--ease)}
.nav-links a:hover::after{width:100%}
.nav-cta{padding:.72rem 1.3rem}
.btn-sm{padding:.6rem 1.1rem;font-size:.58rem}
.nav-account{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;margin-left:.75rem;
  border:1px solid rgba(16,30,57,.35);border-radius:var(--radius);
  color:var(--ink);transition:background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease);
}
.nav-account:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.nav-account .ico{width:1.15em;height:1.15em}
.nav-account.is-in{border-color:var(--gold);color:var(--gold)}
.nav-account.is-in:hover{background:var(--gold);color:var(--cream);border-color:var(--gold)}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;
  grid-template-columns:1fr 1fr;align-items:center;
  background:linear-gradient(180deg,var(--cream) 0%,var(--sand) 100%);
}
.hero-copy{padding:8rem var(--pad) 6rem;text-align:center;animation:rise 1.3s var(--ease) both}
.hero-title{font-size:clamp(2.9rem,8vw,6.4rem);letter-spacing:.01em}
.hero-title-line{display:inline-block;overflow:hidden}
.hero-sub{
  margin:1.1rem 0 0;font-size:.66rem;text-transform:uppercase;letter-spacing:.42em;color:var(--text-soft);
}
.hero-text{max-width:44ch;margin:0 auto;color:var(--text-soft)}
.hero-actions{display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:center;align-items:center;margin-top:2.4rem}
.hero-media{position:relative;height:100svh;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover}
.kenburns{animation:kenburns 22s var(--ease) infinite alternate}
.hero-badge{
  position:absolute;left:50%;bottom:2.4rem;transform:translateX(-50%);
  display:grid;place-items:center;width:112px;height:112px;border-radius:50%;
  background:rgba(16,30,57,.55);backdrop-filter:blur(6px);
  animation:fade 1.6s var(--ease) both .6s;
}
.hero-badge-logo{width:74px}
.hero-scroll{
  position:absolute;left:var(--pad);bottom:2rem;display:flex;align-items:center;gap:.6rem;
  font-size:.56rem;text-transform:uppercase;letter-spacing:.36em;color:var(--text-soft);
}
.hero-scroll .ico{animation:bob 2.4s var(--ease) infinite}

/* ---------- Seções ---------- */
.section{max-width:var(--maxw);margin:0 auto;padding:clamp(4.5rem,9vw,8.5rem) var(--pad)}
.section-head{text-align:center;margin-bottom:clamp(2.5rem,5vw,4rem)}

/* Sobre */
.founder{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.founder-media{position:relative;overflow:hidden}
.founder-media::after{content:'';position:absolute;inset:auto 0 0 0;height:35%;background:linear-gradient(180deg,transparent,rgba(16,30,57,.12))}
.founder-media img{width:100%;aspect-ratio:3/4;object-fit:cover;transform:scale(1.02);transition:transform 1.4s var(--ease)}
.founder-media:hover img{transform:scale(1.06)}
.founder-copy p{color:var(--text-soft);max-width:52ch}
.pillars{margin-top:2.2rem;display:grid;gap:1rem}
.pillars li{display:flex;align-items:center;gap:.9rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ink)}
.pillars .ico{color:var(--gold);width:1.25rem;height:1.25rem}

/* Bem-vinda */
.welcome{position:relative;min-height:78vh;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.welcome-bg{position:absolute;inset:0;z-index:-1}
.welcome-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05)}
.welcome::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(16,30,57,.72),rgba(16,30,57,.35))}
.welcome-inner{max-width:60ch;padding:clamp(3rem,7vw,6rem) var(--pad);text-align:center;color:var(--cream)}
.welcome-title{color:var(--cream);letter-spacing:.22em;font-size:clamp(1.7rem,4vw,2.8rem);text-transform:uppercase}
.welcome-inner p{color:rgba(248,245,242,.85)}
.welcome-inner .rule{margin-inline:auto}

/* ---------- Rituais: tabs ---------- */
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:1rem}
.tab{
  position:relative;display:inline-flex;align-items:baseline;gap:.5rem;
  padding:.8rem 1.35rem;border:1px solid transparent;border-radius:var(--radius);
  font-size:.63rem;text-transform:uppercase;letter-spacing:.26em;color:var(--text-soft);
  transition:color .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease);
}
.tab:hover{color:var(--ink);background:rgba(207,198,193,.35)}
.tab.is-active{color:var(--ink);border-color:rgba(169,144,106,.5);background:rgba(207,198,193,.28)}
.tab-count{font-size:.55rem;letter-spacing:.1em;color:var(--gold)}
.tab-short{display:none}
.tab-tagline{text-align:center;color:var(--text-soft);font-style:italic;font-family:var(--font-display);font-size:1.15rem;letter-spacing:.02em;margin:0 auto 2.6rem;max-width:52ch;transition:opacity .4s var(--ease)}
.tab-tagline.is-fading{opacity:0}

.loading{display:flex;gap:.4rem;justify-content:center;height:0;opacity:0;transition:opacity .3s var(--ease)}
.loading.htmx-request{opacity:1;height:auto;margin-bottom:1.4rem}
.loading span{width:5px;height:5px;border-radius:50%;background:var(--gold);animation:pulse 1.1s var(--ease) infinite}
.loading span:nth-child(2){animation-delay:.18s}
.loading span:nth-child(3){animation-delay:.36s}

/* ---------- Cards ---------- */
.grid{
  display:grid;gap:clamp(1.1rem,2.2vw,2rem);
  grid-template-columns:repeat(auto-fill,minmax(268px,1fr));
}
.card{background:var(--white);box-shadow:0 1px 0 rgba(16,30,57,.06);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -30px rgba(16,30,57,.42)}
.card-btn{display:block;width:100%;text-align:left}
.card-media{position:relative;display:block;overflow:hidden;aspect-ratio:4/5}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter 1.2s var(--ease)}
.card:hover .card-media img{transform:scale(1.07)}
.card-veil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(16,30,57,.32));opacity:0;transition:opacity .6s var(--ease)}
.card:hover .card-veil{opacity:1}
.card-body{display:block;padding:1.5rem 1.5rem 1.7rem}
.card-body .eyebrow{margin-bottom:.55rem;font-size:.55rem;letter-spacing:.34em}
.card-title{display:block;font-family:var(--font-display);font-size:1.6rem;font-weight:400;line-height:1.12;color:var(--ink);margin-bottom:.7rem}
.card-summary{display:block;font-size:.83rem;line-height:1.75;color:var(--text-soft);min-height:4.4em}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.2rem}
.chip{display:inline-flex;align-items:center;gap:.45rem;font-size:.58rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-soft)}
.chip .ico{color:var(--gold)}
.chip-lg{font-size:.64rem;padding:.5rem .9rem;border:1px solid rgba(169,144,106,.45)}
.chip-ghost{font-size:.6rem;padding:.5rem .9rem;background:var(--sand);color:var(--ink)}
.card-more{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto;font-size:.58rem;text-transform:uppercase;letter-spacing:.22em;color:var(--ink)}
.card:hover .card-more .ico-arrow{transform:translateX(5px)}

/* Divulgação progressiva: no mobile a grade começa colapsada */
.grid-more{
  display:none;grid-column:1/-1;align-items:center;justify-content:center;gap:.6rem;
  width:100%;padding:1.05rem 1.2rem;border:1px solid rgba(169,144,106,.45);
  border-radius:var(--radius);background:transparent;color:var(--ink);
  font-size:.6rem;text-transform:uppercase;letter-spacing:.22em;
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease);
}
.grid-more:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.grid-more .ico-arrow{transition:transform .4s var(--ease)}
.grid-more:hover .ico-arrow{transform:translateX(5px)}

/* ---------- Voucher ---------- */
.voucher{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,5vw,5rem);
  background:var(--ink);color:var(--cream);padding:clamp(4rem,8vw,7rem) var(--pad);
}
.voucher-media{overflow:hidden}
.voucher-media img{width:100%;aspect-ratio:1/1;object-fit:cover;transform:scale(1.02);transition:transform 1.6s var(--ease)}
.voucher-media:hover img{transform:scale(1.07)}
.voucher-copy{max-width:56ch}
.voucher-copy .display{color:var(--cream)}
.voucher-copy p{color:rgba(248,245,242,.78)}
.quote{
  margin:2rem 0;padding-left:1.4rem;border-left:1px solid var(--gold-soft);
  font-family:var(--font-display);font-size:1.35rem;line-height:1.5;color:var(--gold-soft);font-style:italic;
}

/* ---------- Home Spa ---------- */
.homespa{background:linear-gradient(180deg,var(--cream),var(--sand) 90%);max-width:none}
.homespa>*{max-width:var(--maxw);margin-inline:auto}
.products{display:grid;gap:clamp(1.1rem,2.2vw,2rem);grid-template-columns:repeat(auto-fill,minmax(238px,1fr))}
.product{background:var(--white);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.product:hover{transform:translateY(-6px);box-shadow:0 24px 48px -30px rgba(16,30,57,.35)}
.product-btn{display:block;width:100%;text-align:center}
.product-media{display:block;overflow:hidden;aspect-ratio:1/1}
.product-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.product:hover .product-media img{transform:scale(1.06)}
.product-body{display:block;padding:1.4rem 1.3rem 1.8rem}
.product-title{display:block;font-family:var(--font-display);font-size:1.3rem;color:var(--ink);line-height:1.2;margin-bottom:.6rem}
.product-text{display:block;font-size:.79rem;color:var(--text-soft);line-height:1.7}
.product-spec{display:inline-block;margin-top:1rem;font-size:.55rem;text-transform:uppercase;letter-spacing:.26em;color:var(--gold)}

/* ---------- Vem pro spa / contato ---------- */
.cta{background:var(--taupe);padding:clamp(4.5rem,9vw,8rem) var(--pad)}
.cta-head{max-width:var(--maxw);margin:0 auto clamp(2.5rem,5vw,4rem);text-align:center}
.cta-title{font-size:clamp(2.4rem,6vw,4.4rem)}
.cta-head p{color:var(--ink-soft);max-width:46ch;margin-inline:auto}
.gallery{
  max-width:var(--maxw);margin:0 auto;display:grid;gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
.gallery-item{margin:0;overflow:hidden}
.gallery-item img{width:100%;aspect-ratio:2/3;object-fit:cover;transition:transform 1.3s var(--ease),filter 1.3s var(--ease);filter:saturate(.94)}
.gallery-item:hover img{transform:scale(1.06);filter:saturate(1.05)}
.contact{
  max-width:var(--maxw);margin:clamp(3rem,6vw,5rem) auto 0;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2.5rem;
  padding-top:2.5rem;border-top:1px solid rgba(16,30,57,.14);
}
.contact-list{display:grid;gap:1.1rem}
.contact-list li{display:flex;align-items:center;gap:.9rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ink)}
.contact-list .ico{color:var(--gold);width:1.35rem;height:1.35rem}
.contact-list a{border-bottom:1px solid transparent;transition:border-color .4s var(--ease)}
.contact-list a:hover{border-color:var(--gold)}
.contact-qr{margin:0;text-align:center}
.contact-qr img{width:132px;background:var(--white);padding:.7rem;box-shadow:0 18px 40px -28px rgba(16,30,57,.5)}
.contact-qr figcaption{margin-top:.8rem;font-size:.54rem;text-transform:uppercase;letter-spacing:.3em;color:var(--ink-soft)}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(248,245,242,.7);text-align:center;padding:4rem var(--pad)}
.footer-logo{width:96px;margin:0 auto 1.6rem;filter:brightness(0) invert(1) opacity(.9)}
.footer-line{margin:0;font-family:var(--font-display);font-size:1.2rem;color:var(--cream);letter-spacing:.06em}
.footer-small{margin:.5rem 0 0;font-size:.58rem;text-transform:uppercase;letter-spacing:.26em}

/* ---------- Overlay de detalhe (HTMX) ---------- */
.overlay{
  position:fixed;inset:0;z-index:80;display:grid;padding:clamp(1rem,4vw,3rem);
  place-items:center;
  place-items:safe center;   /* em overflow, não corta o topo do painel */
  overflow-y:auto;overscroll-behavior:contain;
}
.overlay-backdrop{position:absolute;inset:0;background:rgba(16,30,57,.62);backdrop-filter:blur(6px);animation:fade .45s var(--ease) both}
.overlay-panel{
  position:relative;display:grid;grid-template-columns:.85fr 1.15fr;
  width:min(980px,100%);overflow:auto;background:var(--white);
  max-height:88vh;             /* fallback: navegadores sem svh */
  max-height:min(88svh,100%);  /* nunca ultrapassa a área útil do overlay */
  box-shadow:0 40px 90px -40px rgba(16,30,57,.7);
  animation:panel .7s var(--ease) both;
}
.overlay-media{overflow:hidden}
.overlay-media img{width:100%;height:100%;min-height:280px;object-fit:cover}
.overlay-content{padding:clamp(2rem,4vw,3.4rem)}
.overlay-title{font-size:clamp(1.9rem,3.4vw,2.9rem);margin-bottom:.2rem}
.overlay-text{color:var(--text-soft);margin:0 0 1.8rem}
.overlay-close{
  position:absolute;right:.9rem;top:.9rem;z-index:2;display:grid;place-items:center;
  width:42px;height:42px;border-radius:50%;background:rgba(248,245,242,.9);color:var(--ink);
  transition:background .4s var(--ease),transform .4s var(--ease);
}
.overlay-close:hover{background:var(--ink);color:var(--cream);transform:rotate(90deg)}
.protocol{margin-bottom:1.8rem}
.protocol-label{display:flex;align-items:center;gap:.6rem;font-size:.58rem;text-transform:uppercase;letter-spacing:.3em;color:var(--gold);margin-bottom:.9rem}
.protocol-list{display:grid;gap:.55rem}
.protocol-list li{position:relative;padding-left:1.3rem;font-size:.83rem;color:var(--text);line-height:1.65}
.protocol-list li::before{content:'';position:absolute;left:0;top:.72em;width:6px;height:1px;background:var(--gold)}
.overlay-foot{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.9rem}
body.is-locked{overflow:hidden;overscroll-behavior:none}

/* ---------- Animações ---------- */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes panel{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:none}}
@keyframes kenburns{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.09) translate3d(1.5%,-1.5%,0)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}

.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .95s var(--ease),transform .95s var(--ease)}
.js .reveal.is-visible{opacity:1;transform:none}
.grid .reveal:nth-child(1),.products .reveal:nth-child(1),.gallery .reveal:nth-child(1){transition-delay:0s}
.grid .reveal:nth-child(2),.products .reveal:nth-child(2),.gallery .reveal:nth-child(2){transition-delay:.07s}
.grid .reveal:nth-child(3),.products .reveal:nth-child(3),.gallery .reveal:nth-child(3){transition-delay:.14s}
.grid .reveal:nth-child(4),.products .reveal:nth-child(4),.gallery .reveal:nth-child(4){transition-delay:.21s}
.grid .reveal:nth-child(5),.gallery .reveal:nth-child(5){transition-delay:.28s}
.grid .reveal:nth-child(6),.gallery .reveal:nth-child(6){transition-delay:.35s}
.grid .reveal:nth-child(7){transition-delay:.42s}
.grid .reveal:nth-child(8){transition-delay:.49s}
.grid .reveal:nth-child(9){transition-delay:.56s}
.grid .reveal:nth-child(10){transition-delay:.63s}

/* Transições de troca do HTMX */
#catalog-grid.htmx-swapping{opacity:0;transform:translateY(10px)}
#catalog-grid{transition:opacity .3s var(--ease),transform .3s var(--ease)}

/* ---------- Responsivo ---------- */
@media (max-width:1024px){
  .hero{grid-template-columns:1fr}
  .hero-media{height:64svh;order:-1}
  .hero-copy{padding-top:4rem}
  .hero-scroll{display:none}
  .founder,.voucher{grid-template-columns:1fr}
  .overlay-panel{grid-template-columns:1fr}
  .overlay-media img{min-height:220px;max-height:38svh}
  .nav-links{display:none}
}
@media (max-width:600px){
  .nav-cta{display:none}
  .card-summary{min-height:0}

  /* Rituais enxutos: sem texto de apoio, abas em linha única */
  .catalog-lead{display:none}
  .catalog .section-head{margin-bottom:1.6rem}
  .tabs{flex-wrap:nowrap;justify-content:center;gap:.15rem;margin-bottom:.85rem}
  .tab{
    flex:0 1 auto;min-width:0;gap:0;
    padding:.6rem .5rem;font-size:.54rem;letter-spacing:.06em;white-space:nowrap;
  }
  .tab-name,.tab-count{display:none}
  .tab-short{display:inline}
  .tab-tagline{font-size:1rem;margin-bottom:1.9rem}

  /* Só os 3 primeiros rituais; o restante fica atrás do "ver todos" */
  .grid.is-collapsed>.card:nth-of-type(n+4){display:none}
  .grid.is-collapsed .grid-more{display:inline-flex}

  /* Expandido: carrossel horizontal com o cartão sempre centralizado.
     Sangra até as bordas da tela e usa recuo de (100vw - 78vw)/2 = 11vw,
     para que o primeiro e o último cartão também parem no centro. */
  .grid.is-carousel{
    display:flex;flex-wrap:nowrap;gap:.9rem;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
    margin-inline:calc(var(--pad) * -1);
    padding:.2rem 11vw .8rem;
    scroll-padding-inline:0;
    scrollbar-width:none;
    scroll-margin:4.5rem 0 1.2rem;   /* folga do cabeçalho fixo ao reposicionar */
  }
  .grid.is-carousel::-webkit-scrollbar{display:none}
  .grid.is-carousel>.card{
    flex:0 0 78vw;scroll-snap-align:center;scroll-snap-stop:always;
  }
  .grid.is-carousel>.card:hover{transform:none}
  /* Sem fade/stagger dentro do carrossel: o cartão fora da tela ficava em
     opacity:0 e só aparecia depois de ~1s, parecendo imagem não carregada. */
  .grid.is-carousel>.card.reveal{
    opacity:1;transform:none;transition:none;transition-delay:0s;
  }
  /* o arrasto é do carrossel: a imagem não pode capturar o gesto */
  .grid.is-carousel .card-media img{-webkit-user-drag:none;user-select:none;pointer-events:none}

  .grid-hint{
    display:flex;align-items:center;justify-content:center;gap:.5rem;
    margin:.2rem 0 0;font-size:.55rem;text-transform:uppercase;
    letter-spacing:.22em;color:var(--text-soft);
  }
  .grid-hint .ico-arrow{color:var(--gold)}
  /* Detalhe mais compacto: cabe na tela sem rolagem */
  .overlay-content{padding:1.5rem 1.4rem}
  .overlay-text{margin-bottom:1.1rem}
  .protocol{margin-bottom:1.2rem}
  .overlay-foot{margin-bottom:1.2rem}

  .contact{justify-content:center;text-align:center}
  .contact-list li{justify-content:center}

}

/* Telas muito estreitas: aperta as abas mais um pouco, sem quebrar a linha */
@media (max-width:380px){
  .tab{padding:.55rem .38rem;font-size:.5rem;letter-spacing:.04em}
  .tabs{gap:.1rem}
}

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


/* ---------- Login e área do cliente ---------- */
.account-body{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--cream);padding:2rem 1.25rem;
}
.account{
  width:100%;max-width:420px;text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.account-brand{display:inline-flex;margin-bottom:2.2rem}
.account-logo{width:52px;height:auto}
.account-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;margin-bottom:1.4rem;
  border:1px solid rgba(16,30,57,.2);border-radius:50%;color:var(--gold);
}
.account-mark .ico{width:1.5em;height:1.5em}
.account-title{font-size:clamp(2rem,6vw,2.8rem)}
.account-text{max-width:34ch;color:var(--text-soft);margin:0 0 1.8rem}
.account-mail{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.22em;
  color:var(--text-soft);margin:0 0 1.6rem;
}
.account-alert{
  display:flex;align-items:flex-start;gap:.6rem;text-align:left;
  width:100%;margin:0 0 1.6rem;padding:.85rem 1rem;
  border-left:2px solid var(--gold);background:var(--sand);
  font-size:.82rem;line-height:1.6;color:var(--ink);
}
.account-alert .ico{margin-top:.15rem;color:var(--gold)}
.account-btn{width:100%;justify-content:center}
.account-form{margin-top:1.4rem}
.account-back{margin-top:1.4rem;gap:.5rem}
