/* CSV46 · Dirección de arte unificada
   Cristal óptico + metal mecanizado + respuesta táctil consistente.
   Capa exclusivamente visual: no altera layout estructural ni funcionalidad. */
:root{
  --csv46-light-angle: 145deg;
  --csv46-radius-control: 999px;
  --csv46-radius-card: 24px;
  --csv46-ease: cubic-bezier(.2,.78,.2,1);
  --csv46-blue-a:#74d4ff; --csv46-blue-b:#0879e8; --csv46-blue-c:#063a9b;
  --csv46-green-a:#8af59d; --csv46-green-b:#24c861; --csv46-green-c:#087b37;
  --csv46-orange-a:#ffd68a; --csv46-orange-b:#ff811f; --csv46-orange-c:#c94508;
  --csv46-white-a:#ffffff; --csv46-white-b:#e8f1fb; --csv46-white-c:#aebfd3;
  --csv46-chrome-a:#fdfefe; --csv46-chrome-b:#aeb9c6; --csv46-chrome-c:#4e5c6c;
  --csv46-gold-a:#fff0a2; --csv46-gold-b:#d9a629; --csv46-gold-c:#75500b;
  --csv46-shadow:0 14px 28px rgba(8,27,50,.18),0 4px 9px rgba(8,27,50,.16);
}

/* Una única lógica de iluminación para todos los objetos táctiles. */
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]){
  --csv46-a:var(--csv46-blue-a); --csv46-b:var(--csv46-blue-b); --csv46-c:var(--csv46-blue-c);
  --csv46-metal-a:var(--csv46-chrome-a); --csv46-metal-b:var(--csv46-chrome-b); --csv46-metal-c:var(--csv46-chrome-c);
  position:relative; isolation:isolate; overflow:hidden;
  border:2px solid transparent!important;
  border-radius:var(--csv46-radius-control)!important;
  background:
    linear-gradient(var(--csv46-light-angle),var(--csv46-a),var(--csv46-b) 48%,var(--csv46-c)) padding-box,
    linear-gradient(var(--csv46-light-angle),var(--csv46-metal-a),var(--csv46-metal-b) 45%,var(--csv46-metal-c) 76%,#eef4fa) border-box!important;
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.9),
    inset 0 -7px 11px rgba(0,20,55,.25),
    inset 0 0 0 1px rgba(255,255,255,.22),
    0 2px 0 rgba(35,49,67,.72),
    var(--csv46-shadow)!important;
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.42);
  transform:translate3d(0,0,0);
  transition:transform .2s var(--csv46-ease),filter .2s ease,box-shadow .2s ease!important;
  -webkit-tap-highlight-color:transparent;
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  left:7%; right:7%; top:5%; height:43%; border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.27) 54%,transparent);
  opacity:.72;
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::after{
  content:""; position:absolute; z-index:3; pointer-events:none;
  width:24%; top:-45%; bottom:-45%; left:-42%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);
  transform:skewX(-18deg) translateX(-240%);
  transition:transform .7s var(--csv46-ease);
}
@media (hover:hover){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):hover{
    transform:translateY(-3px) scale(1.012); filter:brightness(1.055) saturate(1.05);
    box-shadow:inset 0 2px 1px #fff,inset 0 -7px 11px rgba(0,20,55,.21),inset 0 0 0 1px rgba(255,255,255,.26),0 3px 0 rgba(35,49,67,.68),0 18px 34px rgba(8,27,50,.22),0 6px 12px rgba(8,27,50,.16)!important;
  }
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):hover::after{transform:skewX(-18deg) translateX(720%)}
}
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):active,
:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]).csv46-pressed{
  transform:translateY(2px) scale(.986); filter:brightness(.94);
  box-shadow:inset 0 6px 13px rgba(0,12,38,.35),inset 0 -1px 2px rgba(255,255,255,.5),0 1px 0 rgba(35,49,67,.68),0 4px 8px rgba(8,27,50,.16)!important;
}

/* Jerarquía de materiales. */
:where(.csv46-control--premium,.csv-object--whatsapp,.wa-open.is-interactive,.btn.primary,.btn.cta){
  --csv46-metal-a:var(--csv46-gold-a); --csv46-metal-b:var(--csv46-gold-b); --csv46-metal-c:var(--csv46-gold-c);
}
:where(.csv46-control--whatsapp,.csv-object--whatsapp,.wa-open.is-interactive){--csv46-a:var(--csv46-green-a);--csv46-b:var(--csv46-green-b);--csv46-c:var(--csv46-green-c)}
:where(.csv46-control--orange,.btn:not(.dark):not(.outline):not(.alt):not(.csv-object--call):not(.csv-object--route):not(.csv-object--whatsapp)){--csv46-a:var(--csv46-orange-a);--csv46-b:var(--csv46-orange-b);--csv46-c:var(--csv46-orange-c)}
:where(.csv46-control--white){--csv46-a:var(--csv46-white-a);--csv46-b:var(--csv46-white-b);--csv46-c:var(--csv46-white-c);color:#12355b!important;text-shadow:none}
.station-tab.is-interactive[aria-selected="true"]{--csv46-a:#fff3a8;--csv46-b:#eeb52e;--csv46-c:#9a6507}

/* Iconografía: placa interior común, sin círculos duplicados. */
:where(.csv46-control,.btn,.wa-open,.touch-action) :where(.csv-object__icon,.icon,.svg-icon,.csv-icon){
  display:inline-grid; place-items:center; flex:0 0 auto;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.28));
}
:where(.csv46-control,.btn,.wa-open) .csv-object__icon{
  width:1.9em;height:1.9em;border-radius:50%;
  background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,255,255,.08));
  box-shadow:inset 0 1px 1px rgba(255,255,255,.72),inset 0 -3px 5px rgba(0,0,0,.18),0 1px 2px rgba(0,0,0,.16);
}

/* Tarjetas y píldoras: mismo radio, luz y profundidad; no afecta dimensiones. */
:where(.card,.panel,.help-card,.touch-card,.v-card,.contact-card,.gallery-item,.csv46-card){
  border-radius:var(--csv46-radius-card)!important;
  border:1px solid rgba(255,255,255,.68)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(244,249,255,.72))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 0 0 1px rgba(118,147,178,.08),0 14px 32px rgba(14,42,72,.11),0 3px 8px rgba(14,42,72,.08)!important;
}
:where(.service-chip,.help-chip,.utility-pill,.v-badge,.payment,.csv46-pill){
  border-radius:999px!important;
  border:1px solid rgba(152,170,192,.56)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(224,235,247,.82))!important;
  box-shadow:inset 0 1px 0 #fff,inset 0 -2px 4px rgba(40,68,99,.1),0 4px 9px rgba(16,42,72,.1)!important;
}

:where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]):focus-visible{
  outline:3px solid #fff!important;outline-offset:3px;
  box-shadow:0 0 0 6px rgba(0,91,190,.72),0 15px 30px rgba(8,27,50,.22)!important;
}
@media(max-width:650px){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.wa-open.is-interactive,button[type="submit"]){min-height:48px}
  :where(.card,.panel,.help-card,.touch-card,.v-card,.contact-card,.gallery-item,.csv46-card){border-radius:20px!important}
}
@media(prefers-reduced-motion:reduce){
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"]){transition:none!important}
  :where(.csv46-control,.btn.is-interactive,.toggle-form,.station-tab.is-interactive,.wa-open.is-interactive,button[type="submit"])::after{display:none}
}
/* Clasificación semántica aplicada por CSV46; se declara al final para prevalecer. */
:where(.csv46-control--blue){--csv46-a:var(--csv46-blue-a);--csv46-b:var(--csv46-blue-b);--csv46-c:var(--csv46-blue-c)}
:where(.csv46-control--orange){--csv46-a:var(--csv46-orange-a);--csv46-b:var(--csv46-orange-b);--csv46-c:var(--csv46-orange-c)}


/* CSV46.2 · Corrección profesional del sistema de llamada
   Un único activo canónico. Se elimina la placa naranja, el SVG anterior y cualquier texto visible. */
:where(a.csv-object--call){
  --csv-call-size:76px;
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 auto!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:none!important;
  text-shadow:none!important;
  overflow:visible!important;
  isolation:isolate;
  line-height:0!important;
}
:where(a.csv-object--call)::before,
:where(a.csv-object--call)::after{display:none!important;content:none!important}
:where(a.csv-object--call) > :not(.csv-call-premium-icon){display:none!important}
:where(a.csv-object--call) .csv-call-premium-icon{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:contain!important;
  border-radius:50%!important;
  filter:drop-shadow(0 10px 14px rgba(7,27,55,.22)) drop-shadow(0 2px 3px rgba(7,27,55,.2));
  transform:translateZ(0);
  transition:transform .18s cubic-bezier(.2,.78,.2,1),filter .18s ease!important;
}
@media(hover:hover){
  :where(a.csv-object--call):hover{transform:none!important;filter:none!important;box-shadow:none!important}
  :where(a.csv-object--call):hover .csv-call-premium-icon{
    transform:translateY(-2px) scale(1.035);
    filter:drop-shadow(0 13px 17px rgba(7,27,55,.25)) drop-shadow(0 3px 4px rgba(7,27,55,.2)) brightness(1.035);
  }
}
:where(a.csv-object--call):active,
:where(a.csv-object--call).csv46-pressed{transform:none!important;filter:none!important;box-shadow:none!important}
:where(a.csv-object--call):active .csv-call-premium-icon,
:where(a.csv-object--call).csv46-pressed .csv-call-premium-icon{
  transform:translateY(2px) scale(.965);
  filter:drop-shadow(0 4px 6px rgba(7,27,55,.18)) brightness(.95);
}
:where(a.csv-object--call):focus-visible{
  outline:3px solid #fff!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 7px rgba(0,91,190,.72)!important;
}
/* Contextos compactos: conserva jerarquía sin deformar tarjetas ni barras. */
:where(.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{
  --csv-call-size:72px;
}
@media(max-width:650px){
  :where(a.csv-object--call){--csv-call-size:68px}
  :where(.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:64px}
}
@media(prefers-reduced-motion:reduce){
  :where(a.csv-object--call) .csv-call-premium-icon{transition:none!important}
}

/* CSV46.3 · Escala óptica unificada del icono de llamada
   El activo ocupa de forma proporcionada el control que lo contiene en todos los contextos. */
:where(a.csv-object--call){
  --csv-call-size:clamp(84px,9.2vw,104px)!important;
}
:where(a.csv-object--call) .csv-call-premium-icon{
  width:100%!important;
  height:100%!important;
  transform:scale(1.08) translateZ(0)!important;
  transform-origin:center!important;
}
:where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{
  --csv-call-size:clamp(88px,10vw,108px)!important;
}
@media(max-width:650px){
  :where(a.csv-object--call){--csv-call-size:88px!important}
  :where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:94px!important}
}
@media(max-width:380px){
  :where(a.csv-object--call){--csv-call-size:82px!important}
  :where(.v-row,.v-card,.touch-card,.utility-strip,.station-actions,.buttons,.traveler-actions,.contact-cards,.facts,.v-safety) a.csv-object--call{--csv-call-size:88px!important}
}
@media(hover:hover){
  :where(a.csv-object--call):hover .csv-call-premium-icon{transform:translateY(-2px) scale(1.115)!important}
}
:where(a.csv-object--call):active .csv-call-premium-icon,
:where(a.csv-object--call).csv46-pressed .csv-call-premium-icon{transform:translateY(2px) scale(1.035)!important}

/* CSV46.4 · Corrección real en página web
   Anula los estilos heredados naranjas de premium-depth-v19 y hace que el activo
   circular sea el botón completo, no un icono pequeño dentro de otro botón. */
a.csv-object.csv-object--call,
.v-row > a.csv-object.csv-object--call,
.v-list .v-row > a.csv-object.csv-object--call,
.v-card a.csv-object.csv-object--call,
.touch-card a.csv-object.csv-object--call,
.utility-strip a.csv-object.csv-object--call,
.station-actions a.csv-object.csv-object--call,
.traveler-actions a.csv-object.csv-object--call,
.contact-cards a.csv-object.csv-object--call,
.facts a.csv-object.csv-object--call,
.v-safety a.csv-object.csv-object--call{
  --csv-call-size:104px!important;
  display:inline-grid!important;
  place-items:center!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  max-width:var(--csv-call-size)!important;
  max-height:var(--csv-call-size)!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  background:none!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  color:transparent!important;
  overflow:visible!important;
}
a.csv-object.csv-object--call > img.csv-call-premium-icon,
.v-row > a.csv-object.csv-object--call > img.csv-call-premium-icon,
.v-list .v-row > a.csv-object.csv-object--call > img.csv-call-premium-icon{
  display:block!important;
  width:var(--csv-call-size)!important;
  height:var(--csv-call-size)!important;
  min-width:var(--csv-call-size)!important;
  min-height:var(--csv-call-size)!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  border-radius:50%!important;
}
@media(max-width:650px){
  a.csv-object.csv-object--call,
  .v-row > a.csv-object.csv-object--call,
  .v-list .v-row > a.csv-object.csv-object--call,
  .v-card a.csv-object.csv-object--call,
  .touch-card a.csv-object.csv-object--call,
  .utility-strip a.csv-object.csv-object--call,
  .station-actions a.csv-object.csv-object--call,
  .traveler-actions a.csv-object.csv-object--call,
  .contact-cards a.csv-object.csv-object--call,
  .facts a.csv-object.csv-object--call,
  .v-safety a.csv-object.csv-object--call{--csv-call-size:96px!important}
}
@media(max-width:380px){
  a.csv-object.csv-object--call,
  .v-row > a.csv-object.csv-object--call,
  .v-list .v-row > a.csv-object.csv-object--call{--csv-call-size:90px!important}
}
