/* =========================================================
   Souza Pilares — novo site (base: template Consulta Aurora)
   Estrutura consultiva da "Consulta" com a paleta clara e
   premium da "Aurora": azul-gelo, vidro, Sora + Inter.
   ========================================================= */
:root {
    --bg: #FAFCFD; --paper: #FFFFFF; --tint: #F3F8FB; --line: #E2EAF0;
    --ink: #14212B; --muted: #5B6B78;
    --navy: #043A58; --navy-2: #06496F; --navy-9: #032A40;
    --sky: #52A0C1; --sky-6: #3E8BAC; --sky-1: #EAF4F9; --sky-2: #CFE6F0;
    --stage: #06496F; --stage-2: #043A58;
    --wa: #25D366; --wa-2: #128C7E;
    --display: "Sora", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --r: 20px; --r-lg: 28px;
    --ease: cubic-bezier(.22, 1, .36, 1); --spring: cubic-bezier(.34, 1.4, .64, 1);
    --shadow-sm: 0 1px 2px rgba(4, 58, 88, .06), 0 4px 12px rgba(4, 58, 88, .05);
    --shadow: 0 2px 4px rgba(4, 58, 88, .05), 0 16px 40px -12px rgba(4, 58, 88, .16);
    --shadow-lg: 0 30px 80px -20px rgba(4, 58, 88, .28);
    --container: 1200px; --gutter: clamp(20px, 4vw, 40px); --header-h: 84px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--bg); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; }
.container { width: min(var(--container), 100% - 2 * var(--gutter)); margin-inline: auto; }
.ico { width: 1.2em; height: 1.2em; flex: none; }
section[id] { scroll-margin-top: calc(var(--header-h) + 10px); }
::selection { background: var(--sky-2); color: var(--navy-9); }
h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 1.08; letter-spacing: -.025em; color: var(--navy); text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 1.5rem + 3.8vw, 4.6rem); font-weight: 800; letter-spacing: -.035em; }
h2 { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3rem); }
h1 em, h2 em { font-style: normal; background: linear-gradient(90deg, var(--sky) 0%, var(--navy-2) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
p { color: var(--muted); }
.lead { font-size: clamp(1.05rem, .95rem + .4vw, 1.25rem); max-width: 560px; margin: 1.2rem 0 2rem; }
.kicker { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--display); font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sky-6); margin-bottom: 1rem; }
.kicker::before { content: ""; width: 24px; height: 2px; border-radius: 2px; background: currentColor; }
.kicker--light { color: #9FD3EA; }
.section__head { max-width: 720px; margin-bottom: clamp(36px, 5vw, 60px); }
.section__head > p { margin-top: 1rem; font-size: 1.08rem; }
.section__head--center { margin-inline: auto; text-align: center; }
.section__head--center .kicker { justify-content: center; }
.section__head--split { max-width: none; display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem 4rem; align-items: end; }
.tag { display: inline-flex; padding: .35rem .75rem; border-radius: 999px; font-size: .74rem; font-weight: 600; background: #FFF4DB; color: #8A5A00; border: 1px solid #F5DEA5; }
.disclaimer { text-align: center; font-size: .82rem; margin-top: 1.4rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skeleton { display: inline-block; width: 2em; height: .75em; border-radius: .16em; vertical-align: -.05em; background: linear-gradient(90deg, var(--sky-1) 25%, var(--sky-2) 50%, var(--sky-1) 75%); background-size: 200% 100%; animation: shimmer 1.8s linear infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }

/* Grain sutil */
body::before { content: ""; position: fixed; inset: 0; z-index: 9990; pointer-events: none; opacity: .035; mix-blend-mode: multiply; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* Botões (estilo Aurora) */
.btn { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .95rem 1.5rem; border-radius: 999px; font-family: var(--display); font-weight: 600; font-size: .95rem; transition: transform .35s var(--ease), box-shadow .35s, background .3s, color .3s; white-space: nowrap; }
.btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, .22) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.btn:hover::after { transform: translateX(120%); }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: scale(.98); }
.btn .ico { transition: transform .35s var(--ease); }
.btn:hover .ico:last-child { transform: translateX(4px); }
.btn--navy { background: linear-gradient(135deg, var(--navy-2), var(--navy)); color: #fff; box-shadow: 0 10px 24px -10px rgba(4, 58, 88, .6); }
.btn--amber { background: linear-gradient(135deg, var(--sky), var(--sky-6)); color: #fff; box-shadow: 0 12px 28px -10px rgba(82, 160, 193, .7); }
.btn--ghost { background: transparent; color: var(--navy); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--sky); color: var(--sky-6); }
.btn--wa { background: linear-gradient(135deg, #2BD96F, #1FAE58); color: #fff; }
.btn--sm { padding: .6rem 1rem; font-size: .85rem; }
.btn--lg { padding: 1.1rem 1.7rem; font-size: 1rem; }
#diag-back .ico { transform: rotate(180deg); }
#diag-back:hover .ico { transform: rotate(180deg) translateX(4px); }

/* Header flutuante de vidro */
.header { position: fixed; inset: 0 0 auto 0; z-index: 1000; padding: 12px 0; }
.header__inner { height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 0 .6rem 0 1.1rem; border-radius: 999px; background: rgba(255, 255, 255, .6); border: 1px solid rgba(255, 255, 255, .8); backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%); box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 8px 32px -12px rgba(4, 58, 88, .12); transition: background .4s, box-shadow .4s; }
.header.is-scrolled .header__inner { background: rgba(255, 255, 255, .86); box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 12px 40px -12px rgba(4, 58, 88, .22); }
.brand img { height: 42px; width: auto; }
/* Logomarca em texto: símbolo + "Souza Pilares" (inspirada no template Painel) */
.brand--texto { display: flex; align-items: center; gap: .65rem; font-family: var(--display); font-weight: 700; font-size: 1.12rem; letter-spacing: -.02em; line-height: 1.05; color: var(--navy); white-space: nowrap; }
.brand--texto img { height: 38px; width: auto; }
/* Em telas largas a pílula do topo usa até 1320px (o conteúdo segue em 1200px): logomarca, menu, status e
   WhatsApp ficavam no limite e a logomarca colava em "Fases da vida". Folga mínima extra após a logomarca. */
.header .header__inner { width: min(1320px, 100% - 2 * var(--gutter)); }
.header .brand--texto { margin-right: 1rem; }
.brand--texto small { display: block; margin-top: .2rem; font-family: "Inter", system-ui, sans-serif; font-size: .6rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.nav { display: flex; gap: .2rem; }
.nav a { padding: .5rem .85rem; border-radius: 999px; font-weight: 500; font-size: .9rem; color: var(--ink); white-space: nowrap; transition: background .3s, color .3s; }
.nav a:hover { background: var(--sky-1); color: var(--navy); }
.header__right { display: flex; align-items: center; gap: .5rem; }
.status { display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .8rem; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-size: .78rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.status__dot { width: 8px; height: 8px; border-radius: 50%; background: #B0B8BF; }
.status.is-open .status__dot { background: var(--wa); animation: ping 2s ease-out infinite; }
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); } 70%, 100% { box-shadow: 0 0 0 9px rgba(37, 211, 102, 0); } }
.burger { display: none; width: 42px; height: 42px; border-radius: 50%; background: var(--navy); place-items: center; }
.burger span { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; transition: transform .4s var(--ease); }
.burger span + span { margin-top: 5px; }
.burger[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-nav { display: none; flex-direction: column; margin: 8px var(--gutter) 0; padding: .4rem 1.2rem 1rem; border-radius: 24px; background: rgba(255, 255, 255, .94); border: 1px solid var(--line); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
.mobile-nav.is-open { display: flex; }
.mobile-nav a { padding: .8rem 0; font-family: var(--display); font-weight: 600; font-size: 1.15rem; color: var(--navy); border-bottom: 1px solid var(--line); }
.mobile-nav a:last-child { border-bottom: 0; }

/* Hero */
.hero { position: relative; padding: calc(var(--header-h) + clamp(40px, 6vw, 80px)) 0 clamp(60px, 8vw, 110px); overflow: hidden; }
.hero__art { position: absolute; inset: 0; pointer-events: none; }
.hero__blob { position: absolute; right: -12vw; top: -14vw; width: 62vw; height: 62vw; max-width: 900px; max-height: 900px; border-radius: 50%; background: radial-gradient(circle, rgba(82, 160, 193, .32), transparent 65%); filter: blur(40px); animation: drift 20s ease-in-out infinite alternate; }
.hero__art::after { content: ""; position: absolute; left: -10vw; bottom: -20vw; width: 44vw; height: 44vw; border-radius: 50%; background: radial-gradient(circle, rgba(4, 58, 88, .14), transparent 70%); filter: blur(50px); }
@keyframes drift { to { transform: translate(-6vw, 5vw) scale(1.08); } }
.hero__arcs { position: absolute; right: -14vw; top: -8vw; width: 60vw; max-width: 900px; color: var(--navy); opacity: .22; animation: spin 140s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.hero__grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; }
.how { display: flex; gap: 2rem; margin-top: 2.4rem; }
.how li { display: flex; align-items: center; gap: .6rem; font-weight: 600; font-size: .9rem; color: var(--ink); }
.how li b { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); border: 1.5px solid var(--line); font-family: var(--display); font-weight: 700; font-size: .8rem; color: var(--navy); }
.how li:not(:last-child)::after { content: ""; width: 1.2rem; border-top: 2px dotted var(--sky-2); margin-left: .6rem; }

.hero__phone { position: relative; display: flex; justify-content: center; }
.phone { width: min(380px, 100%); background: var(--paper); border-radius: 36px; border: 1px solid var(--line); box-shadow: var(--shadow-lg), 0 0 0 8px var(--sky-1); overflow: hidden; display: flex; flex-direction: column; min-height: 560px; }
.phone__bar { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.1rem; background: linear-gradient(135deg, var(--navy-2), var(--navy-9)); color: #fff; }
.phone__avatar { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.phone__avatar img { width: 24px; }
.phone__bar strong { display: block; font-family: var(--display); font-size: .95rem; }
.phone__bar small { font-size: .75rem; color: #9FD3EA; }
.phone__replay { margin-left: auto; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .12); color: #fff; transition: transform .5s var(--ease); }
.phone__replay:hover { transform: rotate(-180deg); }
.phone__chat { flex: 1; padding: 1.1rem; display: flex; flex-direction: column; gap: .6rem; background: var(--tint) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><circle cx='20' cy='20' r='1' fill='%23CFE6F0'/></svg>"); }
.msg { max-width: 86%; padding: .7rem .95rem; border-radius: 18px; font-size: .9rem; line-height: 1.45; opacity: 0; transform: translateY(10px) scale(.98); animation: msgIn .5s var(--spring) forwards; }
@keyframes msgIn { to { opacity: 1; transform: none; } }
.msg--sp { align-self: flex-start; background: var(--paper); color: var(--ink); border-bottom-left-radius: 6px; box-shadow: var(--shadow-sm); }
.msg--user { align-self: flex-end; background: #DCF5E5; color: #0F3A24; border-bottom-right-radius: 6px; }
.msg--typing { display: inline-flex; gap: 4px; padding: .8rem 1rem; }
.msg--typing i { width: 7px; height: 7px; border-radius: 50%; background: #B0B8BF; animation: bounce 1.2s ease-in-out infinite; }
.msg--typing i:nth-child(2) { animation-delay: .15s; } .msg--typing i:nth-child(3) { animation-delay: .3s; }
@keyframes bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-5px); } }
.msg time { display: block; font-size: .66rem; opacity: .55; margin-top: .25rem; text-align: right; }
.phone__footer { padding: .9rem 1.1rem 1.1rem; border-top: 1px solid var(--line); background: var(--paper); }
.phone__footer .btn { width: 100%; opacity: .35; pointer-events: none; transition: opacity .6s; }
.phone.is-done .phone__footer .btn { opacity: 1; pointer-events: auto; }
.hero__stamp { position: absolute; left: 0; bottom: 8%; transform: rotate(-6deg); background: var(--paper); border: 1.5px dashed var(--sky); border-radius: 14px; padding: .6rem 1rem; text-align: center; line-height: 1.1; box-shadow: var(--shadow); animation: floaty 6s ease-in-out infinite; }
.hero__stamp span { display: block; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sky-6); font-weight: 600; }
.hero__stamp strong { font-family: var(--display); font-size: 1.3rem; color: var(--navy); }
@keyframes floaty { 50% { translate: 0 -8px; } }

/* Fases (horizontal) — palco azul-marinho da Aurora */
.fases { position: relative; background: radial-gradient(120% 120% at 50% 0%, var(--navy-2) 0%, var(--navy-9) 60%); color: #fff; height: calc(var(--n, 5) * 70vh + 100vh); }
.fases__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; justify-content: center; gap: clamp(1.5rem, 3vw, 3rem); }
.fases__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; }
.fases h2 { color: #fff; }
.fases h2 em { background: linear-gradient(90deg, #9FD3EA, #fff); -webkit-background-clip: text; background-clip: text; }
.fases__progress { width: 220px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .15); overflow: hidden; flex: none; }
.fases__progress span { display: block; height: 100%; width: 0; background: #9FD3EA; }
.fases__track { display: flex; gap: 1.4rem; padding-left: max(var(--gutter), (100vw - var(--container)) / 2); will-change: transform; width: max-content; }
.fase { width: 400px; flex: none; padding: 1.8rem; border-radius: var(--r-lg); background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(10px); display: flex; flex-direction: column; gap: .8rem; min-height: 380px; position: relative; overflow: hidden; transition: transform .5s var(--ease), border-color .4s, background .4s; }
.fase:hover { transform: translateY(-6px); border-color: rgba(159, 211, 234, .6); background: rgba(255, 255, 255, .1); }
.fase__idade { font-family: var(--display); font-weight: 800; font-size: 4rem; line-height: .9; letter-spacing: -.05em; background: linear-gradient(90deg, #9FD3EA, #fff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fase__icon { position: absolute; right: 1.4rem; top: 1.4rem; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(255, 255, 255, .1); color: #9FD3EA; }
.fase h3 { color: #fff; font-size: 1.5rem; }
.fase p { color: rgba(255, 255, 255, .74); }
.fase__chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.fase__chips span { font-size: .74rem; font-weight: 600; padding: .35rem .7rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .22); color: #fff; }
.fase--cta { background: #fff; border-color: transparent; justify-content: center; }
.fase--cta h3 { color: var(--navy); } .fase--cta p { color: var(--muted); }
.fase--cta .btn { align-self: flex-start; }
/* No hover o card branco assume o visual dos demais (vidro azul, texto branco e azul-claro) */
.fase--cta h3, .fase--cta p { transition: color .4s; }
.fase--cta:hover { background: rgba(255, 255, 255, .1); border-color: rgba(159, 211, 234, .6); }
.fase--cta:hover h3 { color: #fff; }
.fase--cta:hover p { color: #9FD3EA; }
.fase--cta:hover .btn--navy { background: #fff; color: var(--navy); }
.fases__hint { width: min(var(--container), 100% - 2 * var(--gutter)); margin-inline: auto; font-size: .8rem; color: rgba(255, 255, 255, .55); display: flex; align-items: center; gap: .4rem; }
.fases__hint .ico { animation: nudge 1.6s ease-in-out infinite; }
@keyframes nudge { 50% { transform: translateX(6px); } }

/* Diagnóstico */
.diag { padding: clamp(80px, 10vw, 140px) 0; background: linear-gradient(180deg, var(--tint) 0%, var(--bg) 100%); }
.diag__card { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; }
.diag__left { padding: clamp(1.6rem, 3vw, 2.8rem); display: flex; flex-direction: column; gap: 1.4rem; }
.diag__meta { display: flex; justify-content: space-between; align-items: center; font-family: var(--display); font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.diag__dots { display: flex; gap: .35rem; }
.diag__dots i { width: 22px; height: 4px; border-radius: 4px; background: var(--sky-1); transition: background .4s; }
.diag__dots i.is-done { background: var(--sky); }
.diag__dots i.is-now { background: var(--navy); }
.diag__q h3 { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); margin-bottom: 1.2rem; animation: qIn .5s var(--ease); }
@keyframes qIn { from { opacity: 0; transform: translateY(10px); } }
.opts { display: grid; gap: .6rem; }
.opt { text-align: left; padding: 1rem 1.2rem; border-radius: 16px; border: 1.5px solid var(--line); background: var(--bg); font-weight: 500; display: flex; align-items: center; justify-content: space-between; gap: 1rem; transition: border-color .3s, background .3s, transform .3s var(--ease); animation: qIn .5s var(--ease) both; animation-delay: calc(var(--i) * 60ms); }
.opt:hover { border-color: var(--sky); background: var(--sky-1); transform: translateX(4px); }
.opt.is-selected { border-color: var(--navy); background: var(--navy); color: #fff; }
.opt .ico { width: 22px; height: 22px; opacity: 0; transition: opacity .3s; }
.opt.is-selected .ico { opacity: 1; }
.diag__nav { display: flex; gap: .6rem; margin-top: auto; }
.diag__right { background: linear-gradient(160deg, var(--sky-1), var(--paper)); padding: clamp(1.6rem, 3vw, 2.8rem); display: grid; place-items: center; border-left: 1px solid var(--line); }
.shield { width: 100%; max-width: 360px; text-align: center; }
.shield__svg { width: 100%; height: auto; }
.shield__ghost { fill: rgba(4, 58, 88, .08); }
.shield__svg rect[id^="fill"] { transition: height .9s var(--ease), y .9s var(--ease); }
.shield__label { font: 600 12px var(--display); fill: var(--muted); letter-spacing: .06em; text-transform: uppercase; }
.shield__caption { font-size: .9rem; margin-top: .6rem; }
.result { display: grid; gap: 1rem; animation: qIn .6s var(--ease); }
.result h3 { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); }
.result ol { display: grid; gap: .6rem; }
.result li { display: grid; grid-template-columns: 34px 1fr; gap: .8rem; align-items: start; padding: .9rem 1rem; border-radius: 14px; background: var(--bg); border: 1px solid var(--line); }
.result li b { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-family: var(--display); font-size: .85rem; background: var(--navy); color: #fff; }
.result li:first-child b { background: linear-gradient(135deg, var(--sky), var(--sky-6)); }
.result li strong { display: block; color: var(--navy); }
.result li span { font-size: .88rem; color: var(--muted); }
.result__notes { font-size: .88rem; padding: .8rem 1rem; border-radius: 12px; background: var(--sky-1); color: var(--navy); }
.result__actions { display: flex; flex-wrap: wrap; gap: .6rem; }

/* Pilares flip — vira SOMENTE por clique */
.pilares { padding: clamp(60px, 8vw, 110px) 0; }
.flips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; perspective: 1400px; }
.flips .flip { position: relative; min-height: 400px; transform-style: preserve-3d; transition: transform .9s var(--spring), opacity .9s var(--ease); }
.flips .flip.is-flipped { transform: rotateY(180deg); } /* especificidade maior que [data-reveal].is-in */
/* A face oculta não recebe cliques (evita o botão da frente interceptar o verso) */
.flip.is-flipped .flip__front, .flip:not(.is-flipped) .flip__back { pointer-events: none; }
.flip__face { position: absolute; inset: 0; border-radius: var(--r-lg); padding: 2rem; display: flex; flex-direction: column; gap: .9rem; backface-visibility: hidden; -webkit-backface-visibility: hidden; border: 1px solid var(--line); }
.flip__front { background: var(--paper); box-shadow: var(--shadow); transition: box-shadow .4s, border-color .4s; }
.flip:hover .flip__front { box-shadow: var(--shadow-lg); border-color: var(--sky-2); }
.flip__back { background: linear-gradient(160deg, var(--navy-2), var(--navy-9)); color: #fff; transform: rotateY(180deg); border-color: transparent; }
.flip__icon { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: var(--sky-1); color: var(--navy); }
.flip__icon .ico { width: 26px; height: 26px; }
.flip__tag { font-family: var(--display); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sky-6); }
.flip h3 { font-size: 1.5rem; }
.flip__front p { margin-top: auto; }
.flip__toggle { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .65rem 1.1rem; border-radius: 999px; font-family: var(--display); font-weight: 600; font-size: .85rem; color: var(--navy); background: var(--sky-1); transition: background .3s, color .3s, transform .3s var(--ease); }
.flip__toggle:hover { background: var(--navy); color: #fff; transform: translateY(-2px); }
.flip__toggle .ico { transition: transform .5s var(--ease); }
.flip__toggle:hover .ico { transform: rotate(-180deg); }
.flip__back .flip__toggle { background: rgba(255, 255, 255, .14); color: #fff; }
.flip__back .flip__toggle:hover { background: #fff; color: var(--navy); }
.flip__back h3 { color: #fff; }
.flip__back ul { display: grid; gap: .6rem; }
.flip__back li { display: flex; gap: .6rem; align-items: flex-start; color: rgba(255, 255, 255, .9); }
.flip__back li .ico { color: #9FD3EA; margin-top: .15em; }
.flip__back .btn { background: #fff; color: var(--navy); }
.flip__back .flip__actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }

/* Apólices — carrossel contínuo, setas embaixo */
.apolices { padding: clamp(60px, 8vw, 110px) 0; background: linear-gradient(180deg, var(--tint) 0%, var(--bg) 100%); }
.apolices .section__head { margin-bottom: 2rem; }
.apolices__scroller { overflow: hidden; padding: .6rem 0 1.6rem; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.apolices__track { display: flex; gap: 1.2rem; width: max-content; will-change: transform; }
.apolices__scroller.is-dragging { cursor: grabbing; }
/* Setas laterais, sobre as bordas esmaecidas do carrossel */
.apolices__palco { position: relative; }
.apolices__seta { position: absolute; top: calc(50% - .5rem); z-index: 3; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .92); border: 1.5px solid var(--line); color: var(--navy); box-shadow: var(--shadow); backdrop-filter: blur(8px); transform: translateY(-50%); transition: background .3s, color .3s, border-color .3s, transform .35s var(--ease), box-shadow .3s; }
.apolices__seta--prev { left: max(12px, (100vw - var(--container)) / 2 - 76px); }
.apolices__seta--next { right: max(12px, (100vw - var(--container)) / 2 - 76px); }
.apolices__seta--prev .ico { transform: rotate(180deg); }
.apolices__seta:hover { background: var(--navy); border-color: var(--navy); color: #fff; box-shadow: var(--shadow-lg); }
.apolices__seta--prev:hover { transform: translateY(-50%) translateX(-3px); }
.apolices__seta--next:hover { transform: translateY(-50%) translateX(3px); }
.apolices__seta:active { transform: translateY(-50%) scale(.94); }
.ticket { flex: none; width: 300px; text-align: left; display: flex; flex-direction: column; background: var(--paper); border-radius: 20px; border: 1px solid var(--line); position: relative; transition: transform .5s var(--ease), box-shadow .5s, border-color .4s; box-shadow: var(--shadow-sm); --notch: 14px; }
.ticket:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-color: var(--sky-2); }
.ticket__top { padding: 1.6rem 1.5rem 1.2rem; display: flex; flex-direction: column; gap: .8rem; }
.ticket__num { font-family: var(--display); font-size: .7rem; font-weight: 600; letter-spacing: .14em; color: var(--muted); display: flex; justify-content: space-between; }
.ticket__icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--sky-1); color: var(--navy); transition: transform .45s var(--spring), background .4s, color .4s; }
.ticket:hover .ticket__icon { transform: rotate(-6deg) scale(1.08); background: var(--navy); color: #fff; }
.ticket__icon .ico { width: 24px; height: 24px; }
.ticket h3 { font-size: 1.35rem; }
.ticket__top p { font-size: .9rem; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ticket__cut { position: relative; height: 2px; margin: 0 var(--notch); border-top: 2px dashed var(--line); }
.ticket__cut::before, .ticket__cut::after { content: ""; position: absolute; top: 50%; width: calc(var(--notch) * 2); height: calc(var(--notch) * 2); border-radius: 50%; background: var(--tint); border: 1px solid var(--line); translate: 0 -50%; }
.ticket__cut::before { left: calc(var(--notch) * -2 - 1px); }
.ticket__cut::after { right: calc(var(--notch) * -2 - 1px); }
.ticket__bottom { padding: 1rem 1.5rem 1.3rem; display: flex; justify-content: space-between; align-items: center; font-family: var(--display); font-weight: 600; font-size: .88rem; color: var(--sky-6); }
.ticket__bottom .ico { transition: transform .35s var(--ease); }
.ticket:hover .ticket__bottom .ico { transform: translateX(4px); }
.ticket--destaque { background: linear-gradient(160deg, #fff 0%, var(--sky-1) 100%); }
.ticket__badge { font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); }

/* Cotação por frase */
.frase { padding: clamp(60px, 8vw, 110px) 0; }
.frase__card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(2rem, 4vw, 3.5rem); box-shadow: var(--shadow); }
.frase__text { font-family: var(--display); font-weight: 700; letter-spacing: -.03em; font-size: clamp(1.6rem, 1rem + 2.2vw, 3rem); line-height: 1.35; color: var(--navy); display: flex; flex-wrap: wrap; align-items: center; gap: .3em .5em; }
.frase__select { position: relative; display: inline-flex; align-items: center; }
.frase__select select { appearance: none; -webkit-appearance: none; font-family: var(--display); font-weight: 700; font-size: inherit; color: var(--sky-6); padding: 0 1.4em 0 .3em; border-bottom: 3px solid var(--sky); border-radius: 0; background: transparent; max-width: 60vw; }
.frase__select .ico { position: absolute; right: .2em; pointer-events: none; transform: rotate(90deg); color: var(--sky-6); width: .6em; height: .6em; }
.frase__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }

/* Stories */
.stories { padding: clamp(60px, 8vw, 110px) 0; background: linear-gradient(180deg, var(--tint) 0%, var(--bg) 100%); }
.stories__row { display: flex; gap: 1.6rem; flex-wrap: wrap; }
.story { display: flex; flex-direction: column; align-items: center; gap: .6rem; width: 120px; text-align: center; }
.story__ring { width: 104px; height: 104px; border-radius: 50%; padding: 4px; background: conic-gradient(from 200deg, var(--sky), var(--navy), #9FD3EA, var(--sky)); display: grid; place-items: center; transition: transform .4s var(--spring); animation: ringSpin 8s linear infinite paused; }
.story:hover .story__ring { transform: scale(1.06); animation-play-state: running; }
@keyframes ringSpin { to { rotate: 360deg; } }
.story__inner { width: 100%; height: 100%; border-radius: 50%; background: var(--paper); border: 3px solid var(--bg); display: grid; place-items: center; font-family: var(--display); font-weight: 700; font-size: 1.3rem; color: var(--navy); overflow: hidden; position: relative; }
.story__inner .ico { position: absolute; right: 6px; bottom: 6px; width: 26px; height: 26px; padding: 6px; border-radius: 50%; background: var(--navy); color: #fff; fill: #fff; stroke: none; }
.story strong { font-size: .82rem; display: block; }
.story small { font-size: .72rem; color: var(--muted); }
.story--soon .story__ring { background: var(--line); }
.story--soon .story__inner { color: var(--muted); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.viewer { position: fixed; inset: 0; z-index: 3000; background: rgba(3, 42, 64, .92); display: grid; place-items: center; padding: 1rem; opacity: 0; pointer-events: none; transition: opacity .4s; }
.viewer.is-open { opacity: 1; pointer-events: auto; }
.viewer__card { position: relative; width: min(420px, 100%); aspect-ratio: 9 / 16; max-height: 92vh; border-radius: 28px; overflow: hidden; background: linear-gradient(160deg, var(--navy-2), var(--navy-9)); color: #fff; display: flex; flex-direction: column; padding: 1.2rem; transform: scale(.94); transition: transform .5s var(--spring); }
.viewer.is-open .viewer__card { transform: none; }
.viewer__bars { display: flex; gap: 4px; }
.viewer__bars i { flex: 1; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .3); overflow: hidden; position: relative; }
.viewer__bars i::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.viewer__bars i.is-done::after { transform: scaleX(1); }
.viewer__bars i.is-now::after { animation: bar var(--dur, 6s) linear forwards; }
@keyframes bar { to { transform: scaleX(1); } }
.viewer__head { display: flex; align-items: center; gap: .8rem; margin-top: 1rem; }
.viewer__avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--sky); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .85rem; text-transform: uppercase; font-family: var(--display); }
.viewer__head strong { display: block; font-size: .9rem; }
.viewer__head small { font-size: .74rem; opacity: .7; }
.viewer__head button { margin-left: auto; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; position: relative; z-index: 4; }
.viewer__quote { margin: auto 0; font-family: var(--display); font-weight: 600; font-size: clamp(1.25rem, 4.5vw, 1.7rem); line-height: 1.3; letter-spacing: -.02em; position: relative; z-index: 2; pointer-events: none; }
.viewer__quote::before { content: "“"; color: #9FD3EA; }
.viewer__tag { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; opacity: .6; position: relative; z-index: 2; pointer-events: none; }
.viewer__zone { position: absolute; top: 90px; bottom: 0; width: 50%; z-index: 3; }
.viewer__zone--prev { left: 0; } .viewer__zone--next { right: 0; }

/* Transparência */
.trust { padding: clamp(60px, 8vw, 110px) 0; }
.trust__grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1.4rem; }
.t-card { min-width: 0; padding: clamp(1.8rem, 3vw, 2.8rem); border-radius: var(--r-lg); background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; gap: .8rem; }
.t-card--marco { background: linear-gradient(160deg, var(--sky-1) 0%, var(--paper) 60%); position: relative; overflow: hidden; }
.t-card--marco::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 220px; height: 220px; border-radius: 50%; border: 40px solid rgba(82, 160, 193, .12); }
.t-card__big { font-family: var(--display); font-weight: 800; font-size: clamp(3rem, 12vw, 5.6rem); line-height: .95; color: var(--navy); letter-spacing: -.05em; }
.t-card__big small { font-size: .35em; color: var(--sky); margin-left: .15em; letter-spacing: 0; }
.t-card h3 { font-size: 1.3rem; }
.t-card .tag, .t-card .btn { align-self: flex-start; margin-top: .4rem; }
/* Sinistros por ramo: números grandes + barra dividida que se preenche */
.t-card--sinistros h3 { margin-bottom: .4rem; }
.sinistros__numeros { display: flex; flex-wrap: wrap; gap: 1rem 2.4rem; }
.sinistros__item strong { display: block; font-family: var(--display); font-weight: 800; font-size: clamp(2.6rem, 1.8rem + 3vw, 4.4rem); line-height: .95; letter-spacing: -.05em; color: var(--cor); font-variant-numeric: tabular-nums; }
.sinistros__item strong small { font-size: .4em; margin-left: .1em; letter-spacing: 0; opacity: .7; }
.sinistros__item > span { display: inline-flex; align-items: center; gap: .45rem; margin-top: .45rem; font-weight: 600; font-size: .9rem; color: var(--ink); }
.sinistros__item > span::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--cor); }
.sinistros__barra { display: flex; gap: 4px; height: 14px; border-radius: 999px; overflow: hidden; background: var(--tint); margin: .6rem 0 .4rem; }
.sinistros__barra span { height: 100%; width: 0; background: var(--cor); border-radius: 999px; transition: width 1.6s var(--ease); }
.sinistros__barra span:nth-child(2) { transition-delay: .25s; }
.t-card--sinistros.is-cheio .sinistros__barra span { width: var(--pct); }
.sinistros__fonte { display: block; font-size: .76rem; color: var(--muted); margin-top: auto; padding-top: .4rem; }

/* FAQ chat */
.faq { padding: clamp(60px, 8vw, 110px) 0; background: linear-gradient(180deg, var(--tint) 0%, var(--bg) 100%); }
.faq__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.faq__side { position: sticky; top: calc(var(--header-h) + 20px); }
.faq__side p { margin: 1rem 0 1.6rem; }
.faq__chat { display: flex; flex-direction: column; gap: 1rem; }
.faq__cat { align-self: center; font-family: var(--display); font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); background: var(--paper); border: 1px solid var(--line); padding: .3rem .8rem; border-radius: 999px; margin-top: .4rem; }
.bubble { display: flex; flex-direction: column; gap: .5rem; }
.bubble__q { align-self: flex-end; max-width: 85%; text-align: left; padding: .9rem 1.2rem; border-radius: 20px 20px 6px 20px; background: #DCF5E5; color: #0F3A24; font-weight: 500; display: flex; gap: .8rem; align-items: center; transition: transform .3s var(--ease), box-shadow .3s; }
.bubble__q:hover { transform: translateX(-4px); box-shadow: var(--shadow); }
.bubble__q .ico { flex: none; width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: rgba(15, 58, 36, .1); transition: transform .4s var(--ease); }
.bubble.is-open .bubble__q .ico { transform: rotate(45deg); }
.bubble__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.bubble.is-open .bubble__a { grid-template-rows: 1fr; }
.bubble__a > div { overflow: hidden; }
.bubble__a p { max-width: 85%; padding: .9rem 1.2rem; border-radius: 20px 20px 20px 6px; background: var(--paper); color: var(--ink); box-shadow: var(--shadow-sm); margin-bottom: .2rem; }

/* Contato */
.contact { padding: clamp(60px, 8vw, 110px) 0; }
.contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.contact__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-content: start; }
.c-card { min-width: 0; padding: 1.3rem; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; gap: .5rem; transition: transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.c-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--sky-2); }
.c-card .ico { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--sky-1); color: var(--navy); }
.c-card h4 { font-family: var(--display); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.c-card p, .c-card a { color: var(--ink); font-weight: 500; font-size: .95rem; }
.c-card--wa { grid-column: span 2; background: linear-gradient(135deg, var(--navy-2), var(--navy-9)); color: #fff; border-color: transparent; flex-direction: row; align-items: center; justify-content: space-between; }
.c-card--wa h4 { color: #9FD3EA; }
.c-card--wa strong { display: block; font-family: var(--display); font-size: 1.4rem; }
.c-card--wa p { color: rgba(255, 255, 255, .78); }
.c-card--wa .btn { background: #fff; color: var(--navy); }
.c-card--ig { grid-column: span 2; flex-direction: row; align-items: center; gap: 1rem; background: linear-gradient(135deg, #fff, var(--sky-1)); }
.c-card--ig .ico { background: linear-gradient(135deg, #F58529, #DD2A7B, #8134AF); color: #fff; }
.c-card--ig strong { display: block; color: var(--navy); font-family: var(--display); }
.contact__map { border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); min-height: 360px; background: var(--sky-1); box-shadow: var(--shadow); }
.contact__map iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; filter: saturate(.85); }

/* Footer */
.footer { background: var(--navy-9); color: rgba(255, 255, 255, .78); padding: clamp(48px, 6vw, 72px) 0 1.6rem; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 3rem; padding-bottom: 2.4rem; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.footer__logo { height: 52px; width: auto; margin-bottom: 1rem; }
.footer__grid p { color: rgba(255, 255, 255, .7); max-width: 340px; font-size: .95rem; margin-bottom: 1rem; }
.footer h4 { color: #fff; font-family: var(--display); font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 1rem; }
.footer nav { display: grid; gap: .5rem; align-content: start; }
.footer nav a { color: rgba(255, 255, 255, .75); transition: color .3s, transform .3s; width: fit-content; }
.footer address { font-style: normal; }
.footer address a { color: inherit; transition: color .3s; }
.footer address a:hover { color: #fff; }
.footer nav a:hover { color: #fff; transform: translateX(4px); }
.social { display: flex; gap: .6rem; }
.social a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); display: grid; place-items: center; color: #fff; transition: background .3s, transform .4s var(--spring); }
.social a:hover { background: var(--sky); border-color: var(--sky); transform: translateY(-3px); }
.footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1.4rem; font-size: .8rem; color: rgba(255, 255, 255, .5); }
.footer__bottom p { color: inherit; }
/* Selo VixNegócios (rodape.js, modelo fluxo) */
.footer__vix { padding-top: .8rem; }
/* O selo já desenha a própria linha de topo (degradê); sem isso ficariam duas linhas empilhadas */
.footer:has(#rodape-vix .vxr-rodape) .footer__grid { border-bottom: 0; }
.footer__vix .vxr-rodape { padding-left: 0; padding-right: 0; }
/* O servidor da VixNegócios entrega inter-*.woff2 sem Access-Control-Allow-Origin (CORS bloqueia).
   Trocando a família, o navegador nem pede essas fontes: o selo usa a Inter que o site já carrega do Google Fonts. */
.footer__vix .vxr-rodape, .footer__vix .vxr-rodape * { font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif !important; }
.footer__vix-fallback { font-size: .8rem; color: rgba(255, 255, 255, .5); padding: .6rem 0; }
.footer__vix-fallback a { color: rgba(255, 255, 255, .75); text-decoration: underline; }

/* Modal — centralizado na tela, com cotação online */
.modal { position: fixed; inset: 0; margin: auto; border: 0; padding: 0; border-radius: var(--r-lg); width: min(640px, calc(100% - 2rem)); max-height: min(90vh, 100% - 2rem); background: var(--paper); box-shadow: var(--shadow-lg); color: var(--ink); overflow: auto; }
.modal::backdrop { background: rgba(3, 42, 64, .55); backdrop-filter: blur(6px); }
.modal[open] { animation: modalIn .5s var(--ease); }
@keyframes modalIn { from { opacity: 0; transform: translateY(24px) scale(.98); } }
.modal__close { position: sticky; top: 1rem; float: right; margin: 1rem 1rem 0 0; width: 40px; height: 40px; border-radius: 50%; background: var(--sky-1); color: var(--navy); display: grid; place-items: center; transition: transform .4s var(--spring), background .3s; z-index: 1; }
.modal__close:hover { transform: rotate(90deg); background: var(--sky-2); }
.modal__body { padding: 1rem 2.4rem 2.4rem; display: grid; gap: 1rem; clear: both; }
.modal__icon { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(135deg, var(--sky), var(--navy)); color: #fff; }
.modal__icon .ico { width: 28px; height: 28px; }
.modal__body h2 { font-size: 1.8rem; }
.modal__sub { font-family: var(--display); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sky-6); margin-top: .6rem; display: flex; align-items: center; gap: .5rem; }
.modal__sub::before { content: ""; width: 20px; height: 2px; background: currentColor; border-radius: 2px; }
.modal__quotes { display: flex; flex-wrap: wrap; gap: .6rem; }
.q-link { display: inline-flex; align-items: center; gap: .6rem; padding: .6rem 1rem .6rem .7rem; border-radius: 999px; border: 1.5px solid var(--line); background: var(--paper); font-weight: 600; font-size: .88rem; color: var(--navy); transition: border-color .3s, transform .3s var(--ease), box-shadow .3s; }
.q-link img { height: 24px; width: auto; max-width: 84px; object-fit: contain; }
.q-link .ico { color: var(--sky); width: 1em; height: 1em; transition: transform .3s var(--ease); }
.q-link:hover { border-color: var(--sky); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.q-link:hover .ico { transform: translate(2px, -2px); }
.q-link--parceiro { border-color: rgba(0, 153, 93, .45); background: linear-gradient(135deg, #F1FBF6, #fff); }
.q-link--parceiro em { font-style: normal; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 999px; background: #00995D; color: #fff; }
.q-link--parceiro:hover { border-color: #00995D; }
.q-link--sem-link { padding: .5rem .9rem; cursor: default; background: var(--tint); }
.q-link--sem-link:hover { transform: none; box-shadow: none; border-color: var(--line); }
.q-link--sem-link img { height: 26px; max-width: 96px; }
.modal__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .6rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }

/* Flutuantes */
.wa-float { position: fixed; right: 22px; bottom: 96px; z-index: 900; width: 60px; height: 60px; border-radius: 50%; background: linear-gradient(135deg, #2BD96F, #1FAE58); color: #fff; display: grid; place-items: center; box-shadow: 0 12px 30px -8px rgba(37, 211, 102, .7); transition: transform .4s var(--spring); }
.wa-float::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(37, 211, 102, .5); z-index: -1; animation: ripple 2.4s ease-out infinite; }
@keyframes ripple { 0% { transform: scale(.8); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
.wa-float:hover { transform: scale(1.08); }
.wa-float .ico { width: 30px; height: 30px; }
.wa-float__dot { position: absolute; top: 2px; right: 2px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #fff; background: #B0B8BF; }
.wa-float__dot.is-open { background: #fff; box-shadow: 0 0 0 3px var(--wa); }

/* Reveal */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--delay, 0ms); }
[data-reveal].is-in { opacity: 1; transform: none; }

/* Responsivo */

/* Parceria Seguros Unimed: vitrine escura com a cena "ponte" (pulsos viajam da Souza Pilares à Unimed).
   Toda a cena bate numa cadência única de 3,2 s: 3 pulsos → 3 anéis → 3 passos → selo. */
.ponte { padding: clamp(60px, 8vw, 110px) 0; --un: #00995D; --un-2: #16B56F; --un-soft: #7FE3B2; }
.ponte__card { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; padding: clamp(2rem, 4vw, 3.6rem); border-radius: var(--r-lg); color: rgba(255, 255, 255, .8); background: radial-gradient(120% 140% at 85% 15%, #0B5C86 0%, var(--navy-9) 55%); border: 1px solid rgba(255, 255, 255, .1); box-shadow: var(--shadow-lg); }
.ponte__glow { position: absolute; z-index: -1; right: -10%; top: -20%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(79, 211, 143, .28) 0%, rgba(82, 160, 193, .18) 40%, transparent 70%); filter: blur(30px); animation: ponteGlow 7s ease-in-out infinite alternate; }
@keyframes ponteGlow { from { transform: translate(0, 0) scale(1); } to { transform: translate(-12%, 14%) scale(1.15); } }
.ponte .kicker--light { color: #9FD3EA; }
.ponte__badge { display: inline-flex; align-items: center; padding: .25rem .6rem; border-radius: 999px; background: var(--un); color: #fff; font-size: .68rem; letter-spacing: .1em; }
.ponte h2 { color: #fff; font-size: clamp(1.7rem, 1.2rem + 1.7vw, 2.6rem); }
.ponte h2 em { font-style: normal; background: linear-gradient(90deg, #9FD3EA, var(--un-soft)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ponte__lead { margin-top: 1.1rem; font-size: 1.05rem; max-width: 52ch; color: rgba(255, 255, 255, .86); }
.ponte__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem; }
.ponte__chips li { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border-radius: 999px; font-size: .82rem; font-weight: 600; color: #fff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); transition: background .3s, border-color .3s, transform .3s var(--ease); }
.ponte__chips li:hover { background: rgba(79, 211, 143, .16); border-color: rgba(79, 211, 143, .5); transform: translateY(-2px); }
.ponte__chips .ico { width: 1em; height: 1em; color: var(--un-soft); }
.ponte__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.btn--unimed { background: linear-gradient(135deg, var(--un-2), var(--un)); color: #fff; box-shadow: 0 12px 28px -10px rgba(0, 153, 93, .75); }
.btn--unimed:hover { box-shadow: 0 16px 34px -10px rgba(0, 153, 93, .9); }
.btn--ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .35); }
.btn--ghost-light:hover { box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .75); }
.ponte__fine { margin-top: 1.2rem; font-size: .78rem; color: rgba(255, 255, 255, .55); max-width: 56ch; }
.ponte__fine a { color: #9FD3EA; text-decoration: underline; text-underline-offset: 3px; }

/* Cena */
.ponte__scene { perspective: 1000px; }
.ponte__tilt { position: relative; width: 100%; aspect-ratio: 560 / 360; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; transition: transform .6s var(--ease); }
.ponte__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ponte__fluxo { animation: ponteFluxo 1.2s linear infinite; }
@keyframes ponteFluxo { to { stroke-dashoffset: -32; } }
/* Elementos posicionados no sistema de coordenadas do SVG (560×360) via --x/--y sem unidade */
.ponte__node, .ponte__selo, .ponte__float .chip { position: absolute; left: calc(var(--x) / 560 * 100%); top: calc(var(--y) / 360 * 100%); transform: translate(-50%, -50%) translateZ(var(--z, 0px)); }
.ponte__node { --z: 24px; display: grid; justify-items: center; gap: .5rem; }
.ponte__node img { width: 76px; height: 76px; padding: 12px; border-radius: 50%; object-fit: contain; background: #fff; box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .6), 0 0 0 6px rgba(255, 255, 255, .08); position: relative; }
.ponte__node--sp img { background: linear-gradient(160deg, #fff, #EAF4F9); }
.ponte__node small { font-family: var(--display); font-weight: 600; font-size: .7rem; letter-spacing: .04em; color: #fff; white-space: nowrap; }
.ponte__node--un { --z: 30px; }
.ponte__ring { position: absolute; left: 50%; top: 38px; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; border: 2px solid var(--un-soft); opacity: 0; animation: ponteRing 3.2s ease-out infinite; }
.ponte__ring:nth-child(2) { animation-delay: 1.067s; }
.ponte__ring:nth-child(3) { animation-delay: 2.133s; }
@keyframes ponteRing { 0% { transform: scale(.9); opacity: .9; } 30%, 100% { transform: scale(1.9); opacity: 0; } }
.ponte__selo { --z: 40px; display: inline-flex; align-items: center; gap: .55rem; padding: .55rem .95rem .55rem .6rem; border-radius: 999px; white-space: nowrap; font-size: .78rem; color: #fff; background: rgba(3, 42, 64, .85); border: 1px solid rgba(79, 211, 143, .45); box-shadow: 0 14px 34px -14px rgba(0, 0, 0, .7); backdrop-filter: blur(8px); }
.ponte__selo b { font-weight: 700; }
.ponte__selo .ico { width: 1.5rem; height: 1.5rem; padding: .3rem; border-radius: 50%; background: var(--un); color: #fff; animation: ponteCheck 1.067s ease-out infinite; }
@keyframes ponteCheck { 0% { transform: scale(1); } 12% { transform: scale(1.35); } 40%, 100% { transform: scale(1); } }
.ponte__float .chip { --z: 48px; display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .7rem; border-radius: 999px; font-size: .72rem; font-weight: 600; white-space: nowrap; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); backdrop-filter: blur(6px); animation: ponteFloat 4.2s ease-in-out infinite; animation-delay: var(--d, 0s); }
.ponte__float .chip .ico { width: .9em; height: .9em; color: #9FD3EA; }
@keyframes ponteFloat { 50% { margin-top: -8px; } }
.ponte__passos { display: flex; justify-content: space-between; gap: .6rem; margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, .1); counter-reset: passo; }
.ponte__passos li { flex: none; display: flex; align-items: center; gap: .55rem; font-size: .78rem; white-space: nowrap; font-weight: 600; color: #fff; opacity: .45; animation: ponteStep 3.2s ease-in-out infinite; animation-delay: var(--d, 0s); }
.ponte__passos li::before { counter-increment: passo; content: counter(passo); display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; font-family: var(--display); font-size: .72rem; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .25); }
@keyframes ponteStep { 0% { opacity: .45; } 8%, 30% { opacity: 1; } 48%, 100% { opacity: .45; } }


/* Diagnóstico de proteção: vitrine do app diagnostico.souzapilares.com.br.
   A "janela" é uma prévia que se responde sozinha (roteiro em SP_DATA.diagnosticoApp.demo). */
.diagapp { padding: clamp(80px, 10vw, 140px) 0 clamp(60px, 8vw, 100px); background: linear-gradient(180deg, var(--bg) 0%, var(--tint) 100%); position: relative; overflow: hidden; }
.diagapp::before { content: ""; position: absolute; left: -10%; top: 10%; width: 50vw; height: 50vw; border-radius: 50%; background: radial-gradient(circle, rgba(82, 160, 193, .14), transparent 65%); filter: blur(40px); pointer-events: none; }
.diagapp__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; position: relative; }
.diagapp__novo { display: inline-flex; padding: .25rem .6rem; border-radius: 999px; background: var(--navy); color: #fff; font-size: .66rem; letter-spacing: .1em; }
.diagapp h2 { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.3rem); }
.diagapp h2 em { font-style: normal; background: linear-gradient(90deg, var(--sky-6), var(--sky)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.diagapp__lead { margin-top: 1.1rem; font-size: 1.05rem; color: var(--muted); max-width: 54ch; }
.diagapp__lead b { color: var(--navy); font-weight: 600; }
.diagapp__lista { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1.5rem; }
.diagapp__item { display: flex; align-items: center; gap: .75rem; padding: .75rem .85rem; border-radius: 16px; background: rgba(255, 255, 255, .8); border: 1px solid var(--line); transition: transform .35s var(--ease), border-color .3s, box-shadow .35s; --acento: var(--sky); }
.diagapp__item:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--acento) 55%, var(--line)); box-shadow: var(--shadow); }
.diagapp__item .ico { width: 40px; height: 40px; padding: 10px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, color-mix(in srgb, var(--acento) 80%, #fff), var(--acento)); flex: none; }
.diagapp__item strong { display: block; font-family: var(--display); font-size: .92rem; color: var(--navy); line-height: 1.2; }
.diagapp__item small { display: block; font-size: .74rem; color: var(--muted); margin-top: .1rem; }
.diagapp__item .diagapp__seta { margin-left: auto; width: 1em; height: 1em; padding: 0; background: none; color: var(--acento); transition: transform .35s var(--ease); }
.diagapp__item:hover .diagapp__seta { transform: translateX(4px); }
.diagapp__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.2rem; margin-top: 1.6rem; }
.diagapp__selo { display: inline-flex; align-items: center; gap: .45rem; font-size: .8rem; color: var(--muted); }
.diagapp__selo .ico { width: 1em; height: 1em; color: var(--sky-6); }

/* Prévia (janela) */
.diagapp__previa { perspective: 1200px; }
.diagapp__tilt { position: relative; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transform-style: preserve-3d; transition: transform .6s var(--ease); }
.janela { position: relative; overflow: hidden; border-radius: 22px; background: var(--paper); border: 1px solid rgba(255, 255, 255, .9); box-shadow: var(--shadow-lg), 0 0 0 1px var(--line); }
.janela__barra { display: flex; align-items: center; gap: .4rem; padding: .7rem .9rem; background: var(--tint); border-bottom: 1px solid var(--line); }
.janela__barra i { width: 10px; height: 10px; border-radius: 50%; background: var(--line); }
.janela__barra i:nth-child(1) { background: #F6B2A6; } .janela__barra i:nth-child(2) { background: #F8D59A; } .janela__barra i:nth-child(3) { background: #B6E3C2; }
.janela__url { margin-left: .6rem; flex: 1; display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-size: .74rem; color: var(--muted); font-family: var(--display); font-weight: 500; }
.janela__url .ico { width: .9em; height: .9em; color: var(--sky-6); }
.janela__corpo { display: grid; grid-template-columns: 150px 1fr; min-height: 340px; }
.janela__trilho { padding: 1rem .9rem; background: linear-gradient(180deg, var(--tint), var(--paper)); border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: .7rem; }
.janela__trilho small { font-family: var(--display); font-weight: 600; font-size: .68rem; color: var(--navy); }
.janela__secoes { display: grid; gap: .3rem; }
.janela__secoes li { display: flex; align-items: center; gap: .4rem; font-size: .62rem; color: var(--muted); line-height: 1.25; }
.janela__secoes li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--line); flex: none; }
.janela__secoes li.is-feita::before { background: var(--sky); border-color: var(--sky); }
.janela__secoes li.is-atual { color: var(--navy); font-weight: 600; }
.janela__secoes li.is-atual::before { border-color: var(--sky); box-shadow: 0 0 0 3px rgba(82, 160, 193, .22); }

.mini-simbolo { position: relative; width: 56px; height: 57px; display: grid; place-items: center; }
.mini-simbolo__fantasma, .mini-simbolo__mascara { position: absolute; inset: 0; mask: url("../images/simbolo.png") center / contain no-repeat; -webkit-mask: url("../images/simbolo.png") center / contain no-repeat; }
.mini-simbolo__fantasma { background: var(--sky-2); }
.mini-simbolo__mascara { overflow: hidden; }
.mini-simbolo__liquido { position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: linear-gradient(180deg, #9FD3EA, var(--sky) 55%, var(--navy)); transition: height 1.1s var(--ease); }
.mini-simbolo__liquido::before { content: ""; position: absolute; top: -5px; left: 0; width: 200%; height: 10px; background: radial-gradient(10px 6px at 10px 5px, var(--paper) 60%, transparent 62%) 0 0 / 20px 10px repeat-x; animation: miniOnda 2.6s linear infinite; }
@keyframes miniOnda { to { transform: translateX(-50%); } }
.mini-simbolo b { position: relative; font-family: var(--display); font-weight: 800; font-size: .66rem; color: #fff; text-shadow: 0 1px 6px rgba(4, 58, 88, .6); margin-top: 28%; }

.janela__palco { padding: 1.1rem 1.2rem 1rem; display: flex; flex-direction: column; }
.janela__progresso { height: 3px; border-radius: 3px; background: var(--line); overflow: hidden; margin-bottom: .9rem; }
.janela__progresso span { display: block; height: 100%; width: 0; border-radius: 3px; background: linear-gradient(90deg, var(--sky), var(--sky-6)); transition: width 1s var(--ease); }
.janela__secao { font-family: var(--display); font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sky-6); min-height: 1em; }
.janela__palco h4 { font-size: clamp(1rem, .9rem + .5vw, 1.25rem); line-height: 1.2; margin: .35rem 0 .8rem; min-height: 2.4em; color: var(--navy); }
.janela__palco h4.is-in, .janela__secao.is-in { animation: demoIn .5s var(--ease) both; }
@keyframes demoIn { from { opacity: 0; transform: translateY(8px); } }
.janela__opcoes { display: grid; gap: .4rem; }
.janela__opcao { display: flex; align-items: center; gap: .55rem; padding: .5rem .6rem; border-radius: 11px; border: 1.5px solid var(--line); background: var(--paper); font-size: .78rem; color: var(--ink); opacity: 0; animation: demoIn .5s var(--ease) both; animation-delay: calc(var(--i) * 70ms + 120ms); transition: border-color .3s, background .3s, box-shadow .3s; }
.janela__opcao b { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--line); font-family: var(--display); font-size: .6rem; font-weight: 700; color: var(--muted); flex: none; transition: all .3s; }
.janela__opcao i { margin-left: auto; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: #fff; flex: none; transition: all .3s; }
.janela__opcao i .ico { width: 10px; height: 10px; opacity: 0; transform: scale(.4); transition: all .3s var(--spring); }
.janela__opcao.is-marcada { border-color: var(--sky); background: var(--sky-1); box-shadow: 0 0 0 3px rgba(82, 160, 193, .18); }
.janela__opcao.is-marcada b { background: var(--sky); border-color: var(--sky); color: #fff; }
.janela__opcao.is-marcada i { background: var(--sky); border-color: var(--sky); }
.janela__opcao.is-marcada i .ico { opacity: 1; transform: scale(1); }
.janela__rodape { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: .9rem; font-size: .62rem; color: var(--muted); }
.janela__btn { padding: .35rem .7rem; border-radius: 999px; background: var(--navy); color: #fff; font-family: var(--display); font-weight: 600; font-size: .66rem; }

/* Tela final: PDF gerado e enviado */
.janela__final { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(250, 252, 253, .78); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; pointer-events: none; transition: opacity .5s; }
.janela__final.is-on { opacity: 1; }
.janela__final-cartao { width: min(300px, 86%); padding: 1.3rem 1.3rem 1.1rem; border-radius: 18px; background: var(--paper); box-shadow: var(--shadow-lg); text-align: center; transform: translateY(14px) scale(.96); transition: transform .5s var(--spring); }
.janela__final.is-on .janela__final-cartao { transform: none; }
.janela__pdf { position: relative; width: 50px; height: 62px; margin: 0 auto .9rem; border-radius: 8px; border: 1.5px solid var(--line); background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.janela__pdf i { position: absolute; left: 10px; right: 10px; height: 3px; border-radius: 3px; background: var(--line); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease), background .4s; }
.janela__pdf i:nth-child(1) { top: 16px; } .janela__pdf i:nth-child(2) { top: 26px; } .janela__pdf i:nth-child(3) { top: 36px; width: 60%; }
.janela__final.is-on .janela__pdf i { transform: scaleX(1); }
.janela__final.is-on .janela__pdf i:nth-child(2) { transition-delay: .15s; } .janela__final.is-on .janela__pdf i:nth-child(3) { transition-delay: .3s; }
.janela__final.is-pronto .janela__pdf i { background: var(--sky); }
.janela__etapas { display: grid; gap: .3rem; text-align: left; }
.janela__etapas li { display: flex; align-items: center; gap: .5rem; font-size: .74rem; color: var(--muted); opacity: .5; transition: opacity .3s, color .3s; }
.janela__etapas li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--line); flex: none; transition: all .3s; }
.janela__etapas li.is-ativa { opacity: 1; color: var(--navy); }
.janela__etapas li.is-ativa::before { border-color: var(--sky); border-top-color: transparent; animation: spin 1s linear infinite; }
.janela__etapas li.is-feita { opacity: 1; color: var(--ink); }
.janela__etapas li.is-feita::before { background: var(--sky); border-color: var(--sky); box-shadow: inset 0 0 0 3px var(--paper); }
.janela__protocolo { display: inline-flex; align-items: center; gap: .4rem; margin-top: .9rem; padding: .4rem .8rem; border-radius: 999px; background: var(--tint); border: 1px dashed var(--line); font-size: .7rem; color: var(--muted); opacity: 0; transform: scale(.9); transition: opacity .4s, transform .5s var(--spring); }
.janela__protocolo b { font-family: var(--display); color: var(--navy); letter-spacing: .04em; }
.janela__protocolo .ico { width: 16px; height: 16px; padding: 3px; border-radius: 50%; background: var(--wa); color: #fff; }
.janela__final.is-pronto .janela__protocolo { opacity: 1; transform: none; }

/* Etiquetas flutuantes ao redor da janela */
.diagapp__tag { position: absolute; display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .9); border: 1px solid var(--line); box-shadow: var(--shadow); font-family: var(--display); font-weight: 600; font-size: .74rem; color: var(--navy); white-space: nowrap; transform: translateZ(50px); animation: floaty 4.5s ease-in-out infinite; animation-delay: var(--d, 0s); }
.diagapp__tag .ico { width: 1em; height: 1em; color: var(--sky-6); }
.diagapp__tag--1 { right: -14px; top: 18%; --d: 0s; }
.diagapp__tag--2 { left: -18px; bottom: 22%; --d: 1.4s; }
.diagapp__tag--2 .ico { color: var(--wa); }
.diagapp__tag--3 { right: 6%; bottom: -16px; --d: 2.6s; }

/* Passos */
.diagapp__passos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4rem); counter-reset: dpasso; }
.diagapp__passos li { position: relative; padding: 1.2rem 1.2rem 1.1rem 1.2rem; border-radius: var(--r); background: rgba(255, 255, 255, .75); border: 1px solid var(--line); counter-increment: dpasso; }
.diagapp__passos li::before { content: "0" counter(dpasso); display: block; font-family: var(--display); font-weight: 800; font-size: 1.5rem; letter-spacing: -.04em; color: var(--sky); margin-bottom: .3rem; }
.diagapp__passos strong { display: block; font-family: var(--display); color: var(--navy); margin-bottom: .2rem; }
.diagapp__passos span { font-size: .9rem; color: var(--muted); }

@media (max-width: 1480px) {
    .status { display: none; } /* abre espaço para a logomarca em texto + menu */
}
@media (max-width: 1100px) {
    .nav { display: none; } .burger { display: grid; }
    .header__right .btn span { display: none; } .header__right .btn { width: 42px; height: 42px; padding: 0; border-radius: 50%; }
    .flips { grid-template-columns: 1fr; } .flip { min-height: 340px; }
}
@media (max-width: 900px) {
    :root { --header-h: 76px; }
    .status { display: none; }
    .hero__grid { grid-template-columns: 1fr; }
    .hero__phone { margin-top: 1rem; }
    .hero__stamp { display: none; }
    .how { flex-wrap: wrap; gap: 1rem; }
    .fases { height: auto; }
    .fases__sticky { position: static; height: auto; padding: clamp(56px, 8vw, 80px) 0; }
    .fases__track { overflow-x: auto; scroll-snap-type: x mandatory; padding-right: var(--gutter); width: auto; scrollbar-width: none; transform: none !important; }
    .fase { width: 300px; min-height: 340px; scroll-snap-align: start; }
    .fase__idade { font-size: 3rem; }
    .fases__progress, .fases__hint { display: none; }
    .diag__card, .trust__grid, .faq__grid, .contact__grid, .section__head--split { grid-template-columns: 1fr; }
    .ponte__card { grid-template-columns: 1fr; }
    .diagapp__grid { grid-template-columns: 1fr; }
    .diagapp__previa { max-width: 560px; width: 100%; margin-inline: auto; }
    .diagapp__passos { grid-template-columns: 1fr; gap: .6rem; }
    .ponte__scene { max-width: 560px; margin-inline: auto; width: 100%; }
    .diag__right { border-left: 0; border-top: 1px solid var(--line); }
    .faq__side { position: static; }
    .footer__grid { grid-template-columns: 1fr; gap: 2rem; }
    .frase__select select { max-width: 70vw; }
}
@media (max-width: 600px) {
    .apolices__seta { width: 42px; height: 42px; } .apolices__seta--prev { left: 8px; } .apolices__seta--next { right: 8px; }
    .brand--texto { font-size: 1rem; gap: .5rem; } .brand--texto img { height: 32px; }
    .btn { white-space: normal; text-align: center; }
    .hero__cta .btn, .frase__actions .btn, .result__actions .btn { width: 100%; }
    .diag__card, .frase__card, .fase { min-width: 0; }
    .contact__cards { grid-template-columns: 1fr; }
    .c-card--wa, .c-card--ig { grid-column: span 1; flex-direction: column; align-items: flex-start; }
    .phone { min-height: 520px; }
    .ticket { width: 260px; }
    .stories__row { gap: 1rem; } .story { width: 96px; } .story__ring { width: 84px; height: 84px; }
    .modal__body { padding: .6rem 1.4rem 1.6rem; }
    .ponte__actions .btn { width: 100%; }
    .diagapp__lista { grid-template-columns: 1fr; } .diagapp__actions .btn { width: 100%; }
    .diagapp__tag { display: none; }
    .janela__corpo { grid-template-columns: 1fr; min-height: 0; } .janela__trilho { flex-direction: row; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); padding: .7rem .9rem; } .janela__secoes { display: none; }
    .ponte__node img { width: 60px; height: 60px; padding: 9px; } .ponte__ring { width: 60px; height: 60px; margin: -30px 0 0 -30px; top: 30px; }
    .ponte__node small, .ponte__float .chip { font-size: .62rem; } .ponte__float .chip { padding: .3rem .55rem; }
    .ponte__tilt { aspect-ratio: 560 / 400; } /* um pouco mais de altura: a cena estica junto (SVG com preserveAspectRatio=none) */
    .ponte__float { display: none; } /* chips flutuantes não cabem; os produtos já estão listados acima */
    .ponte__selo { font-size: .68rem; top: calc(var(--y) / 360 * 100% + 16px); } .ponte__passos { flex-direction: column; gap: .5rem; }
}
@media (max-width: 380px) {
    .brand--texto small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    [data-reveal] { opacity: 1; transform: none; }
    .msg { opacity: 1; transform: none; }
    .fases { height: auto; } .fases__sticky { position: static; height: auto; padding: 80px 0; } .fases__track { overflow-x: auto; width: auto; transform: none !important; }
    .ponte__pulsos, .ponte__ring { display: none; }
    .diagapp__tilt { transform: none !important; } .janela__opcao { opacity: 1; } .janela__etapas li { opacity: 1; } .ponte__passos li { opacity: 1; } .ponte__tilt { transform: none !important; }
}
