/* ==========================================================================
   AITANA TOUR · RECORRIDO (rediseño 2027)
   Componentes comunes (cabecera, títulos, listas, CTA): base-v4.css.
   ========================================================================== */

/* ---------- 01 · Dos recorridos ---------- */
.rc-rutas { display: grid; gap: 24px; }
@media (min-width: 1024px) { .rc-rutas { grid-template-columns: 1fr 1fr; } }
.rc-ruta {
    border: 1px solid var(--ai-negro);
    padding: clamp(20px, 3vw, 36px);
    display: flex;
    flex-direction: column;
    gap: 20px;
    scroll-margin-top: 80px;
}
.rc-ruta--gf { background: var(--ai-negro); color: var(--ai-blanco); }
.rc-ruta__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; border-bottom: 1px solid currentColor; padding-bottom: 16px; }
.rc-ruta__nombre {
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(34px, 4vw, 52px) !important;
    line-height: .95 !important;
    text-transform: uppercase;
}
.rc-ruta__cifras { display: flex; gap: 20px; }
.rc-ruta__cifras span { font-family: var(--ai-f-display); font-weight: 800; font-size: clamp(34px, 4vw, 52px); line-height: 1; white-space: nowrap; }
.rc-ruta__cifras span + span { color: var(--ai-rojo); }
.rc-ruta--gf .rc-ruta__cifras span + span { color: var(--ai-blanco); opacity: .75; }
.rc-ruta__cifras small { font-size: .45em; font-weight: 700; }
.rc-corte { background: var(--ai-rojo); color: var(--ai-blanco); padding: 14px 18px; font-size: 16px; }
.rc-mapa { display: block; background: var(--ai-blanco); }
.rc-mapa img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: opacity .2s ease; }
.rc-mapa:hover img { opacity: .85; }
.rc-mapa:focus-visible { outline: 3px solid var(--ai-rojo); outline-offset: 3px; }
.rc-perfil { margin: 0; background: var(--ai-blanco); padding: 10px; border: 1px solid var(--ai-gris-linea); }
.rc-perfil img { width: 100%; }

.rc-avit ol { border-top: 1px solid var(--ai-gris-linea); }
.rc-ruta--gf .rc-avit ol { border-color: var(--ai-gris-oscuro); }
.rc-avit li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ai-gris-linea); }
.rc-ruta--gf .rc-avit li { border-color: var(--ai-gris-oscuro); }
.rc-ruta--gf .rc-avit .gc-sub { color: var(--ai-gris-claro-texto); }
.rc-ruta--gf .gc-punto--liq { background: var(--ai-negro); border-color: var(--ai-blanco); }
.rc-avit .gc-punto { width: 18px; height: 18px; }
.rc-avit__nombre { flex: 1 1 auto; font-family: var(--ai-f-display); font-weight: 700; font-size: 19px; text-transform: uppercase; line-height: 1.15; }
.rc-avit__tipo { font-family: var(--ai-f-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }

.rc-descargas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: auto; }
.rc-descargas .ai-btn:first-child { grid-column: 1 / -1; }
.rc-descargas .ai-btn--linea { font-family: var(--ai-f-mono); font-size: 13px; letter-spacing: .04em; padding-left: 8px; padding-right: 8px; }
.rc-ruta:not(.rc-ruta--gf) .ai-btn--linea:hover { background: var(--ai-negro); color: var(--ai-blanco); border-color: var(--ai-negro); }

/* ---------- 02 · Puertos ---------- */
.rc-puertos { display: flex; flex-direction: column; gap: 24px; }
.rc-puerto {
    background: var(--ai-blanco);
    display: grid;
    gap: 28px;
    padding: clamp(20px, 3vw, 40px);
    scroll-margin-top: 80px;
}
@media (min-width: 1024px) { .rc-puerto { grid-template-columns: 6fr 5fr; gap: 48px; } }
.rc-puerto__texto { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rc-puerto__cab { display: flex; gap: 16px; align-items: flex-start; }
.rc-puerto__n { font-family: var(--ai-f-display); font-weight: 800; font-size: clamp(48px, 5vw, 72px); line-height: .85; color: var(--ai-rojo); }
.rc-puerto__nombre {
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(30px, 3.4vw, 46px) !important;
    line-height: .95 !important;
    text-transform: uppercase;
}
.rc-puerto__etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px !important; }
.rc-puerto__etiquetas:empty { display: none; }

.rc-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 3px solid var(--ai-negro);
}
@media (min-width: 560px) { .rc-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.rc-stats > div { display: flex; flex-direction: column-reverse; gap: 2px; padding: 14px 8px 14px 0; border-bottom: 1px solid var(--ai-gris-linea); }
.rc-stats dt { font-family: var(--ai-f-mono) !important; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #555555; }
.rc-stats dd { font-family: var(--ai-f-display) !important; font-weight: 800; font-size: clamp(26px, 2.6vw, 34px); line-height: 1; }
.rc-stats__max dd { color: var(--ai-rojo); }

.rc-puerto__desc { font-size: 16px; line-height: 1.65; color: var(--ai-gris-texto); }
.rc-puerto__desc strong { color: var(--ai-negro); }

.rc-tramo { border-left: 3px solid var(--ai-rojo); padding-left: 16px; }
.rc-tramo ul { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 6px !important; font-size: 15px; }

.rc-premio { display: flex; align-items: center; gap: 16px; background: var(--ai-gris); padding: 16px 20px; }
.rc-premio__logo { flex: 0 0 auto; background: var(--ai-blanco); padding: 8px; }
.rc-premio__logo img { height: 40px; width: auto; max-width: 120px; object-fit: contain; }
.rc-premio__titulo { font-family: var(--ai-f-display); font-weight: 700; font-size: 20px; line-height: 1.15; text-transform: uppercase; }
.rc-premio__desc { font-size: 14px; color: var(--ai-gris-texto); }

.rc-puerto__graficos { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rc-puerto__graficos figure { margin: 0; background: var(--ai-gris); padding: 10px; }
.rc-puerto__graficos img { width: 100%; }
.rc-puerto__graficos figure + figure img { max-height: 340px; object-fit: contain; }

/* ---------- 03 · Cronos y premios (negro) ---------- */
.rc-cronos { display: grid; gap: 40px; }
@media (min-width: 960px) { .rc-cronos { grid-template-columns: 1fr 1fr; gap: 64px; } }
.rc-cronos__rutas { display: grid; gap: 32px; }
@media (min-width: 560px) { .rc-cronos__rutas { grid-template-columns: 1fr 1fr; } }
.rc-cronos__ruta ol { border-top: 1px solid var(--ai-gris-oscuro); }
.rc-cronos__ruta li { display: flex; gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--ai-gris-oscuro); font-family: var(--ai-f-display); font-weight: 700; font-size: 20px; text-transform: uppercase; }
.rc-cronos__ruta li span { color: var(--ai-rojo); font-size: 16px; }
.rc-podio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 24px !important; }
.rc-podio li { border: 1px solid var(--ai-blanco); padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.rc-podio li:first-child { background: var(--ai-rojo); border-color: var(--ai-rojo); }
.rc-podio__pos { font-family: var(--ai-f-display); font-weight: 800; font-size: clamp(36px, 4vw, 52px); line-height: 1; }
.rc-podio__pts { font-family: var(--ai-f-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.rc-especiales { display: grid; gap: 32px; margin-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--ai-gris-oscuro); padding-top: 32px; }
@media (min-width: 960px) { .rc-especiales { grid-template-columns: 1fr 1fr; gap: 64px; } }
.rc-especiales__lista { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px !important; }
.rc-especiales__lista li { padding: 10px 14px; border: 1px solid var(--ai-gris-oscuro); font-family: var(--ai-f-display); font-weight: 700; font-size: 17px; text-transform: uppercase; }

/* ---------- 04 · Recomendaciones ---------- */
.rc-consejos { border-top: 3px solid var(--ai-negro); }
.rc-consejos li { padding: 18px 0; border-bottom: 1px solid var(--ai-gris-linea); font-size: 17px; line-height: 1.55; color: #2a2a2a; }
.rc-consejos strong { display: block; font-family: var(--ai-f-display); font-weight: 700; font-size: 20px; text-transform: uppercase; color: var(--ai-rojo); }
@media (max-width: 479px) {
    .rc-descargas { grid-template-columns: 1fr 1fr; }
    .rc-descargas .ai-btn:last-child { grid-column: 1 / -1; }
}

/* ==========================================================================
   AVITUALLAMIENTOS (trasladado desde la Guía del Corredor)
   ========================================================================== */
.gc-leyenda { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-bottom: 20px !important; font-size: 15px; color: #3a3a3a; }
.gc-leyenda li { display: flex; align-items: center; gap: 8px; }

.gc-ruta-av { padding: clamp(24px, 3vw, 36px); margin-bottom: 24px; }
.gc-ruta-av--negro { background: var(--ai-negro); color: var(--ai-blanco); }
.gc-ruta-av--blanco { background: var(--ai-blanco); border: 1px solid var(--ai-negro); }
.gc-ruta-av__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; margin-bottom: 28px; }
.gc-ruta-av__cab h3 {
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(28px, 3vw, 36px) !important;
    line-height: 1 !important;
    text-transform: uppercase;
}
.gc-ruta-av__cab p { font-family: var(--ai-f-mono) !important; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .8; max-width: 520px; }

/* Línea de ruta: vertical en móvil, horizontal desde 760px */
.gc-linea { position: relative; display: flex; flex-direction: column; gap: 18px; padding-left: 4px; }
.gc-linea::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: currentColor;
    opacity: .35;
}
.gc-linea__p { position: relative; display: grid; grid-template-columns: 22px 1fr; column-gap: 16px; align-items: center; }
.gc-linea__p .gc-punto { grid-row: span 2; position: relative; z-index: 1; }
.gc-ruta-av--negro .gc-punto--liq { background: var(--ai-negro); border-color: var(--ai-blanco); }
.gc-linea__nombre { font-family: var(--ai-f-display); font-weight: 700; font-size: 21px; line-height: 1.1; text-transform: uppercase; }
.gc-linea__tipo { font-family: var(--ai-f-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }

@media (min-width: 760px) {
    .gc-linea { flex-direction: row; gap: 0; padding-left: 0; }
    .gc-linea::before { left: 0; right: 0; top: 10px; bottom: auto; width: auto; height: 2px; }
    .gc-linea__p { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 0 6px; }
}

.gc-final {
    display: grid;
    gap: 16px 48px;
    align-items: end;
    border-top: 3px solid var(--ai-negro);
    padding-top: 28px;
    margin-top: 16px;
}
@media (min-width: 900px) { .gc-final { grid-template-columns: 1fr 1fr; } }
.gc-final__titulo {
    margin-top: 8px !important;
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(34px, 4vw, 52px) !important;
    line-height: .95 !important;
    text-transform: uppercase;
}
