:root{
  --nude-100:#f6ece3; --nude-200:#f3e3d8; --nude-300:#ecd8cb; --nude-400:#efdfd3;
  --ivory:#fbf4ee; --line:#e4d2c4;
  --navy-700:#2c2c42; --navy-900:#23233a;
  --gold:#b08d57; --gold-200:#e7cfa3;
  --ink:#2c2c42; --ink-soft:#5f5347; --ink-mute:#7a6a5e;
  --wpp:#25d366;
  --maxw:1180px;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--sans);color:var(--ink);background:var(--nude-200);line-height:1.6;font-weight:300;overflow-x:clip;max-width:100%}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.serif{font-family:var(--serif)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:64px 0}
.label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:14px}
.label--center{text-align:center}
i{font-style:italic}

.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,#caa979 0%,#b08d57 55%,#9c7a47 100%);color:#23233a;
  font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;
  padding:17px 36px;border-radius:40px;cursor:pointer;
  box-shadow:0 10px 26px rgba(176,141,87,.40);
  transition:transform .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(176,141,87,.55)}
.btn:active{transform:translateY(-1px)}
/* reflexo que cruza no hover */
.btn::before{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);pointer-events:none}
.btn:hover::before{animation:btnSheen .75s ease}
@keyframes btnSheen{from{left:-130%}to{left:150%}}
.btn--gold{background:linear-gradient(135deg,#e7cfa3 0%,#c9a978 55%,#b08d57 100%);color:#23233a}
/* botão discreto (mapa) */
.btn--outline{background:transparent;border:1px solid var(--gold);color:var(--ink);box-shadow:none;margin-top:8px}
.btn--outline::before{display:none}
.btn--outline:hover{background:var(--gold);color:var(--navy-900);box-shadow:0 12px 26px rgba(176,141,87,.4)}
/* CTAs principais: seta + pulso de destaque */
.btn--cta::after{content:"→";font-size:15px;line-height:1;transition:transform .2s ease}
.btn--cta:hover::after{transform:translateX(5px)}
.btn--cta{animation:btnPulse 2.6s ease-in-out infinite}
.btn--cta:hover{animation-play-state:paused}
@keyframes btnPulse{
  0%,100%{box-shadow:0 10px 26px rgba(176,141,87,.40)}
  50%{box-shadow:0 12px 30px rgba(176,141,87,.6),0 0 0 7px rgba(176,141,87,.12)}}

/* NAV */
.nav{position:sticky;top:0;z-index:40;background:rgba(243,227,216,.86);backdrop-filter:blur(10px);border-bottom:1px solid rgba(176,141,87,.18)}
.nav__inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding-top:15px;padding-bottom:15px;
  font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-soft)}
.nav__brand{position:absolute;left:0;right:0;text-align:center;letter-spacing:3px;font-size:16px;color:var(--ink);font-weight:600;pointer-events:none}
.nav__link{transition:color .15s}.nav__link:hover{color:var(--gold)}
.nav__link--cta{color:var(--gold)}

/* HERO */
.hero{position:relative;background:linear-gradient(160deg,var(--nude-200),var(--nude-300));overflow:hidden}
.hero__orb{position:absolute;right:-90px;top:60px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#f9f0e7,#d9b9a3);opacity:.5;filter:blur(4px)}
.hero__grid{position:relative;display:grid;gap:30px;padding:26px 22px 58px}
.hero__wm{text-align:center;letter-spacing:5px;font-weight:600;font-size:21px;color:var(--ink)}
.hero__wm small{display:block;font-family:var(--sans);letter-spacing:4px;font-size:9px;font-weight:400;color:var(--ink-mute);margin-top:4px}
.hero h1{font-size:clamp(44px,12vw,58px);line-height:1.02;font-weight:500;margin:30px 0 16px}
.hero h1 i{color:var(--gold)}
.hero__lead{max-width:46ch;color:var(--ink-soft);font-size:15px}
.hero__micro{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin:14px 0 26px;display:flex;align-items:center;gap:8px}
.hero__micro::before{content:"";width:22px;height:1px;background:var(--gold)}
.hero__media img{border-radius:18px;width:100%;max-height:560px;object-fit:cover;object-position:center 22%;box-shadow:0 22px 50px rgba(44,44,66,.20)}

/* TRUST */
.trust{background:var(--navy-700);color:var(--nude-200)}
.trust__row{display:flex;justify-content:space-between;align-items:center;text-align:center;padding:26px 22px;gap:8px}
.trust__sep{width:1px;align-self:stretch;background:rgba(231,207,163,.25)}
.trust__n{display:block;font-size:24px;color:var(--gold-200);line-height:1.1}
.trust__t{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#b9b6c4}

/* SOBRE */
.sobre{background:var(--nude-100)}
.sobre__grid{display:grid;gap:28px}
.sobre__media img{border-radius:18px;width:100%;max-height:560px;object-fit:cover;object-position:center 20%}
.sobre h2{font-size:clamp(34px,9vw,46px);font-weight:500;margin:4px 0 16px;line-height:1.04}
.sobre__copy p{color:var(--ink-soft);max-width:52ch}
.sobre__sign{margin-top:18px!important;color:var(--gold);font-style:italic;font-size:18px}

/* RITUAL */
.ritual{background:var(--nude-400);text-align:center}
.ritual__title{font-size:clamp(30px,8vw,42px);font-weight:500;margin-bottom:30px}
.ritual__steps{list-style:none;display:grid;gap:14px;text-align:left;max-width:560px;margin:0 auto}
.step{background:var(--ivory);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;gap:18px;align-items:center}
.step__n{font-size:38px;color:var(--gold);line-height:1;width:38px;flex:none;text-align:center}
.step b{font-size:19px;display:block;margin-bottom:2px}
.step span{font-size:13px;color:var(--ink-mute)}

/* PROTOCOLOS */
.proto{background:var(--nude-100)}
.proto__h{font-size:clamp(30px,8vw,40px);font-weight:500;text-align:center;margin-bottom:6px}
.proto__h--mt{margin-top:54px}
.proto__sub{text-align:center;color:var(--ink-mute);font-size:13px;margin-bottom:28px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pcard{background:var(--ivory);border:1px solid var(--line);border-radius:14px;padding:20px 17px;transition:transform .15s,box-shadow .15s}
.pcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(44,44,66,.10)}
.pcard b{font-size:19px;display:block;margin-bottom:5px}
.pcard span{font-size:12.5px;line-height:1.5;color:var(--ink-mute)}
.proto__cta{text-align:center;margin-top:40px}

/* RESULTADOS */
.result{background:var(--nude-300)}
.result__h{font-size:clamp(30px,8vw,40px);font-weight:500;text-align:center;margin-bottom:6px}
.result__sub{text-align:center;color:var(--ink-mute);font-size:12px;margin-bottom:28px;max-width:46ch;margin-left:auto;margin-right:auto}
.result__grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.result__item{margin:0}
.result__item img{aspect-ratio:1/1;width:100%;height:auto;display:block;object-fit:cover;border-radius:16px;box-shadow:0 12px 30px rgba(44,44,66,.14)}
.result__item figcaption{margin-top:12px;text-align:center;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-mute)}

/* EXPERIÊNCIA */
.exp{background:var(--navy-700);color:var(--nude-200)}
.exp__h{font-size:clamp(32px,8vw,42px);font-weight:500;margin-bottom:24px}
.exp__h i{color:var(--gold-200)}
.exp__grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.exp__grid img{width:100%;height:auto;display:block;border-radius:14px}
@media(min-width:768px){.exp__grid{grid-template-columns:1fr 1fr}}

/* DEPOIMENTOS */
.depo{background:var(--nude-100);text-align:center}
.depo__h{font-size:clamp(32px,8vw,42px);font-weight:500;margin-bottom:32px}
.depo__grid{display:grid;grid-template-columns:1fr;gap:16px;text-align:left}
.qbox{background:var(--ivory);border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column}
.qbox blockquote{font-style:italic;font-size:19px;line-height:1.42;color:#3a3344;flex:1}
.qbox figcaption{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink);margin-top:18px;font-family:var(--sans);font-weight:400}
.qbox figcaption span{display:block;color:var(--gold);margin-top:3px;letter-spacing:1px}

/* FAQ */
.faq{background:var(--nude-400)}
.faq__wrap{max-width:760px}
.faq__h{font-size:clamp(30px,8vw,42px);font-weight:500;text-align:center;margin-bottom:28px}
.qitem{background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:0 20px;margin-bottom:10px}
.qitem summary{font-size:19px;padding:18px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}
.qitem summary::-webkit-details-marker{display:none}
.qitem summary::after{content:'+';color:var(--gold);font-size:24px;line-height:1;transition:transform .2s;flex:none}
.qitem[open] summary::after{transform:rotate(45deg)}
.qitem p{padding:0 0 18px;color:var(--ink-mute);font-size:14px;max-width:62ch}

/* FILOSOFIA */
.filo{background:linear-gradient(160deg,var(--nude-300),#e3c9b8);text-align:center;padding:84px 0}
.filo p{font-style:italic;font-size:clamp(24px,6vw,38px);line-height:1.34;color:var(--ink);max-width:760px;margin:0 auto}

/* LOCAL */
.local{background:var(--nude-100)}
.local__grid{display:grid;gap:26px}
.local__map iframe{width:100%;height:300px;border:0;border-radius:18px;display:block}
.local h2{font-size:clamp(30px,8vw,42px);font-weight:500;margin:4px 0 18px}
.local__info p{margin-bottom:16px;color:var(--ink-soft);font-size:14px}
.local__info b{color:var(--ink)}
.local__info a{color:var(--gold)}

/* FINAL */
.final{background:var(--navy-700);color:var(--nude-200);text-align:center;padding:84px 0}
.final h2{font-size:clamp(34px,9vw,52px);font-weight:500;margin-bottom:14px}
.final h2 i{color:var(--gold-200)}
.final p{color:#b9b6c4;font-size:14px;margin-bottom:28px}

/* FOOTER */
.foot{background:var(--navy-900);color:#8f8ca0;padding:26px 0}
.foot .wrap{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.foot__brand{font-size:20px;letter-spacing:4px;color:var(--nude-200)}
.foot__meta{font-size:10px;letter-spacing:1px;text-transform:uppercase}

/* WHATSAPP FLOAT */
.wpp-float{position:fixed;right:18px;bottom:18px;width:58px;height:58px;border-radius:50%;
  background:var(--wpp);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,.30);z-index:50;transition:transform .15s}
.wpp-float:hover{transform:scale(1.07)}

/* FOCUS */
a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ===== DESKTOP ===== */
@media(min-width:768px){
  .section{padding:100px 0}
  .trust__row{justify-content:center;gap:80px}
  .trust__n{font-size:34px}
  .pgrid{grid-template-columns:repeat(4,1fr)}
  .result__grid{grid-template-columns:repeat(2,1fr)}
  .depo__grid{grid-template-columns:repeat(3,1fr)}
  .ritual__steps{grid-template-columns:repeat(3,1fr);max-width:none}
}
@media(min-width:900px){
  .hero__grid{grid-template-columns:1.04fr .96fr;align-items:center;padding:54px 22px 92px}
  .hero__wm{text-align:left}
  .hero h1{margin-top:20px}
  .result__grid{grid-template-columns:repeat(3,1fr)}
  .sobre__grid{grid-template-columns:.82fr 1.18fr;align-items:center;gap:50px}
  .local__grid{grid-template-columns:1.2fr .8fr;align-items:center}
  .local__map iframe{height:380px}
}

/* ===================== ANIMAÇÕES ===================== */
/* Só ativam quando há JS e o usuário não pediu menos movimento (classe .js no <html>) */

/* Abertura */
.intro{display:none}
.js .intro{display:flex;position:fixed;inset:0;z-index:200;background:var(--nude-200);
  align-items:center;justify-content:center;animation:introOut 1.4s ease 2.1s forwards}
.intro__wm{text-align:center;letter-spacing:8px;font-weight:600;font-size:clamp(26px,7vw,40px);color:var(--ink);
  opacity:0;animation:introWm 2s ease forwards}
.intro__wm small{display:block;font-family:var(--sans);letter-spacing:5px;font-size:11px;font-weight:400;color:var(--ink-mute);margin-top:10px}
@keyframes introWm{0%{opacity:0;letter-spacing:20px}60%{opacity:1}100%{opacity:1;letter-spacing:8px}}
@keyframes introOut{to{opacity:0;visibility:hidden}}

/* Hero: entra logo após a abertura levantar */
.js .hero__wm,.js .hero h1,.js .hero__lead,.js .hero__micro,.js .hero .btn,.js .hero__media{
  opacity:0;animation:heroIn 1.6s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero__media{animation-delay:2.0s}
.js .hero__wm{animation-delay:1.9s}
.js .hero h1{animation-delay:2.2s}
.js .hero__lead{animation-delay:2.5s}
.js .hero__micro{animation-delay:2.7s}
.js .hero .btn{animation-delay:2.9s}
@keyframes heroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* Scroll reveal: estado inicial escondido (aplicado já no 1º paint, sem flash) */
.js .label,
.js .ritual__title,.js .proto__h,.js .result__h,.js .depo__h,.js .faq__h,.js .exp__h,
.js .sobre h2,.js .local h2,.js .final h2,
.js .proto__sub,.js .result__sub,.js .final p,.js .filo p,.js .sobre__copy p,
.js .sobre__media,.js .local__map,.js .local__info,.js .proto__cta,.js .final .btn,
.js .pcard,.js .step,.js .qbox,.js .qitem,.js .result__item,.js .trust__item,.js .exp__grid figure{
  opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.js .is-visible{opacity:1 !important;transform:none !important}

@media (prefers-reduced-motion: reduce){.intro{display:none}.btn--cta{animation:none}.btn::before{display:none}}
