/* ═══════════════════════════════════════════════════════════════
   EventoX · capa compartida del sitio público (v1)
   Se carga AL FINAL en todas las páginas públicas. No cambia colores:
   solo unifica flotantes, mensajes, ventanas modales y ajustes móviles.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --evx-sb:env(safe-area-inset-bottom,0px);
  --evx-st:env(safe-area-inset-top,0px);
  --evx-sr:env(safe-area-inset-right,0px);
  --evx-sl:env(safe-area-inset-left,0px);
  --evx-lift:0px;              /* sube los botones flotantes cuando hay una barra inferior */
  --evx-nav-h:68px;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:rgba(255,82,0,.18)}
body{overflow-x:clip}
img,video,canvas{max-width:100%}
:focus-visible{outline:2px solid #FF5200;outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ── Botones flotantes: WhatsApp + volver arriba, iguales en todo el sitio ── */
.eventox-whatsapp-float,.xf-wa{
  position:fixed!important;
  right:calc(18px + var(--evx-sr))!important;
  bottom:calc(18px + var(--evx-sb) + var(--evx-lift))!important;
  left:auto!important;top:auto!important;
  width:56px!important;height:56px!important;border-radius:50%!important;
  z-index:9000!important;transition:bottom .3s cubic-bezier(.32,.72,0,1),transform .25s!important;
}
.scroll-top,.xf-top{
  position:fixed!important;
  right:calc(24px + var(--evx-sr))!important;
  bottom:calc(86px + var(--evx-sb) + var(--evx-lift))!important;
  left:auto!important;top:auto!important;
  width:44px!important;height:44px!important;
  z-index:8990!important;transition:bottom .3s cubic-bezier(.32,.72,0,1),opacity .25s,transform .25s;
}
body:has(.rx-cmp-bar.show){--evx-lift:96px}

/* ── Mensajes (toasts) ─────────────────────────────────────────── */
#evxpStack{position:fixed;top:calc(var(--evx-nav-h) + 14px + var(--evx-st));right:calc(16px + var(--evx-sr));z-index:100050;
  display:flex;flex-direction:column;gap:10px;width:min(400px,calc(100vw - 32px));pointer-events:none}
.evxp-t{pointer-events:auto;display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;
  background:rgba(11,17,32,.995);border:1px solid rgba(255,255,255,.12);color:#EDF2F8;
  box-shadow:0 18px 44px rgba(0,0,0,.5);font:600 14px/1.45 'Plus Jakarta Sans',system-ui,sans-serif;
  transform:translateY(-14px);opacity:0;animation:evxpIn .35s cubic-bezier(.32,.72,0,1) forwards}
.evxp-t.out{animation:evxpOut .25s ease forwards}
.evxp-t i{flex:0 0 30px;height:30px;border-radius:10px;display:grid;place-items:center;font-style:normal;font-size:15px;font-weight:900;background:rgba(255,82,0,.16);color:#FF7A3D}
.evxp-t b{display:block;font-weight:800;color:#fff;margin-bottom:2px}
.evxp-t span{display:block;color:#9fb0c6;font-weight:500;font-size:13px;overflow-wrap:anywhere}
.evxp-t.ok{border-color:rgba(34,197,94,.45)}.evxp-t.ok i{background:rgba(34,197,94,.16);color:#4ade80}
.evxp-t.err{border-color:rgba(239,68,68,.5)}.evxp-t.err i{background:rgba(239,68,68,.16);color:#f87171}
.evxp-t.warn{border-color:rgba(251,191,36,.45)}.evxp-t.warn i{background:rgba(251,191,36,.16);color:#fbbf24}
@keyframes evxpIn{to{transform:none;opacity:1}}
@keyframes evxpOut{to{transform:translateY(-10px);opacity:0}}

/* ── Móvil ─────────────────────────────────────────────────────── */
@media (max-width:768px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select,textarea{font-size:16px!important}
  .eventox-footer a,.footer-grid a{display:inline-block;padding:6px 0}
  .eventox-footer,.xf{padding-bottom:calc(24px + var(--evx-sb))}
}
@media (max-width:640px){
  .eventox-whatsapp-float,.xf-wa{width:52px!important;height:52px!important;right:calc(14px + var(--evx-sr))!important;bottom:calc(14px + var(--evx-sb) + var(--evx-lift))!important}
  .scroll-top,.xf-top{width:42px!important;height:42px!important;right:calc(19px + var(--evx-sr))!important;bottom:calc(76px + var(--evx-sb) + var(--evx-lift))!important}
  #evxpStack{right:12px;left:12px;width:auto}

  /* Mensajes propios de cada página: arriba y a lo ancho, nunca tapan los botones */
  .rx-toast,#rdx-toast,#evxToastStack{
    top:calc(var(--evx-nav-h) + 10px + var(--evx-st))!important;bottom:auto!important;
    left:12px!important;right:12px!important;width:auto!important;min-width:0!important;max-width:none!important}
  /* Barra "comparar atletas": pegada abajo, a lo ancho */
  .rx-cmp-bar{left:12px!important;right:12px!important;bottom:calc(12px + var(--evx-sb))!important;width:auto!important;
    transform:translateY(220%)!important;justify-content:center}
  .rx-cmp-bar.show{transform:none!important}

  /* Ventanas modales: hoja inferior, con scroll interno y sin salirse de la pantalla */
  .rx-modal,.vl-modal,.fg-limit-modal,#athleteModal{align-items:flex-end!important;padding:0!important}
  .rx-modal-card,.vl-modal-card,.fg-limit-card,#athleteModal>div{
    width:100%!important;max-width:none!important;margin:0!important;
    border-radius:22px 22px 0 0!important;
    max-height:92vh!important;max-height:calc(100dvh - 20px)!important;
    overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    padding-bottom:calc(24px + var(--evx-sb))!important}
  .vl-modal-card{padding:40px 22px 24px!important}
}
@media (max-width:360px){
  .eventox-whatsapp-float,.xf-wa{width:48px!important;height:48px!important}
  .scroll-top,.xf-top{width:40px!important;height:40px!important;bottom:calc(70px + var(--evx-sb) + var(--evx-lift))!important}
}
@media (max-height:480px) and (orientation:landscape){
  .scroll-top,.xf-top{display:none!important}
  .eventox-whatsapp-float,.xf-wa{width:44px!important;height:44px!important}
}

/* "Volver arriba": solo aparece cuando ya se bajó un buen tramo */
.scroll-top:not(.evx-top-show){opacity:0!important;pointer-events:none!important;transform:translateY(10px)!important}

/* Menú móvil: respeta la barra dinámica del navegador y el borde inferior */
@media (max-width:960px){
  .evx-nav-links{max-height:calc(100vh - var(--nav-h));max-height:calc(100dvh - var(--nav-h));padding-bottom:calc(28px + var(--evx-sb))!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .evx-hamburger{min-width:44px;min-height:44px}
}
@media (max-width:960px){
  body.evx-menu-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9995;pointer-events:none}
}
/* v1.1 */

/* ── Portada en celular: menos scroll, mismo contenido ─────────────────── */
@media (max-width:600px){
  .sec{padding-top:48px;padding-bottom:48px}
  /* Servicios: carrusel horizontal con "snap" (antes eran ~2400px de tarjetas apiladas) */
  #servicios .bento{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:4px 20px 18px;scroll-padding-left:20px;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
  #servicios .bento::-webkit-scrollbar{display:none}
  #servicios .feat{flex:0 0 80%;max-width:320px;scroll-snap-align:start;min-height:0}
  #servicios .feat-lg{flex-basis:84%;min-height:380px}
  #servicios .feat-img .feat-banner{height:140px}
  /* Sponsors: 3 por fila, logos más chicos */
  .sp-grid{gap:10px}
  .sp-card{width:calc((100% - 20px)/3);height:76px;padding:10px 12px;border-radius:14px}
  .sp-card img{max-width:100%;max-height:52px}
  /* Pie: columnas de enlaces más compactas */
  .xf-col a{padding:5px 0}
}


/* ── Página de evento en celular: portada más baja, afiche sin recortar el título ── */
@media (max-width:700px){
  .evd-hero{height:auto;min-height:clamp(500px,78vh,660px);min-height:clamp(500px,78svh,660px);max-height:none}
  .evd-hero-bg img{object-position:center top}
  .evd-hero-body{padding-bottom:28px}
}


/* ── Resultados en celular ───────────────────────────────────────────────── */
@media (max-width:640px){
  .rxp-title-sm{white-space:normal;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* filtros: ya no son una barra pegada que se come 1/3 de la pantalla */
  .rxp-searchbar{position:static!important;margin-top:18px}
  .rxp-search-labeled{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
  .rxp-search-labeled>.rxp-fgroup-search,.rxp-search-labeled>.rxp-btn-labeled{grid-column:1/-1}
  .rxp-search-labeled .rxp-fgroup{min-width:0}.rxp-search-labeled .rxp-filter,.rxp-search-labeled .rxp-input{width:100%;max-width:none;min-width:0;box-sizing:border-box}
}
@media (max-width:920px){
  /* el nombre completo manda: puede ocupar 2 líneas y la fila ya no reserva espacio para los flotantes */
  .rx-table tbody tr{padding:9px 12px!important}
  .rx-cell-name,.rx-cell-namelink{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip!important;line-height:1.2!important}
}
/* En páginas con listados, los flotantes se esconden al bajar y vuelven al subir */
@media (max-width:640px){
  html.evx-floats-hide .eventox-whatsapp-float,html.evx-floats-hide .scroll-top{transform:translateY(130px)!important;opacity:0!important;pointer-events:none!important}
}


/* ── Tarjeta de evento (eventos.php): afiche completo + datos ─────────────── */
.evp-grid:has(.evc){grid-template-columns:1fr!important;gap:26px;max-width:1180px;margin-left:auto;margin-right:auto}
.tkt.evc{display:grid;grid-template-columns:minmax(260px,360px) 1fr;min-height:400px;border-radius:26px;overflow:hidden;cursor:pointer;
  background:linear-gradient(145deg,#121b30 0%,#0b111f 100%);border:1px solid rgba(255,255,255,.08);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 24px 60px -24px rgba(0,0,0,.7);
  transition:transform .35s cubic-bezier(.32,.72,0,1),border-color .35s,box-shadow .35s}
.tkt.evc:hover{transform:translateY(-4px);border-color:rgba(255,82,0,.4);box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 32px 70px -24px rgba(0,0,0,.8),0 0 0 1px rgba(255,82,0,.12)}
/* afiche: SIEMPRE completo (contain) sobre un fondo desenfocado del mismo afiche */
.evc-poster{position:relative;display:flex;align-items:center;justify-content:center;padding:26px;overflow:hidden;background:#0a101d}
.evc-poster::before{content:"";position:absolute;inset:-30px;background:var(--bg) center/cover no-repeat;filter:blur(26px) saturate(1.3) brightness(.55);transform:scale(1.15)}
.evc-poster img{position:relative;display:block;width:100%;height:auto;max-height:100%;object-fit:contain;border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.1);transition:transform .5s cubic-bezier(.32,.72,0,1)}
.tkt.evc:hover .evc-poster img{transform:scale(1.025)}
.evc-noimg{position:relative;color:#fff;opacity:.2}.evc-noimg svg{width:72px;height:72px}
.evc-main{display:flex;flex-direction:column;min-width:0;padding:34px 40px 30px}
.evc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.evc-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;line-height:1}
.evc-chip.disc{color:var(--c,#FF5200);background:color-mix(in srgb,var(--c,#FF5200) 14%,transparent);border:1px solid color-mix(in srgb,var(--c,#FF5200) 38%,transparent)}
.evc-chip.st{color:#cbd5e1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.evc-chip.st i{width:7px;height:7px;border-radius:50%;background:#94a3b8}
.evc-chip.st.ok{color:#4ade80;background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.35)}.evc-chip.st.ok i{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.2)}
.evc-chip.st.full{color:#fca5a5;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.35)}.evc-chip.st.full i{background:#ef4444}
.evc-chip.st.soon{color:#fbbf24;background:rgba(251,191,36,.1);border-color:rgba(251,191,36,.35)}.evc-chip.st.soon i{background:#fbbf24}
.evc-chip.days{color:#FF7A3D;background:rgba(255,82,0,.12);border:1px solid rgba(255,82,0,.35)}
.evc-name{margin:0 0 14px;font-size:clamp(26px,2.9vw,38px);font-weight:900;letter-spacing:-.035em;line-height:1.08;color:#fff}
.evc-meta{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;margin:0 0 16px;padding:0}
.evc-meta li{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#b4c0d2}
.evc-meta svg{width:16px;height:16px;fill:none;stroke:#FF7A3D;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.evc-desc{margin:0 0 22px;max-width:62ch;font-size:15px;line-height:1.65;color:#8ea0b8;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.evc-stats{display:flex;gap:14px;margin-bottom:6px}
.evc-stat{min-width:132px;padding:14px 20px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.evc-stat b{display:block;font-size:30px;font-weight:900;letter-spacing:-.03em;line-height:1.05;color:#fff}
.evc-stat span{display:block;margin-top:5px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#7F93AB}
.evc-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding-top:24px}
.evc-price small{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7F93AB}
.evc-price b{display:block;margin-top:3px;font-size:24px;font-weight:900;letter-spacing:-.03em;color:#fff}
.evc-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.evc-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:50px;padding:0 24px;border-radius:14px;font-size:14px;font-weight:800;line-height:1;font-family:inherit;text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.evc-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.evc-btn.ghost{color:#e5ecf6;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.14)}
.evc-btn.ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28)}
.evc-btn.primary{color:#fff;background:linear-gradient(135deg,#FF5200,#FF7133);box-shadow:0 10px 26px -8px rgba(255,82,0,.65)}
.evc-btn.primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(255,82,0,.75)}
.evc-btn.primary:hover svg{transform:translateX(4px)}
.evc-btn:active{transform:scale(.98)}
/* finalizados: misma tarjeta, más compacta y sobria */
.tkt.evc.finished{min-height:300px;grid-template-columns:minmax(200px,260px) 1fr;border-radius:22px}
.tkt.evc.finished .evc-poster{padding:20px}
.tkt.evc.finished .evc-main{padding:26px 32px 24px}
.tkt.evc.finished .evc-name{font-size:clamp(22px,2.3vw,30px)}
.tkt.evc.finished .evc-stat{padding:11px 18px}.tkt.evc.finished .evc-stat b{font-size:25px}
@media (max-width:860px){
  .tkt.evc,.tkt.evc.finished{grid-template-columns:1fr;min-height:0}
  .evc-poster,.tkt.evc.finished .evc-poster{padding:22px 22px 20px}
  .evc-poster img{width:auto;max-width:100%;max-height:340px;margin:0 auto}
  .evc-main,.tkt.evc.finished .evc-main{padding:24px 20px 22px}
  .evc-name{font-size:25px}
  .evc-stats{gap:10px}.evc-stat{flex:1;min-width:0;padding:12px 14px}.evc-stat b{font-size:24px}
  .evc-foot{flex-direction:column;align-items:stretch;gap:16px}
  .evc-price{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.evc-price b{margin:0;font-size:22px}
  .evc-actions{margin-left:0;flex-direction:column-reverse;align-items:stretch;gap:10px}
  .evc-btn{height:52px;width:100%}
}
/* afiche horizontal: va arriba como banner */
.tkt.evc.land,.tkt.evc.land.finished{grid-template-columns:1fr;min-height:0}
.tkt.evc.land .evc-poster{padding:24px}
.tkt.evc.land .evc-poster img{width:auto;max-width:100%;max-height:360px;margin:0 auto}
.tkt.evc.land.finished .evc-poster img{max-height:260px}
/* v2.2 */
