.home-hero { position: relative; overflow: hidden; padding-block: clamp(4rem, 8vw, 7.6rem); background: var(--navy-deep); color: #d5e5ec; }
.home-hero::before { content: ''; position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to right, transparent 0%, #000 45%, #000 100%); }
.home-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(24rem, .92fr); gap: var(--space-5); align-items: center; }
.home-hero h1 { color: #fff; }
.home-hero__lead { max-width: 48rem; color: #bad0da; font-size: var(--step-1); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 2rem; color: #a9c2cd; font-size: .9rem; }
.hero-proof span { display: inline-flex; align-items: center; gap: .4rem; }
.hero-network { position: relative; min-height: 31rem; }
.network-core { position: absolute; left: 50%; top: 50%; z-index: 3; display: grid; place-items: center; width: 10.5rem; height: 10.5rem; transform: translate(-50%, -50%); border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: #163d57; box-shadow: 0 0 0 1.2rem rgba(255,255,255,.035), 0 0 0 2.4rem rgba(255,255,255,.02); text-align: center; }
.network-core strong { color: #fff; font-size: 1.05rem; }
.network-core span { max-width: 8rem; color: #9fc1cf; font-size: .78rem; }
.network-node { position: absolute; z-index: 2; width: 9.5rem; padding: .8rem; border: 1px solid rgba(255,255,255,.2); background: rgba(14,45,66,.88); box-shadow: 0 12px 35px rgba(0,0,0,.16); }
.network-node strong { display: block; color: #fff; font-size: .9rem; }
.network-node span { display: block; margin-top: .2rem; color: #9fc1cf; font-size: .72rem; line-height: 1.35; }
.network-node--search { left: 2%; top: 9%; }
.network-node--maps { right: 2%; top: 9%; }
.network-node--site { left: 1%; bottom: 8%; }
.network-node--reviews { right: 0; bottom: 9%; }
.network-node--gemini { left: 50%; top: 0; transform: translateX(-50%); border-color: rgba(199,139,43,.7); }
.network-line { position: absolute; left: 50%; top: 50%; width: 42%; height: 1px; transform-origin: left; background: linear-gradient(90deg, rgba(117,193,212,.7), transparent); }
.network-line--1 { transform: rotate(-145deg); }
.network-line--2 { transform: rotate(-35deg); }
.network-line--3 { transform: rotate(145deg); }
.network-line--4 { transform: rotate(35deg); }
.network-line--5 { width: 31%; transform: rotate(-90deg); }
.profile-anatomy { position: relative; padding: 1rem; border: 1px solid var(--border); background: #fff; box-shadow: var(--shadow-md); }
.profile-anatomy__top { height: 6.2rem; background: linear-gradient(120deg, #d7e7ec, #eef3f4); }
.profile-anatomy__body { padding: 1.2rem; }
.profile-anatomy__title { width: 64%; height: 1.1rem; background: var(--ink-strong); }
.profile-anatomy__rating { width: 38%; height: .65rem; margin-top: .8rem; background: var(--accent); }
.profile-anatomy__actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: 1.4rem 0; }
.profile-anatomy__actions span { height: 3rem; border: 1px solid var(--border); background: var(--surface-soft); }
.profile-anatomy__line { height: .6rem; margin-top: .55rem; background: #dbe3e7; }
.profile-anatomy__line:nth-child(2n) { width: 82%; }
.anatomy-label { position: absolute; display: flex; align-items: center; gap: .4rem; padding: .38rem .55rem; background: var(--navy); color: #fff; font-size: .7rem; font-weight: 750; box-shadow: var(--shadow-sm); }
.anatomy-label::before { content: ''; width: .42rem; height: .42rem; border-radius: 50%; background: var(--accent); }
.anatomy-label--1 { right: -1rem; top: 2rem; }
.anatomy-label--2 { left: -1rem; top: 9.2rem; }
.anatomy-label--3 { right: -1.2rem; bottom: 4rem; }
.ecosystem-map { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 2rem; min-height: 24rem; border: 1px solid rgba(255,255,255,.15); }
.ecosystem-map::before, .ecosystem-map::after { content: ''; position: absolute; background: rgba(159,210,223,.22); }
.ecosystem-map::before { left: 50%; top: 10%; bottom: 10%; width: 1px; }
.ecosystem-map::after { top: 50%; left: 10%; right: 10%; height: 1px; }
.ecosystem-map__item { position: relative; z-index: 1; align-self: center; padding: 1rem; border: 1px solid rgba(255,255,255,.16); background: #153850; }
.ecosystem-map__item strong { display: block; color: #fff; }
.ecosystem-map__item span { color: #9eb8c5; font-size: .84rem; }
.ecosystem-map__item--center { grid-column: 2; grid-row: 2; border-color: var(--accent); background: #1c465f; text-align: center; }
.ai-brief { display: grid; grid-template-columns: .85fr 1.15fr; gap: var(--space-5); align-items: start; }
.ai-brief__marker { position: sticky; top: 9rem; padding: var(--space-4); background: var(--accent-soft); }
.ai-brief__marker strong { display: block; margin-bottom: .8rem; font-family: var(--font-serif); font-size: var(--step-2); line-height: 1.35; }
.ai-brief__items { border-top: 2px solid var(--ink-strong); }
.ai-brief__item { display: grid; grid-template-columns: 3.5rem 1fr; gap: 1rem; padding: 1.35rem 0; border-bottom: 1px solid var(--border); }
.ai-brief__item .icon { width: 2rem; height: 2rem; color: var(--primary-dark); }
.ai-brief__item h3 { margin: 0 0 .25rem; }
.ai-brief__item p { margin: 0; color: var(--muted); }
.service-dossier { display: grid; grid-template-columns: 17rem 1fr; border: 1px solid var(--border); }
.service-dossier__index { padding: var(--space-3); background: var(--navy); color: #b9cdd7; }
.service-dossier__index h3 { color: #fff; }
.service-dossier__index ul { list-style: none; padding: 0; margin: 0; }
.service-dossier__index li { padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.service-dossier__body { display: grid; grid-template-columns: repeat(2, 1fr); }
.service-dossier__item { padding: var(--space-3); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.service-dossier__item:nth-child(2n) { border-right: 0; }
.service-dossier__item:nth-last-child(-n+2) { border-bottom: 0; }
.service-dossier__item .icon { width: 1.7rem; height: 1.7rem; margin-bottom: 1rem; color: var(--primary-dark); }
.service-dossier__item p { color: var(--muted); }
.audience-list { border-top: 3px solid var(--ink-strong); }
.audience-item { display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(0, 1.3fr); gap: var(--space-3); padding: 1.25rem .4rem; border-bottom: 1px solid var(--border); }
.audience-item strong { font-size: 1.05rem; }
.audience-item span { color: var(--muted); }
.editorial-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.editorial-item { min-height: 12rem; padding: var(--space-3); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); text-decoration: none; }
.editorial-item:hover { background: var(--surface-soft); }
.editorial-item span { display: block; margin-bottom: 1.8rem; color: var(--accent); font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.editorial-item strong { display: block; margin-bottom: .55rem; font-size: 1.22rem; }
.editorial-item p { color: var(--muted); }
.authority-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: var(--space-5); align-items: center; padding: var(--space-5); background: var(--surface-warm); border-block: 1px solid var(--border); }
.authority-mark { display: grid; place-items: center; min-height: 18rem; border: 1px solid var(--border); background: #fff; }
.authority-mark strong { font-family: var(--font-serif); font-size: var(--step-3); text-align: center; }
.authority-points { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: var(--space-3); }
.authority-points div { padding-top: 1rem; border-top: 2px solid var(--primary); }
.section--sources { padding-top: var(--space-5); background: #fff; }
.page-content-section { padding-block: var(--space-5); }
.page-content-section + .page-content-section { border-top: 1px solid var(--border); }
.page-content-section .content-narrow > p { color: var(--muted); }
.page-content-section__intro { max-width: 50rem; margin-bottom: var(--space-3); }
.page-content-section__intro p { color: var(--muted); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-field { display: grid; gap: .4rem; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { color: var(--ink-strong); font-weight: 730; }
.form-field input, .form-field select, .form-field textarea { width: 100%; padding: .82rem .9rem; border: 1px solid var(--border-strong); border-radius: .45rem; background: #fff; color: var(--ink); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--primary); outline: 3px solid var(--primary-soft); }
.form-field small { color: var(--muted); }
.form-consent { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: .7rem; }
.form-consent input[type="checkbox"] { width: 1.15rem; height: 1.15rem; margin-top: .28rem; padding: 0; accent-color: var(--primary); }
.form-consent label { font-weight: 520; line-height: 1.55; }
.form-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1rem; }
.form-status { padding: 1rem; margin-bottom: 1.25rem; border-left: 4px solid var(--primary); background: var(--primary-soft); }
.form-status--error { border-color: var(--danger); background: var(--danger-soft); }
.contact-main .section-lead { max-width: var(--reading); }
.contact-card { padding-block: var(--space-5); background: var(--navy); color: #d8e5eb; }
.contact-card h2, .contact-card h3 { color: #fff; }
.contact-card a { color: #fff; }
.contact-options { display: grid; gap: 1px; margin-top: 1.5rem; background: rgba(255,255,255,.14); }
.contact-option { padding: 1rem; background: var(--navy); }
.contact-option strong { display: block; color: #fff; }
.policy-date { display: inline-block; margin-bottom: 2rem; padding: .35rem .6rem; background: var(--surface-soft); color: var(--muted); font-size: .82rem; }
.sitemap-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.sitemap-group { padding: var(--space-3); border-top: 3px solid var(--primary); background: var(--surface-soft); }
.sitemap-group ul { margin-bottom: 0; }
.error-hero { min-height: 62vh; display: grid; place-items: center; text-align: center; }
.error-code { color: var(--primary); font-family: var(--font-serif); font-size: clamp(5rem, 15vw, 11rem); line-height: .8; }

/* =========================================================
   GBPExpert 2026 — presença local
   ========================================================= */
.local-hero { position: relative; overflow: hidden; padding-block: clamp(4rem, 6.8vw, 6.4rem); background: #f8faf9; border-bottom: 1px solid var(--border); }
.local-hero::before { content: ''; position: absolute; right: -14rem; top: -18rem; width: 43rem; height: 43rem; border: 1px solid rgba(23,111,132,.16); border-radius: 50%; box-shadow: 0 0 0 5rem rgba(23,111,132,.035), 0 0 0 10rem rgba(23,111,132,.025); }
.local-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(25rem, .88fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.local-hero__content { max-width: 57rem; }
.local-hero h1 { max-width: 16ch; margin-bottom: 1.3rem; font-size: clamp(3.1rem, 5.4vw, 6.35rem); line-height: .96; letter-spacing: -.055em; }
.local-hero h1 em { color: var(--primary-dark); font-style: normal; }
.local-hero__lead { max-width: 47rem; margin-bottom: 0; color: var(--muted); font-size: clamp(1.08rem, 1rem + .42vw, 1.35rem); }
.local-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }
.local-hero__map { position: relative; min-height: 31rem; }
.local-core { position: absolute; left: 50%; top: 50%; z-index: 5; display: grid; place-items: center; width: 12rem; height: 12rem; transform: translate(-50%,-50%); border: 1px solid rgba(23,111,132,.35); border-radius: 50%; background: var(--navy-deep); color: #fff; box-shadow: 0 0 0 1.6rem rgba(23,111,132,.06), 0 0 0 3.3rem rgba(23,111,132,.035); text-align: center; }
.local-core span { color: #9acbd5; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.local-core strong { color: #fff; font-family: var(--font-serif); font-size: 2.35rem; font-weight: 500; }
.local-signal { position: absolute; z-index: 4; width: 11.2rem; padding: .85rem 1rem; border-top: 2px solid var(--primary); background: #fff; box-shadow: var(--shadow-sm); }
.local-signal::after { content: ''; position: absolute; top: 50%; width: 4.5rem; height: 1px; background: rgba(23,111,132,.28); }
.local-signal span { display: block; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.local-signal strong { display: block; margin-top: .22rem; font-size: 1rem; }
.local-signal--one { left: 0; top: 11%; }
.local-signal--one::after { left: 100%; transform: rotate(22deg); transform-origin: left; }
.local-signal--two { right: 0; top: 12%; }
.local-signal--two::after { right: 100%; transform: rotate(-22deg); transform-origin: right; }
.local-signal--three { left: 0; bottom: 10%; }
.local-signal--three::after { left: 100%; transform: rotate(-22deg); transform-origin: left; }
.local-signal--four { right: 0; bottom: 10%; }
.local-signal--four::after { right: 100%; transform: rotate(22deg); transform-origin: right; }

.identity-manifesto { padding-block: clamp(4.8rem, 8vw, 8rem); background: #080d11; color: #c9d6dc; }
.identity-manifesto__grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.identity-manifesto h2 { max-width: 14ch; color: #fff; font-size: clamp(2.65rem, 4.7vw, 5rem); line-height: .98; }
.identity-manifesto__body { padding-top: .5rem; }
.identity-manifesto__body p { max-width: 43rem; color: #aebfc7; font-size: 1.14rem; }
.manifesto-rule { margin: 2.4rem 0 !important; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.17); }
.manifesto-rule strong { color: #fff; }

.local-ranking { padding-block: var(--space-6); }
.ranking-triad { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.ranking-triad article { min-height: 23rem; padding: clamp(1.7rem,3vw,2.7rem); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.ranking-triad__number { display: block; margin-bottom: 3.3rem; color: var(--accent); font-size: .8rem; font-weight: 900; letter-spacing: .1em; }
.ranking-triad__label { display: block; margin-bottom: .75rem; color: var(--primary-dark); font-size: .78rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.ranking-triad h3 { max-width: 17ch; font-size: clamp(1.35rem,1.1rem + .7vw,1.85rem); }
.ranking-triad p { color: var(--muted); }
.ranking-note { display: grid; grid-template-columns: .55fr 1.2fr auto; gap: 1.5rem; align-items: center; margin-top: 1.5rem; padding: 1.35rem 0; border-block: 1px solid var(--ink-strong); }
.ranking-note strong { font-size: 1.08rem; }
.ranking-note span { color: var(--muted); }

.profile-site { padding-block: var(--space-6); background: var(--surface-soft); }
.profile-site__grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: var(--space-5); align-items: start; }
.profile-site__intro { position: sticky; top: 9rem; }
.profile-site__intro h2 { max-width: 16ch; font-size: clamp(2.5rem,4vw,4.35rem); }
.profile-site__intro p { max-width: 42rem; color: var(--muted); }
.profile-site__evidence { border-top: 2px solid var(--ink-strong); }
.profile-site__evidence article { display: grid; grid-template-columns: 3rem minmax(11rem,.7fr) minmax(0,1.3fr); gap: 1rem; align-items: start; padding: 1.45rem .35rem; border-bottom: 1px solid var(--border); }
.profile-site__evidence article > span { color: var(--accent); font-size: .82rem; font-weight: 900; }
.profile-site__evidence strong { font-size: 1.06rem; }
.profile-site__evidence p { margin: 0; color: var(--muted); }

.reputation-stage { padding-block: var(--space-6); background: var(--navy-deep); color: #c3d2da; }
.reputation-stage__grid { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: var(--space-5); align-items: center; }
.reputation-stage h2 { color: #fff; font-size: clamp(2.25rem,3.8vw,4rem); }
.reputation-stage p { max-width: 46rem; color: #a9bcc6; }
.reputation-stage__metric { min-height: 25rem; display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-4); border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.025); }
.reputation-stage__metric strong { max-width: 15ch; color: #fff; font-family: var(--font-serif); font-size: clamp(2rem,3vw,3.4rem); font-weight: 500; line-height: 1.12; }
.reputation-stage__quote { align-self: flex-end; color: rgba(199,139,43,.85); font-family: var(--font-serif); font-size: 8rem; line-height: .6; }
.reputation-points { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; margin: 2rem 0; border-top: 1px solid rgba(255,255,255,.16); }
.reputation-points span { padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; }

.local-ai { padding-block: var(--space-6); background: #edf6f6; }
.local-ai__grid { display: grid; grid-template-columns: minmax(0,.76fr) minmax(0,1.24fr); gap: var(--space-5); align-items: start; }
.local-ai h2 { max-width: 13ch; font-size: clamp(2.5rem,4vw,4.5rem); }
.local-ai p { max-width: 43rem; color: var(--muted); }
.ai-actions { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid rgba(15,86,104,.35); border-left: 1px solid rgba(15,86,104,.25); }
.ai-actions article { min-height: 13rem; padding: 1.7rem; border-right: 1px solid rgba(15,86,104,.25); border-bottom: 1px solid rgba(15,86,104,.25); background: rgba(255,255,255,.55); }
.ai-actions article > span { display: block; margin-bottom: 2rem; color: var(--primary-dark); font-size: .75rem; font-weight: 900; }
.ai-actions h3 { margin-bottom: .45rem; }
.ai-actions p { margin: 0; font-size: .96rem; }

.data-stage { padding-block: var(--space-6); }
.data-stage__grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: var(--space-5); align-items: center; }
.data-stage h2 { max-width: 15ch; font-size: clamp(2.35rem,3.7vw,4rem); }
.data-stage p { max-width: 39rem; color: var(--muted); }
.data-flow { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .65rem; min-height: 13rem; padding: var(--space-3); border: 1px solid var(--border); background: var(--surface-soft); }
.data-flow span { padding: .8rem 1rem; border-top: 2px solid var(--primary); background: #fff; color: var(--ink-strong); font-weight: 800; box-shadow: var(--shadow-sm); }
.data-flow i { color: var(--accent); font-style: normal; font-weight: 900; }
.data-stage__grid > .text-link { grid-column: 2; }

.brandile-stage { padding-block: clamp(5rem,8vw,8rem); background: #090b0d; color: #b8c4ca; }
.brandile-stage__grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: var(--space-5); align-items: center; }
.brandile-stage__brand img { width: min(100%, 36rem); margin-top: 2rem; }
.brandile-stage h2 { max-width: 15ch; color: #fff; font-size: clamp(2.5rem,4vw,4.45rem); }
.brandile-stage p { max-width: 44rem; color: #9facb2; }

.median-stage { padding-block: var(--space-6); background: #f5f8fb; }
.median-stage__grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--space-5); align-items: end; }
.median-stage h2 { max-width: 14ch; font-size: clamp(2.4rem,3.8vw,4.2rem); }
.median-stage p { max-width: 45rem; color: var(--muted); font-size: 1.08rem; }

.library-preview { padding-block: var(--space-6); }
.library-preview__grid { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 2rem; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.library-preview__grid > a { min-height: 15rem; padding: 1.7rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--ink); text-decoration: none; }
.library-preview__grid > a:hover { background: var(--surface-soft); }
.library-preview__grid span { display: block; margin-bottom: 3rem; color: var(--accent); font-size: .75rem; font-weight: 900; }
.library-preview__grid strong { display: block; margin-bottom: .5rem; font-size: 1.2rem; }
.library-preview__grid p { color: var(--muted); }

.final-question { padding-block: clamp(5rem,8vw,8rem); background: var(--primary-dark); color: #d8e9ed; }
.final-question__grid { max-width: 74rem; }
.final-question h2 { max-width: 15ch; color: #fff; font-size: clamp(3rem,5.7vw,6rem); line-height: .98; }
.final-question p { max-width: 47rem; color: #c0d5db; font-size: 1.14rem; }
.final-question__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }

/* Biblioteca */
.library-intro { padding-block: var(--space-5); border-bottom: 1px solid var(--border); }
.library-intro__grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: var(--space-5); align-items: end; }
.library-intro h2 { max-width: 17ch; }
.library-intro p { max-width: 46rem; margin: 0; color: var(--muted); }
.library-groups { padding-block: var(--space-6); }
.library-groups__grid { display: grid; gap: var(--space-6); }
.library-group { display: grid; grid-template-columns: 6rem minmax(15rem,.7fr) minmax(0,1.3fr); gap: var(--space-4); align-items: start; padding-top: var(--space-4); border-top: 2px solid var(--ink-strong); }
.library-group__number { color: var(--accent); font-size: 1.25rem; font-weight: 900; }
.library-group h2 { max-width: 15ch; font-size: var(--step-2); }
.library-links { border-top: 1px solid var(--border); }
.library-links a { display: grid; grid-template-columns: minmax(12rem,.75fr) minmax(0,1.25fr); gap: 1rem; padding: 1.15rem .2rem; border-bottom: 1px solid var(--border); color: var(--ink); text-decoration: none; }
.library-links a:hover { background: var(--surface-soft); }
.library-links strong { font-size: 1rem; }
.library-links span { color: var(--muted); font-size: .94rem; }

/* Generic page heroes upgraded to the 2026 editorial system */
.page-hero { padding-block: clamp(3.6rem,6vw,5.8rem); background: #f7f9f9; border-bottom: 1px solid var(--border); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(19rem,.55fr); gap: var(--space-5); align-items: end; }
.page-hero h1 { max-width: 16ch; font-size: clamp(2.75rem,4.7vw,5.25rem); line-height: .98; }
.page-hero__lead { max-width: 49rem; color: var(--muted); font-size: 1.12rem; }
.page-hero__aside { padding: var(--space-3); border-top: 3px solid var(--primary); background: #fff; box-shadow: var(--shadow-sm); }
.page-hero__aside strong { display: block; margin-bottom: .45rem; }
.page-hero__aside p { margin: 0; color: var(--muted); }

/* Source section tightened */
.section--sources { padding-block: var(--space-5); border-top: 1px solid var(--border); }


/* V1.1 — infographic editorial flow */
.local-flow{padding-block:clamp(5rem,8vw,8rem);background:#fff7f1;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.infographic-section__head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-5);align-items:end;margin-bottom:2.5rem}
.infographic-section__head h2{max-width:14ch;font-size:clamp(2.8rem,4.8vw,5rem);line-height:.98;color:var(--accent)}
.infographic-section__head>p{max-width:46rem;margin:0;color:var(--muted);font-size:1.08rem}
.infographic-figure{max-width:70rem;margin:0 auto}
.infographic-figure picture{display:block}.infographic-figure img{display:block;width:100%;height:auto;border:1px solid #f0c5a6;background:#fff;box-shadow:0 24px 65px rgba(116,55,16,.08)}
.infographic-figure figcaption{margin-top:.9rem;color:var(--muted);font-size:.86rem;line-height:1.5}
.infographic-open{display:inline-flex;margin-top:1.1rem;color:var(--accent);font-weight:850;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.2rem}
@media(max-width:900px){.infographic-section__head{grid-template-columns:1fr;gap:1rem}}
@media(max-width:560px){.infographic-section__head h2{font-size:3rem}.infographic-figure{overflow:visible;padding-bottom:0}.infographic-figure img{width:100%;max-width:100%}.infographic-figure figcaption{width:min(820px,100%)}}


/* V1.1.2 — visualizador centralizado do infográfico ampliado */
.page-infografico-gbpexpert{margin:0;background:#07111d;color:#fff}
.infographic-viewer{min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:#07111d}
.infographic-viewer__toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.8rem clamp(1rem,3vw,2.5rem);background:rgba(7,17,29,.94);border-bottom:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);font-size:.9rem}
.infographic-viewer__toolbar span{color:rgba(255,255,255,.72);font-weight:700}
.infographic-viewer__back{color:#fff;text-decoration:none;font-weight:800}
.infographic-viewer__back:hover,.infographic-viewer__back:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:.25em}
.infographic-viewer__stage{margin:0;min-height:calc(100vh - 3.2rem);display:flex;align-items:center;justify-content:center;padding:clamp(1rem,3vw,3rem)}
.infographic-viewer__stage picture{display:block;width:min(1600px,100%)}.infographic-viewer__stage img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.45)}
@media(max-width:700px){.infographic-viewer__toolbar{align-items:flex-start;flex-direction:column;gap:.25rem}.infographic-viewer__stage{align-items:flex-start;overflow:visible;justify-content:center}.infographic-viewer__stage picture{width:min(760px,100%)}.infographic-viewer__stage img{width:100%;max-width:100%}}


/* Contact qualification + protected contact channels — V2B */
.required-mark { color: #c62828; font-weight: 800; }
.form-consent { display:flex; align-items:flex-start; gap:.7rem; margin-top:1.2rem; line-height:1.5; }
.form-consent input { width:1.1rem; height:1.1rem; margin-top:.22rem; flex:0 0 auto; accent-color:var(--primary); }
.form-consent a { text-decoration:underline; text-underline-offset:.15em; }
.form-technical-note { max-width:var(--reading); margin:.7rem 0 0; color:var(--muted); font-size:.88rem; }
.contact-reveal { appearance:none; border:0; padding:0; background:transparent; color:#fff; font:inherit; text-decoration:underline; text-underline-offset:.18em; cursor:pointer; }
.contact-reveal:hover, .contact-reveal:focus-visible { text-decoration-thickness:2px; }
.contact-reveal__result { display:block; margin-top:.3rem; }
.contact-reveal__result a { overflow-wrap:anywhere; }
.phone-fragments { display:inline-flex; flex-wrap:wrap; align-items:baseline; }
.contact-form select { min-height:3rem; }

/* =========================================================
   CONTACT — compact qualified form / V2C
   ========================================================= */
.contact-main {
  background: #f7f9f8;
  border-top: 1px solid var(--border);
}
.contact-main__layout {
  display: grid;
  grid-template-columns: minmax(16rem,.62fr) minmax(0,1.38fr);
  gap: clamp(2rem,5vw,5.5rem);
  align-items: start;
}
.contact-invite {
  max-width: 31rem;
  padding-top: clamp(.35rem,1.2vw,1rem);
}
.contact-invite h2 {
  max-width: 12ch;
  margin-bottom: 1rem;
  font-size: clamp(2.15rem,3.7vw,4rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}
.contact-invite__lead {
  max-width: 31rem;
  margin-bottom: .85rem;
  color: var(--ink);
  font-size: clamp(1.02rem,1.25vw,1.16rem);
  line-height: 1.6;
}
.contact-invite__note {
  max-width: 29rem;
  margin: 0;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  color: var(--muted);
  line-height: 1.6;
}
.contact-form-card {
  padding: clamp(1.15rem,2vw,1.8rem);
  border: 1px solid #dde4e1;
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: 0 .75rem 2.25rem rgba(24,43,48,.055);
}
.contact-form-card .form-message { margin-bottom: 1rem; }
.contact-form .form-grid--compact { gap: .78rem; }
.contact-form .form-field {
  display: block;
  min-width: 0;
}
.contact-form .form-field input,
.contact-form .form-field select,
.contact-form .form-field textarea {
  width: 100%;
  border: 1px solid #cfdad7;
  border-radius: .72rem;
  background: #f9fbfa;
  color: var(--ink-strong);
  font: inherit;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.contact-form .form-field input,
.contact-form .form-field select {
  min-height: 3.35rem;
  padding: 0 .95rem;
}
.contact-form .form-field textarea {
  min-height: 7.4rem;
  padding: .9rem .95rem;
  line-height: 1.5;
  resize: vertical;
}
.contact-form .form-field input::placeholder,
.contact-form .form-field textarea::placeholder {
  color: #75817e;
  opacity: 1;
}
.contact-form .form-field input:focus,
.contact-form .form-field select:focus,
.contact-form .form-field textarea:focus {
  border-color: var(--primary);
  background: #fff;
  outline: 0;
  box-shadow: 0 0 0 3px var(--primary-soft);
}
.contact-form .form-consent {
  margin-top: 1rem;
  color: var(--muted);
  font-size: .92rem;
}
.contact-form .form-technical-note {
  max-width: none;
  margin-top: .55rem;
  font-size: .79rem;
  line-height: 1.45;
}
.contact-form .form-actions {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .7rem;
  margin-top: 1rem;
}
.contact-form .form-actions .button { justify-content: center; text-align: center; }
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.contact-card__inner { max-width: var(--container); }
.contact-card .check-list { max-width: 55rem; }
