/* CSV40 MASTER — Consolidación definitiva del sistema táctil.
   Fuente única de verdad para materiales, contraste y estados de botones. */
:root{
  --csv40-blue-top:#17639f;
  --csv40-blue-mid:#084979;
  --csv40-blue-bottom:#042b4d;
  --csv40-blue-ink:#073b66;
  --csv40-orange-top:#ffad20;
  --csv40-orange-mid:#ff7600;
  --csv40-orange-bottom:#d94b00;
  --csv40-light-top:#ffffff;
  --csv40-light-mid:#f7fafc;
  --csv40-light-bottom:#e5edf3;
}

/* Geometría y material común. */
a.btn,button.btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:50px;
  padding:13px 22px;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.76)!important;
  font-weight:800;
  line-height:1.18;
  letter-spacing:-.01em;
  text-align:center;
  text-wrap:balance;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.84),
    inset 0 -5px 8px rgba(46,28,8,.18),
    0 3px 0 rgba(6,23,43,.15),
    0 13px 25px rgba(6,23,43,.17),
    0 28px 52px rgba(6,23,43,.08)!important;
}
a.btn::before,button.btn::before{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  left:5%;
  top:2px;
  width:43%;
  height:42%;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.18) 55%,transparent);
  filter:blur(.15px);
  opacity:.82;
}

/* MATERIAL NARANJA — CTA principal y promoción. */
a.btn:not(.alt):not(.outline):not(.dark):not(.nav-wa),
button.btn:not(.alt):not(.outline):not(.dark):not(.nav-wa),
#promocion .btn,.promo .btn,.promotion .btn,.promo-card .btn,
.station-actions [data-station-page]{
  background:
    radial-gradient(ellipse at 27% 7%,rgba(255,239,178,.90) 0 5%,rgba(255,196,72,.42) 13%,transparent 28%),
    linear-gradient(160deg,var(--csv40-orange-top),var(--csv40-orange-mid) 56%,var(--csv40-orange-bottom))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(102,34,0,.40)!important;
}

/* MATERIAL AZUL — acciones secundarias oscuras. */
a.btn.dark,button.btn.dark,
.station-actions [data-station-phone-link],
.services-section .actions a.btn.alt{
  background:
    radial-gradient(ellipse at 27% 6%,rgba(203,231,255,.84) 0 5%,rgba(111,181,235,.34) 14%,transparent 29%),
    linear-gradient(180deg,var(--csv40-blue-top),var(--csv40-blue-mid) 58%,var(--csv40-blue-bottom))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  text-shadow:0 1px 2px rgba(0,25,52,.48)!important;
  border-color:rgba(190,221,246,.76)!important;
}

/* MATERIAL CLARO — acciones alternativas y rutas. */
a.btn.alt,button.btn.alt,
a.btn.outline,button.btn.outline,
.station-actions [data-station-route]{
  background:linear-gradient(180deg,var(--csv40-light-top) 0%,var(--csv40-light-mid) 52%,var(--csv40-light-bottom) 100%)!important;
  color:var(--csv40-blue-ink)!important;
  -webkit-text-fill-color:var(--csv40-blue-ink)!important;
  text-shadow:none!important;
  border-color:rgba(7,59,102,.15)!important;
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.98),
    inset 0 -4px 7px rgba(7,59,102,.08),
    0 3px 0 rgba(7,59,102,.10),
    0 13px 25px rgba(6,23,43,.14),
    0 27px 48px rgba(6,23,43,.07)!important;
}

/* La sección de servicios utiliza azul para sus dos accesos secundarios. */
.services-section .actions a.btn.alt{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Descendientes, visitados y estados conservan el contraste del material. */
a.btn *,button.btn *{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
a.btn:link,a.btn:visited,a.btn:hover,a.btn:active,
button.btn:hover,button.btn:active{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
a.btn:hover,button.btn:hover{
  transform:translateY(-2px) scale(1.008)!important;
  filter:saturate(1.035) contrast(1.01)!important;
}
a.btn:active,button.btn:active{
  transform:translateY(2px) scale(.985)!important;
  box-shadow:
    inset 0 5px 10px rgba(6,23,43,.20),
    inset 0 1px 1px rgba(255,255,255,.48),
    0 4px 9px rgba(6,23,43,.14)!important;
}
a.btn:focus-visible,button.btn:focus-visible{
  outline:3px solid rgba(255,154,28,.95)!important;
  outline-offset:4px!important;
}

/* WhatsApp mantiene su identidad visual existente. */
a.btn.nav-wa{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(max-width:650px){
  a.btn,button.btn{min-height:54px;padding-inline:17px;white-space:normal}
  .services-section .actions{gap:14px!important}
}
@media(prefers-reduced-motion:reduce){
  a.btn,button.btn{transition:none!important}
}
