/* V3.0 — product gallery + sponsor ribbon */
.product-gallery{position:relative;width:100%;height:100%;min-width:0;display:grid;place-items:center;overflow:hidden;border-radius:inherit;}
.product-gallery__image{display:block!important;width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center!important;transition:opacity .28s ease,transform .45s ease;}
.product-gallery__image.is-changing{opacity:.12;transform:scale(.985)}
.product-gallery__controls{position:absolute;inset:auto 10px 10px;display:flex;justify-content:center;align-items:center;gap:7px;z-index:5;pointer-events:none}
.product-gallery__dot{pointer-events:auto;border:0;width:7px;height:7px;padding:0;border-radius:99px;background:rgba(30,20,15,.35);box-shadow:0 1px 3px #0002;cursor:pointer;transition:width .2s,background .2s}
.product-gallery__dot[aria-current="true"]{width:22px;background:var(--mamma-red,#b22222)}
.product-gallery__arrow{pointer-events:auto;display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffffb0;border-radius:50%;background:#fffdf0e8;color:#171514;font-size:18px;cursor:pointer;box-shadow:0 2px 10px #0002}
.product-gallery__controls[hidden]{display:none!important}
.sponsor-marquee{position:relative;overflow:hidden;margin:clamp(30px,5vw,72px) 0 0;padding:14px 0;background:#171514;border-block:5px solid #b22222;border-radius:22px 22px 0 0}
.sponsor-marquee__track{display:flex;align-items:center;gap:clamp(38px,6vw,100px);width:max-content;animation:sponsorMarquee 18s linear infinite}
.sponsor-marquee:hover .sponsor-marquee__track{animation-play-state:paused}
.sponsor-marquee__group{display:flex;align-items:center;gap:clamp(38px,6vw,100px);padding-right:clamp(38px,6vw,100px)}
.sponsor-marquee img{display:block;width:auto;height:clamp(34px,5vw,64px);max-width:min(24vw,260px);object-fit:contain;filter:none}
@keyframes sponsorMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.site-footer{margin-top:0!important;padding:26px 18px!important;border-radius:0!important}
.site-footer__sponsors{width:min(900px,100%)!important;display:flex!important;justify-content:center;align-items:center;gap:clamp(22px,5vw,76px)!important;margin:0 auto!important}
.site-footer__sponsors img{width:auto!important;height:clamp(34px,4.8vw,62px)!important;max-width:28%!important;object-fit:contain!important;border-radius:0!important;box-shadow:none!important}
.site-footer__sponsors .sponsor-exa-trigger{display:flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;max-width:28%;cursor:pointer}
.site-footer__sponsors .sponsor-exa-trigger img{max-width:100%!important}
.contact-map{position:relative;margin:clamp(34px,6vw,76px) auto;width:min(1380px,calc(100% - 12vw));padding:clamp(12px,2vw,22px);background:#fffaf0;border-radius:30px;box-shadow:0 18px 45px #21161212;overflow:hidden}
.contact-map__head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:8px 8px 20px}
.contact-map__head h2{font:900 clamp(2.2rem,5vw,4.5rem)/.92 var(--font-heading);margin:0;letter-spacing:-.035em}
.contact-map__head p{font:1rem/1.4 var(--font-secondary);max-width:340px;margin:0}
.contact-map iframe{display:block;width:100%;height:clamp(280px,42vw,480px);border:0;border-radius:20px}
@media(max-width:700px){.sponsor-marquee{border-radius:16px 16px 0 0}.sponsor-marquee__track,.sponsor-marquee__group{gap:28px}.sponsor-marquee img{height:34px;max-width:30vw}.site-footer__sponsors{gap:14px!important}.site-footer__sponsors img{height:30px!important}.contact-map{width:calc(100% - 28px);padding:12px;border-radius:22px}.contact-map__head{display:block}.contact-map__head p{margin-top:10px}.contact-map iframe{height:340px;border-radius:14px}}
@media(prefers-reduced-motion:reduce){.sponsor-marquee__track{animation:none}.product-gallery__image{transition:none}}

/* V3.0.2 — sponsor ribbons as full-width section dividers */
.sponsor-marquee{
  width:100vw!important;max-width:none!important;
  margin:clamp(38px,6vw,86px) calc(50% - 50vw)!important;
  padding:clamp(17px,2.5vw,30px) 0!important;
  background:#171514;
  border-block:5px solid #b22222;
  border-radius:0!important;
  box-shadow:0 8px 0 rgba(178,34,34,.10);
}
.sponsor-marquee__track{gap:clamp(48px,8vw,128px);}
.sponsor-marquee__group{gap:clamp(48px,8vw,128px);padding-right:clamp(48px,8vw,128px);}
.sponsor-marquee img{height:clamp(44px,6vw,76px);max-width:min(27vw,300px);}
@media(max-width:700px){
 .sponsor-marquee{margin:34px calc(50% - 50vw)!important;padding:18px 0!important;border-block-width:4px;}
 .sponsor-marquee__track,.sponsor-marquee__group{gap:32px;}
 .sponsor-marquee__group{padding-right:32px;}
 .sponsor-marquee img{height:38px;max-width:34vw;}
}

/* V3.0.3 — linked sponsor logos + separate Love Ticket action */
.site-footer__sponsor-link{display:flex;align-items:center;justify-content:center;max-width:28%;border-radius:10px;transition:transform .2s ease,opacity .2s ease}
.site-footer__sponsor-link:hover{transform:translateY(-3px);opacity:.88}
.site-footer__sponsor-link:focus-visible,.sponsor-ticket-link:focus-visible{outline:2px solid #b22222;outline-offset:5px}
.site-footer__sponsors .site-footer__sponsor-link img{max-width:100%!important}
.site-footer__sponsors .sponsor-ticket-link{font:700 .72rem/1 var(--font-heading);letter-spacing:.08em;color:#fff;background:#b22222!important;border:0!important;border-radius:999px;padding:11px 14px;white-space:nowrap}
@media(max-width:700px){.site-footer__sponsor-link{max-width:28%}.site-footer__sponsors .sponsor-ticket-link{font-size:.62rem;padding:9px 10px}}

/* V3.0.4 — recuperar tamaño visible de los patrocinadores del footer y mantenerlos como botones */
.site-footer__sponsors{
  width:min(1120px,calc(100% - 36px))!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:center!important;
  justify-items:center!important;
  gap:clamp(16px,3vw,34px)!important;
}
.site-footer__sponsors .site-footer__sponsor-link{
  display:flex!important;
  width:100%!important;
  max-width:340px!important;
  min-height:100px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:12px 16px!important;
  border-radius:16px!important;
  cursor:pointer!important;
  transition:transform .2s ease,background-color .2s ease,opacity .2s ease!important;
}
.site-footer__sponsors .site-footer__sponsor-link img{
  display:block!important;
  width:100%!important;
  height:86px!important;
  max-width:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.site-footer__sponsors .site-footer__sponsor-link:hover{transform:translateY(-4px)!important;opacity:.94!important}
.site-footer__sponsors .site-footer__sponsor-link:focus-visible{outline:3px solid #b22222!important;outline-offset:4px!important}
@media(max-width:700px){
  .site-footer__sponsors{width:calc(100% - 24px)!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .site-footer__sponsors .site-footer__sponsor-link{min-height:72px!important;padding:8px 4px!important;border-radius:12px!important}
  .site-footer__sponsors .site-footer__sponsor-link img{height:60px!important;max-height:none!important}
}
@media(max-width:380px){
  .site-footer__sponsors{gap:4px!important}
  .site-footer__sponsors .site-footer__sponsor-link{padding:6px 2px!important}
  .site-footer__sponsors .site-footer__sponsor-link img{height:50px!important}
}


/* V3.0.7 — Love Ticket gets the same rounded sponsor-card treatment */
.site-footer__sponsors .sponsor-ticket-link{
  display:flex!important;
  width:100%!important;
  max-width:340px!important;
  min-height:100px!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  padding:12px 16px!important;
  overflow:hidden!important;
  background:#211f1d!important;
  border:1px solid #403b37!important;
  border-radius:16px!important;
  box-shadow:0 8px 22px rgba(0,0,0,.12)!important;
  white-space:normal!important;
  cursor:pointer!important;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease!important;
}
.site-footer__sponsors .sponsor-ticket-link img{
  display:block!important;
  width:100%!important;
  height:86px!important;
  max-width:100%!important;
  max-height:86px!important;
  object-fit:contain!important;
  object-position:center!important;
  border:0!important;
  border-radius:8px!important;
  box-shadow:none!important;
}
.site-footer__sponsors .sponsor-ticket-link:hover{
  transform:translateY(-4px)!important;
  background:#292522!important;
  border-color:#5a4b43!important;
}
.site-footer__sponsors .sponsor-ticket-link:focus-visible{
  outline:3px solid #b22222!important;
  outline-offset:4px!important;
}
@media(max-width:700px){
  .site-footer__sponsors .sponsor-ticket-link{
    min-height:72px!important;
    padding:8px 4px!important;
    border-radius:12px!important;
  }
  .site-footer__sponsors .sponsor-ticket-link img{
    height:60px!important;
    max-height:60px!important;
  }
}
@media(max-width:380px){
  .site-footer__sponsors .sponsor-ticket-link{padding:6px 2px!important}
  .site-footer__sponsors .sponsor-ticket-link img{height:50px!important;max-height:50px!important}
}
