/* CSV61 · Auditoría integral de contraste y legibilidad de botones píldora */
:root{
  --csv61-text-on-cta:#fff;
  --csv61-shadow-text:0 1px 2px rgba(0,0,0,.62),0 0 1px rgba(0,0,0,.35);
}

/* Toda acción tipo píldora conserva texto e iconos por encima del acabado de cristal. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
){
  position:relative!important;
  isolation:isolate!important;
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
  text-shadow:var(--csv61-shadow-text)!important;
  font-weight:800!important;
  opacity:1!important;
}

:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
):visited{
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
}

/* El brillo decorativo nunca puede cubrir las palabras ni los símbolos. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
)::before,
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
)::after{
  pointer-events:none!important;
  z-index:-1!important;
}

:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
) :where(span,strong,b,em,small,i,svg,use,path,img){
  position:relative!important;
  z-index:2!important;
  color:var(--csv61-text-on-cta)!important;
  -webkit-text-fill-color:var(--csv61-text-on-cta)!important;
  opacity:1!important;
  filter:none;
}

/* Píldoras azules: contraste uniforme en normal, visitado, hover, foco y pulsación. */
:where(
  .btn.alt,.btn.outline,.btn.dark,
  .csv-utility-actions .btn,.csv-aenor-actions .btn,
  #informacion-oficial .actions .btn,.services-section .actions .btn,
  .csv-object--call,.csv-object--route,.utility-pill,.v-link,.v-call
){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.10) 30%,rgba(255,255,255,0) 47%),
    radial-gradient(120% 110% at 50% -12%,#63c8ff 0%,#0868df 47%,#043a9f 100%)!important;
}

/* Píldoras principales naranjas: texto blanco garantizado. */
:where(a.btn,button.btn):not(.alt):not(.outline):not(.dark):not(.nav-wa):not(.csv-object--whatsapp){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* WhatsApp conserva verde oficial y máxima legibilidad. */
:where(.csv-object--whatsapp,.nav-wa,.wa-open){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Foco de teclado visible sin modificar la identidad visual. */
:where(
  a.btn,button.btn,.utility-pill,.station-action,.touch-action,.touch-btn,
  .traveler-actions a,.csv-object--call,.csv-object--route,.csv-object--official,
  .v-link,.v-call,.nav-wa,.wa-open,.repsol-pill
):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px rgba(8,104,223,.38),0 14px 30px rgba(6,23,43,.25)!important;
}

/* Evita que textos largos pierdan legibilidad o queden cortados en móvil. */
@media(max-width:650px){
  :where(a.btn,button.btn,.utility-pill,.traveler-actions a,.v-link){
    min-height:50px!important;
    line-height:1.16!important;
    text-align:center!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .links{
    align-items:stretch!important;
  }
  .links > :where(a.btn,button.btn){
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}
