/* xn--empresasdetransportelacoruña.com · capa propia sobre cabitrans/ui
   Identidad de puerto atlántico: granito, agua y una sola boya naranja. */

/* 1. El CTA sobre oscuro. El primario de esta web es el granito del muelle y
      sobre la foto portuaria del héroe se confunde con el velo: ahí manda la
      boya. */
.rd-sobre-oscuro .rd-boton--primario {
  --_fondo: var(--c-acento-boton);
  --_texto: #fff;
  --_borde: var(--c-acento);
}
.rd-sobre-oscuro .rd-boton--primario:hover {
  --_fondo: var(--c-acento-boton-hover);
  --_borde: var(--c-acento-boton-hover);
}

/* 2. El velo del héroe: la foto tiene el cielo claro a la derecha y el titular
      es largo, así que el degradado carga por la izquierda y deja respirar el
      mar. */
.rd-heroe--foto .rd-heroe__velo {
  background: linear-gradient(98deg,
    rgb(7 31 40 / .92) 0%,
    rgb(7 31 40 / .80) 44%,
    rgb(7 31 40 / .40) 100%);
}

/* 3. Señal de muelle: las secciones oscuras abren con la línea naranja de la
      señalética portuaria. */
.rd-seccion--oscura { border-top: 3px solid var(--c-acento); }

/* 4. Red de seguridad contra el desborde lateral en móvil (una URL o un correo
      largos sacan scroll horizontal a toda la página a 360 px). */
.rd-prosa p, .rd-prosa li,
.rd-contenido-seccion p, .rd-contenido-seccion li { overflow-wrap: anywhere; }

/* 5. La rejilla de modalidades con SEIS tarjetas: `auto-fit` da cuatro columnas
      y deja dos huecos en la segunda fila, que a 1440 px es un vacío de 700 px.
      Con seis, tres columnas cuadran en dos filas llenas. */
@media (min-width: 1100px) {
  .rd-servicios:has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, 1fr); }
}

/* Acción visible sin abrir el menú, también en teléfonos estrechos. */
:root { --c-acento-boton: #c24d1e; --c-acento-boton-hover: #b94618; --c-acento-oscuro: #ffad80; --cabecera-logo-movil: 1rem; --cabecera-accion-movil: .875rem; }
@media (max-width: 767px) {
  .rd-cabecera__barra { gap: var(--u); width: calc(100% - var(--u) * 6); }
  .rd-cabecera .rd-logo { font-size: var(--cabecera-logo-movil); letter-spacing: -.045em; gap: var(--u); }
  .rd-cabecera .rd-logo__detalle { display: none; }
  .rd-cabecera__cta { display: inline-flex; font-size: var(--cabecera-accion-movil); padding-inline: calc(var(--u) * 2); min-height: calc(var(--u) * 11); }
  .rd-cabecera__acciones { gap: calc(var(--u) * 2); }
  .rd-cabecera .rd-hamburguesa { width: calc(var(--u) * 11); height: calc(var(--u) * 11); }
  .rd-contacto__correo { display: block; }
  .rd-contacto__correo svg { display: block; margin-bottom: calc(var(--u) * 2); }
}

/* Texto legible sobre la fotografía, y resumen del envío con etiqueta y valor unidos. */
.rd-sobre-oscuro .rd-heroe__entrada { color: var(--c-oscuro-texto); }
.rd-sobre-oscuro .rd-antetitulo { color: var(--c-acento-oscuro); }
.cot-bloque .cot-datos > div { display: block; min-width: 0; }
.cot-bloque .cot-datos dt { margin-bottom: calc(var(--u) * 2); }
.cot-bloque .cot-datos dd { margin: 0; overflow-wrap: anywhere; }
@media (min-width: 768px) { .cot-bloque .cot-datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--u) * 6); } }

@media (max-width: 767px) { .cot-bloque .cot-datos { grid-template-columns: minmax(0, 1fr); gap: calc(var(--u) * 6); } }

/* Referencias de tarifa junto al titular, sin desplazar la comparación. */
.ac-precios { padding: calc(var(--u) * 6); background: var(--c-superficie); border: 1px solid var(--c-borde); border-top: var(--u) solid var(--c-acento); border-radius: var(--radio); }
.ac-precios h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin-bottom: calc(var(--u) * 3); }
.ac-precios p { margin: calc(var(--u) * 3) 0; }
.ac-precios dl { margin-block: calc(var(--u) * 5); }
.ac-precios dl div { display: flex; justify-content: space-between; align-items: center; gap: calc(var(--u) * 4); padding-block: calc(var(--u) * 3); border-bottom: 1px solid var(--c-borde); }
.ac-precios dt span { display: block; color: var(--c-texto); }
.ac-precios dd { margin: 0; white-space: nowrap; font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 700; color: var(--c-primario); }
.rd-pie__marca p, .rd-pie__legal p, .rd-pie__legal a, .rd-pie__grupo a { color: var(--c-oscuro-texto); }
@media (min-width: 768px) { .rd-pie__contacto a { overflow-wrap: anywhere; } }

.rd-pie__grupo a, .rd-pie__legal a { font-size: 1rem; min-height: calc(var(--u) * 11); display: inline-flex; align-items: center; }
.cot-oferta { padding: calc(var(--u) * 5); gap: calc(var(--u) * 3); }
.ac-precios { padding: 0; border: 0; border-radius: 0; background: transparent; }
.rd-sobre-oscuro .rd-heroe__pruebas { color: var(--c-oscuro-texto); font-size: 1rem; }

/* Diagramas y jerarquía de las secciones técnicas. */
.rd-modulo-intercalado:has(.rd-formatos) > h2 { font-size: clamp(1.25rem, 2vw, 1.75rem); }
.ac-caja { display: grid; align-items: center; gap: calc(var(--u) * 6); }
.ac-caja svg { width: 100%; max-width: 300px; height: auto; color: var(--c-primario); }
.ac-caja text { fill: currentColor; font-family: var(--f-texto); font-size: 16px; }
.ac-conexiones h2 { font-size: clamp(1.5rem, 2.2vw, 2rem); }
.ac-conexiones .rd-mapa { margin-block: calc(var(--u) * 4); }
@media (min-width: 768px) { .ac-caja { grid-template-columns: 1fr 2fr; } }
@media (max-width: 767px) {
  .cot-modos { grid-template-columns: 1fr; }
  .cot-modo > span { min-height: 0; grid-template-columns: calc(var(--u) * 8) 1fr; gap: var(--u) calc(var(--u) * 3); }
  .cot-modo svg { grid-row: 1 / 3; align-self: center; }
  .cot-modo b, .cot-modo small { grid-column: 2; }
  .cot-modo b, .cot-modo small { font-size: 1rem; }
  .cot-pagina .cot-cabecera { margin-bottom: calc(var(--u) * 4); }
  .cot-oferta { gap: calc(var(--u) * 2); }
  .cot-oferta .cot-ficha summary { min-height: calc(var(--u) * 11); padding-block: calc(var(--u) * 2); }
}
.ac-conexiones .rd-mapa__lienzo { padding: 0; border: 0; border-radius: 0; background: transparent; }
.ac-conexiones .rd-mapa__etiqueta { display: block; font-size: 56px; stroke-width: 8px; }
.ac-conexiones .rd-mapa__ruta { animation: none; stroke-dasharray: none; stroke-dashoffset: 0; stroke-width: 4px; }
.ac-conexiones .rd-mapa-tierra path { fill: color-mix(in srgb, var(--c-primario) 18%, var(--c-fondo)); stroke: color-mix(in srgb, var(--c-primario) 45%, transparent); stroke-width: 1; }

/* Prioridad sobre el CSS del paquete: selección y comparación compactas. */
.ac-europa { width: 100%; max-width: 480px; height: auto; color: var(--c-primario); margin-block: calc(var(--u) * 4); }
.ac-europa text { font-family: var(--f-texto); font-size: 28px; }
.rd-contacto > .rd-contacto__legal { grid-column: 1 / -1; max-width: 70ch; }
.cot-pagina .cot-oferta { padding: calc(var(--u) * 4); gap: calc(var(--u) * 3); }
.cot-pagina .cot-oferta .cot-ficha { margin-top: 0; padding-top: 0; }
.cot-pagina .cot-oferta .cot-ficha summary { min-height: calc(var(--u) * 11); padding-block: 0; font-size: 1rem; }
@media (max-width: 767px) {
  .cot-pagina .cot-modos { grid-template-columns: 1fr; gap: calc(var(--u) * 2); }
  .cot-pagina .cot-modo > span { min-height: calc(var(--u) * 14); grid-template-columns: calc(var(--u) * 8) 1fr; padding: calc(var(--u) * 3); }
  .cot-pagina .cot-modo small { font-size: 1rem; display: none; }
  .cot-pagina .cot-modo input:checked + span small { display: block; }
  .cot-pagina .cot-pasos { gap: var(--u); flex-wrap: nowrap; }
  .cot-pagina .cot-pasos li { flex: 1; justify-content: center; }
  .cot-pagina .cot-pasos a, .cot-pagina .cot-pasos > li > span { flex-direction: column; gap: var(--u); font-size: 1rem; padding-inline: var(--u); }
  .cot-pagina .cot-pasos [data-estado] > :is(a, .cot-paso) > span:not(.cot-solo-lectores) { display: block; }
}

/* Ayudas y desgloses económicos legibles, con contraste del texto principal. */
.cot-pagina .cot-precio small, .cot-pagina .cot-modo small,
.cot-pagina .cot-pista, .cot-pagina .cot-campo > label,
.rd-formulario .rd-campo__ayuda, .rd-formulario .rd-campo__etiqueta,
.rd-formulario .rd-casilla { font-size: 1rem; color: var(--c-texto); }
.cot-etiqueta[data-tipo="rapida"] { background: var(--c-acento-boton); }
.rd-tabla-envoltura + .rd-precio__nota { font-size: 1rem; color: var(--c-texto); }
.rd-seccion:has(.rd-tabla) { padding-bottom: calc(var(--u) * 16); }
.rd-contenedor .cot-widget, .rd-heroe__panel:has(.cot-widget) { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.rd-contenedor .cot-widget .cot-campo > label, .rd-contenedor .cot-widget .cot-modo b { font-size: 1rem; }
.rd-heroe__panel:has(.ac-conexiones), .rd-heroe__panel:has(.ac-accesos) { padding: 0; border: 0; background: transparent; box-shadow: none; }
.ac-heroe-nacional .rd-patron, .ac-heroe-paquete .rd-patron, .ac-heroe-pocomaco .rd-patron { display: none; }
.ac-heroe-nacional .rd-heroe__operativo { margin-top: calc(var(--u) * 6); padding-left: calc(var(--u) * 4); border-left: var(--u) solid var(--c-acento); }
.ac-heroe-nacional .rd-heroe__interior { align-items: start; }
.ac-heroe-nacional .rd-heroe__interior, .ac-heroe-pocomaco .rd-heroe__interior { padding-bottom: calc(var(--u) * 12); }
.ac-heroe-nacional + .rd-seccion, .ac-heroe-pocomaco + .rd-seccion { padding-top: calc(var(--u) * 12); }
.ac-corredores { width: 100%; max-width: 440px; height: auto; margin-block: calc(var(--u) * 4); }
.ac-corredores__tierra { fill: color-mix(in srgb, var(--c-primario) 12%, var(--c-fondo)); stroke: var(--c-borde); stroke-width: 1; }
.ac-corredores__rutas { fill: none; stroke: var(--c-acento-boton); stroke-width: 3; }
.ac-corredores__puntos { fill: var(--c-primario); }
.ac-corredores__etiquetas { fill: var(--c-primario); font-family: var(--f-titulos); font-size: 24px; font-weight: 600; }
.ac-accesos ol { list-style: none; padding: 0; margin: 0; }
.ac-accesos li { display: grid; grid-template-columns: calc(var(--u) * 12) minmax(0, 1fr); gap: calc(var(--u) * 4); padding-block: calc(var(--u) * 5); border-bottom: 1px solid var(--c-borde); }
.ac-accesos li > span { font: 600 1.5rem var(--f-titulos); color: var(--c-acento-boton); }
.ac-accesos h2 { font-size: 1.25rem; margin-bottom: calc(var(--u) * 2); }
.ac-accesos p { margin: 0; }
main[data-plantilla="pilar"] .rd-heroe + .rd-seccion { padding-top: calc(var(--u) * 12); }
@media (max-width: 767px) {
  .rd-contacto .rd-contacto__correo { display: grid; grid-template-columns: calc(var(--u) * 5) minmax(0, 1fr); align-items: start; gap: calc(var(--u) * 3); overflow-wrap: anywhere; font-size: 1rem; }
  .rd-contacto .rd-contacto__correo svg { margin: 0; align-self: start; }
  .rd-tabla-envoltura { border: 0; overflow: visible; }
  .rd-tabla { display: block; min-width: 0; width: 100%; }
  .rd-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .rd-tabla tbody { display: grid; gap: calc(var(--u) * 4); }
  .rd-tabla tbody tr { display: block; border: 1px solid var(--c-borde); border-radius: var(--radio); background: var(--c-superficie); }
  .rd-tabla tbody th, .rd-tabla tbody td.rd-num { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: calc(var(--u) * 3); white-space: normal; text-align: left; font-size: 1rem; }
  .rd-tabla tbody th::before, .rd-tabla tbody td::before { content: attr(data-cabecera); font-weight: 400; color: var(--c-texto); }
}
