html{scroll-behavior:smooth}
body{margin:0}
a{color:#066F7A}a:hover{color:#054F57}
.lift{transition:filter .15s ease, background-color .15s ease, border-color .15s ease}
.lift:hover{filter:brightness(.9)}
.ghost{transition:background-color .15s ease}
.ghost:hover{background-color:rgba(255,255,255,.1)}
.soft{transition:border-color .15s ease, background-color .15s ease}
.soft:hover{border-color:#087E8B}
:focus-visible{outline:3px solid #087E8B;outline-offset:3px}
.dark :focus-visible{outline-color:#FFFFFF}
section[id],footer[id]{scroll-margin-top:88px}
@media (max-width:480px){.reg-dialog{padding:22px 18px !important;gap:16px !important;border-radius:16px !important}.reg-opt{padding:12px 14px !important;gap:12px !important}.reg-title{font-size:23px !important}}
.only-mobile{display:none}
@media (max-width:820px){.only-desktop{display:none !important}.only-mobile{display:block !important}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none !important}}

/* --- Sitio estático: utilidades de interacción y accesibilidad --- */
[data-if]{display:contents}
[hidden]{display:none !important}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:#FFFFFF;color:#102A43;padding:10px 16px;border-radius:8px;font-weight:600;font-family:Inter,system-ui,sans-serif}
.skip-link:focus{left:16px}
body.modal-open{overflow:hidden}
[data-day-panel]{scroll-margin-top:88px}
img{max-width:100%}

/* --- Movimiento: discreto, con función y desactivado con «reducir movimiento» --- */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes dialogIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.hero-stagger>*{animation:fadeUp .6s cubic-bezier(.2,.7,.2,1) both}
.hero-stagger>*:nth-child(2){animation-delay:.07s}
.hero-stagger>*:nth-child(3){animation-delay:.14s}
.hero-stagger>*:nth-child(4){animation-delay:.21s}
.hero-stagger>*:nth-child(5){animation-delay:.28s}
.hero-stagger>*:nth-child(6){animation-delay:.35s}
.hero-stats{animation:fadeIn .8s .45s both}
.reveal-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0s)}
.reveal-ready [data-reveal].is-visible{opacity:1;transform:none}
.reveal-ready [data-reveal].revealed{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;transition-delay:0s}
.card-hover{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,opacity .55s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.card-hover:hover{transform:translateY(-3px)!important;box-shadow:0 12px 28px rgba(16,42,67,.10);border-color:#9FC9CF!important}}
.lift svg{transition:transform .2s ease}
.lift:hover svg{transform:translate(2px,-2px)}
header{transition:box-shadow .2s ease}
header.is-scrolled{box-shadow:0 8px 24px rgba(8,24,36,.28)!important}
[data-if="showReg"]:not([hidden])>div{animation:fadeIn .2s ease both}
[data-if="showReg"]:not([hidden]) [role="dialog"]{animation:dialogIn .26s cubic-bezier(.2,.8,.2,1) both}
#menu-movil:not([hidden]) nav{animation:slideDown .2s ease both}
.day-enter{animation:fadeUp .3s ease both}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important}
  .reveal-ready [data-reveal]{opacity:1!important;transform:none!important}
  .card-hover:hover,.lift:hover svg{transform:none!important}
}
