
/* =========================================================================
   PLAY INTERNET — identidade "Luz na fibra" (tokens preservados)
   ========================================================================= */
:root{
  --ink:#0B0D1F; --ink-2:#12152E; --brand:#3D5AFE; --brand-2:#7C4DFF; --glow:#22D3EE;
  --paper:#FFFFFF; --mist:#F4F6FC; --text:#171A2E; --muted:#5B6079; --line:#E6E9F5;
  --grad:linear-gradient(120deg,var(--brand) 0%,var(--brand-2) 60%,var(--glow) 130%);
  --font-display:"Space Grotesk",system-ui,sans-serif; --font-body:"Manrope",system-ui,sans-serif; --font-mono:"Space Mono",ui-monospace,monospace;
  --radius:18px; --shadow:0 18px 50px -20px rgba(11,13,31,.28); --shadow-glow:0 24px 70px -24px rgba(61,90,254,.55);
  --maxw:1180px; --pad-section:clamp(64px,9vw,128px);
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ font-family:var(--font-body); color:var(--text); background:var(--paper); line-height:1.6; font-size:17px; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
ul{ list-style:none; }
:focus-visible{ outline:3px solid var(--glow); outline-offset:3px; border-radius:6px; }
.skip{ position:absolute; left:-999px; top:12px; z-index:200; background:var(--ink); color:#fff; padding:12px 18px; border-radius:10px; }
.skip:focus{ left:12px; }
.wrap{ width:min(var(--maxw),92%); margin-inline:auto; }
.section{ padding-block:var(--pad-section); position:relative; }
.section--dark{ background:var(--ink); color:#fff; }
.section--mist{ background:var(--mist); }
.center-head{ text-align:center; max-width:680px; margin:0 auto 48px; }
.eyebrow{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brand); }
.section--dark .eyebrow{ color:var(--glow); }
.eyebrow::before{ content:""; width:0; height:0; border-left:9px solid currentColor; border-top:6px solid transparent; border-bottom:6px solid transparent; }
h1,h2,h3{ font-family:var(--font-display); line-height:1.08; letter-spacing:-.02em; font-weight:600; }
.h-sec{ font-size:clamp(1.9rem,4.2vw,3rem); margin:16px 0 14px; }
.lead{ font-size:1.12rem; color:var(--muted); max-width:60ch; }
.section--dark .lead{ color:#B9BEDA; }
.center-head .lead{ margin-inline:auto; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 26px; border-radius:999px; font-weight:700; font-size:1rem; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, background .25s, color .25s; white-space:nowrap; }
.btn--primary{ background:var(--grad); color:#fff; box-shadow:var(--shadow-glow); }
.btn--primary:hover{ transform:translateY(-2px); box-shadow:0 30px 80px -22px rgba(124,77,242,.7); }
.btn--ghost{ background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.22); }
.btn--ghost:hover{ background:rgba(255,255,255,.16); transform:translateY(-2px); }
.btn--wa{ background:#25D366; color:#062b16; }
.btn--wa:hover{ transform:translateY(-2px); box-shadow:0 20px 44px -18px rgba(37,211,102,.6); }
.btn--dark{ background:var(--ink); color:#fff; }
.btn--dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--block{ width:100%; }

/* Header + nav */
.header{ position:fixed; inset:0 0 auto 0; z-index:100; transition:background .35s, box-shadow .35s, backdrop-filter .35s; }
.header.is-scrolled{ background:rgba(11,13,31,.82); backdrop-filter:blur(14px) saturate(140%); box-shadow:0 1px 0 rgba(255,255,255,.06), 0 12px 40px -18px rgba(0,0,0,.6); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:78px; gap:20px; }
.nav__logo img{ height:50px; width:auto; }
.nav__menu{ display:flex; align-items:center; gap:26px; }
.nav__menu > a, .nav__drop-btn{ color:rgba(255,255,255,.86); font-weight:600; font-size:.95rem; transition:color .2s; }
.nav__menu > a:hover, .nav__drop-btn:hover{ color:#fff; }
.nav__item{ position:relative; display:flex; align-items:center; }
.nav__drop-btn{ display:flex; align-items:center; gap:6px; }
.nav__drop-btn svg{ width:13px; height:13px; transition:transform .25s; }
.nav__item:hover .nav__drop-btn svg, .nav__item:focus-within .nav__drop-btn svg{ transform:rotate(180deg); }
.nav__drop-menu{ position:absolute; top:calc(100% + 16px); right:0; min-width:240px; background:rgba(18,21,46,.97); backdrop-filter:blur(14px); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:8px; box-shadow:0 24px 60px -20px rgba(0,0,0,.7); opacity:0; visibility:hidden; transform:translateY(8px); transition:.25s; }
.nav__item:hover .nav__drop-menu, .nav__item:focus-within .nav__drop-menu{ opacity:1; visibility:visible; transform:none; }
.nav__drop-menu a{ display:block; padding:11px 14px; border-radius:9px; font-size:.93rem; color:rgba(255,255,255,.82); }
.nav__drop-menu a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__cta .btn{ padding:11px 20px; font-size:.94rem; }
.nav__phone{ color:#fff; font-family:var(--font-mono); font-weight:700; font-size:.9rem; }
.nav__burger{ display:none; flex-direction:column; gap:5px; padding:10px; }
.nav__burger span{ width:24px; height:2px; background:#fff; border-radius:2px; transition:.3s; }
.mobile-menu{ position:fixed; inset:0; z-index:99; background:var(--ink); display:flex; flex-direction:column; justify-content:center; gap:2px; padding:0 8%; transform:translateY(-100%); transition:transform .4s cubic-bezier(.2,.8,.2,1); overflow-y:auto; }
.mobile-menu.is-open{ transform:translateY(0); }
.mobile-menu a{ color:#fff; font-family:var(--font-display); font-size:1.3rem; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu .btn{ margin-top:18px; }

/* Hero */
.hero{ position:relative; background:var(--ink); color:#fff; padding-top:150px; padding-bottom:100px; overflow:hidden; }
.hero::before{ content:""; position:absolute; top:-25%; right:-10%; width:70vw; height:70vw; background:radial-gradient(circle, rgba(124,77,242,.45), rgba(61,90,254,.18) 40%, transparent 68%); filter:blur(20px); z-index:0; }
.hero__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.hero h1{ font-size:clamp(2.4rem,5.4vw,4rem); margin:20px 0; }
.hero h1 .accent{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero__sub{ font-size:1.18rem; color:#C4C9E6; max-width:52ch; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin:34px 0 26px; }
.hero__chips{ display:flex; flex-wrap:wrap; gap:10px 22px; color:#AEB4D6; font-size:.92rem; }
.hero__chips li{ display:flex; align-items:center; gap:8px; }
.hero__chips svg{ width:18px; height:18px; color:var(--glow); flex:none; }
.fiber{ width:100%; height:auto; }
.fiber .beam{ stroke-dasharray:10 14; animation:flow 1.6s linear infinite; }
@keyframes flow{ to{ stroke-dashoffset:-48; } }
.fiber .pulse{ animation:pulse 2.6s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:.35; r:5 } 50%{ opacity:1; r:8 } }
.fiber .win{ animation:win 3s ease-in-out infinite; }
.fiber .win:nth-child(odd){ animation-delay:.6s; }
@keyframes win{ 0%,100%{ opacity:.25 } 50%{ opacity:1 } }
.trustbar{ background:var(--ink); color:#fff; padding-block:26px; border-top:1px solid rgba(255,255,255,.07); }
.trustbar__row{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:26px; align-items:center; }
.trustbar__item{ display:flex; align-items:baseline; gap:12px; }
.trustbar__num{ font-family:var(--font-display); font-size:1.9rem; color:#fff; }
.trustbar__num .u{ color:var(--glow); }
.trustbar__lbl{ color:#9AA0C6; font-size:.9rem; max-width:20ch; }

/* Cards genéricos */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:30px; transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, border-color .3s; }
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.card__ico{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(61,90,254,.14), rgba(124,77,242,.14)); color:var(--brand); margin-bottom:18px; }
.card__ico svg{ width:26px; height:26px; }
.card h3{ font-size:1.22rem; margin-bottom:8px; }
.card p{ color:var(--muted); font-size:.98rem; }

/* PLANOS DE INTERNET (somente internet) */
.iplans{ display:flex; flex-wrap:wrap; justify-content:center; gap:22px; }
.iplan{ position:relative; background:var(--paper); border:1px solid var(--line); border-radius:22px; padding:34px 30px; flex:1 1 300px; max-width:360px; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s; }
.iplan:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.iplan--featured{ border:1.5px solid transparent; background:linear-gradient(var(--paper),var(--paper)) padding-box, var(--grad) border-box; box-shadow:var(--shadow-glow); }
.iplan__tag{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brand); font-weight:700; }
.iplan__name{ font-family:var(--font-display); font-size:1.8rem; margin:12px 0 2px; }
.iplan__speed{ font-family:var(--font-mono); color:var(--muted); font-size:.9rem; }
.iplan__specs{ margin:22px 0 26px; }
.spec{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.spec:last-child{ border-bottom:none; }
.spec .k{ color:var(--muted); }
.spec .v{ font-weight:700; font-family:var(--font-mono); }
.spec .v.ok{ color:var(--brand); display:inline-flex; gap:6px; align-items:center; }
.spec .v.ok svg{ width:16px; height:16px; }
.iplan .btn{ margin-top:auto; }

/* COMBOS (abas + selos + economia) */
.plantabs{ display:inline-flex; gap:6px; padding:6px; background:var(--paper); border:1px solid var(--line); border-radius:999px; margin:0 auto 44px; }
.plantab{ padding:12px 30px; border-radius:999px; font-weight:700; color:var(--muted); font-family:var(--font-display); font-size:1rem; transition:.25s; }
.plantab[aria-selected="true"]{ background:var(--grad); color:#fff; box-shadow:var(--shadow-glow); }
.planpanel{ animation:fadeUp .5s ease; }
.planpanel[hidden]{ display:none; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.planrow{ display:flex; flex-wrap:wrap; justify-content:center; gap:22px; padding-top:16px; }
.plan{ position:relative; background:var(--paper); border:1px solid var(--line); border-radius:22px; padding:34px 30px; display:flex; flex-direction:column; flex:1 1 320px; max-width:370px; transition:transform .3s, box-shadow .3s; }
.plan:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.plan--featured{ border:1.5px solid transparent; background:linear-gradient(var(--paper),var(--paper)) padding-box, var(--grad) border-box; box-shadow:var(--shadow-glow); }
.plan__badge{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--grad); color:#fff; font-family:var(--font-mono); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 15px; border-radius:999px; white-space:nowrap; box-shadow:var(--shadow-glow); }
.plan__badge--value{ background:linear-gradient(120deg,#0EA968,#22D3EE); }
.plan__badge--premium{ background:linear-gradient(120deg,#7C4DFF,#3D5AFE); }
.plan__tag{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brand); font-weight:700; }
.plan__name{ font-family:var(--font-display); font-size:1.7rem; margin:12px 0 4px; }
.plan__speed{ font-family:var(--font-mono); font-size:.95rem; color:var(--text); }
.plan__speed b{ color:var(--brand); }
.plan__apps{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 6px; }
.plan__app{ display:inline-flex; align-items:center; gap:6px; background:var(--mist); border:1px solid var(--line); border-radius:999px; padding:7px 13px; font-size:.82rem; font-weight:700; color:var(--text); }
.plan__app svg{ width:14px; height:14px; color:var(--brand); }
.plan__price{ margin:18px 0 0; padding:16px; border-radius:14px; background:var(--mist); display:flex; align-items:baseline; gap:8px; }
.plan__price .cur{ font-weight:700; color:var(--muted); }
.plan__price .val{ font-family:var(--font-display); font-size:1.95rem; color:var(--text); }
.plan__price .per{ color:var(--muted); font-size:.9rem; }
.plan__save{ display:inline-flex; align-items:flex-start; gap:8px; background:rgba(14,169,104,.1); color:#0B8A54; font-weight:700; font-size:.82rem; padding:9px 13px; border-radius:10px; margin:12px 0 20px; }
.plan__save svg{ width:16px; height:16px; flex:0 0 16px; }
.plan__feats{ display:grid; gap:11px; margin:0 0 26px; }
.plan__feats li{ display:flex; gap:10px; align-items:center; font-size:.95rem; color:var(--text); }
.plan__feats svg{ width:18px; height:18px; color:var(--brand); flex:none; }
.plan .btn{ margin-top:auto; }
.plans__note{ text-align:center; color:var(--muted); font-size:.92rem; margin-top:26px; }
.ptable-wrap{ overflow-x:auto; border-radius:22px; box-shadow:var(--shadow); border:1px solid var(--line); margin-top:56px; -webkit-overflow-scrolling:touch; }
.ptable{ width:100%; min-width:720px; border-collapse:collapse; background:var(--paper); }
.ptable th, .ptable td{ padding:16px 20px; text-align:center; border-bottom:1px solid var(--line); font-size:.94rem; }
.ptable thead th{ background:var(--ink); color:#fff; font-family:var(--font-display); font-weight:600; font-size:1rem; }
.ptable thead th.is-pop{ background:var(--grad); }
.ptable thead th small{ display:block; font-family:var(--font-mono); font-weight:400; font-size:.72rem; color:#B9BEDA; margin-top:3px; }
.ptable thead th.is-pop small{ color:rgba(255,255,255,.85); }
.ptable tbody th{ text-align:left; font-weight:700; color:var(--text); background:var(--mist); white-space:nowrap; }
.ptable tbody td svg{ width:18px; height:18px; color:#0EA968; vertical-align:middle; }
.ptable tbody td .dash{ color:#B4B8CC; }
.ptable tr:last-child td, .ptable tr:last-child th{ border-bottom:none; }

/* APLICATIVOS INCLUSOS (vitrine, sem valores) */
.appgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.appc{ background:var(--ink-2); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:28px; transition:transform .3s, border-color .3s; }
.appc:hover{ transform:translateY(-5px); border-color:var(--glow); }
.appc__ico{ width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background:var(--grad); color:#fff; margin-bottom:18px; }
.appc__ico svg{ width:27px; height:27px; }
.appc h3{ color:#fff; font-size:1.22rem; margin-bottom:8px; }
.appc p{ color:#B9BEDA; font-size:.95rem; margin-bottom:16px; }
.appc__benef{ display:inline-flex; align-items:center; gap:8px; font-size:.83rem; font-weight:700; color:var(--glow); }
.appc__benef::before{ content:""; width:0; height:0; border-left:7px solid currentColor; border-top:5px solid transparent; border-bottom:5px solid transparent; }

/* Humano + IA */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:24px; overflow:hidden; box-shadow:var(--shadow); }
.duo__side{ padding:44px; }
.duo__human{ background:var(--paper); }
.duo__ai{ background:var(--grad); color:#fff; }
.duo__side h3{ font-size:1.5rem; margin:14px 0 10px; }
.duo__ai h3{ color:#fff; }
.duo__ai .eyebrow{ color:#EAE7FF; }
.duo__side p{ color:var(--muted); }
.duo__ai p{ color:rgba(255,255,255,.9); }
.duo__side ul{ margin-top:16px; display:grid; gap:10px; }
.duo__side li{ display:flex; gap:10px; align-items:flex-start; font-size:.98rem; }
.duo__side li svg{ width:20px; height:20px; flex:none; color:var(--brand); margin-top:2px; }
.duo__ai li svg{ color:#fff; }

/* Sobre */
.about__grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.about__list{ margin-top:24px; display:grid; gap:14px; }
.about__list li{ display:flex; gap:12px; align-items:flex-start; }
.about__list svg{ width:22px; height:22px; flex:none; color:var(--brand); margin-top:3px; }
.about__list b{ display:block; }
.about__list span{ color:var(--muted); font-size:.95rem; }
.about__stats{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.stat{ background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:26px; transition:transform .3s, box-shadow .3s; }
.stat:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.stat__ico{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(61,90,254,.14), rgba(124,77,242,.14)); color:var(--brand); margin-bottom:14px; }
.stat__ico svg{ width:22px; height:22px; }
.stat__num{ font-family:var(--font-display); font-size:2rem; line-height:1; }
.stat__num .u{ color:var(--brand); }
.stat__lbl{ color:var(--muted); font-size:.9rem; margin-top:7px; }

/* Telefonia */
.tel__grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.tel__feats{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:26px 0 32px; }
.tel__feat{ display:flex; gap:13px; align-items:flex-start; }
.tel__feat svg{ width:24px; height:24px; flex:none; color:var(--brand); margin-top:2px; }
.tel__feat b{ display:block; margin-bottom:2px; }
.tel__feat span{ color:var(--muted); font-size:.92rem; }
.tel__card{ position:relative; border-radius:24px; padding:40px; color:#fff; background:var(--ink); overflow:hidden; box-shadow:var(--shadow-glow); }
.tel__card::before{ content:""; position:absolute; inset:0; background:radial-gradient(80% 90% at 80% 0%, rgba(124,77,242,.5), transparent 60%); }
.tel__card > *{ position:relative; z-index:1; }
.tel__card-top{ display:flex; align-items:center; gap:12px; font-family:var(--font-mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--glow); }
.tel__num{ font-family:var(--font-display); font-size:2.2rem; margin:18px 0 6px; }
.tel__meta{ color:#B9BEDA; font-size:.95rem; margin-bottom:26px; }
.tel__waves{ display:flex; align-items:flex-end; gap:5px; height:44px; }
.tel__waves i{ width:5px; border-radius:4px; background:var(--grad); animation:eq 1.1s ease-in-out infinite; }
.tel__waves i:nth-child(1){ height:40%; animation-delay:0s } .tel__waves i:nth-child(2){ height:75%; animation-delay:.1s }
.tel__waves i:nth-child(3){ height:55%; animation-delay:.2s } .tel__waves i:nth-child(4){ height:95%; animation-delay:.3s }
.tel__waves i:nth-child(5){ height:60%; animation-delay:.4s } .tel__waves i:nth-child(6){ height:85%; animation-delay:.5s }
.tel__waves i:nth-child(7){ height:45%; animation-delay:.6s } .tel__waves i:nth-child(8){ height:70%; animation-delay:.7s }
@keyframes eq{ 0%,100%{ transform:scaleY(.5) } 50%{ transform:scaleY(1) } }

/* Cobertura */
.cover{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; }
.cover__form{ background:var(--paper); border:1px solid var(--line); border-radius:22px; padding:34px; box-shadow:var(--shadow); }
.field{ margin-bottom:16px; }
.field label{ display:block; font-weight:700; font-size:.9rem; margin-bottom:7px; }
.field input, .field select{ width:100%; padding:14px 16px; border:1.5px solid var(--line); border-radius:12px; font-family:inherit; font-size:1rem; background:var(--paper); transition:border-color .2s, box-shadow .2s; }
.field input:focus, .field select:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px rgba(61,90,254,.14); }
.cover__map{ position:relative; border-radius:22px; overflow:hidden; min-height:340px; background:var(--ink); }
.cover__map svg{ width:100%; height:100%; position:absolute; inset:0; }
.cover__pin{ position:absolute; z-index:2; display:flex; align-items:center; gap:8px; background:rgba(11,13,31,.75); backdrop-filter:blur(8px); color:#fff; padding:8px 14px; border-radius:999px; font-size:.85rem; border:1px solid rgba(255,255,255,.14); }

/* Como funciona */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.step{ position:relative; padding-top:14px; }
.step__n{ font-family:var(--font-mono); font-size:.95rem; color:var(--brand); font-weight:700; }
.step__bar{ height:3px; border-radius:3px; background:var(--line); margin:14px 0 18px; overflow:hidden; }
.step__bar i{ display:block; height:100%; width:40%; background:var(--grad); }
.step h3{ font-size:1.15rem; margin-bottom:6px; }
.step p{ color:var(--muted); font-size:.95rem; }

/* Diferenciais */
.compare{ border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:var(--shadow); }
.compare__row{ display:grid; grid-template-columns:1.6fr 1fr 1fr; align-items:center; }
.compare__row + .compare__row{ border-top:1px solid var(--line); }
.compare__row > div{ padding:18px 22px; }
.compare__head{ background:var(--ink); color:#fff; }
.compare__head .play{ background:var(--grad); }
.compare__head > div{ font-family:var(--font-display); font-weight:600; }
.compare__feat{ font-weight:600; }
.compare__play{ background:rgba(61,90,254,.05); }
.compare__yes{ color:#0EA968; font-weight:700; display:flex; align-items:center; gap:8px; }
.compare__no{ color:#B4B8CC; display:flex; align-items:center; gap:8px; }
.compare svg{ width:19px; height:19px; flex:none; }

/* Depoimentos */
.reviews{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.review{ background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:28px; }
.review__stars{ color:#FBBF24; letter-spacing:2px; margin-bottom:12px; }
.review p{ font-size:1.02rem; color:var(--text); }
.review__who{ display:flex; align-items:center; gap:12px; margin-top:18px; }
.review__av{ width:44px; height:44px; border-radius:50%; background:var(--grad); display:grid; place-items:center; color:#fff; font-family:var(--font-display); font-weight:700; }
.review__nm{ font-weight:700; font-size:.95rem; }
.review__loc{ color:var(--muted); font-size:.85rem; }

/* FAQ */
.faq{ max-width:820px; margin-inline:auto; }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 4px; text-align:left; font-family:var(--font-display); font-size:1.14rem; font-weight:500; color:var(--text); }
.faq__q .plus{ position:relative; width:22px; height:22px; flex:none; }
.faq__q .plus::before, .faq__q .plus::after{ content:""; position:absolute; inset:0; margin:auto; background:var(--brand); transition:transform .3s; }
.faq__q .plus::before{ width:22px; height:2px; }
.faq__q .plus::after{ width:2px; height:22px; }
.faq__item.is-open .plus::after{ transform:scaleY(0); }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq__a p{ padding:0 4px 24px; color:var(--muted); }

/* CTA + footer */
.finalcta{ position:relative; background:var(--ink); color:#fff; overflow:hidden; text-align:center; }
.finalcta::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 120% at 50% 0%, rgba(124,77,242,.5), transparent 60%); }
.finalcta__in{ position:relative; z-index:1; max-width:760px; margin-inline:auto; }
.finalcta h2{ font-size:clamp(2rem,5vw,3.2rem); margin-bottom:16px; }
.finalcta p{ color:#C4C9E6; font-size:1.15rem; margin-bottom:32px; }
.finalcta .hero__actions{ justify-content:center; }
.footer{ background:#070816; color:#9AA0C6; padding-block:64px 34px; }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.footer__logo img{ height:60px; margin-bottom:18px; }
.footer__brand p{ max-width:34ch; font-size:.95rem; }
.footer__social{ display:flex; gap:12px; margin-top:20px; }
.footer__social a{ width:40px; height:40px; border-radius:11px; background:rgba(255,255,255,.06); display:grid; place-items:center; color:#fff; transition:background .2s, transform .2s; }
.footer__social a:hover{ background:var(--brand); transform:translateY(-3px); }
.footer__social svg{ width:19px; height:19px; }
.footer h4{ color:#fff; font-family:var(--font-display); font-size:.95rem; margin-bottom:16px; }
.footer__col a{ display:block; padding:6px 0; font-size:.94rem; transition:color .2s; }
.footer__col a:hover{ color:#fff; }
.footer__bottom{ margin-top:48px; padding-top:24px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:.85rem; }
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:90; width:60px; height:60px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 14px 34px -10px rgba(37,211,102,.7); transition:transform .25s; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:32px; height:32px; color:#fff; }
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
.reveal.is-in{ opacity:1; transform:none; }

/* CASA CONECTADA */
.casa__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.casa__list{ margin:24px 0 30px; display:grid; gap:13px; }
.casa__list li{ display:flex; gap:12px; align-items:flex-start; color:var(--muted); font-size:1rem; }
.casa__list svg{ width:22px; height:22px; flex:none; color:var(--brand); margin-top:3px; }
.casa__tagline{ font-family:var(--font-display); font-size:1.15rem; color:var(--text); border-left:3px solid var(--brand); padding-left:16px; margin-bottom:30px; }
.casa__visual{ position:relative; }
.mesh{ width:100%; height:auto; }
.mesh .ring{ transform-origin:center; animation:meshpulse 3s ease-in-out infinite; }
.mesh .ring2{ animation-delay:1s; } .mesh .ring3{ animation-delay:2s; }
@keyframes meshpulse{ 0%{ opacity:.55; transform:scale(.6) } 70%{ opacity:0; transform:scale(1.15) } 100%{ opacity:0 } }
.mesh .link{ stroke-dasharray:6 8; animation:flow 1.6s linear infinite; }
.mesh .node{ animation:win 2.6s ease-in-out infinite; }
.mesh .node:nth-child(odd){ animation-delay:.5s; }

/* CONTATO */
.contact{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.contact__card{ background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:28px; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s, border-color .3s; }
a.contact__card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent; }
.contact__ico{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(61,90,254,.14), rgba(124,77,242,.14)); color:var(--brand); margin-bottom:16px; }
.contact__ico svg{ width:26px; height:26px; }
.contact__card h3{ font-size:1.15rem; margin-bottom:4px; }
.contact__card p{ color:var(--muted); font-size:.92rem; flex:1; }
.contact__link{ margin-top:14px; color:var(--brand); font-weight:700; font-size:.9rem; }
.contact__social{ display:flex; gap:10px; margin-top:14px; }
.contact__social a{ width:38px; height:38px; border-radius:10px; background:var(--mist); border:1px solid var(--line); display:grid; place-items:center; color:var(--brand); transition:.2s; }
.contact__social a:hover{ background:var(--brand); color:#fff; }
.contact__social svg{ width:18px; height:18px; }

@media (max-width:960px){
  .hero__grid, .duo, .cover, .about__grid, .tel__grid, .casa__grid, .footer__top{ grid-template-columns:1fr; }
  .grid-3, .appgrid, .steps, .reviews, .contact{ grid-template-columns:1fr 1fr; }
  .hero__visual, .tel__card{ order:-1; max-width:460px; margin-inline:auto; }
  .nav__menu, .nav__cta .btn--primary, .nav__phone{ display:none; }
  .nav__burger{ display:flex; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .grid-3, .appgrid, .steps, .reviews, .contact, .footer__top, .tel__feats, .about__stats{ grid-template-columns:1fr; }
  .compare__row{ grid-template-columns:1.4fr .8fr .8fr; }
  .compare__row > div{ padding:14px 12px; font-size:.9rem; }
  .trustbar__row{ justify-content:flex-start; gap:22px 34px; }
  .duo__side{ padding:32px 26px; }
  .plantab{ padding:11px 20px; font-size:.92rem; }
  .tel__card{ padding:32px 26px; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}


/* =========================================================================
   COMPONENTES DE PÁGINAS INTERNAS (Contratos, Ofertas, Contrato, Legais)
   ========================================================================= */
.subhero{ background:var(--ink); color:#fff; padding:150px 0 60px; position:relative; overflow:hidden; }
.subhero::before{ content:""; position:absolute; top:-30%; right:-8%; width:55vw; height:55vw; background:radial-gradient(circle,rgba(124,77,242,.4),transparent 65%); filter:blur(20px); }
.subhero .wrap{ position:relative; z-index:1; }
.subhero .eyebrow{ color:var(--glow); }
.subhero h1{ font-size:clamp(2rem,5vw,3rem); margin:16px 0 12px; }
.subhero p{ color:#C4C9E6; max-width:62ch; font-size:1.12rem; }
.period{ display:inline-flex; align-items:center; gap:9px; margin-top:22px; font-family:var(--font-mono); font-size:.82rem; font-weight:700; letter-spacing:.06em; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); padding:9px 16px; border-radius:999px; }
.period svg{ width:15px; height:15px; color:var(--glow); }

.btn--soft{ background:var(--mist); color:var(--brand); border:1px solid var(--line); }
.btn--soft:hover{ background:var(--brand); color:#fff; border-color:transparent; transform:translateY(-2px); }
.footer__sub{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#6B7099; margin:14px 0 6px; }

/* Lista de documentos */
.doclist{ display:grid; gap:16px; max-width:880px; margin-inline:auto; }
.doc{ display:flex; align-items:center; gap:20px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 24px; transition:transform .3s, box-shadow .3s, border-color .3s; }
.doc:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:transparent; }
.doc__ico{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(61,90,254,.14), rgba(124,77,242,.14)); color:var(--brand); flex:none; }
.doc__ico svg{ width:26px; height:26px; }
.doc__body{ flex:1; min-width:0; }
.doc__name{ font-family:var(--font-display); font-size:1.14rem; font-weight:600; }
.doc__desc{ color:var(--muted); font-size:.92rem; margin-top:3px; }
.doc__meta{ display:inline-flex; align-items:center; gap:6px; margin-top:9px; font-family:var(--font-mono); font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--brand); background:rgba(61,90,254,.1); padding:5px 10px; border-radius:8px; }
.doc__meta svg{ width:13px; height:13px; }
.doc__cta{ flex:none; }
.group-title{ max-width:880px; margin:44px auto 18px; font-family:var(--font-mono); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px; }
.group-title::after{ content:""; flex:1; height:1px; background:var(--line); }
.note{ max-width:880px; margin:26px auto 0; background:var(--mist); border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:14px; padding:18px 22px; color:var(--muted); font-size:.94rem; }
.note b{ color:var(--text); }

/* Páginas legais */
.legal{ display:grid; grid-template-columns:250px 1fr; gap:52px; padding:64px 0 90px; align-items:start; }
.toc{ position:sticky; top:96px; }
.toc h2{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.toc a{ display:block; padding:7px 0; color:var(--muted); font-size:.92rem; font-weight:600; border-left:2px solid var(--line); padding-left:14px; }
.toc a:hover{ color:var(--brand); border-color:var(--brand); }
.legal .content h2{ font-family:var(--font-display); font-size:1.5rem; letter-spacing:-.01em; margin:40px 0 14px; scroll-margin-top:96px; }
.legal .content h2:first-child{ margin-top:0; }
.legal .content h3{ font-family:var(--font-display); font-size:1.12rem; margin:24px 0 8px; }
.legal .content p{ color:#2B2E44; margin-bottom:14px; }
.legal .content ul{ margin:0 0 16px 4px; display:grid; gap:8px; }
.legal .content li{ display:flex; gap:10px; align-items:flex-start; color:#2B2E44; }
.legal .content li::before{ content:""; margin-top:11px; width:6px; height:6px; border-radius:50%; background:var(--brand); flex:none; }
.callout{ background:var(--mist); border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:14px; padding:20px 22px; margin:22px 0; }
.callout p{ margin:0; font-size:.96rem; color:var(--muted); }
.tag{ display:inline-block; background:rgba(61,90,254,.1); color:var(--brand); font-family:var(--font-mono); font-size:.75rem; font-weight:700; padding:2px 8px; border-radius:6px; }

/* Página de contrato (aceite) */
.cwrap{ display:grid; grid-template-columns:1.55fr 1fr; gap:36px; align-items:start; padding:56px 0 84px; }
.ccard{ background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:30px; box-shadow:var(--shadow); margin-bottom:24px; }
.ccard h2{ font-family:var(--font-display); font-size:1.3rem; letter-spacing:-.01em; margin-bottom:6px; }
.ccard__hint{ color:var(--muted); font-size:.92rem; margin-bottom:20px; }
.row{ display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.row:last-child{ border-bottom:none; }
.row .k{ color:var(--muted); font-size:.95rem; }
.row .v{ font-weight:700; text-align:right; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.chip{ display:inline-flex; align-items:center; gap:6px; background:var(--mist); border:1px solid var(--line); border-radius:999px; padding:6px 12px; font-size:.85rem; font-weight:700; }
.terms-list{ display:grid; gap:12px; margin-top:4px; }
.terms-list li{ display:flex; gap:11px; align-items:flex-start; color:var(--text); font-size:.96rem; }
.terms-list svg{ width:20px; height:20px; flex:none; color:var(--brand); margin-top:2px; }
.accept{ display:flex; gap:13px; align-items:flex-start; padding:14px 0; }
.accept input{ width:22px; height:22px; margin-top:2px; accent-color:var(--brand); flex:none; cursor:pointer; }
.accept label{ font-size:.96rem; color:var(--text); cursor:pointer; }
.order{ position:sticky; top:96px; background:var(--ink); color:#fff; border-radius:22px; padding:30px; box-shadow:var(--shadow-glow); }
.order h3{ font-family:var(--font-display); color:#fff; font-size:1.15rem; margin-bottom:4px; }
.order__sub{ color:#9AA0C6; font-size:.85rem; margin-bottom:18px; }
.order__plan{ font-family:var(--font-display); font-size:1.5rem; margin-bottom:2px; }
.order__speed{ font-family:var(--font-mono); color:#B9BEDA; font-size:.85rem; }
.order__block{ border-top:1px solid rgba(255,255,255,.1); margin-top:18px; padding-top:16px; }
.order__lbl{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--glow); margin-bottom:8px; }
.order__items{ display:flex; flex-wrap:wrap; gap:7px; }
.order__item{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:5px 11px; font-size:.82rem; font-weight:600; }
.order__total{ display:flex; justify-content:space-between; align-items:baseline; margin:18px 0; padding-top:16px; border-top:1px solid rgba(255,255,255,.14); }
.order__total .l{ color:#C4C9E6; font-weight:600; }
.order__total .t{ font-family:var(--font-display); font-size:1.9rem; }
.order__total .t small{ font-size:.9rem; color:#9AA0C6; }
.order .btn{ width:100%; }
.order__note{ color:#6B7099; font-size:.78rem; margin-top:12px; text-align:center; }
.order__free{ display:inline-flex; align-items:center; gap:7px; background:rgba(14,169,104,.16); color:#7CF0B8; border-radius:999px; padding:6px 12px; font-size:.8rem; font-weight:700; margin-bottom:6px; }
.order__free svg{ width:14px; height:14px; }
.done{ display:none; text-align:center; }
.done.is-on{ display:block; }
.done__ico{ width:64px; height:64px; border-radius:50%; background:var(--grad); display:grid; place-items:center; margin:0 auto 16px; }
.done__ico svg{ width:32px; height:32px; color:#fff; }

@media (max-width:900px){
  .legal, .cwrap{ grid-template-columns:1fr; gap:32px; }
  .toc{ position:static; }
  .toc a{ display:inline-block; border:1px solid var(--line); border-radius:999px; padding:8px 14px; margin:0 8px 8px 0; }
  .order{ position:static; }
}
@media (max-width:600px){
  .subhero{ padding-top:120px; }
  .doc{ flex-direction:column; align-items:flex-start; gap:16px; }
  .doc__cta, .doc__cta .btn{ width:100%; }
}

/* Item de menu ativo */
.nav__menu > a.active{ color:#fff; }
.nav__menu > a.active::after{ content:""; display:block; height:2px; border-radius:2px; background:var(--grad); margin-top:4px; }
.nav__drop-menu a.active{ color:#fff; background:rgba(255,255,255,.08); }
.mobile-menu a.active{ color:var(--glow); }



/* ============================================================
   OFERTAS — colar no fim do style.css principal do tema
   Estiliza o cabeçalho de seção, o acordeão nativo <details>
   e os cards de ofertas encerradas (cinza/arquivo).
   ============================================================ */

/* Cabeçalho da seção "Ofertas vigentes" */
.section-head{ margin-bottom: 22px; }
.section-head__title{ font-size: clamp(1.35rem, 2.4vw, 1.7rem); font-weight: 800; letter-spacing: -.01em; margin: 0 0 4px; }
.section-head__sub{ margin: 0; color: #8A93A6; font-size: .95rem; }

/* Selo de validade das vigentes em verde (lê como "disponível") */
.doc__meta--ativa,
.doc__meta--ativa svg{ color: #27AE60; }

/* ---------- Acordeão nativo <details> ---------- */
.archive{ margin-top: 26px; border-top: 1px solid #E4E8F0; padding-top: 22px; }

.archive__summary{
  list-style: none;                 /* remove a setinha padrão do <summary> */
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: #F3F5F9; border: 1px solid #E4E8F0; border-radius: 14px;
  padding: 14px 18px; cursor: pointer;
  transition: background .15s;
}
.archive__summary::-webkit-details-marker{ display: none; } /* Safari */
.archive__summary:hover{ background: #ECEFF5; }
.archive__summary:focus-visible{ outline: 2px solid #2ECC71; outline-offset: 2px; }

.archive__summary-main{ display: inline-flex; align-items: center; gap: 10px; }
.archive__summary-ico{ width: 18px; height: 18px; flex: 0 0 18px; color: #8A93A6; }
.archive__summary-label{ font-weight: 700; color: #3A4256; font-size: 1rem; }
.archive__summary-hint{ color: #8A93A6; font-size: .85rem; margin-right: auto; } /* empurra o chevron p/ direita */

.archive__chevron{ width: 20px; height: 20px; flex: 0 0 20px; color: #8A93A6; transition: transform .2s ease; }
.archive[open] .archive__chevron{ transform: rotate(180deg); }

.doclist--archive{ margin-top: 16px; }

/* ---------- Cards encerrados (tom arquivo) ---------- */
.doc--encerrada{ opacity: .72; filter: grayscale(1); transform: scale(.985); transform-origin: left center; }
.doc--encerrada:hover{ opacity: .9; }
.doc--encerrada .doc__ico{ color: #8A93A6; background: #F3F5F9; }
.doc--encerrada .doc__name{ color: #5B6376; }
.doc--encerrada .doc__desc,
.doc__meta--encerrada,
.doc__meta--encerrada svg{ color: #8A93A6; }

/* Botão fantasma "Ver regulamento" — neutro, não compete com as ativas */
.btn--ghost{ background: transparent; color: #8A93A6; border: 1px solid #E4E8F0; }
.btn--ghost:hover{ background: #F3F5F9; color: #5B6376; }

@media (prefers-reduced-motion: reduce){ .archive__chevron{ transition: none; } }
