/* ===========================================================================
   FRAMASA — Institutional site
   Design system + components. Mobile-first.
   Brand: navy #2f4576 · gold #c7973c · cream #f7f2e9
   =========================================================================== */

/* ---- Tokens ---------------------------------------------------------------*/
:root{
  --cream:        #f7f2e9;
  --cream-2:      #efe6d4;
  --paper:        #fffdf8;
  --navy:         #2e4475;
  --navy-700:     #263a63;
  --navy-900:     #1a2742;
  --ink:          #1d2742;
  --muted:        #616a86;
  --gold:         #c5953a;
  --gold-bright:  #ddb45a;
  --gold-soft:    #e7d6ab;
  --gold-tint:    #f3e9d2;
  --line:         rgba(46,68,117,.14);
  --line-strong:  rgba(46,68,117,.26);

  --bg:    var(--cream);
  --fg:    var(--ink);

  --shadow-sm: 0 1px 2px rgba(26,39,66,.06), 0 1px 3px rgba(26,39,66,.05);
  --shadow:    0 12px 30px -14px rgba(26,39,66,.30);
  --shadow-lg: 0 30px 60px -24px rgba(26,39,66,.42);

  --r-sm: 6px;
  --r:    12px;
  --r-lg: 18px;
  --r-xl: 26px;

  --maxw: 1200px;
  --gut:  clamp(20px, 5vw, 64px);

  --ff-display: "Hanken Grotesk", system-ui, sans-serif;
  --ff-body:    "Hanken Grotesk", system-ui, sans-serif;

  --header-h: 72px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* font tweak hooks */
[data-font="manrope"]{ --ff-display:"Manrope",system-ui,sans-serif; --ff-body:"Manrope",system-ui,sans-serif; }
[data-font="figtree"]{ --ff-display:"Figtree",system-ui,sans-serif; --ff-body:"Figtree",system-ui,sans-serif; }
[data-font="bricolage"]{ --ff-display:"Bricolage Grotesque",system-ui,sans-serif; }

/* accent tweak hooks */
[data-accent="terracotta"]{ --gold:#bf6a43; --gold-bright:#d98a5f; --gold-soft:#ecc8b4; --gold-tint:#f1e0d6; }
[data-accent="emerald"]{ --gold:#3f8a6b; --gold-bright:#5aa988; --gold-soft:#b6dac9; --gold-tint:#dcefe6; }

/* ---- Reset ----------------------------------------------------------------*/
*,*::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:var(--ff-body);
  background:var(--bg);
  color:var(--fg);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--ff-display); margin:0; line-height:1.06; letter-spacing:-.02em; font-weight:800; color:var(--navy); }
p{ margin:0; text-wrap:pretty; }
ul{ margin:0; padding:0; list-style:none; }

/* ---- Layout helpers -------------------------------------------------------*/
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.section{ padding-block:clamp(56px, 9vw, 116px); }
.eyebrow{
  font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); display:inline-flex; align-items:center; gap:.7em;
}
.eyebrow::before{ content:""; width:30px; height:2px; background:var(--gold); display:inline-block; }
.eyebrow.center::before{ display:none; }
.lede{ color:var(--muted); font-size:1.08rem; max-width:60ch; }
.gold{ color:var(--gold); }
.center{ text-align:center; }

.h-xxl{ font-size:clamp(2.5rem, 6.4vw, 4.6rem); }
.h-xl{ font-size:clamp(2.05rem, 4.6vw, 3.25rem); }
.h-lg{ font-size:clamp(1.6rem, 3vw, 2.3rem); }
.h-md{ font-size:clamp(1.25rem, 2vw, 1.55rem); }

/* ---- Buttons --------------------------------------------------------------*/
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.92em 1.5em; border-radius:999px; font-weight:700; font-size:1rem;
  border:1.5px solid transparent; transition:transform .18s var(--ease), background .18s, box-shadow .18s, color .18s;
  letter-spacing:-.01em; white-space:nowrap; line-height:1;
}
.btn:active{ transform:translateY(1px); }
.btn-wa{ background:#1faa53; color:#fff; box-shadow:0 10px 24px -10px rgba(31,170,83,.7); }
.btn-wa:hover{ background:#199549; box-shadow:0 14px 30px -10px rgba(31,170,83,.8); }
.btn-primary{ background:var(--navy); color:#fff; }
.btn-primary:hover{ background:var(--navy-700); box-shadow:var(--shadow); }
.btn-gold{ background:var(--gold); color:#23252b; }
.btn-gold:hover{ background:var(--gold-bright); }
.btn-ghost{ border-color:var(--line-strong); color:var(--navy); background:transparent; }
.btn-ghost:hover{ border-color:var(--navy); background:rgba(46,68,117,.04); }
.btn-ghost-light{ border-color:rgba(255,255,255,.4); color:#fff; }
.btn-ghost-light:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.btn-lg{ padding:1.05em 1.85em; font-size:1.06rem; }
.btn svg{ width:1.2em; height:1.2em; }

/* CTA com brilho calmo — funde a frase de destaque ao botão de cotação */
.btn-glow{
  position:relative; overflow:hidden; white-space:normal; text-align:left; line-height:1.18;
  background:linear-gradient(135deg, var(--gold-bright), var(--gold) 70%);
  color:#23252b; border:none; font-weight:800;
  box-shadow:0 8px 22px -8px rgba(197,149,58,.55);
  animation:glowPulse 3.4s ease-in-out infinite;
}
.btn-glow:hover{ transform:translateY(-1px); filter:brightness(1.05); }
.btn-glow .glow-ico{ display:inline-flex; flex:none; }
.btn-glow .glow-ico svg{ width:1.35em; height:1.35em; }
.btn-glow::after{
  content:""; position:absolute; top:0; left:-65%; width:45%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.6), transparent);
  transform:skewX(-18deg); animation:glowShine 3.4s ease-in-out infinite; pointer-events:none;
}
@keyframes glowPulse{
  0%,100%{ box-shadow:0 8px 22px -8px rgba(197,149,58,.5), 0 0 0 0 rgba(221,180,90,0); }
  50%{ box-shadow:0 12px 30px -8px rgba(197,149,58,.85), 0 0 26px 5px rgba(221,180,90,.5); }
}
@keyframes glowShine{
  0%{ left:-65%; } 58%{ left:135%; } 100%{ left:135%; }
}
@media (prefers-reduced-motion: reduce){
  .btn-glow{ animation:none; }
  .btn-glow::after{ display:none; }
}

.link-arrow{ display:inline-flex; align-items:center; gap:.5em; font-weight:700; color:var(--navy); }
.link-arrow svg{ width:1.05em; height:1.05em; transition:transform .2s var(--ease); }
.link-arrow:hover svg{ transform:translateX(4px); }

/* ---- Placeholder image ----------------------------------------------------*/
.ph{
  position:relative; border-radius:var(--r-lg); overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(46,68,117,.05) 0 12px, rgba(46,68,117,.085) 12px 24px),
    var(--cream-2);
  display:grid; place-items:center; color:var(--navy);
}
.ph::after{
  content:attr(data-label); font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:.74rem; letter-spacing:.04em; color:rgba(46,68,117,.55);
  text-align:center; padding:.6em 1em; max-width:80%;
}
.ph.gold-frame{ box-shadow:0 0 0 3px var(--gold), 0 0 0 6px var(--cream); }

/* ===========================================================================
   HEADER
   =========================================================================== */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(247,242,233,.82); backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid transparent; transition:border-color .25s, background .25s, box-shadow .25s;
}
.site-header.scrolled{ border-bottom-color:var(--line); box-shadow:0 6px 24px -20px rgba(26,39,66,.5); }
.nav{ height:var(--header-h); display:flex; align-items:center; gap:1.4rem; }
.nav__logo{ display:flex; align-items:center; flex:none; }
.nav__logo img{ height:38px; width:auto; }
.nav__links{ display:none; }
.nav__spacer{ flex:1; }
.nav__cta{ display:none; flex:none; white-space:nowrap; }
.nav__phone{ display:none; flex:none; }
.nav__links a{ font-weight:600; font-size:.96rem; color:var(--ink); padding:.4em 0; position:relative; }
.nav__links a::after{ content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--gold); transition:right .25s var(--ease); }
.nav__links a:hover::after{ right:0; }

.burger{ margin-left:auto; width:44px; height:44px; display:grid; place-items:center; background:transparent; border:1px solid var(--line); border-radius:10px; }
.burger span{ display:block; width:20px; height:2px; background:var(--navy); position:relative; transition:.25s; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--navy); transition:.25s; }
.burger span::before{ top:-6px; } .burger span::after{ top:6px; }
body.menu-open .burger span{ background:transparent; }
body.menu-open .burger span::before{ top:0; transform:rotate(45deg); }
body.menu-open .burger span::after{ top:0; transform:rotate(-45deg); }

/* mobile drawer */
.drawer{
  position:fixed; inset:var(--header-h) 0 0 0; z-index:55;
  background:var(--cream); padding:1.4rem var(--gut) 2.4rem;
  transform:translateY(-12px); opacity:0; pointer-events:none; transition:.3s var(--ease);
  display:flex; flex-direction:column; gap:.3rem; overflow:auto;
}
body.menu-open .drawer{ transform:none; opacity:1; pointer-events:auto; }
.drawer a.d-link{ font-family:var(--ff-display); font-weight:800; font-size:1.5rem; color:var(--navy); padding:.7rem 0; border-bottom:1px solid var(--line); }
.drawer .d-actions{ margin-top:1.4rem; display:grid; gap:.7rem; }
.drawer .d-meta{ margin-top:1.4rem; color:var(--muted); font-size:.95rem; display:grid; gap:.3rem; }

/* ===========================================================================
   HERO  (variants via [data-hero])
   =========================================================================== */
.hero{ position:relative; }
.hero__eyebrow{ margin-bottom:1.1rem; }
.hero__title{ margin-bottom:1.3rem; }
.hero__title .em{ color:var(--gold); }
.hero__sub{ font-size:1.18rem; color:var(--muted); max-width:46ch; margin-bottom:2rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:1.4rem 2.2rem; margin-top:2.6rem; }
.hero__trust .ht{ display:flex; flex-direction:column; }
.hero__trust .ht b{ font-family:var(--ff-display); font-size:1.55rem; color:var(--navy); font-weight:800; line-height:1; }
.hero__trust .ht span{ font-size:.84rem; color:var(--muted); margin-top:.3rem; }

/* highlight line (substitui a faixa de números no hero) */
.hero__highlight{ margin-top:2.3rem; display:inline-flex; align-items:center; gap:.85rem; font-family:var(--ff-display); font-weight:800; font-size:clamp(1.15rem,2.3vw,1.55rem); color:var(--navy); letter-spacing:-.015em; line-height:1.2; }
.hero__highlight .flame-dot{ width:30px; height:34px; flex:none; display:grid; place-items:center; }
.hero__highlight .flame-dot img{ width:auto; height:100%; }
[data-hero="b"] .hero__highlight, [data-hero="c"] .hero__highlight{ color:#fff; }

/* hero photo (variant A) — crop mais baixo no mobile p/ encurtar a dobra */
.hero__photo{ width:100%; aspect-ratio:16/10; max-height:300px; object-fit:cover; object-position:center center; border-radius:var(--r-lg); box-shadow:0 0 0 4px var(--gold), 0 0 0 8px var(--cream), var(--shadow-lg); }
[data-hero="c"] .hero__bg img{ width:100%; height:100%; object-fit:cover; }

/* --- variant A : editorial split (default) --- */
[data-hero="a"] .hero{ padding-block:clamp(40px,7vw,86px) clamp(48px,8vw,96px); }
[data-hero="a"] .hero__grid{ display:grid; gap:clamp(34px,5vw,68px); align-items:center; }
[data-hero="a"] .hero__media{ position:relative; }
[data-hero="a"] .hero__media .ph{ aspect-ratio:4/5; }
[data-hero="a"] .hero__badge{
  position:absolute; left:-10px; bottom:-18px; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--r); padding:.9rem 1.1rem; box-shadow:var(--shadow); display:flex; align-items:center; gap:.8rem; max-width:240px;
}
[data-hero="a"] .hero__badge .flame{ width:34px; height:auto; }
[data-hero="a"] .hero__badge b{ font-family:var(--ff-display); color:var(--navy); display:block; line-height:1.1; }
[data-hero="a"] .hero__badge span{ font-size:.8rem; color:var(--muted); }

/* --- variant B : bold navy --- */
[data-hero="b"] .hero{ background:var(--navy); color:#fff; padding-block:clamp(60px,10vw,128px); overflow:hidden; }
[data-hero="b"] .hero::before{
  content:""; position:absolute; right:-6%; top:50%; transform:translateY(-50%);
  width:min(620px,60vw); aspect-ratio:1; background:radial-gradient(circle at 50% 40%, rgba(197,149,58,.22), transparent 62%);
}
[data-hero="b"] .hero__flame{ position:absolute; right:clamp(-40px,2vw,80px); top:50%; transform:translateY(-50%); width:clamp(160px,26vw,360px); opacity:.9; filter:drop-shadow(0 30px 50px rgba(0,0,0,.35)); }
[data-hero="b"] .hero__inner{ position:relative; max-width:60ch; }
[data-hero="b"] .hero h1{ color:#fff; }
[data-hero="b"] .hero__sub{ color:rgba(255,255,255,.78); }
[data-hero="b"] .hero__trust .ht b{ color:#fff; }
[data-hero="b"] .hero__trust .ht span{ color:rgba(255,255,255,.66); }
[data-hero="b"] .hero__trust{ border-top:1px solid rgba(255,255,255,.16); padding-top:1.8rem; }
[data-hero="b"] .eyebrow{ color:var(--gold-bright); }

/* --- variant C : full-bleed image w/ overlay --- */
[data-hero="c"] .hero{ position:relative; min-height:min(86vh,760px); display:flex; align-items:flex-end; color:#fff; padding-block:clamp(48px,8vw,90px); overflow:hidden; }
[data-hero="c"] .hero__bg{ position:absolute; inset:0; z-index:0; }
[data-hero="c"] .hero__bg .ph{ width:100%; height:100%; border-radius:0; background:
   repeating-linear-gradient(135deg, rgba(26,39,66,.45) 0 14px, rgba(26,39,66,.55) 14px 28px), var(--navy-700); }
[data-hero="c"] .hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(75deg, rgba(20,30,52,.92) 8%, rgba(20,30,52,.7) 42%, rgba(20,30,52,.25) 100%); }
[data-hero="c"] .hero__inner{ position:relative; z-index:2; max-width:62ch; }
[data-hero="c"] .hero h1{ color:#fff; }
[data-hero="c"] .hero__sub{ color:rgba(255,255,255,.82); }
[data-hero="c"] .hero__trust .ht b{ color:#fff; }
[data-hero="c"] .hero__trust .ht span{ color:rgba(255,255,255,.7); }
[data-hero="c"] .eyebrow{ color:var(--gold-bright); }

/* hide the variant-specific scaffolding when not active */
.hero__media, .hero__flame, .hero__bg{ display:none; }
[data-hero="a"] .hero__media{ display:block; }
[data-hero="b"] .hero__flame{ display:block; }
[data-hero="c"] .hero__bg{ display:block; }
[data-hero="a"] .hero__badge{ display:flex; }

/* ===========================================================================
   OPERADORAS STRIP
   =========================================================================== */
.operadoras{ background:var(--paper); border-block:1px solid var(--line); padding-block:34px; }
.operadoras__label{ text-align:center; color:var(--muted); font-size:.84rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.4rem; }
.op-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; align-items:stretch; }
.op-logo{
  height:68px; border:1px solid var(--line); border-radius:var(--r); display:grid; place-items:center;
  background:#fff; padding:12px 16px; transition:border-color .2s, box-shadow .2s;
}
.op-logo img{ max-height:38px; max-width:144px; width:auto; object-fit:contain; }
/* op-logo hover removido */

/* ===========================================================================
   SOLUÇÕES / PLANOS
   =========================================================================== */
.sol__head{ display:grid; gap:1rem; margin-bottom:clamp(34px,4vw,56px); }
.sol__head .row{ display:flex; flex-direction:column; gap:1rem; }
.cards{ display:grid; gap:18px; grid-template-columns:1fr; }
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.9rem 1.7rem; display:flex; flex-direction:column; gap:.7rem;
  transition:transform .22s var(--ease), box-shadow .22s, border-color .22s; position:relative; overflow:hidden;
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.card__ico{ width:50px; height:50px; border-radius:13px; background:var(--gold-tint); display:grid; place-items:center; color:var(--gold); margin-bottom:.4rem; }
.card__ico svg{ width:26px; height:26px; }
.card h3{ font-size:1.32rem; }
.card p{ color:var(--muted); font-size:.99rem; }
.card .link-arrow{ margin-top:auto; padding-top:.6rem; font-size:.95rem; }
.card__tag{ position:absolute; top:1.2rem; right:1.2rem; font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); background:var(--gold-tint); padding:.32em .7em; border-radius:999px; }

/* featured (saúde) */
.card--feature{ background:var(--navy); border-color:var(--navy); color:#fff; grid-column:1/-1; }
.card--feature h3{ color:#fff; font-size:clamp(1.5rem,3vw,2rem); }
.card--feature p{ color:rgba(255,255,255,.8); font-size:1.05rem; max-width:52ch; }
.card--feature .card__ico{ background:rgba(255,255,255,.1); color:var(--gold-bright); }
.card--feature .link-arrow{ color:var(--gold-bright); }
.card--feature .feat-pills{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem; }
.card--feature .feat-pills span{ border:1px solid rgba(255,255,255,.22); border-radius:999px; padding:.4em .9em; font-size:.85rem; color:rgba(255,255,255,.9); }
.card--feature .feat-flame{ position:absolute; right:-30px; bottom:-30px; width:170px; opacity:.16; }

/* ===========================================================================
   SAÚDE EM DESTAQUE (PF / PJ split)
   =========================================================================== */
.health{ background:var(--cream-2); }
.health__grid{ display:grid; gap:18px; grid-template-columns:1fr; }
.health-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:2rem 1.8rem;
  display:flex; flex-direction:column; gap:1rem; position:relative;
}
.health-card--reco{ order:-1; border:2px solid var(--gold); box-shadow:var(--shadow); background:linear-gradient(180deg,var(--gold-tint),var(--paper) 44%); }
.reco-badge{ position:absolute; top:-13px; left:24px; background:var(--gold); color:#23252b; font-family:var(--ff-display); font-weight:800; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; padding:.45em 1em; border-radius:999px; box-shadow:var(--shadow-sm); }
.health-card .kicker{ display:flex; align-items:center; gap:.7rem; }
.health-card .kicker .dot{ width:38px; height:38px; border-radius:11px; background:var(--gold-tint); color:var(--gold); display:grid; place-items:center; }
.health-card .kicker .dot svg{ width:20px; height:20px; }
.health-card .kicker b{ font-family:var(--ff-display); font-weight:800; color:var(--navy); font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; }
.health-card h3{ font-size:clamp(1.4rem,2.4vw,1.85rem); }
.health-card ul{ display:grid; gap:.6rem; }
.health-card li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--ink); font-size:1rem; }
.health-card li svg{ width:20px; height:20px; color:var(--gold); flex:none; margin-top:2px; }
.health-card .btn{ margin-top:.4rem; align-self:flex-start; }

/* ===========================================================================
   COMO FUNCIONA
   =========================================================================== */
.steps{ display:grid; gap:20px; grid-template-columns:1fr; counter-reset:step; }
.step{ display:flex; gap:1.2rem; align-items:flex-start; }
.step__n{ counter-increment:step; flex:none; width:54px; height:54px; border-radius:50%; border:1.5px solid var(--gold); color:var(--gold); display:grid; place-items:center; font-family:var(--ff-display); font-weight:800; font-size:1.3rem; }
.step__n::before{ content:counter(step,decimal-leading-zero); }
.step h3{ font-size:1.25rem; margin-bottom:.35rem; }
.step p{ color:var(--muted); font-size:1rem; }

/* ===========================================================================
   DIFERENCIAIS
   =========================================================================== */
.feat-grid{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.feat{ background:var(--cream); padding:1.8rem 1.6rem; display:flex; flex-direction:column; gap:.6rem; }
.feat__ico{ width:44px; height:44px; color:var(--gold); }
.feat__ico svg{ width:32px; height:32px; }
.feat h3{ font-size:1.15rem; }
.feat p{ color:var(--muted); font-size:.96rem; }

/* ===========================================================================
   CTA BAND
   =========================================================================== */
.ctaband{ background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.ctaband .wrap{ position:relative; z-index:2; display:grid; gap:1.6rem; }
.ctaband__flame{ position:absolute; right:-4%; top:50%; transform:translateY(-50%); width:clamp(180px,28vw,380px); opacity:.14; z-index:1; }
.ctaband .eyebrow{ color:var(--gold-bright); }
.ctaband h2{ color:#fff; max-width:18ch; }
.ctaband p{ color:rgba(255,255,255,.8); max-width:52ch; }
.ctaband .actions{ display:flex; flex-wrap:wrap; gap:.8rem; }

/* ===========================================================================
   FAQ
   =========================================================================== */
.faq{ display:grid; gap:0; max-width:820px; margin-inline:auto; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer; padding:1.3rem 3rem 1.3rem 0; position:relative;
  font-family:var(--ff-display); font-weight:700; font-size:1.12rem; color:var(--navy); letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:.2rem; top:1.55rem; width:14px; height:14px;
  background:no-repeat center/contain; transition:transform .25s var(--ease);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c5953a' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.faq details[open] summary::after{ transform:rotate(135deg); }
.faq .faq__a{ padding:0 2rem 1.4rem 0; color:var(--muted); }
.faq .faq__a p+p{ margin-top:.7rem; }

/* ===========================================================================
   FOOTER
   =========================================================================== */
.footer{ background:var(--navy-900); color:rgba(255,255,255,.72); padding-block:clamp(48px,7vw,80px) 0; }
.footer a{ color:rgba(255,255,255,.72); transition:color .2s; }
.footer a:hover{ color:#fff; }
.footer__top{ display:grid; gap:2.4rem; grid-template-columns:1fr; }
.footer__brand img{ height:32px; margin-bottom:1.1rem; }
.footer__brand p{ font-size:.96rem; max-width:34ch; color:rgba(255,255,255,.6); }
.footer__brand .socials{ display:flex; gap:.6rem; margin-top:1.3rem; }
.footer__brand .socials a{ width:40px; height:40px; border:1px solid rgba(255,255,255,.18); border-radius:10px; display:grid; place-items:center; }
.footer__brand .socials svg{ width:18px; height:18px; }
.footer__col h4{ color:#fff; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin-bottom:1rem; }
.footer__col ul{ display:grid; gap:.6rem; font-size:.96rem; }
.footer__contact li{ display:flex; gap:.6rem; align-items:flex-start; }
.footer__contact svg{ width:18px; height:18px; color:var(--gold-bright); flex:none; margin-top:3px; }
.footer__bottom{ margin-top:clamp(36px,5vw,56px); border-top:1px solid rgba(255,255,255,.12); padding-block:1.6rem 2rem; display:flex; flex-wrap:wrap; gap:.8rem 1.4rem; align-items:center; justify-content:space-between; font-size:.82rem; color:rgba(255,255,255,.5); }
.footer__bottom a{ color:rgba(255,255,255,.6); }
.footer__legal{ font-size:.8rem; color:rgba(255,255,255,.42); line-height:1.6; margin-top:1rem; max-width:100%; }

/* ===========================================================================
   FLOATING WHATSAPP
   =========================================================================== */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:70; width:58px; height:58px; border-radius:50%;
  background:#1faa53; color:#fff; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:0; box-shadow:0 14px 30px -8px rgba(31,170,83,.6);
  transition:transform .2s var(--ease); animation:waPulse 2.6s ease-in-out infinite;
}
.wa-float:hover{ transform:scale(1.07); }
.wa-float img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:50%; }
.wa-float svg{ width:30px; height:30px; display:block; }
@keyframes waPulse{ 0%,100%{ box-shadow:0 14px 30px -8px rgba(31,170,83,.6),0 0 0 0 rgba(31,170,83,.4); } 50%{ box-shadow:0 14px 30px -8px rgba(31,170,83,.6),0 0 0 12px rgba(31,170,83,0); } }
@media (prefers-reduced-motion: reduce){ .wa-float{ animation:none; } }

/* ===========================================================================
   COOKIE / LGPD BANNER
   =========================================================================== */
.cookie{
  position:fixed; left:14px; right:14px; bottom:14px; z-index:80; max-width:560px; margin-inline:auto;
  background:var(--navy-900); color:rgba(255,255,255,.82); border-radius:var(--r-lg); padding:1.3rem 1.4rem;
  box-shadow:var(--shadow-lg); display:none; gap:1rem; flex-direction:column;
}
.cookie.show{ display:flex; animation:cookieIn .4s var(--ease); }
@keyframes cookieIn{ from{ transform:translateY(20px); opacity:0; } }
.cookie p{ font-size:.92rem; }
.cookie p a{ color:var(--gold-bright); text-decoration:underline; }
.cookie__actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.cookie .btn{ padding:.7em 1.2em; font-size:.92rem; }
.cookie .btn-mini-ghost{ background:transparent; border:1.5px solid rgba(255,255,255,.3); color:#fff; }

/* ===========================================================================
   TWEAKS PANEL (vanilla)
   =========================================================================== */
#tweaks{
  position:fixed; top:16px; right:16px; z-index:100; width:280px;
  background:#fffdf8; color:var(--ink); border:1px solid var(--line); border-radius:16px;
  box-shadow:var(--shadow-lg); padding:14px; display:none; font-family:var(--ff-body);
}
#tweaks.on{ display:block; }
#tweaks h5{ font-family:var(--ff-display); font-size:.95rem; margin:0; color:var(--navy); }
#tweaks .tw-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; cursor:grab; }
#tweaks .tw-close{ width:26px; height:26px; border-radius:7px; border:1px solid var(--line); background:transparent; color:var(--muted); display:grid; place-items:center; line-height:1; }
#tweaks .tw-sec{ font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); font-weight:700; margin:14px 0 8px; }
#tweaks .tw-row{ margin-bottom:8px; }
#tweaks .tw-row > label{ font-size:.78rem; color:var(--muted); display:block; margin-bottom:5px; }
#tweaks .seg{ display:flex; gap:4px; background:var(--cream-2); padding:3px; border-radius:9px; }
#tweaks .seg button{ flex:1; border:0; background:transparent; padding:6px 4px; border-radius:6px; font-size:.78rem; font-weight:600; color:var(--muted); }
#tweaks .seg button.sel{ background:#fff; color:var(--navy); box-shadow:var(--shadow-sm); }
#tweaks .sw{ display:flex; gap:6px; }
#tweaks .sw button{ width:30px; height:30px; border-radius:8px; border:2px solid transparent; }
#tweaks .sw button.sel{ border-color:var(--navy); }

/* ===========================================================================
   RESPONSIVE
   =========================================================================== */
@media (min-width:600px){
  .op-grid{ grid-template-columns:repeat(4,1fr); }
  .cards{ grid-template-columns:repeat(2,1fr); }
  .health__grid{ grid-template-columns:1.15fr .9fr; align-items:start; }
  .feat-grid{ grid-template-columns:repeat(2,1fr); }
  .cookie{ flex-direction:row; align-items:center; }
  .cookie__actions{ flex:none; }
}
@media (min-width:860px){
  [data-hero="a"] .hero__grid{ grid-template-columns:1.05fr .95fr; }
  [data-hero="a"] .hero__photo{ aspect-ratio:4/5; max-height:none; object-position:center 25%; }
  .steps{ grid-template-columns:repeat(3,1fr); }
  .steps .step{ flex-direction:column; }
  .feat-grid{ grid-template-columns:repeat(4,1fr); }
  .footer__top{ grid-template-columns:1.6fr 1fr 1.2fr; gap:2rem; }
  .sol__head{ grid-template-columns:1fr; }
  .sol__head .row{ flex-direction:row; align-items:flex-end; justify-content:space-between; }
}
@media (min-width:980px){
  :root{ --header-h:80px; }
  .nav__links{ display:flex; gap:1.7rem; }
  .nav__cta{ display:inline-flex; flex:none; }
  .nav__phone{ display:inline-flex; align-items:center; gap:.5rem; color:var(--ink); font-weight:600; font-size:.92rem; }
  .nav__phone svg{ width:17px; height:17px; color:var(--gold); }
  .burger{ display:none; }
  .drawer{ display:none !important; }
  .op-grid{ grid-template-columns:repeat(7,1fr); }
  .nav__logo img{ height:42px; }
  .cards{ grid-template-columns:repeat(3,1fr); }
  .card--feature{ display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:2rem; }
  .card--feature .feat-side{ display:flex; flex-direction:column; gap:1rem; }
  .wa-float{ width:62px; height:62px; right:24px; bottom:24px; }
}

/* reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ===========================================================================
   ASSISTÊNCIA 24H — botão de leve destaque no header
   =========================================================================== */
.nav__assist{
  display:inline-flex; flex:none; align-items:center; gap:.5rem; white-space:nowrap;
  font-weight:700; font-size:.82rem; color:var(--navy);
  padding:.45em .75em; border-radius:999px; overflow:hidden;
  background:var(--gold-tint); border:1.5px solid var(--gold-soft);
  transition:background .18s, border-color .18s, box-shadow .18s, transform .18s var(--ease);
}
.nav__assist:hover{ background:var(--gold-soft); border-color:var(--gold); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.nav__assist svg{ width:18px; height:18px; color:var(--gold); }
.nav__assist .pulse-dot{ width:8px; height:8px; border-radius:50%; background:#1faa53; box-shadow:0 0 0 0 rgba(31,170,83,.6); animation:assistPulse 2.2s ease-in-out infinite; flex:none; }
@keyframes assistPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(31,170,83,.55); } 50%{ box-shadow:0 0 0 5px rgba(31,170,83,0); } }
@media (prefers-reduced-motion: reduce){ .nav__assist .pulse-dot{ animation:none; } }
@media (min-width:980px){ .nav__assist{ overflow:visible; width:auto; height:auto; font-size:.92rem; padding:.62em 1.05em; } }

/* botão de assistência no drawer mobile */
.drawer .d-assist{
  display:flex; align-items:center; gap:.6rem; margin-top:1rem;
  background:var(--gold-tint); border:1.5px solid var(--gold-soft); color:var(--navy);
  font-family:var(--ff-display); font-weight:800; font-size:1.05rem;
  padding:.85rem 1rem; border-radius:var(--r);
}
.drawer .d-assist svg{ width:20px; height:20px; color:var(--gold); flex:none; }
.drawer .d-assist .pulse-dot{ width:9px; height:9px; border-radius:50%; background:#1faa53; margin-left:auto; flex:none; }

/* ===========================================================================
   OPERADORAS — esteira/marquee animada
   =========================================================================== */
.op-marquee{
  position:relative; overflow:hidden; width:100%;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.op-track{
  display:flex; align-items:stretch; gap:14px; width:max-content;
  animation:opScroll 38s linear infinite; will-change:transform;
}
/* hover-pause removido */
.op-track .op-logo{ flex:0 0 auto; width:170px; height:74px; }
@keyframes opScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .op-track{ animation:none; flex-wrap:wrap; justify-content:center; width:100%; } }

/* ===========================================================================
   SEGUROS — grid uniforme (todos os ramos com o mesmo peso)
   =========================================================================== */
.ramos{ display:grid; gap:16px; grid-template-columns:repeat(2,1fr); }
.ramo{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.5rem 1.4rem; display:flex; flex-direction:column; gap:.55rem;
  transition:transform .22s var(--ease), box-shadow .22s, border-color .22s; position:relative; overflow:hidden;
}
.ramo:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.ramo__ico{ width:46px; height:46px; border-radius:12px; background:var(--gold-tint); display:grid; place-items:center; color:var(--gold); margin-bottom:.3rem; }
.ramo__ico svg{ width:24px; height:24px; }
.ramo h3{ font-size:1.12rem; line-height:1.15; }
.ramo p{ color:var(--muted); font-size:.93rem; line-height:1.5; }
.ramo .link-arrow{ margin-top:auto; padding-top:.5rem; font-size:.9rem; }
.ramo__tag{ position:absolute; top:1.1rem; right:1.1rem; font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); background:var(--gold-tint); padding:.3em .65em; border-radius:999px; z-index:1; }
.ramo__tags{ position:absolute; top:1.1rem; right:1.1rem; display:flex; flex-direction:column; gap:4px; align-items:flex-end; z-index:1; }
.ramo__tags .ramo__tag{ position:static; }
.ramo__tag--pf{ color:var(--navy); background:color-mix(in oklch, var(--navy) 10%, transparent); }
.ramo__link{ position:absolute; inset:0; z-index:0; border-radius:inherit; cursor:pointer; }
.ramo .link-arrow{ position:relative; z-index:1; }
.ramo:has(.ramo__link):hover .link-arrow{ color:var(--gold); }
@media (min-width:680px){ .ramos{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1000px){ .ramos{ grid-template-columns:repeat(4,1fr); } }

/* Colapsa o padding inferior da seção quando nenhum público está selecionado */
#planos:has(#ramosGrid[data-aud=""]){ padding-bottom:clamp(20px,3vw,36px); }

/* Seletor de público — Para empresas / Para pessoas */
.aud-picker{ display:grid; gap:16px; grid-template-columns:1fr; margin-bottom:clamp(8px,2vw,16px); }
@media (min-width:760px){ .aud-picker{ grid-template-columns:1fr 1fr; gap:20px; } }
.aud-card{
  font:inherit; text-align:left; cursor:pointer; color:inherit;
  background:var(--paper); border:1.5px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(1.4rem,3vw,2.1rem); display:grid; gap:.5rem 1.1rem;
  grid-template-columns:auto 1fr; align-items:start;
  transition:transform .22s var(--ease), box-shadow .22s, border-color .22s, background .22s;
  position:relative; overflow:hidden;
}
.aud-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--gold-soft); }
.aud-card:focus-visible{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-tint); }
.aud-card[aria-selected="true"]{ border-color:var(--gold); background:linear-gradient(180deg,var(--gold-tint),var(--paper) 62%); box-shadow:var(--shadow); }
.aud-card__ico{ width:58px; height:58px; border-radius:15px; background:var(--gold-tint); color:var(--gold); display:grid; place-items:center; grid-row:1 / span 2; transition:background .22s, color .22s; }
.aud-card__ico svg{ width:30px; height:30px; }
.aud-card[aria-selected="true"] .aud-card__ico{ background:var(--gold); color:#fff; }
.aud-card__body{ display:grid; gap:.35rem; }
.aud-card__kicker{ font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.aud-card__title{ font-family:var(--ff-display); font-weight:800; font-size:clamp(1.4rem,3vw,1.85rem); color:var(--navy); line-height:1.08; }
.aud-card__desc{ color:var(--muted); font-size:.98rem; line-height:1.5; }
.aud-card__cta{ grid-column:2; display:inline-flex; align-items:center; gap:.5em; font-weight:700; color:var(--gold); font-size:.98rem; margin-top:.2rem; }
.aud-card__cta svg{ width:18px; height:18px; transition:transform .22s var(--ease); }
.aud-card:hover .aud-card__cta svg,
.aud-card[aria-selected="true"] .aud-card__cta svg{ transform:translateX(4px); }
@media (max-width:520px){ .aud-card__cta{ grid-column:1 / -1; } }

/* Filtragem dos ramos pelo público escolhido */
.ramos[data-aud=""]{ display:none; }
.ramos[data-aud="pj"] .ramo:not([data-aud~="pj"]),
.ramos[data-aud="pf"] .ramo:not([data-aud~="pf"]){ display:none; }
.ramos[data-aud="pj"] .ramo,
.ramos[data-aud="pf"] .ramo{ animation:ramoIn .35s var(--ease) both; }
@keyframes ramoIn{ from{ opacity:0; transform:translateY(10px); } }
@media (prefers-reduced-motion:reduce){ .ramos .ramo{ animation:none !important; } }

/* ===========================================================================
   SOBRE (resumo na home)
   =========================================================================== */
.sobre-brief{ display:grid; gap:clamp(28px,4vw,52px); align-items:center; }
.sobre-brief__media{ position:relative; }
.sobre-brief__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 22%; border-radius:var(--r-lg); box-shadow:0 0 0 4px var(--gold), 0 0 0 8px var(--cream), var(--shadow-lg); }
.sobre-brief__actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.6rem; }
@media (min-width:880px){ .sobre-brief{ grid-template-columns:1fr 1fr; } }

/* ===========================================================================
   ASSISTÊNCIA 24H — página de telefones por seguradora
   =========================================================================== */
.assist-search{ position:relative; max-width:560px; margin:0 auto clamp(8px,2vw,16px); }
.assist-search input{
  font:inherit; font-size:1.05rem; width:100%; color:var(--ink); background:var(--paper);
  border:1.5px solid var(--line-strong); border-radius:999px; padding:1rem 1.2rem 1rem 3.1rem;
  transition:border-color .18s, box-shadow .18s; -webkit-appearance:none;
}
.assist-search input:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-tint); background:#fff; }
.assist-search svg{ position:absolute; left:1.15rem; top:50%; transform:translateY(-50%); width:20px; height:20px; color:var(--muted); pointer-events:none; }
.assist-count{ text-align:center; color:var(--muted); font-size:.86rem; margin-bottom:clamp(24px,3vw,40px); }

.assist-grid{ display:grid; gap:16px; grid-template-columns:1fr; }
.assist-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.4rem 1.4rem 1.5rem;
  display:flex; flex-direction:column; gap:1rem; transition:box-shadow .2s, border-color .2s;
}
.assist-card:hover{ box-shadow:var(--shadow); border-color:var(--gold-soft); }
.assist-card__head{ display:flex; align-items:center; gap:1rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.assist-card__logo{ width:96px; height:60px; flex:none; display:grid; place-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:8px 10px; }
.assist-card__logo img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.assist-card__name{ display:flex; flex-direction:column; gap:.25rem; }
.assist-card__name b{ font-family:var(--ff-display); font-weight:800; color:var(--navy); font-size:1.12rem; line-height:1.1; }
.assist-card__tags{ display:flex; flex-wrap:wrap; gap:.3rem; }
.assist-card__tags span{ font-size:.66rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); background:var(--cream-2); padding:.22em .55em; border-radius:999px; }
.assist-lines{ display:grid; gap:.55rem; }
.assist-line{ display:flex; align-items:center; gap:.8rem; }
.assist-line__label{ flex:1; min-width:0; font-size:.84rem; color:var(--muted); }
.assist-line__label b{ display:block; color:var(--navy); font-family:var(--ff-display); font-weight:700; font-size:.92rem; }
.assist-line__num{
  flex:none; display:inline-flex; align-items:center; gap:.45rem; font-family:var(--ff-display); font-weight:800;
  color:var(--navy); font-size:1.02rem; padding:.5rem .85rem; border-radius:999px;
  background:var(--gold-tint); border:1.5px solid transparent; transition:border-color .18s, background .18s;
  white-space:nowrap;
}
.assist-line__num:hover{ border-color:var(--gold); background:var(--gold-soft); }
.assist-line__num svg{ width:15px; height:15px; color:var(--gold); }
.assist-empty{ display:none; text-align:center; padding:3rem 1rem; color:var(--muted); }
.assist-empty.show{ display:block; }
.assist-empty b{ display:block; font-family:var(--ff-display); color:var(--navy); font-size:1.2rem; margin-bottom:.4rem; }
.assist-note{ display:flex; gap:.8rem; align-items:flex-start; background:var(--gold-tint); border:1px solid var(--gold-soft); border-radius:var(--r-lg); padding:1.1rem 1.3rem; margin-bottom:clamp(24px,3vw,38px); }
.assist-note svg{ width:22px; height:22px; color:var(--gold); flex:none; margin-top:1px; }
.assist-note p{ font-size:.92rem; color:var(--ink); }
@media (min-width:680px){ .assist-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .assist-grid{ grid-template-columns:repeat(3,1fr); } }
