
/* ============================================================
   PRUMOCALC — Landing page
   Paleta roxa + superfícies "liquid glass"
   ============================================================ */
:root{
  color-scheme: dark;

  /* fundo */
  --void:#0E0718;
  --ink:#170C26;
  --plum:#2A1743;
  --royal:#4A2D6E;

  /* acentos */
  --lilac:#BFA3F0;
  --violet:#8B5CF6;
  --orchid:#C77DFF;

  /* tinta */
  --bone:#F5F2F8;
  --mist:rgba(245,242,248,.66);
  --faint:rgba(245,242,248,.40);
  --hair:rgba(245,242,248,.12);

  /* vidro */
  --glass-top:rgba(255,255,255,.10);
  --glass-bot:rgba(255,255,255,.025);
  --rim:rgba(255,255,255,.30);

  --wa:#25D366;

  --shell:min(1180px, 100%);
  --r-lg:28px;
  --r-md:20px;
  --r-sm:14px;

  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

body{
  margin:0;
  font-family:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.68;
  color:var(--bone);
  background:var(--void);
  overflow-x:hidden;
}
img{max-width:100%; display:block}
[hidden]{display:none !important}
a{color:inherit; text-decoration:none}
button,input,textarea{font:inherit; color:inherit}
::selection{background:rgba(199,125,255,.35)}

:focus-visible{
  outline:2px solid var(--orchid);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- atmosfera ---------- */
.sky{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(120% 85% at 50% -10%, #35205A 0%, rgba(53,32,90,0) 60%),
    linear-gradient(175deg, #150C24 0%, #0E0718 45%, #130A20 100%);
}
.aurora{position:fixed; inset:-20vh -10vw; z-index:0; pointer-events:none; filter:blur(70px); opacity:.85}
.aurora i{
  position:absolute; display:block; border-radius:50%;
  will-change:transform;
}
.a1{width:46vw; height:46vw; left:-6vw; top:4vh;  background:radial-gradient(circle at 35% 35%, rgba(139,92,246,.55), rgba(139,92,246,0) 68%); animation:drift1 26s ease-in-out infinite}
.a2{width:52vw; height:52vw; right:-12vw; top:22vh; background:radial-gradient(circle at 60% 40%, rgba(199,125,255,.38), rgba(199,125,255,0) 66%); animation:drift2 33s ease-in-out infinite}
.a3{width:40vw; height:40vw; left:22vw; top:62vh; background:radial-gradient(circle at 50% 50%, rgba(74,45,110,.85), rgba(74,45,110,0) 70%); animation:drift3 40s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6vw,7vh,0) scale(1.12)}}
@keyframes drift2{0%,100%{transform:translate3d(0,0,0) scale(1.05)}50%{transform:translate3d(-7vw,10vh,0) scale(.92)}}
@keyframes drift3{0%,100%{transform:translate3d(0,0,0) scale(.95)}50%{transform:translate3d(5vw,-8vh,0) scale(1.15)}}
@media (prefers-reduced-motion: reduce){ .aurora i{animation:none} }

/* grão sutil */
.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='.6'/></svg>");
}

/* ---------- vidro líquido ---------- */
.glass{
  position:relative;
  border-radius:var(--r-lg);
  background:linear-gradient(170deg, var(--glass-top), var(--glass-bot));
  -webkit-backdrop-filter:blur(26px) saturate(170%);
  backdrop-filter:blur(26px) saturate(170%);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -14px 34px -22px rgba(191,163,240,.55),
    0 22px 60px -26px rgba(0,0,0,.8);
  isolation:isolate;
}
.glass::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; z-index:2;
  background:linear-gradient(135deg, var(--rim) 0%, rgba(255,255,255,0) 32%, rgba(255,255,255,0) 62%, rgba(191,163,240,.42) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite:exclude;
  pointer-events:none;
}
.glass::after{
  content:""; position:absolute; inset:0; z-index:1;
  border-radius:inherit; pointer-events:none;
  background:radial-gradient(90% 55% at 50% -12%, rgba(255,255,255,.16), rgba(255,255,255,0) 62%);
}
.glass > *{position:relative; z-index:3}

/* ---------- tipografia ---------- */
.mono{
  font-family:"Nunito", sans-serif;
  font-weight:500;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:"Nunito", sans-serif;
  font-size:.74rem; font-weight:700; letter-spacing:.20em; text-transform:uppercase;
  color:var(--lilac);
}
.eyebrow::before{
  content:""; width:22px; height:1px; background:linear-gradient(90deg, transparent, var(--lilac));
}
h1,h2,h3,h4{margin:0; font-weight:500; line-height:1.1; text-wrap:balance; letter-spacing:-.02em}
h2{font-size:clamp(1.85rem, 4.4vw, 3rem); font-weight:300}
h2 b{font-weight:600}
h3{font-size:1.18rem; font-weight:500; letter-spacing:-.01em}
p{margin:0}
.lead{color:var(--mist); font-size:clamp(1rem,1.6vw,1.12rem); max-width:62ch}

/* ---------- layout ---------- */
.shell{width:var(--shell); margin-inline:auto; padding-inline:20px}
section{position:relative; z-index:2}
.band{padding-block:clamp(72px, 10vw, 130px)}
.head{display:flex; flex-direction:column; gap:14px; margin-bottom:clamp(34px,5vw,56px); max-width:70ch}

/* fio de prumo — divisor da marca */
.plumb{display:flex; flex-direction:column; align-items:center; gap:0; padding-block:6px}
.plumb span{width:1px; height:46px; background:linear-gradient(180deg, transparent, var(--lilac))}
.plumb i{width:9px; height:9px; transform:rotate(45deg); background:var(--lilac); box-shadow:0 0 14px rgba(191,163,240,.9)}

/* ---------- barra superior ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:10px 0 0;
  padding-top:calc(10px + env(safe-area-inset-top,0px));
  transition:padding .35s ease;
}
.topbar.stuck{padding-top:calc(6px + env(safe-area-inset-top,0px))}
.bar{
  display:flex; align-items:center; gap:18px;
  padding:9px 10px 9px 18px;
  border-radius:999px;
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.topbar:not(.stuck) .bar{
  background:linear-gradient(170deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  -webkit-backdrop-filter:blur(12px) saturate(150%);
  backdrop-filter:blur(12px) saturate(150%);
  border:1px solid rgba(255,255,255,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 14px 40px -28px rgba(0,0,0,.7);
}
.brand{display:flex; align-items:center; gap:11px; margin-right:auto; min-width:0}
.brand img{height:34px; width:auto; flex:none}
.brand .fallback{
  font-family:"Nunito", sans-serif; font-size:.9rem; letter-spacing:.14em; color:var(--bone);
}
.nav{display:flex; align-items:center; gap:4px}
.nav a{
  padding:8px 12px; border-radius:999px; font-size:.88rem; font-weight:300; color:var(--mist);
  transition:color .25s ease, background .25s ease;
}
.nav a:hover{color:var(--bone); background:rgba(255,255,255,.07)}
.bar-actions{display:flex; align-items:center; gap:8px}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:12px 22px; border-radius:999px; border:0; cursor:pointer;
  font-size:.92rem; font-weight:500; letter-spacing:.005em;
  white-space:nowrap; text-align:center;
  transition:transform .3s cubic-bezier(.2,.9,.3,1), box-shadow .3s ease, background .3s ease, filter .3s ease;
}
.btn svg{width:17px; height:17px; flex:none}
.btn-solid{
  color:#1B0F2B;
  background:linear-gradient(140deg, #EADCFF 0%, #C6A6F5 48%, #A97EEA 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 14px 34px -14px rgba(169,126,234,.75);
}
.btn-solid:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 20px 42px -14px rgba(169,126,234,.9)}
.btn-ghost{
  color:var(--bone);
  background:linear-gradient(170deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  backdrop-filter:blur(18px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), inset 0 -10px 22px -18px rgba(191,163,240,.8), 0 10px 26px -16px rgba(0,0,0,.7);
}
.btn-ghost:hover{transform:translateY(-2px); background:linear-gradient(170deg, rgba(255,255,255,.18), rgba(255,255,255,.07))}
.btn-wa{padding-inline:20px}
.btn-wa svg{width:18px;height:18px}

.btn-member{position:relative; padding:11px 20px}
.lbl-min{display:none}
.btn-member .lock{width:15px; height:15px; opacity:.9}

.menu-toggle{display:none}

/* ---------- hero ---------- */
.hero{padding-top:clamp(122px, 17vh, 176px); padding-bottom:clamp(50px,7vw,82px)}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(28px,4vw,56px); align-items:center}
.hero h1{
  font-size:clamp(2.2rem, 5.6vw, 4rem);
  font-weight:200; letter-spacing:-.035em; line-height:1.06;
  margin:18px 0 0;
}
.hero h1 strong{font-weight:600; display:block}
.rotator{
  display:block; min-height:1.15em;
  background:linear-gradient(100deg, #FFFFFF 0%, var(--lilac) 45%, var(--orchid) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-weight:500;
}
.caret{
  display:inline-block; width:2px; height:.82em; vertical-align:-.06em; margin-left:3px;
  background:var(--orchid); animation:blink 1.05s steps(1) infinite;
}
@keyframes blink{50%{opacity:0}}
.hero .lead{margin-top:20px}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px}
.hero-note{margin-top:18px; font-size:.82rem; color:var(--faint); display:flex; align-items:center; gap:8px}
.dot{width:6px;height:6px;border-radius:50%;background:var(--wa); box-shadow:0 0 0 0 rgba(37,211,102,.6); animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 9px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* painel do herói */
.hero-panel{padding:26px; display:flex; flex-direction:column; gap:18px}
.hero-panel .ph-top{display:flex; align-items:center; justify-content:space-between; gap:12px}
.chip{
  display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px;
  font-family:"Nunito", sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--lilac); background:rgba(191,163,240,.12); border:1px solid rgba(191,163,240,.22);
  white-space:nowrap;
}
.ledger{display:flex; flex-direction:column; gap:0}
.ledger-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:11px 0; border-bottom:1px dashed rgba(245,242,248,.10);
}
.ledger-row:last-child{border-bottom:0}
.ledger-row .k{font-size:.88rem; color:var(--mist); font-weight:300}
.ledger-row .v{font-size:.95rem; color:var(--bone); font-weight:500; white-space:nowrap}
.ledger-total{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  margin-top:6px; padding-top:14px; border-top:1px solid rgba(255,255,255,.14);
}
.ledger-total .k{font-family:"Nunito", sans-serif; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint)}
.ledger-total .v{font-size:1.5rem; font-weight:600; letter-spacing:-.02em; color:#fff}
.ph-foot{font-size:.76rem; color:var(--faint); line-height:1.55}

/* painel de memória de cálculo — rotação */
.memo-head{display:flex; align-items:center; justify-content:space-between; gap:12px}
.memo-stage{display:flex; flex-direction:column; min-height:276px}
.memo-note{font-size:.76rem; color:var(--faint); line-height:1.55; min-height:3.1em}
.memo-row{opacity:0; transform:translateY(9px); animation:memoIn .55s cubic-bezier(.2,.8,.3,1) forwards}
@keyframes memoIn{to{opacity:1; transform:none}}
.ledger-row.sub{padding:6px 0 6px 18px; border-bottom:0}
.ledger-row.sub .k{font-size:.8rem; color:var(--faint); font-weight:400}
.ledger-row.sub .v{font-size:.84rem; color:var(--mist); font-weight:500}
.ledger-row.rule{border-bottom:1px dashed rgba(245,242,248,.10)}
.memo-tabs{display:flex; gap:6px}
.memo-tabs{align-items:center}
.memo-tabs button{
  width:30px; height:30px; padding:13px 2px; box-sizing:border-box;
  border:0; cursor:pointer; position:relative; background:none;
  -webkit-tap-highlight-color:transparent;
}
.memo-tabs button::before{
  content:""; position:absolute; inset:13px 2px; border-radius:99px;
  background:rgba(255,255,255,.18); transition:background .3s ease;
}
.memo-tabs button:hover::before{background:rgba(255,255,255,.34)}
.memo-tabs button::after{
  content:""; position:absolute; inset:13px 2px; border-radius:99px; background:var(--lilac);
  transform:scaleX(0); transform-origin:left;
}
.memo-tabs button[aria-selected="true"]::after{animation:memoFill var(--memo-dur,3s) linear forwards}
.hero-panel.is-paused .memo-tabs button::after{animation-play-state:paused}
@keyframes memoFill{to{transform:scaleX(1)}}
@media (prefers-reduced-motion: reduce){
  .memo-row{animation:none; opacity:1; transform:none}
  .memo-tabs button[aria-selected="true"]::after{animation:none; transform:scaleX(1)}
}

/* ---------- serviços ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(258px,1fr)); gap:18px}
.svc{padding:26px 24px 24px; display:flex; flex-direction:column; gap:16px; transition:transform .45s cubic-bezier(.2,.9,.3,1), box-shadow .45s ease}
.svc:hover{transform:translateY(-6px); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), inset 0 -14px 34px -20px rgba(191,163,240,.7), 0 32px 70px -26px rgba(0,0,0,.85)}
.svc-ico{
  width:44px; height:44px; border-radius:13px; display:grid; place-items:center;
  background:linear-gradient(150deg, rgba(191,163,240,.30), rgba(139,92,246,.12));
  border:1px solid rgba(191,163,240,.28);
}
.svc-ico svg{width:21px; height:21px; stroke:var(--lilac); fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
.svc h3{font-size:1.1rem}
.svc ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px}
.svc li{
  position:relative; padding-left:18px; font-size:.9rem; font-weight:400; color:var(--mist); line-height:1.52;
}
.svc li::before{
  content:""; position:absolute; left:2px; top:.62em; width:5px; height:5px; transform:rotate(45deg);
  background:var(--lilac); opacity:.7;
}

/* ---------- prévia / qualidade ---------- */
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(26px,4vw,54px); align-items:center}
.figure{
  position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:1/1; max-width:100%;
  background:
    radial-gradient(90% 70% at 25% 20%, rgba(191,163,240,.30), rgba(191,163,240,0) 60%),
    linear-gradient(150deg, #3B2359, #593880);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 34px 80px -34px rgba(0,0,0,.9);
}
.figure img{width:100%; height:100%; object-fit:cover}
#qualidade .figure{width:100%; max-width:420px; margin-inline:auto}
.figure::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(200deg, rgba(191,163,240,.10), rgba(14,7,24,.28) 70%);
}
.figure .mark{
  position:absolute; inset:0; display:grid; place-items:center; font-family:"Nunito", sans-serif;
  letter-spacing:.3em; font-size:.8rem; color:rgba(245,242,248,.45);
}
.figure img + .mark{display:none}

/* ---------- por que / áreas ---------- */
.two-col{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px}
.pillbox{padding:26px 24px}
.pillbox h3{margin-bottom:16px}
.pills{display:flex; flex-wrap:wrap; gap:9px}
.pill{
  display:inline-flex; align-items:center; gap:8px; padding:9px 15px; border-radius:999px;
  font-size:.84rem; font-weight:300; color:var(--bone);
  background:linear-gradient(170deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .3s ease, background .3s ease;
}
.pill:hover{transform:translateY(-2px); background:linear-gradient(170deg, rgba(255,255,255,.16), rgba(255,255,255,.05))}
.pill svg{width:14px;height:14px;stroke:var(--lilac);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- fio de prumo animado ---------- */
.prumo-row{display:grid; grid-template-columns:236px minmax(0,1fr); gap:clamp(26px,4vw,52px); align-items:start}
.plumb-stage{
  position:sticky; top:118px;
  display:flex; flex-direction:column; align-items:center; gap:16px;
  padding:26px 18px 30px;
}
.plumb-svg{width:148px; height:292px; overflow:visible; display:block}
.plumb-svg .beam{stroke:rgba(245,242,248,.30); stroke-width:2.5; stroke-linecap:round}
.plumb-svg .cord{stroke:rgba(191,163,240,.75); stroke-width:1.4}
.plumb-svg .bob-line{stroke:var(--lilac); stroke-width:2.6; fill:none; stroke-linejoin:round}
.plumb-svg .bob-fill{fill:rgba(191,163,240,.18)}
.plumb-svg .ring{stroke:var(--lilac); stroke-width:2.6; fill:none}
.plumb-swing{transform-origin:66px 14px; animation:none}
.plumb-stage.on .plumb-swing{animation:plumbSwing 3.6s cubic-bezier(.4,0,.2,1) forwards, plumbIdle 7s ease-in-out 3.6s infinite}
@keyframes plumbSwing{
  0%{transform:rotate(-15deg)}
  14%{transform:rotate(11deg)}
  29%{transform:rotate(-7.4deg)}
  43%{transform:rotate(4.6deg)}
  57%{transform:rotate(-2.6deg)}
  71%{transform:rotate(1.3deg)}
  85%{transform:rotate(-.5deg)}
  100%{transform:rotate(0deg)}
}
@keyframes plumbIdle{0%,100%{transform:rotate(-.7deg)}50%{transform:rotate(.7deg)}}

/* linha-guia vertical que "acerta o prumo" */
.plumb-guide{
  position:absolute; left:50%; top:0; bottom:0; width:1px; margin-left:-.5px; z-index:0;
  background:linear-gradient(180deg, rgba(191,163,240,0), rgba(191,163,240,.62) 22%, rgba(191,163,240,.62) 78%, rgba(191,163,240,0));
  box-shadow:0 0 14px rgba(191,163,240,.45);
  transform:scaleY(0); transform-origin:top; opacity:0;
}
.plumb-svg, .plumb-caption{position:relative; z-index:1}
.plumb-stage.on .plumb-guide{animation:guideDraw .9s ease-out 3.1s forwards}
@keyframes guideDraw{from{transform:scaleY(0); opacity:0} to{transform:scaleY(1); opacity:1}}
.plumb-caption{
  text-align:center; font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--lilac); opacity:0;
}
.plumb-stage.on .plumb-caption{animation:capIn .8s ease-out 3.5s forwards}
@keyframes capIn{to{opacity:1}}
.plumb-tip{fill:var(--lilac); opacity:0}
.plumb-stage.on .plumb-tip{animation:tipGlow 1.6s ease-out 3.3s infinite}
@keyframes tipGlow{0%{opacity:0; r:2.5}45%{opacity:.85}100%{opacity:0; r:9}}
@media (prefers-reduced-motion: reduce){
  .plumb-stage.on .plumb-swing,
  .plumb-stage.on .plumb-caption,
  .plumb-stage.on .plumb-guide,
  .plumb-stage.on .plumb-tip{animation:none}
  .plumb-guide{transform:scaleY(1); opacity:1}
  .plumb-caption{opacity:1}
}
.prumo-stack{display:flex; flex-direction:column; gap:18px}

/* ---------- escritórios parceiros ---------- */
.logo-wall{
  position:relative; margin-top:clamp(30px,4vw,44px); padding-block:6px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.logo-track{display:flex; width:max-content; animation:marquee 44s linear infinite}
.logo-wall:hover .logo-track, .logo-wall:focus-within .logo-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)} to{transform:translateX(-50%)}}
.logo-tile{
  flex:none; width:198px; height:106px; margin-right:16px; display:grid; place-items:center;
  padding:18px 20px; border-radius:18px;
  background:linear-gradient(180deg, #FFFFFF, #F3EFF8);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 16px 34px -18px rgba(0,0,0,.75);
  transition:transform .35s cubic-bezier(.2,.9,.3,1), box-shadow .35s ease;
}
.logo-tile:hover{transform:translateY(-4px); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 24px 48px -18px rgba(0,0,0,.85)}
.logo-tile img{max-width:100%; max-height:70px; width:auto; height:auto; object-fit:contain}
.wall-note{margin-top:22px; text-align:center; font-size:.82rem; color:var(--faint)}
@media (prefers-reduced-motion: reduce){
  .logo-track{animation:none; flex-wrap:wrap; width:auto; justify-content:center; gap:16px}
  .logo-tile{margin-right:0}
  .logo-track [data-clone]{display:none}
  .logo-wall{-webkit-mask-image:none; mask-image:none}
}

/* ---------- blog ---------- */
.badge-soon{
  display:inline-flex; align-items:center; gap:6px; margin-left:10px; padding:4px 10px; border-radius:999px;
  font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--orchid); background:rgba(199,125,255,.12); border:1px solid rgba(199,125,255,.28);
  letter-spacing:.12em;
}
.posts{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px}
.post{padding:0; display:flex; flex-direction:column; overflow:hidden}
.post-thumb{
  height:130px; position:relative; overflow:hidden;
  background:linear-gradient(140deg, rgba(191,163,240,.26), rgba(74,45,110,.55));
  display:grid; place-items:center;
}
.post-thumb::after{
  content:""; position:absolute; inset:0;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.07) 0 1px, transparent 1px 34px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.07) 0 1px, transparent 1px 34px);
}
.post-thumb svg{width:38px; height:38px; stroke:rgba(245,242,248,.65); fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; position:relative; z-index:2}
.post-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:11px; flex:1}
.post-meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.post-cat{
  font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--lilac); padding:4px 10px; border-radius:999px;
  background:rgba(191,163,240,.13); border:1px solid rgba(191,163,240,.24);
}
.post-time{font-size:.72rem; color:var(--faint)}
.post h3{font-size:1.02rem; line-height:1.34; font-weight:600}
.post p{font-size:.86rem; color:var(--mist); line-height:1.6}
.post-link{
  margin-top:auto; padding-top:6px; display:inline-flex; align-items:center; gap:8px;
  font-size:.82rem; font-weight:600; color:var(--faint);
}
.post-link svg{width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}

/* ---------- planos ---------- */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); gap:16px}
.plan{padding:24px 22px; display:flex; flex-direction:column; gap:14px}
.plan .pname{font-size:1.05rem; font-weight:500}
.plan .pwho{font-size:.8rem; color:var(--faint); font-weight:300; min-height:2.4em}
.plan .pnum{font-size:2.3rem; font-weight:600; letter-spacing:-.04em; line-height:1;
  background:linear-gradient(120deg,#fff, var(--lilac)); -webkit-background-clip:text; background-clip:text; color:transparent}
.plan .pnum span{font-size:.9rem; font-weight:400; letter-spacing:0; -webkit-text-fill-color:var(--mist)}
.plan ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; font-size:.84rem; color:var(--mist); font-weight:300}
.plan li{display:flex; gap:9px; align-items:flex-start; line-height:1.45}
.plan li svg{width:14px;height:14px;margin-top:5px;flex:none;stroke:var(--lilac);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.plan--accent{background:linear-gradient(165deg, rgba(191,163,240,.20), rgba(139,92,246,.06))}
.footnote{margin-top:16px; font-size:.78rem; color:var(--faint)}

/* ---------- equipe ---------- */
.team{display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:18px}
.member{padding:0; overflow:hidden; display:flex; flex-direction:column}
.portrait{
  position:relative; aspect-ratio:1/1; overflow:hidden;
  background:linear-gradient(150deg, var(--plum), var(--royal));
}
.portrait img{width:100%;height:100%;object-fit:cover; transition:transform .8s cubic-bezier(.2,.9,.3,1)}
.member:hover .portrait img{transform:scale(1.05)}
.portrait .ini{
  position:absolute; inset:0; display:grid; place-items:center;
  font-size:2.6rem; font-weight:200; letter-spacing:.14em; color:rgba(245,242,248,.5);
}
.portrait img + .ini{display:none}
.portrait::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,7,24,0) 45%, rgba(14,7,24,.82) 100%)}
.m-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px}
.m-body h3{font-size:1.05rem}
.m-handle{font-family:"Nunito", sans-serif; font-size:.78rem; font-weight:600; color:var(--lilac); display:inline-flex; align-self:flex-start; align-items:center; gap:6px; padding-block:6px; transition:opacity .25s ease}
.m-handle:hover{opacity:.7}
.m-body p{font-size:.85rem; color:var(--mist); font-weight:300; line-height:1.6}

/* ---------- formulário ---------- */
.form-wrap{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,4vw,48px); align-items:start}
.form-card{padding:clamp(24px,3.4vw,38px)}
.field{display:flex; flex-direction:column; gap:7px; margin-bottom:16px}
.field label{font-family:"Nunito", sans-serif; font-size:.70rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--faint)}
.field label .req{color:var(--orchid)}
.field input, .field textarea{
  width:100%; padding:13px 15px; border-radius:var(--r-sm);
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  font-size:.94rem; font-weight:300; color:var(--bone);
  transition:border-color .25s ease, background .25s ease, box-shadow .25s ease;
}
.field textarea{resize:vertical; min-height:104px}
.field input::placeholder, .field textarea::placeholder{color:rgba(245,242,248,.30)}
.field input:focus, .field textarea:focus{
  outline:none; border-color:rgba(191,163,240,.55); background:rgba(255,255,255,.085);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 0 0 3px rgba(191,163,240,.14);
}
.subjects{display:flex; flex-wrap:wrap; gap:8px; margin-top:2px}
.subjects input{position:absolute; opacity:0; width:1px; height:1px}
.subjects label{
  display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:999px; cursor:pointer;
  font-family:"Nunito", sans-serif; font-size:.8rem; font-weight:300; letter-spacing:0; text-transform:none;
  color:var(--mist);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.11);
  transition:all .25s ease;
}
.subjects label:hover{background:rgba(255,255,255,.10); color:var(--bone)}
.subjects input:checked + label{
  color:#1B0F2B; border-color:transparent;
  background:linear-gradient(140deg,#EADCFF,#BFA3F0);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 8px 20px -10px rgba(191,163,240,.8);
}
.subjects input:focus-visible + label{outline:2px solid var(--orchid); outline-offset:2px}
.form-foot{margin-top:22px; display:flex; flex-direction:column; gap:12px}
.form-foot .btn{width:100%}
.form-hint{font-size:.76rem; color:var(--faint); line-height:1.5}
.form-msg{font-size:.82rem; color:var(--orchid); min-height:1.2em}

.contact-side{display:flex; flex-direction:column; gap:14px}
.ccard{display:flex; align-items:center; gap:14px; padding:18px 20px; border-radius:var(--r-md); transition:transform .3s ease}
.ccard:hover{transform:translateX(4px)}
.ccard .ci{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:linear-gradient(150deg, rgba(191,163,240,.28), rgba(139,92,246,.10)); border:1px solid rgba(191,163,240,.26)}
.ccard .ci svg{width:19px;height:19px;stroke:var(--lilac);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ccard .ct{font-size:.70rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); font-family:"Nunito", sans-serif}
.ccard .cv{font-size:.95rem; font-weight:400}

/* ---------- rodapé ---------- */
footer{position:relative; z-index:2; margin-top:clamp(50px,7vw,90px); border-top:1px solid var(--hair)}
.foot{display:flex; flex-wrap:wrap; gap:28px; justify-content:space-between; align-items:flex-start; padding-block:44px}
.foot-brand img{height:44px; width:auto; opacity:.95}
.foot-brand .fallback{font-family:"Nunito", sans-serif; letter-spacing:.22em; font-size:1rem}
.foot p{font-size:.82rem; color:var(--faint); max-width:34ch; margin-top:12px; line-height:1.6}
.foot-links{display:flex; flex-direction:column; gap:9px}
.foot-links a{font-size:.86rem; color:var(--mist); font-weight:300; transition:color .25s ease}
.foot-links a:hover{color:var(--bone)}
.foot-links .ft{font-family:"Nunito", sans-serif; font-size:.70rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); margin-bottom:4px}
.social{display:flex; gap:9px; margin-top:16px}
.social a{
  width:40px;height:40px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(170deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .3s ease, background .3s ease;
}
.social a:hover{transform:translateY(-3px); background:linear-gradient(170deg, rgba(255,255,255,.18), rgba(255,255,255,.06))}
.social svg{width:17px;height:17px;fill:var(--bone)}
.copyright{
  border-top:1px solid var(--hair); padding-block:20px;
  display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;
  font-size:.76rem; color:var(--faint);
}

/* ---------- fio de prumo do scroll ---------- */
.scrollplumb{
  position:fixed; right:18px; top:18vh; bottom:18vh; width:1px; z-index:40; pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(191,163,240,.28) 12%, rgba(191,163,240,.28) 88%, transparent);
  opacity:0; transition:opacity .5s ease;
}
.scrollplumb.on{opacity:1}
.scrollplumb b{
  position:absolute; left:50%; top:0; width:7px; height:7px; margin-left:-3.5px;
  transform:translateY(-50%) rotate(45deg); background:var(--lilac);
  box-shadow:0 0 12px rgba(191,163,240,.95);
}
@media (max-width:1180px){ .scrollplumb{display:none} }

/* ---------- revelação no scroll ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .85s cubic-bezier(.2,.8,.3,1), transform .85s cubic-bezier(.2,.8,.3,1)}
.reveal.in{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important; transform:none !important; transition:none}
}

/* ---------- responsivo ---------- */
@media (max-width:1150px){
  .nav a{padding:8px 9px; font-size:.84rem}
  .bar{gap:12px}
}
@media (max-width:980px){
  .prumo-row{grid-template-columns:1fr}
  .plumb-stage{position:static; padding-block:8px 22px}
  .plumb-svg{width:126px; height:248px}
  .hero-grid{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .form-wrap{grid-template-columns:1fr}
  .nav{display:none}
  .nav.open{
    display:flex; flex-direction:column; align-items:stretch; gap:2px;
    position:absolute; top:calc(100% + 8px); left:0; right:0; padding:12px;
    border-radius:var(--r-md);
    background:linear-gradient(170deg, rgba(40,23,63,.985), rgba(22,12,36,.99));
    -webkit-backdrop-filter:blur(26px) saturate(170%); backdrop-filter:blur(26px) saturate(170%);
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 28px 60px -28px rgba(0,0,0,.9);
  }
  .nav.open a{padding:12px 14px}
  .menu-toggle{display:inline-flex; width:42px; padding:0; height:42px}
  .menu-toggle svg{width:19px;height:19px;stroke:var(--bone);fill:none;stroke-width:1.6;stroke-linecap:round}
  .bar{position:relative}
}
@media (max-width:820px){
  .eyebrow{font-size:.76rem}
  .chip{font-size:.72rem}
  .post-cat{font-size:.7rem}
  .badge-soon{font-size:.68rem}
  .ledger-total .k, .field label, .foot-links .ft, .ccard .ct, .plumb-caption{font-size:.74rem}
  .post-time{font-size:.78rem}
  .creds .t{font-size:.74rem}
}
@media (max-width:700px){
  .bar{padding-left:14px; gap:10px}
  .brand img{height:28px}
  .btn-wa span{display:none}
  .btn-wa{padding-inline:14px}
  .foot{gap:32px}
}
@media (max-width:560px){
  .bar{padding:8px 8px 8px 12px; gap:8px}
  .bar-actions{gap:6px}
  .lbl-full{display:none}
  .lbl-min{display:inline}
  .btn-member{padding:11px 14px}
  .hero-panel{padding:20px}
  .memo-stage{min-height:252px}
  .ledger-row{padding:9px 0}
  .ledger-row .k{font-size:.8rem}
  .ledger-row .v{font-size:.86rem}
  .ledger-total .v{font-size:1.25rem}
  .eyebrow{font-size:.72rem; letter-spacing:.16em}
  .chip{letter-spacing:.06em; padding-inline:10px}
  .memo-tabs button{width:26px}
}
@media (max-width:420px){
  .brand img{height:24px}
  .btn-member{padding:10px 12px; font-size:.84rem}
}
