/* ==========================================================================
   AITANA TOUR · GUÍA DEL CORREDOR (rediseño 2027)
   Secciones propias de la guía. Componentes comunes: base-v4.css.
   ========================================================================== */

.gc { line-height: 1.55; }

/* ==========================================================================
   01 · LA MARCHA
   ========================================================================== */
.gc-rutas { display: grid; gap: 24px; margin-bottom: 24px; }
@media (min-width: 800px) { .gc-rutas { grid-template-columns: 1fr 1fr; } }
.gc-ruta {
    border: 1px solid var(--ai-negro);
    padding: clamp(24px, 3vw, 36px);
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.gc-ruta--gf { background: var(--ai-negro); color: var(--ai-blanco); }
.gc-ruta__nombre {
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(30px, 3.4vw, 42px) !important;
    line-height: 1 !important;
    text-transform: uppercase;
}
.gc-ruta__cifras { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.gc-ruta__cifras span {
    font-family: var(--ai-f-display);
    font-weight: 800;
    font-size: clamp(40px, 5vw, 60px);
    line-height: 1;
}
.gc-ruta__cifras span + span { color: var(--ai-rojo); }
.gc-ruta--gf .gc-ruta__cifras span + span { color: var(--ai-blanco); opacity: .75; }
.gc-ruta__texto { font-size: 17px; line-height: 1.55; color: var(--ai-gris-texto); }
.gc-ruta--gf .gc-ruta__texto { color: #cfcfcf; }

.gc-marcha-pie { display: grid; gap: 24px; }
@media (min-width: 900px) { .gc-marcha-pie { grid-template-columns: 7fr 5fr; } }

/* ==========================================================================
   02 · CÓMO LLEGAR
   ========================================================================== */
.gc-aviso {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--ai-blanco);
    padding: 20px;
}
.gc-aviso__marca {
    flex-shrink: 0;
    background: var(--ai-negro);
    color: var(--ai-blanco);
    font-family: var(--ai-f-display);
    font-weight: 800;
    font-size: 22px;
    padding: 6px 12px;
}
.gc-aviso__titulo { font-weight: 700; font-size: 17px; margin-bottom: 4px !important; }
.gc-mapa { position: relative; aspect-ratio: 4 / 3; background: #e7e6e2; }
.gc-mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(1.05); }

/* ==========================================================================
   03 · APARCAMIENTO
   ========================================================================== */

/* ==========================================================================
   04 · RECOGIDA DE DORSALES
   ========================================================================== */
.gc-dorsales { display: grid; gap: 48px; }
@media (min-width: 960px) { .gc-dorsales { grid-template-columns: 7fr 5fr; } }
.gc-horarios { display: flex; flex-direction: column; gap: 0; }
.gc-tabla { margin-bottom: 20px; border-top: 1px solid var(--ai-gris-oscuro); }
.gc-tabla th,
.gc-tabla td {
    padding: 18px 0;
    border-bottom: 1px solid var(--ai-gris-oscuro);
    vertical-align: baseline;
    text-align: left;
    font-family: var(--ai-f-display) !important;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.15;
}
.gc-tabla th { font-weight: 700; text-transform: uppercase; padding-right: 20px; width: 42%; }
.gc-tabla td { font-weight: 600; }
.gc-tabla__destacado { color: var(--ai-rojo); }
@media (max-width: 559px) {
    .gc-tabla, .gc-tabla tbody, .gc-tabla tr, .gc-tabla th, .gc-tabla td { display: block; width: 100%; }
    .gc-tabla th { padding-bottom: 2px; border-bottom: 0; font-size: 16px; font-family: var(--ai-f-mono) !important; font-weight: 500; letter-spacing: .06em; color: var(--ai-gris-claro-texto); }
    .gc-tabla td { padding-top: 0; }
}

.gc-doc__cards { display: grid; gap: 12px; }
@media (min-width: 560px) { .gc-doc__cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .gc-doc__cards { grid-template-columns: 1fr; } }
.gc-doc__card { border: 1px solid var(--ai-blanco); padding: 22px 24px; }
.gc-doc__card .gc-etq { color: var(--ai-gris-claro-texto); }
.gc-doc__valor {
    margin-top: 8px !important;
    font-family: var(--ai-f-display) !important;
    font-weight: 800;
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.05;
    text-transform: uppercase;
}

/* ==========================================================================
   05 · BOLSA DEL CORREDOR
   ========================================================================== */
.gc-bolsa { display: grid; gap: 24px; align-items: start; }
@media (min-width: 900px) { .gc-bolsa { grid-template-columns: 5fr 7fr; } }
.gc-bolsa__oblig {
    background: var(--ai-rojo);
    color: var(--ai-blanco);
    padding: clamp(24px, 3vw, 36px);
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.gc-bolsa__oblig .gc-etq { color: var(--ai-blanco); }
.gc-bolsa__item { border-top: 1px solid rgba(255, 255, 255, .45); padding-top: 18px; }
.gc-bolsa__item h3 {
    font-family: var(--ai-f-display) !important;
    font-weight: 800 !important;
    font-size: clamp(30px, 3.4vw, 42px) !important;
    line-height: 1 !important;
    text-transform: uppercase;
    margin-bottom: 8px !important;
}
.gc-bolsa__item p { font-size: 16px; }
.gc-bolsa__lista { border-top: 3px solid var(--ai-negro); }
.gc-bolsa__lista li { padding: 20px 0; border-bottom: 1px solid var(--ai-gris-linea); }
.gc-bolsa__cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 4px; }
.gc-bolsa__cab h3 {
    font-family: var(--ai-f-display) !important;
    font-weight: 700 !important;
    font-size: 24px !important;
    line-height: 1.1 !important;
    text-transform: uppercase;
}
.gc-bolsa__lista p { font-size: 16px; color: var(--ai-gris-texto); }

/* ==========================================================================
   07 · SERVICIOS + TALLER  ·  09 · EXPO  ·  10 · FOTOGRAFÍA
   ========================================================================== */
.gc-taller { margin-top: clamp(40px, 5vw, 56px); }
.gc-taller__grid { display: grid; gap: 24px; border-top: 3px solid var(--ai-negro); padding-top: 24px; }
@media (min-width: 900px) { .gc-taller__grid { grid-template-columns: 1fr 1fr 1.3fr; } }
.gc-taller__item { display: flex; flex-direction: column; gap: 6px; }
.gc-taller__item--consejo { background: var(--ai-gris); padding: 20px 24px; border-left: 3px solid var(--ai-rojo); }

.gc-expo-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-top: 28px; }
.gc-expo-pie .gc-texto { max-width: 720px; }

/* ==========================================================================
   08 · PARKING BICIS + INSTALACIONES (fondo negro)
   ========================================================================== */
.gc-instal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ai-gris-oscuro); border-bottom: 1px solid var(--ai-gris-oscuro); }
.gc-instal > div { padding: 18px 12px 18px 0; }
.gc-instal > div + div { padding-left: 16px; border-left: 1px solid var(--ai-gris-oscuro); }
.gc-instal dt { font-family: var(--ai-f-display) !important; font-weight: 800; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.05; text-transform: uppercase; }
.gc-instal dd { margin-top: 4px !important; font-size: 14px; color: var(--ai-gris-claro-texto); }
.gc-instal dt { overflow-wrap: normal; }
@media (max-width: 559px) {
    .gc-instal { grid-template-columns: 1fr; }
    .gc-instal > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 0; }
    .gc-instal > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--ai-gris-oscuro); }
    .gc-instal dd { margin-top: 0 !important; text-align: right; }
}

/* 01 · Descripción de la marcha: mensaje destacado "SIN PARADAS NI REAGRUPAMIENTOS" */
.gc-intro--marcha { max-width: 880px; }
.gc-intro--marcha strong {
    display: inline;
    background: var(--ai-rojo);
    color: var(--ai-blanco);
    padding: 1px 8px;
    font-family: var(--ai-f-display);
    font-weight: 800;
    letter-spacing: .02em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
