/* =========================================================
   Cuore Centro Médico Cardiovascular · estilos del sitio
   Base: Bootstrap 5.3.2. Un solo archivo para todo el sitio.
   Tipografía de marca: Aller (si la licencia web lo permite).
   Mientras tanto se usa Manrope (Google Fonts). Para cambiarla,
   alcanza con editar --c-font.
   ========================================================= */

:root {
  --c-blue: #158ffa;        /* azul Cuore: acentos, números, etiquetas */
  --c-navy: #0f264a;        /* azul profundo: textos, botones, fondos */
  --c-gray: #747474;        /* gris de marca: textos secundarios */
  --c-text: #3d4b63;        /* texto de párrafo */
  --c-soft: #f3f7fc;        /* fondo suave de bloques */
  --c-line: #d9e2ee;        /* bordes */
  --c-white: #ffffff;
  --c-star: #fbbc04;        /* estrellas de Google */
  --c-font: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --c-radius: 16px;

  --bs-body-font-family: var(--c-font);
  --bs-body-color: var(--c-navy);
  --bs-link-color: var(--c-navy);
  --bs-link-color-rgb: 15, 38, 74;
  --bs-link-hover-color: var(--c-blue);
  --bs-link-hover-color-rgb: 21, 143, 250;
  --bs-border-color: var(--c-line);
}

body { font-family: var(--c-font); color: var(--c-navy); background: var(--c-white); }
h1, h2, h3, .h1, .h2, .h3 { font-weight: 800; letter-spacing: -0.02em; color: var(--c-navy); }
h1, .h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); line-height: 1.07; }
h2, .h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.15; }
h3, .h3 { font-size: 1.25rem; }
p { color: var(--c-text); }
.lead { color: var(--c-text); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.55; }
a { text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--c-blue); outline-offset: 2px; }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--c-navy); color: #fff; padding: .75rem 1rem; }
.skip-link:focus { left: 1rem; top: 1rem; }

/* ---------- Encabezado ---------- */
.c-header { background: #fff; border-bottom: 1px solid #e6ebf2; }
.c-header .navbar-brand img { height: 48px; width: auto; }
.c-header .nav-link { color: var(--c-navy); font-weight: 500; }
.c-header .nav-link.active { font-weight: 700; box-shadow: inset 0 -2px 0 var(--c-blue); }
.c-header .dropdown-item:active { background: var(--c-navy); }
@media (max-width: 991.98px) { .c-header .navbar-brand img { height: 38px; } }

/* ---------- Botones ---------- */
.btn-turno { --bs-btn-bg: var(--c-navy); --bs-btn-border-color: var(--c-navy); --bs-btn-color: #fff;
  --bs-btn-hover-bg: #0a1b36; --bs-btn-hover-border-color: #0a1b36; --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #0a1b36; --bs-btn-active-border-color: #0a1b36;
  font-weight: 700; border-radius: 12px; padding: .95rem 1.5rem; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; }
.btn-turno svg { flex: 0 0 auto; }
.btn-turno-light { --bs-btn-bg: #fff; --bs-btn-border-color: #fff; --bs-btn-color: var(--c-navy);
  --bs-btn-hover-bg: var(--c-soft); --bs-btn-hover-border-color: var(--c-soft); --bs-btn-hover-color: var(--c-navy);
  font-weight: 700; border-radius: 12px; padding: .95rem 1.5rem; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; }
.btn-outline-cuore { --bs-btn-color: var(--c-navy); --bs-btn-border-color: var(--c-navy); --bs-btn-hover-bg: var(--c-navy); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: var(--c-navy);
  border-width: 2px; font-weight: 700; border-radius: 12px; padding: .85rem 1.25rem; }
.btn-header { padding: .65rem 1.1rem; border-radius: 10px; font-size: .95rem; }
@media (max-width: 575.98px) { .c-cta-row .btn { width: 100%; } }

/* ---------- Bloques ---------- */
.c-section { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.c-soft { background: var(--c-soft); }
.c-dark { background: var(--c-navy); color: #fff; }
.c-dark h2, .c-dark h3 { color: #fff; }
.c-dark p, .c-dark li { color: #e1e9f4; }
.c-eyebrow { font-size: .85rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-blue); margin-bottom: .75rem; }
.c-label { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-blue); }
.c-crumb { font-size: .9rem; color: var(--c-gray); }
.c-crumb a { color: var(--c-gray); }
.c-crumb .breadcrumb-item.active { color: var(--c-navy); font-weight: 600; }
.c-hero { background: var(--c-soft); padding: clamp(1.5rem, 4vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem); }
.c-hero-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }
.c-key { font-weight: 700; color: var(--c-navy); font-size: 1.1rem; }
.c-trust { font-size: .95rem; color: var(--c-text); }
.c-stars { display: inline-flex; gap: 2px; vertical-align: -3px; }
.c-stars svg { width: 20px; height: 20px; fill: var(--c-star); }

/* Tarjetas "¿Qué te trae a Cuore?" */
.c-card-main { background: var(--c-navy); color: #fff; border-radius: 18px; padding: 1.75rem; text-decoration: none; display: flex; flex-direction: column; gap: 1rem; height: 100%; min-height: 220px; transition: transform .15s ease; }
.c-card-main:hover { color: #fff; transform: translateY(-2px); }
.c-card-main .c-num { font-size: 2.6rem; font-weight: 800; color: var(--c-blue); line-height: 1; }
.c-card-main .c-q { font-size: 1.4rem; font-weight: 700; line-height: 1.25; }
.c-card-main .c-to { margin-top: auto; color: #c9d6e8; font-weight: 600; font-size: .95rem; }
.c-card { background: var(--c-soft); color: var(--c-navy); border-radius: var(--c-radius); padding: 1.4rem; text-decoration: none; display: flex; flex-direction: column; gap: .6rem; height: 100%; transition: transform .15s ease; }
.c-card:hover { color: var(--c-navy); transform: translateY(-2px); }
.c-card .c-num { font-size: 1.5rem; font-weight: 800; color: var(--c-blue); }
.c-card .c-q { font-weight: 700; line-height: 1.35; }
.c-card .c-note { font-size: .9rem; color: var(--c-text); }
.c-card .c-to { margin-top: auto; color: var(--c-gray); font-size: .9rem; }

.c-box { border: 2px solid var(--c-line); border-radius: var(--c-radius); padding: 1.4rem; height: 100%; background: #fff; }
.c-box strong { display: block; font-size: 1.15rem; margin-bottom: .35rem; }
.c-quote { border: 2px solid var(--c-line); border-radius: var(--c-radius); padding: 1.4rem; height: 100%; font-weight: 700; font-size: 1.1rem; line-height: 1.4; }
.c-proof { border-top: 3px solid var(--c-blue); padding-top: 1rem; font-weight: 600; font-size: 1.1rem; line-height: 1.45; }
.c-callout { border-left: 4px solid var(--c-blue); padding: .5rem 0 .5rem 1.5rem; }
.c-callout p { font-size: clamp(1.1rem, 2vw, 1.35rem); font-weight: 600; color: var(--c-navy); margin: 0; }
.c-step-num { font-size: 3rem; font-weight: 800; color: var(--c-blue); line-height: 1; }
.c-step-title { font-size: 1.25rem; font-weight: 700; color: #fff; }
.c-light .c-step-title { color: var(--c-navy); }
.c-chip { border: 1px solid var(--c-line); border-radius: 999px; padding: .5rem 1rem; font-weight: 600; display: inline-block; }
.c-badge { background: var(--c-blue); color: #fff; border-radius: 999px; padding: .4rem .9rem; font-weight: 700; display: inline-block; }

/* Coberturas */
.c-tile { border: 1px solid var(--c-line); border-radius: 12px; background: #fff; height: 84px; display: flex; align-items: center; justify-content: center; padding: .5rem; }
.c-tile img { max-width: 80%; max-height: 54px; width: auto; height: auto; object-fit: contain; }
.c-tile-text { border-style: dashed; background: var(--c-soft); font-weight: 700; }
@media (max-width: 575.98px) { .c-tile { height: 70px; } .c-tile img { max-height: 44px; } }

/* Reseñas */
.c-rating { font-size: 2.6rem; font-weight: 800; line-height: 1; }

/* Páginas de deporte */
.c-sport-hero { background: var(--c-navy); color: #fff; overflow: hidden; padding: 1.5rem 0 4rem; }
.c-sport-hero .c-crumb, .c-sport-hero .c-crumb a { color: #9fb4d1; }
.c-sport-hero .breadcrumb-item.active { color: #fff; }
.c-sport-hero .breadcrumb-item + .breadcrumb-item::before { color: #9fb4d1; }
.c-sport-word { font-size: clamp(4.5rem, 15vw, 12.5rem); font-weight: 800; line-height: .85; letter-spacing: -0.04em; color: var(--c-blue); margin: .5rem 0 1rem; }
.c-sport-hero h1 { color: #fff; font-size: clamp(1.9rem, 3.4vw, 2.75rem); }
.c-sport-hero p { color: #e1e9f4; }
.c-stat { border-top: 3px solid var(--c-blue); padding-top: 1rem; }
.c-stat strong { display: block; font-size: 1.5rem; color: #fff; }
.c-stat span { color: #c9d6e8; font-size: .95rem; }
.c-col-num { font-size: 3.5rem; font-weight: 800; color: var(--c-blue); line-height: 1; }
.c-band { background: var(--c-blue); }
.c-band h2 { color: var(--c-navy); }

/* Equipo */
.c-person { border: 1px solid var(--c-line); border-radius: 14px; padding: 1.25rem; height: 100%; }
.c-person strong { display: block; font-size: 1.1rem; }
.c-person span { display: block; color: var(--c-text); }
.c-person small { display: block; color: var(--c-gray); margin-top: .35rem; }
.c-area { border-top: 3px solid var(--c-blue); padding-top: 1rem; }

/* Informe ilustrativo de composición corporal */
.c-report { background: #fff; border: 1px solid var(--c-line); border-radius: 20px; padding: 1.5rem; }
.c-report .c-bar { position: relative; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #e6ebf2 0 33%, #d3e7fe 33% 66%, #e6ebf2 66% 100%); }
.c-report .c-bar span { position: absolute; left: 0; top: 2px; height: 8px; border-radius: 4px; background: var(--c-navy); }
.c-report small { color: var(--c-gray); }

/* Pie */
.c-footer { background: var(--c-navy); color: #c9d6e8; padding: 3.5rem 0 6rem; font-size: .95rem; line-height: 1.7; }
.c-footer a { color: #fff; }
.c-footer strong { color: #fff; }
.c-footer img { height: 56px; width: auto; }
@media (min-width: 992px) { .c-footer { padding-bottom: 3.5rem; } }

/* Botón flotante de WhatsApp (mobile) */
.wa-float { position: fixed; right: 16px; bottom: 16px; width: 60px; height: 60px; border-radius: 50%; background: var(--c-navy); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(15,38,74,.35); border: 2px solid #fff; z-index: 1030; }
.wa-float:hover { color: #fff; background: #0a1b36; }

@media (prefers-reduced-motion: reduce) { .c-card, .c-card-main { transition: none; } }

/* Home: Resolvemos + bajada dentro del mismo h1 */
.c-h1-brand { font-size: clamp(3rem, 7vw, 5.2rem); line-height: .95; letter-spacing: -0.035em; }
.c-h1-sub { font-size: clamp(1.35rem, 2.4vw, 1.9rem); line-height: 1.2; font-weight: 700; margin-top: .6rem; letter-spacing: -0.01em; }

@media (max-width: 991.98px) { .c-hero-img { aspect-ratio: 16 / 9; } }

/* v17: pilares del inicio de cada servicio */
.c-pillar { border-top: 3px solid var(--c-blue); padding-top: .6rem; font-weight: 700; line-height: 1.35; color: var(--c-navy); }
h1.c-h1-long { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
