:root {
  --bg: #f7f7f4;
  --paper: #ffffff;
  --ink: #121418;
  --muted: #656b73;
  --red: #ef1118;
  --red-dark: #9c0710;
  --blue: #1262c4;
  --blue-dark: #093b82;
  --dark: #090b10;
  --dark-2: #11151d;
  --line: rgba(18,20,24,.11);
  --shadow: 0 20px 55px rgba(0,0,0,.14);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.65;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.narrow { max-width: 820px; }
.center { text-align: center; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(7,9,13,.92);
  color: #fff;
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav-wrap { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; font-weight: 800; letter-spacing: -.02em; }
.brand img { width: 54px; height: 54px; object-fit: contain; }
.brand span { font-size: 1.03rem; }
.main-nav { display: flex; gap: 28px; align-items: center; }
.main-nav a { position: relative; text-decoration: none; opacity: .82; font-weight: 650; font-size: .94rem; }
.main-nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--red); transition: right .2s ease; }
.main-nav a:hover, .main-nav a.active { opacity: 1; }
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.nav-toggle { display: none; background: none; border: 0; color: #fff; font-size: 1.7rem; cursor: pointer; }

/* HERO */
.hero {
  min-height: calc(100vh - 76px);
  position: relative;
  display: grid;
  align-items: center;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 15%, rgba(255,255,255,.09), transparent 31%),
    radial-gradient(circle at 50% 66%, rgba(26,65,126,.20), transparent 34%),
    linear-gradient(180deg, #11131a 0%, #07080c 65%, #030405 100%);
}
.hero::before {
  content: '';
  position: absolute;
  z-index: -5;
  inset: auto 0 0;
  height: 25%;
  background: radial-gradient(ellipse at center, rgba(255,255,255,.12), transparent 65%);
  filter: blur(3px);
}
.hero-stage {
  position: relative;
  z-index: 4;
  min-height: calc(100vh - 76px);
  padding: 58px 0 86px;
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  gap: clamp(36px, 6vw, 92px);
  align-items: center;
}
.hero-logo-wrap {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 500px;
}
.hero-logo-wrap::before {
  content: '';
  position: absolute;
  width: min(36vw, 480px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.16), rgba(255,255,255,.035) 48%, transparent 72%);
  filter: blur(4px);
}
.hero-logo {
  position: relative;
  z-index: 2;
  width: min(41vw, 540px);
  filter: drop-shadow(0 28px 38px rgba(0,0,0,.48));
  transform: rotate(-2deg);
}
.hero-copy { position: relative; z-index: 3; max-width: 680px; }
.eyebrow, .section-kicker {
  margin: 0 0 16px;
  text-transform: uppercase;
  letter-spacing: .17em;
  font-size: .75rem;
  font-weight: 850;
  color: var(--red);
}
.hero .eyebrow { color: #ff686d; }
h1, h2, h3 { line-height: 1.05; margin-top: 0; letter-spacing: -.035em; }
.hero h1 { font-size: clamp(3rem, 6vw, 6.4rem); margin: 0 0 24px; font-weight: 900; }
.hero h1 span { color: #fff; text-shadow: 0 0 24px rgba(255,255,255,.06); }
.hero-subtitle { margin: 0; font-size: clamp(1.08rem, 1.6vw, 1.32rem); max-width: 630px; color: #d9dce4; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 23px; border-radius: 999px; text-decoration: none; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--red); color: #fff; box-shadow: 0 13px 30px rgba(239,17,24,.28); }
.btn-primary:hover { background: #ff2028; }
.btn-ghost { border: 1px solid rgba(255,255,255,.35); color: #fff; background: rgba(255,255,255,.03); }
.btn-ghost:hover { background: rgba(255,255,255,.08); }
.btn-light { background: #fff; color: var(--red-dark); margin-top: 15px; }
.hero-meta { display: flex; gap: 34px; margin-top: 42px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); }
.hero-meta div { display: grid; gap: 2px; }
.hero-meta strong { font-size: 1.72rem; line-height: 1; color: #fff; }
.hero-meta span { color: #aeb4bf; font-size: .82rem; }

.curtain { position: absolute; top: 0; bottom: 0; z-index: 1; width: 22vw; max-width: 330px; opacity: .93; filter: drop-shadow(0 0 25px rgba(0,0,0,.45)); }
.curtain::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #71030a 0, #b30913 12%, #4e0308 26%, #c00e18 39%, #620309 55%, #a60912 72%, #4c0207 100%); }
.curtain-left { left: 0; clip-path: polygon(0 0,100% 0,70% 24%,82% 47%,58% 73%,48% 100%,0 100%); }
.curtain-right { right: 0; transform: scaleX(-1); clip-path: polygon(0 0,100% 0,70% 24%,82% 47%,58% 73%,48% 100%,0 100%); }
.stage-light { position: absolute; z-index: 0; top: -15%; width: 24vw; height: 115%; background: linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,246,216,.055) 50%, transparent 85%); filter: blur(12px); opacity: .55; }
.stage-light-left { left: 21%; transform: rotate(17deg); clip-path: polygon(43% 0,61% 0,100% 100%,0 100%); }
.stage-light-right { right: 19%; transform: rotate(-14deg); clip-path: polygon(43% 0,61% 0,100% 100%,0 100%); }
.hero-vignette { position: absolute; z-index: 2; inset: 0; pointer-events: none; box-shadow: inset 0 0 180px 50px rgba(0,0,0,.56); }
.scroll-cue { position: absolute; z-index: 5; bottom: 25px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.65); text-decoration: none; font-size: 1.5rem; animation: bounce 1.8s infinite; }
@keyframes bounce { 0%,100% { transform: translate(-50%,0); } 50% { transform: translate(-50%,7px); } }

/* SEZIONI */
.section { padding: 104px 0; }
.section h2 { font-size: clamp(2.35rem, 4.8vw, 4.65rem); }
.section p { font-size: 1.06rem; }
.story-section { background: #fff; }
.story-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(48px, 8vw, 110px); align-items: start; }
.story-intro { position: sticky; top: 116px; }
.story-intro h2 span { color: var(--red); }
.story-rule { width: 78px; height: 7px; border-radius: 10px; background: linear-gradient(90deg, var(--red) 0 55%, var(--blue) 55%); margin-top: 28px; }
.story-copy { padding-top: 37px; }
.story-copy p { color: var(--muted); }
.story-copy .lead { font-size: 1.3rem; color: var(--ink); }
.inline-cta { display: inline-block; margin-top: 18px; color: var(--blue); text-decoration: none; font-weight: 800; }

.section-dark { background: var(--dark); color: #fff; }
.section-dark p { color: #c6cad2; }
.shows-home { position: relative; overflow: hidden; }
.shows-home::before { content: ''; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: rgba(18,98,196,.09); filter: blur(30px); right: -140px; top: -100px; }
.section-accent { background: linear-gradient(135deg, #c80812 0%, #e8151e 52%, #a0060e 100%); color: #fff; }
.section-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 38px; position: relative; z-index: 1; }
.section-heading-row h2 { margin-bottom: 0; }
.text-link { color: #89b9ff; text-decoration: none; font-weight: 800; }

.cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; position: relative; z-index: 1; }
.show-card { background: #fff; color: var(--ink); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); border: 1px solid rgba(255,255,255,.08); transition: transform .2s ease, box-shadow .2s ease; }
.show-card:hover { transform: translateY(-5px); box-shadow: 0 26px 62px rgba(0,0,0,.28); }
.show-card-media { aspect-ratio: 4 / 3; position: relative; overflow: hidden; background: linear-gradient(145deg, #151922 0%, #0b0d12 52%, #38060b 100%); display: grid; place-items: center; color: #fff; padding: 24px; text-align: center; }
.show-card-media::before { content: ''; position: absolute; width: 76%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(239,17,24,.26), transparent 68%); }
.show-card-media::after { content: ''; position: absolute; width: 2px; height: 130%; background: rgba(255,255,255,.13); transform: rotate(31deg); box-shadow: 72px 0 0 rgba(255,255,255,.06), -72px 0 0 rgba(255,255,255,.06); }
.show-card-media span { position: relative; z-index: 2; font-size: 3.4rem; font-weight: 950; letter-spacing: -.06em; }
.show-card-body { padding: 23px; }
.show-card-year { margin: 0 0 7px; color: var(--red); font-weight: 850; font-size: .83rem !important; }
.show-card h3 { font-size: 1.48rem; margin-bottom: 11px; }
.show-card p { color: var(--muted); font-size: .95rem; }
.show-card a { display: inline-block; margin-top: 8px; color: var(--blue); font-weight: 800; text-decoration: none; }

.company-section { background: #f2f3f6; }
.company-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(42px, 7vw, 90px); align-items: center; }
.company-photo-placeholder { min-height: 520px; position: relative; border-radius: 32px; overflow: hidden; display: flex; flex-direction: column; justify-content: end; padding: 34px; color: #dce2ea; background: radial-gradient(circle at 50% 28%, #485568 0, #1e242e 34%, #0d1016 74%); box-shadow: var(--shadow); }
.company-photo-placeholder::before, .company-photo-placeholder::after { content: ''; position: absolute; top: -10%; width: 38%; height: 95%; background: linear-gradient(180deg, rgba(255,245,208,.23), transparent); filter: blur(10px); clip-path: polygon(44% 0,56% 0,100% 100%,0 100%); }
.company-photo-placeholder::before { left: 9%; transform: rotate(13deg); }
.company-photo-placeholder::after { right: 9%; transform: rotate(-13deg); }
.company-photo-placeholder p, .photo-label { position: relative; z-index: 2; }
.photo-label { align-self: flex-start; margin-bottom: auto; font-size: .72rem; letter-spacing: .14em; font-weight: 800; padding: 8px 12px; border: 1px solid rgba(255,255,255,.20); border-radius: 999px; }
.company-copy h2 { font-size: clamp(2.4rem, 4.5vw, 4.4rem); }
.company-copy p { color: var(--muted); }

.quote-section { position: relative; overflow: hidden; padding: 82px 0; color: #fff; background: linear-gradient(110deg, #0756ad, #1262c4 50%, #083d83); }
.quote-section::before { content: ''; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: rgba(255,255,255,.08); top: -250px; left: -40px; }
.quote-section p { position: relative; margin: 0; font-size: clamp(1.65rem, 3vw, 2.65rem); line-height: 1.34; }
.quote-section strong { color: #fff; font-size: 1.18em; }
.quote-mark { display: block; position: relative; height: 45px; font-family: Georgia, serif; font-size: 5rem; line-height: 1; opacity: .45; }
.contact-section .section-kicker.light { color: #fff; opacity: .72; }
.contact-section h2 { margin-bottom: 17px; }
.contact-section p { color: rgba(255,255,255,.86); }

.placeholder-box { margin-top: 34px; border: 1px dashed rgba(33,22,22,.3); border-radius: var(--radius); padding: 42px 24px; color: var(--muted); background: rgba(255,255,255,.4); }
.page-main { min-height: 70vh; }
.page-hero, .show-hero { padding: 96px 0 54px; background: linear-gradient(135deg, #0b0d12, #250409); color: #fff; }
.page-hero h1, .show-hero h1 { font-size: clamp(2.8rem, 7vw, 5.6rem); }
.page-hero p { color: #e5dada; }
.show-hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 50px; align-items: center; }
.poster-wrap { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); min-height: 360px; display: grid; place-items: center; overflow: hidden; }
.poster-wrap img { width: 100%; height: 100%; object-fit: cover; }
.poster-placeholder { padding: 36px; text-align: center; color: #d7c8c9; }
.show-plot { font-size: 1.18rem !important; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.gallery-item { border: 0; padding: 0; border-radius: 16px; overflow: hidden; cursor: pointer; background: #2c2223; aspect-ratio: 4/3; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-empty { grid-column: 1 / -1; padding: 40px; border: 1px dashed rgba(255,255,255,.22); border-radius: var(--radius); text-align: center; color: #cbbdbd; }

.lightbox { position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.92); padding: 30px; }
.lightbox.open { display: flex; }
.lightbox img { max-width: min(1100px, 86vw); max-height: 84vh; }
.lightbox button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; font-size: 2rem; cursor: pointer; }
.lightbox-close { top: 24px; right: 24px; }
.lightbox-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 24px; top: 50%; transform: translateY(-50%); }

.site-footer { background: #050609; color: #a9afb8; padding: 30px 0; font-size: .88rem; }
.footer-wrap { display: flex; justify-content: space-between; align-items: center; gap: 25px; flex-wrap: wrap; }
.footer-brand { display: flex; align-items: center; gap: 12px; color: #fff; font-weight: 800; }
.footer-brand img { width: 55px; height: 55px; object-fit: contain; }
.footer-copy { display: flex; flex-direction: column; align-items: flex-end; }

@media (max-width: 1080px) {
  .hero-stage { grid-template-columns: .8fr 1.2fr; gap: 34px; }
  .hero-logo { width: min(43vw, 470px); }
  .cards-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  .brand span { display: none; }
  .nav-toggle { display: block; }
  .main-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; align-items: stretch; background: #080a0e; padding: 20px 24px 28px; border-top: 1px solid rgba(255,255,255,.08); }
  .main-nav.open { display: flex; }
  .hero-stage { min-height: auto; grid-template-columns: 1fr; text-align: center; padding: 44px 0 78px; }
  .hero-logo-wrap { min-height: 280px; }
  .hero-logo { width: min(78vw, 430px); }
  .hero-copy { margin: 0 auto; }
  .hero-actions, .hero-meta { justify-content: center; }
  .curtain { width: 18vw; opacity: .7; }
  .story-grid, .company-grid { grid-template-columns: 1fr; }
  .story-intro { position: static; }
  .story-copy { padding-top: 0; }
  .company-photo-placeholder { min-height: 420px; }
  .show-hero-grid { grid-template-columns: 1fr; }
  .poster-wrap { max-width: 500px; }
}

@media (max-width: 560px) {
  .container { width: min(100% - 28px, 1180px); }
  .hero { min-height: auto; }
  .hero-logo-wrap { min-height: 245px; }
  .hero-logo { width: min(88vw, 390px); }
  .hero h1 { font-size: clamp(2.55rem, 13vw, 4rem); }
  .hero-meta { gap: 18px; justify-content: space-between; }
  .hero-meta strong { font-size: 1.45rem; }
  .hero-meta span { font-size: .72rem; }
  .section { padding: 72px 0; }
  .section-heading-row { align-items: start; flex-direction: column; }
  .cards-grid, .gallery-grid { grid-template-columns: 1fr; }
  .footer-copy { align-items: flex-start; }
  .page-hero, .show-hero { padding-top: 72px; }
  .curtain { width: 13vw; }
}

/* LOCANDINE E TESTI SPETTACOLI */
.show-card-media { aspect-ratio: 3 / 4; padding: 0; background: #16181d; }
.show-card-media::before, .show-card-media::after { display: none; }
.show-card-media > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.show-card-poster-placeholder { width: 100%; height: 100%; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(145deg,#161922,#090b10 55%,#38060b); color:#fff; }
.show-card-poster-placeholder span { font-size: 1rem; letter-spacing: .16em; font-weight: 900; }
.show-card-poster-placeholder small { font-size: 2.6rem; font-weight: 950; color: var(--red); }
.show-card-body > p:not(.show-card-year) { min-height: 6.6em; }
.poster-wrap { aspect-ratio: 3 / 4; min-height: 0; max-width: 440px; justify-self: end; }
.poster-wrap img { object-fit: contain; background: #090b10; }
.show-summary { font-size: 1.22rem !important; line-height: 1.75; color: var(--ink); }
.abstract-block { margin-top: 70px; padding-top: 58px; border-top: 1px solid #dedfe3; }
.show-abstract { font-size: 1.12rem !important; line-height: 1.9; white-space: pre-line; color: var(--muted); }
@media (max-width: 760px) { .poster-wrap { justify-self: start; width: min(100%,420px); } .show-card-body > p:not(.show-card-year) { min-height: 0; } }

/* TRAMA COMPLETA - sezione espandibile per evitare spoiler */
.plot-details {
  margin-top: 46px;
  border: 1px solid #d9dbe1;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(8, 12, 22, .06);
}
.plot-details summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 26px;
  font-weight: 900;
  font-size: 1.05rem;
  color: var(--ink);
}
.plot-details summary::-webkit-details-marker { display: none; }
.plot-details summary span { color: var(--red); font-size: 1.6rem; line-height: 1; transition: transform .2s ease; }
.plot-details[open] summary span { transform: rotate(45deg); }
.plot-details[open] summary { border-bottom: 1px solid #e6e7eb; }
.plot-details-body { padding: 30px 26px 34px; }
.show-plot { font-size: 1.04rem; line-height: 1.9; white-space: pre-line; color: var(--muted); }
.spoiler-note { margin-top: 28px; padding: 14px 16px; border-left: 4px solid var(--red); background: #fff4f4; font-size: .92rem; color: #555; }

/* Scheda spettacolo - layout teatrale v5 */
.show-detail-stage{background:linear-gradient(135deg,#f8fcff,#eaf6ff);padding:28px 0 70px;min-height:calc(100vh - 76px)}
.show-breadcrumb{font-size:.9rem;color:#34516f;margin:0 0 24px}.show-breadcrumb a{color:#0b4b91;text-decoration:none}.show-detail-grid{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:46px;align-items:start}.show-detail-stage .poster-wrap{max-width:none;width:100%;aspect-ratio:auto;min-height:0;background:#fff;border:7px solid #fff;border-radius:7px;box-shadow:0 10px 28px rgba(10,55,95,.16);justify-self:auto}.show-detail-stage .poster-wrap img{width:100%;height:auto;object-fit:contain;background:#fff}.show-detail-content h1{font-size:clamp(2.7rem,5vw,4.5rem);color:var(--red);margin:0 0 4px}.show-detail-year{font-size:1.55rem;font-weight:900;color:#0d4b91;margin:0}.show-author{font-size:1.12rem;margin:0 0 26px;color:#173b67}.summary-panel h2,.abstract-block h2{font-size:1.35rem;color:#0d4b91;margin:0 0 8px}.summary-panel{padding:0 12px 18px}.show-summary{font-size:1.03rem;margin:0;color:#173b67}.abstract-block{position:relative;margin:0 0 12px;padding:20px 210px 20px 24px;border:0;border-radius:12px;background:linear-gradient(110deg,#e8f4ff,#f7fbff);box-shadow:0 5px 14px rgba(25,75,120,.08)}.show-abstract{white-space:pre-line;font-size:.94rem;line-height:1.45;color:#173b67;margin:0}.abstract-block blockquote{position:absolute;right:22px;top:30px;width:160px;margin:0;color:#0753a0;font-size:1.15rem;font-weight:800;font-style:italic;transform:rotate(-4deg);line-height:1.2}.plot-details{margin-top:10px;border-radius:9px;border:1px solid #d9e6f1;box-shadow:0 4px 12px rgba(20,65,105,.08);background:#fff}.plot-details summary{color:#073e80;padding:15px 20px}.plot-details-body{color:#314c66}.show-plot{white-space:pre-line}.back-shows{display:inline-block;margin-top:22px;color:#0b4b91;text-decoration:none;font-weight:700}.gallery-grid{color:#223f5e}.gallery-empty{background:#eef7ff;color:#36546e;border-color:#cfe3f3}.site-header{background:linear-gradient(90deg,#062e61,#06437f 55%,#031e43)}.site-header .brand img{width:70px;height:58px}.site-header .brand span{font-weight:800}.main-nav a.active,.main-nav a:hover{color:#fff}.show-detail-content .plot-details:last-of-type{margin-bottom:0}
@media(max-width:850px){.show-detail-grid{grid-template-columns:1fr}.show-detail-stage .poster-wrap{max-width:460px;margin:auto}.abstract-block{padding-right:24px}.abstract-block blockquote{position:static;width:auto;margin:24px 0 0;transform:none}.show-detail-content h1{font-size:clamp(2.5rem,12vw,4rem)}}


/* =========================================================
   HOME v10 - PALETTE CALDA E MOTIVO DI SFONDO
   Intervento circoscritto alla Home tramite .home-page
   ========================================================= */
.home-page {
  --home-cream: #f4e6d4;
  --home-cream-light: #fbf3e8;
  --home-sand: #ead2bb;
  --home-rose: #d9b1a5;
  --home-terracotta: #a9534f;
  --home-wine: #873843;
  --home-blue: #174d78;
  --home-blue-dark: #123a5c;
  --home-ink: #263747;
  --home-muted: #665f59;
  background: var(--home-cream);
  color: var(--home-ink);
}

/* Header: blu profondo, non nero, per dare contrasto al logo */
.home-page .site-header {
  background: linear-gradient(90deg, rgba(18,58,92,.97), rgba(23,77,120,.97));
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 5px 24px rgba(55,35,26,.10);
}
.home-page .main-nav a::after { background: #f1c8aa; }
.home-page .main-nav a.active,
.home-page .main-nav a:hover { color: #fff8ef; }

/* Motivo comune: macchie morbide e sottili righe teatrali, quasi impercettibili */
.home-page .story-section,
.home-page .shows-home,
.home-page .company-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.home-page .story-section::before,
.home-page .shows-home::after,
.home-page .company-section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 9% 18%, rgba(169,83,79,.085) 0 80px, transparent 81px),
    radial-gradient(circle at 92% 76%, rgba(23,77,120,.065) 0 110px, transparent 111px),
    repeating-linear-gradient(135deg, transparent 0 52px, rgba(255,255,255,.20) 53px 54px, transparent 55px 104px);
  opacity: .72;
}

/* HERO: via il nero, fondo caldo con luce da palcoscenico */
.home-page .hero {
  color: var(--home-ink);
  background:
    radial-gradient(ellipse at 48% 20%, rgba(255,255,255,.82) 0%, rgba(255,255,255,.25) 31%, transparent 55%),
    radial-gradient(circle at 82% 70%, rgba(23,77,120,.10) 0 18%, transparent 42%),
    radial-gradient(circle at 16% 80%, rgba(169,83,79,.12) 0 20%, transparent 43%),
    linear-gradient(135deg, #f8eddf 0%, #eed5bd 52%, #e6c6ad 100%);
}
.home-page .hero::before {
  height: 34%;
  background: radial-gradient(ellipse at center, rgba(111,65,43,.10), transparent 67%);
  filter: blur(8px);
}
.home-page .hero-vignette {
  box-shadow: inset 0 0 130px 22px rgba(126,73,58,.12);
}
.home-page .stage-light {
  background: linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,244,211,.24) 52%, transparent 88%);
  opacity: .62;
}
.home-page .curtain { opacity: .78; filter: drop-shadow(0 8px 24px rgba(93,42,40,.20)); }
.home-page .curtain::before {
  background: repeating-linear-gradient(90deg,
    #873843 0,
    #a94c55 12%,
    #74303a 26%,
    #b45c5f 39%,
    #81323d 55%,
    #a64a53 72%,
    #71303a 100%);
}
.home-page .hero-logo {
  filter: drop-shadow(0 22px 34px rgba(76,49,38,.22));
}
.home-page .hero-logo-wrap::before {
  background: radial-gradient(circle, rgba(255,255,255,.72), rgba(255,255,255,.22) 50%, transparent 73%);
}
.home-page .hero .eyebrow { color: var(--home-wine); }
.home-page .hero h1,
.home-page .hero h1 span {
  color: var(--home-blue-dark);
  text-shadow: none;
}
.home-page .hero-subtitle { color: #4f5861; }
.home-page .btn-primary {
  background: var(--home-blue);
  color: #fff;
  box-shadow: 0 12px 28px rgba(23,77,120,.20);
}
.home-page .btn-primary:hover { background: var(--home-blue-dark); }
.home-page .btn-ghost {
  color: var(--home-blue-dark);
  border-color: rgba(23,77,120,.35);
  background: rgba(255,248,239,.50);
}
.home-page .btn-ghost:hover { background: rgba(255,248,239,.90); }
.home-page .hero-meta { border-top-color: rgba(23,77,120,.18); }
.home-page .hero-meta strong { color: var(--home-blue-dark); }
.home-page .hero-meta span { color: #6b6964; }
.home-page .scroll-cue { color: rgba(18,58,92,.65); }

/* Storia: niente pannello bianco, fondo crema caldo */
.home-page .story-section {
  background: linear-gradient(180deg, #f5e6d5 0%, #f0dcc8 100%);
}
.home-page .section-kicker { color: var(--home-wine); }
.home-page .story-intro h2,
.home-page .story-intro h2 span,
.home-page .section-heading-row h2,
.home-page .company-copy h2 {
  color: var(--home-blue-dark);
}
.home-page .story-rule {
  background: linear-gradient(90deg, var(--home-wine) 0 54%, var(--home-blue) 54%);
}
.home-page .story-copy p,
.home-page .company-copy p { color: var(--home-muted); }
.home-page .story-copy .lead { color: var(--home-ink); }
.home-page .inline-cta { color: var(--home-blue); }

/* Spettacoli: sostituisce completamente la fascia nera */
.home-page .section-dark.shows-home {
  background: linear-gradient(145deg, #ead4bf 0%, #e4c7b2 100%);
  color: var(--home-ink);
}
.home-page .section-dark.shows-home p { color: var(--home-muted); }
.home-page .shows-home::before {
  width: 520px;
  height: 520px;
  right: -190px;
  top: -180px;
  background: rgba(255,255,255,.20);
  filter: blur(24px);
}
.home-page .text-link { color: var(--home-blue); }
.home-page .show-card {
  background: rgba(251,243,232,.94);
  border-color: rgba(116,76,60,.10);
  box-shadow: 0 16px 38px rgba(100,66,48,.13);
}
.home-page .show-card:hover {
  box-shadow: 0 22px 48px rgba(100,66,48,.19);
}
.home-page .show-card-year { color: var(--home-wine); }
.home-page .show-card h3 { color: var(--home-blue-dark); }
.home-page .show-card p { color: var(--home-muted); }
.home-page .show-card a { color: var(--home-blue); }

/* Compagnia: fondo caldo e placeholder fotografico chiaro */
.home-page .company-section {
  background: linear-gradient(180deg, #f8eddf 0%, #f2e1cd 100%);
}
.home-page .company-photo-placeholder {
  color: #5c554f;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,255,255,.76) 0, rgba(255,247,226,.40) 28%, transparent 54%),
    linear-gradient(145deg, #d9b6a4 0%, #ecd6bd 50%, #c7d5d8 100%);
  border: 1px solid rgba(107,75,61,.14);
  box-shadow: 0 18px 42px rgba(100,66,48,.14);
}
.home-page .company-photo-placeholder::before,
.home-page .company-photo-placeholder::after {
  background: linear-gradient(180deg, rgba(255,255,255,.65), transparent);
  opacity: .65;
}
.home-page .photo-label {
  color: var(--home-blue-dark);
  border-color: rgba(18,58,92,.22);
  background: rgba(255,248,239,.55);
}
.home-page .company-photo-placeholder p { color: #605951; }

/* Manifesto: colore caldo e tenue invece del forte blu/nero */
.home-page .quote-section {
  color: #fffaf2;
  background:
    radial-gradient(circle at 15% 10%, rgba(255,255,255,.13), transparent 25%),
    linear-gradient(110deg, #95505a, #ad655e 52%, #8a4650);
}
.home-page .quote-section::before { background: rgba(255,247,232,.09); }
.home-page .quote-section strong { color: #fff8ea; }

/* Contatti: terracotta morbido, non rosso acceso */
.home-page .section-accent.contact-section {
  color: #fffaf3;
  background:
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.10), transparent 27%),
    linear-gradient(135deg, #a65a52 0%, #b96f60 52%, #95504e 100%);
}
.home-page .contact-section .section-kicker.light { color: #ffe8ce; opacity: 1; }
.home-page .contact-section h2 { color: #fffaf3; }
.home-page .contact-section p { color: rgba(255,250,243,.88); }
.home-page .btn-light { background: #fff4e6; color: var(--home-blue-dark); }

/* Footer: blu notte al posto del nero */
.home-page .site-footer {
  background: #123a5c;
  color: #d8e2e7;
}
.home-page .footer-brand { color: #fff8ef; }

@media (max-width: 820px) {
  .home-page .main-nav { background: #123a5c; }
  .home-page .curtain { opacity: .55; }
}

/* =========================================================
   HOME v11 - IDENTITÀ ROSSO / BLU / AZZURRO / CREMA
   Font morbido e rotondo, fondi chiari con motivo discreto.
   ========================================================= */
.home-page {
  --home-red: #c92f3b;
  --home-red-warm: #df4a45;
  --home-red-dark: #a51f2c;
  --home-blue: #155a91;
  --home-blue-dark: #173f67;
  --home-sky: #dceff6;
  --home-sky-light: #edf8fb;
  --home-sky-mid: #c9e5ef;
  --home-cream: #f6eddc;
  --home-cream-light: #fff9ee;
  --home-ink: #173f67;
  --home-muted: #496477;
  font-family: "Trebuchet MS", "Segoe UI", Arial, sans-serif;
  background: var(--home-sky-light);
  color: var(--home-ink);
}
.home-page h1,
.home-page h2,
.home-page h3,
.home-page .brand,
.home-page .btn,
.home-page .main-nav a {
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", "Segoe UI", Arial, sans-serif;
  letter-spacing: -.025em;
}

/* Header blu pulito */
.home-page .site-header {
  background: linear-gradient(90deg, #184d77 0%, #176395 58%, #174d78 100%);
  border-bottom: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 5px 20px rgba(23,63,103,.13);
}
.home-page .main-nav a::after { background: #ffcbc4; }
.home-page .main-nav a.active,
.home-page .main-nav a:hover { color: #fff; }

/* HERO chiaro: azzurro + crema, senza nero */
.home-page .hero {
  color: var(--home-blue-dark);
  background:
    radial-gradient(ellipse at 52% 28%, rgba(255,249,238,.98) 0%, rgba(255,249,238,.72) 27%, transparent 53%),
    radial-gradient(circle at 78% 74%, rgba(201,229,239,.75) 0 18%, transparent 42%),
    linear-gradient(145deg, #d9eef6 0%, #edf8fb 45%, #f7eedc 100%);
}
.home-page .hero::before {
  height: 32%;
  background: radial-gradient(ellipse at center, rgba(21,90,145,.10), transparent 68%);
  filter: blur(10px);
}
.home-page .hero-vignette { box-shadow: inset 0 0 100px 12px rgba(23,63,103,.08); }
.home-page .stage-light {
  background: linear-gradient(180deg, rgba(255,255,255,.83), rgba(255,244,218,.27) 54%, transparent 88%);
  opacity: .72;
}

/* Sipari: rosso più caldo, teatrale, senza bordeaux freddo */
.home-page .curtain {
  opacity: .96;
  filter: drop-shadow(0 10px 25px rgba(142,38,42,.24));
}
.home-page .curtain::before {
  background: repeating-linear-gradient(90deg,
    #a91f2c 0%,
    #d63a40 11%,
    #b72530 22%,
    #e1544c 34%,
    #c42c36 48%,
    #eb6255 61%,
    #b92330 76%,
    #d64142 90%,
    #a91f2c 100%);
}
.home-page .hero-logo { filter: drop-shadow(0 20px 30px rgba(23,63,103,.16)); }
.home-page .hero-logo-wrap::before {
  background: radial-gradient(circle, rgba(255,255,255,.93), rgba(255,249,238,.55) 51%, transparent 74%);
}
.home-page .hero .eyebrow { color: var(--home-red-dark); }
.home-page .hero h1,
.home-page .hero h1 span { color: var(--home-blue-dark); text-shadow: none; }
.home-page .hero-subtitle { color: var(--home-muted); }
.home-page .btn-primary {
  background: var(--home-red);
  color: #fff;
  box-shadow: 0 11px 26px rgba(201,47,59,.22);
}
.home-page .btn-primary:hover { background: var(--home-red-dark); }
.home-page .btn-ghost {
  color: var(--home-blue-dark);
  border: 2px solid rgba(21,90,145,.34);
  background: rgba(255,249,238,.64);
}
.home-page .btn-ghost:hover { background: var(--home-cream-light); }
.home-page .hero-meta { border-top-color: rgba(21,90,145,.18); }
.home-page .hero-meta strong { color: var(--home-red-dark); }
.home-page .hero-meta span { color: var(--home-muted); }
.home-page .scroll-cue { color: rgba(21,90,145,.70); }

/* Motivo azzurro comune sulle sezioni testuali */
.home-page .story-section,
.home-page .company-section {
  background-color: var(--home-sky-light);
  background-image:
    radial-gradient(circle at 12% 18%, rgba(21,90,145,.055) 0 52px, transparent 53px),
    radial-gradient(circle at 88% 76%, rgba(201,47,59,.045) 0 72px, transparent 73px),
    linear-gradient(135deg, rgba(255,255,255,.30) 25%, transparent 25%),
    linear-gradient(315deg, rgba(255,255,255,.22) 25%, transparent 25%);
  background-size: auto, auto, 82px 82px, 82px 82px;
}
.home-page .story-section::before,
.home-page .company-section::before { display: none; }
.home-page .section-kicker { color: var(--home-red-dark); }
.home-page .story-intro h2,
.home-page .story-intro h2 span,
.home-page .section-heading-row h2,
.home-page .company-copy h2 { color: var(--home-blue-dark); }
.home-page .story-rule {
  background: linear-gradient(90deg, var(--home-red) 0 52%, var(--home-blue) 52%);
}
.home-page .story-copy p,
.home-page .company-copy p { color: var(--home-muted); }
.home-page .story-copy .lead { color: var(--home-blue-dark); }
.home-page .inline-cta { color: var(--home-red-dark); }

/* Spettacoli: crema per alternare senza bianco */
.home-page .section-dark.shows-home {
  color: var(--home-blue-dark);
  background-color: var(--home-cream);
  background-image:
    radial-gradient(circle at 8% 18%, rgba(201,47,59,.055) 0 62px, transparent 63px),
    radial-gradient(circle at 92% 82%, rgba(21,90,145,.06) 0 85px, transparent 86px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.18) 0 2px, transparent 2px 58px);
}
.home-page .shows-home::after { display: none; }
.home-page .shows-home::before {
  width: 460px; height: 460px; right: -170px; top: -160px;
  background: rgba(220,239,246,.58); filter: blur(22px);
}
.home-page .section-dark.shows-home p { color: var(--home-muted); }
.home-page .text-link { color: var(--home-red-dark); }
.home-page .show-card {
  background: rgba(255,249,238,.94);
  border: 1px solid rgba(21,90,145,.11);
  box-shadow: 0 15px 34px rgba(23,63,103,.11);
}
.home-page .show-card:hover { box-shadow: 0 21px 44px rgba(23,63,103,.17); }
.home-page .show-card-year { color: var(--home-red-dark); }
.home-page .show-card h3 { color: var(--home-blue-dark); }
.home-page .show-card p { color: var(--home-muted); }
.home-page .show-card a { color: var(--home-red-dark); }

/* Placeholder compagnia: azzurro/crema, non scuro */
.home-page .company-photo-placeholder {
  color: var(--home-blue-dark);
  background:
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.80) 0, rgba(255,249,238,.42) 30%, transparent 58%),
    linear-gradient(145deg, #c9e5ef 0%, #e6f4f8 48%, #f6eddc 100%);
  border: 1px solid rgba(21,90,145,.14);
  box-shadow: 0 17px 38px rgba(23,63,103,.12);
}
.home-page .company-photo-placeholder::before,
.home-page .company-photo-placeholder::after {
  background: linear-gradient(180deg, rgba(255,255,255,.72), transparent);
  opacity: .72;
}
.home-page .photo-label {
  color: var(--home-red-dark);
  border-color: rgba(201,47,59,.20);
  background: rgba(255,249,238,.72);
}
.home-page .company-photo-placeholder p { color: var(--home-muted); }

/* Fascia manifesto blu */
.home-page .quote-section {
  color: #fff;
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.11), transparent 25%),
    radial-gradient(circle at 88% 90%, rgba(201,229,239,.18), transparent 28%),
    linear-gradient(110deg, #164a74, #17689b 52%, #174d78);
}
.home-page .quote-section::before { background: rgba(255,255,255,.06); }
.home-page .quote-section strong { color: #ffe6df; }

/* Contatti: rosso caldo, usato come accento forte */
.home-page .section-accent.contact-section {
  color: #fff;
  background:
    radial-gradient(circle at 86% 18%, rgba(255,255,255,.11), transparent 27%),
    linear-gradient(135deg, #b92834 0%, #d94745 54%, #bd2734 100%);
}
.home-page .contact-section .section-kicker.light { color: #dceff6; opacity: 1; }
.home-page .contact-section h2 { color: #fff; }
.home-page .contact-section p { color: rgba(255,255,255,.91); }
.home-page .btn-light { background: var(--home-cream-light); color: var(--home-blue-dark); }

/* Footer blu, mai nero */
.home-page .site-footer { background: #163f65; color: #dcecf3; }
.home-page .footer-brand { color: #fff; }

@media (max-width: 820px) {
  .home-page .main-nav { background: #174d78; }
  .home-page .curtain { opacity: .82; }
}

/* HOME v12 - leggibilità sottotitolo hero davanti alle tende */
.home-page .hero-subtitle {
  display: inline-block;
  max-width: 600px;
  padding: 14px 18px;
  border-radius: 16px;
  color: #173f68;
  font-weight: 650;
  line-height: 1.55;
  background: rgba(224, 242, 250, .92);
  border: 1px solid rgba(23, 77, 120, .13);
  box-shadow: 0 8px 24px rgba(18, 58, 92, .08);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* HOME v13 - blu più profondo e contrasto testuale rafforzato */
.home-page {
  --home-blue: #0b4f88;
  --home-blue-dark: #082f57;
  --home-ink: #082f57;
  --home-muted: #284d6b;
}
.home-page .story-copy p,
.home-page .company-copy p,
.home-page .section-dark.shows-home p,
.home-page .show-card p,
.home-page .company-photo-placeholder p,
.home-page .hero-meta span {
  color: #284d6b;
}
.home-page .story-copy .lead,
.home-page .story-intro h2,
.home-page .story-intro h2 span,
.home-page .section-heading-row h2,
.home-page .company-copy h2,
.home-page .show-card h3 {
  color: #082f57;
}
.home-page .hero-subtitle {
  color: #082f57;
  font-weight: 700;
  background: rgba(225, 243, 250, .96);
  border-color: rgba(8, 47, 87, .20);
}

/* HOME v14 - motivo di sfondo leggermente più accentuato, sempre tono su tono */
.home-page .story-section,
.home-page .company-section {
  background-image:
    radial-gradient(circle at 12% 18%, rgba(11,79,136,.078) 0 52px, transparent 53px),
    radial-gradient(circle at 88% 76%, rgba(201,47,59,.060) 0 72px, transparent 73px),
    linear-gradient(135deg, rgba(255,255,255,.40) 25%, transparent 25%),
    linear-gradient(315deg, rgba(255,255,255,.31) 25%, transparent 25%);
}
.home-page .section-dark.shows-home {
  background-image:
    radial-gradient(circle at 8% 18%, rgba(201,47,59,.073) 0 62px, transparent 63px),
    radial-gradient(circle at 92% 82%, rgba(11,79,136,.080) 0 85px, transparent 86px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.25) 0 2px, transparent 2px 58px);
}

/* =========================================================
   PAGINE SPETTACOLI / CONTATTI v15 - identità coordinata Home
   ========================================================= */
.spettacoli-page,
.contatti-page {
  --page-red: #c92f3b;
  --page-red-dark: #a51f2c;
  --page-blue: #0b4f88;
  --page-blue-dark: #082f57;
  --page-sky: #dceff6;
  --page-sky-light: #edf8fb;
  --page-cream: #f6eddc;
  --page-cream-light: #fff9ee;
  --page-muted: #284d6b;
  font-family: "Trebuchet MS", "Segoe UI", Arial, sans-serif;
  color: var(--page-blue-dark);
  background: var(--page-sky-light);
}
.spettacoli-page h1,.spettacoli-page h2,.spettacoli-page h3,
.spettacoli-page .brand,.spettacoli-page .main-nav a,
.contatti-page h1,.contatti-page h2,.contatti-page h3,
.contatti-page .brand,.contatti-page .main-nav a,.contatti-page .btn {
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", "Segoe UI", Arial, sans-serif;
}
.spettacoli-page .site-header,.contatti-page .site-header {
  background: linear-gradient(90deg,#184d77 0%,#176395 58%,#174d78 100%);
  border-bottom: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 5px 20px rgba(23,63,103,.13);
}
.spettacoli-page .main-nav a::after,.contatti-page .main-nav a::after { background:#ffcbc4; }
.spettacoli-page .page-hero,.contatti-page .page-hero {
  color: var(--page-blue-dark);
  background-color: var(--page-sky-light);
  background-image:
    radial-gradient(circle at 12% 18%,rgba(11,79,136,.078) 0 52px,transparent 53px),
    radial-gradient(circle at 88% 76%,rgba(201,47,59,.060) 0 72px,transparent 73px),
    linear-gradient(135deg,rgba(255,255,255,.40) 25%,transparent 25%),
    linear-gradient(315deg,rgba(255,255,255,.31) 25%,transparent 25%);
  background-size:auto,auto,82px 82px,82px 82px;
  border-bottom:1px solid rgba(8,47,87,.10);
}
.spettacoli-page .page-hero .section-kicker,.contatti-page .page-hero .section-kicker { color:var(--page-red-dark); }
.spettacoli-page .page-hero h1,.contatti-page .page-hero h1 { color:var(--page-blue-dark); }
.spettacoli-page .page-hero p,.contatti-page .page-hero p { color:var(--page-muted); font-weight:600; }
.spettacoli-page .section {
  background-color:var(--page-cream);
  background-image:radial-gradient(circle at 92% 82%,rgba(11,79,136,.07) 0 85px,transparent 86px),repeating-linear-gradient(135deg,rgba(255,255,255,.22) 0 2px,transparent 2px 58px);
}
.spettacoli-page .show-card { background:rgba(255,249,238,.96); border-color:rgba(11,79,136,.12); box-shadow:0 15px 34px rgba(8,47,87,.11); }
.spettacoli-page .show-card h3 { color:var(--page-blue-dark); }
.spettacoli-page .show-card p { color:var(--page-muted); }
.spettacoli-page .show-card-year,.spettacoli-page .show-card a { color:var(--page-red-dark); }
.spettacoli-page .site-footer,.contatti-page .site-footer { background:#163f65;color:#dcecf3; }

.contact-form-section {
  background-color:var(--page-cream);
  background-image:radial-gradient(circle at 8% 22%,rgba(201,47,59,.065) 0 68px,transparent 69px),radial-gradient(circle at 94% 78%,rgba(11,79,136,.075) 0 90px,transparent 91px),repeating-linear-gradient(135deg,rgba(255,255,255,.22) 0 2px,transparent 2px 58px);
}
.contact-page-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(42px,7vw,90px);align-items:start; }
.contact-intro h2 { font-size:clamp(2.2rem,4vw,3.7rem);color:var(--page-blue-dark);margin-bottom:22px; }
.contact-intro p { color:var(--page-muted); }
.contact-email { display:inline-block;color:var(--page-red-dark);font-size:1.15rem;font-weight:850;text-decoration:none;margin:5px 0 14px; }
.contact-note { font-size:.92rem!important; }
.contact-form { padding:34px;border-radius:28px;background:rgba(237,248,251,.92);border:1px solid rgba(8,47,87,.13);box-shadow:0 18px 42px rgba(8,47,87,.11); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:18px; }
.contact-form label { display:block;color:var(--page-blue-dark);font-weight:800;margin-bottom:18px; }
.contact-form label > span { color:var(--page-red-dark); }
.contact-form input,.contact-form textarea { width:100%;margin-top:7px;padding:13px 14px;border:1px solid rgba(8,47,87,.24);border-radius:13px;background:#fffdf8;color:#082f57;font:inherit;outline:none; }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--page-blue);box-shadow:0 0 0 3px rgba(11,79,136,.10); }
.contact-form textarea { resize:vertical; }
.contact-form .privacy-check { display:flex;gap:10px;align-items:flex-start;font-weight:600;font-size:.9rem;color:var(--page-muted); }
.contact-form .privacy-check input { width:auto;margin:4px 0 0;flex:0 0 auto; }
.contact-form .privacy-check span { color:inherit; }
.contact-form .btn-primary { border:0;cursor:pointer;background:var(--page-red);color:#fff; }
.form-help { margin:14px 0 0;font-size:.84rem!important;color:var(--page-muted); }
@media(max-width:820px){
  .spettacoli-page .main-nav,.contatti-page .main-nav{background:#174d78;}
  .contact-page-grid,.form-row{grid-template-columns:1fr;}
  .contact-form{padding:24px;}
}

/* SCHEDA SPETTACOLO v16 - pannelli trama/cast/gallery su fondo crema */
.show-detail-content .plot-details {
  background: #f6eddc;
  border-color: #e3cfb1;
  box-shadow: 0 4px 12px rgba(20,65,105,.07);
}
.show-detail-content .plot-details summary {
  background: #fbf3e8;
  color: #082f57;
}
.show-detail-content .plot-details[open] summary {
  border-bottom-color: #e3cfb1;
}
.show-detail-content .plot-details-body {
  background: #f6eddc;
  color: #284d6b;
}
.show-detail-content .plot-details .gallery-empty {
  background: #fbf3e8;
  color: #284d6b;
  border-color: #d8c3a5;
}


/* HOME v17 - FOTO REALE DELLA COMPAGNIA */
.home-page .company-photo-placeholder.company-photo-real {
  min-height: 0;
  padding: 0;
  background: none;
  aspect-ratio: 16 / 9;
}
.home-page .company-photo-placeholder.company-photo-real::before,
.home-page .company-photo-placeholder.company-photo-real::after { display: none; }
.home-page .company-photo-real img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* =========================================================
   HOME v18 - PALCO CON PROFONDITA + LOGO CENTRALE
   ========================================================= */
@media (min-width: 901px) {
  .home-page .site-header { overflow: visible; }
  .home-page .nav-wrap { position: relative; min-height: 86px; }
  .home-page .brand {
    position: absolute; left: 50%; top: 4px; transform: translateX(-50%);
    z-index: 20; width: 180px; height: 150px; display: grid; place-items: start center;
    pointer-events: auto;
  }
  .home-page .brand img { width: 174px; max-height: 145px; object-fit: contain; }
  .home-page .brand span { display:none; }
  .home-page .main-nav { width:100%; display:grid; grid-template-columns: repeat(5, max-content); justify-content:space-between; align-items:center; }
  .home-page .main-nav a:nth-child(3) { margin-right: 215px; }
  .home-page .hero-logo-wrap { display:none; }
}

.home-page .hero {
  min-height: 760px;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 44%, rgba(238,249,255,.98) 0%, rgba(191,224,244,.92) 25%, rgba(85,150,198,.54) 53%, transparent 72%),
    linear-gradient(90deg, rgba(6,48,88,.38) 0%, rgba(24,101,157,.14) 23%, rgba(223,241,250,.14) 50%, rgba(24,101,157,.14) 77%, rgba(6,48,88,.38) 100%),
    linear-gradient(180deg, #5e9dca 0%, #b9dced 48%, #d9edf5 72%, #f1dfc0 100%);
}
.home-page .hero::after {
  content:""; position:absolute; z-index:0; left:12%; right:12%; bottom:-2%; height:35%;
  background:
    repeating-linear-gradient(90deg, rgba(91,49,24,.14) 0 2px, transparent 2px 72px),
    linear-gradient(180deg, rgba(255,231,184,.22), rgba(176,99,42,.24));
  transform: perspective(420px) rotateX(62deg); transform-origin: bottom center;
  border-top:1px solid rgba(255,255,255,.45); box-shadow:0 -20px 55px rgba(255,224,170,.22);
}
.home-page .hero::before {
  content:""; position:absolute; z-index:0; inset:0; height:auto;
  background:
    linear-gradient(90deg, rgba(8,50,88,.20), transparent 18%, transparent 82%, rgba(8,50,88,.20)),
    radial-gradient(ellipse at 50% 54%, transparent 0 39%, rgba(17,76,123,.10) 40% 58%, transparent 59%),
    repeating-linear-gradient(90deg, transparent 0 8.5%, rgba(8,54,96,.07) 8.7% 9.1%, transparent 9.3% 16.5%);
  filter:none; opacity:1;
}
.home-page .hero-vignette { box-shadow: inset 0 0 125px 18px rgba(7,48,86,.24); }
.home-page .stage-light { opacity:.86; filter:blur(9px); }
.home-page .curtain { width:18vw; max-width:285px; }

.home-page .hero-stage {
  position:relative; z-index:4; display:flex; justify-content:center; align-items:center;
  min-height:720px; padding:135px clamp(145px, 18vw, 300px) 95px;
}
.home-page .hero-copy { max-width:900px; width:100%; margin:0 auto; text-align:center; }
.home-page .hero .eyebrow { color:#9f1f2b; font-weight:900; }
.home-page .hero h1 { font-size:clamp(3rem,5.2vw,5.7rem); margin-bottom:22px; color:#082f57; }
.home-page .hero h1 span { color:#0b4f88; }
.home-page .hero-subtitle {
  display:block; max-width:800px; margin:0 auto; padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  color:#082f57; font-size:clamp(1.15rem,1.7vw,1.48rem); font-weight:800; line-height:1.55;
  text-shadow:0 1px 0 rgba(255,255,255,.72), 0 2px 10px rgba(222,242,251,.85);
}
.home-page .hero-actions { justify-content:center; }
.home-page .hero-meta { justify-content:center; max-width:620px; margin-left:auto; margin-right:auto; }

@media (max-width: 900px) {
  .home-page .brand img { content:url('../img/logo/logo-quelli-della-cintura.png'); }
  .home-page .brand span { display:none; }
  .home-page .hero-stage { display:block; min-height:auto; padding:95px 42px 105px; }
  .home-page .hero-logo-wrap { min-height:210px; }
  .home-page .hero-logo { width:min(70vw,330px); transform:none; }
  .home-page .hero-copy { text-align:center; margin:0 auto; }
  .home-page .hero-actions,.home-page .hero-meta { justify-content:center; }
  .home-page .curtain { width:14vw; }
}
@media (max-width: 600px) {
  .home-page .hero-stage { padding-left:26px; padding-right:26px; }
  .home-page .hero h1 { font-size:clamp(2.45rem,12vw,4rem); }
  .home-page .hero-subtitle { font-size:1.05rem; }
}

/* =========================================================
   HOME v19 - IMPOSTAZIONE TEATRALE COME MOCKUP APPROVATO
   ========================================================= */
.home-page .site-header {
  background: linear-gradient(180deg,#0b4d83 0%,#073f70 100%);
  border-bottom: 2px solid #d52c34;
  box-shadow: none;
  z-index: 70;
}
@media (min-width: 901px) {
  .home-page .nav-wrap { min-height: 112px; }
  .home-page .brand {
    top: -2px;
    width: 230px;
    height: 184px;
    align-items: start;
  }
  .home-page .brand img {
    width: 220px;
    max-height: 180px;
    filter: drop-shadow(0 5px 8px rgba(3,35,63,.24));
  }
  .home-page .main-nav {
    grid-template-columns: max-content max-content max-content 1fr max-content max-content;
    gap: 42px;
  }
  .home-page .main-nav a:nth-child(3) { margin-right: 255px; }
  .home-page .main-nav a { font-size: 1rem; font-weight: 800; }
}

.home-page .hero.hero-v19 {
  position: relative;
  min-height: 815px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 48%, rgba(231,247,255,.98) 0 17%, rgba(177,218,241,.93) 33%, rgba(79,143,190,.86) 62%, rgba(16,71,116,.94) 100%);
  border-bottom: 0;
}
.home-page .hero-theatre { position:absolute; inset:0; z-index:0; overflow:hidden; }
.home-page .hero-theatre::before {
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:128px;
  z-index:10;
  background:
    linear-gradient(180deg,#a9161d 0%,#d52d31 36%,#ae171f 73%,#7f1018 100%);
  box-shadow: inset 0 -9px 0 rgba(75,0,4,.22), 0 9px 20px rgba(5,37,65,.22);
  clip-path: polygon(0 0,100% 0,100% 80%,97% 88%,94% 82%,91% 90%,88% 83%,85% 91%,82% 84%,79% 92%,76% 84%,73% 91%,70% 84%,67% 92%,64% 84%,61% 91%,58% 84%,55% 92%,52% 84%,49% 91%,46% 84%,43% 92%,40% 84%,37% 91%,34% 84%,31% 92%,28% 84%,25% 91%,22% 84%,19% 92%,16% 84%,13% 91%,10% 84%,7% 91%,4% 83%,0 90%);
}
.home-page .hero-theatre::after {
  content:"";
  position:absolute; inset:128px 0 150px;
  background:
    linear-gradient(90deg,rgba(5,49,86,.57),transparent 17%,transparent 83%,rgba(5,49,86,.57)),
    repeating-linear-gradient(90deg,transparent 0 9.5%,rgba(255,255,255,.025) 9.5% 10.1%,transparent 10.1% 20%),
    radial-gradient(ellipse at 50% 40%,rgba(244,251,255,.64),rgba(194,228,247,.18) 34%,transparent 68%);
}
.home-page .hero-v19 .curtain {
  top:0;
  bottom:145px;
  width:clamp(82px,10.5vw,175px);
  max-width:none;
  z-index:14;
  background:
    repeating-linear-gradient(90deg,#821016 0 13%,#cf252a 14% 29%,#f0463e 30% 43%,#b41b21 44% 62%,#781016 63% 77%,#d52b30 78% 100%);
  box-shadow: inset 0 0 32px rgba(80,0,4,.55), 0 0 18px rgba(4,39,69,.28);
}
.home-page .hero-v19 .curtain::after {
  content:""; position:absolute; left:0; right:0; bottom:70px; height:8px;
  background:#e1a33a; box-shadow:0 3px 0 #8b5610;
}
.home-page .hero-v19 .curtain-left { left:0; clip-path:polygon(0 0,100% 0,86% 21%,95% 41%,80% 66%,91% 100%,0 100%); }
.home-page .hero-v19 .curtain-right { right:0; clip-path:polygon(0 0,100% 0,100% 100%,9% 100%,20% 66%,5% 41%,14% 21%); }

.home-page .theatre-balcony {
  position:absolute; top:160px; bottom:160px; width:31%; opacity:.52; z-index:1;
  background:
    repeating-linear-gradient(180deg,transparent 0 72px,rgba(227,199,150,.20) 73px 78px,rgba(6,49,87,.42) 79px 105px),
    repeating-linear-gradient(90deg,rgba(8,55,95,.20) 0 58px,rgba(226,201,160,.18) 59px 62px,rgba(7,51,89,.22) 63px 118px);
  filter: drop-shadow(0 6px 12px rgba(5,38,66,.25));
}
.home-page .theatre-balcony::before,
.home-page .theatre-balcony::after {
  content:""; position:absolute; left:6%; right:6%; height:12px;
  border-top:2px solid rgba(238,203,147,.36); border-bottom:2px solid rgba(10,58,97,.35);
}
.home-page .theatre-balcony::before{top:24%;}.home-page .theatre-balcony::after{top:56%;}
.home-page .theatre-balcony-left { left:5%; transform:perspective(500px) rotateY(15deg); transform-origin:left center; }
.home-page .theatre-balcony-right { right:5%; transform:perspective(500px) rotateY(-15deg); transform-origin:right center; }

.home-page .hero-v19 .stage-light {
  position:absolute; top:108px; width:9%; height:330px; z-index:7; opacity:.76;
  background:linear-gradient(180deg,rgba(255,239,198,.98),rgba(255,239,198,.38) 42%,rgba(255,239,198,0));
  clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);
  filter:blur(5px);
}
.home-page .hero-v19 .stage-light::before {
  content:""; position:absolute; top:-5px; left:50%; transform:translateX(-50%); width:25px; height:13px; border-radius:50%; background:#fff9db; box-shadow:0 0 18px 8px rgba(255,236,177,.84);
}
.home-page .hero-v19 .stage-light-1{left:16%;}.home-page .hero-v19 .stage-light-2{left:31%;}.home-page .hero-v19 .stage-light-3{left:45.5%;}.home-page .hero-v19 .stage-light-4{left:60%;}.home-page .hero-v19 .stage-light-5{left:75%;}

.home-page .hero-v19::after {
  content:""; position:absolute; left:0; right:0; bottom:112px; height:190px; z-index:2;
  background:
    repeating-linear-gradient(90deg,rgba(113,59,23,.26) 0 2px,transparent 2px 105px),
    linear-gradient(180deg,rgba(237,176,89,.56),rgba(157,79,32,.70));
  transform:perspective(560px) rotateX(64deg); transform-origin:bottom center;
  box-shadow:0 -18px 45px rgba(255,222,162,.28),inset 0 12px 18px rgba(255,238,195,.35);
}

.home-page .hero-stage-v19 {
  position:relative; z-index:20; min-height:650px; padding:190px 180px 150px;
  display:flex; align-items:center; justify-content:center;
}
.home-page .hero-copy-v19 { max-width:960px; margin:0 auto; text-align:center; }
.home-page .hero-tagline-v19 {
  margin:0;
  color:#073f78;
  font-family:"Arial Rounded MT Bold","Trebuchet MS","Segoe UI",sans-serif;
  font-size:clamp(2rem,3.35vw,3.55rem);
  line-height:1.28;
  font-weight:900;
  letter-spacing:-.025em;
  text-shadow:0 2px 0 rgba(255,255,255,.78),0 6px 18px rgba(36,101,148,.14);
}
.home-page .hero-tagline-v19 span { color:#cf252f; }
.home-page .hero-flourish { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:22px; }
.home-page .hero-flourish i { width:120px; height:4px; border-radius:999px; background:#cf252f; transform:skewX(-24deg); }
.home-page .hero-flourish b { font-size:2.3rem; line-height:1; filter:saturate(.9); }

.home-page .hero-quicklinks-wrap {
  position:absolute; left:0; right:0; bottom:0; z-index:35;
  padding:16px 0 18px;
  background:
    linear-gradient(180deg,rgba(200,232,249,.96),rgba(221,242,251,.98)),
    repeating-linear-gradient(135deg,rgba(11,79,136,.06) 0 2px,transparent 2px 52px);
  border-top:1px solid rgba(255,255,255,.7);
  box-shadow:0 -6px 25px rgba(9,58,98,.12);
}
.home-page .hero-quicklinks { display:grid; grid-template-columns:repeat(4,1fr); gap:26px; transform:translateY(-52px); }
.home-page .hero-quick-card {
  display:flex; min-height:152px; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  padding:18px 20px; text-decoration:none; border-radius:20px;
  color:#082f57; background:linear-gradient(180deg,#fff8e9,#f6ecd8);
  border:1px solid rgba(172,126,65,.24); box-shadow:0 12px 28px rgba(10,65,105,.13);
  transition:transform .2s ease,box-shadow .2s ease;
}
.home-page .hero-quick-card:hover { transform:translateY(-5px); box-shadow:0 17px 34px rgba(10,65,105,.18); }
.home-page .quick-icon { font-size:2rem; line-height:1; margin-bottom:7px; }
.home-page .hero-quick-card strong { font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif; font-size:1.55rem; color:#083f73; }
.home-page .hero-quick-card small { margin-top:7px; font-size:.98rem; line-height:1.3; color:#284d6b; font-weight:700; }
.home-page .hero-bottom-slogan { margin-top:-34px; display:flex; align-items:center; justify-content:center; gap:18px; color:#083f73; }
.home-page .hero-bottom-slogan strong { font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif; font-size:1.45rem; }
.home-page .hero-bottom-slogan span { width:130px; height:4px; border-radius:999px; background:#d32631; transform:skewX(-22deg); }

@media (max-width: 1000px) {
  .home-page .hero-stage-v19 { padding-left:110px; padding-right:110px; }
  .home-page .hero-quicklinks { gap:14px; }
  .home-page .hero-quick-card { min-height:142px; padding:14px; }
}
@media (max-width: 900px) {
  .home-page .site-header { position:sticky; }
  .home-page .nav-wrap { min-height:74px; }
  .home-page .brand { position:static; transform:none; width:auto; height:auto; }
  .home-page .brand img { width:116px; max-height:68px; }
  .home-page .hero.hero-v19 { min-height:980px; }
  .home-page .hero-theatre::before { height:92px; }
  .home-page .hero-v19 .stage-light { top:72px; height:270px; }
  .home-page .hero-stage-v19 { min-height:520px; padding:135px 70px 90px; }
  .home-page .hero-tagline-v19 { font-size:clamp(1.6rem,5vw,2.8rem); }
  .home-page .hero-quicklinks { grid-template-columns:repeat(2,1fr); transform:translateY(-30px); }
  .home-page .hero-quicklinks-wrap { padding-bottom:20px; }
  .home-page .hero-bottom-slogan { margin-top:-15px; }
}
@media (max-width: 600px) {
  .home-page .hero.hero-v19 { min-height:1130px; }
  .home-page .curtain { width:64px; }
  .home-page .theatre-balcony { width:42%; opacity:.35; }
  .home-page .hero-stage-v19 { padding:125px 48px 70px; min-height:470px; }
  .home-page .hero-tagline-v19 { font-size:1.48rem; line-height:1.38; }
  .home-page .hero-flourish i { width:70px; }
  .home-page .hero-quicklinks { grid-template-columns:1fr; max-width:360px; }
  .home-page .hero-quick-card { min-height:118px; }
  .home-page .hero-bottom-slogan span { width:50px; }
  .home-page .hero-bottom-slogan strong { font-size:1.05rem; }
}

/* HOME v20 - apertura fedele al mockup approvato */
.home-page > .site-header { display:none; }
.home-page .home-reference-hero {
  position:relative;
  width:100%;
  overflow:hidden;
  background:#0a4d88;
  line-height:0;
}
.home-page .home-reference-image {
  display:block;
  width:100%;
  height:auto;
  margin:0;
}
.home-page .home-reference-hotspots { position:absolute; inset:0; z-index:5; }
.home-page .home-reference-hotspots .hotspot { position:absolute; display:block; border-radius:14px; }
.home-page .home-reference-hotspots .hotspot:focus-visible { outline:4px solid #fff; outline-offset:3px; background:rgba(255,255,255,.10); }
/* menu superiore: coordinate percentuali rispetto al mockup 1536x1024 */
.home-page .hs-home { left:15.5%; top:4.1%; width:7.5%; height:6.2%; }
.home-page .hs-company { left:22.5%; top:4.1%; width:12%; height:6.2%; }
.home-page .hs-shows { left:33.5%; top:4.1%; width:10%; height:6.2%; }
.home-page .hs-gallery { left:61.5%; top:4.1%; width:8%; height:6.2%; }
.home-page .hs-contact { left:69.2%; top:4.1%; width:9%; height:6.2%; }
/* quattro riquadri crema */
.home-page .hs-card-company { left:7.0%; top:70.5%; width:20.8%; height:17%; }
.home-page .hs-card-shows { left:29.2%; top:70.5%; width:20.2%; height:17%; }
.home-page .hs-card-gallery { left:50.7%; top:70.5%; width:20.2%; height:17%; }
.home-page .hs-card-contact { left:72.0%; top:70.5%; width:20.8%; height:17%; }
@media (max-width:700px) {
  .home-page .home-reference-hero { overflow-x:auto; }
  .home-page .home-reference-image,
  .home-page .home-reference-hotspots { min-width:900px; }
  .home-page .home-reference-hotspots { width:900px; }
}

/* HOME - affinamento sezione "Nati per portare allegria sul palco" */
.home-page .story-section {
  background-color: #b8dceb;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(8,47,87,.10) 0 52px, transparent 53px),
    radial-gradient(circle at 88% 76%, rgba(201,47,59,.065) 0 72px, transparent 73px),
    linear-gradient(135deg, rgba(255,255,255,.34) 25%, transparent 25%),
    linear-gradient(315deg, rgba(255,255,255,.24) 25%, transparent 25%),
    linear-gradient(180deg, #c7e5f0 0%, #afd5e6 100%);
  background-size: auto, auto, 82px 82px, 82px 82px, auto;
}
.home-page .story-section .section-kicker,
.home-page .story-section .inline-cta {
  color: #9d2632;
  font-weight: 800;
}
.home-page .story-section .story-intro h2,
.home-page .story-section .story-intro h2 span,
.home-page .story-section .story-copy .lead {
  color: #052b50;
}
.home-page .story-section .story-copy p {
  color: #173f60;
  font-weight: 550;
}

/* HOME - story: motivo teatrale leggero al posto degli esagoni */
.home-page .story-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-image: linear-gradient(180deg, #c7e5f0 0%, #afd5e6 100%);
}
.home-page .story-section::before,
.home-page .story-section::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 210px;
  height: 115px;
  background: url('../img/maschere-watermark.svg') center/contain no-repeat;
  opacity: .42;
  pointer-events: none;
}
.home-page .story-section::before {
  left: 3.5%;
  top: 16%;
  transform: rotate(-7deg);
}
.home-page .story-section::after {
  right: 4%;
  bottom: 12%;
  transform: rotate(7deg) scale(.82);
  opacity: .34;
}
.home-page .story-section .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 800px) {
  .home-page .story-section::before,
  .home-page .story-section::after {
    width: 135px;
    height: 74px;
    opacity: .22;
  }
  .home-page .story-section::before { left: -28px; top: 5%; }
  .home-page .story-section::after { right: -24px; bottom: 4%; }
}

/* =========================================================
   HOME - v4 decorazioni maschere teatrali + footer logo
   ========================================================= */

/* Sezione "Nati per portare allegria sul palco": qualche maschera in più,
   sempre discreta e lontana dal testo centrale. */
.home-page .story-section {
  background-image: linear-gradient(180deg, #c7e5f0 0%, #afd5e6 100%);
}
.home-page .story-section::before {
  display: block;
  content: "";
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  z-index: 0;
  opacity: .24;
  pointer-events: none;
  background-image:
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg');
  background-repeat: no-repeat;
  background-size: 150px auto, 105px auto, 125px auto, 92px auto, 112px auto;
  background-position: 2.5% 14%, 18% 88%, 96% 20%, 83% 84%, 66% 8%;
}
.home-page .story-section::after { display: none; }
.home-page .story-section .container { position: relative; z-index: 1; }

/* Sezione "Una trentina di persone. Un’unica compagnia.":
   stesso linguaggio grafico, senza esagoni obliqui. */
.home-page .company-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-image: linear-gradient(180deg, #c7e5f0 0%, #b3d9e8 100%);
}
.home-page .company-section::before {
  display: block;
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .21;
  background-image:
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg'),
    url('../img/maschere-watermark.svg');
  background-repeat: no-repeat;
  background-size: 125px auto, 92px auto, 112px auto, 82px auto;
  background-position: 2.5% 12%, 42% 90%, 96% 18%, 88% 88%;
}
.home-page .company-section .container { position: relative; z-index: 1; }

/* Logo un po' più grande nel footer della sola Home. */
.home-page .site-footer .footer-brand img {
  width: 78px;
  height: 78px;
}

@media (max-width: 800px) {
  .home-page .story-section::before {
    opacity: .17;
    background-size: 105px auto, 75px auto, 88px auto, 68px auto, 78px auto;
    background-position: -18px 8%, 8% 94%, calc(100% + 14px) 16%, 94% 91%, 72% 3%;
  }
  .home-page .company-section::before {
    opacity: .15;
    background-size: 92px auto, 68px auto, 82px auto, 62px auto;
    background-position: -14px 8%, 20% 96%, calc(100% + 12px) 18%, 93% 92%;
  }
  .home-page .site-footer .footer-brand img {
    width: 68px;
    height: 68px;
  }
}

/* =========================================================
   HOME - redesign completo fedele al mockup approvato
   ========================================================= */
.home-page.home-mockup-layout {
  background:#f7ecd9;
  color:#082f57;
}
.home-page.home-mockup-layout main { overflow:hidden; }
.home-page.home-mockup-layout .home-reference-hero { margin:0; }

.home-page .home-story-panel,
.home-page .home-company-panel,
.home-page .home-art-footer { position:relative; overflow:hidden; isolation:isolate; }

/* pannello blu "Nati per portare allegria" */
.home-page .home-story-panel {
  padding:72px 0 88px;
  margin-top:-1px;
  background:
    radial-gradient(circle at 50% 18%, rgba(49,145,217,.34), transparent 34%),
    linear-gradient(180deg,#0b58a3 0%,#0a4f95 52%,#084686 100%);
  color:#fff;
  clip-path: ellipse(82% 70% at 50% 30%);
  padding-bottom:120px;
}
.home-page .home-story-panel::before {
  content:""; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 30%,rgba(2,35,74,.08));
}
.home-page .home-story-inner { max-width:900px; text-align:center; position:relative; z-index:2; }
.home-page .home-story-inner h2 {
  margin:0;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-weight:700;
  font-size:clamp(2.1rem,4.2vw,4rem);
  line-height:1.1;
  letter-spacing:-.03em;
  text-shadow:0 2px 0 rgba(0,0,0,.08);
}
.home-page .home-story-inner h2 span { color:#fff; }
.home-page .home-story-inner p {
  max-width:820px; margin:26px auto 0;
  color:#f7fbff; font-size:clamp(1rem,1.5vw,1.18rem); line-height:1.65;
  text-shadow:0 1px 4px rgba(1,28,58,.22);
}
.home-page .home-story-inner strong { color:#fff; }
.home-page .home-red-flourish {
  width:130px; height:5px; margin:22px auto 0; border-radius:999px;
  background:#ef202b; position:relative; transform:skewX(-25deg);
  box-shadow:0 2px 0 rgba(255,255,255,.18);
}
.home-page .home-red-flourish::after {
  content:""; position:absolute; width:42px; height:5px; left:44px; top:-7px;
  background:#ef202b; border-radius:999px; transform:rotate(-10deg);
}
.home-page .home-red-flourish.small { width:100px; margin-left:auto; margin-right:auto; }
.home-page .home-pill,
.home-page .home-outline-pill {
  display:inline-flex; align-items:center; justify-content:center; gap:14px;
  border-radius:999px; text-decoration:none; font-weight:850;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.home-page .home-pill {
  margin-top:28px; padding:12px 32px; min-width:220px;
  background:linear-gradient(180deg,#fff9ed,#f1e3c9); color:#0a4b8a;
  box-shadow:0 8px 20px rgba(3,33,70,.18), inset 0 1px 0 rgba(255,255,255,.8);
}
.home-page .home-pill:hover,
.home-page .home-outline-pill:hover { transform:translateY(-2px); }
.home-page .home-pill span,
.home-page .home-outline-pill span { font-size:1.45em; line-height:1; }

/* maschere decorative, tono su tono */
.home-page .home-mask {
  position:absolute; width:130px; height:78px; z-index:0; pointer-events:none;
  background:url('../img/maschere-watermark.svg') center/contain no-repeat;
  opacity:.30;
}
.home-page .home-story-panel .mask-a { left:3%; top:22%; transform:rotate(-8deg) scale(1.18); }
.home-page .home-story-panel .mask-b { left:14%; bottom:16%; transform:rotate(7deg) scale(.72); }
.home-page .home-story-panel .mask-c { right:5%; top:24%; transform:rotate(8deg) scale(1.05); }
.home-page .home-story-panel .mask-d { right:15%; bottom:16%; transform:rotate(-7deg) scale(.70); }

/* pannello crema compagnia */
.home-page .home-company-panel {
  margin-top:-54px;
  padding:130px 0 96px;
  background:
    radial-gradient(circle at 20% 12%,rgba(255,255,255,.72),transparent 28%),
    linear-gradient(180deg,#fbf1df 0%,#f7ead2 100%);
  color:#082f57;
}
.home-page .home-company-grid {
  position:relative; z-index:2;
  display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);
  gap:clamp(34px,5vw,72px); align-items:center;
}
.home-page .home-company-photo {
  overflow:hidden; border-radius:8px; background:#17365d;
  box-shadow:0 12px 32px rgba(34,45,64,.18);
  border:1px solid rgba(109,74,34,.12);
}
.home-page .home-company-photo img {
  display:block; width:100%; height:auto; aspect-ratio:2/1; object-fit:cover;
}
.home-page .home-company-copy { text-align:left; }
.home-page .home-company-copy h2 {
  margin:0; color:#0a4d8b; text-align:center;
  font-family:Georgia,"Times New Roman",serif; font-style:italic; font-weight:700;
  font-size:clamp(2rem,3.5vw,3.65rem); line-height:1.03; letter-spacing:-.035em;
}
.home-page .home-company-copy p {
  color:#173d64; font-size:clamp(1rem,1.3vw,1.12rem); line-height:1.65;
  margin:26px 0 0;
}
.home-page .home-outline-pill {
  margin-top:20px; padding:11px 26px; min-width:230px;
  border:2px solid #0a4d8b; color:#0a4d8b; background:rgba(255,255,255,.22);
}
.home-page .home-company-panel .home-mask { opacity:.18; filter:sepia(.2); }
.home-page .home-company-panel .cream-mask-a { left:1.5%; top:9%; transform:rotate(-9deg) scale(.68); }
.home-page .home-company-panel .cream-mask-b { left:2.5%; bottom:8%; transform:rotate(5deg) scale(.58); }
.home-page .home-company-panel .cream-mask-c { right:1.5%; top:8%; transform:rotate(7deg) scale(.72); }
.home-page .home-company-panel .cream-mask-d { right:3%; bottom:10%; transform:rotate(-8deg) scale(.76); }

/* footer grafico */
.home-page .home-art-footer {
  background:
    radial-gradient(circle at 50% 0%,rgba(30,119,189,.38),transparent 34%),
    linear-gradient(180deg,#0b56a0 0%,#084985 100%);
  color:#fff;
  padding-top:34px;
}
.home-page .home-art-footer .home-mask { opacity:.20; }
.home-page .home-art-footer .footer-mask-a { left:2%; top:22%; transform:rotate(-7deg) scale(.8); }
.home-page .home-art-footer .footer-mask-b { right:2%; top:20%; transform:rotate(8deg) scale(.8); }
.home-page .home-art-footer .footer-mask-c { right:9%; bottom:15%; transform:rotate(-9deg) scale(.55); }
.home-page .home-footer-main {
  position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.1fr 1fr;
  align-items:center; gap:38px; padding:24px 0 30px;
}
.home-page .home-footer-info { display:grid; gap:2px; font-size:.98rem; line-height:1.42; }
.home-page .home-footer-info strong { font-size:1rem; }
.home-page .home-footer-brand { text-align:center; }
.home-page .home-footer-brand img {
  width:min(230px,80%); margin:0 auto; filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));
}
.home-page .home-footer-slogan {
  display:flex; align-items:center; justify-content:center; gap:15px; margin-top:3px;
  font-family:Georgia,"Times New Roman",serif; font-style:italic; font-size:1.25rem;
}
.home-page .home-footer-slogan i { width:70px; height:4px; background:#ef202b; border-radius:999px; transform:skewX(-24deg); }
.home-page .home-footer-nav { text-align:center; font-size:.94rem; line-height:2; }
.home-page .home-footer-nav a { color:#fff; text-decoration:none; }
.home-page .home-footer-nav span { opacity:.55; padding:0 7px; }
.home-page .fb-dot {
  display:inline-flex; width:28px; height:28px; border-radius:50%; background:#fff; color:#0a4d8b !important;
  align-items:center; justify-content:center; font-weight:900; font-family:Arial,sans-serif;
}
.home-page .home-footer-bottom { background:#062c58; border-top:1px solid rgba(255,255,255,.08); }
.home-page .home-footer-bottom .container {
  min-height:62px; display:flex; align-items:center; justify-content:space-between; gap:18px;
  font-size:.82rem; color:rgba(255,255,255,.88);
}

@media (max-width: 980px) {
  .home-page .home-story-panel { clip-path:none; margin-top:0; padding:70px 0 82px; }
  .home-page .home-company-panel { margin-top:0; padding:84px 0; }
  .home-page .home-company-grid { grid-template-columns:1fr; }
  .home-page .home-company-copy { max-width:760px; margin:0 auto; text-align:center; }
  .home-page .home-company-photo { width:min(850px,100%); margin:0 auto; }
  .home-page .home-footer-main { grid-template-columns:1fr; text-align:center; gap:22px; }
  .home-page .home-footer-info { justify-items:center; }
}
@media (max-width:700px) {
  .home-page .home-story-panel { padding:58px 0 68px; }
  .home-page .home-story-inner p { font-size:.98rem; }
  .home-page .home-mask { opacity:.13 !important; width:90px; }
  .home-page .home-company-panel { padding:68px 0 60px; }
  .home-page .home-company-photo img { aspect-ratio:16/9; }
  .home-page .home-footer-brand img { width:180px; }
  .home-page .home-footer-slogan i { width:38px; }
  .home-page .home-footer-slogan { font-size:1rem; }
  .home-page .home-footer-bottom .container { min-height:80px; flex-direction:column; justify-content:center; text-align:center; }
}

/* ============================================================
   HOME - v6: foto compagnia più ampia + gerarchia footer
   ============================================================ */
@media (min-width: 981px) {
  .home-page .home-company-grid {
    grid-template-columns: minmax(0, 1.72fr) minmax(285px, .68fr);
    gap: clamp(28px, 3.2vw, 48px);
  }
  .home-page .home-company-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    object-fit: cover;
  }
}

.home-page .home-footer-info {
  font-size: .90rem;
  line-height: 1.45;
}
.home-page .home-footer-info strong {
  display: block;
  margin-bottom: 7px;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: clamp(1.65rem, 2.2vw, 2.15rem);
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #fff;
}

/* ============================================================
   PAGINA LA COMPAGNIA - v7
   ============================================================ */
.compagnia-page {
  background:#f8eddb;
  color:#123d68;
}
.compagnia-page .page-main { overflow:hidden; }
.compagnia-page .compagnia-hero {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.58), transparent 32%),
    radial-gradient(circle at 10% 40%, rgba(55,146,208,.20), transparent 28%),
    radial-gradient(circle at 90% 52%, rgba(55,146,208,.18), transparent 26%),
    linear-gradient(180deg,#c9e8f4 0%,#afd8ea 100%);
  color:#082f57;
  padding:82px 0 88px;
}
.compagnia-page .compagnia-hero h1 {
  color:#0a4d8b;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(3.2rem,7vw,6rem);
  letter-spacing:-.04em;
  margin:.12em 0 .18em;
}
.compagnia-page .compagnia-hero p:last-child {
  max-width:780px;
  margin:0 auto;
  color:#214d72;
  font-size:1.14rem;
  line-height:1.7;
}
.compagnia-hero-mask {
  position:absolute;
  width:180px;
  height:108px;
  background:url('../img/maschere-watermark.svg') center/contain no-repeat;
  opacity:.15;
  pointer-events:none;
}
.compagnia-hero-mask-left { left:4%; bottom:10%; transform:rotate(-9deg); }
.compagnia-hero-mask-right { right:4%; top:16%; transform:rotate(8deg) scale(.82); }

.compagnia-intro-section {
  background:linear-gradient(180deg,#fbf1df 0%,#f7e8cf 100%);
}
.compagnia-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr);
  gap:clamp(34px,5vw,72px);
  align-items:center;
}
.compagnia-intro-photo {
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(29,63,94,.18);
  border:1px solid rgba(84,61,31,.12);
}
.compagnia-intro-photo img { display:block; width:100%; height:auto; aspect-ratio:2/1; object-fit:cover; }
.compagnia-intro-copy h2,
.author-heading h2,
.actors-heading h2 {
  color:#0a4d8b;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  letter-spacing:-.03em;
}
.compagnia-intro-copy h2 { font-size:clamp(2.1rem,4vw,3.6rem); line-height:1.08; margin:.1em 0 .45em; }
.compagnia-intro-copy p { color:#274e70; line-height:1.72; }

.author-section {
  position:relative;
  background:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,.16), transparent 28%),
    radial-gradient(circle at 88% 72%, rgba(255,255,255,.12), transparent 24%),
    linear-gradient(180deg,#0b59a4 0%,#084a89 100%);
  color:#fff;
}
.author-heading { max-width:800px; margin:0 auto 42px; }
.author-heading .section-kicker { color:#f8e8cf; }
.author-heading h2 { color:#fff; font-size:clamp(2.8rem,5vw,4.8rem); margin:.1em 0 .15em; }
.author-heading p:last-child { color:#e9f4fb; font-size:1.12rem; }
.author-card {
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:clamp(28px,4vw,54px);
  align-items:stretch;
  max-width:1120px;
  margin:0 auto;
  padding:24px;
  border-radius:28px;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 50px rgba(1,30,63,.30);
  color:#173d64;
}
.author-photo-placeholder {
  min-height:430px;
  border-radius:20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 30%,rgba(255,255,255,.62),transparent 28%),
    linear-gradient(145deg,#d3eaf4,#b8dbe9);
  border:2px dashed rgba(10,77,139,.28);
  color:#0a4d8b;
  font-weight:800;
}
.author-mask-mark {
  width:150px;
  height:95px;
  background:url('../img/maschere-watermark.svg') center/contain no-repeat;
  opacity:.48;
}
.author-role {
  margin:0 0 8px;
  color:#d51f2b;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.88rem;
}
.author-card-copy h3 {
  margin:.1em 0 .55em;
  color:#0a4d8b;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(2rem,3.6vw,3.15rem);
  line-height:1.06;
}
.author-card-copy p { line-height:1.72; }
.author-card-copy strong { color:#0a4d8b; }
.author-quote {
  margin:24px 0 0;
  padding:18px 20px;
  border-left:5px solid #ef202b;
  background:#f8eddd;
  border-radius:0 14px 14px 0;
  color:#0b4c87;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-weight:700;
}

.actors-section {
  background:
    radial-gradient(circle at 8% 12%,rgba(85,150,195,.10),transparent 24%),
    radial-gradient(circle at 92% 84%,rgba(85,150,195,.08),transparent 22%),
    linear-gradient(180deg,#fbf1df 0%,#f8ead2 100%);
}
.actors-heading { max-width:850px; margin:0 auto 54px; }
.actors-heading h2 { font-size:clamp(2.5rem,5vw,4.5rem); margin:.1em 0 .25em; }
.actors-heading p:last-child { color:#355776; line-height:1.7; }
.actors-era { margin-top:54px; }
.actors-era + .actors-era { margin-top:66px; }
.actors-era-title { text-align:center; margin-bottom:24px; }
.actors-era-title span {
  display:inline-block;
  color:#d51f2b;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.82rem;
  margin-bottom:4px;
}
.actors-era-title h3 {
  margin:0;
  color:#0a4d8b;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(1.8rem,3vw,2.7rem);
}
.actors-photo-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.actor-photo-slot {
  aspect-ratio:4/5;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px;
  border-radius:18px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.12)),
    url('../img/maschere-watermark.svg') center 38%/64% auto no-repeat,
    linear-gradient(145deg,#c7e3ef,#a9d1e2);
  border:1px solid rgba(10,77,139,.13);
  box-shadow:0 10px 24px rgba(32,65,94,.11);
}
.actor-photo-slot::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:linear-gradient(transparent,rgba(7,55,99,.78));
}
.actor-photo-slot span { position:relative; z-index:1; color:#fff; font-weight:850; font-size:.92rem; }
.actors-note {
  margin:58px auto 0;
  max-width:850px;
  padding:22px 26px;
  display:flex;
  gap:10px;
  flex-direction:column;
  text-align:center;
  border-radius:18px;
  background:#c9e7f2;
  color:#174a75;
  border:1px solid rgba(10,77,139,.10);
}
.actors-note strong { color:#0a4d8b; font-size:1.08rem; }

@media (max-width:1050px) {
  .actors-photo-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
  .compagnia-intro-grid,
  .author-card { grid-template-columns:1fr; }
  .compagnia-intro-copy { text-align:center; }
  .author-photo-placeholder { min-height:340px; }
}
@media (max-width:620px) {
  .compagnia-page .compagnia-hero { padding:64px 0 68px; }
  .compagnia-hero-mask { opacity:.09; width:130px; }
  .actors-photo-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .author-card { padding:16px; border-radius:22px; }
  .author-photo-placeholder { min-height:300px; }
}

/* COMPAGNIA v8 - storia per immagini e dietro le quinte */
.compagnia-history-heading{max-width:940px;margin:0 auto 38px}.compagnia-history-heading h2,.backstage-heading h2{color:#0a4d8b;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(2.4rem,4.6vw,4.2rem);margin:.1em 0 .35em}.compagnia-history-heading p:not(.section-kicker),.backstage-heading p{color:#315775;line-height:1.7}
.then-now-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1160px;margin:0 auto}.group-photo-slot{margin:0;background:#fff8ec;border-radius:24px;overflow:hidden;box-shadow:0 16px 38px rgba(29,63,94,.16);border:1px solid rgba(84,61,31,.12)}.group-photo-placeholder,.group-gallery-slot,.backstage-photo-slot{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(210,235,246,.95),rgba(172,211,230,.92)),url('../img/maschere-watermark.svg') center/34% auto no-repeat;color:#0a4d8b;font-weight:850}.group-photo-placeholder{aspect-ratio:16/9}.group-photo-slot figcaption{padding:17px 22px;text-align:center}.group-photo-slot figcaption strong{display:block;color:#d51f2b;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:1.8rem}.group-photo-slot figcaption span{color:#315775}
.author-photo{border-radius:20px;overflow:hidden;min-height:430px;background:#d3eaf4}.author-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
.group-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.group-gallery-slot{aspect-ratio:16/10;border-radius:18px;border:1px solid rgba(10,77,139,.13);box-shadow:0 10px 24px rgba(32,65,94,.11);background:linear-gradient(145deg,#c7e3ef,#a9d1e2);position:relative;overflow:hidden}.group-gallery-slot::before,.backstage-photo-slot::before{content:"";position:absolute;width:110px;height:75px;background:url('../img/maschere-watermark.svg') center/contain no-repeat;opacity:.22}.group-gallery-slot span,.backstage-photo-slot span{position:relative;z-index:1;background:rgba(255,255,255,.72);padding:7px 12px;border-radius:999px}
.backstage-section{background:linear-gradient(180deg,#0b59a4 0%,#084987 100%);color:#fff;position:relative}.backstage-heading{max-width:900px;margin:0 auto 42px}.backstage-heading .section-kicker{color:#f5dfc0}.backstage-heading h2{color:#fff}.backstage-heading p{color:#eaf5fb}.backstage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.backstage-card{background:#fbf1df;color:#244e70;border-radius:22px;padding:16px 16px 24px;box-shadow:0 16px 36px rgba(1,30,63,.24)}.backstage-photo-slot{aspect-ratio:16/10;border-radius:15px;position:relative;overflow:hidden;background:linear-gradient(145deg,#d4eaf4,#b5d9e8)}.backstage-card h3{color:#0a4d8b;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:1.75rem;margin:18px 6px 8px}.backstage-card p{margin:0 6px;line-height:1.6}
@media(max-width:850px){.then-now-grid,.backstage-grid{grid-template-columns:1fr}.group-gallery{grid-template-columns:1fr 1fr}.author-photo{min-height:360px}}
@media(max-width:560px){.group-gallery{grid-template-columns:1fr}.group-photo-placeholder,.group-gallery-slot,.backstage-photo-slot{aspect-ratio:16/10}}

/* Compagnia v9 - kicker rossi e backstage a 4 categorie */
.compagnia-page .compagnia-hero .section-kicker {
  color: #d71920;
  font-size: clamp(1.2rem, 2.1vw, 1.65rem);
  font-weight: 800;
  letter-spacing: .08em;
}
.compagnia-page .compagnia-history-heading > .section-kicker {
  color: #d71920;
  font-size: clamp(1.12rem, 1.9vw, 1.45rem);
  font-weight: 800;
  letter-spacing: .08em;
}
.compagnia-page .backstage-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1050px) {
  .compagnia-page .backstage-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .compagnia-page .backstage-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   SPETTACOLI + CONTATTI v10 - coordinamento con Home/Compagnia
   ============================================================ */
.spettacoli-page,
.contatti-page {
  --qdc-red:#d71920;
  --qdc-blue:#0a4d8b;
  --qdc-blue-deep:#082f57;
  --qdc-sky:#b9deee;
  --qdc-sky-light:#dceff6;
  --qdc-cream:#f8eddb;
  --qdc-cream-light:#fff8ec;
  --qdc-text:#274e70;
  background:var(--qdc-cream);
  color:var(--qdc-blue-deep);
}
.spettacoli-page .site-header,
.contatti-page .site-header {
  background:linear-gradient(90deg,#0b3e70 0%,#0a5796 52%,#0b3e70 100%);
  border-bottom:1px solid rgba(255,255,255,.18);
  box-shadow:0 6px 22px rgba(8,47,87,.18);
}
.spettacoli-page .main-nav a::after,
.contatti-page .main-nav a::after { background:#ef202b; }

.spettacoli-page .spettacoli-hero,
.contatti-page .contact-hero {
  position:relative;
  overflow:hidden;
  padding:82px 0 88px;
  background:
    radial-gradient(circle at 50% 15%,rgba(255,255,255,.62),transparent 32%),
    radial-gradient(circle at 8% 46%,rgba(58,147,205,.22),transparent 26%),
    radial-gradient(circle at 92% 54%,rgba(58,147,205,.18),transparent 25%),
    linear-gradient(180deg,#c9e8f4 0%,#afd8ea 100%);
  color:var(--qdc-blue-deep);
  border-bottom:1px solid rgba(8,47,87,.10);
}
.spettacoli-page .spettacoli-hero h1,
.contatti-page .contact-hero h1 {
  color:var(--qdc-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(3.2rem,7vw,6rem);
  letter-spacing:-.04em;
  margin:.12em 0 .18em;
}
.spettacoli-page .spettacoli-hero .section-kicker,
.contatti-page .contact-hero .section-kicker {
  color:var(--qdc-red);
  font-size:clamp(1.05rem,1.8vw,1.35rem);
  font-weight:850;
  letter-spacing:.08em;
}
.spettacoli-page .spettacoli-hero p:last-child,
.contatti-page .contact-hero p:last-child {
  max-width:800px;
  margin:0 auto;
  color:#214d72;
  font-size:1.12rem;
  line-height:1.7;
  font-weight:600;
}
.spettacoli-hero-mask,
.contact-hero-mask,
.archive-mask,
.contact-deco-mask {
  position:absolute;
  background:url('../img/maschere-watermark.svg') center/contain no-repeat;
  pointer-events:none;
}
.spettacoli-hero-mask,
.contact-hero-mask { width:180px;height:110px;opacity:.13; }
.spettacoli-hero-mask.mask-left,
.contact-hero-mask.mask-left { left:4%;bottom:10%;transform:rotate(-9deg); }
.spettacoli-hero-mask.mask-right,
.contact-hero-mask.mask-right { right:4%;top:16%;transform:rotate(8deg) scale(.84); }

.spettacoli-page .spettacoli-archive-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 20%,rgba(85,150,195,.09),transparent 22%),
    radial-gradient(circle at 90% 78%,rgba(215,25,32,.055),transparent 20%),
    linear-gradient(180deg,#fbf1df 0%,#f7e8cf 100%);
}
.spettacoli-page .spettacoli-archive-section .container { position:relative;z-index:1; }
.archive-mask { width:150px;height:92px;opacity:.10; }
.archive-mask-a { left:1.5%;top:6%;transform:rotate(-8deg); }
.archive-mask-b { right:2%;bottom:5%;transform:rotate(9deg) scale(.85); }
.spettacoli-heading { max-width:900px;margin:0 auto 48px; }
.spettacoli-heading .section-kicker { color:var(--qdc-red);font-size:1.05rem; }
.spettacoli-heading h2 {
  color:var(--qdc-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(2.5rem,5vw,4.5rem);
  margin:.1em 0 .25em;
}
.spettacoli-heading p:last-child { color:#355776;line-height:1.7; }
.spettacoli-page .cards-grid { gap:26px; }
.spettacoli-page .show-card {
  background:rgba(255,248,236,.98);
  border:1px solid rgba(10,77,139,.13);
  border-radius:22px;
  box-shadow:0 15px 34px rgba(32,65,94,.13);
}
.spettacoli-page .show-card:hover { box-shadow:0 22px 44px rgba(32,65,94,.20); }
.spettacoli-page .show-card-body { padding:24px; }
.spettacoli-page .show-card h3 {
  color:var(--qdc-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:1.55rem;
}
.spettacoli-page .show-card p { color:#355776; }
.spettacoli-page .show-card-year { color:var(--qdc-red);font-weight:900;letter-spacing:.06em; }
.spettacoli-page .show-card a { color:var(--qdc-blue);font-weight:900; }
.spettacoli-page .show-card a:hover { color:var(--qdc-red); }

.contatti-page .contact-direct-section {
  position:relative;
  overflow:hidden;
  min-height:520px;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 9% 22%,rgba(78,150,197,.10),transparent 22%),
    radial-gradient(circle at 92% 78%,rgba(215,25,32,.055),transparent 21%),
    linear-gradient(180deg,#fbf1df 0%,#f7e8cf 100%);
}
.contact-deco-mask { width:150px;height:95px;opacity:.11; }
.contact-deco-mask.deco-left { left:3%;top:18%;transform:rotate(-9deg); }
.contact-deco-mask.deco-right { right:4%;bottom:15%;transform:rotate(8deg); }
.contact-direct-card {
  position:relative;
  z-index:1;
  width:min(760px,100%);
  margin:0 auto;
  padding:48px clamp(26px,5vw,62px);
  text-align:center;
  border-radius:28px;
  background:rgba(255,248,236,.96);
  border:1px solid rgba(10,77,139,.13);
  box-shadow:0 20px 48px rgba(32,65,94,.16);
}
.contact-direct-icon {
  width:74px;height:74px;margin:0 auto 18px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#c9e7f2;
  color:var(--qdc-blue);
  font-size:2rem;
  box-shadow:inset 0 0 0 1px rgba(10,77,139,.10);
}
.contact-direct-card .section-kicker { color:var(--qdc-red);margin-bottom:8px; }
.contact-direct-card h2 {
  color:var(--qdc-blue);
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(2.3rem,5vw,4rem);
  margin:.1em 0 .35em;
}
.contact-direct-card > p:not(.section-kicker) { color:#355776;max-width:610px;margin:0 auto 22px;line-height:1.75; }
.contatti-page .contact-email {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  padding:14px 24px;
  margin:4px auto 20px;
  border-radius:999px;
  background:#0a4d8b;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  font-size:clamp(1rem,2.3vw,1.25rem);
  box-shadow:0 10px 24px rgba(10,77,139,.20);
  overflow-wrap:anywhere;
}
.contatti-page .contact-email:hover { background:#d71920;transform:translateY(-2px); }
.contatti-page .contact-note { font-size:.88rem!important;color:#58728a!important;margin-bottom:0!important; }

.spettacoli-page .themed-footer,
.contatti-page .themed-footer {
  background:linear-gradient(180deg,#0b4f8d 0%,#073865 100%);
  color:#e9f4fb;
  border-top:1px solid rgba(255,255,255,.10);
}
.spettacoli-page .themed-footer .footer-brand,
.contatti-page .themed-footer .footer-brand { color:#fff; }

@media(max-width:820px){
  .spettacoli-page .main-nav,.contatti-page .main-nav{background:#0b477d;}
  .spettacoli-hero-mask,.contact-hero-mask{width:120px;opacity:.08;}
  .archive-mask,.contact-deco-mask{opacity:.07;width:110px;}
  .contact-direct-card{padding:36px 22px;}
}

/* FIX v12 - footer pagina La Compagnia coerente con Spettacoli e Contatti */
.compagnia-page .themed-footer {
  background: linear-gradient(180deg, #0b4f8d 0%, #073865 100%);
  color: #e9f4fb;
  border-top: 1px solid rgba(255,255,255,.10);
}
.compagnia-page .themed-footer .footer-brand { color: #fff; }

/* CONTATTI v13 - impostazione essenziale coordinata con I Frutti del Gelso */
.contatti-page .contact-info-section {
  position: relative;
  overflow: hidden;
  min-height: 650px;
  padding: clamp(58px, 7vw, 92px) 0 clamp(72px, 8vw, 110px);
  background:
    radial-gradient(circle at 16% 14%, rgba(255,255,255,.36), transparent 24%),
    radial-gradient(circle at 86% 78%, rgba(10,77,139,.08), transparent 26%),
    linear-gradient(180deg, #dceff6 0%, #cfe8f2 100%);
  color: #082f57;
}
.contatti-page .contact-info-wrap {
  position: relative;
  z-index: 2;
}
.contatti-page .contact-info-heading {
  max-width: 1120px;
  margin: 0 0 48px;
}
.contatti-page .contact-info-heading h1 {
  margin: 0 0 30px;
  color: #12389a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.contatti-page .contact-info-heading p {
  margin: 0 0 8px;
  color: #152f49;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  line-height: 1.62;
}
.contatti-page .contact-info-heading strong {
  color: #082f57;
  font-weight: 850;
}
.contatti-page .contact-info-card {
  width: min(980px, calc(100% - 24px));
  margin: 0 auto;
  padding: clamp(42px, 5vw, 62px) clamp(26px, 6vw, 72px);
  text-align: center;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(8,47,87,.05);
  box-shadow: 0 18px 45px rgba(8,47,87,.10);
}
.contatti-page .contact-info-card > p:first-child {
  margin: 0 auto 32px;
  color: #1d2d3d;
  font-size: clamp(1.05rem, 1.8vw, 1.28rem);
  line-height: 1.7;
}
.contatti-page .contact-info-card .contact-email {
  display: inline-block;
  max-width: 100%;
  margin: 0 auto 30px;
  padding: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  color: #12389a;
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 900;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.contatti-page .contact-info-card .contact-email:hover {
  background: transparent;
  color: #d71920;
  transform: none;
  text-decoration: underline;
  text-underline-offset: 5px;
}
.contatti-page .contact-click-note {
  margin: 0 !important;
  color: #5a5f64 !important;
  font-size: clamp(.98rem, 1.5vw, 1.12rem) !important;
  line-height: 1.55 !important;
}
.contatti-page .contact-info-mask {
  position: absolute;
  z-index: 1;
  width: 145px;
  height: 92px;
  background: url('../img/maschere-watermark.svg') center/contain no-repeat;
  opacity: .07;
  pointer-events: none;
}
.contatti-page .contact-info-mask.mask-a {
  left: 2.5%;
  top: 8%;
  transform: rotate(-9deg);
}
.contatti-page .contact-info-mask.mask-b {
  right: 2.5%;
  bottom: 8%;
  transform: rotate(8deg) scale(.9);
}
@media (max-width: 820px) {
  .contatti-page .contact-info-heading { margin-bottom: 34px; }
  .contatti-page .contact-info-card { width: 100%; }
  .contatti-page .contact-info-mask { width: 95px; opacity: .045; }
}

/* Foto Ieri/Oggi - pagina La Compagnia */
.group-photo-image{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#fff8ec;}

/* Archivio spettacoli 2027 - impostazione approvata */
.spettacoli-page .spettacoli-archive-section{
  background:
    radial-gradient(circle at 14% 13%,rgba(255,255,255,.34),transparent 24%),
    radial-gradient(circle at 88% 74%,rgba(201,137,57,.08),transparent 22%),
    linear-gradient(180deg,#f4dfb9 0%,#f8e8cb 52%,#f1d9ad 100%);
}
.spettacoli-page .spettacoli-archive-section::before,
.spettacoli-page .spettacoli-archive-section::after{
  content:"";position:absolute;top:0;width:145px;height:360px;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,#7d0710,#d51f25 48%,#8d0811);border-radius:0 0 70% 0;
  box-shadow:inset -18px 0 28px rgba(75,0,0,.22);opacity:.96;
}
.spettacoli-page .spettacoli-archive-section::before{left:-72px;transform:skewY(-5deg)}
.spettacoli-page .spettacoli-archive-section::after{right:-72px;transform:scaleX(-1) skewY(-5deg)}
.archive-title-new{margin-bottom:28px}
.archive-title-new h2{font-family:"Trebuchet MS",Arial,sans-serif!important;font-style:normal!important;font-weight:900!important;letter-spacing:-.04em;font-size:clamp(3rem,6vw,5.4rem)!important;color:#0c4a91!important;margin:0!important;text-shadow:0 2px 0 rgba(255,255,255,.55)}
.archive-title-new p{font-size:1.12rem;line-height:1.5!important;color:#173e69!important;margin:.3rem 0 .5rem!important}
.archive-title-underline{display:block;width:170px;height:7px;margin:8px auto 0;background:#d91e27;border-radius:100%;transform:rotate(-1deg)}
.next-show-2027{position:relative;z-index:2;display:grid;grid-template-columns:38% 62%;width:min(1500px,calc(100vw - 56px));margin:0 0 30px 50%;transform:translateX(-50%);border:3px solid #18a5e0;border-radius:22px;overflow:hidden;background:linear-gradient(105deg,#dff5ff 0%,#c8edff 42%,#eef9ff 100%);box-shadow:0 15px 32px rgba(28,83,124,.18)}
.next-show-copy{padding:26px 28px 24px 38px;position:relative;z-index:2}
.next-show-badge{display:inline-block;background:#db2029;color:#fff;border-radius:15px;padding:8px 18px;font-weight:900;font-size:1.02rem;box-shadow:0 5px 12px rgba(151,13,22,.2)}
.next-show-year{font-family:"Trebuchet MS",Arial,sans-serif;font-size:3.9rem;font-weight:900;line-height:1;color:#0c4a91;margin:13px 0 -3px 52px;transform:rotate(-2deg)}
.next-show-copy h3{font-family:"Trebuchet MS",Arial,sans-serif;font-size:clamp(2.3rem,4.4vw,4rem);line-height:.95;color:#0c4a91;margin:0;font-weight:900;letter-spacing:-.05em}
.next-show-redline{display:block;width:170px;height:6px;background:#db2029;border-radius:100%;margin:8px 0 20px 245px;transform:rotate(-7deg)}
.next-show-copy h4{font-size:1.35rem;color:#0b4384;margin:0 0 8px;font-weight:900}
.next-show-copy>p:not(.next-show-tagline){color:#123d69;line-height:1.55;font-size:1.02rem;margin:0;max-width:610px}
.next-show-tagline{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700;font-size:1.45rem!important;color:#0c4a91!important;margin:14px 0 0 50px!important;transform:rotate(-2deg)}
.next-show-visual{display:flex;align-items:center;justify-content:center;min-width:0;background:#d8f2ff;overflow:hidden}.next-show-visual img{display:block;width:100%;height:auto;object-fit:contain;object-position:center center}
.spettacoli-page .archive-grid-new{grid-template-columns:repeat(4,1fr);gap:18px}
.spettacoli-page .archive-grid-new .show-card{border-radius:16px;background:rgba(255,251,243,.97);border:1px solid rgba(152,105,42,.14);box-shadow:0 10px 22px rgba(82,57,29,.12);overflow:visible;position:relative}
.spettacoli-page .archive-grid-new .show-card-media{border-radius:14px 14px 0 0;overflow:hidden}
.spettacoli-page .archive-grid-new .show-card-body{padding:18px 16px 17px;text-align:center}
.spettacoli-page .archive-grid-new .show-card-year{display:inline-block;background:linear-gradient(180deg,#1356a1,#073e80);color:#fff!important;border-radius:9px;padding:7px 19px;margin:-36px auto 10px;position:relative;z-index:3;box-shadow:0 4px 9px rgba(0,47,102,.22);font-size:.95rem}
.spettacoli-page .archive-grid-new .show-card h3{font-family:"Trebuchet MS",Arial,sans-serif;font-style:normal;font-size:1.18rem;margin:3px 0 10px;color:#073f82}
.spettacoli-page .archive-grid-new .show-card p:not(.show-card-year){font-size:.9rem;line-height:1.42;min-height:77px;color:#244c72}
.spettacoli-page .archive-grid-new .show-card a{display:block;background:linear-gradient(180deg,#1971b7,#0b5595);color:#fff;border-radius:24px;padding:10px 12px;margin-top:12px;text-decoration:none;font-weight:800}
.spettacoli-page .archive-grid-new .show-card a:hover{color:#fff;transform:translateY(-1px);box-shadow:0 6px 12px rgba(10,83,149,.22)}
@media(max-width:1050px){.next-show-2027{grid-template-columns:1fr;width:min(100% - 8px,900px);margin-left:50%}.next-show-visual{min-height:0}.next-show-visual img{width:100%;height:auto}.spettacoli-page .archive-grid-new{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.next-show-copy{padding:22px}.next-show-year{margin-left:20px;font-size:3rem}.next-show-redline{margin-left:110px}.next-show-tagline{margin-left:0!important}.next-show-visual{min-height:0}.next-show-visual img{width:100%;height:auto}.spettacoli-page .archive-grid-new{grid-template-columns:1fr}.spettacoli-page .spettacoli-archive-section::before,.spettacoli-page .spettacoli-archive-section::after{width:90px;opacity:.7}}


/* =========================================================
   SCHEDA SPETTACOLO - tema coordinato Home
   Base azzurra "Il teatro che fa bene all'umore!" + maschere
   Card blu "Nati per portare allegria sul palco"
   ========================================================= */
.spettacolo-page .show-detail-stage {
  position: relative;
  isolation: isolate;
  background:
    url('../img/maschere-watermark.svg') 2.5% 8% / 145px auto no-repeat,
    url('../img/maschere-watermark.svg') 97% 21% / 115px auto no-repeat,
    url('../img/maschere-watermark.svg') 5% 58% / 105px auto no-repeat,
    url('../img/maschere-watermark.svg') 95% 76% / 140px auto no-repeat,
    url('../img/maschere-watermark.svg') 16% 94% / 80px auto no-repeat,
    radial-gradient(circle at 50% 7%, rgba(255,255,255,.78), transparent 29%),
    radial-gradient(circle at 15% 48%, rgba(255,255,255,.38), transparent 24%),
    linear-gradient(180deg,#dff3fb 0%,#cdeaf6 48%,#d9f0f8 100%);
  min-height: calc(100vh - 76px);
  padding: 34px 0 74px;
}
.spettacolo-page .show-detail-stage::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(16,91,145,.035));
}
.spettacolo-page .show-breadcrumb,
.spettacolo-page .show-breadcrumb a { color:#0a4d8b; }
.spettacolo-page .show-detail-year { color:#0a4d8b; }
.spettacolo-page .show-author,
.spettacolo-page .show-summary { color:#173d64; }
.spettacolo-page .summary-panel h2 { color:#0a4d8b; }

/* "Scopri la storia" */
.spettacolo-page .abstract-block {
  padding:24px 210px 24px 26px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 12%,rgba(55,151,220,.26),transparent 34%),
    linear-gradient(180deg,#0b58a3 0%,#0a4f95 52%,#084686 100%);
  box-shadow:0 12px 28px rgba(5,61,113,.19);
}
.spettacolo-page .abstract-block h2,
.spettacolo-page .abstract-block .show-abstract,
.spettacolo-page .abstract-block blockquote { color:#fff; }
.spettacolo-page .abstract-block .show-abstract { text-shadow:0 1px 3px rgba(1,28,58,.18); }
.spettacolo-page .abstract-block blockquote { opacity:.96; }

/* "Leggi la trama", "Personaggi e cast", "Dal palco – Gallery" */
.spettacolo-page .show-detail-content .plot-details {
  overflow:hidden;
  margin-top:14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 0%,rgba(55,151,220,.22),transparent 38%),
    linear-gradient(180deg,#0b58a3 0%,#0a4f95 52%,#084686 100%);
  box-shadow:0 10px 24px rgba(5,61,113,.16);
}
.spettacolo-page .show-detail-content .plot-details summary {
  background:transparent;
  color:#fff;
  padding:18px 22px;
  font-weight:850;
  text-shadow:0 1px 3px rgba(1,28,58,.20);
}
.spettacolo-page .show-detail-content .plot-details[open] summary {
  border-bottom:1px solid rgba(255,255,255,.20);
}
.spettacolo-page .show-detail-content .plot-details-body {
  background:transparent;
  color:#f7fbff;
  padding:20px 22px 24px;
}
.spettacolo-page .show-detail-content .plot-details-body p,
.spettacolo-page .show-detail-content .plot-details-body .spoiler-note {
  color:#f7fbff;
}
.spettacolo-page .show-detail-content .plot-details .gallery-empty {
  background:rgba(255,255,255,.09);
  color:#fff;
  border-color:rgba(255,255,255,.34);
}
.spettacolo-page .back-shows {
  color:#0a4d8b;
  font-weight:850;
}

@media (max-width:850px) {
  .spettacolo-page .show-detail-stage {
    background:
      url('../img/maschere-watermark.svg') -25px 7% / 105px auto no-repeat,
      url('../img/maschere-watermark.svg') calc(100% + 25px) 55% / 110px auto no-repeat,
      linear-gradient(180deg,#dff3fb 0%,#cdeaf6 52%,#d9f0f8 100%);
  }
  .spettacolo-page .abstract-block { padding:22px; }
}


/* SCHEDA SPETTACOLO v17 - elenco Personaggi e cast */
.spettacolo-page .cast-details-body {
  padding:20px 22px 24px;
}
.spettacolo-page .cast-head {
  display:grid;
  grid-template-columns:minmax(170px,.8fr) minmax(260px,1.7fr);
  gap:18px;
  padding:0 14px 10px;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.82;
}
.spettacolo-page .cast-list {
  display:grid;
  gap:8px;
}
.spettacolo-page .cast-row {
  display:grid;
  grid-template-columns:minmax(170px,.8fr) minmax(260px,1.7fr);
  gap:18px;
  align-items:center;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.spettacolo-page .cast-row:nth-child(even) {
  background:rgba(255,255,255,.105);
}
.spettacolo-page .cast-actor {
  color:#fff;
  font-weight:850;
  line-height:1.32;
}
.spettacolo-page .cast-role {
  color:#f3f8ff;
  line-height:1.42;
}
.spettacolo-page .cast-empty {
  margin:0;
  color:#f7fbff;
}
@media (max-width:680px) {
  .spettacolo-page .cast-head { display:none; }
  .spettacolo-page .cast-row {
    grid-template-columns:1fr;
    gap:5px;
    padding:14px 15px;
  }
  .spettacolo-page .cast-actor::before {
    content:"Attore · ";
    opacity:.68;
    font-weight:700;
  }
  .spettacolo-page .cast-role::before {
    content:"Ruolo · ";
    opacity:.68;
    font-weight:700;
  }
}

/* Compagnia v10 - nomi collaboratori dietro le quinte */
.compagnia-page .backstage-card{padding:24px 22px 26px;}
.compagnia-page .backstage-card h3{margin:0 0 16px;}
.compagnia-page .backstage-names{display:flex;flex-direction:column;gap:8px;margin:0 6px 20px;padding:16px 18px;border-radius:15px;background:linear-gradient(145deg,#d4eaf4,#b5d9e8);border:1px solid rgba(10,77,139,.12);}
.compagnia-page .backstage-names span{display:block;color:#0a4d8b;font-weight:800;line-height:1.35;}


/* Gallery storica compagnia + rito propiziatorio */
.compagnia-page .company-gallery{grid-template-columns:repeat(4,1fr);gap:16px}
.compagnia-page .company-gallery-item{border:0;padding:0;background:none;border-radius:16px;overflow:hidden;aspect-ratio:4/3;cursor:pointer;box-shadow:0 10px 24px rgba(32,65,94,.14)}
.compagnia-page .company-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.compagnia-page .company-gallery-item:hover img{transform:scale(1.035)}
.ritual-card{margin:70px auto 0;max-width:1180px;display:grid;grid-template-columns:.85fr 1.15fr;gap:0;background:linear-gradient(135deg,#073865,#0b59a4);border-radius:26px;overflow:hidden;box-shadow:0 18px 44px rgba(18,57,91,.24);color:#fff}
.ritual-copy{padding:42px 40px;display:flex;flex-direction:column;justify-content:center}.ritual-copy .section-kicker{color:#f4d6a5}.ritual-copy h3{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:clamp(2rem,3.4vw,3.2rem);margin:.1em 0 .45em;color:#fff}.ritual-copy p:last-child{font-size:1.08rem;line-height:1.75;color:#eef7ff;margin:0}.ritual-video{background:#061e34;display:flex;align-items:center}.ritual-video video{display:block;width:100%;max-height:620px;background:#000}
.company-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(3,18,31,.92);display:none;align-items:center;justify-content:center;padding:34px}.company-lightbox.open{display:flex}.company-lightbox img{max-width:min(1200px,94vw);max-height:90vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}.company-lightbox-close{position:absolute;right:24px;top:18px;border:0;background:transparent;color:#fff;font-size:3rem;cursor:pointer}
@media(max-width:900px){.compagnia-page .company-gallery{grid-template-columns:repeat(3,1fr)}.ritual-card{grid-template-columns:1fr}}
@media(max-width:650px){.compagnia-page .company-gallery{grid-template-columns:repeat(2,1fr)}.ritual-copy{padding:30px 24px}}
