@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Anton&family=Baloo+2:wght@700;800&family=Cinzel:wght@700;900&family=Orbitron:wght@700;900&family=Pacifico&family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,700;1,700&family=Lilita+One&display=swap');
/* Temas Alta-Mira: estilos restringidos a .party y portada.
   Mantener intacta la sección institucional .venue. */
html:not(.theme-autos) .party {
  color:var(--am-text)!important;
  background:linear-gradient(180deg,var(--am-primary) 0%,var(--am-dark) 78%,var(--am-dark) 100%)!important;
}
html:not(.theme-autos) .party::after {
  background:linear-gradient(180deg,transparent,var(--am-dark))!important;
}
html:not(.theme-autos) .cover {
  background:radial-gradient(ellipse at 25% 20%,var(--am-primary),transparent 62%),
    radial-gradient(ellipse at 85% 45%,var(--am-accent),transparent 62%),
    linear-gradient(145deg,var(--am-dark),var(--am-primary))!important;
}
html:not(.theme-autos) .am-theme-art {
  position:absolute;inset:0;z-index:2;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:20px 12px 115px;
  background:radial-gradient(ellipse at 50% 38%,color-mix(in srgb,var(--am-accent) 30%,transparent),transparent 70%);
}
html:not(.theme-autos) .am-theme-icon {
  font-size:clamp(85px,22vw,155px);line-height:1;
  filter:drop-shadow(0 12px 16px #0b102d8a);
  animation:am-float 4s ease-in-out infinite;
}
html:not(.theme-autos) .am-theme-label {
  max-width:90%;padding:8px 16px;border:2px solid var(--am-accent);
  border-radius:50px;background:var(--am-dark);color:#fff;
  font:800 15px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:1.5px;text-align:center;text-transform:uppercase;
}
@keyframes am-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-13px) rotate(3deg)}}
html:not(.theme-autos) .party .date,
html:not(.theme-autos) .party .time {color:var(--am-text)!important}
html:not(.theme-autos) .party .date span,
html:not(.theme-autos) .party .date strong,
html:not(.theme-autos) .party .time b {color:var(--am-text)!important;text-shadow:0 2px 6px #0005!important}
html:not(.theme-autos) .party .count small {
  color:#fff!important;opacity:1!important;text-shadow:0 1px 3px #000a!important;
  font-size:10px!important;letter-spacing:1px!important;font-weight:800!important;
}
html:not(.theme-autos) .party .count b {color:#fff!important}
html:not(.theme-autos) .party .count > div {
  background:var(--am-dark)!important;border-color:var(--am-accent)!important;
}
html:not(.theme-autos) .party .hero-copy .intro {
  color:#fff!important;text-shadow:0 2px 5px #000,2px 3px 0 var(--am-dark)!important;
  font-size:clamp(16px,4.5vw,23px)!important;line-height:1.08!important;
}
html:not(.theme-autos) .party .hero-copy h1 {color:#fff!important}
html:not(.theme-autos) .party .hero-copy .age {color:var(--am-accent)!important}
html.theme-videojuegos .am-theme-art {display:none!important}
html.theme-videojuegos .cover > img {visibility:visible!important}
html.theme-videojuegos .party .count small {color:#fff!important;opacity:1!important}
@media(prefers-reduced-motion:reduce){.am-theme-icon{animation:none!important}}

/* Cartel superior temático: conservar cronómetro, distribución y animación. */
html:not(.theme-autos) .party .kicker .v42-topline {
  font-size:clamp(16px,4.6vw,26px)!important;
  line-height:1.02!important;
  overflow-wrap:anywhere;
  text-wrap:balance;
}
html:not(.theme-autos) .party .kicker .am-kicker-icon {
  display:inline-flex!important;align-items:center;justify-content:center;
  font-size:clamp(29px,7vw,46px)!important;
  line-height:1!important;filter:drop-shadow(2px 3px 0 #251c38);
}


/* V3: horario monocromático. Todas las letras y cifras de una línea
   comparten color, sombra y relleno, sin colores alternados. */
html:not(.theme-autos) .party > .time,
html:not(.theme-autos) .party > .time b,
html.theme-videojuegos .party > .time,
html.theme-videojuegos .party > .time b {
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  text-shadow:2px 3px 0 #281a40, 0 2px 8px #100d27a6!important;
}
/* Mantener las tres partes de la fecha visualmente uniformes. */
html:not(.theme-autos) .party > .date,
html:not(.theme-autos) .party > .date span,
html:not(.theme-autos) .party > .date strong {
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  text-shadow:2px 3px 0 #281a40,0 2px 8px #100d27a6!important;
}
/* La zona dinámica termina en el mismo color con el que empieza la
   transición. La zona fija .venue y sus elementos no se modifican. */
html:not(.theme-autos) .party {
  background:linear-gradient(180deg,var(--am-primary) 0%,var(--am-dark) 76%,var(--am-dark) 100%)!important;
  border-bottom:0!important;
}
html:not(.theme-autos) .party::after {
  background:linear-gradient(180deg,transparent 0%,var(--am-dark) 100%)!important;
}
html:not(.theme-autos) .transition {
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background-color:var(--am-dark)!important;
  background-image:linear-gradient(180deg,
    var(--am-dark) 0%,
    var(--am-dark) 4%,
    color-mix(in srgb,var(--am-dark) 82%,#f9dce9) 21%,
    color-mix(in srgb,var(--am-dark) 45%,#f9dce9) 47%,
    #f9dce9 78%,
    #ffebc2 100%)!important;
}
html:not(.theme-autos) .transition::after {
  background:linear-gradient(180deg,transparent 0%,#ffebc2 100%)!important;
}
html:not(.theme-autos) .transition::before {
  display:none!important;
}
/* Evitar una raya causada por un espacio de subpíxeles. */
html:not(.theme-autos) .transition {margin-top:-1px!important;}
html:not(.theme-autos) .venue {border-top:0!important;}

/* V4 — Cartel de horario premium, unificado y pulsante. */
html:not(.theme-autos) .party > .time {
  display:table!important;
  width:max-content!important;
  max-width:calc(100% - 30px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:13px 21px 14px!important;
  border:3px solid var(--am-accent)!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,
    color-mix(in srgb,var(--am-primary) 70%,#ffffff 5%) 0%,
    var(--am-dark) 58%,
    color-mix(in srgb,var(--am-primary) 55%,var(--am-dark)) 100%)!important;
  box-shadow:0 6px 0 #21162b8c,0 12px 24px #130e2d66,
    inset 0 2px 0 #ffffff70, inset 0 -2px 0 #00000035,
    0 0 17px color-mix(in srgb,var(--am-accent) 35%,transparent)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:clamp(17px,4.8vw,26px)!important;
  line-height:1.2!important;
  letter-spacing:.15px!important;
  text-align:center!important;
  animation:v60-time-heartbeat 2.8s ease-in-out infinite!important;
}
html:not(.theme-autos) .party > .time b {
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  text-shadow:2px 3px 0 #21162b,0 0 8px #ffffff30!important;
}
/* V4 — Ilustración temática tipo sticker, con contorno troquelado,
   capas, reflejos, destellos y animación independiente del cartel. */
html:not(.theme-autos) .party .kicker .race-flag.am-kicker-icon {
  position:relative!important;display:inline-grid!important;
  place-items:center!important;
  flex:0 0 clamp(43px,10vw,61px)!important;
  width:clamp(43px,10vw,61px)!important;
  height:clamp(47px,11vw,66px)!important;
  font-size:0!important;
  line-height:1!important;
  filter:none!important;
  transform-origin:50% 60%!important;
  animation:am-sticker-bounce 3.8s cubic-bezier(.3,.1,.25,1) infinite!important;
}
html:not(.theme-autos) .am-sticker-svg {
  width:100%;height:100%;display:block;overflow:visible;
  filter:drop-shadow(2px 5px 0 #2b183e) drop-shadow(0 5px 5px #0005);
}
html:not(.theme-autos) .am-sticker-star {
  transform-origin:48px 11px;
  animation:am-sticker-twinkle 2.4s ease-in-out infinite;
}
@keyframes am-sticker-bounce {
  0%,100%{transform:translateY(0) rotate(-8deg) scale(1)}
  20%{transform:translateY(-5px) rotate(5deg) scale(1.08)}
  38%{transform:translateY(0) rotate(-3deg) scale(.98)}
  65%{transform:translateY(-2px) rotate(3deg) scale(1.02)}
}
@keyframes am-sticker-twinkle {0%,100%{opacity:.4;transform:scale(.65)}50%{opacity:1;transform:scale(1.2)}}
/* V4 — Costura cromática: un fundido de color real, no un resplandor
   blanco que deja ver el límite entre las secciones. */
html:not(.theme-autos) .party {
  border-bottom:0!important;
  box-shadow:none!important;
  background-image:linear-gradient(180deg,var(--am-primary) 0%,var(--am-dark) 73%,var(--am-dark) 100%)!important;
}
html:not(.theme-autos) .transition {
  position:relative!important;
  margin-top:-2px!important;
  border:0!important;
  box-shadow:none!important;
  background-color:var(--am-dark)!important;
  background-image:linear-gradient(180deg,
    var(--am-dark) 0%,
    var(--am-dark) 13%,
    color-mix(in srgb,var(--am-dark) 94%,#f9dce9) 27%,
    color-mix(in srgb,var(--am-dark) 75%,#f9dce9) 45%,
    color-mix(in srgb,var(--am-dark) 40%,#f9dce9) 67%,
    #f9dce9 85%,#ffebc2 100%)!important;
}
html:not(.theme-autos) .transition::before {
  content:""!important;display:block!important;
  position:absolute!important;
  top:-72px!important;left:0!important;right:0!important;
  height:175px!important;z-index:0!important;pointer-events:none!important;
  background:linear-gradient(180deg,
    transparent 0%,var(--am-dark) 39%,var(--am-dark) 65%,
    color-mix(in srgb,var(--am-dark) 78%,#f9dce9) 86%,transparent 100%)!important;
  filter:blur(11px)!important;
}
html:not(.theme-autos) .transition::after {
  background:linear-gradient(180deg,transparent 0%,#ffebc2 100%)!important;
  filter:none!important;
}
@media(max-width:380px){
 html:not(.theme-autos) .party > .time {font-size:16px!important;padding:11px 12px!important}
}
@media(prefers-reduced-motion:reduce){
 html:not(.theme-autos) .am-kicker-icon,
 html:not(.theme-autos) .am-sticker-star {animation:none!important}
}

/* V5: Dinosaurio legible, sin escudo recargado. Movimiento visible y delicado. */
html.theme-dinosaurios .party .kicker .race-flag.am-dino-sticker {
  flex:0 0 clamp(62px,15vw,88px)!important;
  width:clamp(62px,15vw,88px)!important;
  height:clamp(62px,15vw,88px)!important;
  margin-left:-5px!important;
  margin-right:2px!important;
  animation:am-dino-wave 3.2s ease-in-out infinite!important;
}
html.theme-dinosaurios .am-dino-sticker .am-sticker-svg {
  filter:drop-shadow(2px 4px 0 #2b183e) drop-shadow(0 5px 5px #0004);
}
@keyframes am-dino-wave {
  0%,100% {transform:rotate(-7deg) translateY(1px)}
  30% {transform:rotate(6deg) translateY(-7px)}
  55% {transform:rotate(-2deg) translateY(0)}
  75% {transform:rotate(4deg) translateY(-3px)}
}
@media(prefers-reduced-motion:reduce) {
  html.theme-dinosaurios .party .kicker .race-flag.am-dino-sticker {animation:none!important}
}

/* V6: Portada dinámica; la fotografía nunca tapa los textos de V60. */
.cover.am-cover-with-image > img:not(.am-custom-cover-image),
.cover.am-cover-without-image > img:not(.am-custom-cover-image) {display:none!important}
.cover.am-cover-with-image .am-theme-art {display:none!important}
.cover.am-cover-with-image::after {background:none!important;animation:none!important}
.cover.am-cover-with-image .am-custom-cover-image {
  display:block!important;visibility:visible!important;position:absolute!important;
  inset:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;z-index:0!important;transform-origin:center center!important;
  max-width:none!important;
}
html.theme-videojuegos .cover.am-cover-with-image::after {display:none!important}
html.theme-videojuegos .cover.am-cover-without-image::after {display:none!important}

/* V7: Tipografía según la temática; sólo textos de la portada. */

html:is(.theme-princesas,.theme-danza,.theme-sirenas,.theme-unicornios,.theme-san_valentin) .hero-copy :is(.intro,.age,h1){font-family:'Cinzel',Georgia,serif!important;letter-spacing:-.035em!important}
html:is(.theme-videojuegos,.theme-espacio,.theme-neon,.theme-anime) .hero-copy :is(.intro,.age,h1){font-family:'Orbitron',Arial,sans-serif!important;letter-spacing:-.055em!important}
html:is(.theme-dinosaurios,.theme-selva_bosque,.theme-pascua,.theme-tropical,.theme-navidad) .hero-copy :is(.intro,.age,h1){font-family:'Baloo 2',Arial,sans-serif!important;letter-spacing:-.04em!important}
html:is(.theme-magia,.theme-retro,.theme-anio_nuevo,.theme-cine) .hero-copy :is(.intro,.age,h1){font-family:'Abril Fatface',Georgia,serif!important;letter-spacing:-.02em!important}
html:is(.theme-musica,.theme-futbol,.theme-basquetbol,.theme-skateboarding,.theme-fitness,.theme-superheroes,.theme-halloween) .hero-copy :is(.intro,.age,h1){font-family:'Anton',Impact,sans-serif!important;letter-spacing:.015em!important}
html:not(.theme-autos) .hero-copy h1 {overflow-wrap:anywhere!important;max-width:100%!important;font-size:clamp(28px,9vw,66px)!important;line-height:1.05!important}
html:not(.theme-autos) .hero-copy .age {line-height:1.04!important}

/* V7B: recursos 3D integrados sin el medallón vectorial. */
html:not(.theme-autos) .party .kicker .race-flag.am-3d-sticker {
  width:clamp(56px,13vw,80px)!important;
  height:clamp(58px,13vw,82px)!important;
  flex-basis:clamp(56px,13vw,80px)!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  animation:am-3d-float 3.6s ease-in-out infinite!important;
}
.am-3d-sticker-img {display:block;width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(1px 3px 0 #fff) drop-shadow(3px 5px 2px #25152b88)!important;}
.am-3d-sticker-fallback {display:block;font-size:clamp(40px,9vw,59px)!important;
  filter:drop-shadow(2px 4px 2px #25152b99);line-height:1;}
@keyframes am-3d-float {0%,100%{transform:translateY(0) rotate(-6deg)}
  40%{transform:translateY(-6px) rotate(5deg)}70%{transform:translateY(-2px) rotate(-2deg)}}
/* Princesas: composición tipográfica romántica, con nombre cursivo. */
html.theme-princesas .hero-copy h1 {
 font-family:'Pacifico',cursive!important;font-weight:400!important;
 font-size:clamp(30px,8.4vw,58px)!important;letter-spacing:-.03em!important;
 line-height:1.23!important;padding-bottom:.15em!important;
 color:#fff2d2!important;-webkit-text-fill-color:#fff2d2!important;
 text-shadow:2px 3px 0 #b7377c,4px 6px 0 #6a265c,0 0 16px #ffbce3!important;
}
html.theme-princesas .hero-copy .age {font-family:'Cinzel',Georgia,serif!important;}
@media(prefers-reduced-motion:reduce){.am-3d-sticker{animation:none!important}}

/* V7D: Composición compacta, legible y adaptable. Referencia Princesas aprobada. */
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy{
  box-sizing:border-box!important;left:0!important;right:0!important;
  padding:24px 15px 10px!important;overflow:visible!important;
  background:linear-gradient(0deg,#21172af7 0%,#28172edb 48%,transparent 100%)!important;
  text-align:center!important;
}
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy .intro{
  font:900 clamp(14px,3.3vw,20px)/1.15 'Barlow Condensed',Impact,sans-serif!important;
  letter-spacing:.015em!important;color:#fff9ed!important;
  text-shadow:1px 2px 0 #612b4e,0 3px 8px #170d20!important;
  margin:0 0 2px!important;transform:none!important;
}
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy .age{
  display:flex!important;justify-content:center!important;align-items:baseline!important;
  gap:8px!important;margin:0 auto!important;line-height:1.12!important;
  font-size:clamp(58px,13vw,82px)!important;
}
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy .age span{
  font-size:.64em!important;text-transform:none!important;
}
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy h1{
  display:block!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;
  margin:0 auto!important;padding:0 4px 8px!important;
  font-size:44px!important;line-height:1.18!important;
  letter-spacing:0!important;overflow-wrap:normal!important;word-break:normal!important;
  white-space:normal!important;text-wrap:balance!important;
  overflow:visible!important;text-align:center!important;
}
html:is(.theme-princesas,.theme-danza,.theme-dinosaurios) .hero-copy h1 em{
  font:inherit!important;font-style:inherit!important;color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
/* Princesas: caligrafía legible, esmalte rosa y oro. */
html.theme-princesas .hero-copy .age,
html.theme-princesas .hero-copy h1{
  font-family:'Pacifico','Brush Script MT',cursive!important;font-weight:400!important;
  color:#ffe8a4!important;-webkit-text-fill-color:#ffe8a4!important;
  -webkit-text-stroke:.35px #a93668!important;
  text-shadow:1px 1px 0 #fff7dc,2px 3px 0 #e55a94,4px 5px 0 #832c63,0 7px 12px #160d20!important;
}
html.theme-princesas .hero-copy .age span{font-family:'Pacifico',cursive!important;font-weight:400!important}
/* Ballet: letras suaves, satinadas y con alto contraste. */
html.theme-danza .hero-copy .age,
html.theme-danza .hero-copy h1{
  font-family:'Cormorant Garamond',Georgia,serif!important;font-style:italic!important;
  font-weight:700!important;color:#fff2ed!important;-webkit-text-fill-color:#fff2ed!important;
  text-shadow:1px 2px 0 #e9a6ca,3px 4px 0 #98537f,0 6px 14px #231325!important;
}
/* Dinosaurios: letras sólidas con volumen y contraste. */
html.theme-dinosaurios .hero-copy .age,
html.theme-dinosaurios .hero-copy h1{
  font-family:'Baloo 2',Impact,sans-serif!important;font-weight:900!important;
  color:#ffdf7d!important;-webkit-text-fill-color:#ffdf7d!important;
  -webkit-text-stroke:.45px #604b24!important;
  text-shadow:2px 3px 0 #b66b27,4px 5px 0 #295b39,0 7px 14px #112c20!important;
}
