:root{
  /* CORES DA MARCA — lavanda + roxo uva + ameixa (alto contraste) */
  --bg:#FFFFFF; --bg-deep:#F4F0FA; --surface:#FFFFFF; --surface-2:#F6F2FC;
  --indigo:#512A8C; --indigo-deep:#371B4C; --indigo-bright:#512A8C;
  --glow:rgba(81,42,140,.30);
  --text:#1B1226; --mut:#504860; --dim:#8B8398;
  --line:rgba(55,27,76,.14); --line-soft:rgba(55,27,76,.06);
  --serif:'Fraunces',Georgia,serif; --sans:'Hanken Grotesk',system-ui,sans-serif;
  --max:1280px;
}
/* zonas ESCURAS (hero, faixas de CTA, rodapé, menu) — ameixa profundo da marca */
nav, .hero, .band, footer{
  --bg:#2A1340; --bg-deep:#1E0E2E; --surface:#37204F; --surface-2:#43275C;
  --text:#F1ECF7; --mut:#BBAFCE; --dim:#8C80A6;
  --indigo-bright:#C9B6E8; --glow:rgba(150,100,210,.5);
  --line:rgba(255,255,255,.11); --line-soft:rgba(255,255,255,.05);
}
.hero{background:var(--bg)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--text); font-family:var(--sans);
  font-weight:400; line-height:1.65; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity:.022; mix-blend-mode:overlay;
}
::selection{background:var(--indigo);color:#fff}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.4rem,4vw,3.5rem)}

/* ---------- typography ---------- */
h1,h2,h3{font-family:var(--serif);font-optical-sizing:auto;font-weight:400;line-height:1.06;letter-spacing:-.012em}
.eyebrow{
  font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--indigo-bright);display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--indigo-bright);opacity:.6}
.eyebrow.ctr{justify-content:center}
em{font-style:italic;color:var(--indigo-bright)}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--mut);font-weight:300;line-height:1.7}

/* ---------- nav ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  transition:background .4s ease,border-color .4s ease,padding .4s ease;
  border-bottom:1px solid transparent;padding:1.9rem 0;
}
nav.scrolled,nav.solid{padding:1.1rem 0}
nav.scrolled{background:rgba(30,14,46,.86);backdrop-filter:blur(14px);border-color:var(--line)}
.navbar{display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;cursor:pointer}
.brand img{height:54px;width:auto;max-width:none;transition:opacity .3s,height .4s ease}
nav.scrolled .brand img,nav.solid .brand img{height:42px}
.brand:hover img{opacity:.82}
.nav-links{display:flex;align-items:center;gap:2.3rem;list-style:none}
.nav-links a{
  font-size:.83rem;font-weight:500;letter-spacing:.04em;color:#DED4F2;
  position:relative;padding:.4rem 0;cursor:pointer;transition:color .3s;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--indigo-bright);transform:scaleX(0);transform-origin:right;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.nav-links a:hover,.nav-links a.on{color:var(--text)}
.nav-links a:hover::after,.nav-links a.on::after{transform:scaleX(1);transform-origin:left}
.nav-cta{
  font-size:.8rem;font-weight:700;letter-spacing:.03em;color:#fff!important;
  background:#ff6a13;border:1px solid #ff6a13;padding:.72rem 2rem!important;border-radius:0;margin-left:1rem;line-height:1;
  transition:filter .25s,transform .15s,box-shadow .25s;box-shadow:0 3px 14px rgba(255,106,19,.32);
}
.nav-cta::after{display:none}
.nav-cta:hover{filter:brightness(1.08);transform:translateY(-1px);background:#ff6a13;border-color:#ff6a13;box-shadow:0 5px 20px rgba(255,106,19,.5)}
/* CTAs laranja do hero */
.hero .btn-primary{background:#ff6a13;color:#fff;box-shadow:0 4px 16px rgba(255,106,19,.3)}
.hero .btn-primary:hover{filter:brightness(1.07);background:#ff6a13}
.hero .btn-ghost{border-color:#ff6a13;color:#ff6a13}
.hero .btn-ghost:hover{border-color:#ff6a13;color:#ff6a13;background:rgba(255,106,19,.12)}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:0}
.burger span{width:24px;height:1.5px;background:var(--text);transition:.3s}
.burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;font-family:var(--sans);
  font-size:.84rem;font-weight:600;letter-spacing:.04em;cursor:pointer;
  padding:.95rem 1.9rem;border-radius:2px;border:1px solid transparent;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),background .3s,box-shadow .3s,border-color .3s;
}
.btn .ar{transition:transform .3s}
.btn:hover .ar{transform:translateX(4px)}
.btn-primary{background:var(--indigo);color:#fff;box-shadow:0 0 0 rgba(150,100,210,0)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px -12px var(--glow)}
.btn-ghost{border-color:var(--line);color:var(--text)}
.btn-ghost:hover{border-color:var(--indigo-bright);background:rgba(201,182,232,.06);transform:translateY(-2px)}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap}

/* ---------- pages / sections ---------- */
.page{display:none}
.page.active{display:block;animation:pagein .7s ease}
@keyframes pagein{from{opacity:0}to{opacity:1}}
section{position:relative}
.pad{padding:clamp(2.25rem,4.5vw,4.25rem) 0}
.pad-t{padding-top:clamp(5.5rem,9vw,8rem)}
.bg-deep{background:var(--bg-deep)}
.hair{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}

/* ---------- hero ---------- */
.hero{
  min-height:100vh;display:flex;align-items:center;
  padding:8rem 0 4rem;overflow:hidden;
}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-bg .contours{
  position:absolute;right:-18%;top:50%;transform:translateY(-50%);
  width:min(1100px,90vw);opacity:.5;
}
.hero-bg .contours path{fill:none;stroke:var(--indigo);stroke-width:1.1}
.hero-glow{
  position:absolute;width:620px;height:620px;border-radius:50%;
  background:radial-gradient(circle,var(--glow),transparent 68%);
  right:-6%;top:24%;filter:blur(40px);opacity:.55;
}
.hero-grad{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,var(--bg) 96%),
             linear-gradient(90deg,var(--bg) 8%,transparent 60%);
}
.hero .wrap{position:relative;z-index:2;width:100%}
.hero-inner{max-width:880px}
.hero h1{
  font-size:clamp(2.7rem,7.4vw,6.1rem);font-weight:380;margin:1.7rem 0 1.9rem;
}
.hero h1 .sm{display:block;font-size:.93em}
.hero .lead{max-width:560px;margin-bottom:2.6rem}
.scrollcue{
  margin-top:4.5rem;display:flex;align-items:center;gap:.8rem;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);
}
.scrollcue .ln{width:46px;height:1px;background:var(--line);position:relative;overflow:hidden}
.scrollcue .ln::after{
  content:"";position:absolute;inset:0;background:var(--indigo-bright);
  animation:slide 2.4s infinite;
}
@keyframes slide{0%{transform:translateX(-100%)}55%,100%{transform:translateX(100%)}}

/* hero load stagger */
.hero .anim{opacity:0;transform:translateY(26px);animation:rise .95s cubic-bezier(.2,.7,.2,1) forwards}
.hero .anim:nth-child(1){animation-delay:.1s}
.hero .d1{animation-delay:.22s}.hero .d2{animation-delay:.36s}
.hero .d3{animation-delay:.5s}.hero .d4{animation-delay:.66s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- section heading ---------- */
.sec-head{max-width:680px;margin-bottom:clamp(2.6rem,5vw,4rem)}
.sec-head.ctr{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(2rem,4.4vw,3.5rem);font-weight:390;margin:1.3rem 0 1.1rem}
.sec-head .lead{margin:0}

/* ---------- stats ---------- */
.stats-sec{padding:clamp(3rem,6vw,5rem) 0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:transparent}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:2.3rem 1.5rem;text-align:center}
.stat .num{font-family:var(--serif);font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:400;color:var(--text);line-height:1}
.stat .num em{font-style:italic}
.stat .lbl{font-size:.78rem;color:var(--mut);margin-top:.85rem;letter-spacing:.03em}

/* ---------- intro split ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.split-vis{
  position:relative;aspect-ratio:1/1;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:linear-gradient(160deg,var(--surface),var(--bg-deep));
}
.split-vis .contours{position:absolute;width:160%;opacity:.6}
.split-vis .contours path{fill:none;stroke:var(--indigo);stroke-width:1}
.split-vis img{width:46%;position:relative;z-index:2;opacity:.92}
.split-vis .corner{position:absolute;width:34px;height:34px}
.split-vis .corner span{position:absolute;background:var(--indigo-bright);opacity:.7}
.tl{top:14px;left:14px}.tl span:nth-child(1){top:0;left:0;width:100%;height:1px}.tl span:nth-child(2){top:0;left:0;width:1px;height:100%}
.br{bottom:14px;right:14px}.br span:nth-child(1){bottom:0;right:0;width:100%;height:1px}.br span:nth-child(2){bottom:0;right:0;width:1px;height:100%}
.prose p+p{margin-top:1.1rem}
.prose .lead{margin-bottom:1.6rem}
.tick-list{list-style:none;margin-top:1.8rem;display:grid;gap:.95rem}
.tick-list li{display:flex;gap:.85rem;font-size:.95rem;color:var(--mut)}
.tick-list svg{flex:none;margin-top:5px}

/* ---------- service cards ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line)}
.card{
  background:var(--bg);padding:clamp(2rem,3vw,2.8rem);position:relative;
  cursor:pointer;transition:background .4s;overflow:hidden;
}
.card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;
  background:var(--indigo-bright);transform:scaleX(0);transform-origin:left;
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.card:hover{background:var(--surface)}
.card:hover::before{transform:scaleX(1)}
.card .idx{font-family:var(--serif);font-size:.95rem;color:var(--indigo-bright);font-style:italic}
.card h3{font-size:1.42rem;font-weight:420;margin:1.5rem 0 .9rem}
.card p{font-size:.93rem;color:var(--mut);line-height:1.68}
.card .more{
  margin-top:1.5rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:.5rem;
  transition:color .3s,gap .3s;
}
.card:hover .more{color:var(--indigo-bright);gap:.8rem}

/* ---------- why grid ---------- */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2.6rem 2.4rem}
.why{padding-top:1.7rem;border-top:1px solid var(--line)}
.why .n{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--indigo-bright)}
.why h3{font-size:1.28rem;font-weight:430;margin:.9rem 0 .7rem}
.why p{font-size:.92rem;color:var(--mut)}

/* ---------- process ---------- */
.steps{display:grid;gap:0}
.step{
  display:grid;grid-template-columns:90px 1fr;gap:clamp(1.5rem,4vw,3.5rem);
  padding:2.4rem 0;border-bottom:1px solid var(--line);align-items:start;
}
.step:first-child{border-top:1px solid var(--line)}
.step .st-n{font-family:var(--serif);font-size:2.4rem;font-weight:300;color:var(--indigo-bright);line-height:1}
.step .st-body h3{font-size:1.45rem;font-weight:430;margin-bottom:.6rem}
.step .st-body p{color:var(--mut);font-size:.97rem;max-width:620px}
.step{transition:padding-left .4s}
.step:hover{padding-left:12px}

/* ---------- indigo band ---------- */
.band{
  background:linear-gradient(135deg,var(--indigo-deep),var(--indigo));
  position:relative;overflow:hidden;
}
.band .ridge{position:absolute;right:-4%;bottom:-30%;width:560px;opacity:.16}
.band .ridge path{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.band .wrap{position:relative;z-index:2;text-align:center}
.band h2{font-size:clamp(1.9rem,4vw,3.2rem);font-weight:380;margin-bottom:1.4rem;color:#fff}
.band p{color:rgba(255,255,255,.78);max-width:520px;margin:0 auto 2.3rem;font-weight:300}
.band .btn-primary{background:#fff;color:var(--indigo-deep)}
.band .btn-primary:hover{box-shadow:0 16px 44px -14px rgba(0,0,0,.5)}
.band .btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.band .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ---------- about values ---------- */
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line)}
.value{background:var(--bg);padding:2.2rem 1.7rem}
.value .vi{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--indigo-bright)}
.value h3{font-size:1.12rem;font-weight:500;font-family:var(--sans);margin:1rem 0 .55rem;letter-spacing:.01em}
.value p{font-size:.86rem;color:var(--mut)}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.8rem}
.member{border:1px solid var(--line);transition:border-color .4s,transform .4s}
.member:hover{border-color:rgba(201,182,232,.4);transform:translateY(-4px)}
.member .ph{
  aspect-ratio:4/4.4;background:linear-gradient(160deg,var(--surface),var(--bg-deep));
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.member .ph .contours{position:absolute;width:170%;opacity:.5}
.member .ph .contours path{fill:none;stroke:var(--indigo);stroke-width:1}
.member .ph .mono{
  font-family:var(--serif);font-size:3.4rem;color:var(--indigo-bright);
  font-style:italic;position:relative;z-index:2;opacity:.85;
}
.member .info{padding:1.5rem 1.6rem 1.8rem}
.member .info h3{font-size:1.2rem;font-weight:460}
.member .info .role{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo-bright);margin:.45rem 0 .9rem}
.member .info p{font-size:.87rem;color:var(--mut)}

/* ---------- sectors ---------- */
.chips{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.5rem}
.chip{
  border:1px solid var(--line);padding:.7rem 1.25rem;border-radius:2px;
  font-size:.86rem;color:var(--mut);transition:.35s;cursor:default;
}
.chip:hover{border-color:var(--indigo-bright);color:var(--text);background:rgba(201,182,232,.05)}
.profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--line);margin-top:1px}
.profile .pf{background:var(--bg-deep);padding:2.2rem 1.8rem}
.profile .pf h3{font-size:1.18rem;font-weight:440;margin-bottom:.7rem}
.profile .pf p{font-size:.9rem;color:var(--mut)}
.profile .pf .ic{color:var(--indigo-bright);margin-bottom:1.2rem}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2.5rem,6vw,5rem)}
.field{margin-bottom:1.4rem}
.field label{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:.6rem}
.field input,.field textarea,.field select{
  width:100%;background:var(--surface);border:1px solid var(--line);color:var(--text);
  font-family:var(--sans);font-size:.95rem;padding:.9rem 1rem;border-radius:2px;
  transition:border-color .3s,background .3s;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--indigo-bright);background:var(--surface-2);
}
.field textarea{resize:vertical;min-height:120px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-note{font-size:.8rem;color:var(--dim);margin-top:.4rem}
.ok-msg{
  display:none;border:1px solid rgba(201,182,232,.4);background:rgba(201,182,232,.07);
  padding:1.1rem 1.3rem;border-radius:2px;font-size:.92rem;color:var(--text);margin-top:1.2rem;
}
.ok-msg.show{display:block;animation:rise .5s ease}
.cinfo{border-top:1px solid var(--line)}
.cinfo .ci{padding:1.7rem 0;border-bottom:1px solid var(--line)}
.cinfo .ci .k{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--indigo-bright);margin-bottom:.5rem}
.cinfo .ci .v{font-size:1.05rem;color:var(--text)}
.cinfo .ci .v.sm{font-size:.95rem;color:var(--mut)}
.confid{display:flex;gap:.8rem;margin-top:1.8rem;font-size:.85rem;color:var(--mut)}
.confid svg{flex:none;margin-top:3px;color:var(--indigo-bright)}

/* ---------- footer ---------- */
footer{background:var(--bg-deep);border-top:1px solid var(--line);position:relative;overflow:hidden}
footer .contours{position:absolute;left:-10%;bottom:-40%;width:680px;opacity:.28}
footer .contours path{fill:none;stroke:var(--indigo);stroke-width:1}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:2.5rem;padding:clamp(3.5rem,7vw,5.5rem) 0 3.5rem;position:relative;z-index:2}
.foot-brand img{height:30px;margin-bottom:1.4rem}
.foot-brand p{font-size:.88rem;color:var(--mut);max-width:280px}
.foot-col h4{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:1.2rem;font-family:var(--sans);font-weight:600}
.foot-col a,.foot-col .fi{display:block;font-size:.9rem;color:var(--mut);margin-bottom:.7rem;cursor:pointer;transition:color .3s}
.foot-col a:hover{color:var(--indigo-bright)}
/* ===== ícones dos cards de serviço (cores diferentes) ===== */
.card-ic{width:48px;height:48px;border-radius:0;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem}
.card-ic svg{width:26px;height:26px}
.card-ic.c0{background:rgba(201,182,232,.16);color:#C9B6E8}
.card-ic.c1{background:rgba(255,138,180,.18);color:#FF8AB4}
.card-ic.c2{background:rgba(120,200,255,.18);color:#78C8FF}
.card-ic.c3{background:rgba(143,230,180,.18);color:#8FE6B4}
/* ===== rodapé: redes sociais + ícones de contato ===== */
.foot-social{display:flex;gap:.6rem;margin-top:1.3rem}
.foot-social a{width:38px;height:38px;border-radius:0;display:inline-flex;align-items:center;justify-content:center;background:rgba(201,182,232,.14);color:#C9B6E8;transition:background .2s,color .2s,transform .2s}
.foot-social a:hover{background:#C9B6E8;color:#2A1340;transform:translateY(-2px)}
.foot-social svg{width:19px;height:19px}
.foot-col .fi{display:flex;align-items:flex-start;gap:.55rem}
.fic{width:16px;height:16px;flex:none;margin-top:.18rem}
.fic.c-mail{color:#C9B6E8}.fic.c-tel{color:#8FE6B4}.fic.c-loc{color:#FF8AB4}
/* ===== WhatsApp flutuante ===== */
.wa-float{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.28);z-index:900;transition:transform .2s,box-shadow .2s}
.wa-float:hover{transform:scale(1.08);box-shadow:0 8px 26px rgba(37,211,102,.5)}
.wa-float svg{width:32px;height:32px;fill:#fff}
.foot-bot{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1.8rem 0;border-top:1px solid var(--line);position:relative;z-index:2;
}
.foot-bot p{font-size:.78rem;color:var(--dim)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.1s}
.reveal[data-d="2"]{transition-delay:.2s}
.reveal[data-d="3"]{transition-delay:.3s}
.reveal[data-d="4"]{transition-delay:.4s}

/* ---------- journey (vendendo sua empresa) ---------- */
.journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);margin-top:1px}
.jstep{background:var(--bg-deep);padding:2.3rem 1.7rem;position:relative}
.jstep .jn{
  width:38px;height:38px;border:1px solid var(--indigo-bright);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);
  font-style:italic;color:var(--indigo-bright);font-size:1.05rem;margin-bottom:1.3rem;
}
.jstep h3{font-size:1.12rem;font-weight:480;font-family:var(--sans);margin-bottom:.6rem;letter-spacing:.01em}
.jstep p{font-size:.87rem;color:var(--mut)}

/* ---------- testimonials ---------- */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.6rem}
.quote{
  border:1px solid var(--line);padding:2.2rem 2rem;background:var(--bg);
  transition:border-color .4s,transform .4s;position:relative;
}
.quote:hover{border-color:rgba(201,182,232,.35);transform:translateY(-4px)}
.quote .mark{font-family:var(--serif);font-size:3.4rem;line-height:.5;color:var(--indigo-bright);opacity:.5;height:1.4rem}
.quote p{font-size:.97rem;color:var(--text);line-height:1.7;font-style:italic;margin:1rem 0 1.6rem}
.quote .who{display:flex;flex-direction:column;gap:.2rem;border-top:1px solid var(--line);padding-top:1.1rem}
.quote .who .nm{font-size:.92rem;font-weight:600;color:var(--text)}
.quote .who .rl{font-size:.8rem;color:var(--dim)}

/* ---------- faq ---------- */
.faq{max-width:840px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;background:none;border:0;cursor:pointer;text-align:left;
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding:1.6rem 0;font-family:var(--serif);font-size:1.18rem;font-weight:420;
  color:var(--text);transition:color .3s;
}
.faq-q:hover{color:var(--indigo-bright)}
.faq-q .pm{flex:none;width:22px;height:22px;position:relative}
.faq-q .pm::before,.faq-q .pm::after{
  content:"";position:absolute;background:var(--indigo-bright);transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.faq-q .pm::before{top:50%;left:0;width:100%;height:1.5px;transform:translateY(-50%)}
.faq-q .pm::after{left:50%;top:0;width:1.5px;height:100%;transform:translateX(-50%)}
.faq-item.open .faq-q .pm::after{transform:translateX(-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-a p{padding:0 0 1.6rem;color:var(--mut);font-size:.96rem;max-width:680px}

/* ---------- content / insights cards ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.6rem}
.post{
  border:1px solid var(--line);background:var(--bg);cursor:pointer;
  transition:border-color .4s,transform .4s;display:flex;flex-direction:column;
}
.post:hover{border-color:rgba(201,182,232,.35);transform:translateY(-4px)}
.post .pcover{
  aspect-ratio:16/9;background:linear-gradient(150deg,var(--surface),var(--bg-deep));
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.post .pcover .contours{position:absolute;width:150%;opacity:.4}
.post .pcover .contours path{fill:none;stroke:var(--indigo);stroke-width:1}
.post .pcover .pmark{font-family:var(--serif);font-style:italic;color:var(--indigo-bright);font-size:1.6rem;position:relative;z-index:2;opacity:.8}
.post .pbody{padding:1.7rem 1.6rem 1.8rem;flex:1;display:flex;flex-direction:column}
.post .ptag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--indigo-bright);font-weight:600}
.post h3{font-size:1.18rem;font-weight:440;margin:.9rem 0 .7rem;line-height:1.3}
.post p{font-size:.88rem;color:var(--mut);flex:1}
.post .pdate{font-size:.78rem;color:var(--dim);margin-top:1.3rem}

/* ---------- newsletter ---------- */
.news-box{
  border:1px solid var(--line);background:var(--bg-deep);
  padding:clamp(2.2rem,4vw,3.4rem);display:grid;grid-template-columns:1.2fr 1fr;
  gap:2.5rem;align-items:center;
}
.news-box h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:400;margin-bottom:.6rem}
.news-box p{color:var(--mut);font-size:.93rem}
.news-form{display:flex;gap:.7rem;flex-wrap:wrap}
.news-form input{
  flex:1;min-width:180px;background:var(--surface);border:1px solid var(--line);
  color:var(--text);font-family:var(--sans);font-size:.92rem;padding:.85rem 1rem;border-radius:2px;
}
.news-form input:focus{outline:none;border-color:var(--indigo-bright)}
.news-ok{font-size:.84rem;color:var(--indigo-bright);margin-top:.8rem;display:none}
.news-ok.show{display:block}

/* ---------- positioning strip ---------- */
.posit{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.posit .pi{background:var(--bg);padding:2.4rem 1.8rem;text-align:center}
.posit .pi .pic{color:var(--indigo-bright);margin-bottom:1.1rem;display:flex;justify-content:center}
.posit .pi h3{font-size:1.1rem;font-weight:500;font-family:var(--sans);margin-bottom:.5rem}
.posit .pi p{font-size:.86rem;color:var(--mut)}

/* ---------- partner (seja parceiro) ---------- */
.ptypes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line)}
.ptype{background:var(--bg-deep);padding:2.3rem 1.8rem}
.ptype .pti{color:var(--indigo-bright);margin-bottom:1.2rem}
.ptype h3{font-size:1.2rem;font-weight:440;margin-bottom:.7rem}
.ptype p{font-size:.89rem;color:var(--mut)}
.pbenefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2.4rem 2.4rem}
.pben{padding-top:1.6rem;border-top:1px solid var(--line)}
.pben .pbn{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--indigo-bright)}
.pben h3{font-size:1.2rem;font-weight:430;margin:.85rem 0 .6rem}
.pben p{font-size:.9rem;color:var(--mut)}
.partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.partner-aside{border:1px solid var(--line);background:var(--bg-deep);padding:clamp(1.8rem,3vw,2.6rem)}
.partner-aside h3{font-size:1.4rem;font-weight:430;margin-bottom:1.1rem}
.partner-aside .pa-list{list-style:none;display:grid;gap:1rem;margin-top:.4rem}
.partner-aside .pa-list li{display:flex;gap:.8rem;font-size:.92rem;color:var(--mut)}
.partner-aside .pa-list svg{flex:none;margin-top:4px}

/* ---------- mobile ---------- */
@media(max-width:980px){
  .split,.contact-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr 1fr}
  .split-vis{aspect-ratio:16/11}
}
@media(max-width:720px){
  .burger{display:flex}
  .nav-links{
    position:fixed;inset:0;top:0;background:var(--bg-deep);flex-direction:column;
    justify-content:center;gap:2rem;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links a{font-size:1.3rem;font-family:var(--serif)}
  .nav-cta{font-family:var(--sans);font-size:.95rem}
  .stats{grid-template-columns:1fr 1fr}
  .step{grid-template-columns:54px 1fr}
  .step .st-n{font-size:1.7rem}
  .foot-top{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .hero h1{font-size:clamp(2.4rem,11vw,3.6rem)}
  .news-box{grid-template-columns:1fr;gap:1.5rem}
  .posit{grid-template-columns:1fr}
  .partner-grid{grid-template-columns:1fr}
}

/* ============================================================
   POLIMENTO v2 — refinamentos aditivos (acessibilidade,
   performance, mobile, micro-detalhes). Não altera a identidade.
   ============================================================ */

/* Acessibilidade: foco visível por teclado em links/botões/campos */
a:focus-visible,.btn:focus-visible,.faq-q:focus-visible,
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible,
.news-form input:focus-visible,.burger:focus-visible{
  outline:2px solid var(--indigo-bright);outline-offset:3px;border-radius:2px;
}

/* Respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero .anim{opacity:1!important;transform:none!important;animation:none!important}
}

/* Logo nítido e proporcional */
.brand img,.foot-brand img{image-rendering:-webkit-optimize-contrast}

/* Cursor coerente em elementos navegáveis */
.card,.post,[data-nav]{cursor:pointer}
.foot-col a[data-nav]{cursor:pointer}

/* Botão de envio em estado "enviando" */
.btn[aria-busy="true"]{opacity:.7;pointer-events:none}
.btn[aria-busy="true"] .ar{animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* Mensagem de erro nos formulários (reusa estilo .ok-msg) */
.ok-msg.err{border-color:rgba(220,120,120,.45);background:rgba(220,120,120,.08)}
.news-ok.err{color:#e3a0a0}

/* Refino de tipografia em telas muito pequenas */
@media (max-width:480px){
  .wrap{padding:0 1.25rem}
  .btn{width:100%;justify-content:center}
  .btn-row{flex-direction:column}
  .band .btn-row,.wrap .btn-row[style]{flex-direction:column}
  .stats{grid-template-columns:1fr}
  .chips{gap:.5rem}
}

/* Skip link para acessibilidade */
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--indigo);color:#fff;padding:.7rem 1.1rem;border-radius:2px}
.skip-link:focus{left:1rem;top:1rem}

/* Suaviza entrada de imagens reais (lazy) */
img[loading="lazy"]{background:var(--surface)}

/* ============================================================
   POLIMENTO v3 — fotografia real (hero + caixas visuais)
   ============================================================ */

/* Foto de fundo do hero — entra atrás dos gradientes existentes */
.hero-photo{
  position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center 22%;
  filter:grayscale(.18) contrast(1.06) brightness(.95);
  opacity:.62;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 48%);
          mask-image:linear-gradient(90deg,transparent 0%,#000 48%);
}
.hero-bg .contours{opacity:.2}
.hero-grad{z-index:1}

/* Foto dentro das caixas .split-vis (substitui a marca centralizada) */
.split-vis .vis-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:1;filter:grayscale(.3) contrast(1.06);
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s;
}
.split-vis:hover .vis-photo{transform:scale(1.04);filter:grayscale(.05) contrast(1.08)}
/* tonalização índigo (duotone) sobre a foto, casando com a paleta */
.split-vis .vis-tint{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(160deg,rgba(55,27,76,.42),rgba(7,7,9,.30) 60%),
    radial-gradient(120% 80% at 80% 10%,rgba(201,182,232,.22),transparent 55%);
  mix-blend-mode:screen;
}
.split-vis .contours{z-index:2;opacity:.18}
.split-vis .corner{z-index:3}
/* mantém a moldura por cima da foto */
.split-vis::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 0 1px var(--line)}

/* ============================================================
   POLIMENTO v4 — fotos em artigos e sócios
   ============================================================ */
.post .pcover{position:relative;overflow:hidden}
.post .pcover-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  filter:grayscale(.35) contrast(1.05);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;
}
.post:hover .pcover-photo{transform:scale(1.05);filter:grayscale(.05)}
.post .pcover .vis-tint{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(160deg,rgba(55,27,76,.40),rgba(7,7,9,.28) 60%);mix-blend-mode:screen;
}
.member .ph{position:relative;overflow:hidden}
.member .member-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;
  filter:grayscale(.35) contrast(1.04);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;
}
.member:hover .member-photo{transform:scale(1.04);filter:grayscale(.05)}
.member .ph::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent 45%,rgba(7,7,9,.5));}

/* ============================================================
   TEMA v5 — bicolor claro/escuro: ajustes de acabamento
   ============================================================ */

/* Menu legível também em páginas claras (não só sobre o hero) */
nav.scrolled, nav.solid{background:rgba(30,14,46,.9);backdrop-filter:blur(14px);border-color:var(--line)}

/* Suaviza o overlay de ruído no tema claro */
body::before{opacity:.018}

/* Profundidade leve nos cards/elementos sobre fundo claro */
.card:hover{box-shadow:0 18px 50px -28px rgba(20,18,40,.4)}
.member:hover,.quote:hover,.post:hover{box-shadow:0 18px 50px -30px rgba(20,18,40,.35)}

/* O degradê escuro na base do retrato só faz sentido quando há foto real */
.member .ph::after{display:none}
.member .ph:has(.member-photo)::after{display:block}

/* Índigo mais presente: leve faixa superior nas seções claras alternadas */
.bg-deep{box-shadow:inset 0 1px 0 var(--line)}

/* Realce do botão primário no tema claro */
.btn-primary{background:var(--indigo)}
.btn-primary:hover{box-shadow:0 16px 44px -14px var(--glow)}

/* Inputs claros com contraste correto */
.field input,.field textarea,.field select,.news-form input{background:var(--surface)}

/* ============================================================
   TEMA v6 — branco + preto + índigo (presença da cor da marca)
   ============================================================ */

/* Números grandes em índigo — bloco de cor que quebra o branco */
.stat .num{color:var(--indigo)}

/* Acento índigo permanente no topo dos cards (mais visível) */
.card::before{height:3px}
.card{border-top:1px solid var(--line)}

/* Botão secundário com borda índigo no claro (some o "lavado") */
.btn-ghost{border-color:rgba(81,42,140,.45);color:var(--indigo)}
.btn-ghost:hover{border-color:var(--indigo);background:rgba(81,42,140,.06);color:var(--indigo-deep)}
/* nas zonas pretas o ghost volta a ser claro */
.hero .btn-ghost,.band .btn-ghost{border-color:var(--line);color:var(--text)}
.hero .btn-ghost:hover,.band .btn-ghost:hover{border-color:var(--indigo-bright);color:#fff}

/* Chips com leve preenchimento índigo */
.chip{border-color:rgba(81,42,140,.30)}
.chip:hover{background:rgba(81,42,140,.07);border-color:var(--indigo)}

/* Faixas de CTA: gradiente índigo mais vivo */
.band{background:linear-gradient(135deg,var(--indigo-deep),var(--indigo))}

/* Linha do eyebrow um pouco mais forte */
.eyebrow::before{opacity:.9}

/* Títulos bem pretos para o contraste que faltava */
h1,h2{color:var(--text)}

/* Moldura sutil índigo nas caixas visuais sobre o branco */
.split-vis::after{box-shadow:inset 0 0 0 1px rgba(81,42,140,.18)}

/* ============================================================
   IMAGENS v7 — fundo nas faixas de CTA + banners de página
   ============================================================ */

/* Foto sutil atrás das faixas de CTA (mantém o índigo dominante) */
.band-photo{
  position:absolute;inset:0;z-index:0;background-size:cover;background-position:center 30%;
  opacity:.20;mix-blend-mode:overlay;filter:grayscale(.4) contrast(1.05);
}
.band .ridge,.band .wrap{position:relative;z-index:2}

/* Banner largo no topo das páginas internas */
.page-banner{
  position:relative;margin:clamp(1.2rem,3vw,2.4rem) 0 0;aspect-ratio:16/5.4;
  overflow:hidden;border:1px solid var(--line);
}
.page-banner img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.32) contrast(1.05);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);
}
.page-banner:hover img{transform:scale(1.04)}
.page-banner .vis-tint{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,rgba(81,42,140,.32),rgba(11,9,19,.30) 70%);mix-blend-mode:screen;
}
.page-banner::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(81,42,140,.20)}
@media(max-width:720px){ .page-banner{aspect-ratio:16/9} }

/* ============================================================
   v8 — correção dos contornos (currentColor) + menu plum
   ============================================================ */
/* o desenho de contorno agora herda a cor via currentColor */
.contours{color:var(--indigo-bright)}
/* menu escuro na cor ameixa da marca (não preto) */
nav.scrolled, nav.solid{background:rgba(31,14,48,.92)}

/* v9 — faixa de imagem larga (full-bleed) entre seções da home */
.image-strip{position:relative;width:100%;height:clamp(260px,38vw,440px);overflow:hidden}
.image-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.3) contrast(1.05);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.image-strip:hover img{transform:scale(1.05)}
.image-strip .vis-tint{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,rgba(81,42,140,.34),rgba(30,14,46,.30) 70%);mix-blend-mode:screen}
