/* TQS · CSS consolidado dos mockups v5 · 2026-04-22 08:56 */

/* ====== homepage.html ====== */
/* ==== Page-specific (homepage v2) ==== */
.hero { position: relative; background: var(--ink); color: var(--white); overflow: hidden; min-height: 600px; display: flex; align-items: center; }
.hero-bg { position: absolute; inset: 0; z-index: 1; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }
.hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26,26,26,0.95) 0%, rgba(26,26,26,0.75) 50%, rgba(26,26,26,0.4) 100%); }
.hero-inner { position: relative; z-index: 2; padding: 80px 0; width: 100%; }
.hero-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 60px; align-items: center; }
.hero h1 { font-size: 56px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; margin-bottom: 24px; color: var(--white); }
.hero-lede { font-size: 19px; line-height: 1.55; opacity: 0.85; margin-bottom: 36px; max-width: 560px; }
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-ctas .btn-primary { padding: 16px 32px; font-size: 15px; }
.hero-ctas .btn-ghost-dark { background: rgba(255,255,255,0.08); color: var(--white); border: 1.5px solid rgba(255,255,255,0.25); padding: 16px 28px; font-size: 15px; border-radius: var(--radius); font-weight: 600; display: inline-flex; align-items: center; gap: 8px; transition: all 0.15s; }
.hero-ctas .btn-ghost-dark:hover { background: rgba(255,255,255,0.15); border-color: var(--white); }
.hero-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); }
.hero-stat { background: rgba(26,26,26,0.6); padding: 24px 22px; }
.hero-stat-num { font-size: 36px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; line-height: 1; margin-bottom: 6px; }
.hero-stat-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.8; font-weight: 500; }

/* Quick access bar */
.quick-access { background: var(--orange); color: var(--white); padding: 0; }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-item { padding: 28px 24px; display: flex; align-items: center; gap: 16px; border-right: 1px solid rgba(255,255,255,0.2); transition: background 0.15s; cursor: pointer; }
.quick-item:last-child { border-right: 0; }
.quick-item:hover { background: var(--orange-dark); }
.quick-ico { width: 42px; height: 42px; background: rgba(255,255,255,0.15); border-radius: 3px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--white); }
.quick-ico svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; }
.quick-text { line-height: 1.3; }
.quick-title { font-size: 15px; font-weight: 700; margin-bottom: 2px; }
.quick-desc { font-size: 12px; opacity: 0.85; font-weight: 500; }

/* Units grid */
.units-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.unit-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: all 0.2s; display: flex; flex-direction: column; }
.unit-card:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.08); }
.unit-media { aspect-ratio: 3/2; background: var(--line-soft); overflow: hidden; position: relative; }
.unit-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.unit-card:hover .unit-media img { transform: scale(1.04); }
.unit-badge { position: absolute; top: 16px; left: 16px; background: var(--white); color: var(--ink); padding: 5px 12px; border-radius: 2px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.unit-badge.hospital { background: var(--orange); color: var(--white); }
.unit-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.unit-city { font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 8px; font-weight: 600; }
.unit-name { font-size: 22px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 12px; line-height: 1.2; }
.unit-desc { font-size: 14px; color: var(--ink-muted); line-height: 1.55; margin-bottom: 20px; flex: 1; }
.unit-meta { display: flex; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); margin-bottom: 16px; font-size: 12px; }
.unit-meta-item { display: flex; flex-direction: column; gap: 2px; }
.unit-meta-lbl { text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); font-weight: 600; font-size: 10px; }
.unit-meta-val { font-weight: 700; color: var(--ink); font-size: 14px; }
.unit-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.08em; }
.unit-link:hover { gap: 10px; color: var(--orange-dark); }
.unit-card-cta { justify-content: center; align-items: center; text-align: center; background: var(--ink); color: var(--white); border-color: var(--ink); }
.unit-card-cta .unit-body { justify-content: center; }
.unit-card-cta .unit-city { color: var(--orange); }
.unit-card-cta .unit-name { color: var(--white); font-size: 28px; }
.unit-card-cta .unit-desc { color: rgba(255,255,255,0.6); }

/* Specialties dark strip */
.specialties-strip { background: var(--ink); color: var(--white); padding: 80px 0; }
.spec-header { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: end; margin-bottom: 48px; }
.spec-header h2 { color: var(--white); font-size: 40px; font-weight: 800; letter-spacing: -0.025em; }
.spec-header-right { color: rgba(255,255,255,0.7); font-size: 15px; line-height: 1.6; padding-bottom: 8px; }
.spec-search { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 3px; display: flex; align-items: center; padding: 4px 4px 4px 20px; margin-bottom: 32px; max-width: 580px; }
.spec-search input { flex: 1; background: transparent; border: 0; color: var(--white); font-family: inherit; font-size: 15px; padding: 14px 0; outline: none; }
.spec-search input::placeholder { color: rgba(255,255,255,0.5); }
.spec-search button { background: var(--orange); color: var(--white); border: 0; padding: 13px 22px; border-radius: 2px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; font-family: inherit; }
.spec-search button:hover { background: var(--orange-dark); }
.spec-categories { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); }
.spec-cat { background: var(--ink); padding: 18px 20px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: background 0.15s; }
.spec-cat:hover { background: #252525; }
.spec-cat-name { font-size: 14px; font-weight: 600; }
.spec-cat-count { font-size: 12px; color: var(--orange); font-weight: 700; }

/* Doctors grid */
.doctors-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.doc-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: all 0.2s; }
.doc-card:hover { border-color: var(--ink); }
.doc-photo { aspect-ratio: 1; background: var(--surface); overflow: hidden; }
.doc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.doc-body { padding: 18px 20px 22px; }
.doc-spec { font-size: 11px; color: var(--orange); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 6px; }
.doc-name { font-size: 17px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 8px; }
.doc-meta { font-size: 13px; color: var(--ink-muted); margin-bottom: 14px; }
.doc-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: 0.08em; border-top: 1px solid var(--line); padding-top: 12px; width: 100%; }
.doc-cta:hover { color: var(--orange); }

/* Conventions */
.conventions { background: var(--white); padding: 80px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.conv-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.conv-logo { aspect-ratio: 2/1; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; color: var(--ink-soft); font-weight: 700; font-size: 13px; transition: all 0.15s; cursor: pointer; }
.conv-logo:hover { border-color: var(--ink); color: var(--ink); }

/* News */
.news-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 28px; }
.news-stack { display: flex; flex-direction: column; gap: 20px; }
.news-card { cursor: pointer; }
.news-card .news-img { aspect-ratio: 16/10; overflow: hidden; border-radius: var(--radius); background: var(--line-soft); margin-bottom: 16px; }
.news-featured .news-img { aspect-ratio: 3/2; }
.news-card .news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.news-card:hover .news-img img { transform: scale(1.03); }
.news-cat { display: inline-block; font-size: 11px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 10px; }
.news-title { font-size: 18px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; margin-bottom: 8px; }
.news-featured .news-title { font-size: 28px; }
.news-card:hover .news-title { color: var(--orange); }
.news-date { font-size: 13px; color: var(--ink-muted); }
.news-side-card { display: flex; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--line); cursor: pointer; }
.news-side-card:last-child { border-bottom: 0; padding-bottom: 0; }
.news-side-img { width: 110px; height: 80px; flex-shrink: 0; overflow: hidden; border-radius: 3px; background: var(--line-soft); }
.news-side-img img { width: 100%; height: 100%; object-fit: cover; }
.news-side-body { flex: 1; }
.news-side-cat { font-size: 10px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 4px; }
.news-side-title { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.35; margin-bottom: 4px; }
.news-side-card:hover .news-side-title { color: var(--orange); }
.news-side-date { font-size: 11px; color: var(--ink-muted); }

/* CTA band */
.cta-band { background: var(--orange); color: var(--white); padding: 64px 0; }
.cta-band-inner { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: center; }
.cta-band h2 { font-size: 38px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; color: var(--white); }
.cta-band p { font-size: 16px; opacity: 0.95; margin-top: 12px; }
.cta-band-right { text-align: right; display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.cta-band-right .btn { background: var(--white); color: var(--orange); border-color: var(--white); padding: 16px 30px; font-size: 15px; }
.cta-band-right .btn:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.cta-band-right .btn-outline-light { background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,0.5); padding: 16px 30px; font-size: 15px; border-radius: var(--radius); font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.15s; }
.cta-band-right .btn-outline-light:hover { background: var(--white); color: var(--orange); border-color: var(--white); }

@media (max-width: 1024px) {
  .hero-grid, .spec-header, .cta-band-inner { grid-template-columns: 1fr; gap: 32px; }
  .hero h1, .spec-header h2, .cta-band h2 { font-size: 36px; }
  .units-grid, .doctors-grid, .spec-categories { grid-template-columns: 1fr 1fr; }
  .quick-grid, .conv-grid { grid-template-columns: 1fr 1fr; }
  .quick-item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.2); }
  .news-grid { grid-template-columns: 1fr; }
  .cta-band-right { text-align: left; justify-content: flex-start; }
}
@media (max-width: 768px) {
  .hero h1 { font-size: 30px; }
  .hero-lede { font-size: 16px; }
  .hero-stats { grid-template-columns: 1fr; }
  .units-grid, .doctors-grid, .spec-categories, .quick-grid, .conv-grid { grid-template-columns: 1fr; }
  .conv-grid { grid-template-columns: 1fr 1fr; }
}

/* ====== sobre_grupo.html ====== */
/* ==== Page-specific (sobre_grupo v2) ==== */
.manifesto { background: var(--white); padding: 90px 0; }
.manifesto-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 56px; align-items: start; }
.manifesto h2 { font-size: 44px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; color: var(--ink); margin-bottom: 24px; }
.manifesto p.lead { font-size: 19px; color: var(--ink); line-height: 1.55; margin-bottom: 20px; }
.manifesto p { font-size: 16px; color: var(--ink-muted); line-height: 1.7; margin-bottom: 16px; }

/* Dark stats strip */
.stats-strip { background: var(--ink); color: var(--white); padding: 72px 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); }
.stat-block { background: var(--ink); padding: 40px 32px; text-align: left; }
.stat-val { font-size: 56px; font-weight: 800; color: var(--orange); letter-spacing: -0.03em; line-height: 1; margin-bottom: 10px; }
.stat-lbl { font-size: 13px; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600; color: rgba(255,255,255,0.75); line-height: 1.4; }

/* Timeline */
.timeline-section { padding: 90px 0; background: var(--surface); }
.timeline-container { margin-top: 56px; position: relative; padding-left: 0; }
.timeline-line { display: block; }
.timeline-list { list-style: none; display: flex; flex-direction: column; gap: 0; border-left: 2px solid var(--line); padding-left: 40px; margin-left: 20px; }
.timeline-row { position: relative; padding: 28px 0; display: grid; grid-template-columns: 140px 1fr; gap: 32px; align-items: start; }
.timeline-row:not(:last-child) { border-bottom: 1px solid var(--line); }
.timeline-row::before { content: ''; position: absolute; left: -51px; top: 34px; width: 20px; height: 20px; background: var(--white); border: 3px solid var(--orange); }
.timeline-year { font-size: 32px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; line-height: 1; }
.timeline-title { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 6px; }
.timeline-desc { font-size: 15px; color: var(--ink-muted); line-height: 1.6; }

/* Values */
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.value-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 32px; transition: all 0.2s; }
.value-card:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.05); }
.value-ico { width: 48px; height: 48px; background: var(--orange-soft); color: var(--orange-dark); display: flex; align-items: center; justify-content: center; border-radius: var(--radius); margin-bottom: 20px; border: 1px solid rgba(237,139,0,0.2); }
.value-ico svg { width: 24px; height: 24px; }
.value-card h3 { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 10px; }
.value-card p { font-size: 14px; color: var(--ink-muted); line-height: 1.65; }

/* Leadership */
.leaders-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
.leader-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: all 0.2s; }
.leader-card:hover { border-color: var(--ink); transform: translateY(-3px); }
.leader-img { aspect-ratio: 4/3; overflow: hidden; background: var(--surface); }
.leader-img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.leader-img-placeholder { background: var(--ink); display: flex; align-items: flex-end; justify-content: center; position: relative; overflow: hidden; }
.leader-img-placeholder::after { content: 'Fotografia oficial por atualizar'; position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); font-size: 9px; color: rgba(255,255,255,0.55); text-transform: uppercase; letter-spacing: 0.15em; font-weight: 600; white-space: nowrap; z-index: 2; }
.leader-bust { width: 60%; max-width: 180px; height: auto; display: block; }
.leader-bust circle, .leader-bust path { fill: var(--orange); }
.leader-body { padding: 24px; }
.leader-role { font-size: 11px; color: var(--orange); font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 6px; }
.leader-card h3 { font-size: 20px; font-weight: 700; margin-bottom: 10px; letter-spacing: -0.015em; }
.leader-bio { font-size: 14px; color: var(--ink-muted); line-height: 1.65; }
.leader-om { font-size: 12px; color: var(--ink-soft); margin-top: 10px; font-weight: 600; }

@media (max-width: 1024px) {
  .manifesto-grid { grid-template-columns: 1fr; gap: 32px; }
  .manifesto h2 { font-size: 32px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-val { font-size: 40px; }
  .values-grid, .leaders-grid { grid-template-columns: repeat(2, 1fr); }
  .timeline-row { grid-template-columns: 100px 1fr; gap: 20px; }
  .timeline-year { font-size: 24px; }
}
@media (max-width: 768px) {
  .stats-grid { grid-template-columns: 1fr; }
  .values-grid, .leaders-grid { grid-template-columns: 1fr; }
  .timeline-list { margin-left: 10px; padding-left: 28px; }
  .timeline-row { grid-template-columns: 1fr; gap: 6px; }
}

/* ====== contactos.html ====== */
/* ==== Page-specific (contactos v2) ==== */
/* Dark urgência banner */
.urg-banner { background: var(--ink); color: var(--white); border-top: 3px solid var(--orange); padding: 40px 0; }
.urg-banner-inner { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.urg-banner h2 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--white); margin-bottom: 4px; }
.urg-banner p { opacity: 0.8; font-size: 14px; line-height: 1.5; max-width: 600px; }
.urg-phone-box { text-align: right; }
.urg-phone-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--orange); font-weight: 700; margin-bottom: 4px; display: block; }
.urg-phone-val { font-size: 34px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; display: block; line-height: 1; }

/* Two-col: form + contact blocks */
.contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }

/* Form */
.form-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 40px; }
.form-card h2 { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 10px; }
.form-card p.intro { font-size: 14px; color: var(--ink-muted); line-height: 1.6; margin-bottom: 28px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.form-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.form-field label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink); }
.form-field .req { color: var(--orange); }
.form-field input, .form-field select, .form-field textarea { border: 1px solid var(--line); background: var(--white); padding: 12px 14px; font-family: inherit; font-size: 14px; color: var(--ink); border-radius: var(--radius); outline: none; transition: border-color 0.15s; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--ink); }
.form-field textarea { resize: vertical; min-height: 120px; }
.form-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--ink-muted); line-height: 1.5; margin-bottom: 12px; }
.form-check input[type="checkbox"] { margin-top: 3px; accent-color: var(--orange); flex-shrink: 0; }
.form-check a { color: var(--orange); text-decoration: underline; }
.form-submit { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; border-top: 1px solid var(--line); margin-top: 18px; gap: 20px; flex-wrap: wrap; }
.form-note { font-size: 12px; color: var(--ink-soft); max-width: 300px; line-height: 1.5; }

/* Direct contact blocks */
.direct-col { display: flex; flex-direction: column; gap: 18px; }
.direct-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; border-left: 3px solid var(--orange); }
.direct-card.dark { background: var(--ink); color: var(--white); border-color: var(--ink); border-left-color: var(--orange); }
.direct-card .section-eyebrow { margin-bottom: 8px; }
.direct-card h3 { font-size: 20px; font-weight: 700; margin-bottom: 20px; letter-spacing: -0.015em; }
.direct-card.dark h3 { color: var(--white); }
.direct-items { display: flex; flex-direction: column; gap: 14px; }
.direct-row { display: flex; gap: 14px; align-items: flex-start; }
.direct-ico { width: 36px; height: 36px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--orange); }
.direct-card.dark .direct-ico { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.15); }
.direct-ico svg { width: 16px; height: 16px; }
.direct-lbl { font-size: 11px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; margin-bottom: 2px; }
.direct-card.dark .direct-lbl { color: rgba(255,255,255,0.55); }
.direct-val { font-size: 14px; color: var(--ink); font-weight: 600; line-height: 1.4; }
.direct-val a { color: inherit; }
.direct-val a:hover { color: var(--orange); }
.direct-card.dark .direct-val { color: var(--white); }

/* Units contact grid */
.units-c-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
.unit-c-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; transition: all 0.2s; }
.unit-c-card:hover { border-color: var(--ink); transform: translateY(-3px); }
.unit-c-badge { display: inline-block; background: var(--orange); color: var(--white); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 10px; border-radius: 2px; margin-bottom: 16px; }
.unit-c-badge.polo { background: var(--ink); }
.unit-c-card h3 { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 4px; }
.unit-c-city { font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; margin-bottom: 18px; }
.unit-c-list { list-style: none; display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); }
.unit-c-list li { display: flex; gap: 12px; font-size: 13px; color: var(--ink); line-height: 1.4; }
.unit-c-list li svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--orange); margin-top: 2px; }
.unit-c-list li span { flex: 1; }

@media (max-width: 1024px) {
  .contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .urg-banner-inner { grid-template-columns: 1fr; }
  .urg-phone-box { text-align: left; }
  .units-c-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .form-row { grid-template-columns: 1fr; }
  .units-c-grid { grid-template-columns: 1fr; }
  .form-card { padding: 24px; }
}

/* ====== marcacao_widget.html ====== */
/* ==== Page-specific (marcacao_widget v2) ==== */
:root {
  --success: #0E8A4C;
  --info: #1E5AA8;
  --info-soft: #E8F0FA;
}

.booking-wrap { background: var(--surface); padding-bottom: 60px; }

/* Title */
.booking-title { text-align: center; padding: 56px 24px 28px; max-width: 720px; margin: 0 auto; }
.booking-title h1 { font-size: 40px; font-weight: 800; letter-spacing: -0.025em; margin-bottom: 12px; line-height: 1.1; }
.booking-title > p { color: var(--ink-muted); font-size: 16px; max-width: 560px; margin: 0 auto; }

/* Info banner (honesto) */
.info-banner { max-width: 900px; margin: 0 auto 28px; padding: 0 24px; }
.info-banner-inner { background: var(--info-soft); border-left: 3px solid var(--info); padding: 14px 18px; border-radius: var(--radius); display: flex; gap: 12px; align-items: flex-start; }
.info-banner-ico { color: var(--info); flex-shrink: 0; padding-top: 1px; }
.info-banner-ico svg { width: 20px; height: 20px; }
.info-banner-text { font-size: 13px; line-height: 1.55; color: var(--ink); }
.info-banner-text strong { font-weight: 700; }

/* Progress */
.progress-wrap { max-width: 620px; margin: 0 auto 32px; padding: 0 24px; }
.progress-track { display: flex; justify-content: space-between; position: relative; }
.progress-track::before { content: ''; position: absolute; top: 16px; left: 18px; right: 18px; height: 2px; background: var(--line); z-index: 0; }
.progress-fill { position: absolute; top: 16px; left: 18px; height: 2px; background: var(--orange); z-index: 1; transition: width 0.35s; width: 0; }
.progress-step { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.progress-circle { width: 34px; height: 34px; border-radius: 50%; background: var(--white); border: 2px solid var(--line); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; color: var(--ink-soft); transition: all 0.2s; }
.progress-step.active .progress-circle, .progress-step.done .progress-circle { background: var(--orange); border-color: var(--orange); color: var(--white); }
.progress-step.done .progress-circle { font-size: 0; }
.progress-step.done .progress-circle::after { content: '✓'; font-size: 16px; }
.progress-label { font-size: 11px; font-weight: 600; color: var(--ink-soft); text-transform: uppercase; letter-spacing: 0.08em; white-space: nowrap; }
.progress-step.active .progress-label, .progress-step.done .progress-label { color: var(--ink); }

.booking-container { max-width: 900px; margin: 0 auto; padding: 0 24px; }

/* Card + steps */
.booking-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 36px 40px; margin-bottom: 16px; }
.step-panel { display: none; }
.step-panel.active { display: block; }

.step-header { margin-bottom: 22px; }
.step-number { display: inline-block; font-size: 12px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 5px; }
.step-header h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 4px; }
.step-header p { color: var(--ink-muted); font-size: 14px; }

/* STEP 1 · Tipo */
.type-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.type-card { padding: 24px 22px; background: var(--white); border: 2px solid var(--line); border-radius: var(--radius); transition: all 0.15s; text-align: left; display: block; width: 100%; font-family: inherit; cursor: pointer; }
.type-card:hover { border-color: var(--ink); }
.type-card.selected { border-color: var(--orange); background: var(--orange-soft); }
.type-ico { width: 44px; height: 44px; background: var(--orange-soft); color: var(--orange); display: flex; align-items: center; justify-content: center; border-radius: var(--radius); margin-bottom: 12px; }
.type-ico svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.type-card.selected .type-ico { background: var(--white); }
.type-card h3 { font-size: 18px; font-weight: 800; margin-bottom: 4px; }
.type-card p { font-size: 13px; color: var(--ink-muted); line-height: 1.5; }

/* STEP 2 · Search + grid */
.search-input-wrap { position: relative; margin-bottom: 16px; }
.search-input { width: 100%; padding: 13px 18px 13px 44px; border: 1.5px solid var(--line); border-radius: var(--radius); font-size: 14px; font-family: inherit; background: var(--white); color: var(--ink); }
.search-input:focus { outline: none; border-color: var(--orange); }
.search-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ink-soft); pointer-events: none; }
.search-ico svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.option-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.option-btn { padding: 13px 14px; background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); cursor: pointer; transition: all 0.15s; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-family: inherit; font-size: 13px; color: var(--ink); width: 100%; }
.option-btn:hover { border-color: var(--ink); }
.option-btn.selected { border-color: var(--orange); background: var(--orange-soft); }
.option-name { font-weight: 600; }
.option-count { font-size: 10px; color: var(--ink-soft); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.option-btn.selected .option-count { color: var(--orange); }

/* Exam detail panel (inline no step 2 do fluxo de exames) */
.exam-detail { margin-top: 24px; padding: 24px; background: var(--orange-soft); border: 1px solid rgba(237,139,0,0.25); border-radius: var(--radius); animation: fadeIn 0.2s ease-out; }
.exam-detail-header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid rgba(237,139,0,0.2); }
.exam-detail-label { font-size: 10px; font-weight: 700; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.12em; }
.exam-detail-header strong { font-size: 17px; font-weight: 800; letter-spacing: -0.015em; color: var(--ink); }
.exam-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 18px; }
.exam-detail-hint { font-size: 11px; color: var(--ink-soft); margin-top: 6px; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 768px) { .exam-detail-grid { grid-template-columns: 1fr; } }

/* Mode toggle (Por especialidade / Por unidade) */
.mode-toggle { display: inline-flex; padding: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 18px; gap: 2px; }
.mode-btn { padding: 8px 16px; background: transparent; border: none; border-radius: var(--radius-sm, 3px); font-size: 13px; font-weight: 600; font-family: inherit; color: var(--ink-soft); cursor: pointer; transition: all 0.15s; }
.mode-btn:hover:not(.selected) { color: var(--ink); }
.mode-btn.selected { background: var(--white); color: var(--ink); box-shadow: 0 1px 2px rgba(0,0,0,0.04); }

/* Filter hint (caminho por unidade) */
.filter-hint { font-size: 13px; color: var(--ink-muted); margin-bottom: 14px; padding: 10px 14px; background: var(--surface); border-radius: var(--radius); }
.filter-hint strong { color: var(--ink); font-weight: 700; }

/* Unit card (grelha de unidades no step 2) */
.option-btn.unit-card { flex-direction: column; align-items: flex-start; gap: 4px; padding: 16px 16px; min-height: 72px; }
.option-btn.unit-card .option-name { font-size: 14px; font-weight: 700; }
.option-btn.unit-card .option-count { font-size: 11px; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--ink-muted); }

/* STEP 3 · Doctor */
.no-preference { padding: 14px 18px; background: var(--surface); border: 1.5px dashed var(--line); border-radius: var(--radius); margin-bottom: 14px; font-size: 13px; color: var(--ink-muted); cursor: pointer; text-align: center; transition: all 0.15s; width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 600; font-family: inherit; }
.no-preference:hover { border-color: var(--ink); color: var(--ink); }
.no-preference.selected { border-color: var(--orange); border-style: solid; background: var(--orange-soft); color: var(--ink); }
.no-preference svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.doctor-list { display: flex; flex-direction: column; gap: 8px; }
.doctor-row { padding: 14px 18px; background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); transition: all 0.15s; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; font-family: inherit; width: 100%; text-align: left; cursor: pointer; }
.doctor-row:hover { border-color: var(--ink); }
.doctor-row.selected { border-color: var(--orange); background: var(--orange-soft); }
.doctor-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--ink); overflow: hidden; display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--orange); font-size: 13px; flex-shrink: 0; }
.doctor-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center top; background: #F5F5F5; }
.doctor-name { font-weight: 700; font-size: 14px; margin-bottom: 2px; letter-spacing: -0.01em; }
.doctor-meta { font-size: 11px; color: var(--ink-muted); }
.doctor-units-tag { font-size: 10px; color: var(--ink-soft); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }

/* STEP 4 · Preferences */
.field-group { margin-bottom: 22px; }
.field-label { display: block; font-size: 11px; font-weight: 700; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 10px; }
.chip-row { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { padding: 9px 14px; background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); cursor: pointer; font-size: 13px; font-weight: 600; font-family: inherit; color: var(--ink); transition: all 0.15s; }
.chip:hover:not(:disabled) { border-color: var(--ink); }
.chip.selected { background: var(--ink); color: var(--white); border-color: var(--ink); }
.chip:disabled { opacity: 0.35; cursor: not-allowed; }

.pref-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.calendar { background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); padding: 16px; }
.cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.cal-nav { width: 28px; height: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: var(--ink); cursor: pointer; }
.cal-nav:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.cal-nav svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.cal-month { font-weight: 700; font-size: 13px; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-dow { text-align: center; font-size: 10px; font-weight: 700; color: var(--ink-soft); text-transform: uppercase; padding: 6px 0; }
.cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; border-radius: var(--radius-sm); cursor: pointer; border: 1.5px solid transparent; background: transparent; color: var(--ink); transition: all 0.1s; font-family: inherit; }
.cal-day:hover:not(:disabled) { border-color: var(--ink); }
.cal-day.selected { background: var(--orange); color: var(--white); }
.cal-day.other-month { color: var(--line); }
.cal-day.past, .cal-day.weekend { color: var(--ink-soft); cursor: not-allowed; }
.cal-day:disabled { cursor: not-allowed; opacity: 0.3; }

.period-list { display: flex; flex-direction: column; gap: 8px; }
.period-btn { padding: 14px 16px; background: var(--white); border: 1.5px solid var(--line); border-radius: var(--radius); cursor: pointer; font-size: 14px; font-weight: 600; font-family: inherit; color: var(--ink); text-align: left; display: flex; justify-content: space-between; align-items: center; transition: all 0.15s; gap: 12px; }
.period-btn:hover { border-color: var(--ink); }
.period-btn.selected { border-color: var(--orange); background: var(--orange-soft); }
.period-btn-label { display: inline-flex; align-items: center; gap: 10px; }
.period-btn-label svg { width: 16px; height: 16px; color: var(--orange); stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.period-btn-hours { font-size: 11px; color: var(--ink-muted); font-weight: 600; }

/* STEP 5 · Form */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-size: 12px; font-weight: 600; color: var(--ink); }
.form-field label .required { color: var(--orange); }
.form-input, .form-textarea { padding: 12px 14px; border: 1.5px solid var(--line); border-radius: var(--radius); font-size: 14px; font-family: inherit; background: var(--white); color: var(--ink); }
.form-input:focus, .form-textarea:focus { outline: none; border-color: var(--orange); }
.form-textarea { resize: vertical; min-height: 80px; }
.form-checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; color: var(--ink-muted); line-height: 1.55; margin-top: 10px; }
.form-checkbox input { margin-top: 3px; accent-color: var(--orange); }
.form-checkbox a { color: var(--orange); text-decoration: underline; }

/* Summary recap */
.summary { background: var(--surface); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 20px; font-size: 13px; }
.summary-title { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); margin-bottom: 8px; }
.summary-list { display: flex; flex-direction: column; gap: 4px; }
.summary-row { display: flex; justify-content: space-between; gap: 16px; }
.summary-label { color: var(--ink-muted); }
.summary-value { color: var(--ink); font-weight: 600; text-align: right; }

/* Footer actions (card-level) */
.card-footer { display: flex; justify-content: space-between; gap: 12px; padding-top: 22px; margin-top: 20px; border-top: 1px solid var(--line); }

/* Success */
.success-panel { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 50px 44px; text-align: center; }
.success-ico { width: 64px; height: 64px; background: var(--success); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.success-ico svg { width: 32px; height: 32px; stroke: currentColor; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.success-panel h2 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 10px; }
.success-panel > p { color: var(--ink-muted); font-size: 15px; max-width: 480px; margin: 0 auto 28px; line-height: 1.55; }
.success-panel > p strong { color: var(--ink); font-weight: 700; }
.success-ref { display: inline-block; background: var(--surface); padding: 10px 18px; border-radius: var(--radius); font-weight: 700; font-size: 14px; letter-spacing: 0.05em; margin-bottom: 24px; }
.success-ref span { color: var(--ink-muted); font-weight: 500; margin-right: 8px; text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; }

.next-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 32px; text-align: left; }
.next-step { padding: 16px 18px; background: var(--surface); border-radius: var(--radius); }
.next-step-num { font-size: 18px; font-weight: 800; color: var(--orange); margin-bottom: 6px; }
.next-step h4 { font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.next-step p { font-size: 12px; color: var(--ink-muted); line-height: 1.5; }
.success-urgency { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-muted); }
.success-urgency a { color: var(--orange); font-weight: 700; }

@media (max-width: 768px) {
  .option-grid { grid-template-columns: 1fr 1fr; }
  .type-choice, .pref-grid, .form-grid, .next-steps { grid-template-columns: 1fr; }
  .booking-card { padding: 28px 22px; }
  .booking-title h1 { font-size: 28px; }
  .progress-label { display: none; }
  .success-panel { padding: 36px 24px; }
}

/* ====== archive_especialidades.html ====== */
/* ==== Page-specific (archive_especialidades v2) ==== */
/* Dark search strip */
.search-strip { background: var(--ink); color: var(--white); padding: 64px 0; }
.search-strip-inner { max-width: 820px; }
.search-strip h2 { color: var(--white); font-size: 28px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 20px; }
.search-box { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 3px; display: flex; align-items: center; padding: 4px 4px 4px 20px; }
.search-box svg { width: 18px; height: 18px; opacity: 0.6; margin-right: 12px; flex-shrink: 0; }
.search-box input { flex: 1; background: transparent; border: 0; color: var(--white); font-family: inherit; font-size: 15px; padding: 14px 0; outline: none; }
.search-box input::placeholder { color: rgba(255,255,255,0.5); }
.search-box button { background: var(--orange); color: var(--white); border: 0; padding: 13px 26px; border-radius: 2px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; font-family: inherit; }
.search-box button:hover { background: var(--orange-dark); }

/* Featured specialties */
.featured-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.feat-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: all 0.2s; cursor: pointer; display: flex; flex-direction: column; }
.feat-card:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.08); }
.feat-img { aspect-ratio: 4/3; overflow: hidden; background: var(--line-soft); }
.feat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
.feat-card:hover .feat-img img { transform: scale(1.04); }
.feat-body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.feat-body h3 { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 8px; }
.feat-body p { font-size: 14px; color: var(--ink-muted); line-height: 1.55; margin-bottom: 16px; flex: 1; }
.feat-meta { display: flex; gap: 18px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12px; color: var(--ink-muted); }
.feat-meta strong { color: var(--ink); font-weight: 700; }

/* Alphabet index */
.alpha-bar { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 0; position: sticky; top: 82px; z-index: 50; }
.alpha-inner { display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; }
.alpha-letter { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: var(--ink-soft); border-radius: 2px; cursor: pointer; transition: all 0.15s; }
.alpha-letter.has { color: var(--ink); }
.alpha-letter.has:hover { background: var(--white); border: 1px solid var(--line); }
.alpha-letter.active { background: var(--orange); color: var(--white); }
.alpha-letter.disabled { opacity: 0.3; }

/* Specialty groups */
.group-block { padding: 56px 0; border-bottom: 1px solid var(--line); }
.group-block:last-child { border-bottom: 0; }
.group-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 28px; }
.group-letter { font-size: 56px; font-weight: 800; color: var(--orange); line-height: 1; letter-spacing: -0.03em; }
.group-count { font-size: 12px; font-weight: 700; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.12em; }
.spec-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.spec-card { display: flex; justify-content: space-between; align-items: center; padding: 20px 22px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); transition: all 0.15s; }
.spec-card:hover { border-color: var(--ink); transform: translateX(4px); }
.spec-card h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 4px; }
.spec-card .meta { font-size: 12px; color: var(--ink-muted); }
.spec-card .arrow { width: 18px; height: 18px; color: var(--ink-soft); flex-shrink: 0; }
.spec-card:hover .arrow { color: var(--orange); }

@media (max-width: 1024px) {
  .featured-grid { grid-template-columns: repeat(2, 1fr); }
  .spec-grid { grid-template-columns: repeat(2, 1fr); }
  .group-letter { font-size: 40px; }
}
@media (max-width: 768px) {
  .featured-grid, .spec-grid { grid-template-columns: 1fr; }
}

/* ====== single_especialidade.html ====== */
/* ==== Page-specific (single_especialidade v2) ==== */
.page-header .stat-row { display: flex; gap: 40px; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.15); }
.page-header .stat { }
.page-header .stat-val { font-size: 36px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; line-height: 1; margin-bottom: 6px; }
.page-header .stat-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.8; font-weight: 500; }

/* Anchor nav */
.anchors { background: var(--white); border-bottom: 1px solid var(--line); position: sticky; top: 82px; z-index: 50; }
.anchors-inner { display: flex; gap: 0; overflow-x: auto; }
.anchors-inner a { padding: 18px 22px; font-size: 13px; font-weight: 600; color: var(--ink-muted); border-bottom: 2px solid transparent; transition: all 0.15s; white-space: nowrap; }
.anchors-inner a:hover { color: var(--ink); }
.anchors-inner a.active { color: var(--ink); border-bottom-color: var(--orange); }

/* Units grid for this specialty */
.units-s-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.unit-s-card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: all 0.2s; background: var(--white); display: flex; flex-direction: column; }
.unit-s-card:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.08); }
.unit-s-img { aspect-ratio: 16/10; overflow: hidden; background: var(--line-soft); }
.unit-s-img img { width: 100%; height: 100%; object-fit: cover; }
.unit-s-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.unit-s-body h3 { font-size: 17px; font-weight: 700; letter-spacing: -0.015em; margin-bottom: 6px; }
.unit-s-loc { font-size: 12px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; margin-bottom: 14px; }
.unit-s-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 14px 0; border-top: 1px solid var(--line); margin-bottom: 14px; font-size: 11px; color: var(--ink-muted); }
.unit-s-stats strong { display: block; color: var(--ink); font-size: 15px; font-weight: 700; margin-bottom: 2px; }
.unit-s-card .btn { width: 100%; font-size: 13px; }

/* Doctors grid */
.docs-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* Info FAQ */
.info-split { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-head { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; cursor: pointer; }
.faq-head h4 { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; }
.faq-ico { width: 24px; height: 24px; border-radius: 2px; display: flex; align-items: center; justify-content: center; background: var(--surface); border: 1px solid var(--line); color: var(--ink); flex-shrink: 0; font-size: 14px; font-weight: 800; }
.faq-item.open .faq-ico { background: var(--orange); color: var(--white); border-color: var(--orange); }
.faq-body { font-size: 15px; color: var(--ink-muted); line-height: 1.7; padding: 0 0 22px; display: none; }
.faq-item.open .faq-body { display: block; }

.info-image { aspect-ratio: 4/5; overflow: hidden; border-radius: var(--radius); position: sticky; top: 170px; }
.info-image img { width: 100%; height: 100%; object-fit: cover; }

/* Dark subspec strip */
.sub-strip { background: var(--ink); color: var(--white); padding: 80px 0; }
.sub-strip .section-header h2 { color: var(--white); }
.sub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); }
.sub-cell { background: var(--ink); padding: 24px 22px; transition: background 0.15s; cursor: pointer; }
.sub-cell:hover { background: #252525; }
.sub-cell h4 { font-size: 16px; font-weight: 700; margin-bottom: 6px; letter-spacing: -0.015em; color: var(--white); }
.sub-cell p { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.5; margin: 0; }

@media (max-width: 1024px) {
  .units-s-grid { grid-template-columns: repeat(2, 1fr); }
  .docs-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .info-split { grid-template-columns: 1fr; }
  .info-image { position: static; aspect-ratio: 16/9; }
  .sub-grid { grid-template-columns: repeat(2, 1fr); }
  .page-header .stat-row { gap: 20px; flex-wrap: wrap; }
}
@media (max-width: 768px) {
  .units-s-grid, .docs-grid-4, .sub-grid { grid-template-columns: 1fr; }
}

/* ====== archive_unidades.html ====== */
/* ==== Page-specific (archive_unidades v2) ==== */
.units-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.unit-meta { display: flex; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); margin-bottom: 16px; font-size: 12px; }
.unit-meta-item { display: flex; flex-direction: column; gap: 2px; }
.unit-meta-lbl { text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); font-weight: 600; font-size: 10px; }
.unit-meta-val { font-weight: 700; color: var(--ink); font-size: 14px; }

/* Dark map section */
.map-strip { background: var(--ink); color: var(--white); padding: 90px 0; }
.map-strip .section-header h2 { color: var(--white); }
.map-wrap { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: stretch; }
.map-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); margin-top: 28px; }
.map-stat { background: rgba(26,26,26,0.6); padding: 24px 22px; }
.map-stat-num { font-size: 36px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; line-height: 1; margin-bottom: 6px; }
.map-stat-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.8; font-weight: 500; }
.map-canvas { background: #0F0F0F; border: 1px solid rgba(255,255,255,0.15); border-radius: var(--radius); position: relative; overflow: hidden; min-height: 420px; }
.map-canvas::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 36px 36px; }
.pin { position: absolute; width: 44px; height: 44px; background: var(--orange); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(237,139,0,0.35); border-radius: 2px; cursor: pointer; transition: transform 0.15s; }
.pin:hover { transform: scale(1.08); }
.pin-label { color: var(--white); font-size: 11px; font-weight: 800; letter-spacing: 0.04em; }
.pin.sec { background: #2D2D2D; border: 1px solid rgba(255,255,255,0.25); }
.pin-1 { top: 30%; left: 38%; }
.pin-2 { top: 22%; left: 62%; }
.pin-3 { top: 40%; left: 78%; }
.pin-4 { top: 64%; left: 52%; }
.pin-5 { top: 56%; left: 26%; }
.map-legend { position: absolute; bottom: 18px; left: 18px; right: 18px; background: rgba(26,26,26,0.85); backdrop-filter: blur(10px); padding: 14px 18px; font-size: 12px; display: flex; gap: 22px; flex-wrap: wrap; border: 1px solid rgba(255,255,255,0.08); }
.legend-item { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,0.75); }
.legend-dot { width: 10px; height: 10px; }
.legend-dot.primary { background: var(--orange); }
.legend-dot.secondary { background: #5A5A5A; }

@media (max-width: 1024px) {
  .units-grid { grid-template-columns: 1fr 1fr; }
  .map-wrap { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 768px) {
  .units-grid { grid-template-columns: 1fr; }
  .map-stats-grid { grid-template-columns: 1fr; }
}

/* ====== single_unidade.html ====== */
/* ==== Page-specific (single_unidade v2) ==== */
/* Info bar */
.info-bar { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 6px; margin-top: -36px; position: relative; z-index: 10; box-shadow: 0 12px 32px rgba(0,0,0,0.08); align-items: center; }
.info-item { padding: 18px 22px; border-right: 1px solid var(--line); }
.info-item:nth-child(4) { border-right: 0; }
.info-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-muted); font-weight: 700; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.info-lbl svg { width: 13px; height: 13px; }
.info-val { font-size: 15px; font-weight: 700; color: var(--ink); }
.info-val a { color: var(--ink); }
.info-val a:hover { color: var(--orange); }
.info-item .open { color: var(--orange); }
.info-bar .btn { margin: 6px; }

/* Main grid */
.detail-grid { display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: start; }
.detail-section { margin-bottom: 64px; }
.detail-section h2 { font-size: 32px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; color: var(--ink); margin-bottom: 16px; }
.detail-section p { font-size: 16px; color: var(--ink-muted); line-height: 1.7; margin-bottom: 16px; }

/* Spec chips grid */
.chips-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 24px; }
.chips-grid .spec-chip { display: flex; justify-content: space-between; padding: 12px 16px; }
.spec-chip .count { color: var(--ink-soft); font-size: 11px; }

/* Doctors mini grid */
.docs-mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 24px; }

/* Features grid (equipment) */
.features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 24px; }
.feat-item { display: flex; gap: 16px; padding: 22px; background: var(--surface); border-radius: var(--radius); border: 1px solid var(--line); }
.feat-ico { width: 44px; height: 44px; background: var(--white); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: var(--orange); flex-shrink: 0; border-radius: var(--radius); }
.feat-ico svg { width: 22px; height: 22px; }
.feat-item h4 { font-size: 15px; font-weight: 700; margin-bottom: 4px; letter-spacing: -0.01em; }
.feat-item p { font-size: 13px; color: var(--ink-muted); line-height: 1.5; margin: 0; }

/* Acordos */
.acordos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 24px; }
.acordo-pill { padding: 14px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); font-size: 13px; font-weight: 600; text-align: center; }
.acordo-pill.more { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* Sidebar */
.sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 18px; }
.side-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: var(--white); }
.side-card h3 { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 16px; color: var(--ink); }
.side-card-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.side-card-dark h3 { color: var(--orange); }
.map-thumb { aspect-ratio: 4/3; background: linear-gradient(135deg, #1F1F1F 0%, #0F0F0F 100%); position: relative; overflow: hidden; border-radius: var(--radius); margin-bottom: 16px; display: flex; align-items: center; justify-content: center; }
.map-thumb::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px); background-size: 24px 24px; }
.map-thumb-pin { width: 40px; height: 40px; background: var(--orange); position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; color: var(--white); box-shadow: 0 6px 14px rgba(237,139,0,0.5); border-radius: 2px; }

.hours-list { list-style: none; display: flex; flex-direction: column; gap: 0; }
.hours-item { display: flex; justify-content: space-between; font-size: 13px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.hours-item:last-child { border-bottom: none; }
.hours-day { color: var(--ink); font-weight: 600; }
.hours-time { color: var(--ink-muted); }
.status-now { font-weight: 700; color: var(--orange); }

.side-card-dark .side-cta-title { font-size: 20px; font-weight: 800; letter-spacing: -0.015em; margin-bottom: 8px; line-height: 1.2; }
.side-card-dark p { font-size: 14px; opacity: 0.75; margin-bottom: 20px; line-height: 1.5; }
.side-card-dark .btn { width: 100%; background: var(--orange); color: var(--white); border-color: var(--orange); }
.side-card-dark .btn:hover { background: var(--white); color: var(--orange); border-color: var(--white); }

/* Dark urgência strip */
.urg-strip { background: var(--ink); color: var(--white); padding: 56px 0; border-top: 3px solid var(--orange); }
.urg-inner { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.urg-strip h2 { color: var(--white); font-size: 32px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; margin-bottom: 10px; }
.urg-strip p { opacity: 0.8; font-size: 15px; max-width: 640px; }
.urg-phone { font-size: 40px; font-weight: 800; color: var(--orange); letter-spacing: -0.02em; display: block; line-height: 1; }
.urg-phone-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.15em; color: var(--orange); font-weight: 700; margin-bottom: 8px; display: block; }

@media (max-width: 1024px) {
  .detail-grid { grid-template-columns: 1fr; gap: 40px; }
  .sidebar { position: static; grid-template-columns: repeat(3, 1fr); }
  .info-bar { grid-template-columns: 1fr 1fr; margin-top: 0; }
  .info-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .chips-grid, .docs-mini, .features-grid, .acordos-grid { grid-template-columns: repeat(2, 1fr); }
  .urg-inner { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .info-bar { grid-template-columns: 1fr; }
  .chips-grid, .docs-mini, .features-grid, .acordos-grid { grid-template-columns: 1fr; }
}

/* ====== archive_medicos.html ====== */
/* ==== Page-specific (archive_medicos v2) ==== */
.main-grid { display: grid; grid-template-columns: 260px 1fr; gap: 48px; align-items: start; }
.filters-col { position: sticky; top: 100px; }
.filter-group { padding: 22px 0; border-bottom: 1px solid var(--line); }
.filter-group:first-child { padding-top: 0; }
.filter-group h4 { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--ink-muted); margin-bottom: 14px; }
.filter-list { display: flex; flex-direction: column; gap: 6px; }
.filter-option { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; font-size: 13px; color: var(--ink); cursor: pointer; border-radius: 2px; transition: background 0.15s; }
.filter-option:hover { background: var(--surface); }
.filter-option.active { background: var(--orange-soft); color: var(--orange-dark); font-weight: 600; }
.filter-option .count { font-size: 11px; color: var(--ink-soft); font-weight: 600; }
.filter-group-scroll { max-height: 220px; overflow-y: auto; padding-right: 4px; }
.clear-filters { margin-top: 16px; width: 100%; background: transparent; border: 1px solid var(--line); color: var(--ink); padding: 10px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; font-family: inherit; border-radius: var(--radius); transition: all 0.15s; }
.clear-filters:hover { border-color: var(--ink); background: var(--ink); color: var(--white); }

.results-bar { display: flex; justify-content: space-between; align-items: center; padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: 28px; flex-wrap: wrap; gap: 12px; }
.results-count { font-size: 15px; color: var(--ink-muted); }
.results-count strong { color: var(--ink); }
.sort-select { border: 1px solid var(--line); background: var(--white); padding: 10px 16px; font-family: inherit; font-size: 13px; font-weight: 600; color: var(--ink); border-radius: var(--radius); cursor: pointer; }

.active-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.chip-active { display: inline-flex; align-items: center; gap: 8px; background: var(--orange-soft); color: var(--orange-dark); padding: 6px 14px; border-radius: 2px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid rgba(237,139,0,0.25); }
.chip-active:hover { background: var(--orange); color: var(--white); }

.doctors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.doc-photo-placeholder { background: var(--ink); display: flex; align-items: flex-end; justify-content: center; position: relative; overflow: hidden; }
.doc-photo-placeholder svg { width: 55%; max-width: 140px; height: auto; display: block; }
.doc-photo-placeholder svg circle, .doc-photo-placeholder svg path { fill: var(--orange); }
.doc-photo-placeholder::after { content: 'foto por adicionar'; position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); font-size: 8px; color: rgba(255,255,255,0.5); text-transform: uppercase; letter-spacing: 0.15em; font-weight: 600; white-space: nowrap; }
.doc-om { font-size: 11px; color: var(--ink-soft); font-weight: 600; letter-spacing: 0.02em; margin-bottom: 6px; }

.pagination { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 56px; }
.pagination button { min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--line); background: var(--white); font-family: inherit; font-size: 13px; font-weight: 600; color: var(--ink); cursor: pointer; border-radius: 2px; transition: all 0.15s; }
.pagination button:hover { border-color: var(--ink); }
.pagination button.active { background: var(--ink); color: var(--white); border-color: var(--ink); }
.pagination .ellipsis { padding: 0 6px; color: var(--ink-soft); font-size: 13px; }

/* Dark search strip */
.search-strip { background: var(--ink); color: var(--white); padding: 56px 0; }
.search-strip-inner { display: flex; flex-direction: column; gap: 20px; max-width: 820px; }
.search-strip h2 { color: var(--white); font-size: 28px; font-weight: 800; letter-spacing: -0.02em; }
.search-box { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 3px; display: flex; align-items: center; padding: 4px 4px 4px 20px; }
.search-box svg { width: 18px; height: 18px; opacity: 0.6; margin-right: 12px; flex-shrink: 0; }
.search-box input { flex: 1; background: transparent; border: 0; color: var(--white); font-family: inherit; font-size: 15px; padding: 14px 0; outline: none; }
.search-box input::placeholder { color: rgba(255,255,255,0.5); }
.search-box button { background: var(--orange); color: var(--white); border: 0; padding: 13px 26px; border-radius: 2px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; font-family: inherit; }
.search-box button:hover { background: var(--orange-dark); }

@media (max-width: 1024px) {
  .main-grid { grid-template-columns: 1fr; }
  .filters-col { position: static; }
  .doctors-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .doctors-grid { grid-template-columns: 1fr; }
}

/* ====== perfil_medico_single.html ====== */
/* ==== Page-specific (perfil_medico_single v2) ==== */
/* Profile hero */
.profile-hero { background: var(--white); padding: 72px 0 56px; border-bottom: 1px solid var(--line); }
.profile-grid { display: grid; grid-template-columns: 320px 1fr; gap: 56px; align-items: start; }
.profile-photo { aspect-ratio: 4/5; background: var(--surface); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); position: relative; }
.profile-photo::before { content: ''; position: absolute; top: -12px; left: -12px; right: 28px; bottom: 28px; background: var(--orange); z-index: 0; border-radius: var(--radius); }
.profile-photo-inner { position: relative; z-index: 1; width: 100%; height: 100%; overflow: hidden; background: #F5F5F5; }
.profile-photo-inner img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.profile-role-badge { display: inline-block; background: var(--orange-soft); color: var(--orange-dark); padding: 6px 14px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; border-radius: 2px; margin-bottom: 16px; border: 1px solid rgba(237,139,0,0.25); }
.profile-name { font-size: 48px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; color: var(--ink); margin-bottom: 10px; }
.profile-subtitle { font-size: 18px; color: var(--ink-muted); margin-bottom: 28px; font-weight: 500; }

.profile-meta { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.profile-meta-row { display: grid; grid-template-columns: 160px 1fr; gap: 20px; font-size: 14px; }
.profile-meta-label { color: var(--ink-muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 11px; padding-top: 2px; }
.profile-meta-value { color: var(--ink); }
.profile-meta-value strong { font-weight: 700; }
.languages { display: flex; gap: 6px; flex-wrap: wrap; }
.lang-pill { background: var(--surface); border: 1px solid var(--line); padding: 4px 12px; border-radius: 2px; font-size: 12px; color: var(--ink); font-weight: 600; }

.profile-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Main content */
.main-grid { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }

.detail-block { margin-bottom: 48px; }
.detail-block h2 { font-size: 28px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; color: var(--ink); margin-bottom: 16px; }
.detail-block p { font-size: 16px; color: var(--ink-muted); line-height: 1.7; margin-bottom: 16px; }
.intro-text { font-size: 18px; line-height: 1.7; color: var(--ink); margin-bottom: 16px; }

.areas-list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin-top: 20px; }
.areas-list li { background: var(--surface); border: 1px solid var(--line); color: var(--ink); padding: 8px 16px; border-radius: 2px; font-size: 13px; font-weight: 600; transition: all 0.15s; }
.areas-list li:hover { border-color: var(--ink); }

/* Timeline */
.timeline { list-style: none; padding-left: 20px; border-left: 2px solid var(--line); margin-top: 20px; }
.timeline-item { position: relative; padding-bottom: 28px; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before { content: ''; position: absolute; left: -26px; top: 6px; width: 10px; height: 10px; background: var(--white); border: 2px solid var(--orange); }
.timeline-years { font-size: 12px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 4px; }
.timeline-title { font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 2px; line-height: 1.4; letter-spacing: -0.01em; }
.timeline-sub { font-size: 14px; color: var(--ink-muted); line-height: 1.5; }

/* Scientific list */
.bullet-list { list-style: none; display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.bullet-list li { position: relative; padding-left: 22px; font-size: 15px; line-height: 1.6; color: var(--ink); }
.bullet-list li::before { content: ''; position: absolute; left: 0; top: 10px; width: 12px; height: 2px; background: var(--orange); }

/* Sidebar */
.sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 18px; }
.side-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: var(--white); }
.side-card h3 { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 16px; color: var(--ink); }
.side-card-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.side-card-dark h3 { color: var(--orange); }

.unit-item { display: flex; gap: 14px; align-items: center; padding: 14px; background: var(--surface); border-radius: var(--radius); margin-bottom: 10px; transition: all 0.15s; }
.unit-item:last-child { margin-bottom: 0; }
.unit-item:hover { background: var(--ink); color: var(--white); }
.unit-item:hover .unit-link { color: var(--orange); }
.unit-ico { width: 36px; height: 36px; background: var(--white); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--orange); border-radius: var(--radius); }
.unit-ico svg { width: 18px; height: 18px; }
.unit-item:hover .unit-ico { background: var(--ink); border-color: var(--orange); }
.unit-content { flex: 1; min-width: 0; }
.unit-name { font-size: 14px; font-weight: 700; margin-bottom: 2px; line-height: 1.3; letter-spacing: -0.01em; }
.unit-link { font-size: 11px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }

.quick-info { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.quick-info li { display: flex; gap: 12px; font-size: 13px; color: var(--ink); line-height: 1.5; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.quick-info li:last-child { border-bottom: 0; padding-bottom: 0; }
.quick-info-label { color: var(--ink-muted); min-width: 90px; flex-shrink: 0; text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; font-weight: 700; padding-top: 2px; }

.side-cta-title { font-size: 22px; font-weight: 800; letter-spacing: -0.015em; margin-bottom: 8px; line-height: 1.2; }
.side-card-dark p { font-size: 14px; opacity: 0.75; margin-bottom: 20px; line-height: 1.5; }
.side-card-dark .btn { width: 100%; background: var(--orange); color: var(--white); border-color: var(--orange); }
.side-card-dark .btn:hover { background: var(--white); color: var(--orange); border-color: var(--white); }

/* Related doctors */
.related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

@media (max-width: 1024px) {
  .profile-grid { grid-template-columns: 260px 1fr; gap: 40px; }
  .profile-name { font-size: 36px; }
  .main-grid { grid-template-columns: 1fr; gap: 40px; }
  .sidebar { position: static; }
  .related-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .profile-grid { grid-template-columns: 1fr; }
  .profile-photo { max-width: 260px; margin: 0 auto; }
  .profile-meta-row { grid-template-columns: 1fr; gap: 4px; }
  .related-grid { grid-template-columns: 1fr; }
}

/* ====== archive_noticias.html ====== */
/* ==== Page-specific (archive_noticias v2) ==== */
.featured-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 28px; align-items: stretch; }
.featured-main { background: var(--ink); color: var(--white); border-radius: var(--radius); overflow: hidden; position: relative; min-height: 480px; display: flex; flex-direction: column; justify-content: flex-end; }
.featured-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; }
.featured-main::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,26,26,0) 40%, rgba(26,26,26,0.95) 100%); }
.featured-main-body { position: relative; z-index: 2; padding: 40px; }
.featured-main .news-cat { color: var(--orange); }
.featured-main h2 { font-size: 32px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; color: var(--white); margin-bottom: 12px; }
.featured-main p { font-size: 15px; opacity: 0.85; line-height: 1.6; margin-bottom: 16px; max-width: 640px; }
.featured-meta { display: flex; gap: 18px; font-size: 12px; opacity: 0.7; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; }

.featured-side { display: flex; flex-direction: column; gap: 16px; }
.side-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: var(--white); transition: all 0.15s; cursor: pointer; flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.side-card:hover { border-color: var(--ink); }
.side-card .news-cat { color: var(--orange); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 10px; display: block; }
.side-card h3 { font-size: 18px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; margin-bottom: 8px; }
.side-card:hover h3 { color: var(--orange); }
.side-card p { font-size: 13px; color: var(--ink-muted); line-height: 1.55; margin-bottom: 14px; }
.side-card .meta { font-size: 11px; color: var(--ink-soft); display: flex; gap: 12px; text-transform: uppercase; letter-spacing: 0.08em; }

/* Filter pills */
.filter-strip { padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); }
.filter-inner { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.filter-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--ink-muted); margin-right: 8px; }
.pill { padding: 8px 16px; font-size: 13px; font-weight: 600; border: 1px solid var(--line); background: var(--white); color: var(--ink); border-radius: 2px; cursor: pointer; transition: all 0.15s; }
.pill:hover { border-color: var(--ink); }
.pill.active { background: var(--ink); color: var(--white); border-color: var(--ink); }

.feed-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

.load-more-wrap { text-align: center; margin-top: 56px; }

/* Dark newsletter band */
.newsletter-dark { background: var(--ink); color: var(--white); padding: 80px 0; }
.newsletter-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: center; }
.newsletter-dark h2 { color: var(--white); font-size: 36px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.15; margin-bottom: 12px; }
.newsletter-dark p { font-size: 15px; opacity: 0.8; line-height: 1.6; max-width: 520px; }
.newsletter-form { display: flex; gap: 0; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 3px; padding: 4px 4px 4px 20px; align-items: center; }
.newsletter-form input { flex: 1; background: transparent; border: 0; color: var(--white); font-family: inherit; font-size: 15px; padding: 14px 0; outline: none; }
.newsletter-form input::placeholder { color: rgba(255,255,255,0.5); }
.newsletter-form button { background: var(--orange); color: var(--white); border: 0; padding: 13px 22px; border-radius: 2px; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; font-family: inherit; }
.newsletter-form button:hover { background: var(--orange-dark); }

@media (max-width: 1024px) {
  .featured-grid { grid-template-columns: 1fr; }
  .feed-grid { grid-template-columns: repeat(2, 1fr); }
  .newsletter-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 768px) {
  .feed-grid { grid-template-columns: 1fr; }
  .featured-main h2 { font-size: 24px; }
  .featured-main-body { padding: 24px; }
}

/* ============================================================
   Sprint 6 · variante "light" do spec-categories
   Usar [tqs_especialidades_categorias variant=light] em containers
   com fundo claro. Mantém grid mas inverte cores · cards brancos
   com bordas cinzentas, em vez de pretos com bordas semi-transparentes.
============================================================ */
.spec-categories--light {
    background: var(--line);
    border-color: var(--line);
}
.spec-categories--light .spec-cat {
    background: var(--white);
    color: var(--ink);
}
.spec-categories--light .spec-cat:hover {
    background: var(--surface);
}
.spec-categories--light .spec-cat-name { color: var(--ink); }
.spec-categories--light .spec-cat-count { color: var(--orange); }
.spec-categories--light .spec-cat-all {
    background: var(--ink);
    color: var(--white);
}
.spec-categories--light .spec-cat-all .spec-cat-name { color: var(--white); }
.spec-categories--light .spec-cat-all:hover { background: var(--orange); }
