/* Base */
html{scroll-behavior:smooth}
.text-shadow{ text-shadow:0 10px 40px rgba(0,0,0,.55) }
.img-fallback{background-image:linear-gradient(135deg, rgba(6,73,168,.25), rgba(7,17,67,.25));}

/* Partner / Theaters */
.partner-card{
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid rgba(127,137,165,.15);
  border-radius:14px; box-shadow:0 4px 14px rgba(7,17,67,.06);
  height:160px; padding:14px;
}
.partner-card img{max-height:100%;max-width:85%;object-fit:contain}

/* ---------- HERO SLIDER ---------- */
.hero-slider{ position:relative; overflow:hidden; }
.hero-slide{ position:relative; width:100%; height:56vw; max-height:78vh; display:none; }
.hero-slide.active{ display:block; }
.hero-media{ width:100%; height:56vw; max-height:78vh; object-fit:cover; filter:brightness(.92); }
.hero-caption{ position:absolute; inset:0; display:grid; place-items:center; padding:1.5rem; }
.hero-caption__inner{
  width:min(1120px, 92vw);
  margin-inline:auto;
  display:flex; flex-direction:column; align-items:flex-start;
  text-align:left;
}
.hero-title{ font-size:clamp(2.6rem, 5vw, 4.5rem); }
.hero-lead{ color:rgba(255,255,255,.9); margin-top:.85rem; max-width:56ch; }

/* slide nav */
.hero-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:38px;height:38px;border-radius:9999px;border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.28); color:#fff;
}
.hero-nav:hover{ background:rgba(0,0,0,.4); }
.hero-nav.prev{ left:10px } .hero-nav.next{ right:10px }

.hero-dots{ position:absolute; left:50%; bottom:12px; transform:translateX(-50%); display:flex; gap:8px }
.hero-dots button{ width:8px;height:8px;border-radius:9999px;border:none;background:#fff;opacity:.55 }
.hero-dots button.active{ opacity:1; width:22px; border-radius:8px }

/* ---------- PROGRAMMA LIST ---------- */
.event-card{
  display:flex; gap:14px; align-items:center;
  padding:14px; border:1px solid rgba(2,14,61,.08); border-radius:14px; background:#fff;
  box-shadow:0 3px 10px rgba(7,17,67,.06);
}
.event-thumb{ width:120px; height:72px; border-radius:10px; object-fit:cover }
.event-meta{ display:flex; align-items:center; gap:16px; flex:1; }
.event-date{ width:66px; text-align:center; font-weight:700; color:#071143 }
.event-date div:first-child{ font-size:.95rem }
.event-date div:last-child{ font-size:.9rem; color:#717e8f; margin-top:2px }
.event-body h3{ margin:0 0 2px 0 }
.event-link{
  margin-left:auto; white-space:nowrap;
  background:#0649a8; color:#fff; padding:.55rem .9rem; border-radius:.6rem;
}
@media (max-width:640px){
  .event-card{ flex-wrap:wrap }
  .event-meta{ flex-wrap:wrap }
  .event-link{ width:100% ; text-align:center }
}

/* ---------- FORM INPUTS ---------- */
.input-pill{
  width:100%; padding:.9rem 1.25rem; border:1px solid rgba(110,120,150,.35);
  border-radius:9999px; outline:0;
}
.input-pill:focus{ box-shadow:0 0 0 3px rgba(251,205,134,.5); border-color:#fbcd86 }
.textarea-block{
  width:100%; padding:1rem 1.25rem; border:1px solid rgba(110,120,150,.35);
  border-radius:22px; outline:0; resize:vertical;
}
.textarea-block:focus{ box-shadow:0 0 0 3px rgba(251,205,134,.5); border-color:#fbcd86 }

/* ---------- GALLERY ---------- */
.gallery-controls button{
  width:36px;height:36px;border-radius:9999px;border:1px solid rgba(7,17,67,.2);
  background:#fff
}
.gallery-track{ display:grid; grid-auto-flow:column; grid-auto-columns: minmax(250px, 1fr); gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.5rem }
.gallery-card{ scroll-snap-align:start; background:#fff; border:1px solid rgba(7,17,67,.08); border-radius:12px; overflow:hidden; box-shadow:0 3px 10px rgba(7,17,67,.06) }
.gallery-card img{ width:100%; height:160px; object-fit:cover }
.gallery-card h3{ padding:12px 14px; font-weight:600 }

/* ---------- TABS ---------- */
.tabs{ display:flex; gap:8px }
.tab{
  padding:.55rem .9rem; border-radius:.6rem; border:1px solid rgba(7,17,67,.15);
  background:#fff;
}
.tab.active{ background:#eef2ff; border-color:#c7d2fe }

/* Footer logo glow */
#site-footer .h-28{ filter:drop-shadow(0 6px 24px rgba(7,17,67,.15)); }

/* ToTop visible */
#toTop.visible{ opacity:1 !important; pointer-events:auto !important; }