/* MAPA GLICO — Premium visual layer. Keeps the existing component contracts intact. */
:root {
    --color-primary: #3578f6;
    --color-primary-dark: #1d4ed8;
    --color-primary-light: #eaf2ff;
    --color-secondary: #18b8a6;
    --color-accent: #ff9d6c;
    --color-text-main: #102a43;
    --color-text-muted: #587086;
    --color-bg-body: #f6fafc;
    --color-bg-card: #ffffff;
    --color-border: #dce8ef;
    --color-success: #12a889;
    --color-danger: #df5d68;
    --shadow-sm: 0 4px 14px rgba(16, 42, 67, .05);
    --shadow-md: 0 14px 36px rgba(16, 42, 67, .09);
    --shadow-lg: 0 24px 60px rgba(16, 42, 67, .13);
    --shadow-xl: 0 32px 80px rgba(16, 42, 67, .18);
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 28px;
    --font-family: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html { scroll-padding-top: 90px; }
body { background: var(--color-bg-body); color: var(--color-text-main); }
a { transition: color .2s ease, opacity .2s ease, transform .2s ease; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 2000; padding: 10px 16px; border-radius: 12px; background: #102a43; color: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); color: #fff; }

.top-banner { background: #102a43; color: #e9f7f7; padding: 9px 0; font-size: .75rem; letter-spacing: .01em; }
.top-banner-content { max-width: 1240px; }
.top-banner-link { color: #a9f2df; font-weight: 800; }
.main-header { background: rgba(255,255,255,.88); border-bottom: 1px solid rgba(220,232,239,.8); box-shadow: 0 8px 28px rgba(16,42,67,.04); backdrop-filter: blur(18px); }
.header-container { max-width: 1240px; height: 86px; }
.brand-logo { gap: 11px; }
.logo-mark { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 14px; box-shadow: 0 8px 18px rgba(53,120,246,.18); }
.logo-icon { display: none; }
.logo-title { color: #102a43; font-size: 1.28rem; letter-spacing: -.045em; }
.logo-title strong { color: #3578f6; }
.logo-subtitle { color: #7a91a3; letter-spacing: .12em; font-size: .58rem; }
.nav-links { gap: 1.8rem; }
.nav-link { color: #36536b; font-size: .84rem; font-weight: 700; }
.nav-link:hover { color: #3578f6; }
.nav-actions { gap: .6rem; }
.btn { border-radius: 13px; min-height: 50px; letter-spacing: -.01em; }
.btn-primary { background: linear-gradient(135deg, #3578f6, #255bd0); box-shadow: 0 10px 22px rgba(53,120,246,.2); }
.btn-primary:hover { background: linear-gradient(135deg, #255bd0, #1745b1); box-shadow: 0 14px 28px rgba(53,120,246,.28); }
.btn-outline { border-color: #cbdce7; color: #36536b; background: rgba(255,255,255,.58); }
.btn-outline:hover { border-color: #3578f6; color: #1d4ed8; background: #eaf2ff; }

.hero-section { position: relative; overflow: hidden; padding: 7.2rem 0 6.4rem; background: radial-gradient(circle at 88% 12%, rgba(169,242,223,.38), transparent 28%), radial-gradient(circle at 4% 18%, rgba(204,225,255,.6), transparent 31%), #f6fafc; }
.hero-section::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .42; background-image: linear-gradient(rgba(53,120,246,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(53,120,246,.045) 1px, transparent 1px); background-size: 46px 46px; mask-image: linear-gradient(90deg, #000, transparent 76%); }
.hero-container { position: relative; z-index: 1; max-width: 1240px; grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr); gap: 2rem; }
.hero-content { max-width: 650px; padding-top: 1.5rem; }
.hero-badge { background: rgba(255,255,255,.8); border: 1px solid #cfe9e6; color: #147f75; padding: .55rem .9rem; margin-bottom: 1.7rem; box-shadow: var(--shadow-sm); }
.badge-dot { background: #18b8a6; box-shadow: 0 0 0 5px rgba(24,184,166,.13); }
.hero-title { color: #102a43; font-size: clamp(2.8rem, 5.2vw, 5.1rem); line-height: 1.04; letter-spacing: -.075em; margin-bottom: 1.5rem; }
.text-highlight { color: #3578f6; }
.hero-subtitle { max-width: 590px; color: #587086; font-size: 1.06rem; line-height: 1.8; }
.hero-subtitle strong:first-child { color: #102a43; font-weight: 800; }
.hero-cta-group { gap: .8rem; margin: 2rem 0 1.7rem; }
.hero-cta-group .btn { padding-left: 1.4rem; padding-right: 1.4rem; }
.hero-proof { gap: 1rem 1.4rem; }
.proof-item { color: #587086; font-size: .78rem; }
.proof-icon { color: #18b8a6; font-size: 1rem; }
.hero-visual { min-width: 0; }
.hero-art-wrap { position: relative; width: min(100%, 570px); aspect-ratio: 1 / 1; margin: 0 auto; display: grid; place-items: center; }
.hero-art-wrap::before { content: ''; position: absolute; width: 74%; height: 74%; border-radius: 50%; background: linear-gradient(145deg, rgba(53,120,246,.13), rgba(24,184,166,.18)); filter: blur(4px); }
.hero-art-orbit { position: absolute; border: 1px solid rgba(53,120,246,.18); border-radius: 50%; transform: rotate(-24deg); }
.hero-art-orbit-one { width: 92%; height: 53%; }
.hero-art-orbit-two { width: 63%; height: 90%; border-color: rgba(24,184,166,.2); transform: rotate(42deg); }
.hero-art-image { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 28px 28px rgba(16,42,67,.16)); }
.hero-float-card { position: absolute; z-index: 2; display: flex; align-items: center; gap: .65rem; padding: .85rem 1rem; border: 1px solid rgba(255,255,255,.75); border-radius: 16px; background: rgba(255,255,255,.82); box-shadow: var(--shadow-md); backdrop-filter: blur(16px); color: #102a43; }
.hero-float-card strong, .hero-float-card small { display: block; line-height: 1.25; }
.hero-float-card strong { font-size: .78rem; }
.hero-float-card small { margin-top: .18rem; color: #7790a1; font-size: .65rem; }
.hero-float-card-top { top: 13%; right: -1%; }
.hero-float-card-bottom { right: 4%; bottom: 13%; }
.float-card-dot { width: 10px; height: 10px; border-radius: 50%; background: #18b8a6; box-shadow: 0 0 0 5px rgba(24,184,166,.13); }
.float-card-icon { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 9px; color: #fff; background: #18b8a6; font-weight: 800; }

.contrasts-section { padding: 5.8rem 0; background: #fff; border: 0; }
.contrasts-grid { max-width: 1240px; gap: 1rem; }
.contrast-card { min-height: 260px; padding: 2rem; border: 1px solid #e1edf2; border-radius: 24px; background: linear-gradient(145deg, #fff, #f7fbfc); box-shadow: var(--shadow-sm); }
.contrast-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: #bcd8e5; }
.contrast-card.highlight-border { border-color: #a9e7dc; background: linear-gradient(145deg, #f5fffc, #e9f8f6); }
.contrast-icon-wrap { width: 54px; height: 54px; margin-bottom: 1.5rem; border-radius: 17px; font-size: 1.35rem; box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.icon-blue { color: #3578f6; background: #eaf2ff; }
.icon-green { color: #18a38f; background: #e3faf4; }
.icon-amber { color: #d7793e; background: #fff1e7; }
.contrast-card h2 { max-width: 300px; color: #102a43; font-size: 1.16rem; letter-spacing: -.035em; }
.contrast-card p { color: #6b8293; line-height: 1.7; }

.report-showcase-section { padding: 7rem 0; background: #eef6f8; }
.section-header { margin-bottom: 3.2rem; }
.section-pill { background: #e2f7f3; color: #158b7d; padding: .45rem .8rem; letter-spacing: .12em; font-size: .65rem; }
.section-title { color: #102a43; font-size: clamp(2rem, 3vw, 3rem); letter-spacing: -.06em; }
.section-subtitle { color: #6b8293; line-height: 1.75; }
.report-preview-box { max-width: 1120px; }
.report-sample-card { padding: clamp(1.25rem, 3vw, 2.7rem); border: 1px solid #d9e8ed; border-radius: 30px; box-shadow: var(--shadow-lg); }
.report-logo-text { color: #3578f6; letter-spacing: .14em; }
.patient-name { color: #102a43; letter-spacing: -.025em; }
.report-export-btn { background: #fff0eb; color: #bf684b; border-radius: 10px; }
.report-stats-strip { gap: .7rem; }
.stat-pill { padding: 1rem .7rem; border-color: #e0ecf1; border-radius: 16px; background: #f8fbfc; }
.stat-label { color: #7b91a1; letter-spacing: .02em; }
.stat-val { color: #102a43; }
.report-demo-table { min-width: 850px; }
.report-demo-table caption { margin-bottom: .8rem; color: #7b91a1; font-size: .76rem; text-align: left; }
.report-demo-table th { background: #f0f6f8; color: #36536b; }
.report-demo-table th, .report-demo-table td { border-color: #dce8ef; }
.tag-cell { border-radius: 7px; }
.report-features-list { color: #36536b; }

.steps-section { padding: 7rem 0; background: #fff; }
.steps-grid { max-width: 1020px; gap: 1rem; }
.step-card { padding: 2.4rem 1.5rem 1.8rem; border: 1px solid #e3edf1; border-radius: 24px; background: #fbfdfd; box-shadow: var(--shadow-sm); }
.step-number { top: -17px; width: 35px; height: 35px; border: 5px solid #fff; background: #3578f6; box-shadow: 0 6px 13px rgba(53,120,246,.25); }
.step-icon { color: #18b8a6; font-size: 2.1rem; margin: .7rem 0 1.2rem; }
.step-card h3 { color: #102a43; letter-spacing: -.035em; }
.step-card p { color: #6b8293; line-height: 1.7; }

.mission-section { padding: 7rem 0; background: #102a43; position: relative; overflow: hidden; }
.mission-section::before { content: ''; position: absolute; width: 540px; height: 540px; right: -200px; top: -240px; border-radius: 50%; border: 1px solid rgba(169,242,223,.16); box-shadow: 0 0 0 40px rgba(169,242,223,.025), 0 0 0 90px rgba(169,242,223,.02); }
.mission-box { position: relative; z-index: 1; max-width: 1120px; }
.mission-title { color: #fff; font-size: clamp(2rem, 3.8vw, 3.45rem); letter-spacing: -.07em; }
.mission-text p { color: #b9ced9; }
.founder-badge { border: 1px solid rgba(169,242,223,.15); background: rgba(255,255,255,.06); }
.avatar-circle { background: linear-gradient(145deg, #18b8a6, #3578f6); }
.founder-badge strong { color: #fff; }
.founder-badge span { color: #9db5c3; }
.mission-pillars { gap: .8rem; }
.pillar-item { padding: 1.25rem 1.35rem; border-color: rgba(169,242,223,.15); background: rgba(255,255,255,.055); }
.pillar-item h3 { color: #a9f2df; }
.pillar-item p { color: #9db5c3; line-height: 1.65; }

.faq-section { padding: 7rem 0; background: #f6fafc; }
.faq-container { max-width: 860px; }
.faq-accordion { gap: .7rem; }
.faq-item { border-color: #dce8ef; border-radius: 17px; background: #fff; box-shadow: 0 4px 12px rgba(16,42,67,.025); }
.faq-item.active { border-color: #9edfd5; box-shadow: 0 10px 26px rgba(24,184,166,.08); }
.faq-question { padding: 1.3rem 1.4rem; color: #102a43; font-size: .96rem; }
.faq-arrow { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; color: #3578f6; background: #eaf2ff; font-size: 1.1rem; }
.faq-answer { padding: 0 1.4rem 1.4rem; color: #6b8293; line-height: 1.75; }

.final-cta-section { padding: 6.5rem 0; background: #fff; color: #102a43; }
.cta-box { max-width: 850px; padding: 4.2rem 2rem; border-radius: 32px; background: linear-gradient(135deg, #102a43, #17446b); box-shadow: var(--shadow-xl); overflow: hidden; position: relative; }
.cta-box::before { content: ''; position: absolute; width: 320px; height: 320px; right: -130px; top: -140px; border: 1px solid rgba(169,242,223,.2); border-radius: 50%; box-shadow: 0 0 0 30px rgba(169,242,223,.03), 0 0 0 70px rgba(169,242,223,.025); }
.cta-box > * { position: relative; z-index: 1; }
.cta-title { color: #fff; font-size: clamp(2rem, 3.6vw, 3rem); letter-spacing: -.06em; }
.cta-subtitle { color: #b9ced9; }
.cta-note { color: #a9f2df; }

.main-footer { padding: 5rem 0 2rem; background: #0b2033; color: #92abbc; }
.footer-grid { max-width: 1240px; }
.footer-logo .logo-image { width: 190px; height: auto; padding: 5px 8px; border-radius: 12px; background: #fff; }
.footer-logo .logo-title { color: #fff; }
.footer-description { max-width: 330px; color: #92abbc; line-height: 1.7; }
.footer-heading { color: #fff; letter-spacing: -.02em; }
.footer-links a { color: #92abbc; }
.footer-links a:hover { color: #a9f2df; }
.pix-donation-dialog { border-radius: 16px; } }
.badge-sus, .badge-lgpd { background: #17364f; }
.footer-divider { border-top-color: #1a3850; }
.medical-disclaimer, .copyright { color: #6f8a9c; }

.legal-page-header { padding: 5rem 0 3.4rem; background: radial-gradient(circle at 80% 20%, rgba(24,184,166,.26), transparent 28%), #102a43; }
.legal-title { color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.07em; }
.legal-meta { color: #a9c0cc; }
.legal-container { padding-top: 3.5rem; }
.legal-card { border: 1px solid #dce8ef; border-radius: 28px; box-shadow: var(--shadow-md); }
.legal-section h2 { color: #102a43; border-bottom-color: #e5eff2; letter-spacing: -.035em; }
.legal-section p, .legal-section li { color: #587086; }
.alert-box-legal, .alert-box-legal-green { border-radius: 15px; }

.auth-container, .auth-container-narrow { min-height: calc(100vh - 360px); padding: 5rem 1.25rem; background: radial-gradient(circle at 10% 10%, rgba(204,225,255,.55), transparent 35%), #f6fafc; }
.auth-box, .consent-card { max-width: 560px; padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid #dce8ef; border-radius: 28px; box-shadow: var(--shadow-lg); }
.auth-header, .consent-header { margin-bottom: 2rem; }
.auth-title { color: #102a43; font-size: 2rem; letter-spacing: -.055em; }
.auth-title strong { color: #3578f6; }
.auth-subtitle { color: #71899a; }
.auth-icon, .lock-icon { display: inline-grid; place-items: center; width: 60px; height: 60px; margin-bottom: 1rem; border-radius: 20px; color: #fff; background: linear-gradient(145deg, #3578f6, #18b8a6); font-size: 0; box-shadow: 0 13px 25px rgba(53,120,246,.2); }
.auth-icon::after { content: ''; width: 32px; height: 32px; background: url('/assets/img/logo-mark.svg') center / contain no-repeat; filter: brightness(0) invert(1); }
.lock-icon::after { content: '✓'; font-size: 1.6rem; font-weight: 800; }
.form-group label { color: #36536b; }
.form-input { height: 52px; border-color: #d6e4eb; border-radius: 13px; background: #fbfdfe; }
.form-input:focus { border-color: #3578f6; box-shadow: 0 0 0 4px rgba(53,120,246,.12); background: #fff; }
.custom-checkbox { color: #587086; }
.checkmark { flex: 0 0 20px; }
.terms-scroll-box { border-color: #dce8ef; border-radius: 14px; background: #f7fbfc; }
.auth-footer a, .forgot-link { color: #3578f6; }

/* Contraste AA para textos auxiliares e dados do relatório. */
.logo-subtitle { color: #486581; }
.section-pill:not(.pill-white) { color: #0b665b; }
.section-subtitle, .hero-float-card small, .contrast-card p, .step-card p, .faq-answer { color: #486581; }
.report-logo-text { color: #2459c7; }
.report-export-btn { color: #8f3f2c; }
.stat-label, .report-demo-table caption { color: #486581; }
.stat-val.text-success { color: #087a66 !important; }
.stat-val.text-danger { color: #b83344 !important; }
.stat-pill .text-success small { color: #087a66; }
.stat-pill .text-danger small { color: #b83344; }
.pillar-item h3 { color: #a9f2df; font-size: 1.05rem; margin-bottom: .4rem; }
.medical-disclaimer, .copyright { color: #9db5c3; }

@media (max-width: 992px) {
    .hero-section { padding-top: 5.5rem; }
    .hero-container { grid-template-columns: 1fr; }
    .hero-content { max-width: 760px; margin: 0 auto; text-align: center; }
    .hero-subtitle { margin-left: auto; margin-right: auto; }
    .hero-cta-group, .hero-proof { justify-content: center; }
    .hero-art-wrap { max-width: 520px; margin-top: 1rem; }
    .mission-box { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .top-banner-content { justify-content: center; text-align: center; }
    .header-container { height: 74px; }
    .main-nav { top: 74px; border-radius: 0 0 22px 22px; padding: 1.3rem; }
    .hero-section { padding: 4.6rem 0 4.5rem; }
    .hero-title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .hero-cta-group { flex-direction: column; align-items: stretch; }
    .hero-cta-group .btn { width: 100%; }
    .hero-proof { gap: .7rem 1rem; }
    .hero-art-wrap { width: min(100%, 440px); }
    .hero-float-card { transform: scale(.86); }
    .hero-float-card-top { right: -3%; }
    .hero-float-card-bottom { right: 0; }
    .contrasts-section, .report-showcase-section, .steps-section, .mission-section, .faq-section { padding: 4.8rem 0; }
    .report-sample-card { padding: 1rem; border-radius: 22px; }
    .report-stats-strip { grid-template-columns: repeat(2, 1fr); }
    .report-features-list { flex-direction: column; align-items: flex-start; }
    .cta-box { padding: 3.2rem 1.3rem; border-radius: 24px; }
    .footer-grid { gap: 2.4rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.donation-page-section { padding: clamp(3rem, 7vw, 6rem) 0; background: radial-gradient(circle at 85% 12%, rgba(24,184,166,.10), transparent 26%), #f6fafc; }
.donation-page-container { max-width: 980px; }
.donation-page-header { max-width: 720px; margin: 0 auto 2rem; text-align: center; }
.donation-page-title { margin: .6rem 0 1rem; color: #102a43; font-size: clamp(2.2rem, 5vw, 3.5rem); letter-spacing: -.06em; line-height: 1.08; }
.donation-page-lead { color: #486581; font-size: 1.06rem; line-height: 1.75; }
.donation-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; padding: clamp(1.4rem, 4vw, 2.6rem); border: 1px solid #dce8ef; border-radius: 26px; background: #fff; box-shadow: var(--shadow-lg); }
.donation-card-copy h2 { margin: .35rem 0 1rem; color: #102a43; font-size: clamp(1.45rem, 3vw, 2rem); letter-spacing: -.04em; }
.donation-card-copy > p { color: #486581; }
.donation-form { display: grid; gap: .75rem; margin-top: 1.5rem; }
.donation-form label, .donation-result label { color: #102a43; font-weight: 700; }
.donation-form input { width: 100%; min-height: 54px; padding: 12px 15px; border: 1px solid #c8d6e3; border-radius: 12px; color: #102a43; background: #fff; font: inherit; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.donation-form input:focus, .donation-form input:focus-visible { outline: 2px solid rgba(53,120,246,.3); border-color: #3578f6; }
.donation-form small { color: #587087; line-height: 1.5; }
.donation-form button { justify-self: start; margin-top: .5rem; }
.donation-result { display: grid; justify-items: center; gap: .85rem; padding: 1.2rem; border-radius: 18px; background: #f5f9fc; text-align: center; }
.donation-result[hidden] { display: none; }
.donation-result canvas { width: min(100%, 260px); height: auto; image-rendering: pixelated; border: 8px solid #fff; box-shadow: 0 0 0 1px #dce7f0; }
.donation-result p { margin: 0; color: #486581; }
.donation-result label, .donation-result textarea { width: 100%; text-align: left; }
.donation-result textarea { box-sizing: border-box; min-height: 96px; resize: vertical; overflow-wrap: anywhere; font-size: 12px; }
.donation-result button { width: 100%; }
.donation-status { min-height: 1.4em; margin: .8rem 0 0; color: #155c48; font-weight: 700; }
.donation-unavailable { display: block; text-align: center; }
@media (max-width: 760px) { .donation-card { grid-template-columns: minmax(0,1fr); } .donation-form button { width: 100%; } }