/* ==========================================================================
   /medhub · Camada visual da identidade MedHub (referencia: medhub5g.com.br):
   azul-marinho profundo com branco, azul claro de apoio, acento quente discreto
   no CTA, Montserrat nos titulos e Inter no corpo, fotos com overlay azul e
   cards brancos sobre azul. So sobrescreve tokens e detalhes; layout, componentes
   e comportamento continuam em _shared/5g.css. Carregar DEPOIS de 5g.css e qf-5g.css.
   ========================================================================== */
:root {
  --ink: #0B1F3A;                        /* azul-marinho profundo (fundo) */
  --ink-2: #102B4E;                      /* secoes alternadas */
  --ink-rgb: 11, 31, 58;
  --graphite: #3A4D66;                   /* texto secundario sobre fundo claro: 7:1 */
  --gray: #A9BBD1;                       /* texto secundario sobre azul: 8:1 */
  --off: #FFFFFF;
  --accent: #F2B134;                     /* acento quente do CTA */
  --accent-hover: #FFC65A;
  --accent-rgb: 242, 177, 52;
  --accent-soft: rgba(79, 163, 227, .14);
  --on-accent: #0B1F3A;                  /* texto sobre o ambar: 9:1 */
  --support: #4FA3E3;                    /* azul claro de apoio sobre azul-marinho: 6.3:1 */
  --support-strong: #1C6FB5;             /* azul de apoio sobre branco: 5.3:1 */
  --line: rgba(255, 255, 255, .14);
  --line-strong: rgba(255, 255, 255, .3);
  --line-light: rgba(11, 31, 58, .12);
  --light-bg: #F3F7FB;
  --photo-overlay: linear-gradient(180deg, rgba(11, 31, 58, .08), rgba(11, 31, 58, .36));
  --font-display: "Montserrat", "Inter", system-ui, sans-serif;
}

/* ---------- tipografia: Montserrat 600/700 ---------- */
h1, h2 { font-weight: 700; letter-spacing: -.025em; font-variation-settings: normal; }
h3, h4 { font-weight: 600; letter-spacing: -.01em; font-variation-settings: normal; }
.hero h1 { font-size: clamp(2.2rem, 1.3rem + 3.8vw, 4.2rem); line-height: 1.06; max-width: 15ch; }
.hero h1 em { font-style: normal; color: var(--support); }
.section-head h2, .split h2, .form-copy h2 { font-size: clamp(1.75rem, 1.15rem + 2.2vw, 2.9rem); }
.cta-band h2 { font-size: clamp(1.7rem, 1.1rem + 2.3vw, 2.8rem); }
.card h3 { font-size: 1.18rem; }
.grid--5 .card h3 { font-size: 1.08rem; }
.level .lv-name { font-size: 1.9rem; font-weight: 700; }
.level .lv-for { font-weight: 600; font-size: 1.05rem; }
.quote blockquote { font-weight: 500; font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); }
.pull { font-weight: 600; }
.qf-q { font-weight: 700; font-size: 1.35rem; }
.hero-fig .cap b { font-weight: 700; }
.stat b, .price { font-weight: 700; }

/* ---------- marca e header ---------- */
.header { background: rgba(11, 31, 58, .78); }
.header.is-scrolled { background: rgba(11, 31, 58, .95); }
.brand small { color: var(--gray); }
.footer { background: #081829; }

/* ---------- hero: brilho azul e overlay azul na foto ---------- */
.hero::before {
  background:
    radial-gradient(60% 55% at 85% 15%, rgba(79, 163, 227, .22), transparent 65%),
    radial-gradient(40% 40% at 10% 90%, rgba(79, 163, 227, .1), transparent 70%);
}
.hero-fig::after { background: linear-gradient(180deg, rgba(11, 31, 58, .12) 45%, rgba(11, 31, 58, .94)); }
.hero-fig .cap span { color: #D6E2F0; }
.chip { background: rgba(255, 255, 255, .06); }

/* ---------- cards brancos sobre azul ---------- */
.card, .icon-list li, .step, .event, .level, .quote, .stat {
  background: #fff; border-color: transparent; color: var(--ink);
  box-shadow: 0 24px 48px -34px rgba(0, 0, 0, .55);
}
.card p, .icon-list span, .step p, .event p, .level p, .quote cite, .stat span { color: var(--graphite); }
.card h3, .icon-list b, .step h3, .event h3, .level .lv-name, .level .lv-for, .quote blockquote, .quote cite b, .level .lv-result b, .stat b { color: var(--ink); }
.card .eyebrow, .level .lv-kick { color: var(--support-strong); }
.card .ic, .icon-list .ic { background: #E8F3FC; color: var(--support-strong); }
.card:hover { border-color: var(--support); box-shadow: 0 28px 56px -34px rgba(0, 0, 0, .6); }
.card--accent { border-color: var(--support); }
.level { border: 1px solid transparent; }
.level--featured { border-color: var(--accent); box-shadow: 0 30px 60px -40px rgba(242, 177, 52, .7); }
.level .lv-range { color: var(--support-strong); }
.level .lv-result { border-top-color: var(--line-light); color: var(--graphite); }
.tags li { border-color: var(--line-light); color: var(--ink); background: #F3F7FB; }
.event .where { color: var(--ink); }
.event .where .ico { color: var(--support-strong); }
.quote { background: #fff; }
.quote .claim { background: #E8F3FC; color: var(--support-strong); }
.quote .claim-note { color: var(--graphite); }
.quote img { border-color: var(--support); }
.quote blockquote::before { color: var(--support-strong); }
.stat b { color: var(--support-strong); }
.card .confirm, .event .confirm, .stat .confirm, .quote .confirm { color: var(--support-strong); border-color: var(--support-strong); }
.flow .arrow { color: var(--support); }

/* ---------- secoes claras ---------- */
.section--light { background: var(--light-bg); }
.section--light .card, .section--light .level, .section--light .stat { box-shadow: 0 20px 40px -30px rgba(11, 31, 58, .4); }
.section--light .kicker { color: var(--support-strong); }
.section--light .kicker::before { background: var(--support-strong); }
.table-wrap { background: #fff; border-color: var(--line-light); }
th { color: var(--graphite); background: #F3F7FB; }
td b { color: var(--support-strong); }
.values li { border-color: rgba(11, 31, 58, .3); font-weight: 600; font-size: .95rem; }

/* ---------- fotos com overlay azul (galeria e figuras de secao) ---------- */
.split-fig::after, .gallery figure::after { background: var(--photo-overlay); }
.gallery figcaption { background: rgba(11, 31, 58, .72); }
.mentor img { border: 2px solid rgba(255, 255, 255, .08); }

/* ---------- formulario e modal em card branco ---------- */
.qf-card, .wa-dialog { background: #fff; color: var(--ink); border-color: transparent; box-shadow: 0 30px 70px -40px rgba(0, 0, 0, .65); }
.qf-top, .qf-sub, .qf-back, .qf-or, .wa-dialog p, .qf-card .form-note, .wa-dialog .form-note { color: var(--graphite); }
.qf-card .field label, .wa-dialog .field label, .qf-card .check, .wa-dialog .check { color: var(--graphite); }
.qf-q, .wa-dialog h3, .qf-screen .qf-sub, .qf-final .qf-sub { color: var(--ink); }
.qf-screen .qf-sub b { color: var(--support-strong); }
.qf-sub a, .qf-card .check a, .wa-dialog .check a { color: var(--support-strong); }
.qf-prog span { background: #E1E9F2; }
.qf-prog span.on { background: var(--accent); }
.qf-opt { background: #F6F9FC; border-color: #D5E0EC; color: var(--ink); }
.qf-opt:hover, .qf-opt:focus-visible, .qf-opt.is-selected { border-color: var(--support-strong); background: #E8F3FC; }
.qf-opt .qf-ico { color: var(--support-strong); }
.qf-back:hover { color: var(--support-strong); }
.qf-badge { background: #E8F3FC; color: var(--support-strong); }
.qf-summary li { background: #EEF4FA; color: var(--ink); }
.qf-card .input, .wa-dialog .input { background: #fff; border-color: #C9D6E4; color: var(--ink); }
.qf-card .input::placeholder, .wa-dialog .input::placeholder { color: #8A99AD; }
.qf-card .input:focus, .wa-dialog .input:focus { border-color: var(--support-strong); box-shadow: 0 0 0 3px rgba(79, 163, 227, .22); }
.qf-card .input[aria-invalid="true"], .wa-dialog .input[aria-invalid="true"] { border-color: #C62828; }
.qf-card .field-error, .wa-dialog .field-error { color: #C62828; }
.qf-error-summary { color: #C62828; border-color: rgba(198, 40, 40, .45); }
.qf-card .btn-ghost, .wa-dialog .close { color: var(--ink); border-color: #C9D6E4; }
.qf-card .btn-ghost:hover, .wa-dialog .close:hover { border-color: var(--ink); color: var(--ink); }
.qf-cal-off, .qf-final .qf-cal { border-color: #C9D6E4; }
.qf-cal-off .form-note { color: var(--graphite); }
.qf-or::before, .qf-or::after { background: #E1E9F2; }
.wa-dialog::backdrop { background: rgba(11, 31, 58, .72); }

/* ---------- botoes e CTA ---------- */
.btn-primary { box-shadow: 0 10px 30px -14px rgba(242, 177, 52, .8); }
.btn-ghost { border-color: rgba(255, 255, 255, .38); }
.btn-ghost:hover { border-color: #fff; color: #fff; }
.section--light .btn-ghost { color: var(--ink); border-color: rgba(11, 31, 58, .35); }
.cta-band { border-color: rgba(242, 177, 52, .45); background: linear-gradient(135deg, rgba(79, 163, 227, .2), rgba(255, 255, 255, .03) 65%); }
.cta-band .kicker { color: var(--support); }
.wa-float { box-shadow: 0 14px 34px -12px rgba(242, 177, 52, .75); }
.confirm { color: var(--accent); border-color: var(--accent); }
