/* =====================================================================
   Adrian Freites · Presença Digital
   Editorial Dark Warm — premium gold accents
   ===================================================================== */

/* ----- tokens ----- */
:root{
  --bg:        #0E0B09;        /* warm-tinted near-black — never #000 */
  --bg-2:      #15110E;
  --bg-3:      #1E1813;
  --bg-card:   #1A1410;

  --cream:     #F2EBDA;
  --cream-2:   #DDD2BC;
  --cream-3:   #8B7E68;
  --cream-mute:#5B5346;

  --gold:        #C49A5B;
  --gold-bright: #E2BE83;
  --gold-dim:    #A07F47;
  --gold-soft:   rgba(196,154,91,.18);

  --line:      rgba(242,235,218,.10);
  --line-2:    rgba(242,235,218,.18);

  --ease:      cubic-bezier(.2,.7,.2,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);

  --max:       1280px;
  --max-narrow: 880px;
  --pad:       clamp(1.25rem, 3.6vw, 3rem);
  --nav-h:     76px;
}

/* ----- reset ----- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{
  overflow-x:clip;
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  background:var(--bg);
  color:var(--cream);
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{
  font-family:"Inter", system-ui, -apple-system, sans-serif;
  font-weight:400;
  font-size:clamp(15px,1vw,17px);
  line-height:1.55;
  color:var(--cream-2);
  background:var(--bg);
  min-height:100vh;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
}

/* ============================== AMBIENT SMOKE LAYER ==============================
   Three drifting gold/warm blobs pre-blurred ONCE; animate only transform/opacity.
   Cheap on GPU, alive on screen. */
body::before{
  content:"";
  position:fixed; inset:-15%;
  z-index:0; pointer-events:none;
  background:
    radial-gradient(36% 28% at 18% 24%, rgba(196,154,91,.38), transparent 65%),
    radial-gradient(42% 32% at 82% 68%, rgba(168,37,22,.22), transparent 65%),
    radial-gradient(50% 40% at 50% 110%, rgba(212,181,116,.28), transparent 65%),
    radial-gradient(30% 25% at 65% 20%, rgba(196,154,91,.18), transparent 60%);
  filter: blur(60px) saturate(160%);
  animation: smokeDrift 28s ease-in-out infinite alternate;
  will-change: transform, opacity;
}
@keyframes smokeDrift{
  0%   { transform: translate3d(0,0,0)      scale(1)    rotate(0deg);  opacity:.92; }
  25%  { transform: translate3d(-4%,3%,0)   scale(1.07) rotate(3deg);  opacity:1;   }
  50%  { transform: translate3d(3%,-3%,0)   scale(1.11) rotate(-2deg); opacity:.82; }
  75%  { transform: translate3d(-2%,-4%,0)  scale(1.05) rotate(2deg);  opacity:.96; }
  100% { transform: translate3d(4%,4%,0)    scale(1.08) rotate(-3deg); opacity:1;   }
}

/* persistent fine grain — keeps the dark from feeling flat */
body::after{
  content:"";
  position:fixed; inset:0;
  z-index:0; pointer-events:none;
  opacity:.045;
  mix-blend-mode:overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' /%3E%3C/svg%3E");
  background-size: 260px 260px;
}

/* keep content above smoke */
.nav, main, .footer, .splash, .cursor, .wa-float{ position:relative; z-index:1; }
.splash{ z-index:1000; }
.cursor{ z-index:9999; }
.wa-float{ z-index:40; }
.nav{ z-index:50; }
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;cursor:pointer}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
::selection{background:var(--gold);color:var(--bg)}

/* hide cursor on touch — keep native cursor */
@media (hover:none){ .cursor{display:none!important} }

/* ----- typography ----- */
.kicker{
  font-family:"Inter",sans-serif;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
  margin:0 0 1.6rem;
  display:inline-flex;
  align-items:center;
  gap:.7rem;
}
.kicker::before{
  content:"";
  width:28px;height:1px;
  background:var(--gold);
  display:inline-block;
}

.huge{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 480;
  font-weight:480;
  font-size:clamp(2.4rem, 6.6vw, 6rem);
  line-height: .98;
  letter-spacing:-.024em;
  color:var(--cream);
  margin:0 0 1.4rem;
  text-wrap:balance;
  max-width:22ch;
}
.huge em{
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 440;
  color:var(--gold-bright);
  /* subtle glow under the gold word */
  text-shadow: 0 0 38px rgba(212,181,116,.18);
}

.lede{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 380;
  font-size:clamp(1.1rem, 1.5vw, 1.4rem);
  line-height:1.45;
  color:var(--cream-2);
  margin:0 0 2.4rem;
  max-width:32ch;
}

/* ----- layout ----- */
.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
}
.container.narrow{ max-width:var(--max-narrow); }
.section{
  position:relative;
  padding-block:clamp(5rem, 11vw, 9rem);
}

/* ============================== SPLASH ============================== */
.splash{
  position:fixed;inset:0;z-index:1000;
  background:var(--bg);
  display:grid;place-items:center;
  pointer-events:auto;
  animation: splashSafety .01s 4.5s forwards;
}
.splash-inner{
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  opacity:0;
  animation: splashIn .9s var(--ease-out) .2s forwards;
}
.splash-mark{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 420;
  font-style:italic;
  font-size:clamp(3.2rem, 7vw, 5.4rem);
  color:var(--gold);
  letter-spacing:-.03em;
  line-height:1;
}
.splash-tag{
  font-size:.7rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--cream-3);
}
.splash.is-out{
  opacity:0;
  transform:translateY(-12px);
  transition: opacity .8s var(--ease-out), transform .8s var(--ease-out);
  pointer-events:none;
}
@keyframes splashIn{ to{ opacity:1; transform:translateY(0) } }
@keyframes splashSafety{
  to{ opacity:0; pointer-events:none; clip-path:inset(0 0 100% 0); }
}

/* ============================== CURSOR ============================== */
.cursor{
  position:fixed;inset:0;z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .3s var(--ease-out);
  mix-blend-mode:difference;
}
.cursor.is-ready{opacity:1}
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;
  border-radius:50%;
  will-change:transform;
}
.cursor-dot{
  width:6px;height:6px;
  background:var(--cream);
  transform:translate3d(-100px,-100px,0);
  margin-left:-3px;margin-top:-3px;
}
.cursor-ring{
  width:34px;height:34px;
  border:1px solid var(--cream);
  transform:translate3d(-100px,-100px,0);
  margin-left:-17px;margin-top:-17px;
  transition: width .25s var(--ease-out), height .25s var(--ease-out),
              margin .25s var(--ease-out), border-color .25s var(--ease-out);
}
.cursor.is-hover .cursor-ring{
  width:54px;height:54px;
  margin-left:-27px;margin-top:-27px;
  border-color:var(--gold-bright);
}

/* ============================== NAV ============================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;
  height:var(--nav-h);
  padding:0 var(--pad);
  background: linear-gradient(180deg, rgba(14,11,9,.0) 0%, rgba(14,11,9,0) 100%);
  transition: background .35s var(--ease-out), backdrop-filter .35s var(--ease-out), border-color .35s;
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background: rgba(14,11,9,.78);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
          backdrop-filter: blur(14px) saturate(140%);
  border-bottom-color: var(--line);
}
.nav-mark{
  display:inline-flex;align-items:baseline;gap:.7rem;
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 460;
  color:var(--cream);
  letter-spacing:-.02em;
}
.nav-mark-letters{
  font-size:1.5rem;
  color:var(--gold);
}
.nav-mark-tag{
  font-family:"Inter",sans-serif;
  font-style:normal;
  font-size:.68rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--cream-3);
  font-variation-settings:initial;
}
.nav-links{
  display:flex;gap:2.2rem;align-items:center;
}
.nav-links a{
  font-size:.86rem;
  letter-spacing:.04em;
  color:var(--cream-2);
  position:relative;
  padding:.4rem 0;
  transition:color .25s;
}
.nav-links a::after{
  content:"";
  position:absolute;left:0;right:100%;bottom:.1rem;
  height:1px;background:var(--gold);
  transition: right .35s var(--ease-out);
}
.nav-links a:hover{color:var(--cream)}
.nav-links a:hover::after{right:0}

.nav-cta{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.65rem 1.1rem;
  border:1px solid var(--line-2);
  border-radius:999px;
  font-size:.82rem;
  color:var(--cream);
  background: rgba(196,154,91,.05);
  transition: border-color .3s, background .3s, color .3s, transform .3s var(--ease-out);
}
.nav-cta:hover{
  border-color:var(--gold);
  color:var(--gold-bright);
  background:rgba(196,154,91,.12);
}

@media (max-width:760px){
  .nav-links{display:none}
  .nav-mark-tag{display:none}
}

/* ============================== HERO ============================== */
.hero{
  position:relative;
  min-height: 100vh;
  min-height: 100svh;
  padding-top: calc(var(--nav-h) + 2rem);
  padding-bottom: 6rem;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-mesh{
  position:absolute;inset:-10%;z-index:0;
  background:
    radial-gradient(circle at 78% 28%, rgba(196,154,91,.28) 0%, transparent 42%),
    radial-gradient(circle at 18% 78%, rgba(168,37,22,.10) 0%, transparent 38%),
    radial-gradient(circle at 56% 62%, rgba(212,181,116,.10) 0%, transparent 50%);
  filter:blur(70px) saturate(140%);
  animation: meshDrift 28s ease-in-out infinite;
  pointer-events:none;
}
@keyframes meshDrift{
  0%,100%{ transform: translate3d(0,0,0) scale(1) rotate(0deg); }
  50%{    transform: translate3d(-2%,-2%,0) scale(1.08) rotate(2deg); }
}
.hero-grain{
  position:absolute;inset:0;z-index:1;
  pointer-events:none;
  opacity:.06;
  mix-blend-mode:overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' /%3E%3C/svg%3E");
  background-size: 280px 280px;
}

.hero-grid{
  position:relative;z-index:2;
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
  display:grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0, .85fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items:center;
}

.hero-title{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 460;
  font-size: clamp(2.9rem, 7.8vw, 6.6rem);
  line-height: .94;
  letter-spacing:-.028em;
  color:var(--cream);
  margin: 1.6rem 0 1.8rem;
  text-wrap:balance;
  max-width: 16ch;
}
.hero-title em{
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 440;
  color:var(--gold-bright);
  text-shadow:
    0 0 52px rgba(212,181,116,.32),
    0 2px 0 rgba(140,100,30,.6),
    0 4px 8px rgba(0,0,0,.45);
}
.hero-sub{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 380;
  font-size: clamp(1.05rem, 1.45vw, 1.34rem);
  line-height:1.45;
  color:var(--cream-2);
  margin:0 0 2.4rem;
  max-width: 36ch;
}
.hero-sub em{ color:var(--gold-bright); font-style:italic; }

.hero-actions{
  display:flex;gap:.9rem;flex-wrap:wrap;
  margin-bottom: 2.4rem;
}
.hero-meta{
  display:inline-flex;align-items:center;gap:.7rem;
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cream-3);
}
.hero-meta .dot{
  width:7px;height:7px;border-radius:50%;
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(196,154,91,.18);
  animation: pulseDot 2.4s ease-in-out infinite;
}
@keyframes pulseDot{
  0%,100%{ box-shadow:0 0 0 4px rgba(196,154,91,.18); }
  50%{   box-shadow:0 0 0 8px rgba(196,154,91,.04); }
}

/* hero figure */
.hero-figure{
  position:relative;
  margin:0;
  justify-self:center;
  width:100%;
  max-width:440px;
}
.hero-frame{
  position:relative;
  border-radius:4px;
  overflow:visible;
  /* subtle ambient glow only — no border frame */
  filter: drop-shadow(0 30px 60px rgba(0,0,0,.5))
          drop-shadow(0 0 60px rgba(196,154,91,.18));
}
/* show the photo at its NATURAL aspect ratio — never crop the face */
.hero-frame img{
  display:block;
  width:100%;
  height:auto;
  max-height: 80vh;
  object-fit: contain;
  object-position: center center;
  filter: saturate(1.04) contrast(1.03);
  transform: scale(1);
  transition: transform 1.4s var(--ease-out);
  border-radius: 4px;
}
.hero-figure:hover .hero-frame img{ transform: scale(1.03); }
/* bottom fade — covers any ugly background-removal edge */
.hero-frame::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at top, rgba(196,154,91,.10) 0%, transparent 55%),
    linear-gradient(to top, var(--bg) 0%, rgba(14,11,9,.9) 10%, rgba(14,11,9,.4) 22%, transparent 42%);
  pointer-events:none;
}
.hero-frame-corner{ display:none !important; }
.hero-figure-cap{
  display:flex;align-items:center;gap:.7rem;
  margin-top:1.1rem;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--cream-3);
}
.hero-figure-line{ display:inline-block; width:32px;height:1px; background:var(--gold); }

.hero-scroll{
  position:absolute; left:50%; bottom: 1.6rem;
  transform: translateX(-50%);
  z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--cream-3);
}
.hero-scroll-bar{
  width:1px;height:48px;
  background: linear-gradient(180deg, var(--gold) 0%, transparent 100%);
  animation: scrollPulse 2.4s ease-in-out infinite;
  transform-origin: top;
}
@keyframes scrollPulse{
  0%   { transform: scaleY(.3); opacity:.4 }
  50%  { transform: scaleY(1);  opacity:1 }
  100% { transform: scaleY(.3); opacity:.4 }
}

@media (max-width: 880px){
  .hero{ padding-top: calc(var(--nav-h) + 1rem); padding-bottom: 4rem; min-height:auto; }
  .hero-grid{ grid-template-columns: 1fr; gap: 2.4rem; }
  .hero-figure{ max-width: 300px; order: 1; margin: 0 auto; }
  .hero-title{ margin-top:1rem; max-width: 16ch; }
  .hero-scroll{ display:none }
}

/* ============================== BUTTONS ============================== */
.btn{
  display:inline-flex;align-items:center;gap:.65rem;
  padding:.95rem 1.5rem;
  border-radius:999px;
  font-family:"Inter",sans-serif;
  font-size:.94rem;
  font-weight:500;
  letter-spacing:.01em;
  border:1px solid transparent;
  transition: transform .35s var(--ease-out), background .3s, color .3s, border-color .3s, box-shadow .35s var(--ease-out);
  position:relative;
  white-space:nowrap;
  will-change:transform;
  isolation:isolate;
}
.btn svg{ transition: transform .35s var(--ease-out); }
.btn:hover svg{ transform: translateX(3px); }

.btn-gold{
  background: var(--gold);
  color: var(--bg);
  box-shadow:
    0 12px 28px -10px rgba(196,154,91,.5),
    inset 0 0 0 1px rgba(255,255,255,.05);
}
/* breathing halo behind the gold button — always alive, never aggressive */
.btn-gold::after{
  content:""; position:absolute; inset:-6px; border-radius:999px;
  z-index:-1;
  background: radial-gradient(closest-side, rgba(196,154,91,.45), transparent 70%);
  filter: blur(8px);
  opacity:.6;
  animation: btnBreathe 3.4s ease-in-out infinite;
  pointer-events:none;
}
@keyframes btnBreathe{
  0%,100%{ opacity:.4; transform: scale(.96); }
  50%   { opacity:.85; transform: scale(1.10); }
}
.btn-gold:hover{
  background: var(--gold-bright);
  box-shadow:
    0 22px 46px -10px rgba(212,181,116,.7),
    inset 0 0 0 1px rgba(255,255,255,.12);
}
.btn-gold:hover::after{
  opacity:1;
  background: radial-gradient(closest-side, rgba(226,190,131,.6), transparent 70%);
}

.btn-ghost{
  background: transparent;
  color: var(--cream);
  border-color: var(--line-2);
  overflow:hidden;
}
/* shimmer sweep on ghost button hover */
.btn-ghost::before{
  content:""; position:absolute; inset:0;
  background: linear-gradient(110deg, transparent 30%, rgba(196,154,91,.18) 50%, transparent 70%);
  transform: translateX(-110%);
  transition: transform .8s var(--ease-out);
}
.btn-ghost:hover{
  border-color: var(--gold);
  color: var(--gold-bright);
  background: rgba(196,154,91,.08);
}
.btn-ghost:hover::before{ transform: translateX(110%); }

.btn-huge{
  padding: 1.3rem 2.4rem;
  font-size: 1.08rem;
  font-weight:500;
}
.btn-huge::after{
  inset:-10px;
  filter: blur(14px);
  animation-duration: 2.8s;
  background: radial-gradient(closest-side, rgba(196,154,91,.55), transparent 70%);
}
.btn-wide{
  padding: 1.05rem 1.9rem;
  width:auto;
  margin-top: 2.4rem;
}

/* ============================== PROBLEMA ============================== */
.problema{ background:var(--bg); position:relative; }
.problema::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.problema .huge{ max-width: 22ch; }
.problema .lede{ max-width: 36ch; margin-bottom: 4rem; }

.stats{
  list-style:none; padding:0; margin:0;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stat{
  padding: 2.6rem clamp(1rem,2.4vw,2.4rem);
  display:flex; flex-direction:column; gap:1rem;
  position:relative;
  transition: background .5s var(--ease-out);
}
.stat::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0; width: 2px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .6s var(--ease-out);
}
.stat:hover{ background: rgba(196,154,91,.04); }
.stat:hover::before{ transform: scaleY(1); }
.stat:hover .stat-num{ color: var(--gold-bright); }
.stat-num{ transition: color .4s var(--ease-out); }
.stat + .stat{ border-left: 1px solid var(--line); }
.stat-num{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 460;
  font-size: clamp(3rem, 6.4vw, 5.4rem);
  line-height:1;
  color:var(--cream);
  letter-spacing:-.02em;
  display:inline-flex; align-items:baseline; gap:.04em;
}
.stat-suffix{
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 420;
  font-size:.6em;
  color:var(--gold-bright);
}
.stat-line{
  display:block;
  width: 40px; height:1px;
  background: var(--gold);
}
.stat-label{
  font-size: .98rem;
  color: var(--cream-2);
  max-width: 28ch;
  line-height:1.45;
}
@media (max-width: 880px){
  .stats{ grid-template-columns: 1fr; }
  .stat + .stat{ border-left: 0; border-top: 1px solid var(--line); }
  .stat{ padding: 2rem var(--pad); }
}

/* ============================== SOBRE ============================== */
.sobre{
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  position:relative;
}
.sobre-grid{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
  display:grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items:center;
}
.sobre-figure{
  position:relative;
  margin:0;
  border-radius:6px;
  overflow:hidden;
  box-shadow:
    0 40px 80px -30px rgba(0,0,0,.6),
    0 0 0 1px var(--line);
  transition: box-shadow .6s var(--ease-out);
}
.sobre-figure img{
  display:block;
  width:100%;
  height:auto;
  object-fit: contain;
  filter: saturate(1.05) contrast(1.04);
  transform: scale(1);
  transition: transform 1.6s var(--ease-out), filter 1.6s var(--ease-out);
}
.sobre-figure:hover{
  box-shadow:
    0 50px 100px -30px rgba(0,0,0,.7),
    0 0 0 1px rgba(196,154,91,.35),
    0 0 80px -10px rgba(196,154,91,.18);
}
.sobre-figure:hover img{
  transform: scale(1.08);
  filter: saturate(1.12) contrast(1.06);
}
/* gold corner indicator on hover */
.sobre-figure::after{
  content:"";
  position:absolute; top:14px; right:14px; width:22px; height:22px;
  border-top:1.5px solid var(--gold);
  border-right:1.5px solid var(--gold);
  opacity:0;
  transform: translate(6px,-6px);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out);
  pointer-events:none;
}
.sobre-figure:hover::after{ opacity:1; transform: translate(0,0); }
.sobre-figure-glow{
  position:absolute; inset:-20%;
  z-index:-1;
  background: radial-gradient(45% 35% at 30% 70%, rgba(196,154,91,.35), transparent 75%);
  filter: blur(120px);
  pointer-events:none;
}
.sobre-text .huge{ margin-bottom: 2rem; max-width: 18ch; }
.sobre-body p{
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.65;
  margin: 0 0 1.1rem;
  color:var(--cream-2);
  max-width: 46ch;
}
.sobre-body p em{ color:var(--cream); font-style:italic; }

.sobre-marks{
  margin-top: 2.4rem;
  display:flex; align-items:center; gap: 1.6rem; flex-wrap:wrap;
}
.sobre-mark{ display:flex; flex-direction:column; gap:.2rem; }
.sobre-mark-num{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 420;
  font-size: 1.4rem;
  color: var(--gold-bright);
  line-height:1;
}
.sobre-mark-label{
  font-size:.74rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cream-3);
}
.sobre-mark-divider{
  width:1px; height:32px; background: var(--line-2);
}

@media (max-width: 880px){
  .sobre-grid{ grid-template-columns: 1fr; gap: 2.4rem; }
  .sobre-figure{ max-width: 380px; margin: 0 auto; }
}

/* ============================== MÉTODO ============================== */
.metodo{
  background: var(--bg-2);
  position:relative;
}
.metodo::before, .metodo::after{
  content:""; position:absolute; left:0; right:0; height:1px;
  background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.metodo::before{ top:0 } .metodo::after{ bottom:0 }
.metodo .huge{ margin-bottom: 4.5rem; max-width: 22ch; }

.pilares{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.pilar{
  position:relative;
  padding: 2.6rem 2.2rem 2.4rem;
  background: var(--bg-card);
  border-radius: 10px;
  border: 1px solid var(--line);
  overflow:hidden;
  transition: border-color .5s, transform .4s var(--ease-out), background .5s, box-shadow .5s var(--ease-out);
  will-change: transform;
  isolation:isolate;
}
/* rotating conic gold border on hover (modern browsers — Safari 16+, Chrome 85+) */
@property --pilar-angle{ syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.pilar::before{
  content:"";
  position:absolute; inset:-1px; border-radius: 11px;
  padding:1px;
  background: conic-gradient(from var(--pilar-angle, 0deg),
    transparent 0%,
    rgba(196,154,91,.0) 8%,
    var(--gold-bright) 22%,
    rgba(196,154,91,.0) 36%,
    transparent 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity:0;
  transition: opacity .55s var(--ease-out);
  animation: pilarSpin 5s linear infinite;
  pointer-events:none;
  z-index:2;
}
@keyframes pilarSpin{ to{ --pilar-angle: 360deg; } }
.pilar:hover{
  border-color: rgba(196,154,91,.55);
  background: #1F1812;
  box-shadow:
    0 30px 50px -28px rgba(0,0,0,.6),
    0 0 60px -20px rgba(196,154,91,.35);
}
.pilar:hover::before{ opacity:1; }
.pilar-head{
  display:flex; align-items:center; gap:1rem;
  margin-bottom: 2rem;
}
.pilar-num{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 420;
  font-size: 2rem;
  color: var(--gold-bright);
  line-height: 1;
}
.pilar-line{
  flex:1; height:1px; background: var(--line-2);
}
.pilar-title{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 480;
  font-size: clamp(1.5rem, 2.2vw, 1.95rem);
  line-height: 1.05;
  color: var(--cream);
  margin: 0 0 .55rem;
  letter-spacing:-.012em;
}
.pilar-sub{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 380;
  font-size: 1rem;
  color: var(--gold);
  margin: 0 0 1.4rem;
}
.pilar-body{
  font-size: .95rem;
  line-height: 1.6;
  color: var(--cream-2);
  margin: 0 0 1.6rem;
}
.pilar-items{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:.55rem;
  border-top: 1px solid var(--line);
  padding-top: 1.2rem;
}
.pilar-items li{
  font-size: .86rem;
  color: var(--cream-2);
  padding-left: 1.1rem;
  position:relative;
}
.pilar-items li::before{
  content:""; position:absolute; left:0; top: .65em;
  width: 6px; height: 1px; background: var(--gold);
}
.pilar-halo{
  position:absolute; inset:-50% -10% auto -10%;
  height: 60%;
  background: radial-gradient(45% 60% at 50% 0%, rgba(196,154,91,.22), transparent 75%);
  filter: blur(60px);
  opacity: 0;
  transition: opacity .5s var(--ease-out);
  pointer-events:none;
  z-index:0;
}
.pilar:hover .pilar-halo{ opacity:1 }
.pilar > *:not(.pilar-halo){ position:relative; z-index:1; }

@media (max-width: 980px){
  .pilares{ grid-template-columns: 1fr; gap: 1rem; }
  .pilar{ padding: 2.2rem 1.8rem; }
}

/* ============================== PROVA ============================== */
.prova{
  position:relative;
  background: var(--bg);
  overflow:hidden;
}
.prova-figure{
  position:absolute; inset:0; margin:0; z-index:0;
  pointer-events:none;
}
.prova-figure img{
  width:100%; height:100%; object-fit:cover;
  opacity:.28;
  filter: grayscale(20%) contrast(1.1);
}
.prova-figure-tint{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(196,154,91,.10) 0%, transparent 60%),
    linear-gradient(180deg, rgba(14,11,9,.85) 0%, rgba(14,11,9,.95) 100%);
}
.prova-content{ position:relative; z-index:1; }
.prova .huge{ margin-bottom: 3.6rem; max-width: 20ch; }

.transformacoes{
  list-style:none; padding:0; margin: 0 0 4rem;
  display:flex; flex-direction:column;
  border-top: 1px solid var(--line);
}
.transformacao{
  display:grid;
  grid-template-columns: 1fr 36px 1fr;
  align-items:center;
  gap: 1rem;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--line);
  position:relative;
  transition: padding .35s var(--ease-out), background .4s var(--ease-out);
}
.transformacao::before{
  content:"";
  position:absolute; left:-1.2rem; top:0; bottom:0;
  width:3px;
  background: var(--gold);
  transform: scaleY(0);
  transform-origin: center;
  transition: transform .45s var(--ease-out);
}
.transformacao:hover{
  padding-inline: 1rem;
  background: rgba(196,154,91,.035);
}
.transformacao:hover::before{ transform: scaleY(.7); }
.transformacao:hover .t-arrow{ transform: translateX(4px); }
.transformacao:hover .t-para{ color: var(--gold-bright); }
.t-arrow{ transition: transform .4s var(--ease-out); }
.t-para{ transition: color .4s var(--ease-out); }
.t-de{
  font-family:"Inter",sans-serif;
  font-size: clamp(.98rem, 1.2vw, 1.15rem);
  color: var(--cream-mute);
  text-decoration: line-through;
  text-decoration-color: rgba(91,83,70,.5);
}
.t-arrow{
  color: var(--gold);
  font-size: 1.4rem;
  text-align:center;
  font-family:"Fraunces",serif;
  font-style:italic;
}
.t-para{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 420;
  font-size: clamp(1.05rem, 1.4vw, 1.32rem);
  color: var(--cream);
  line-height:1.3;
}
@media (max-width: 640px){
  .transformacao{ grid-template-columns: 1fr; gap:.25rem; padding: 1rem 0; }
  .t-arrow{ text-align:left; font-size:1rem; }
}

.depoimento{
  margin: 0;
  padding: 2.6rem clamp(1.4rem, 3vw, 2.6rem);
  background: rgba(30,24,19,.6);
  border-radius: 10px;
  border: 1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.depoimento-quote{
  position:absolute; top: -1.4rem; left: 1.4rem;
  font-family:"Fraunces",serif;
  font-style:italic;
  font-size: 7rem;
  color: var(--gold);
  opacity: .25;
  line-height: 1;
  pointer-events:none;
  user-select:none;
}
.depoimento-text{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 400;
  font-size: clamp(1.2rem, 1.6vw, 1.55rem);
  line-height: 1.5;
  color: var(--cream);
  margin: 0 0 1.6rem;
  max-width: 46ch;
  position:relative;
}
.depoimento-text em{ color: var(--gold-bright); }
.depoimento-autor{
  display:flex; align-items:center; gap:.9rem;
  font-size: .76rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--cream-3);
}
.depoimento-line{
  display:inline-block; width: 28px; height: 1px; background: var(--gold);
}

/* ============================== CTA FINAL ============================== */
.cta{
  position:relative;
  background: var(--bg-2);
  overflow:hidden;
  padding-block: clamp(6rem, 12vw, 10rem);
}
.cta-bg{
  position:absolute; inset:0; margin:0; z-index:0;
  pointer-events:none;
}
.cta-bg img{
  width:100%; height:100%; object-fit:cover; object-position: center 30%;
  opacity:.32;
  filter: grayscale(10%);
}
.cta-bg-tint{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(196,154,91,.16) 0%, transparent 55%),
    linear-gradient(180deg, rgba(14,11,9,.75) 0%, rgba(14,11,9,.92) 100%);
}
.cta-content{
  position:relative; z-index:1;
  text-align:center;
}
.cta-content .kicker{ margin-left:auto; margin-right:auto; }
.cta-content .kicker::before{ display:none; }
.cta .huge{
  margin: 1rem auto 1.8rem;
  max-width: 22ch;
}
.cta-sub{
  font-family:"Inter",sans-serif;
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  line-height: 1.65;
  color: var(--cream-2);
  margin: 0 auto 2.6rem;
  max-width: 56ch;
}
.cta-fine{
  margin: 1.8rem auto 0;
  font-size: .76rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--cream-3);
  display:flex; gap: 1rem; justify-content:center; flex-wrap:wrap;
}

/* ============================== FOOTER ============================== */
.footer{
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding: clamp(3rem, 6vw, 5rem) 0 1.6rem;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--line);
}
.footer-mark{
  display:flex; align-items:baseline; gap:.7rem;
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 460;
}
.footer-mark span:first-child{
  font-size: 1.8rem;
  color: var(--gold);
}
.footer-mark span:last-child{
  font-family:"Inter",sans-serif;
  font-style:normal;
  font-variation-settings: initial;
  font-size:.7rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--cream-3);
}
.footer-tag{
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 400;
  font-size: 1.05rem;
  color: var(--cream-2);
  max-width: 28ch;
  margin: .8rem 0 0;
}
.footer-col{
  display:flex; flex-direction:column; gap:.45rem;
  font-size:.92rem;
  color: var(--cream-2);
}
.footer-col a{
  color: var(--cream-2);
  transition: color .25s;
}
.footer-col a:hover{ color: var(--gold-bright); }
.footer-eyebrow{
  font-size:.7rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color: var(--cream-3);
  margin: 0 0 .4rem;
}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top: 1.6rem;
  font-size: .76rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cream-3);
  gap: 1rem;
  flex-wrap: wrap;
}

@media (max-width: 840px){
  .footer-grid{ grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 540px){
  .footer-grid{ grid-template-columns: 1fr; }
}

/* ============================== REVEAL (scroll-in) ============================== */
.reveal{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s var(--ease-out), transform .9s var(--ease-out);
  will-change: opacity, transform;
}
.reveal.is-revealed{
  opacity:1;
  transform: translateY(0);
}
/* ⚠️ defensive — split-text owns its own visibility, don't double-hide */
.reveal[data-split]{
  opacity: 1;
  transform: none;
}
/* split-text word-level reveal */
.split-word{
  display:inline-block;
  opacity:0;
  transform: translateY(.45em);
  transition: opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
.is-revealed .split-word,
[data-split].is-revealed .split-word{
  opacity:1;
  transform: translateY(0);
}

/* ============================== ACCESSIBILITY ============================== */
@media (prefers-reduced-motion: reduce){
  /* truly intrusive only — keep tilt, fades, mesh, hover, count-up running */
  .hero-meta .dot{ animation: none; }
  .hero-scroll-bar{ animation: none; opacity:.6; transform: scaleY(.6); }
  .hero-mesh{ animation: none; }
}

/* focus styles */
:focus-visible{
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ============================== ETAPAS (3-step diagram) ============================== */
.etapas{
  background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);
  position:relative;
}
.etapas::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.etapas .huge{ margin-bottom: 4rem; max-width: 22ch; }

.etapas-list{
  list-style:none; padding:0; margin:0;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  counter-reset: etapa;
}
.etapa{
  position:relative;
  padding: 3rem 2rem 2.4rem;
  background: rgba(30,24,19,.55);
  border: 1px solid var(--line);
  border-radius: 10px;
  isolation:isolate;
  transition: border-color .4s, background .4s, transform .5s var(--ease-out);
}
/* number inside the gold-bordered circle, single pseudo */
.etapa::before{
  counter-increment: etapa;
  content: counter(etapa);
  position:absolute;
  left: 2rem; top: -22px;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--bg);
  border: 1.5px solid var(--gold);
  z-index:3;
  display:flex; align-items:center; justify-content:center;
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 480;
  font-size: 1.35rem;
  line-height: 1;
  color: var(--gold-bright);
  box-shadow: 0 0 0 4px var(--bg-2), 0 10px 20px -8px rgba(196,154,91,.4);
}
.etapa:hover{
  border-color: rgba(196,154,91,.4);
  background: rgba(30,24,19,.8);
  transform: translateY(-4px);
}
.etapa-day{
  display:inline-block;
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
  font-weight:500;
}
.etapa-title{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 480;
  font-size: clamp(1.5rem, 2.3vw, 2.05rem);
  line-height: 1.05;
  color: var(--cream);
  margin: 0 0 1rem;
  letter-spacing:-.014em;
}
.etapa-body{
  font-size:.95rem;
  line-height:1.6;
  color: var(--cream-2);
  margin: 0;
}
.etapa-conn{
  position:absolute;
  top: 22px;
  right: -.75rem;
  width: 1.5rem;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  z-index:1;
}
@media (max-width: 880px){
  .etapas-list{ grid-template-columns: 1fr; gap: 2.6rem; }
  .etapa-conn{
    top: auto; bottom: -1.8rem; right: 50%; transform: translateX(50%);
    width:1px; height: 1.5rem;
    background: linear-gradient(180deg, var(--gold), transparent);
  }
}

/* ============================== SOCIAL ICON 3D DECOS ============================== */
/* Base positioning — shared by all deco icons */
.deco-3d {
  position: absolute;
  pointer-events: none;
  perspective: 600px;
  z-index: 1;
}
/* Replace old cube/diamond with spinning social icons in gold wireframe */
.deco-social {
  opacity: .7;
}
.deco-social .deco-3d-inner {
  transform-style: preserve-3d;
  transform: rotateX(-10deg) rotateY(0deg);
  will-change: transform;
  animation: socialFloatY 6s ease-in-out infinite alternate;
}
@keyframes socialFloatY {
  0%   { transform: rotateX(-10deg) rotateY(0deg) translateY(0px); }
  50%  { transform: rotateX(-20deg) rotateY(15deg) translateY(-8px); }
  100% { transform: rotateX(-10deg) rotateY(0deg) translateY(0px); }
}
.deco-social-svg {
  width: 100%;
  height: 100%;
  color: var(--gold);
  filter:
    drop-shadow(0 0 12px rgba(196,154,91,.65))
    drop-shadow(0 0 30px rgba(196,154,91,.35));
  animation: socialPulseGlow 3.5s ease-in-out infinite alternate;
}
@keyframes socialPulseGlow {
  from { filter: drop-shadow(0 0 10px rgba(196,154,91,.5)) drop-shadow(0 0 24px rgba(196,154,91,.25)); opacity:.65; }
  to   { filter: drop-shadow(0 0 20px rgba(226,190,131,.9)) drop-shadow(0 0 50px rgba(196,154,91,.5)); opacity:1; }
}
/* size override — social SVG looks better slightly larger than cube */
.deco-social {
  width: clamp(90px, 11vw, 160px);
  height: clamp(90px, 11vw, 160px);
}

/* Placement per section */
.etapas .deco-3d {
  top: clamp(2rem, 6vw, 5rem);
  right: clamp(1rem, 4vw, 4rem);
}
.planos .deco-3d {
  top: clamp(3rem, 7vw, 6rem);
  left: clamp(1rem, 3vw, 3rem);
}

@media (max-width: 880px){
  .deco-3d{ display:none; }   /* save mobile space; the smoke layer is enough */
}

/* ============================== CLIENTES (social proof) ============================== */
.clientes{
  list-style:none; padding:0; margin: 0 0 4rem;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.cliente{
  display:flex; align-items:center; gap: 1.1rem;
  padding: 1.4rem 1.4rem;
  background: rgba(30,24,19,.5);
  border: 1px solid var(--line);
  border-radius: 10px;
  transition: border-color .4s, background .4s, transform .4s var(--ease-out);
}
.cliente:hover{
  border-color: rgba(196,154,91,.4);
  background: rgba(30,24,19,.85);
  transform: translateY(-2px);
}
.cliente-avatar{
  flex-shrink:0;
  width: 56px; height:56px;
  border-radius: 50%;
  display:grid; place-items:center;
  background: linear-gradient(135deg, var(--gold), var(--gold-dim));
  color: var(--bg);
  font-family:"Fraunces",serif;
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 480;
  font-size: 1.3rem;
  box-shadow: 0 0 0 1px rgba(196,154,91,.3), 0 10px 20px -8px rgba(196,154,91,.4);
}
.cliente-info{ display:flex; flex-direction:column; gap:.18rem; min-width:0; }
.cliente-nome{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 460;
  font-size: 1.05rem;
  color: var(--cream);
  text-decoration: none;
  line-height: 1.2;
  transition: color .25s;
  overflow:hidden; text-overflow: ellipsis; white-space: nowrap;
}
a.cliente-nome:hover{ color: var(--gold-bright); }
.cliente-desc{
  font-size:.84rem;
  color: var(--cream-2);
  line-height: 1.3;
  overflow:hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cliente-status{
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: .25rem;
}
@media (max-width: 880px){
  .clientes{ grid-template-columns: 1fr; }
}

/* ============================== PLANOS ============================== */
.planos{
  background: var(--bg);
  position:relative;
}
.planos::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.planos .huge{ max-width: 22ch; margin-bottom: 1.4rem; }
.planos .lede{ max-width: 44ch; margin-bottom: 4rem; }

.planos-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
  align-items: stretch;
}
.plano{
  position:relative;
  display:flex; flex-direction:column;
  padding: 2.4rem 2rem 2.2rem;
  background: var(--bg-card);
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: border-color .4s, transform .4s var(--ease-out), background .4s, box-shadow .4s var(--ease-out);
  isolation:isolate;
}
.plano:hover{
  border-color: rgba(196,154,91,.35);
  transform: translateY(-4px);
}
.plano-destaque{
  background: linear-gradient(165deg, #221A12 0%, #1A1410 100%);
  border-color: rgba(196,154,91,.45);
  box-shadow: 0 22px 50px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(196,154,91,.18);
}
.plano-destaque:hover{
  border-color: rgba(196,154,91,.65);
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.7), 0 0 60px -20px rgba(196,154,91,.4);
}
.plano-badge{
  position:absolute; top:-12px; left:50%; transform: translateX(-50%);
  font-size:.66rem;
  letter-spacing:.24em;
  text-transform: uppercase;
  background: var(--gold);
  color: var(--bg);
  padding: .35rem .9rem;
  border-radius: 999px;
  font-weight:600;
  box-shadow: 0 10px 20px -5px rgba(196,154,91,.5);
}
.plano-head{ margin-bottom: 1.4rem; }
.plano-nome{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 500;
  font-size: clamp(1.5rem, 2.2vw, 1.95rem);
  color: var(--cream);
  margin: 0 0 .4rem;
  letter-spacing:-.012em;
}
.plano-destaque .plano-nome{ color: var(--gold-bright); }
.plano-ideal{
  font-family:"Fraunces",serif;
  font-style: italic;
  font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 400;
  font-size: 1rem;
  color: var(--cream-2);
  margin: 0;
  line-height: 1.35;
}
.plano-preco{
  display:flex; align-items:baseline; gap:.3rem;
  padding-block: 1rem;
  margin-bottom: 1.2rem;
  border-bottom: 1px solid var(--line);
}
.plano-preco-val{
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 500;
  font-size: clamp(2rem, 3.2vw, 2.6rem);
  line-height: 1;
  color: var(--cream);
  letter-spacing:-.018em;
}
.plano-destaque .plano-preco-val{ color: var(--gold-bright); }
.plano-preco-suf{
  font-size:.9rem;
  color: var(--cream-3);
  letter-spacing:.04em;
}
.plano-items{
  list-style:none; padding:0; margin: 0 0 1.8rem;
  display:flex; flex-direction:column; gap:.5rem;
  flex:1;
}
.plano-items li{
  font-size:.94rem;
  color: var(--cream-2);
  padding-left: 1.2rem;
  position:relative;
  line-height: 1.45;
}
.plano-items li::before{
  content:""; position:absolute; left:0; top:.55em;
  width: 6px; height: 1px;
  background: var(--gold);
}
.plano-destaque .plano-items li{ color: var(--cream); }
.plano-cta{ width:100%; justify-content:center; }
.plano-foot{
  margin: 1rem 0 0;
  font-size:.78rem;
  color: var(--cream-3);
  text-align:center;
}
.plano-foot em{ font-style:italic; color: var(--gold); }

.planos-foot{
  margin: 3rem auto 0;
  text-align:center;
  color: var(--cream-2);
  font-size:.96rem;
}
.planos-foot a{
  color: var(--gold-bright);
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  transition: color .25s;
}
.planos-foot a:hover{ color: var(--gold); }

@media (max-width: 980px){
  .planos-grid{ grid-template-columns: 1fr; gap: 1.2rem; }
  .plano-destaque{ order: -1; }
}

/* ============================== FAQ ============================== */
.faq{
  background: var(--bg-2);
  position:relative;
}
.faq::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.faq .huge{ max-width: 22ch; margin-bottom: 3.6rem; }

.faq-list{
  list-style:none; padding:0; margin:0;
  border-top: 1px solid var(--line);
}
.faq-item{
  border-bottom: 1px solid var(--line);
}
.faq-q{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap: 1.4rem;
  padding: 1.5rem 0;
  text-align:left;
  font-family:"Fraunces",serif;
  font-variation-settings:"opsz" 144, "SOFT" 60, "wght" 460;
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  line-height: 1.3;
  color: var(--cream);
  letter-spacing:-.01em;
  transition: color .3s;
  cursor: pointer;
}
.faq-q:hover{ color: var(--gold-bright); }
.faq-icon{
  flex-shrink:0;
  position:relative; width:18px; height:18px;
}
.faq-icon::before,
.faq-icon::after{
  content:""; position:absolute; left:50%; top:50%; background: var(--gold);
  transition: transform .35s var(--ease-out), opacity .35s;
}
.faq-icon::before{ width:18px; height:1.5px; transform: translate(-50%,-50%); }
.faq-icon::after { width:1.5px; height:18px; transform: translate(-50%,-50%); }
.faq-q[aria-expanded="true"]      { color: var(--gold-bright); }
.faq-q[aria-expanded="true"] .faq-icon::after{ transform: translate(-50%,-50%) scaleY(0); }
.faq-a{
  max-height: 0;
  overflow:hidden;
  transition: max-height .55s var(--ease-out);
}
.faq-a p{
  font-size: clamp(.96rem, 1.1vw, 1.06rem);
  line-height: 1.62;
  color: var(--cream-2);
  margin: 0 0 1.6rem;
  max-width: 60ch;
}

/* ============================== PRESENCIAL FORM ============================== */
.presencial{
  position:relative;
  background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);
}
.presencial::before{
  content:""; position:absolute; left:0; right:0; top:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--line-2), transparent);
}
.presencial-grid{
  width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad);
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items:start;
}
.presencial-text .huge{ margin-bottom: 1.6rem; max-width: 16ch; }
.presencial-text p{
  font-family:"Inter",sans-serif;
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.65;
  color: var(--cream-2);
  margin: 0 0 1.6rem;
  max-width: 42ch;
}
.presencial-marks{
  list-style:none; padding:0; margin: 1.6rem 0 0;
  display:flex; flex-direction:column; gap:.6rem;
}
.presencial-marks li{
  display:flex; align-items:center; gap:.7rem;
  font-size:.95rem;
  color: var(--cream-2);
}
.presencial-marks .dot{
  width:8px; height:8px; border-radius:50%;
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(196,154,91,.15);
}

.presencial-form{
  background: rgba(30,24,19,.6);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: clamp(1.8rem, 3vw, 2.4rem);
  display:flex; flex-direction:column; gap: 1.1rem;
}
.form-eyebrow{
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color: var(--gold);
  font-weight:500;
  margin: 0 0 .6rem;
  display:inline-flex; align-items:center; gap:.7rem;
}
.form-eyebrow::before{
  content:""; width:28px; height:1px; background: var(--gold); display:inline-block;
}
.field{
  display:flex; flex-direction:column; gap:.4rem;
}
.field > span{
  font-size:.78rem;
  letter-spacing:.06em;
  color: var(--cream-3);
  text-transform:uppercase;
  font-weight:500;
}
.field input{
  width:100%;
  padding: .85rem 1rem;
  background: var(--bg);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  color: var(--cream);
  font-family:"Inter",sans-serif;
  font-size: 1rem;
  transition: border-color .3s, background .3s;
}
.field input::placeholder{ color: var(--cream-3); opacity: .6; }
.field input:focus{
  outline: none;
  border-color: var(--gold);
  background: rgba(196,154,91,.04);
}
.presencial-form .btn-wide{
  width: 100%;
  justify-content:center;
  margin-top: .6rem;
}
.form-fine{
  margin: 0;
  font-size:.78rem;
  color: var(--cream-3);
  text-align:center;
  letter-spacing:.04em;
}
.presencial-form.is-sending button{ opacity:.7; pointer-events:none; }

@media (max-width: 880px){
  .presencial-grid{ grid-template-columns: 1fr; gap: 2.6rem; }
}

/* ============================== FLOATING WHATSAPP ============================== */
.wa-float{
  position:fixed;
  right: clamp(1rem, 2.4vw, 1.8rem);
  bottom: clamp(1rem, 2.4vw, 1.8rem);
  width:62px; height:62px;
  border-radius:50%;
  display:grid; place-items:center;
  background: var(--gold);
  color: var(--bg);
  box-shadow:
    0 16px 40px -10px rgba(196,154,91,.55),
    0 0 0 1px rgba(255,255,255,.06) inset;
  transition: transform .35s var(--ease-out), background .3s, box-shadow .35s var(--ease-out);
  isolation:isolate;
  opacity:0;
  transform: translateY(20px) scale(.8);
  pointer-events:none;
}
.wa-float.is-ready{
  opacity:1;
  transform: translateY(0) scale(1);
  pointer-events:auto;
}
.wa-float:hover{
  background: var(--gold-bright);
  transform: scale(1.07);
  box-shadow:
    0 24px 50px -10px rgba(212,181,116,.75),
    0 0 0 1px rgba(255,255,255,.12) inset;
}
/* pulsing rings */
.wa-float::before,
.wa-float::after{
  content:"";
  position:absolute; inset:0;
  border-radius:50%;
  border:1.5px solid var(--gold);
  pointer-events:none;
  z-index:-1;
}
.wa-float::before{ animation: waRing 2.8s ease-out infinite; }
.wa-float::after { animation: waRing 2.8s ease-out infinite 1.4s; }
@keyframes waRing{
  0%   { transform: scale(.85); opacity:.7; }
  100% { transform: scale(1.7);  opacity:0; }
}
.wa-float svg{ width:28px; height:28px; }
@media (max-width: 540px){
  .wa-float{ width:56px; height:56px; }
  .wa-float svg{ width:26px; height:26px; }
}
/* hide the float briefly when the final CTA section is in view (avoids overlap) */
.wa-float.is-near-cta{ opacity:.35; }
