/* ═══════════════════════════════════════════════════════════════
   CV Builder — Estilos globales
   Tema 1 "Clínico": tokens en :root (azul petróleo médico)
   Tema 2 "Brand":   tokens sobreescritos por themes.js en runtime
   Modo oscuro:      body.t-dark activa overrides de sombras/fondo
   ═══════════════════════════════════════════════════════════════ */

/* ── Tokens base (Tema 1 Clínico) ── */
:root {
  /* Fondos */
  --bg:           #F8FAFC;
  --bg-alt:       #EEF4FB;
  --card:         #FFFFFF;
  --muted:        #F1F5F9;
  --muted-fg:     #64748B;

  /* Tipografía */
  --fg:           #0F172A;
  --fg-soft:      #475569;

  /* Marca — Azul petróleo médico */
  --brand:        #1A3050;
  --brand-light:  #2760A0;
  --brand-dark:   #0F1E35;
  --brand-tint:   #E6F0FA;
  --brand-fg:     #FFFFFF;

  /* Acento clínico — Cian */
  --clinical:     #0EA5E9;
  --clinical-tint:#E0F4FD;
  --clinical-fg:  #FFFFFF;

  /* CTAs inmutables */
  --wa:           #25D366;
  --wa-dark:      #16A34A;
  --wa-tint:      #DCFCE7;
  --wa-fg:        #FFFFFF;
  --action:       #0D9488;
  --action-dark:  #0F766E;
  --action-fg:    #FFFFFF;

  /* Feedback */
  --star:         #F59E0B;
  --destructive:  #EF4444;

  /* Sombras */
  --shadow-xs:    0 1px 3px rgba(15,23,42,.05);
  --shadow-sm:    0 2px 8px  rgba(15,23,42,.07);
  --shadow-md:    0 8px 24px rgba(15,23,42,.10);
  --shadow-lg:    0 20px 48px rgba(15,23,42,.14);

  /* Radios */
  --radius-sm:    0.5rem;
  --radius:       0.75rem;
  --radius-lg:    1rem;
  --radius-xl:    1.5rem;
  --radius-full:  9999px;

  /* Extras (usados por themes.js) */
  --border:       #E2E8F0;
  --search-bg:    rgba(248,250,252,.96);
  --mobile-nav-bg:rgba(255,255,255,.94);
}

/* ── Modo oscuro (Tema 2 brand + dark) ── */
body.t-dark {
  color-scheme: dark;
}
body.t-dark .hero-text        { border-bottom-color: var(--border) !important }
body.t-dark .filter-tags-wrap { border-color: var(--border) !important }
body.t-dark #section-seguros  { border-color: var(--border) !important }
body.t-dark .final-cta        { border-color: var(--border) !important }

/* ── Reset & base ── */
*, *::before, *::after { box-sizing: border-box }
html { scroll-behavior: smooth }
html, body {
  margin: 0; padding: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body { padding-bottom: 96px }
img  { max-width: 100%; display: block }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit }
a  { color: inherit; text-decoration: none }
h1, h2, h3, h4 { margin: 0 0 .25rem; letter-spacing: -.02em }
.muted { color: var(--muted-fg); font-size: .875rem }

.container { max-width: 64rem; margin: 0 auto }

/* Card base */
.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  margin: 1rem;
}

/* ══════════════════════════════════════════════════
   Search bar — sticky multi-fila
══════════════════════════════════════════════════ */
#search-bar {
  position: sticky; top: 0; z-index: 40;
  background: var(--search-bg, rgba(248,250,252,.96));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 8px rgba(0,0,0,.06);
  transition: background .3s;
}

/* Fila 1 — buscador */
.sb-search-row {
  position: relative;
  max-width: 60rem; margin: 0 auto;
  padding: .55rem 1rem .45rem;
}
.sb-search-wrap {
  position: relative; display: flex; align-items: center;
}
.sb-ico {
  position: absolute; left: .85rem; top: 50%; transform: translateY(-50%);
  pointer-events: none; opacity: .45; flex-shrink: 0;
}
.sb-clear {
  position: absolute; right: .7rem; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; padding: 0;
  color: var(--muted-fg); line-height: 1;
  opacity: .6; transition: opacity .15s;
}
.sb-clear:hover { opacity: 1; }
#search-input {
  width: 100%; box-sizing: border-box;
  padding: .65rem 2.4rem .65rem 2.6rem;
  border-radius: var(--radius-full);
  border: 2px solid var(--border);
  background: var(--card);
  color: var(--fg);
  font-size: .88rem; font-family: inherit; outline: none;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
  transition: border-color .15s, box-shadow .15s;
}
#search-input::placeholder { color: var(--muted-fg) }
#search-input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--brand-tint), 0 2px 8px rgba(0,0,0,.07);
}
.search-results {
  position: absolute; left: 1rem; right: 1rem; top: calc(100% + .3rem);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  max-height: 60vh; overflow: auto; z-index: 50;
}
.search-result {
  display: block; padding: .65rem .85rem;
  border-bottom: 1px solid var(--border);
  font-size: .88rem; color: var(--fg);
  transition: background .1s;
}
.search-result:last-child { border-bottom: 0 }
.search-result small {
  display: block; color: var(--clinical);
  font-weight: 700; font-size: .68rem;
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: .15rem;
}
.search-result:hover { background: var(--brand-tint); color: var(--brand) }
.hidden { display: none !important }

/* Fila 2 — acciones rápidas */
.sb-links-row {
  display: flex; align-items: center; justify-content: center;
  gap: 0; max-width: 60rem; margin: 0 auto;
  padding: 0 1rem .4rem;
}
.sb-link {
  display: inline-flex; align-items: center; gap: .35rem;
  background: none; border: none; cursor: pointer; text-decoration: none;
  font-size: .74rem; font-weight: 600;
  color: var(--muted-fg);
  padding: .3rem .7rem;
  border-radius: var(--radius-full);
  transition: color .15s, background .15s;
  white-space: nowrap;
}
.sb-link:hover {
  color: var(--brand);
  background: var(--brand-tint);
}
.sb-sep {
  width: 1px; height: 1rem;
  background: var(--border);
  flex-shrink: 0;
}

/* Fila 3 — marquee integrado (sin padding extra) */
.sb-marquee { margin: 0; border-radius: 0; }

/* ══════════════════════════════════════════════════
   Marquee ticker
══════════════════════════════════════════════════ */
.marquee {
  overflow: hidden;
  background: var(--brand);
  color: var(--brand-fg);
  padding: .4rem 0;
  white-space: nowrap;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.marquee-track {
  display: inline-flex; gap: 2rem;
  animation: marquee 32s linear infinite;
  font-weight: 600; font-size: .73rem; letter-spacing: .1em;
}
@keyframes marquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }
.marquee-track .mq-row { display: inline-flex; align-items: center; gap: 0 }
.marquee-track .mq-item,
.marquee-track .mq-link {
  display: inline-block; padding: 0 .65rem;
  color: rgba(255,255,255,.8); background: transparent; border: 0; cursor: default;
  font-size: .71rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
}
.marquee-track .mq-link { cursor: pointer; font-weight: 700; color: rgba(255,255,255,.95) }
.marquee-track .mq-link:hover { color: #fff; text-decoration: underline }
.marquee-track .mq-sep { color: rgba(255,255,255,.25); padding: 0 .1rem }

/* ══════════════════════════════════════════════════
   Hero SEO text
══════════════════════════════════════════════════ */
.hero-text {
  padding: 1.4rem 1rem .75rem;
  background: var(--brand-tint);
  border-bottom: 1px solid rgba(26,48,80,.1);
  position: relative;
}
.hero-text::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--brand), var(--clinical));
}
.hero-text h1 {
  font-size: clamp(1.35rem, 4vw, 1.65rem);
  line-height: 1.18; font-weight: 800; letter-spacing: -.025em;
  color: var(--brand);
}
.hero-text p {
  font-size: .88rem; color: var(--fg-soft);
  margin: .5rem 0 0; line-height: 1.65;
}

/* ══════════════════════════════════════════════════
   Doctor hero card
══════════════════════════════════════════════════ */
#doctor-hero {
  margin: 1rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
/* La barra de cabecera la genera el CSS con ::before en .hero-top */
.hero-top {
  display: flex; gap: 1rem; align-items: flex-start;
  padding: 1.15rem 1.15rem .85rem;
  background: linear-gradient(135deg, var(--brand-tint) 0%, var(--card) 60%);
  border-bottom: 1px solid var(--border);
}
.hero-top img {
  width: 78px; height: 78px;
  border-radius: 50%; object-fit: cover; flex-shrink: 0;
  border: 3px solid var(--card);
  box-shadow: 0 0 0 3px var(--brand), var(--shadow-sm);
}
.hero-top h1 {
  font-size: 1.05rem; font-weight: 800; margin: 0 0 .2rem; letter-spacing: -.02em;
  color: var(--fg);
}
.hero-meta { font-size: .78rem; color: var(--muted-fg); margin: .15rem 0 0; line-height: 1.4 }
.hero-meta .icon { vertical-align: -.1em }
.stars { color: var(--star); font-size: .82rem; margin: .25rem 0; line-height: 1 }
.star-fill { fill: var(--star); stroke: none }
.hero-cta {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: .5rem; padding: .85rem 1.15rem;
}

/* ══════════════════════════════════════════════════
   Botones
══════════════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .4rem; padding: .7rem 1rem;
  border-radius: var(--radius);
  font-weight: 700; font-size: .85rem; font-family: inherit;
  transition: opacity .15s, transform .1s, box-shadow .15s;
  min-height: 44px; cursor: pointer;
}
.btn:active { transform: scale(.97) }
.btn-wa    { background: var(--wa);     color: var(--wa-fg) }
.btn-wa:hover { opacity: .88 }
.btn-call  { background: var(--action); color: var(--action-fg) }
.btn-call:hover { opacity: .88 }
.btn-primary { background: var(--brand); color: var(--brand-fg) }
.btn-primary:hover { background: var(--brand-light) }
.btn-accent  { background: var(--clinical); color: var(--clinical-fg) }
.btn-accent:hover { opacity: .9 }
.btn-outline {
  border: 1.5px solid var(--border);
  background: var(--card); color: var(--fg-soft);
}
.btn-outline:hover { border-color: var(--brand); color: var(--brand) }

/* ══════════════════════════════════════════════════
   Filter pills
══════════════════════════════════════════════════ */
.filters {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: .4rem; padding: 1rem 1rem 0;
}
.filter-pill {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .45rem 1rem;
  border-radius: var(--radius-full);
  border: 1.5px solid var(--border);
  background: var(--card);
  color: var(--fg-soft);
  font-weight: 600; font-size: .75rem; font-family: inherit;
  transition: all .15s;
  cursor: pointer;
  box-shadow: var(--shadow-xs);
}
.filter-pill .icon { opacity: .7 }
.filter-pill.active {
  background: var(--brand); color: var(--brand-fg);
  border-color: var(--brand);
  box-shadow: var(--shadow-sm);
}
.filter-pill.active .icon { opacity: 1 }
.filter-pill:hover:not(.active) {
  border-color: var(--brand); color: var(--brand);
  background: var(--brand-tint);
  transform: translateY(-1px); box-shadow: var(--shadow-sm);
}
.filter-pill:hover:not(.active) .icon { opacity: 1 }
.filter-tags-wrap {
  margin: .6rem 1rem 0;
  background: var(--brand-tint);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: .8rem 1rem;
  animation: slideDown .18s ease;
}
@keyframes slideDown { from { opacity:0; transform:translateY(-6px) } to { opacity:1; transform:none } }
.filter-tags-wrap strong {
  display: flex; align-items: center; gap: .35rem;
  margin-bottom: .5rem; font-size: .8rem; color: var(--brand);
}
.filter-tags-wrap .tag {
  display: inline-block;
  background: var(--card);
  border: 1px solid var(--border);
  padding: .2rem .6rem;
  border-radius: var(--radius-full);
  font-size: .72rem; margin: .15rem .15rem 0 0;
  color: var(--fg-soft);
}

/* ══════════════════════════════════════════════════
   Quick book
══════════════════════════════════════════════════ */
.quick-book { margin: .85rem 1rem 0 }
.quick-book a {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  background: linear-gradient(135deg, var(--brand), var(--brand-light));
  color: var(--brand-fg);
  padding: .85rem 1rem;
  border-radius: var(--radius-full);
  font-size: .875rem; font-weight: 700;
  box-shadow: var(--shadow-sm);
  transition: opacity .15s, box-shadow .15s, transform .1s;
  min-height: 48px;
}
.quick-book a:hover {
  opacity: .92; box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}
.quick-book strong { color: rgba(255,255,255,.75); font-weight: 400 }

/* ══════════════════════════════════════════════════
   Servicios
══════════════════════════════════════════════════ */
#section-servicios { margin: 2.5rem 0 0; padding: 0 1rem }
#section-servicios h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand); margin-bottom: .25rem;
}
.tabs {
  display: flex; gap: .4rem;
  overflow-x: auto; padding: .65rem 0 .85rem;
  scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none }
.tab {
  flex-shrink: 0; padding: .45rem .95rem;
  border-radius: var(--radius-full);
  background: var(--muted); color: var(--muted-fg);
  font-weight: 700; font-size: .73rem; font-family: inherit;
  transition: all .15s; min-height: 34px;
  border: 1.5px solid transparent;
}
.tab.active { background: var(--brand); color: var(--brand-fg); border-color: var(--brand) }
.tab:hover:not(.active) {
  background: var(--brand-tint); color: var(--brand); border-color: var(--brand);
}
.svc-grid {
  display: flex; gap: .65rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: .6rem; scrollbar-width: none; padding-right: .25rem;
}
.svc-grid::-webkit-scrollbar { display: none }
.svc-card {
  flex: 0 0 150px; scroll-snap-align: start;
  background: var(--card);
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
  transition: box-shadow .2s, transform .2s;
}
.svc-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px) }
.svc-card .img { position: relative; aspect-ratio: 3/2; background: var(--muted) }
.svc-card .img img { width: 100%; height: 100%; object-fit: cover }
.svc-card .badge {
  position: absolute; top: .35rem; left: .35rem;
  font-size: .58rem; font-weight: 700;
  padding: .15rem .45rem; border-radius: .25rem;
  background: var(--brand); color: var(--brand-fg);
  letter-spacing: .03em;
}
.svc-card .badge.popular { background: var(--clinical); color: var(--clinical-fg) }
.svc-card .body { padding: .6rem }
.svc-card h3 { font-size: .76rem; font-weight: 700; line-height: 1.25; min-height: 2.5em }
.svc-card .btn { width: 100%; margin-top: .45rem; font-size: .72rem; padding: .55rem; min-height: 34px }

/* ══════════════════════════════════════════════════
   Categorías médicas
══════════════════════════════════════════════════ */
#section-categorias { margin: 2.5rem 0 0; padding: 0 1rem }
#section-categorias h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; color: var(--brand);
}
.cat-grid {
  display: grid; grid-template-columns: repeat(2,1fr);
  gap: .55rem; margin-top: .75rem;
}
@media (min-width: 640px) { .cat-grid { grid-template-columns: repeat(3,1fr) } }
.cat-btn {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: .4rem; padding: .85rem;
  border: 1.5px solid var(--border);
  background: var(--card);
  border-radius: var(--radius);
  text-align: left; font-weight: 700; font-size: .8rem; font-family: inherit;
  transition: all .15s; box-shadow: var(--shadow-xs);
  min-height: 44px;
}
.cat-btn:hover {
  border-color: var(--brand);
  background: var(--brand-tint);
  transform: translateY(-2px); box-shadow: var(--shadow-sm);
}
.cat-btn .icon { color: var(--clinical); transition: color .15s }
.cat-btn:hover .icon { color: var(--brand) }

/* ══════════════════════════════════════════════════
   WhatsApp CTA
══════════════════════════════════════════════════ */
.wa-cta-wrap { margin: 2.5rem 1rem 0 }
.wa-cta {
  display: flex; align-items: center; justify-content: center; gap: .55rem;
  background: var(--wa); color: var(--wa-fg);
  font-weight: 700; padding: 1rem 1.25rem;
  border-radius: var(--radius-lg); font-size: 1rem;
  box-shadow: 0 6px 20px rgba(37,211,102,.3);
  transition: opacity .15s, transform .1s, box-shadow .15s;
  min-height: 52px;
}
.wa-cta:hover {
  opacity: .9; transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(37,211,102,.4);
}

/* ══════════════════════════════════════════════════
   Reseñas
══════════════════════════════════════════════════ */
#section-resenas { margin: 2.5rem 0 0; padding: 0 1rem }
#section-resenas h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand); margin-bottom: .75rem;
}
.review-grid {
  display: grid; grid-template-columns: 1fr; gap: .65rem;
}
@media (min-width: 640px) { .review-grid { grid-template-columns: repeat(2,1fr) } }
.review {
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--brand-tint);
  border-radius: var(--radius);
  padding: 1rem;
  box-shadow: var(--shadow-xs);
  transition: border-left-color .2s, box-shadow .2s;
}
.review:hover { border-left-color: var(--brand); box-shadow: var(--shadow-sm) }
.review-head { display: flex; gap: .55rem; align-items: center; margin-bottom: .5rem }
.avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--brand); color: var(--brand-fg);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .85rem; flex-shrink: 0;
}
.review-name { font-weight: 700; font-size: .85rem; color: var(--fg) }
.verified-ico { color: var(--clinical) }
.review-text { font-size: .85rem; color: var(--fg-soft); margin: .25rem 0 0; line-height: 1.6 }

/* ══════════════════════════════════════════════════
   Credenciales / Galería / CV
══════════════════════════════════════════════════ */
#section-credenciales { margin: 2.5rem 0 0; padding: 0 1rem }
#section-credenciales h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand); text-align: center; margin-bottom: .75rem;
}
.gallery {
  display: flex; gap: .65rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: .6rem; scrollbar-width: none;
}
.gallery::-webkit-scrollbar { display: none }
.gallery .g-item {
  flex: 0 0 15rem; height: 15rem;
  border-radius: var(--radius); overflow: hidden;
  scroll-snap-align: center;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.gallery img { width: 100%; height: 100%; object-fit: cover }
.gallery-dots { display: flex; justify-content: center; gap: .4rem; margin-top: .6rem }
.gallery-dots .dot {
  width: .5rem; height: .5rem; border-radius: var(--radius-full);
  background: var(--border); border: 0; cursor: pointer;
  transition: all .25s; padding: 0;
}
.gallery-dots .dot.active { width: 1.25rem; background: var(--brand) }
.cred-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.1rem;
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: .85rem;
  margin-top: 1rem;
}
@media (min-width: 640px) { .cred-card { flex-direction: row } }
.cred-card img {
  width: 100%; max-width: 10rem; height: 10rem;
  object-fit: cover; border-radius: var(--radius);
  border: 2px solid var(--border);
}
.cred-list { flex: 1; display: flex; flex-direction: column; gap: .5rem }
.cred-item {
  display: flex; gap: .5rem; align-items: flex-start;
  font-size: .84rem; color: var(--fg-soft);
}
.cred-item .ico { color: var(--clinical); flex-shrink: 0; margin-top: .05rem }

/* CV por secciones */
.cv-grid { display: grid; gap: .65rem; margin-top: .85rem }
.cv-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--clinical);
  border-radius: var(--radius);
  padding: .95rem 1rem;
  box-shadow: var(--shadow-xs);
}
.cv-card h3 {
  font-size: .88rem; font-weight: 700;
  margin-bottom: .45rem; color: var(--brand);
  display: flex; align-items: center; gap: .4rem;
}
.cv-card ul {
  margin: 0; padding-left: 1rem;
  color: var(--fg-soft); font-size: .84rem; line-height: 1.6;
}
.cv-card li { margin-bottom: .25rem }
.cert-img { margin-top: 1rem; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm) }

/* Certificados y diplomas (galería dinámica) */
.cert-section { margin-top: 1.5rem; }
.cert-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .75rem;
}
.cert-item {
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  background: var(--card);
}
.cert-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cert-caption {
  font-size: .76rem; font-weight: 600;
  color: var(--fg);
  text-align: center;
  padding: .45rem .7rem;
  line-height: 1.35;
  background: var(--muted);
  border-top: 1px solid var(--border);
}

/* Horario hero inline */
.hero-schedule {
  display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem;
  font-size: .78rem;
}
.hero-schedule span { white-space: nowrap; }

/* Horario en tarjeta de ubicación */
.schedule-block {
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.schedule-block h3 {
  display: flex; align-items: center; gap: .4rem;
  font-size: .9rem; font-weight: 700;
  color: var(--brand); margin-bottom: .6rem;
}
.schedule-table { width: 100%; border-collapse: collapse; }
.schedule-table tr + tr td { border-top: 1px solid var(--border); }
.sch-days {
  padding: .45rem .5rem .45rem 0;
  font-size: .84rem; font-weight: 600; color: var(--fg);
  width: 55%;
}
.sch-hours {
  padding: .45rem 0;
  font-size: .84rem; font-weight: 700; color: var(--brand);
  text-align: right;
}
.sch-note {
  display: flex; align-items: center; gap: .35rem;
  margin-top: .6rem;
  font-size: .76rem; color: var(--fg-soft);
}

/* ══════════════════════════════════════════════════
   Métodos de pago
══════════════════════════════════════════════════ */
#section-pagos { margin: 2.5rem 0 0; padding: 0 1rem }
.pay-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.pay-card h3 {
  font-size: 1rem; font-weight: 700;
  margin-bottom: .6rem;
  display: flex; align-items: center; gap: .4rem;
  color: var(--brand);
}
.pay-methods { display: flex; flex-wrap: wrap; gap: .5rem .6rem; }
.pay-badge {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .28rem .75rem;
  background: var(--muted);
  border-radius: 6px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--fg-soft);
  min-width: 2.6rem;
  text-align: center;
}
/* Badge con imagen de logo */
.pay-badge-img {
  padding: .2rem .4rem;
  background: #fff;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  min-width: 3rem;
  min-height: 2rem;
}
.pay-badge-img img {
  max-height: 22px;
  max-width: 52px;
  object-fit: contain;
  display: block;
}
.pay-badge-fallback { display: none; }
.pay-note { font-size: .78rem; color: var(--muted-fg); margin-top: .6rem }
.pay-highlights {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: .45rem .85rem; margin-top: .85rem; font-size: .84rem;
}
.pay-highlights span { display: inline-flex; gap: .35rem; align-items: center; font-weight: 500 }
.pay-highlights .icon { color: var(--clinical) }

/* ══════════════════════════════════════════════════
   Aseguradoras
══════════════════════════════════════════════════ */
#section-seguros {
  margin: 2.5rem 0 0; padding: 1.5rem 1rem;
  background: var(--brand-tint);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
#section-seguros h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; color: var(--brand);
  display: flex; align-items: center; gap: .45rem;
}
.ins-grid {
  display: grid; grid-template-columns: repeat(2,1fr);
  gap: .55rem; margin-top: .85rem;
}
@media (min-width: 640px) { .ins-grid { grid-template-columns: repeat(4,1fr) } }
.ins-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: .6rem;
  display: flex; align-items: center; justify-content: center;
  height: 60px; font-weight: 600; font-size: .78rem; text-align: center;
  box-shadow: var(--shadow-xs); color: var(--fg-soft);
  transition: box-shadow .15s, transform .15s;
}
.ins-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-1px) }
.ins-card img { max-height: 38px; max-width: 90%; object-fit: contain }
.ins-card { flex-direction: column; gap: .3rem; }
.ins-initials {
  width: 56px; height: 28px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: .65rem; font-weight: 800; color: #fff; letter-spacing: .04em;
}
.ins-name { font-size: .64rem; font-weight: 600; text-align: center; color: var(--fg-soft); line-height: 1.2; }

/* ══════════════════════════════════════════════════
   Ubicación / Mapa
══════════════════════════════════════════════════ */
#section-ubicacion { margin: 2.5rem 0 0; padding: 0 1rem }
.loc-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.loc-card h2 {
  display: flex; align-items: center; gap: .45rem;
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; color: var(--brand);
}
.loc-grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: .75rem; margin-top: .85rem;
  padding-bottom: .5rem;
  scrollbar-width: none;
}
.loc-grid::-webkit-scrollbar { display: none }
@media (min-width: 640px) {
  .loc-grid { display: grid; grid-template-columns: repeat(2,1fr); overflow-x: visible; padding-bottom: 0; }
}
.loc-item {
  flex: 0 0 min(85vw, 340px);
  scroll-snap-align: start;
  border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
}
@media (min-width: 640px) { .loc-item { flex: unset; min-width: unset; } }
.loc-item .map { aspect-ratio: 16/9; background: var(--muted) }
.loc-item iframe { width: 100%; height: 100%; border: 0 }
.loc-body { padding: .75rem .85rem }
.loc-body p { margin: 0; font-size: .84rem }

/* Horario por sede */
.loc-schedule { margin: .55rem 0 .4rem; }
.loc-schedule .schedule-table { width: 100%; border-collapse: collapse; }
.loc-schedule .schedule-table tr + tr td { border-top: 1px solid var(--border); }
.loc-schedule .sch-days  { padding: .32rem .4rem .32rem 0; font-size: .78rem; font-weight: 600; color: var(--fg); width: 58%; }
.loc-schedule .sch-hours { padding: .32rem 0; font-size: .78rem; font-weight: 700; color: var(--brand); text-align: right; }
.loc-schedule .sch-note  { display: flex; align-items: center; gap: .3rem; margin-top: .35rem; font-size: .71rem; color: var(--fg-soft); }

/* Contacto por sede (teléfono + WA) */
.loc-contact { display: flex; gap: .5rem; margin: .5rem 0 .4rem; flex-wrap: wrap; }
.loc-contact-btn {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .38rem .75rem; border-radius: var(--radius-full);
  font-size: .78rem; font-weight: 600; text-decoration: none;
  border: 1px solid var(--border);
  background: var(--muted); color: var(--fg);
  transition: background .15s, color .15s;
}
.loc-contact-btn:hover { background: var(--brand-tint); color: var(--brand); border-color: var(--brand); }
.loc-wa-btn { background: rgba(37,211,102,.08); color: #15803d; border-color: rgba(37,211,102,.25); }
.loc-wa-btn:hover { background: rgba(37,211,102,.18); color: #166534; }
.loc-action {
  display: flex; flex-direction: column; align-items: center;
  gap: .3rem; padding: .65rem .4rem;
  border-radius: var(--radius-sm);
  font-size: .68rem; font-weight: 600; text-align: center;
  border: 1px solid transparent;
  transition: opacity .15s, transform .1s; min-height: 52px;
}
.loc-action:hover { opacity: .85; transform: translateY(-1px) }
.la-call  { background: rgba(14,165,233,.08);  color: var(--clinical);  border-color: rgba(14,165,233,.18) }
.la-wa    { background: rgba(37,211,102,.08);  color: #15803D;          border-color: rgba(37,211,102,.2) }
.la-maps  { background: var(--brand-tint);     color: var(--brand);     border-color: var(--border) }
.la-waze  { background: rgba(6,182,212,.08);   color: #0891B2;          border-color: rgba(6,182,212,.18) }
.la-uber  { background: rgba(0,0,0,.04);       color: var(--fg);        border-color: var(--border) }
.la-didi  { background: rgba(249,115,22,.07);  color: #EA580C;          border-color: rgba(249,115,22,.18) }

/* ══════════════════════════════════════════════════
   Condiciones
══════════════════════════════════════════════════ */
#section-enfermedades { margin: 2.5rem 0 0; padding: 0 1rem }
#section-enfermedades h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; color: var(--brand);
}
.cond-group { margin-top: 1.25rem }
.cond-group h3 {
  font-size: .88rem; font-weight: 700; margin-bottom: .5rem; color: var(--brand);
  border-left: 3px solid var(--clinical); padding-left: .55rem;
}
.cond-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .35rem }
@media (min-width: 640px) { .cond-grid { grid-template-columns: repeat(3,1fr) } }
.cond-btn {
  display: flex; align-items: center; gap: .4rem;
  padding: .6rem .7rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: .77rem; font-weight: 500; text-align: left; font-family: inherit;
  transition: all .15s; min-height: 42px; color: var(--fg);
}
.cond-btn:hover { border-color: var(--brand); background: var(--brand-tint); color: var(--brand) }
.cond-btn .icon { color: var(--clinical); flex-shrink: 0 }

/* ══════════════════════════════════════════════════
   FAQ
══════════════════════════════════════════════════ */
#section-faq { margin: 2.5rem 1rem 0 }
#section-faq h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand); margin-bottom: .75rem;
}
.faq-item { border-bottom: 1px solid var(--border) }
.faq-q {
  width: 100%; text-align: left; padding: .85rem 0;
  font-weight: 600; font-size: .9rem; font-family: inherit;
  display: flex; justify-content: space-between; align-items: center; gap: .5rem;
  color: var(--fg); transition: color .15s;
}
.faq-q:hover { color: var(--brand) }
.faq-q .icon { color: var(--brand); transition: transform .2s; flex-shrink: 0 }
.faq-q.open .icon { transform: rotate(90deg); color: var(--clinical) }
.faq-a {
  display: none; padding: 0 0 .85rem;
  font-size: .875rem; color: var(--fg-soft); line-height: 1.65;
}
.faq-a.open { display: block }

/* ══════════════════════════════════════════════════
   Redes sociales
══════════════════════════════════════════════════ */
#section-social { margin: 2.5rem 0 0; padding: 0 1rem; text-align: center }
#section-social h2 {
  font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand); margin-bottom: .75rem;
}
.social-row { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem }
.social-btn {
  width: 52px; height: 52px; border-radius: 50%;
  color: #fff; display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-sm);
  transition: transform .15s, box-shadow .15s;
}
.social-btn:hover { transform: scale(1.1); box-shadow: var(--shadow-md) }
.social-btn .icon { width: 1.35rem; height: 1.35rem }

/* ══════════════════════════════════════════════════
   Final CTA
══════════════════════════════════════════════════ */
.final-cta {
  margin: 3rem 1rem 0; padding: 2rem 1.5rem; text-align: center;
  background: var(--brand-tint);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  position: relative; overflow: hidden;
}
.final-cta::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--brand), var(--clinical));
}
.final-cta .fc-title {
  font-size: 1.1rem; font-weight: 800; color: var(--brand); margin: 0; letter-spacing: -.015em;
}
.final-cta .fc-sub {
  font-size: .88rem; color: var(--fg-soft); margin: .5rem 0 0;
}
.final-cta .fc-btn { display: inline-flex; margin-top: 1.25rem; padding: .9rem 1.75rem }

/* ══════════════════════════════════════════════════
   Footer
══════════════════════════════════════════════════ */
footer {
  margin-top: 3rem; padding: 1.25rem 1rem; text-align: center;
  color: var(--muted-fg); font-size: .78rem;
  border-top: 1px solid var(--border);
}

/* ══════════════════════════════════════════════════
   Floating WhatsApp
══════════════════════════════════════════════════ */
.floating-wa {
  position: fixed; bottom: 86px; right: 1rem; z-index: 45;
  width: 54px; height: 54px;
  background: var(--wa); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 20px rgba(37,211,102,.4);
  animation: wa-glow 2.2s ease-in-out infinite alternate;
}
@keyframes wa-glow {
  from { box-shadow: 0 6px 20px rgba(37,211,102,.35) }
  to   { box-shadow: 0 8px 28px rgba(37,211,102,.65) }
}
.wa-pulse {
  position: absolute; inset: -4px; border-radius: 50%;
  border: 2px solid var(--wa); opacity: .55;
  animation: wa-pulse 1.8s ease-out infinite;
}
@keyframes wa-pulse {
  0%   { transform: scale(.92); opacity: .7 }
  100% { transform: scale(1.28); opacity: 0 }
}

/* ══════════════════════════════════════════════════
   Mobile bottom nav
══════════════════════════════════════════════════ */
.mobile-nav {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
  margin: .45rem .5rem;
  background: var(--mobile-nav-bg, rgba(255,255,255,.94));
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex; justify-content: space-around;
  padding: .35rem .25rem;
  transition: background .3s;
}
@media (min-width: 768px) { .mobile-nav, .floating-wa { display: none } }
.mn-btn {
  display: flex; flex-direction: column; align-items: center;
  gap: .08rem; padding: .35rem .75rem;
  font-size: .6rem; font-weight: 600; font-family: inherit;
  border-radius: var(--radius-sm);
  color: var(--muted-fg); transition: color .15s;
  min-width: 48px; min-height: 44px;
}
.mn-btn .icon { width: 1.2rem; height: 1.2rem }
.mn-wa   { color: #15803D }
.mn-call { color: var(--action) }

/* Mobile menu sheet */
.mobile-menu { position: fixed; inset: 0; z-index: 60 }
.mm-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.4); backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.mm-panel {
  position: absolute; bottom: 76px; left: .65rem; right: .65rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 1.1rem;
  box-shadow: var(--shadow-lg);
}
.mm-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: .75rem;
}
.mm-head strong { color: var(--brand); font-size: .9rem }
.mm-close {
  font-size: 1.35rem; line-height: 1; color: var(--muted-fg);
  padding: .1rem .45rem; border-radius: var(--radius-full);
  transition: color .15s;
}
.mm-close:hover { color: var(--fg) }
.mm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem }
.mm-grid button {
  display: flex; align-items: center; gap: .45rem;
  padding: .65rem .75rem; border-radius: var(--radius-sm);
  font-size: .82rem; font-family: inherit; text-align: left;
  color: var(--fg); transition: background .15s, color .15s;
}
.mm-grid button:hover { background: var(--brand-tint); color: var(--brand) }
.mm-foot {
  margin-top: .85rem; padding-top: .85rem;
  border-top: 1px solid var(--border);
}
.mm-foot p {
  margin: 0 0 .55rem; text-align: center;
  font-size: .75rem; color: var(--muted-fg);
}
.mm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem }
.mm-actions .btn { padding: .6rem; font-size: .8rem }

/* ══════════════════════════════════════════════════
   Modal
══════════════════════════════════════════════════ */
.modal {
  position: fixed; inset: 0; z-index: 70;
  display: flex; align-items: center; justify-content: center; padding: 1rem;
}
@media (max-width: 640px) {
  .modal { align-items: flex-end; padding: 0 }
  .modal-content { border-radius: var(--radius-xl) var(--radius-xl) 0 0 !important; max-height: 90vh !important }
}
.modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(15,23,42,.55); backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.modal-content {
  position: relative; background: var(--card);
  border-radius: var(--radius-lg); max-width: 32rem; width: 100%;
  max-height: 85vh; overflow: auto; padding: 1.5rem;
  box-shadow: var(--shadow-lg); color: var(--fg);
}
.modal-close {
  position: absolute; top: .75rem; right: .75rem;
  font-size: 1.45rem; line-height: 1; color: var(--muted-fg);
  padding: .2rem .5rem; border-radius: var(--radius-full);
  transition: color .15s, background .15s;
}
.modal-close:hover { color: var(--fg); background: var(--muted) }
.modal-content h3 {
  font-size: 1.1rem; font-weight: 800; margin-bottom: .5rem;
  color: var(--brand); letter-spacing: -.015em;
}
.modal-content h4 {
  font-size: .85rem; font-weight: 700; margin: .85rem 0 .25rem; color: var(--brand);
}
.modal-content ul {
  margin: .25rem 0; padding-left: 1.1rem;
  font-size: .875rem; color: var(--fg-soft); line-height: 1.6;
}
.modal-content p { font-size: .875rem; line-height: 1.6; color: var(--fg); margin: .25rem 0 }
.modal-content iframe { width: 100%; border: 0; border-radius: var(--radius-sm) }

/* ══════════════════════════════════════════════════
   Sistema de iconos Lucide
══════════════════════════════════════════════════ */
.icon {
  width: 1.1rem; height: 1.1rem;
  stroke-width: 1.75;
  display: inline-block;
  vertical-align: -.125em;
  flex-shrink: 0;
}
.icon-sm   { width: .875rem; height: .875rem }
.icon-lg   { width: 1.35rem; height: 1.35rem }
.icon-xl   { width: 1.75rem; height: 1.75rem }
.icon-brand    { color: var(--brand) }
.icon-clinical { color: var(--clinical) }
.icon-wa       { color: var(--wa) }
.icon-muted    { color: var(--muted-fg) }
.search-icon .icon  { width: 1rem; height: 1rem; opacity: .45 }
.social-btn  .icon  { width: 1.35rem; height: 1.35rem }
.loc-action  .icon  { width: 1.35rem; height: 1.35rem }
.faq-q       .icon  { transition: transform .2s; color: var(--brand) }
.faq-q.open  .icon  { transform: rotate(90deg); color: var(--clinical) }
.cat-btn     .icon  { width: 1.3rem; height: 1.3rem; color: var(--clinical) }
.cat-btn:hover .icon { color: var(--brand) }
.mn-btn      .icon  { width: 1.2rem; height: 1.2rem }

/* ══════════════════════════════════════════════════
   Tema 3 — Marketplace Médico Premium (t-market)
   Mismos tokens de color que t-brand.
   Solo overrides de jerarquía visual y conversión.
══════════════════════════════════════════════════ */

/* ── Elevación base ── */
body.t-market .card,
body.t-market #doctor-hero,
body.t-market .cred-card,
body.t-market .pay-card,
body.t-market .loc-card {
  box-shadow: var(--shadow-md);
}
body.t-market .cred-card,
body.t-market .pay-card,
body.t-market .loc-card {
  transition: box-shadow .25s, transform .22s;
}
body.t-market .cred-card:hover,
body.t-market .pay-card:hover,
body.t-market .loc-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-3px);
}

/* ── Hero — foto más grande con anillo doble ── */
body.t-market .hero-top {
  background: linear-gradient(150deg, var(--brand-tint) 0%, var(--clinical-tint, var(--brand-tint)) 55%, var(--card) 100%);
  border-bottom: 2px solid var(--brand-tint);
  padding: 1.35rem 1.2rem 1rem;
}
body.t-market .hero-top img {
  width: 94px; height: 94px;
  border: 3px solid var(--card);
  box-shadow: 0 0 0 3px var(--brand), 0 0 0 6px var(--brand-tint), var(--shadow-sm);
}
body.t-market .hero-top h1 { font-size: 1.1rem }

/* ── Barra superior del hero-text más gruesa ── */
body.t-market .hero-text::before {
  height: 4px;
  background: linear-gradient(90deg, var(--brand), var(--clinical), var(--brand));
}

/* ── Botones principales — degradados ── */
body.t-market .btn-primary {
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  box-shadow: var(--shadow-sm);
}
body.t-market .btn-primary:hover {
  background: linear-gradient(135deg, var(--brand-light), var(--brand));
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
  opacity: 1;
}
body.t-market .btn-accent {
  background: linear-gradient(135deg, var(--clinical), var(--brand));
  color: var(--clinical-fg);
}
body.t-market .btn-accent:hover {
  opacity: 1;
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

/* ── Filter pills — active con degradado ── */
body.t-market .filter-pill.active {
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  border-color: transparent;
  box-shadow: var(--shadow-sm);
}
body.t-market .filter-pill:hover:not(.active) {
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}

/* ── Tabs de servicios — active con degradado ── */
body.t-market .tab.active {
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  border-color: transparent;
}

/* ── Quick book — más prominente ── */
body.t-market .quick-book a {
  background: linear-gradient(135deg, var(--brand), var(--clinical));
  min-height: 52px;
  font-size: .9rem;
  letter-spacing: -.01em;
  box-shadow: var(--shadow-md);
}
body.t-market .quick-book a:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
  opacity: 1;
}

/* ── Servicios — tarjetas más anchas, CTA de marca ── */
body.t-market .svc-card {
  flex: 0 0 170px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow .22s, transform .22s;
}
body.t-market .svc-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-5px);
}
body.t-market .svc-card .badge {
  font-size: .62rem;
  padding: .2rem .55rem;
  border-radius: var(--radius-sm);
}
body.t-market .svc-card .badge.popular {
  background: linear-gradient(90deg, var(--brand), var(--clinical));
  color: #fff;
}
body.t-market .svc-card .body .btn {
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  color: var(--brand-fg);
  font-size: .74rem;
  min-height: 36px;
  box-shadow: none;
  border-radius: var(--radius-sm);
}
body.t-market .svc-card .body .btn:hover {
  background: linear-gradient(135deg, var(--brand-light), var(--brand));
  transform: none;
  opacity: 1;
}

/* ── Categorías médicas — con hover más llamativo ── */
body.t-market .cat-btn {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: all .2s;
}
body.t-market .cat-btn:hover {
  border-color: var(--brand);
  background: linear-gradient(135deg, var(--brand-tint), var(--clinical-tint, var(--brand-tint)));
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

/* ── Reseñas — borde izquierdo sólido, hover elevado ── */
body.t-market .review {
  border-left: 4px solid var(--brand);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow .22s, transform .22s, border-left-color .2s;
}
body.t-market .review:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
  border-left-color: var(--clinical);
}
body.t-market .avatar {
  background: linear-gradient(135deg, var(--brand), var(--clinical));
  width: 40px; height: 40px;
  font-size: .9rem;
}

/* ── Sección seguros — degradado suave ── */
body.t-market #section-seguros {
  background: linear-gradient(135deg, var(--brand-tint) 0%, var(--clinical-tint, var(--muted)) 100%);
}
body.t-market .ins-card {
  transition: box-shadow .2s, transform .2s, border-color .15s;
}
body.t-market .ins-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  border-color: var(--brand);
}

/* ── CV — acento de marca en lugar de clinical ── */
body.t-market .cv-card {
  border-left: 3px solid var(--brand);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow .22s, transform .22s;
}
body.t-market .cv-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

/* ── Condiciones — grupo con acento de marca ── */
body.t-market .cond-group h3 {
  border-left-color: var(--brand);
}
body.t-market .cond-btn {
  border-radius: var(--radius);
  transition: all .18s;
}
body.t-market .cond-btn:hover {
  background: var(--brand-tint);
  border-color: var(--brand);
  color: var(--brand);
  transform: translateX(3px);
}

/* ── FAQ — items encuadrados ── */
body.t-market #section-faq { border-radius: 0 }
body.t-market .faq-item {
  border-bottom: 0;
  border-radius: var(--radius);
  margin-bottom: .4rem;
  background: var(--card);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
  overflow: hidden;
  transition: box-shadow .18s;
}
body.t-market .faq-item:hover { box-shadow: var(--shadow-sm) }
body.t-market .faq-q  { padding: .85rem 1rem }
body.t-market .faq-a  { padding: 0 1rem .85rem }

/* ── Headings de sección — subrayado de marca ── */
body.t-market #section-servicios h2,
body.t-market #section-categorias h2,
body.t-market #section-resenas h2,
body.t-market #section-credenciales h2,
body.t-market #section-faq h2,
body.t-market #section-social h2,
body.t-market .loc-card h2 {
  display: inline-block;
  padding-bottom: .3rem;
  border-bottom: 3px solid var(--brand);
  letter-spacing: -.025em;
}

/* ── Final CTA — fondo de degradado completo ── */
body.t-market .final-cta {
  background: linear-gradient(135deg, var(--brand) 0%, var(--clinical) 100%);
  border: 0;
  color: #fff;
}
body.t-market .final-cta::before { display: none }
body.t-market .final-cta .fc-title { color: #fff }
body.t-market .final-cta .fc-sub  { color: rgba(255,255,255,.82) }
body.t-market .final-cta .fc-btn.btn-wa {
  background: rgba(255,255,255,.15);
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
body.t-market .final-cta .fc-btn.btn-wa:hover {
  background: rgba(255,255,255,.25);
  opacity: 1;
}
body.t-market .final-cta .fc-btn.btn-primary {
  background: #fff;
  color: var(--brand);
}
body.t-market .final-cta .fc-btn.btn-primary:hover {
  background: rgba(255,255,255,.9);
  opacity: 1;
}

/* ── Mobile nav — botón activo con fondo tint ── */
body.t-market .mn-btn.active {
  color: var(--brand);
  background: var(--brand-tint);
  border-radius: var(--radius-sm);
}

/* ── Modo oscuro en market: ajustar final CTA ── */
body.t-market.t-dark .final-cta {
  background: linear-gradient(135deg, var(--brand-dark) 0%, var(--clinical) 100%);
}
body.t-market.t-dark .hero-top {
  background: linear-gradient(150deg, var(--brand-tint) 0%, var(--card) 100%);
}
