/* CSV39 — Acabado final y salvaguardas de consistencia.
   Capa conservadora: no altera estructura ni lógica. */

:root{
  --csv39-navy:#073b66;
  --csv39-orange-1:#ff9f1c;
  --csv39-orange-2:#ff7600;
  --csv39-orange-3:#d94c00;
}

/* Legibilidad estable en todos los controles táctiles. */
a.btn,button.btn{
  min-height:48px;
  line-height:1.18;
  text-align:center;
  text-wrap:balance;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Controles claros: tinta azul siempre visible, incluidos descendientes. */
.btn.outline,.btn.alt{
  color:var(--csv39-navy)!important;
  -webkit-text-fill-color:var(--csv39-navy)!important;
}
.btn.outline *,.btn.alt *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Controles oscuros: texto blanco inequívoco. */
.btn.dark,.nav-wa,a.location,.hero-station-nav a{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.btn.dark *,.nav-wa *,a.location *,.hero-station-nav a *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* CTA oficial de promoción: material naranja premium, nunca blanco. */
#promocion a.btn,
#promocion button.btn,
.promo a.btn,
.promo button.btn{
  background:
    radial-gradient(ellipse at 28% 5%,rgba(255,240,185,.92) 0 5%,rgba(255,202,100,.45) 12%,transparent 27%),
    linear-gradient(160deg,var(--csv39-orange-1),var(--csv39-orange-2) 55%,var(--csv39-orange-3))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.74)!important;
  text-shadow:0 1px 2px rgba(111,36,0,.38)!important;
}
#promocion a.btn *,#promocion button.btn *,
.promo a.btn *,.promo button.btn *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Explorador: materiales semánticos fijos, inmunes a :visited y herencias. */
.station-actions [data-station-phone-link],
.station-actions .btn.dark{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.station-actions [data-station-route],
.station-actions .btn.outline{
  background:linear-gradient(180deg,#fff 0%,#f5f8fb 52%,#e7eef4 100%)!important;
  color:var(--csv39-navy)!important;
  -webkit-text-fill-color:var(--csv39-navy)!important;
  text-shadow:none!important;
}
.station-actions [data-station-page],
.station-actions .btn:not(.dark):not(.outline){
  background:
    radial-gradient(ellipse at 28% 5%,rgba(255,240,185,.92) 0 5%,rgba(255,202,100,.45) 12%,transparent 27%),
    linear-gradient(160deg,var(--csv39-orange-1),var(--csv39-orange-2) 55%,var(--csv39-orange-3))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:rgba(255,255,255,.74)!important;
  text-shadow:0 1px 2px rgba(111,36,0,.38)!important;
}
.station-actions a:visited,
#promocion a.btn:visited{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}

/* Foco accesible y elegante sin cambiar el material del botón. */
:is(a,button,input,select,textarea):focus-visible{
  outline:3px solid rgba(255,150,25,.92);
  outline-offset:4px;
}

/* Evita recortes de texto en móvil y mantiene respiración óptica. */
@media(max-width:650px){
  .station-actions .btn{
    padding-inline:16px;
    min-height:54px;
    white-space:normal;
  }
  .station-actions [data-station-phone-link]{
    font-variant-numeric:tabular-nums;
  }
  #promocion .btn,.promo .btn{
    width:min(100%,420px);
    padding-inline:18px;
  }
}

/* Movimiento reducido: acabado intacto sin desplazamientos innecesarios. */
@media(prefers-reduced-motion:reduce){
  .btn,.card,.station-tab{transition:none!important}
}
