

:root{
  --yellow:#f4bc33;--green:#6cb86e;--purple:#ba71c6;--coral:#ff6950;
  --navy:#07164d;--ink:#111;--paper:#f7f3eb;--white:#fff;
  --header:78px;--pad:clamp(30px,5.7vw,96px);--content-max:1480px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit}
.site-header{height:var(--header);position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:8px var(--pad);background:rgba(247,243,235,.94);border-bottom:2px solid var(--ink);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;width:clamp(178px,15vw,245px);height:62px}.brand img{width:100%;height:100%;object-fit:contain;object-position:left center}
.main-nav{display:flex;gap:22px;align-items:center;font-weight:950;font-size:13px;text-transform:uppercase}.main-nav a{text-decoration:none}.nav-pill{background:var(--yellow);border:2px solid var(--ink);padding:9px 12px;box-shadow:3px 3px 0 var(--ink)}
.menu-toggle{display:none;background:var(--paper);border:2px solid var(--ink);padding:8px 11px;font-weight:950}
.corner-stage{position:relative;overflow:hidden}.corner{position:absolute;z-index:0;pointer-events:none}.yellow{background:var(--yellow);width:26vw;height:15vw;left:-6vw;top:-5vw;transform:rotate(-10deg)}.green{background:var(--green);width:23vw;height:14vw;right:-5vw;top:-5vw;transform:rotate(10deg)}.purple{background:var(--purple);width:23vw;height:23vw;left:-12vw;bottom:-12vw;border-radius:50%}.coral{width:29vw;height:29vw;right:-13vw;bottom:-15vw;border:4.8vw solid var(--coral);border-radius:50%}
.hero{min-height:calc(100vh - var(--header));display:grid;grid-template-columns:1.03fr .97fr;gap:clamp(36px,5vw,90px);align-items:center;padding:clamp(74px,8vw,132px) var(--pad);border-bottom:2px solid var(--ink)}
.hero>*:not(.corner){position:relative;z-index:2}.eyebrow{font-size:12px;font-weight:1000;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}.edition-chip{display:inline-block;background:var(--yellow);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:8px 12px;font-weight:1000;margin:8px 0 22px}
.hero h1,.section-heading h2,.food-title h2,.story-copy h2{font-size:clamp(70px,8.7vw,154px);letter-spacing:-.075em;line-height:.75;margin:0;font-weight:1000}.hero h1 em{font-style:normal;color:var(--coral);text-shadow:5px 5px 0 var(--yellow)}
.hero-lead{max-width:620px;font-size:clamp(18px,1.5vw,24px);line-height:1.16;font-weight:700;margin:30px 0}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.button{padding:13px 16px;border:2px solid var(--ink);text-decoration:none;font-weight:1000;text-transform:uppercase;font-size:13px}.button.dark{background:var(--navy);color:white;box-shadow:5px 5px 0 var(--yellow)}.button.light{background:white;box-shadow:5px 5px 0 var(--coral)}
.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);margin-top:38px;border:2px solid var(--ink);background:white}.hero-meta span{padding:14px;border-right:2px solid var(--ink)}.hero-meta span:last-child{border-right:0}.hero-meta small{display:block;font-size:9px;font-weight:1000;letter-spacing:.12em}.hero-meta b{font-size:14px}
.hero-photos{height:min(690px,72vh);position:relative}.hero-photo{position:absolute;margin:0;border:3px solid var(--ink);background:white;box-shadow:10px 10px 0 var(--navy);overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo figcaption{position:absolute;left:10px;bottom:10px;padding:7px 9px;background:var(--paper);border:2px solid var(--ink);font-size:10px;font-weight:1000;letter-spacing:.06em}
.hero-photo.one{width:49%;height:70%;left:0;top:9%;transform:rotate(-5deg)}.hero-photo.two{width:43%;height:60%;right:1%;top:0;transform:rotate(5deg)}.hero-photo.three{width:47%;height:58%;right:18%;bottom:1%;transform:rotate(-1.8deg)}
.archive-stamp{position:absolute;right:2%;bottom:4%;z-index:5;background:var(--coral);color:white;border:3px solid var(--ink);width:106px;height:106px;border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:1000;line-height:.9;transform:rotate(8deg);box-shadow:6px 6px 0 var(--yellow)}
.ticker{background:var(--navy);color:white;border-bottom:2px solid var(--ink);overflow:hidden;padding:13px 0;font-weight:1000;white-space:nowrap}.ticker-track{display:inline-flex;animation:marquee 26s linear infinite}.ticker span{font-size:20px;margin-right:20px}@keyframes marquee{to{transform:translateX(-50%)}}
.section{padding:clamp(86px,9vw,150px) var(--pad)}.section-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end;margin-bottom:clamp(44px,6vw,92px)}.section-heading h2 span{color:var(--coral)}.section-heading>p{font-size:clamp(17px,1.4vw,22px);font-weight:700;line-height:1.22;max-width:530px;justify-self:end;margin:0}.on-dark{color:white}.on-dark h2 span{color:var(--yellow)}.on-dark>p{color:white}
.next-edition{padding-bottom:105px}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--ink);background:white;box-shadow:8px 8px 0 var(--navy)}.status-grid article{padding:30px;min-height:190px;border-right:2px solid var(--ink)}.status-grid article:last-child{border-right:0}.status-grid b{font-size:13px}.status-grid h3{font-size:36px;margin:34px 0 5px}.status-grid p{font-weight:800;margin:0;color:var(--coral)}
.artists-section{background:var(--navy);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding-bottom:clamp(70px,8vw,120px)}.artists-heading{padding-bottom:18px}.carousel-shell{position:relative}.artists-track,.program-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:18px var(--pad) 36px;scrollbar-width:none}.artists-track::-webkit-scrollbar,.program-track::-webkit-scrollbar{display:none}
.artist-card{scroll-snap-align:start;flex:0 0 clamp(285px,31vw,445px);background:var(--paper);border:2px solid white;box-shadow:8px 8px 0 rgba(255,255,255,.18);overflow:hidden}.artist-card figure{margin:0;height:clamp(390px,49vw,570px);position:relative;background:#111}.artist-card figure img{width:100%;height:100%;object-fit:cover}.artist-card.featured{border-color:var(--yellow);box-shadow:9px 9px 0 var(--yellow)}.artist-badge{position:absolute;top:14px;left:14px;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);padding:7px 8px;font-size:10px;font-weight:1000;letter-spacing:.08em}.artist-copy{position:relative;padding:20px 22px 24px;min-height:150px}.artist-index{position:absolute;right:17px;top:13px;font-size:46px;font-weight:1000;color:rgba(7,22,77,.14)}.artist-copy h3{font-size:clamp(34px,3.3vw,54px);line-height:.85;letter-spacing:-.055em;margin:4px 45px 15px 0;color:var(--navy)}.artist-copy p{margin:0;font-size:12px;font-weight:1000;letter-spacing:.06em}
.carousel-arrow{position:absolute;z-index:8;top:47%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:2px solid var(--ink);background:var(--yellow);font-size:28px;font-weight:1000;cursor:pointer;box-shadow:4px 4px 0 var(--ink)}.carousel-arrow.prev{left:15px}.carousel-arrow.next{right:15px}
.program-section{padding-left:0;padding-right:0}.program-section>.section-heading,.program-section>.every-night{margin-left:var(--pad);margin-right:var(--pad)}.every-night{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:48px}.every-night span{background:var(--navy);color:white;padding:10px 13px;font-weight:1000}.every-night div{border:2px solid var(--ink);background:white;padding:10px 13px;font-weight:1000}.every-night div:nth-of-type(1){background:var(--yellow)}.every-night div:nth-of-type(2){background:var(--green)}.every-night div:nth-of-type(3){background:var(--purple)}.every-night div:nth-of-type(4){background:var(--coral)}.every-night strong{margin-left:6px;font-size:13px}
.program-track{gap:16px}.day-card{scroll-snap-align:start;flex:0 0 clamp(320px,38vw,510px);min-height:670px;background:white;border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink);padding:25px;position:relative}.day-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--ink);padding-bottom:16px}.day-head span{font-size:clamp(31px,4vw,58px);font-weight:1000;letter-spacing:-.06em}.day-head b{font-size:72px;line-height:.74;opacity:.13}.accent-yellow{border-top:14px solid var(--yellow)}.accent-green{border-top:14px solid var(--green)}.accent-purple{border-top:14px solid var(--purple)}.accent-coral{border-top:14px solid var(--coral)}
.stage{padding:22px 0;border-bottom:2px solid var(--ink)}.stage em{display:inline-block;background:var(--navy);color:white;font-style:normal;font-size:11px;font-weight:1000;padding:6px 8px}.stage.south em{background:var(--coral);color:var(--ink)}.stage p{font-size:21px;font-weight:900;margin:14px 0 0;display:flex;justify-content:space-between;gap:12px}.stage ul{padding:0;margin:14px 0 0;list-style:none}.stage li{display:flex;justify-content:space-between;gap:15px;padding:6px 0;font-weight:900;font-size:19px}.stage b,.stage strong{white-space:nowrap}.menu-day{padding:22px 0 58px}.menu-day span{display:inline-block;background:var(--green);padding:6px 8px;color:white;font-weight:1000;font-size:11px}.menu-day strong{display:block;font-size:22px;line-height:1;margin-top:13px}.poster-link{position:absolute;bottom:22px;left:25px;border:0;border-bottom:2px solid var(--ink);background:transparent;padding:3px 0;font-weight:1000;font-size:11px;cursor:pointer}
.palio-section{background:var(--navy);color:white}.palio-section>*:not(.corner){position:relative;z-index:2}.palio-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end;margin-bottom:58px}.palio-heading h2{font-size:clamp(66px,8.6vw,148px);line-height:.79;letter-spacing:-.065em;margin:0;padding-left:.015em}.palio-heading h2 .palio-name{display:block;width:max-content;max-width:100%;font-size:.72em;line-height:.92;letter-spacing:-.045em;white-space:nowrap;color:transparent;-webkit-text-stroke:2px white}.palio-heading>div:last-child{font-size:20px;font-weight:750;line-height:1.2;max-width:520px;justify-self:end}.palio-heading>div:last-child b{display:inline-block;margin-top:16px;background:var(--coral);color:var(--ink);border:2px solid white;padding:7px 9px;font-size:11px}
.palio-feature{display:grid;grid-template-columns:1.05fr .95fr;background:var(--paper);color:var(--ink);border:3px solid white;box-shadow:12px 12px 0 var(--yellow);min-height:620px}.palio-feature figure{margin:0;position:relative;min-height:620px;border-right:3px solid var(--ink);overflow:hidden}.palio-feature figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.palio-feature figcaption{position:absolute;left:22px;bottom:22px;background:var(--yellow);border:2px solid var(--ink);padding:8px 10px;font-size:11px;font-weight:1000}.palio-copy{padding:clamp(34px,5vw,68px);display:flex;flex-direction:column;justify-content:center}.palio-copy small{font-weight:1000;letter-spacing:.12em;margin-top:26px}.palio-copy>strong{font-size:clamp(86px,10vw,160px);line-height:.72;letter-spacing:-.08em;color:var(--coral);margin:12px 0 36px}.team{display:grid;gap:4px;padding-top:24px;border-top:3px solid var(--ink)}.team span{font-size:10px;font-weight:1000;letter-spacing:.12em;margin-bottom:7px}.team b{font-size:clamp(22px,2.3vw,34px);color:var(--navy)}
.palio-gallery{display:grid;grid-template-columns:1fr 1fr .84fr;grid-template-rows:330px 330px;gap:14px;margin-top:66px}.palio-gallery figure{margin:0;position:relative;overflow:hidden;border:3px solid white}.palio-gallery img{width:100%;height:100%;object-fit:cover}.palio-gallery figcaption{position:absolute;left:12px;bottom:12px;background:var(--paper);color:var(--navy);border:2px solid var(--navy);padding:7px 9px;font-size:10px;font-weight:1000}.palio-gallery .wide{grid-column:1/3;grid-row:1}.palio-gallery .tall{grid-column:3;grid-row:1/3}
.food-section{background:var(--coral);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.food-title h2 em{font-style:normal;color:white;-webkit-text-stroke:2px var(--ink)}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:55px;border:2px solid var(--ink);background:var(--paper);box-shadow:9px 9px 0 var(--navy)}.food-grid article{padding:34px;min-height:390px;border-right:2px solid var(--ink)}.food-grid article:last-child{border-right:0}.food-grid span{font-weight:1000}.food-grid h3{font-size:48px;line-height:.88;letter-spacing:-.05em;margin:65px 0 22px}.food-grid p{font-size:18px;line-height:1.22;font-weight:700}
.story-section{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;min-height:660px;overflow:hidden;background:var(--paper)}.story-word{position:absolute;left:-2vw;top:30px;color:transparent;-webkit-text-stroke:2px var(--purple);font-size:clamp(130px,21vw,350px);font-weight:1000;letter-spacing:-.09em;opacity:.55}.story-copy{grid-column:2;position:relative;z-index:2;align-self:center}.story-copy h2 span{color:var(--purple)}.story-copy p:last-child{max-width:690px;font-size:20px;line-height:1.25;font-weight:750}.story-tags{position:absolute;left:var(--pad);bottom:58px;display:flex;gap:8px;flex-wrap:wrap}.story-tags span{border:2px solid var(--ink);padding:8px 10px;background:white;font-size:11px;font-weight:1000}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink);background:white}.info-grid article{padding:30px;border-right:2px solid var(--ink);min-height:280px}.info-grid article:last-child{border-right:0}.info-grid h3{font-size:38px;margin:48px 0 15px}.info-grid p{font-size:17px;line-height:1.25;font-weight:700}.info-grid a{font-weight:1000}
.social-banner{display:flex;justify-content:space-between;gap:25px;align-items:center;background:var(--yellow);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:25px var(--pad);font-size:clamp(20px,2.4vw,38px);font-weight:1000}.social-banner p{margin:0}.social-banner a{font-size:14px}
.site-footer{background:var(--navy);color:white;min-height:350px;display:grid;grid-template-columns:1.2fr .8fr .5fr;gap:35px;align-items:center;padding:80px var(--pad);border-top:2px solid var(--ink)}.site-footer>*:not(.corner){position:relative;z-index:2}.footer-logo{width:min(480px,100%);max-height:180px;object-fit:contain;object-position:left center}.site-footer p{font-size:18px;font-weight:800}.site-footer>div:last-child{display:flex;flex-direction:column;gap:10px;text-align:right;font-weight:1000}.site-footer a{text-decoration:none}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(7,22,77,.94);display:none;place-items:center;padding:28px}.lightbox.open{display:grid}.lightbox>div{max-width:min(760px,92vw);max-height:90vh}.lightbox img{max-height:82vh;width:auto;margin:auto;border:3px solid white;box-shadow:10px 10px 0 var(--yellow)}.lightbox-label{color:white;text-align:center;font-weight:1000}.lightbox-close{position:absolute;right:22px;top:18px;width:48px;height:48px;border-radius:50%;background:var(--yellow);border:2px solid white;font-size:30px;cursor:pointer}
@media(max-width:1080px){
  .hero{grid-template-columns:1fr}.hero-photos{height:650px;width:min(760px,100%);margin:auto}
  .section-heading,.palio-heading{grid-template-columns:1fr}.section-heading>p,.palio-heading>div:last-child{justify-self:start}
  .status-grid{grid-template-columns:repeat(2,1fr)}.status-grid article:nth-child(2){border-right:0}.status-grid article:nth-child(-n+2){border-bottom:2px solid var(--ink)}
  .palio-feature{grid-template-columns:1fr}.palio-feature figure{border-right:0;border-bottom:3px solid var(--ink);min-height:600px}.palio-copy{min-height:440px}
  .palio-gallery{grid-template-columns:1fr 1fr;grid-template-rows:360px 360px 430px}.palio-gallery .wide{grid-column:1/3}.palio-gallery .tall{grid-column:1/3;grid-row:3}
  .food-grid{grid-template-columns:1fr}.food-grid article{border-right:0;border-bottom:2px solid var(--ink);min-height:300px}.food-grid article:last-child{border-bottom:0}
  .story-section{grid-template-columns:1fr;padding-top:260px}.story-copy{grid-column:1}.site-footer{grid-template-columns:1fr}.site-footer>div:last-child{text-align:left}
}
@media(max-width:760px){
  :root{--header:70px;--pad:17px}
  .site-header{padding:6px 14px}.brand{width:145px;height:52px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:2px solid var(--ink);flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{padding:14px 17px;border-top:1px solid rgba(0,0,0,.12)}.nav-pill{margin:9px 13px 14px}
  .hero{padding-top:70px}.hero h1,.section-heading h2,.food-title h2,.story-copy h2{font-size:clamp(58px,17vw,96px)}.hero-meta{grid-template-columns:1fr}.hero-meta span{border-right:0;border-bottom:2px solid var(--ink)}.hero-meta span:last-child{border-bottom:0}.hero-photos{height:500px}.hero-photo.one{width:52%;height:67%}.hero-photo.two{width:47%;height:55%}.hero-photo.three{width:52%;height:50%;right:12%}.archive-stamp{width:82px;height:82px;font-size:12px}
  .section{padding-top:78px;padding-bottom:78px}.section-heading{gap:24px;margin-bottom:45px}.status-grid{grid-template-columns:1fr}.status-grid article{border-right:0!important;border-bottom:2px solid var(--ink)!important}.status-grid article:last-child{border-bottom:0!important}
  .artists-heading{padding-bottom:5px}.artist-card{flex-basis:82vw}.artist-card figure{height:115vw;max-height:540px}.carousel-arrow{width:44px;height:44px;font-size:22px}.carousel-arrow.prev{left:8px}.carousel-arrow.next{right:8px}
  .day-card{flex-basis:88vw;min-height:650px}.day-head span{font-size:42px}.day-head b{font-size:58px}.stage li{font-size:17px}
  .palio-heading h2{font-size:clamp(57px,17vw,95px)}.palio-feature{box-shadow:7px 7px 0 var(--yellow)}.palio-feature figure{min-height:500px}.palio-copy>strong{font-size:clamp(84px,25vw,125px)}
  .palio-gallery{display:grid;grid-template-columns:1fr;grid-template-rows:none;gap:10px}.palio-gallery figure,.palio-gallery .wide,.palio-gallery .tall{grid-column:1;grid-row:auto;min-height:290px}.palio-gallery .tall{min-height:450px}
  .food-grid article{padding:28px}.food-grid h3{margin-top:45px}.story-section{padding-top:220px}.story-tags{bottom:30px}.info-grid{grid-template-columns:1fr}.info-grid article{border-right:0;border-bottom:2px solid var(--ink)}.info-grid article:last-child{border-bottom:0}.social-banner{flex-direction:column;align-items:flex-start}.site-footer{min-height:500px;padding-top:90px}.footer-logo{width:min(380px,95vw)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none}.artists-track,.program-track{scroll-behavior:auto}}


/* v9 — spacing / alignment refinement */
.hero{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.section-heading,
.status-grid,
.food-title,
.food-grid,
.info-grid,
.palio-heading,
.palio-feature,
.palio-gallery{
  width:min(100%,var(--content-max));
  margin-left:auto;
  margin-right:auto;
}
.next-edition,
.food-section,
.info-section{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.palio-section{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.artists-heading{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.program-section>.section-heading,
.program-section>.every-night{
  width:min(calc(100% - (2 * var(--pad))),var(--content-max));
  margin-left:auto;
  margin-right:auto;
}
.story-section{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.site-footer,
.social-banner{
  padding-left:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
  padding-right:max(var(--pad),calc((100vw - 1680px)/2 + 42px));
}
.section-heading{
  column-gap:clamp(42px,6vw,100px);
}
.section-heading>p{
  line-height:1.32;
}
.status-grid article,
.info-grid article{
  padding:clamp(30px,3vw,46px);
}
.food-grid article{
  padding:clamp(32px,3.4vw,52px);
}
.palio-feature,
.status-grid,
.food-grid{
  border-radius:2px;
}


@media(max-width:760px){
  :root{
    --header:72px;
    --pad:26px;
  }

  body{
    overflow-x:hidden;
  }

  .site-header{
    padding-left:22px;
    padding-right:22px;
  }

  .brand{
    width:154px;
    height:54px;
  }

  .hero,
  .next-edition,
  .food-section,
  .info-section,
  .palio-section,
  .artists-heading,
  .story-section,
  .site-footer,
  .social-banner{
    padding-left:var(--pad);
    padding-right:var(--pad);
  }

  .hero{
    padding-top:84px;
    padding-bottom:88px;
    row-gap:48px;
  }

  .hero h1,
  .section-heading h2,
  .food-title h2,
  .story-copy h2{
    font-size:clamp(54px,15.2vw,82px);
    line-height:.82;
    letter-spacing:-.062em;
  }

  .hero-lead{
    margin-top:26px;
    line-height:1.28;
  }

  .hero-actions{
    gap:10px;
  }

  .button{
    padding:13px 14px;
  }

  .hero-photos{
    width:100%;
    height:480px;
    margin-top:8px;
  }

  .section{
    padding-top:88px;
    padding-bottom:88px;
  }

  .section-heading{
    gap:28px;
    margin-bottom:52px;
  }

  .section-heading>p{
    max-width:100%;
    font-size:17px;
    line-height:1.35;
  }

  .status-grid article{
    min-height:165px;
    padding:28px;
  }

  .status-grid h3{
    margin-top:28px;
  }

  .artists-heading{
    padding-top:88px;
    padding-bottom:18px;
  }

  .artists-track,
  .program-track{
    padding-left:var(--pad);
    padding-right:var(--pad);
    gap:14px;
  }

  .artist-card{
    flex-basis:calc(100vw - (2 * var(--pad)) - 20px);
  }

  .artist-card figure{
    height:auto;
    aspect-ratio:3/4;
  }

  .artist-copy{
    padding:20px 20px 24px;
  }

  .artist-copy h3{
    font-size:clamp(32px,10vw,45px);
    line-height:.9;
    margin-right:38px;
  }

  .carousel-shell{
    padding-bottom:18px;
  }

  .carousel-arrow{
    top:auto;
    bottom:-2px;
    transform:none;
    width:42px;
    height:42px;
    font-size:21px;
  }

  .carousel-arrow.prev{
    left:var(--pad);
  }

  .carousel-arrow.next{
    right:var(--pad);
  }

  .program-section>.section-heading,
  .program-section>.every-night{
    width:auto;
    margin-left:var(--pad);
    margin-right:var(--pad);
  }

  .every-night{
    margin-bottom:42px;
  }

  .day-card{
    flex-basis:calc(100vw - (2 * var(--pad)) - 12px);
    min-height:640px;
    padding:24px;
  }

  .day-head{
    gap:12px;
  }

  .day-head span{
    font-size:38px;
    line-height:.9;
  }

  .day-head b{
    font-size:52px;
  }

  .stage p,
  .stage li{
    line-height:1.12;
  }

  /* Palio: no cropping, no word running outside the viewport */
  .palio-section{
    padding-top:112px;
    padding-bottom:96px;
  }

  .palio-section .yellow{
    width:48vw;
    height:24vw;
    left:-17vw;
    top:-7vw;
  }

  .palio-section .green{
    width:43vw;
    height:22vw;
    right:-16vw;
    top:-6vw;
  }

  .palio-heading{
    gap:30px;
    margin-bottom:52px;
  }

  .palio-heading h2{
    font-size:clamp(58px,16vw,78px);
    line-height:.82;
    letter-spacing:-.055em;
    padding-left:.025em;
  }

  .palio-heading h2 .palio-name{display:block;margin-top:.04em;font-size:.70em;line-height:.94;white-space:nowrap}

  .palio-heading>div:last-child{
    font-size:17px;
    line-height:1.35;
    max-width:100%;
  }

  .palio-feature{
    width:100%;
    box-shadow:7px 7px 0 var(--yellow);
  }

  .palio-feature figure{
    min-height:0;
    height:auto;
    aspect-ratio:2/3;
  }

  .palio-feature figure img{
    object-fit:cover;
    object-position:center center;
  }

  .palio-feature figcaption{
    left:14px;
    bottom:14px;
    max-width:calc(100% - 28px);
  }

  .palio-copy{
    min-height:0;
    padding:34px 28px 38px;
  }

  .palio-copy small{
    margin-top:22px;
  }

  .palio-copy>strong{
    font-size:clamp(64px,19vw,88px);
    line-height:.78;
    letter-spacing:-.065em;
    margin:12px 0 30px;
    max-width:100%;
  }

  .team{
    gap:8px;
  }

  .team b{
    font-size:clamp(21px,6.5vw,28px);
    line-height:.98;
    overflow-wrap:anywhere;
  }

  .palio-gallery{
    margin-top:44px;
    gap:12px;
  }

  .palio-gallery figure,
  .palio-gallery .wide{
    min-height:0;
    aspect-ratio:4/3;
  }

  .palio-gallery .tall{
    min-height:0;
    aspect-ratio:3/4;
  }

  .food-grid{
    margin-top:44px;
  }

  .food-grid article{
    padding:30px 28px;
    min-height:285px;
  }

  .food-grid h3{
    font-size:43px;
    margin-top:38px;
  }

  .story-section{
    min-height:720px;
    padding-top:230px;
    padding-bottom:150px;
  }

  .story-word{
    left:12px;
    top:56px;
    font-size:34vw;
  }

  .story-copy p:last-child{
    font-size:18px;
    line-height:1.35;
  }

  .story-tags{
    left:var(--pad);
    right:var(--pad);
    bottom:52px;
  }

  .info-grid article{
    min-height:235px;
    padding:28px;
  }

  .info-grid h3{
    margin-top:36px;
  }

  .social-banner{
    padding-top:30px;
    padding-bottom:30px;
    gap:18px;
  }

  .site-footer{
    padding-top:105px;
    padding-bottom:76px;
    gap:30px;
  }

  .footer-logo{
    width:min(330px,100%);
    max-height:145px;
  }
}

@media(max-width:390px){
  :root{--pad:24px}
  .palio-heading h2{font-size:15vw}
  .day-head span{font-size:35px}
}


/* v10 — stronger global safe gutter + future video opener */
:root{
  --safe-gutter:clamp(46px,6.4vw,118px);
  --safe-gutter-mobile:32px;
}

/* One visual left/right axis for the whole page */
.site-header{
  padding-left:var(--safe-gutter);
  padding-right:var(--safe-gutter);
}
.hero,
.next-edition,
.food-section,
.info-section,
.palio-section,
.artists-heading,
.story-section,
.site-footer,
.social-banner{
  padding-left:var(--safe-gutter);
  padding-right:var(--safe-gutter);
}

/* Full-width rails still keep a real start/end breathing space */
.artists-track,
.program-track{
  padding-left:var(--safe-gutter);
  padding-right:var(--safe-gutter);
}

/* Program heading + food ribbon follow the same axis */
.program-section>.section-heading,
.program-section>.every-night{
  width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));
  margin-left:auto;
  margin-right:auto;
}

/* Prevent visual elements from feeling glued to the edge */
.hero-copy,
.section-heading>div:first-child,
.food-title,
.story-copy,
.palio-heading>div:first-child{
  padding-left:6px;
}

/* More comfortable vertical rhythm */
.hero{
  column-gap:clamp(58px,6.5vw,110px);
}
.section-heading{
  margin-bottom:clamp(54px,6vw,96px);
}
.next-edition{
  padding-top:clamp(104px,9vw,154px);
}
.artists-heading{
  padding-top:clamp(104px,9vw,150px);
}
.program-section{
  padding-top:clamp(108px,9vw,156px);
  padding-bottom:clamp(108px,9vw,156px);
}
.palio-section{
  padding-top:clamp(118px,10vw,170px);
  padding-bottom:clamp(118px,10vw,170px);
}
.food-section,
.info-section{
  padding-top:clamp(106px,9vw,154px);
  padding-bottom:clamp(106px,9vw,154px);
}

/* Future cinematic opening: hidden until a real source is supplied */
.opening-video{
  position:relative;
  min-height:calc(100svh - var(--header));
  background:var(--navy);
  overflow:hidden;
  border-bottom:2px solid var(--ink);
}
.opening-video.is-awaiting-video{
  display:none;
}
.opening-video-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.opening-video-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,22,77,.08),rgba(7,22,77,.25) 55%,rgba(7,22,77,.72));
}
.opening-video-overlay{
  position:absolute;
  left:var(--safe-gutter);
  bottom:clamp(68px,8vw,120px);
  z-index:2;
  color:#fff;
}
.opening-video-overlay img{
  width:min(540px,60vw);
  max-height:220px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.24));
}
.opening-video-overlay p{
  margin:22px 0 0;
  font-size:clamp(18px,2.2vw,34px);
  font-weight:1000;
  letter-spacing:.06em;
}
.opening-video-scroll{
  position:absolute;
  right:var(--safe-gutter);
  bottom:34px;
  z-index:2;
  color:#fff;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.14em;
}

@media(max-width:1080px){
  :root{
    --safe-gutter:clamp(38px,5.5vw,68px);
  }
}

@media(max-width:760px){
  :root{
    --safe-gutter:var(--safe-gutter-mobile);
    --pad:var(--safe-gutter-mobile);
  }

  .site-header,
  .hero,
  .next-edition,
  .food-section,
  .info-section,
  .palio-section,
  .artists-heading,
  .story-section,
  .site-footer,
  .social-banner{
    padding-left:var(--safe-gutter-mobile);
    padding-right:var(--safe-gutter-mobile);
  }

  .artists-track,
  .program-track{
    padding-left:var(--safe-gutter-mobile);
    padding-right:var(--safe-gutter-mobile);
  }

  .program-section>.section-heading,
  .program-section>.every-night{
    width:auto;
    margin-left:var(--safe-gutter-mobile);
    margin-right:var(--safe-gutter-mobile);
  }

  .hero-copy,
  .section-heading>div:first-child,
  .food-title,
  .story-copy,
  .palio-heading>div:first-child{
    padding-left:0;
  }

  .hero{
    padding-top:94px;
    padding-bottom:96px;
  }

  .section,
  .next-edition,
  .food-section,
  .info-section,
  .palio-section{
    padding-top:94px;
    padding-bottom:94px;
  }

  .artists-heading{
    padding-top:94px;
  }

  .program-section{
    padding-top:96px;
    padding-bottom:100px;
  }

  .section-heading{
    margin-bottom:56px;
  }

  .carousel-arrow.prev{
    left:var(--safe-gutter-mobile);
  }
  .carousel-arrow.next{
    right:var(--safe-gutter-mobile);
  }

  .opening-video-overlay{
    left:var(--safe-gutter-mobile);
    right:var(--safe-gutter-mobile);
    bottom:76px;
  }
  .opening-video-overlay img{
    width:min(82vw,390px);
  }
  .opening-video-scroll{
    right:var(--safe-gutter-mobile);
    bottom:28px;
  }
}

@media(max-width:390px){
  :root{
    --safe-gutter-mobile:28px;
  }
}


/* v11 — Palio title correction */
.palio-heading h2{
  max-width:100%;
  overflow:visible;
}
.palio-heading h2 .palio-name{
  transform-origin:left center;
}

@media(max-width:760px){
  .palio-heading h2{
    width:100%;
    max-width:100%;
  }
  .palio-heading h2 .palio-name{
    display:block;
    width:max-content;
    max-width:100%;
    font-size:.70em;
    line-height:.96;
    letter-spacing:-.035em;
    white-space:nowrap;
    -webkit-text-stroke:1.5px white;
  }
  .palio-heading>div:first-child{
    min-width:0;
    width:100%;
  }
  .palio-heading>div:last-child b{
    margin-top:18px;
  }
}

@media(max-width:390px){
  .palio-heading h2 .palio-name{
    font-size:.67em;
    letter-spacing:-.04em;
  }
}

@media(max-width:340px){
  .palio-heading h2 .palio-name{
    font-size:.62em;
  }
}


/* v12 — opening video */
.opening-video{
  position:relative;
  height:118svh;
  background:var(--navy);
  border-bottom:2px solid var(--ink);
}
.opening-video-sticky{
  position:sticky;
  top:var(--header);
  height:calc(100svh - var(--header));
  overflow:hidden;
  background:var(--navy);
}
.opening-video-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.opening-video-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,22,77,.58) 0%,rgba(7,22,77,.18) 52%,rgba(7,22,77,.08) 100%),
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(7,22,77,.15) 52%,rgba(7,22,77,.68));
}
.opening-video-overlay{
  position:absolute;
  left:var(--safe-gutter);
  bottom:clamp(70px,8vw,118px);
  z-index:2;
  color:white;
  max-width:min(720px,72vw);
}
.opening-video-overlay img{
  width:min(500px,60vw);
  max-height:190px;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 5px 16px rgba(0,0,0,.28));
}
.opening-video-overlay p{
  margin:24px 0 12px;
  font-size:clamp(14px,1.5vw,21px);
  font-weight:1000;
  letter-spacing:.12em;
}
.opening-video-overlay strong{
  display:block;
  font-size:clamp(30px,4.5vw,72px);
  line-height:.88;
  letter-spacing:-.055em;
  max-width:700px;
}
.opening-video-scroll{
  position:absolute;
  right:var(--safe-gutter);
  bottom:32px;
  z-index:2;
  color:white;
  border-bottom:1px solid rgba(255,255,255,.75);
  padding-bottom:4px;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.14em;
}

/* v12 — fireworks */
.fireworks-section{
  position:relative;
  min-height:680px;
  overflow:hidden;
  background:#050816;
  color:white;
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  padding:clamp(108px,10vw,170px) var(--safe-gutter);
}
.fireworks-inner{
  position:relative;
  z-index:3;
  width:min(100%,var(--content-max));
  margin:0 auto;
  display:grid;
  grid-template-columns:.52fr 1.15fr .58fr;
  gap:clamp(34px,5vw,88px);
  align-items:end;
}
.fireworks-kicker{
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.fireworks-kicker span{
  width:max-content;
  background:var(--coral);
  color:var(--ink);
  border:2px solid white;
  padding:8px 10px;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.11em;
}
.fireworks-kicker b{
  font-size:clamp(48px,5.7vw,92px);
  line-height:.82;
  letter-spacing:-.055em;
  color:var(--yellow);
}
.fireworks-copy h2{
  margin:0;
  font-size:clamp(66px,8.8vw,150px);
  line-height:.76;
  letter-spacing:-.07em;
}
.fireworks-copy h2 em{
  font-style:normal;
  color:transparent;
  -webkit-text-stroke:2px white;
}
.fireworks-time{
  border-left:2px solid rgba(255,255,255,.5);
  padding-left:28px;
}
.fireworks-time small{
  display:block;
  font-weight:1000;
  letter-spacing:.12em;
}
.fireworks-time strong{
  display:block;
  margin:10px 0 18px;
  font-size:clamp(58px,6.7vw,108px);
  line-height:.8;
  color:var(--coral);
  letter-spacing:-.06em;
}
.fireworks-time p{
  margin:0;
  font-size:16px;
  line-height:1.35;
  font-weight:700;
}
.firework{
  position:absolute;
  width:34vw;
  height:34vw;
  max-width:560px;
  max-height:560px;
  border-radius:50%;
  opacity:.78;
  background:
    repeating-conic-gradient(
      from 0deg,
      transparent 0deg 7deg,
      currentColor 7deg 8deg,
      transparent 8deg 15deg
    );
  -webkit-mask:radial-gradient(circle,transparent 0 12%,#000 13% 62%,transparent 63%);
          mask:radial-gradient(circle,transparent 0 12%,#000 13% 62%,transparent 63%);
}
.burst-one{color:var(--yellow);right:-7vw;top:-8vw;transform:rotate(8deg)}
.burst-two{color:var(--purple);left:-10vw;bottom:-14vw;transform:scale(.75) rotate(-10deg)}
.burst-three{color:var(--green);right:28vw;bottom:-19vw;transform:scale(.52)}

@media(max-width:980px){
  .fireworks-inner{grid-template-columns:1fr;align-items:start}
  .fireworks-kicker{flex-direction:row;align-items:center;justify-content:space-between}
  .fireworks-time{border-left:0;border-top:2px solid rgba(255,255,255,.5);padding:28px 0 0;max-width:520px}
}

@media(max-width:760px){
  .opening-video{height:110svh}
  .opening-video-sticky{height:calc(100svh - var(--header))}
  .opening-video-shade{
    background:linear-gradient(180deg,rgba(7,22,77,.06),rgba(7,22,77,.18) 48%,rgba(7,22,77,.82))
  }
  .opening-video-overlay{
    left:var(--safe-gutter-mobile);
    right:var(--safe-gutter-mobile);
    bottom:78px;
    max-width:none;
  }
  .opening-video-overlay img{width:min(78vw,350px)}
  .opening-video-overlay p{margin-top:18px;font-size:12px}
  .opening-video-overlay strong{font-size:clamp(34px,10vw,50px);line-height:.92}
  .opening-video-scroll{right:var(--safe-gutter-mobile);bottom:27px}

  .fireworks-section{min-height:0;padding:96px var(--safe-gutter-mobile)}
  .fireworks-inner{gap:38px}
  .fireworks-kicker{flex-direction:column;align-items:flex-start}
  .fireworks-kicker b{font-size:55px}
  .fireworks-copy h2{font-size:clamp(54px,15vw,76px);line-height:.8}
  .fireworks-copy h2 em{-webkit-text-stroke:1.5px white}
  .fireworks-time strong{font-size:76px}
  .fireworks-time p{font-size:16px}
  .firework{width:70vw;height:70vw}
  .burst-one{right:-30vw;top:-10vw}
  .burst-two{left:-30vw;bottom:-20vw}
  .burst-three{display:none}
}


/* v14 — opening video: true 16:9 landscape, no portrait crop */
.opening-video{
  --video-h:min(calc(100svh - var(--header)),56.25vw);
  height:calc(var(--video-h) + 12svh);
  min-height:0;
  background:#050816;
  overflow:visible;
}
.opening-video-sticky{
  position:sticky;
  top:var(--header);
  width:100%;
  height:var(--video-h);
  min-height:0;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#050816;
}
.opening-video-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:16/9;
  object-fit:contain;
  object-position:center center;
  background:#050816;
}
.opening-video-shade{
  background:
    linear-gradient(90deg,rgba(7,22,77,.46) 0%,rgba(7,22,77,.08) 52%,rgba(7,22,77,0) 100%),
    linear-gradient(180deg,rgba(0,0,0,0),rgba(7,22,77,.08) 58%,rgba(7,22,77,.55));
}
.opening-video-overlay{
  bottom:clamp(28px,4vw,62px);
}
.opening-video-overlay img{
  width:min(390px,34vw);
  max-height:125px;
}
.opening-video-overlay p{
  margin:15px 0 8px;
  font-size:clamp(12px,1vw,16px);
}
.opening-video-overlay strong{
  font-size:clamp(27px,3.25vw,52px);
  line-height:.9;
  max-width:580px;
}
.opening-video-scroll{
  bottom:20px;
}

/* Tablet */
@media(max-width:980px){
  .opening-video{
    --video-h:56.25vw;
    height:calc(var(--video-h) + 9svh);
  }
}

/* Phone: still landscape 16:9 — deliberately NOT full-screen portrait */
@media(max-width:760px){
  .opening-video{
    --video-h:56.25vw;
    height:calc(var(--video-h) + 7svh);
  }
  .opening-video-sticky{
    top:var(--header);
    height:var(--video-h);
    aspect-ratio:16/9;
  }
  .opening-video-media{
    object-fit:contain;
    aspect-ratio:16/9;
  }
  .opening-video-shade{
    background:
      linear-gradient(90deg,rgba(7,22,77,.38),rgba(7,22,77,.03) 70%),
      linear-gradient(180deg,transparent 45%,rgba(7,22,77,.54));
  }
  .opening-video-overlay{
    left:20px;
    right:20px;
    bottom:18px;
  }
  .opening-video-overlay img{
    width:min(145px,38vw);
    max-height:54px;
  }
  .opening-video-overlay p{
    margin:7px 0 4px;
    font-size:9px;
    letter-spacing:.09em;
  }
  .opening-video-overlay strong{
    font-size:clamp(17px,5vw,24px);
    line-height:.92;
    max-width:74vw;
  }
  .opening-video-scroll{
    display:none;
  }
}


/* v15 — clean video opening, publish-ready */
.opening-video{
  --video-h:min(calc(100svh - var(--header)),56.25vw);
  height:calc(var(--video-h) + 8svh);
  background:#050816;
}
.opening-video-sticky{
  height:var(--video-h);
  aspect-ratio:16/9;
  background:#050816;
}
.opening-video-media{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  background:#050816;
}
.opening-video-shade{
  background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(7,22,77,.08) 62%,rgba(7,22,77,.34));
}
.opening-video-overlay.minimal{
  left:var(--safe-gutter);
  right:auto;
  bottom:28px;
  max-width:none;
}
.opening-video-overlay.minimal img{
  width:min(250px,22vw);
  max-height:82px;
  margin:0;
}
.opening-video-overlay.minimal p,
.opening-video-overlay.minimal strong{
  display:none;
}
.opening-video-scroll{
  right:var(--safe-gutter);
  bottom:24px;
}
.video-play-fallback{
  display:none;
  position:absolute;
  z-index:4;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:72px;
  height:72px;
  border-radius:50%;
  border:2px solid white;
  background:rgba(7,22,77,.72);
  color:white;
  font-size:28px;
  cursor:pointer;
  backdrop-filter:blur(8px);
}
.video-play-fallback.show{
  display:grid;
  place-items:center;
}

@media(max-width:760px){
  .opening-video{
    --video-h:56.25vw;
    height:calc(var(--video-h) + 6svh);
  }
  .opening-video-overlay.minimal{
    left:18px;
    bottom:14px;
  }
  .opening-video-overlay.minimal img{
    width:min(120px,34vw);
    max-height:42px;
  }
  .opening-video-scroll{
    display:none;
  }
  .video-play-fallback{
    width:58px;
    height:58px;
    font-size:22px;
  }
}


/* v16 — video overlay: text yes, logo no */
.opening-video-overlay.text-only{
  left:var(--safe-gutter);
  right:auto;
  bottom:clamp(30px,4vw,64px);
  max-width:min(700px,72vw);
  color:white;
}
.opening-video-overlay.text-only p{
  display:block;
  margin:0 0 10px;
  font-size:clamp(12px,1.2vw,17px);
  font-weight:1000;
  letter-spacing:.12em;
}
.opening-video-overlay.text-only strong{
  display:block;
  font-size:clamp(29px,3.7vw,58px);
  line-height:.9;
  letter-spacing:-.055em;
  max-width:660px;
  text-shadow:0 3px 16px rgba(0,0,0,.28);
}
.opening-video-overlay.text-only img{
  display:none !important;
}

@media(max-width:760px){
  .opening-video-overlay.text-only{
    left:20px;
    right:20px;
    bottom:18px;
    max-width:none;
  }
  .opening-video-overlay.text-only p{
    margin-bottom:5px;
    font-size:9px;
    letter-spacing:.09em;
  }
  .opening-video-overlay.text-only strong{
    font-size:clamp(17px,5vw,24px);
    line-height:.92;
    max-width:76vw;
  }
}


/* v17 — mobile overflow corrections from real-device screenshots */

/* Fireworks headline: each word gets its own responsive fit */
.fireworks-copy{
  min-width:0;
  width:100%;
  overflow:visible;
}
.fireworks-copy h2{
  width:100%;
  max-width:100%;
  min-width:0;
}
.fireworks-copy .fw-line{
  display:block;
  width:max-content;
  max-width:100%;
  line-height:.80;
  letter-spacing:-.068em;
}
.fireworks-copy .fw-pyro{
  color:transparent;
  -webkit-text-stroke:2px white;
}

/* Palio result should never exceed its card */
.palio-copy{
  min-width:0;
}
.palio-copy>strong{
  width:100%;
  max-width:100%;
  white-space:nowrap;
}

@media(max-width:760px){
  /* Slightly more usable width while retaining safe margins */
  .fireworks-section{
    padding-left:28px;
    padding-right:28px;
  }

  .fireworks-inner,
  .fireworks-copy,
  .fireworks-time{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .fireworks-kicker b{
    font-size:clamp(48px,14vw,60px);
    line-height:.86;
    white-space:nowrap;
  }

  /* Fit based on viewport AND content gutter.
     PYRO is longer, so it gets a slightly smaller size. */
  .fireworks-copy h2{
    margin:0;
    font-size:inherit;
    line-height:1;
  }
  .fireworks-copy .fw-show{
    font-size:clamp(43px,12.6vw,62px);
  }
  .fireworks-copy .fw-pyro{
    font-size:clamp(39px,11.2vw,56px);
    -webkit-text-stroke:1.4px white;
  }

  .fireworks-time{
    padding-right:4px;
  }
  .fireworks-time strong{
    font-size:clamp(66px,19vw,82px);
    letter-spacing:-.065em;
  }
  .fireworks-time p{
    max-width:100%;
    font-size:16px;
    line-height:1.34;
  }

  /* Decorative bursts no longer sit on top of the important text */
  .burst-one{
    right:-38vw;
    top:-9vw;
    opacity:.62;
  }
  .burst-two{
    left:-37vw;
    bottom:-18vw;
    opacity:.60;
  }

  /* Palio card: keep the whole block well inside the screen */
  .palio-feature{
    width:100%;
    max-width:100%;
    overflow:hidden;
  }

  /* Use the natural 3:4 portrait composition instead of the narrower 2:3 crop */
  .palio-feature figure{
    aspect-ratio:3/4;
    overflow:hidden;
  }
  .palio-feature figure img{
    object-position:center center;
  }

  .palio-copy{
    padding-left:24px;
    padding-right:24px;
  }

  .palio-copy>strong{
    font-size:clamp(56px,16.7vw,76px);
    line-height:.80;
    letter-spacing:-.075em;
    margin-right:0;
  }
}

@media(max-width:390px){
  .fireworks-section{
    padding-left:24px;
    padding-right:24px;
  }
  .fireworks-copy .fw-show{
    font-size:12.1vw;
  }
  .fireworks-copy .fw-pyro{
    font-size:10.8vw;
  }
  .palio-copy>strong{
    font-size:16.2vw;
  }
}

@media(max-width:350px){
  .fireworks-copy .fw-show{
    font-size:11.7vw;
  }
  .fireworks-copy .fw-pyro{
    font-size:10.4vw;
  }
  .palio-copy>strong{
    font-size:15.7vw;
  }
}


/* v18 — real event photography */

/* DENTRO LA FESTA */
.atmosphere-section{
  background:var(--navy);
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
}
.atmosphere-hero{
  position:relative;
  min-height:clamp(610px,68vw,930px);
  overflow:hidden;
}
.atmosphere-hero>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.atmosphere-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,22,77,.80) 0%,rgba(7,22,77,.36) 48%,rgba(7,22,77,.06) 78%),
    linear-gradient(180deg,rgba(0,0,0,.02),rgba(7,22,77,.52));
}
.atmosphere-copy{
  position:absolute;
  z-index:2;
  left:var(--safe-gutter);
  bottom:clamp(68px,8vw,118px);
  color:white;
  width:min(740px,72vw);
}
.atmosphere-copy h2{
  margin:10px 0 24px;
  font-size:clamp(64px,8.1vw,142px);
  line-height:.77;
  letter-spacing:-.072em;
}
.atmosphere-copy h2 span{color:var(--yellow)}
.atmosphere-copy>p:last-child{
  margin:0;
  max-width:600px;
  font-size:clamp(17px,1.5vw,23px);
  line-height:1.32;
  font-weight:750;
}
.atmosphere-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr 1fr;
  grid-template-rows:minmax(300px,34vw) minmax(300px,34vw);
  gap:12px;
  padding:12px;
}
.atmosphere-grid figure{
  position:relative;
  margin:0;
  min-width:0;
  overflow:hidden;
  border:2px solid var(--ink);
  background:#111;
}
.atmosphere-grid .atmo-a{grid-row:1 / span 2}
.atmosphere-grid .atmo-d{grid-column:2 / span 2}
.atmosphere-grid img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  transition:transform .45s ease;
}
.atmosphere-grid figure:hover img{transform:scale(1.025)}
.atmosphere-grid figcaption{
  position:absolute;
  left:16px;
  bottom:16px;
  background:var(--yellow);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:7px 9px;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.11em;
}

/* FOOD, finally photographic */
.food-photo-section{
  background:var(--coral);
}
.food-photo-grid{
  width:min(100%,var(--content-max));
  margin:clamp(50px,6vw,92px) auto 0;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  grid-template-rows:minmax(420px,42vw) minmax(420px,42vw);
  gap:14px;
}
.food-photo-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:2px solid var(--ink);
  background:var(--navy);
}
.food-photo-card.food-main{grid-row:1 / span 2}
.food-photo-card.food-wide{display:none}
.food-photo-card>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
.food-photo-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,22,77,0) 24%,rgba(7,22,77,.90) 100%);
}
.food-photo-copy{
  position:absolute;
  z-index:2;
  left:clamp(22px,3vw,42px);
  right:clamp(22px,3vw,42px);
  bottom:clamp(24px,3vw,42px);
  color:white;
}
.food-photo-copy span{
  display:inline-block;
  background:var(--yellow);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:5px 8px;
  font-size:10px;
  font-weight:1000;
}
.food-photo-copy h3{
  margin:14px 0 12px;
  font-size:clamp(42px,5.2vw,80px);
  line-height:.82;
  letter-spacing:-.055em;
}
.food-photo-copy p{
  margin:0;
  max-width:520px;
  font-size:16px;
  line-height:1.3;
  font-weight:750;
}

/* Community section gets a real crowd/table background */
.story-section.story-with-photo{
  position:relative;
  background:
    linear-gradient(90deg,rgba(247,243,235,.98) 0%,rgba(247,243,235,.93) 48%,rgba(247,243,235,.28) 76%,rgba(247,243,235,.08) 100%),
    url("assets/media/95e6cbabed85.webp") center center / cover no-repeat;
}
.story-section.story-with-photo .story-word{
  opacity:.46;
}
.story-section.story-with-photo .story-copy{
  background:rgba(247,243,235,.80);
  backdrop-filter:blur(3px);
  border:2px solid var(--ink);
  padding:clamp(28px,4vw,54px);
  box-shadow:8px 8px 0 var(--purple);
}
.story-section.story-with-photo .story-tags span{
  background:var(--yellow);
}

@media(max-width:980px){
  .atmosphere-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:520px 360px 360px;
  }
  .atmosphere-grid .atmo-a{grid-row:1 / span 2}
  .atmosphere-grid .atmo-d{grid-column:1 / span 2}
  .food-photo-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:650px 420px;
  }
  .food-photo-card.food-main{
    grid-column:1 / span 2;
    grid-row:auto;
  }
  .food-photo-card.food-wide{display:none}
}

@media(max-width:760px){
  .atmosphere-hero{
    min-height:620px;
  }
  .atmosphere-hero>img{
    object-position:58% center;
  }
  .atmosphere-shade{
    background:
      linear-gradient(180deg,rgba(7,22,77,.04) 12%,rgba(7,22,77,.32) 50%,rgba(7,22,77,.88) 100%);
  }
  .atmosphere-copy{
    left:var(--safe-gutter-mobile);
    right:var(--safe-gutter-mobile);
    bottom:44px;
    width:auto;
  }
  .atmosphere-copy h2{
    font-size:clamp(52px,14.7vw,72px);
    line-height:.80;
  }
  .atmosphere-copy>p:last-child{
    font-size:16px;
    max-width:95%;
  }

  .atmosphere-grid{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:12px;
    padding:12px var(--safe-gutter-mobile) 18px;
    scrollbar-width:none;
  }
  .atmosphere-grid::-webkit-scrollbar{display:none}
  .atmosphere-grid figure,
  .atmosphere-grid .atmo-a,
  .atmosphere-grid .atmo-d{
    flex:0 0 calc(100vw - (2 * var(--safe-gutter-mobile)) - 22px);
    height:520px;
    grid-row:auto;
    grid-column:auto;
    scroll-snap-align:start;
  }
  .atmosphere-grid .atmo-b,
  .atmosphere-grid .atmo-d{
    height:430px;
  }

  .food-photo-grid{
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:12px;
    margin-top:48px;
    padding:0 0 14px;
    scrollbar-width:none;
  }
  .food-photo-grid::-webkit-scrollbar{display:none}
  .food-photo-card,
  .food-photo-card.food-main{
    flex:0 0 calc(100vw - (2 * var(--safe-gutter-mobile)));
    height:600px;
    min-height:600px;
    grid-column:auto;
    grid-row:auto;
    scroll-snap-align:start;
  }
  .food-photo-card:nth-child(2){height:530px;min-height:530px}
  .food-photo-card:nth-child(3){height:560px;min-height:560px}
  .food-photo-copy h3{
    font-size:clamp(45px,13vw,62px);
  }

  .story-section.story-with-photo{
    min-height:780px;
    background:
      linear-gradient(180deg,rgba(247,243,235,.12) 0%,rgba(247,243,235,.48) 32%,rgba(247,243,235,.96) 62%,rgba(247,243,235,.99) 100%),
      url("assets/media/95e6cbabed85.webp") 60% top / auto 58% no-repeat,
      var(--paper);
    padding-top:330px;
  }
  .story-section.story-with-photo .story-copy{
    width:100%;
    padding:26px 24px 30px;
    box-shadow:6px 6px 0 var(--purple);
  }
  .story-section.story-with-photo .story-word{
    top:260px;
  }
}


/* v19 — fluidity, motion, carousels */
html{scroll-behavior:smooth}
body{overflow-x:clip}

/* tiny top progress line */
.scroll-progress{
  position:fixed;
  z-index:1001;
  left:0;
  top:var(--header);
  width:100%;
  height:4px;
  pointer-events:none;
  background:rgba(7,22,77,.08);
}
.scroll-progress span{
  display:block;
  width:100%;
  height:100%;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(90deg,var(--yellow) 0 25%,var(--green) 25% 50%,var(--purple) 50% 75%,var(--coral) 75% 100%);
  will-change:transform;
}

/* header becomes tighter while scrolling */
.site-header{
  transition:height .28s ease,background .28s ease,box-shadow .28s ease,padding .28s ease;
}
.site-header.scrolled{
  background:rgba(247,243,235,.94);
  backdrop-filter:blur(14px);
  box-shadow:0 8px 28px rgba(7,22,77,.10);
}
.site-header .brand{
  transition:transform .28s ease;
  transform-origin:left center;
}
.site-header.scrolled .brand{transform:scale(.92)}

/* generic reveal */
[data-reveal],
.reveal-card{
  opacity:0;
  transform:translateY(34px);
  transition:
    opacity .75s cubic-bezier(.2,.75,.25,1),
    transform .75s cubic-bezier(.2,.75,.25,1);
  will-change:opacity,transform;
}
[data-reveal="clip"]{
  clip-path:inset(0 0 14% 0);
  transform:translateY(22px);
  transition:
    opacity .8s ease,
    transform .8s cubic-bezier(.2,.75,.25,1),
    clip-path .9s cubic-bezier(.2,.75,.25,1);
}
[data-reveal].is-visible,
.reveal-card.is-visible{
  opacity:1;
  transform:none;
  clip-path:inset(0);
}
.reveal-card:nth-child(2){transition-delay:.05s}
.reveal-card:nth-child(3){transition-delay:.10s}
.reveal-card:nth-child(4){transition-delay:.15s}

/* hero image parallax */
.atmosphere-hero>img[data-parallax]{
  height:112%;
  top:-6%;
  transform:translate3d(0,var(--parallax-y,0px),0) scale(1.02);
  will-change:transform;
}

/* MOMENTS */
.moments-section{
  position:relative;
  overflow:hidden;
  background:var(--paper);
  padding:clamp(110px,10vw,170px) 0 clamp(90px,8vw,140px);
  border-bottom:2px solid var(--ink);
}
.moments-section::before{
  content:"";
  position:absolute;
  width:38vw;
  height:19vw;
  min-width:320px;
  min-height:150px;
  right:-9vw;
  top:-7vw;
  background:var(--purple);
  transform:rotate(8deg);
  opacity:.92;
}
.moments-head{
  position:relative;
  z-index:2;
  width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));
  margin:0 auto clamp(50px,5.5vw,84px);
  display:grid;
  grid-template-columns:1.15fr .65fr;
  gap:clamp(38px,6vw,100px);
  align-items:end;
}
.moments-head h2{
  margin:8px 0 0;
  font-size:clamp(64px,8.5vw,146px);
  line-height:.77;
  letter-spacing:-.07em;
}
.moments-head h2 span{
  color:transparent;
  -webkit-text-stroke:2px var(--ink);
}
.moments-head>p{
  margin:0;
  font-size:clamp(17px,1.5vw,22px);
  line-height:1.34;
  font-weight:750;
}
.moments-carousel{
  position:relative;
  padding:0;
}
.moments-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 var(--safe-gutter) 12px;
  cursor:grab;
  overscroll-behavior-inline:contain;
}
.moments-track::-webkit-scrollbar{display:none}
.moments-track.dragging{cursor:grabbing;scroll-snap-type:none}
.moment-card{
  position:relative;
  flex:0 0 min(58vw,760px);
  height:clamp(450px,48vw,720px);
  margin:0;
  overflow:hidden;
  scroll-snap-align:center;
  border:2px solid var(--ink);
  background:var(--navy);
  box-shadow:10px 10px 0 var(--yellow);
}
.moment-card.tall{flex-basis:min(38vw,510px)}
.moment-card.wide{flex-basis:min(68vw,920px)}
.moment-card img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.75,.25,1),filter .4s ease;
}
.moment-card:hover img{transform:scale(1.035)}
.moment-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(7,22,77,.76));
}
.moment-card figcaption{
  position:absolute;
  z-index:2;
  left:22px;
  bottom:20px;
  display:flex;
  align-items:center;
  gap:10px;
  color:white;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.10em;
}
.moment-card figcaption b{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 7px;
  background:var(--coral);
  color:var(--ink);
  border:2px solid white;
}
.moments-arrow{
  top:50%;
  z-index:5;
}
.moments-arrow.prev{left:22px}
.moments-arrow.next{right:22px}

/* progress under photo carousels */
.carousel-meter{
  width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));
  height:5px;
  margin:34px auto 0;
  background:rgba(7,22,77,.13);
  overflow:hidden;
}
.carousel-meter span{
  display:block;
  width:100%;
  height:100%;
  transform:scaleX(.12);
  transform-origin:left;
  background:var(--ink);
  transition:transform .15s linear;
}

/* FOOD CAROUSEL */
.food-carousel{
  position:relative;
  margin-top:clamp(48px,6vw,90px);
}
.food-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 var(--safe-gutter) 16px;
  cursor:grab;
}
.food-track::-webkit-scrollbar{display:none}
.food-track.dragging{cursor:grabbing;scroll-snap-type:none}
.food-slide{
  position:relative;
  flex:0 0 min(62vw,820px);
  height:clamp(520px,53vw,760px);
  overflow:hidden;
  border:2px solid var(--ink);
  scroll-snap-align:center;
  background:var(--navy);
  box-shadow:10px 10px 0 rgba(7,22,77,.96);
}
.food-slide:nth-child(even){box-shadow:10px 10px 0 var(--yellow)}
.food-slide>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.2,.75,.25,1);
}
.food-slide:hover>img{transform:scale(1.035)}
.food-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,22,77,0) 30%,rgba(7,22,77,.92) 100%);
}
.food-slide-copy{
  position:absolute;
  z-index:2;
  left:clamp(24px,3.4vw,48px);
  right:clamp(24px,3.4vw,48px);
  bottom:clamp(26px,3.5vw,48px);
  color:white;
}
.food-slide-copy>span{
  display:inline-grid;
  place-items:center;
  min-width:38px;
  height:34px;
  padding:0 8px;
  background:var(--yellow);
  color:var(--ink);
  border:2px solid var(--ink);
  font-size:10px;
  font-weight:1000;
}
.food-slide-copy h3{
  margin:14px 0 12px;
  font-size:clamp(48px,6.7vw,102px);
  line-height:.80;
  letter-spacing:-.065em;
}
.food-slide-copy p{
  margin:0;
  max-width:580px;
  font-size:clamp(15px,1.4vw,20px);
  line-height:1.32;
  font-weight:750;
}
.food-arrow{top:50%;z-index:5}
.food-arrow.prev{left:22px}
.food-arrow.next{right:22px}
.food-meter span{background:var(--navy)}

/* improve existing cards/controls */
.artist-card,
.day-card,
.palio-feature,
.info-grid article,
.status-grid article{
  transition:transform .3s cubic-bezier(.2,.75,.25,1),box-shadow .3s ease;
}
@media(hover:hover){
  .artist-card:hover,.day-card:hover,.info-grid article:hover,.status-grid article:hover{
    transform:translateY(-6px);
  }
  .palio-feature:hover{transform:translateY(-4px)}
}
.carousel-arrow{
  transition:transform .2s ease,background .2s ease,color .2s ease;
}
@media(hover:hover){
  .carousel-arrow:hover{
    transform:translateY(-50%) scale(1.08);
    background:var(--yellow);
    color:var(--ink);
  }
}

/* subtle section image scale on reveal */
.atmosphere-grid figure img,
.palio-gallery img{
  transition:transform .55s cubic-bezier(.2,.75,.25,1);
}
@media(hover:hover){
  .atmosphere-grid figure:hover img,
  .palio-gallery figure:hover img{transform:scale(1.035)}
}

@media(max-width:980px){
  .moments-head{grid-template-columns:1fr}
  .moment-card{flex-basis:72vw}
  .moment-card.tall{flex-basis:52vw}
  .moment-card.wide{flex-basis:82vw}
  .food-slide{flex-basis:76vw}
}

@media(max-width:760px){
  .scroll-progress{top:var(--header);height:3px}

  [data-reveal],
  .reveal-card{
    transform:translateY(22px);
    transition-duration:.62s;
  }

  .atmosphere-hero>img[data-parallax]{
    height:100%;
    top:0;
    transform:none !important;
  }

  .moments-section{
    padding-top:92px;
    padding-bottom:84px;
  }
  .moments-section::before{
    min-width:250px;
    min-height:120px;
    right:-28vw;
    top:-3vw;
  }
  .moments-head{
    width:auto;
    margin-left:var(--safe-gutter-mobile);
    margin-right:var(--safe-gutter-mobile);
    gap:24px;
    margin-bottom:42px;
  }
  .moments-head h2{
    font-size:clamp(52px,14.5vw,72px);
    line-height:.80;
  }
  .moments-head>p{font-size:16px}
  .moments-track{
    gap:12px;
    padding-left:var(--safe-gutter-mobile);
    padding-right:var(--safe-gutter-mobile);
  }
  .moment-card,
  .moment-card.tall,
  .moment-card.wide{
    flex-basis:calc(100vw - (2 * var(--safe-gutter-mobile)) - 18px);
    height:520px;
    box-shadow:6px 6px 0 var(--yellow);
  }
  .moment-card.wide{height:430px}
  .moments-arrow{
    top:auto;
    bottom:-4px;
    transform:none;
  }
  .moments-arrow.prev{left:var(--safe-gutter-mobile)}
  .moments-arrow.next{right:var(--safe-gutter-mobile)}
  .carousel-meter{
    width:auto;
    margin:48px var(--safe-gutter-mobile) 0;
  }

  .food-carousel{margin-top:46px}
  .food-track{
    gap:12px;
    padding-left:0;
    padding-right:0;
  }
  .food-slide{
    flex-basis:calc(100vw - (2 * var(--safe-gutter-mobile)));
    height:580px;
    box-shadow:6px 6px 0 var(--navy);
  }
  .food-slide:nth-child(even){box-shadow:6px 6px 0 var(--yellow)}
  .food-slide-copy h3{
    font-size:clamp(48px,13vw,66px);
  }
  .food-arrow{
    top:auto;
    bottom:-4px;
    transform:none;
  }
  .food-arrow.prev{left:0}
  .food-arrow.next{right:0}
  .food-meter{
    margin-left:0;
    margin-right:0;
  }

  @media(hover:hover){
    .carousel-arrow:hover{transform:scale(1.06)}
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-reveal],.reveal-card{opacity:1;transform:none;clip-path:none}
}


/* v20 — fail-safe animation system: NEVER blank if JS is blocked */
[data-reveal],
.reveal-card{
  opacity:1 !important;
  transform:none !important;
  clip-path:none !important;
}

/* JS adds .motion-ready only after the page is alive */
html.motion-ready [data-reveal]:not(.is-visible),
html.motion-ready .reveal-card:not(.is-visible){
  opacity:0 !important;
  transform:translateY(28px) !important;
}

html.motion-ready [data-reveal="clip"]:not(.is-visible){
  clip-path:inset(0 0 10% 0) !important;
  transform:translateY(18px) !important;
}

html.motion-ready [data-reveal].is-visible,
html.motion-ready .reveal-card.is-visible{
  opacity:1 !important;
  transform:none !important;
  clip-path:inset(0) !important;
}

@media(max-width:760px){
  html.motion-ready [data-reveal]:not(.is-visible),
  html.motion-ready .reveal-card:not(.is-visible){
    transform:translateY(16px) !important;
  }
}


/* =========================================================
   v22 — MOBILE REDESIGN + MOTION THAT IS ACTUALLY VISIBLE
   ========================================================= */

/* COMMUNITY: full-photo editorial section */
.community-v22{
  position:relative;
  min-height:clamp(720px,72vw,980px);
  overflow:hidden;
  color:white;
  background:var(--navy);
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
}
.community-v22-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.02);
  animation:v22CommunityZoom 14s ease-in-out infinite alternate;
}
.community-v22-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,22,77,.94) 0%,rgba(7,22,77,.78) 45%,rgba(7,22,77,.18) 82%),
    linear-gradient(180deg,rgba(7,22,77,.04),rgba(7,22,77,.52));
}
.community-v22-content{
  position:relative;
  z-index:2;
  width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));
  min-height:inherit;
  margin:0 auto;
  padding:clamp(96px,10vw,160px) 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.community-v22-content h2{
  margin:10px 0 28px;
  font-size:clamp(70px,8.7vw,148px);
  line-height:.77;
  letter-spacing:-.072em;
}
.community-v22-content h2 span{color:var(--purple)}
.community-v22-content>p:not(.eyebrow){
  margin:0;
  max-width:690px;
  font-size:clamp(18px,1.7vw,24px);
  line-height:1.34;
  font-weight:760;
}
.community-v22-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:30px;
}
.community-v22-tags span{
  border:2px solid white;
  background:rgba(7,22,77,.54);
  padding:8px 10px;
  font-size:9px;
  letter-spacing:.11em;
  font-weight:1000;
}
.community-v22-rays{
  position:absolute;
  z-index:1;
  width:min(430px,34vw);
  aspect-ratio:1;
  right:-4vw;
  top:11%;
  border-radius:50%;
  opacity:.58;
  background:repeating-conic-gradient(from 0deg,transparent 0 12deg,var(--yellow) 12deg 13deg,transparent 13deg 25deg);
  -webkit-mask:radial-gradient(circle,transparent 0 22%,#000 23% 67%,transparent 68%);
          mask:radial-gradient(circle,transparent 0 22%,#000 23% 67%,transparent 68%);
  animation:v22Rotate 30s linear infinite;
}

@keyframes v22CommunityZoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}
@keyframes v22Rotate{to{transform:rotate(360deg)}}

/* KINETIC PHOTO BELT — CSS only, so preview cannot "lose" the animation */
.kinetic-belt{
  overflow:hidden;
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  background:var(--yellow);
}
.kinetic-belt-title{
  display:flex;
  gap:15px;
  justify-content:center;
  align-items:center;
  padding:13px 24px;
  font-size:10px;
  letter-spacing:.12em;
  font-weight:1000;
  white-space:nowrap;
  color:var(--ink);
}
.kinetic-belt-title b{
  font-size:18px;
  animation:v22Star 1.5s ease-in-out infinite alternate;
}
.kinetic-belt-window{
  overflow:hidden;
  background:var(--navy);
  padding:11px 0;
}
.kinetic-belt-track{
  display:flex;
  gap:11px;
  width:max-content;
  animation:v22Belt 34s linear infinite;
  will-change:transform;
}
.kinetic-belt-track figure{
  flex:0 0 auto;
  width:clamp(210px,22vw,370px);
  aspect-ratio:4/3;
  margin:0;
  overflow:hidden;
  border:2px solid white;
}
.kinetic-belt-track figure:nth-child(3n+2){aspect-ratio:3/4}
.kinetic-belt-track img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
@keyframes v22Belt{to{transform:translateX(calc(-50% - 5.5px))}}
@keyframes v22Star{from{transform:scale(.86) rotate(-10deg)}to{transform:scale(1.18) rotate(18deg)}}

/* Fireworks get visible motion too */
.firework{animation:v22Rotate 26s linear infinite}
.burst-two{animation-duration:33s;animation-direction:reverse}
.burst-three{animation-duration:39s}

/* MOBILE */
@media(max-width:760px){

  /* 1. ATMOSPHERE: no more broken horizontal crop.
     Make it a strong 2-column editorial mosaic. */
  .atmosphere-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    grid-template-rows:250px 250px !important;
    gap:8px !important;
    overflow:visible !important;
    padding:8px !important;
    scroll-snap-type:none !important;
  }
  .atmosphere-grid figure,
  .atmosphere-grid .atmo-a,
  .atmosphere-grid .atmo-b,
  .atmosphere-grid .atmo-c,
  .atmosphere-grid .atmo-d{
    flex:none !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    grid-column:auto !important;
    grid-row:auto !important;
    scroll-snap-align:none !important;
  }
  .atmosphere-grid .atmo-a{grid-row:1 / span 2 !important}
  .atmosphere-grid .atmo-d{grid-column:2 !important}
  .atmosphere-grid figcaption{
    left:9px !important;
    bottom:9px !important;
    padding:5px 6px !important;
    max-width:calc(100% - 18px);
    font-size:7px !important;
    letter-spacing:.08em !important;
  }

  /* 2. MOMENTS: one complete card. No ugly fragments on the sides. */
  .moments-carousel{
    overflow:hidden;
    padding-bottom:0 !important;
  }
  .moments-track{
    gap:26px !important;
    padding:0 26px 12px !important;
    scroll-padding-inline:26px;
  }
  .moment-card,
  .moment-card.tall,
  .moment-card.wide{
    flex:0 0 calc(100vw - 52px) !important;
    width:calc(100vw - 52px) !important;
    height:500px !important;
    max-width:none !important;
    box-shadow:none !important;
    scroll-snap-align:start !important;
  }
  .moment-card.wide{height:410px !important}
  .moments-arrow{
    top:50% !important;
    bottom:auto !important;
    transform:translateY(-50%) !important;
    width:43px !important;
    height:43px !important;
    z-index:8 !important;
    background:var(--yellow) !important;
    box-shadow:4px 4px 0 var(--ink) !important;
  }
  .moments-arrow.prev{left:33px !important}
  .moments-arrow.next{right:33px !important}
  .moments-section>.carousel-meter{
    width:calc(100% - 52px) !important;
    margin:20px 26px 0 !important;
  }

  /* 3. FOOD: same intentional carousel logic */
  .food-track{
    gap:26px !important;
    padding:0 26px 14px !important;
    scroll-padding-inline:26px;
  }
  .food-slide{
    flex:0 0 calc(100vw - 52px) !important;
    width:calc(100vw - 52px) !important;
    height:545px !important;
    box-shadow:none !important;
    scroll-snap-align:start !important;
  }
  .food-arrow{
    top:50% !important;
    bottom:auto !important;
    transform:translateY(-50%) !important;
    width:43px !important;
    height:43px !important;
    z-index:8 !important;
    background:var(--yellow) !important;
    box-shadow:4px 4px 0 var(--ink) !important;
  }
  .food-arrow.prev{left:33px !important}
  .food-arrow.next{right:33px !important}
  .food-meter{
    width:calc(100% - 52px) !important;
    margin:20px 26px 0 !important;
  }

  /* 4. COMMUNITY: photo first, clean text bottom. */
  .community-v22{
    min-height:760px;
  }
  .community-v22-bg{
    object-position:58% center;
  }
  .community-v22-overlay{
    background:linear-gradient(
      180deg,
      rgba(7,22,77,.06) 0%,
      rgba(7,22,77,.18) 30%,
      rgba(7,22,77,.87) 58%,
      rgba(7,22,77,1) 100%
    );
  }
  .community-v22-content{
    width:auto;
    min-height:760px;
    margin:0;
    padding:300px 28px 62px;
    justify-content:flex-end;
  }
  .community-v22-content h2{
    width:100%;
    max-width:100%;
    margin:8px 0 20px;
    font-size:clamp(48px,12.8vw,64px);
    line-height:.82;
    letter-spacing:-.058em;
  }
  .community-v22-content h2 span{
    display:block;
    white-space:nowrap;
    font-size:.91em;
  }
  .community-v22-content>p:not(.eyebrow){
    max-width:100%;
    font-size:16px;
    line-height:1.34;
  }
  .community-v22-tags{
    margin-top:22px;
    gap:6px;
  }
  .community-v22-tags span{
    padding:6px 7px;
    font-size:7px;
  }
  .community-v22-rays{
    width:205px;
    right:-88px;
    top:330px;
    opacity:.35;
  }

  /* more obvious motion on the belt */
  .kinetic-belt-title{
    justify-content:flex-start;
    overflow:hidden;
    padding-left:18px;
  }
  .kinetic-belt-track{
    animation-duration:23s;
  }
  .kinetic-belt-track figure{
    width:220px;
  }
}

/* Motion remains accessible */
@media(prefers-reduced-motion:reduce){
  .community-v22-bg,
  .community-v22-rays,
  .kinetic-belt-track,
  .kinetic-belt-title b,
  .firework{
    animation:none !important;
  }
}


/* =========================================================
   v23 — equal carousel cards + better community crop
   ========================================================= */

/* Community picture wrapper */
.community-v22-picture{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.community-v22-picture .community-v22-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

/* MOMENTS: all cards intentionally identical.
   The image adapts; the layout never changes length. */
.moment-card,
.moment-card.tall,
.moment-card.wide{
  flex-basis:min(58vw,760px) !important;
  height:clamp(520px,48vw,700px) !important;
}

/* Use object positioning to preserve the important part of each photo */
.moment-card img{object-position:center center}
.moment-card:nth-child(1) img{object-position:center 48%}
.moment-card:nth-child(2) img{object-position:center 42%}
.moment-card:nth-child(3) img{object-position:center 55%}
.moment-card:nth-child(4) img{object-position:center 54%}
.moment-card:nth-child(5) img{object-position:center 52%}
.moment-card:nth-child(6) img{object-position:center 45%}
.moment-card:nth-child(7) img{object-position:center 48%}

/* FOOD: same rule — no visually shorter/longer cards */
.food-slide{
  flex-basis:min(62vw,820px) !important;
  height:clamp(560px,53vw,740px) !important;
}

/* Atmosphere mosaic also uses an even baseline */
.atmosphere-grid{
  grid-auto-rows:minmax(0,1fr);
}

@media(max-width:980px) and (min-width:761px){
  .moment-card,
  .moment-card.tall,
  .moment-card.wide{
    flex-basis:72vw !important;
    height:620px !important;
  }
  .food-slide{
    flex-basis:76vw !important;
    height:620px !important;
  }
}

@media(max-width:760px){
  /* One card = one exact geometry. No wide/tall exceptions. */
  .moment-card,
  .moment-card.tall,
  .moment-card.wide{
    flex:0 0 calc(100vw - 52px) !important;
    width:calc(100vw - 52px) !important;
    height:500px !important;
    min-height:500px !important;
    max-height:500px !important;
  }

  .food-slide{
    flex:0 0 calc(100vw - 52px) !important;
    width:calc(100vw - 52px) !important;
    height:540px !important;
    min-height:540px !important;
    max-height:540px !important;
  }

  /* Make the community photo clearly about people, not string lights */
  .community-v22-picture .community-v22-bg{
    object-fit:cover;
    object-position:center 66%;
    animation:v23CommunityMobile 12s ease-in-out infinite alternate;
  }

  .community-v22{
    min-height:780px;
  }

  .community-v22-content{
    min-height:780px;
    padding-top:330px;
  }

  .community-v22-overlay{
    background:
      linear-gradient(
        180deg,
        rgba(7,22,77,.02) 0%,
        rgba(7,22,77,.10) 28%,
        rgba(7,22,77,.52) 52%,
        rgba(7,22,77,.93) 68%,
        rgba(7,22,77,1) 100%
      );
  }

  /* keep the lower part of people/table imagery visible */
  .community-v22-content{
    justify-content:flex-end;
  }

  /* All atmosphere mosaic cells same physical height */
  .atmosphere-grid{
    grid-template-columns:1fr 1fr !important;
    grid-template-rows:280px 280px !important;
  }
  .atmosphere-grid .atmo-a,
  .atmosphere-grid .atmo-b,
  .atmosphere-grid .atmo-c,
  .atmosphere-grid .atmo-d{
    min-height:280px !important;
    height:280px !important;
    grid-row:auto !important;
    grid-column:auto !important;
  }
}

@keyframes v23CommunityMobile{
  from{transform:scale(1.02) translateY(0)}
  to{transform:scale(1.07) translateY(-8px)}
}


/* =========================================================
   v24 — final mobile food typography fix
   ========================================================= */
@media(max-width:760px){

  .food-slide{
    overflow:hidden !important;
  }

  .food-slide-copy{
    left:20px !important;
    right:20px !important;
    bottom:24px !important;
    width:auto !important;
    max-width:calc(100% - 40px) !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  .food-slide-copy>span{
    margin-bottom:2px;
  }

  .food-slide-copy h3{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:12px 0 10px !important;
    font-size:clamp(30px,8.5vw,40px) !important;
    line-height:.90 !important;
    letter-spacing:-.045em !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    text-wrap:balance;
  }

  /* The two longest multi-word titles get a touch more room */
  .food-slide:nth-child(5) .food-slide-copy h3,
  .food-slide:nth-child(7) .food-slide-copy h3{
    font-size:clamp(28px,7.8vw,37px) !important;
    line-height:.92 !important;
  }

  .food-slide-copy p{
    display:block;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    font-size:clamp(14px,3.9vw,16px) !important;
    line-height:1.28 !important;
    font-weight:750 !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
    text-wrap:pretty;
  }

  /* keep enough vertical room for 2-line titles + copy */
  .food-slide{
    height:560px !important;
    min-height:560px !important;
    max-height:560px !important;
  }

  .food-slide::after{
    background:linear-gradient(
      180deg,
      rgba(7,22,77,0) 24%,
      rgba(7,22,77,.24) 48%,
      rgba(7,22,77,.96) 100%
    ) !important;
  }
}

@media(max-width:390px){
  .food-slide-copy{
    left:18px !important;
    right:18px !important;
    max-width:calc(100% - 36px) !important;
  }

  .food-slide-copy h3{
    font-size:clamp(29px,8.25vw,34px) !important;
  }

  .food-slide:nth-child(5) .food-slide-copy h3,
  .food-slide:nth-child(7) .food-slide-copy h3{
    font-size:clamp(27px,7.55vw,31px) !important;
  }

  .food-slide-copy p{
    font-size:14px !important;
    line-height:1.30 !important;
  }
}


/* v25 — VINCISGRASSI same visual size as the other food titles */
@media(max-width:760px){
  .food-slide:nth-child(1) .food-slide-copy h3{
    font-size:clamp(34px,9.4vw,42px) !important;
    line-height:.90 !important;
    letter-spacing:-.075em !important;
    white-space:nowrap !important;
  }
}

@media(max-width:390px){
  .food-slide:nth-child(1) .food-slide-copy h3{
    font-size:clamp(33px,9vw,38px) !important;
    letter-spacing:-.08em !important;
  }
}


/* v26 — mobile alignment fix for "IL GUSTO DELLA MAESTÀ"
   Make the heading block follow the same visual line/column of the carousel/image rhythm above. */
@media(max-width:760px){
  .food-title{
    width:calc(100% - 52px) !important;
    max-width:calc(100% - 52px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
  }

  .food-title .eyebrow{
    margin-bottom:18px !important;
  }

  .food-title h2{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    font-size:clamp(54px,14.2vw,72px) !important;
    line-height:.82 !important;
    letter-spacing:-.062em !important;
    text-wrap:balance;
  }

  .food-title h2 em{
    -webkit-text-stroke:1.8px var(--ink) !important;
  }
}

@media(max-width:390px){
  .food-title{
    width:calc(100% - 44px) !important;
    max-width:calc(100% - 44px) !important;
  }

  .food-title h2{
    font-size:clamp(50px,13.4vw,62px) !important;
    line-height:.83 !important;
    letter-spacing:-.06em !important;
  }

  .food-title h2 em{
    -webkit-text-stroke:1.6px var(--ink) !important;
  }
}


/* v27 — exact mobile width alignment:
   the "IL GUSTO DELLA MAESTÀ" block must use the same inner width
   as the La Tradizione card / mobile carousel cards. */
@media(max-width:760px){
  .food-title{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .food-title h2{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    text-wrap:balance;
  }
}

@media(max-width:390px){
  .food-title{
    width:100% !important;
    max-width:none !important;
  }
}



/* v29 — polish: opening transition, no black sidebars, aligned fireworks, extended palio squads */
.opening-video {
  position: relative;
  background: var(--navy) !important;
  overflow: visible;
}
.opening-video-sticky {
  width: 100vw;
  max-width: 100vw;
}
.opening-video-media {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center;
  background: var(--navy) !important;
}
.opening-video::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: clamp(70px, 11vw, 150px);
  pointer-events: none;
  background: linear-gradient(to bottom,
    rgba(2,7,39,0) 0%,
    rgba(2,7,39,0.55) 32%,
    rgba(244,239,231,0.86) 76%,
    rgba(244,239,231,1) 100%);
  z-index: 4;
}
.hero#edizione-2027 {
  margin-top: -32px;
  padding-top: clamp(70px, 8vw, 110px);
  position: relative;
  z-index: 5;
}

.fireworks-section {
  padding-top: clamp(90px, 11vw, 150px);
  padding-bottom: clamp(90px, 10vw, 140px);
}
.fireworks-inner {
  display: grid;
  grid-template-columns: minmax(180px, .95fr) minmax(0, 1.55fr) minmax(210px, .82fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: end;
}
.fireworks-kicker {
  align-self: start;
  justify-self: start;
}
.fireworks-copy {
  align-self: end;
}
.fireworks-copy h2 {
  margin: 0;
  line-height: .85;
}
.fireworks-copy .fw-line {
  display: block;
}
.fireworks-time {
  align-self: end;
  justify-self: stretch;
  border-left: 2px solid rgba(255,255,255,.55);
  padding-left: clamp(22px, 2.2vw, 30px);
  margin-left: 0;
}
.fireworks-time strong {
  line-height: .9;
  display: block;
}
.fireworks-time p {
  max-width: 22ch;
  margin-top: 16px;
}

.palio-heading > div:last-child p {
  margin-bottom: 16px;
}
.palio-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.palio-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 14px;
  border: 2px solid white;
  color: white;
  text-decoration: none;
  font-weight: 900;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: transform .22s ease, background-color .22s ease, color .22s ease;
}
.palio-link:hover {
  transform: translateY(-2px);
  background: white;
  color: var(--navy);
}
.palio-squads {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.palio-squad-card {
  background: rgba(255,255,255,.06);
  border: 2px solid rgba(255,255,255,.9);
  overflow: hidden;
  box-shadow: 10px 10px 0 rgba(244,196,53,.9);
  transition: transform .25s ease, box-shadow .25s ease;
}
.palio-squad-card:hover {
  transform: translateY(-4px);
  box-shadow: 14px 14px 0 rgba(244,196,53,.9);
}
.palio-squad-card figure {
  margin: 0;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-bottom: 2px solid rgba(255,255,255,.92);
}
.palio-squad-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.palio-squad-copy {
  padding: 18px 18px 20px;
}
.palio-squad-copy span {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: .13em;
  color: var(--yellow);
}
.palio-squad-copy h3 {
  margin: 0 0 10px;
  font-size: clamp(26px, 3vw, 34px);
  line-height: .88;
}
.palio-squad-copy p {
  margin: 0;
  font-size: 15px;
  font-weight: 760;
  line-height: 1.3;
  color: rgba(255,255,255,.9);
}
@media (max-width: 980px) {
  .fireworks-inner {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .fireworks-time {
    border-left: 0;
    padding-left: 0;
    border-top: 2px solid rgba(255,255,255,.55);
    padding-top: 22px;
    max-width: 520px;
  }
  .palio-squads {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .hero#edizione-2027 {
    margin-top: -22px;
    padding-top: 60px;
  }
  .opening-video::after {
    height: 86px;
  }
  .fireworks-section {
    padding-top: 86px;
  }
  .palio-squads {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .palio-squad-card {
    box-shadow: 7px 7px 0 rgba(244,196,53,.9);
  }
  .palio-link {
    width: 100%;
  }
}



/* v30 — Facebook as global social + visible Palio squad cards */
.palio-squad-section{
  width:min(100%,var(--content-max));
  margin:clamp(74px,8vw,120px) auto 0;
  padding-top:clamp(48px,5vw,74px);
  border-top:2px solid rgba(255,255,255,.46);
}
.palio-squad-heading{
  display:grid;
  grid-template-columns:1.15fr .8fr;
  gap:clamp(36px,6vw,90px);
  align-items:end;
  margin-bottom:clamp(38px,5vw,68px);
}
.palio-squad-heading h3{
  grid-column:1;
  margin:6px 0 0;
  color:white;
  font-size:clamp(58px,7vw,112px);
  line-height:.78;
  letter-spacing:-.065em;
}
.palio-squad-heading h3 span{color:var(--yellow)}
.palio-squad-heading>p:last-child{
  grid-column:2;
  grid-row:1 / span 2;
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:clamp(16px,1.4vw,21px);
  line-height:1.34;
  font-weight:730;
}
.palio-squads{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.palio-squad-card{
  min-width:0;
  overflow:hidden;
  background:#f7f3eb;
  color:var(--ink);
  border:2px solid white;
  box-shadow:9px 9px 0 var(--yellow);
  transform:translateZ(0);
  transition:transform .28s ease,box-shadow .28s ease;
}
.palio-squad-card:hover{
  transform:translateY(-5px);
  box-shadow:13px 13px 0 var(--yellow);
}
.palio-squad-card figure{
  margin:0;
  aspect-ratio:3/4;
  overflow:hidden;
  border-bottom:2px solid var(--ink);
  background:#111;
}
.palio-squad-card figure img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center var(--squad-pos,50%);
  transform:scale(var(--squad-scale,1));
  transform-origin:center center;
}
.squad-photo-banner{--squad-pos:42%;--squad-scale:1.12}
.squad-photo-horns{--squad-pos:47%;--squad-scale:1.03}
.squad-photo-pink{--squad-pos:46%;--squad-scale:1.04}
.palio-squad-copy{
  padding:18px 18px 22px;
}
.palio-squad-copy span{
  display:inline-block;
  margin-bottom:12px;
  padding:6px 8px;
  background:var(--coral);
  border:2px solid var(--ink);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.11em;
}
.palio-squad-copy h4{
  margin:0;
  font-size:clamp(20px,2vw,28px);
  line-height:.95;
  letter-spacing:-.035em;
}
@media(max-width:980px){
  .palio-squads{grid-template-columns:1fr 1fr}
  .palio-squad-heading{grid-template-columns:1fr}
  .palio-squad-heading>p:last-child{grid-column:1;grid-row:auto;max-width:680px}
}
@media(max-width:760px){
  .site-nav .nav-pill{width:100%;text-align:center}
  .palio-squad-section{
    margin-top:70px;
    padding-top:42px;
  }
  .palio-squad-heading{
    display:block;
    margin-bottom:30px;
  }
  .palio-squad-heading h3{
    font-size:clamp(48px,13vw,66px);
    margin:8px 0 18px;
  }
  .palio-squad-heading>p:last-child{font-size:16px}
  .palio-squads{
    display:flex;
    overflow-x:auto;
    gap:14px;
    scroll-snap-type:x mandatory;
    padding:0 4px 14px;
    scrollbar-width:none;
  }
  .palio-squads::-webkit-scrollbar{display:none}
  .palio-squad-card{
    flex:0 0 calc(100vw - 64px);
    box-shadow:6px 6px 0 var(--yellow);
    scroll-snap-align:start;
  }
  .palio-squad-card figure{aspect-ratio:3/4}
  .palio-squad-copy{padding:16px 16px 20px}
  .palio-squad-copy h4{font-size:22px}
}


/* v31 — exact mobile food carousel alignment
   Card edge = same vertical line as the M in MAESTÀ. */
@media(max-width:760px){
  .food-carousel{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    overflow:hidden !important;
  }

  .food-track{
    width:100% !important;
    max-width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
    gap:14px !important;
    scroll-padding-inline:0 !important;
  }

  .food-slide{
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    min-width:100% !important;
    height:560px !important;
    min-height:560px !important;
    max-height:560px !important;
    box-shadow:none !important;
    scroll-snap-align:start !important;
  }

  .food-arrow.prev{
    left:12px !important;
  }

  .food-arrow.next{
    right:12px !important;
  }

  .food-meter{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
  }
}



/* v35 — PARCO NORD / LISCIO */
.liscio-section{
  position:relative;
  overflow:hidden;
  background:var(--green);
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  padding:clamp(96px,9vw,150px) 0 clamp(80px,8vw,130px);
}
.liscio-section::before{
  content:"";
  position:absolute;
  width:34vw;
  height:17vw;
  min-width:320px;
  min-height:160px;
  right:-8vw;
  top:-6vw;
  background:var(--purple);
  transform:rotate(9deg);
  border:2px solid var(--ink);
}
.liscio-head{position:relative;z-index:2;padding-top:0;padding-bottom:0}
.liscio-heading{margin-bottom:clamp(42px,5vw,72px)}
.liscio-heading h2 span{color:var(--navy)}
.liscio-heading>p{max-width:560px}
.liscio-ribbon{
  position:relative;
  z-index:2;
  overflow:hidden;
  background:var(--navy);
  color:white;
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  margin-bottom:clamp(34px,4vw,58px);
}
.liscio-ribbon>div{
  display:flex;
  width:max-content;
  animation:liscioRibbon 24s linear infinite;
}
.liscio-ribbon span{
  display:block;
  padding:14px 0;
  white-space:nowrap;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.12em;
}
@keyframes liscioRibbon{to{transform:translateX(-50%)}}
.liscio-carousel{position:relative;z-index:2}
.liscio-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:10px var(--pad) 22px;
  cursor:grab;
}
.liscio-track::-webkit-scrollbar{display:none}
.liscio-card{
  position:relative;
  flex:0 0 calc((100vw - (2 * var(--pad)) - 36px)/3);
  min-width:320px;
  max-width:520px;
  scroll-snap-align:center;
  background:var(--paper);
  border:2px solid var(--ink);
  box-shadow:10px 10px 0 var(--navy);
  overflow:hidden;
}
.liscio-card figure{
  margin:0;
  height:clamp(460px,42vw,650px);
  overflow:hidden;
  border-bottom:2px solid var(--ink);
  background:var(--navy);
}
.liscio-card figure img{
  width:100%;height:100%;object-fit:cover;object-position:center center;
  transition:transform .6s cubic-bezier(.2,.75,.25,1);
}
.liscio-card:hover figure img{transform:scale(1.035)}
.liscio-card.accent-manuel figure img{object-position:center 48%}
.liscio-card.accent-claudia figure img{object-position:center 38%}
.liscio-card.accent-federico figure img{object-position:center 42%}
.liscio-copy{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:end;
  padding:20px 20px 24px;
  min-height:156px;
}
.liscio-date{
  width:64px;
  min-width:64px;
  background:var(--yellow);
  border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  text-align:center;
  padding:7px 4px;
}
.liscio-date b{display:block;font-size:31px;line-height:.9}
.liscio-date span{display:block;margin-top:4px;font-size:9px;font-weight:1000;line-height:1.12;letter-spacing:.07em}
.liscio-copy small{font-size:9px;font-weight:1000;letter-spacing:.12em;color:var(--navy)}
.liscio-copy h3{
  margin:7px 0 0;
  font-size:clamp(30px,3vw,48px);
  line-height:.84;
  letter-spacing:-.055em;
}
.liscio-card:nth-child(2) .liscio-date{background:var(--coral)}
.liscio-card:nth-child(3) .liscio-date{background:var(--purple)}
.liscio-arrow{top:48%;z-index:6}
.liscio-arrow.prev{left:18px}.liscio-arrow.next{right:18px}
.liscio-meter{
  width:min(calc(100% - (2 * var(--pad))),var(--content-max));
  height:5px;
  margin:26px auto 0;
  background:rgba(7,22,77,.18);
  overflow:hidden;
}
.liscio-meter span{
  display:block;width:100%;height:100%;background:var(--navy);
  transform:scaleX(.12);transform-origin:left center;transition:transform .15s linear;
}
@media(max-width:980px){
  .liscio-card{flex-basis:56vw;max-width:none}
}
@media(max-width:760px){
  .liscio-section{padding-top:88px;padding-bottom:84px}
  .liscio-section::before{right:-38vw;top:-3vw;min-width:270px;min-height:130px}
  .liscio-heading{margin-bottom:38px}
  .liscio-heading h2{font-size:clamp(52px,14vw,72px)!important;line-height:.8!important}
  .liscio-heading>p{font-size:16px;line-height:1.34}
  .liscio-ribbon{margin-bottom:30px}
  .liscio-ribbon>div{animation-duration:18s}
  .liscio-track{gap:18px;padding:8px 26px 16px;scroll-padding-inline:26px}
  .liscio-card{
    flex:0 0 calc(100vw - 52px);
    width:calc(100vw - 52px);
    min-width:calc(100vw - 52px);
    max-width:calc(100vw - 52px);
    box-shadow:7px 7px 0 var(--navy);
    scroll-snap-align:start;
  }
  .liscio-card figure{height:520px}
  .liscio-copy{min-height:150px;padding:18px 18px 22px;gap:15px}
  .liscio-copy h3{font-size:clamp(34px,9.5vw,46px);line-height:.86}
  .liscio-date{width:58px;min-width:58px}
  .liscio-date b{font-size:28px}
  .liscio-arrow{width:44px!important;height:44px!important;top:45%!important;background:var(--yellow)!important;box-shadow:4px 4px 0 var(--ink)!important}
  .liscio-arrow.prev{left:34px!important}.liscio-arrow.next{right:34px!important}
  .liscio-meter{width:calc(100% - 52px);margin:24px 26px 0}
}
@media(prefers-reduced-motion:reduce){.liscio-ribbon>div{animation:none!important}}



/* v36 — final architecture + performance pass */
.experience-rail-wrap{
  background:var(--navy);
  color:white;
  padding:clamp(58px,6vw,92px) 0 clamp(72px,7vw,108px);
  border-top:2px solid rgba(255,255,255,.18);
}
.experience-rail-head{
  width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));
  margin:0 auto 34px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:32px;
}
.experience-rail-head>p:last-child{
  margin:0;
  max-width:440px;
  font-size:16px;
  line-height:1.35;
  font-weight:720;
  color:rgba(255,255,255,.82);
}
.experience-carousel{position:relative;overflow:hidden}
.experience-track{
  display:flex;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 var(--safe-gutter) 14px;
  cursor:grab;
  overscroll-behavior-inline:contain;
}
.experience-track::-webkit-scrollbar{display:none}
.experience-card{
  position:relative;
  margin:0;
  flex:0 0 min(46vw,690px);
  height:clamp(410px,42vw,620px);
  scroll-snap-align:center;
  overflow:hidden;
  border:2px solid white;
  background:#111;
}
.experience-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.experience-card:hover img{transform:scale(1.03)}
.experience-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 54%,rgba(7,22,77,.84))}
.experience-card figcaption{position:absolute;z-index:2;left:16px;bottom:16px;display:flex;align-items:center;gap:9px;font-size:10px;font-weight:1000;letter-spacing:.1em}
.experience-card figcaption b{display:grid;place-items:center;width:34px;height:34px;background:var(--coral);color:var(--ink);border:2px solid white}
.experience-arrow{top:50%;z-index:5}.experience-arrow.prev{left:18px}.experience-arrow.next{right:18px}
.experience-meter{width:min(calc(100% - (2 * var(--safe-gutter))),var(--content-max));height:4px;margin:28px auto 0;background:rgba(255,255,255,.2);overflow:hidden}
.experience-meter span{display:block;width:100%;height:100%;transform:scaleX(.08);transform-origin:left;background:var(--yellow);transition:transform .15s linear}

/* Mobile: Palio photo story becomes one compact horizontal rail instead of 4 stacked screens. */
@media(max-width:760px){
  .experience-rail-wrap{padding:52px 0 68px}
  .experience-rail-head{width:auto;margin:0 26px 26px;display:block}
  .experience-rail-head>p:last-child{font-size:15px;margin-top:8px}
  .experience-track{gap:14px;padding:0 26px 12px;scroll-padding-inline:26px}
  .experience-card{flex:0 0 calc(100vw - 52px);width:calc(100vw - 52px);height:470px;scroll-snap-align:start}
  .experience-arrow{width:44px!important;height:44px!important;background:var(--yellow)!important;box-shadow:4px 4px 0 var(--ink)!important}
  .experience-arrow.prev{left:34px}.experience-arrow.next{right:34px}
  .experience-meter{width:calc(100% - 52px);margin:22px 26px 0}

  .palio-gallery.palio-gallery-rail{
    display:flex!important;
    grid-template-columns:none!important;
    grid-template-rows:none!important;
    gap:12px!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory;
    padding:0 2px 14px!important;
    scrollbar-width:none;
    margin-top:46px!important;
  }
  .palio-gallery.palio-gallery-rail::-webkit-scrollbar{display:none}
  .palio-gallery.palio-gallery-rail figure,
  .palio-gallery.palio-gallery-rail .wide,
  .palio-gallery.palio-gallery-rail .tall{
    flex:0 0 calc(100vw - 66px)!important;
    width:calc(100vw - 66px)!important;
    height:390px!important;
    min-height:390px!important;
    max-height:390px!important;
    grid-column:auto!important;
    grid-row:auto!important;
    scroll-snap-align:start;
  }
  .palio-feature figure{min-height:430px!important}
  .palio-copy{min-height:360px!important;padding:30px 24px!important}
  .palio-squad-section{margin-top:56px!important;padding-top:36px!important}
}

/* Small rendering wins without changing appearance. */
img{height:auto}
.artist-card img,.day-card img,.food-slide img,.liscio-card img,.palio-feature img,.palio-gallery img,.palio-squad-card img,.experience-card img,.community-v22-bg{height:100%}
@media(prefers-reduced-motion:reduce){.experience-card img{transition:none}}


/* =========================================================
   v37 — stessa impostazione grafica di Manuel Malanotte
   per tutte le card musicali di Parco Sud.
   ========================================================= */
.artist-card{
  background:var(--paper) !important;
  border:2px solid var(--ink) !important;
  box-shadow:10px 10px 0 var(--yellow) !important;
}
.artist-card.featured{
  border-color:var(--ink) !important;
  box-shadow:10px 10px 0 var(--yellow) !important;
}
.artist-card figure{
  border-bottom:2px solid var(--ink);
}
.artist-copy.artist-copy-manuel{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  align-items:end;
  min-height:156px;
  padding:20px 20px 24px;
}
.artist-date{
  width:64px;
  min-width:64px;
  background:var(--yellow);
  border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  text-align:center;
  padding:7px 4px;
}
.artist-card:nth-child(3n+2) .artist-date{background:var(--coral)}
.artist-card:nth-child(3n) .artist-date{background:var(--purple)}
.artist-card:nth-child(4n) .artist-date{background:var(--green)}
.artist-date b{display:block;font-size:31px;line-height:.9}
.artist-date span{
  display:block;
  margin-top:4px;
  font-size:9px;
  font-weight:1000;
  line-height:1.12;
  letter-spacing:.07em;
}
.artist-name-block{min-width:0}
.artist-name-block small{
  display:block;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.12em;
  color:var(--navy);
}
.artist-copy.artist-copy-manuel h3{
  margin:7px 0 0;
  color:var(--ink);
  font-size:clamp(30px,3vw,48px);
  line-height:.84;
  letter-spacing:-.055em;
}
.artist-copy.artist-copy-manuel.artist-name-long h3{
  font-size:clamp(25px,2.45vw,40px);
  line-height:.86;
  letter-spacing:-.06em;
}
.artist-copy.artist-copy-manuel.artist-name-xlong h3{
  font-size:clamp(24px,2.35vw,38px);
  line-height:.86;
  letter-spacing:-.065em;
}

/* Claudia: stessa card di Manuel, cambia solo la scala del nome. */
.liscio-copy>div:last-child{min-width:0}
.liscio-card.accent-claudia .liscio-copy h3{
  font-size:clamp(27px,2.65vw,42px);
  letter-spacing:-.065em;
}

@media(min-width:981px){
  .artist-card{
    flex:0 0 calc((100vw - (2 * var(--pad)) - 36px)/3) !important;
    min-width:320px;
    max-width:520px;
  }
  .artist-card figure{
    height:clamp(460px,42vw,650px) !important;
    aspect-ratio:auto !important;
  }
}
@media(max-width:980px) and (min-width:761px){
  .artist-card{
    flex-basis:56vw !important;
    max-width:none !important;
  }
  .artist-card figure{
    height:620px !important;
    aspect-ratio:auto !important;
  }
}
@media(max-width:760px){
  .artists-track{
    gap:18px !important;
    padding-left:26px !important;
    padding-right:26px !important;
    scroll-padding-inline:26px !important;
  }
  .artist-card{
    flex:0 0 calc(100vw - 52px) !important;
    width:calc(100vw - 52px) !important;
    min-width:calc(100vw - 52px) !important;
    max-width:calc(100vw - 52px) !important;
    box-shadow:7px 7px 0 var(--yellow) !important;
  }
  .artist-card figure{
    height:520px !important;
    max-height:none !important;
    aspect-ratio:auto !important;
  }
  .artist-copy.artist-copy-manuel{
    min-height:150px;
    padding:18px 18px 22px;
    gap:15px;
  }
  .artist-date{width:58px;min-width:58px}
  .artist-date b{font-size:28px}
  .artist-copy.artist-copy-manuel h3{
    font-size:clamp(34px,9.5vw,46px);
    line-height:.86;
  }
  .artist-copy.artist-copy-manuel.artist-name-long h3{
    font-size:clamp(24px,6.8vw,31px);
    line-height:.88;
    letter-spacing:-.055em;
  }
  .artist-copy.artist-copy-manuel.artist-name-xlong h3{
    font-size:clamp(23px,6.4vw,29px);
    line-height:.88;
    letter-spacing:-.06em;
  }
  .liscio-card.accent-claudia .liscio-copy h3{
    font-size:clamp(27px,7.5vw,32px) !important;
    line-height:.88 !important;
    letter-spacing:-.065em !important;
    white-space:nowrap;
  }
}
@media(max-width:390px){
  .artist-copy.artist-copy-manuel h3{font-size:clamp(31px,8.8vw,38px)}
  .artist-copy.artist-copy-manuel.artist-name-long h3{font-size:clamp(22px,6.25vw,27px)}
  .artist-copy.artist-copy-manuel.artist-name-xlong h3{font-size:clamp(21px,5.9vw,25px)}
  .liscio-card.accent-claudia .liscio-copy h3{
    font-size:clamp(25px,7vw,29px) !important;
  }
}


/* =========================================================
   v38 — compact 2027/status + compact info/social
   ========================================================= */

/* 2027 status: smaller even on desktop */
.next-edition{
  padding-bottom:clamp(64px,6vw,90px) !important;
}
.status-grid article{
  min-height:150px !important;
  padding:24px !important;
}
.status-grid h3{
  margin:24px 0 4px !important;
  font-size:clamp(28px,2.4vw,34px) !important;
}
.status-grid p{
  font-size:15px;
}

/* Final info becomes two genuinely useful cards */
.info-grid{
  grid-template-columns:1fr 1fr !important;
}
.info-grid article{
  min-height:210px !important;
  padding:26px !important;
}
.info-grid h3{
  margin:28px 0 10px !important;
}
.info-grid p{
  margin:0 0 16px;
}
.compact-link,
.social-icon-link{
  text-decoration:none;
}
.compact-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  width:max-content;
}
.compact-link svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
}
.social-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:16px;
}
.social-icon-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:9px 12px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-size:12px;
  font-weight:1000;
  transition:transform .18s ease,background .18s ease;
}
.social-icon-link svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.social-icon-link:nth-child(2) svg,
.social-icon-link:nth-child(3) svg{
  fill:currentColor;
  stroke:none;
}
.social-icon-link:hover{
  transform:translateY(-2px);
  background:var(--yellow);
}

/* Footer is a close, not another full section */
.site-footer{
  min-height:0 !important;
  padding-top:54px !important;
  padding-bottom:54px !important;
}
.footer-links-compact{
  display:flex !important;
  flex-direction:row !important;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px 14px !important;
}
.footer-links-compact>a{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.footer-social-link svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.footer-social-link[href*="facebook"] svg{
  fill:currentColor;
  stroke:none;
}

/* Mobile: status is 2x2 instead of four giant vertical cards */
@media(max-width:760px){
  .next-edition{
    padding-top:58px !important;
    padding-bottom:58px !important;
  }
  .next-edition .section-heading{
    margin-bottom:30px !important;
  }
  .status-grid{
    grid-template-columns:1fr 1fr !important;
    box-shadow:6px 6px 0 var(--navy) !important;
  }
  .status-grid article{
    min-height:118px !important;
    padding:17px 16px 18px !important;
    border-right:2px solid var(--ink) !important;
    border-bottom:2px solid var(--ink) !important;
  }
  .status-grid article:nth-child(2n){
    border-right:0 !important;
  }
  .status-grid article:nth-last-child(-n+2){
    border-bottom:0 !important;
  }
  .status-grid h3{
    margin:14px 0 4px !important;
    font-size:clamp(21px,6vw,27px) !important;
    letter-spacing:-.04em;
  }
  .status-grid p{
    font-size:12px !important;
    line-height:1.15;
  }
  .status-grid b{
    font-size:10px;
  }

  .info-section{
    padding-top:62px !important;
    padding-bottom:58px !important;
  }
  .info-section .section-heading{
    margin-bottom:30px !important;
  }
  .info-grid{
    grid-template-columns:1fr !important;
  }
  .info-grid article{
    min-height:0 !important;
    padding:20px 20px 22px !important;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    column-gap:12px;
    border-right:0 !important;
    border-bottom:2px solid var(--ink) !important;
  }
  .info-grid article:last-child{
    border-bottom:0 !important;
  }
  .info-grid article>b{
    grid-column:1;
    grid-row:1 / span 4;
    font-size:11px;
    padding-top:2px;
  }
  .info-grid article>h3,
  .info-grid article>p,
  .info-grid article>a,
  .info-grid article>.social-actions{
    grid-column:2;
  }
  .info-grid h3{
    margin:0 0 7px !important;
    font-size:30px !important;
  }
  .info-grid p{
    font-size:15px !important;
    line-height:1.28;
    margin:0 0 12px !important;
  }
  .social-actions{
    margin-top:3px;
    gap:7px;
  }
  .social-icon-link{
    min-height:40px;
    padding:7px 9px;
    font-size:11px;
  }
  .social-icon-link svg{
    width:19px;
    height:19px;
  }

  .site-footer{
    min-height:0 !important;
    padding-top:42px !important;
    padding-bottom:40px !important;
    gap:20px !important;
  }
  .footer-logo{
    width:min(235px,78vw) !important;
    max-height:100px !important;
  }
  .site-footer p{
    margin:0;
    font-size:14px;
  }
  .footer-links-compact{
    justify-content:flex-start !important;
    gap:9px 13px !important;
    font-size:12px;
  }
}

@media(max-width:390px){
  .status-grid h3{
    font-size:20px !important;
  }
  .status-grid p{
    font-size:11px !important;
  }
}


/* =========================================================
   v40 — apertura pulita: stacco netto, niente sfumatura
   ========================================================= */
.opening-video{
  overflow:hidden !important;
  border-bottom:2px solid var(--ink) !important;
  background:var(--navy) !important;
}
.opening-video::after{
  display:none !important;
  content:none !important;
}
.hero#edizione-2027{
  margin-top:0 !important;
  position:relative;
  z-index:1;
}
@media(max-width:720px){
  .hero#edizione-2027{
    margin-top:0 !important;
    padding-top:60px;
  }
}


/* =========================================================
   v41 — opening video: remove blue band above video
   ========================================================= */
.opening-video{
  height:auto !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:var(--navy) !important;
  overflow:hidden !important;
}
.opening-video-sticky{
  position:relative !important;
  top:0 !important;
  width:100% !important;
  height:min(calc(100svh - var(--header)),56.25vw) !important;
  max-height:calc(100svh - var(--header)) !important;
  overflow:hidden !important;
  background:var(--navy) !important;
}
.opening-video-media{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
@media(max-width:760px){
  .opening-video-sticky{
    height:62vw !important;
    min-height:260px !important;
    max-height:560px !important;
  }
}


/* =========================================================
   v42 — site architecture: 2027 / Parco Sud / Parco Nord /
   Programma / Palio / Menu / Info
   ========================================================= */
section[id]{scroll-margin-top:calc(var(--header) + 8px)}
.anchor-alias{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  pointer-events:none;
}

/* Parco Sud: Artisti 2026 is explicitly a subsection of the park. */
.south-summary{
  padding-top:0 !important;
  padding-bottom:18px !important;
  color:white;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.south-summary-title{
  display:flex;
  align-items:baseline;
  gap:14px;
  min-width:0;
}
.south-summary-title b{
  font-size:clamp(20px,2vw,28px);
  letter-spacing:-.03em;
}
.south-summary-title span{
  font-size:10px;
  font-weight:1000;
  letter-spacing:.11em;
  opacity:.78;
  white-space:nowrap;
}
.south-tags{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}
.south-tags span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 10px;
  border:2px solid white;
  font-size:9px;
  font-weight:1000;
  letter-spacing:.1em;
}
.south-tags span:nth-child(1){background:var(--yellow);color:var(--ink);border-color:var(--ink)}
.south-tags span:nth-child(2){background:var(--purple);color:var(--ink);border-color:var(--ink)}
.south-tags span:nth-child(3){background:var(--green);color:var(--ink);border-color:var(--ink)}

/* Menu owns the always-available food strip now. */
.food-section>.every-night{
  margin:32px 0 46px !important;
}
.food-section>.every-night span{
  background:var(--navy);
}

/* Seven clean navigation items, no social links mixed into navigation. */
@media(min-width:761px){
  .main-nav{gap:clamp(10px,1.45vw,22px)}
  .main-nav a{
    font-size:clamp(10px,.9vw,13px);
    white-space:nowrap;
  }
}

@media(max-width:760px){
  .south-summary{
    padding-left:26px !important;
    padding-right:26px !important;
    padding-bottom:14px !important;
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
  .south-summary-title{
    width:100%;
    justify-content:space-between;
  }
  .south-summary-title b{font-size:22px}
  .south-summary-title span{font-size:8px}
  .south-tags{
    width:100%;
    justify-content:flex-start;
  }
  .south-tags span{
    min-height:31px;
    padding:6px 8px;
    font-size:8px;
  }
  .food-section>.every-night{
    margin:26px 0 34px !important;
  }
}


/* =========================================================
   v43 — FINAL GRID + TYPOGRAPHY SYSTEM
   One left axis, one section-title scale, no overflow.
   ========================================================= */
:root{
  --final-gutter:clamp(46px,6.4vw,118px);
  --final-title:clamp(64px,7vw,116px);
  --final-copy:clamp(17px,1.35vw,21px);
  --final-eyebrow:11px;
}

.eyebrow{
  font-size:var(--final-eyebrow) !important;
  line-height:1.15 !important;
  letter-spacing:.14em !important;
}

/* Same hierarchy for every MAIN section title. Hero remains intentionally larger. */
.section-heading h2,
.artists-heading h2,
.liscio-heading h2,
.food-title h2,
.palio-heading h2,
.atmosphere-copy h2,
.community-v22-content h2{
  font-size:var(--final-title) !important;
  line-height:.80 !important;
  letter-spacing:-.062em !important;
  max-width:100% !important;
  overflow-wrap:normal !important;
}

/* Consistent explanatory text */
.section-heading>p,
.liscio-heading>p,
.artists-heading .section-heading>p,
.atmosphere-copy>p:last-child,
.community-v22-content>p:last-child{
  font-size:var(--final-copy) !important;
  line-height:1.32 !important;
}

/* All main content follows exactly the same left/right axis. */
.site-header,
.hero,
.next-edition,
.artists-heading,
.liscio-head,
.palio-section,
.food-section,
.info-section,
.story-section,
.site-footer{
  padding-left:var(--final-gutter) !important;
  padding-right:var(--final-gutter) !important;
}

.artists-track,
.liscio-track,
.program-track,
.experience-track{
  padding-left:var(--final-gutter) !important;
  padding-right:var(--final-gutter) !important;
  scroll-padding-inline:var(--final-gutter) !important;
}

.program-section>.section-heading{
  width:min(calc(100% - (2 * var(--final-gutter))),var(--content-max)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.section-heading,
.status-grid,
.food-title,
.info-grid,
.palio-heading,
.palio-feature,
.palio-gallery{
  max-width:var(--content-max);
}

/* Remove old small offsets that made headings start on slightly different lines. */
.hero-copy,
.section-heading>div:first-child,
.food-title,
.story-copy,
.palio-heading>div:first-child{
  padding-left:0 !important;
}

/* Parco Sud heading: same size as every section, but guaranteed to fit. */
.artists-heading h2{
  width:100%;
}
.artists-heading h2 span{
  white-space:normal !important;
}

/* Secondary section headings stay one level below main titles. */
.palio-squad-heading h3,
.experience-rail-head h3{
  font-size:clamp(38px,4vw,62px) !important;
  line-height:.86 !important;
  letter-spacing:-.05em !important;
}

/* Card titles: one consistent scale within cards. */
.artist-copy.artist-copy-manuel h3,
.liscio-copy h3{
  font-size:clamp(30px,3vw,46px) !important;
  line-height:.86 !important;
  letter-spacing:-.055em !important;
}

/* =========================================================
   MOBILE — 28px breathing space everywhere
   ========================================================= */
@media(max-width:760px){
  :root{
    --final-gutter:28px;
    --final-title:clamp(43px,11.2vw,55px);
    --final-copy:16px;
    --final-eyebrow:10px;
  }

  .site-header{
    padding-left:20px !important;
    padding-right:20px !important;
  }

  .hero,
  .next-edition,
  .artists-heading,
  .liscio-head,
  .palio-section,
  .food-section,
  .info-section,
  .story-section,
  .site-footer{
    padding-left:var(--final-gutter) !important;
    padding-right:var(--final-gutter) !important;
  }

  .artists-track,
  .liscio-track,
  .program-track,
  .experience-track{
    padding-left:var(--final-gutter) !important;
    padding-right:var(--final-gutter) !important;
    scroll-padding-inline:var(--final-gutter) !important;
  }

  .program-section>.section-heading{
    width:auto !important;
    margin-left:var(--final-gutter) !important;
    margin-right:var(--final-gutter) !important;
  }

  /* Exact same physical card width / same left line. */
  .artist-card,
  .liscio-card,
  .experience-card{
    flex-basis:calc(100vw - (2 * var(--final-gutter))) !important;
    width:calc(100vw - (2 * var(--final-gutter))) !important;
    min-width:calc(100vw - (2 * var(--final-gutter))) !important;
    max-width:calc(100vw - (2 * var(--final-gutter))) !important;
  }

  /* Food is inside a padded section: 100% now lands on the same line. */
  .food-carousel,
  .food-track,
  .food-slide{
    max-width:100% !important;
  }

  .experience-rail-head{
    margin-left:var(--final-gutter) !important;
    margin-right:var(--final-gutter) !important;
  }
  .experience-meter,
  .liscio-meter,
  .food-meter{
    width:calc(100% - (2 * var(--final-gutter))) !important;
    margin-left:var(--final-gutter) !important;
    margin-right:var(--final-gutter) !important;
  }

  /* Palio team cards start on the same line as everything else. */
  .palio-squads{
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .palio-squad-card{
    flex-basis:100% !important;
    width:100% !important;
    max-width:100% !important;
  }

  /* This was the visible overflow in the screenshot. */
  .artists-heading h2,
  .liscio-heading h2,
  .food-title h2,
  .section-heading h2,
  .palio-heading h2,
  .atmosphere-copy h2,
  .community-v22-content h2{
    font-size:var(--final-title) !important;
    max-width:100% !important;
  }

  .artists-heading h2 span{
    display:block;
    font-size:1em !important;
    letter-spacing:inherit !important;
  }

  .section-heading,
  .artists-heading .section-heading{
    gap:20px !important;
  }

  .south-summary{
    padding-left:var(--final-gutter) !important;
    padding-right:var(--final-gutter) !important;
  }

  .artist-copy.artist-copy-manuel h3,
  .liscio-copy h3{
    font-size:clamp(30px,8.2vw,38px) !important;
  }

  /* Long names preserve the common card hierarchy without escaping. */
  .artist-copy.artist-name-long h3{
    font-size:clamp(22px,6vw,27px) !important;
  }
  .artist-copy.artist-name-xlong h3{
    font-size:clamp(20px,5.6vw,25px) !important;
  }
  .liscio-card.accent-claudia .liscio-copy h3{
    font-size:clamp(24px,6.7vw,29px) !important;
    white-space:normal !important;
  }
}

@media(max-width:360px){
  :root{
    --final-gutter:24px;
    --final-title:clamp(40px,11vw,48px);
  }
}


/* v44 — clarify that shown artists are only a selection */
.more-artists-note{
  margin:18px var(--final-gutter) 0;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.11em;
  text-transform:uppercase;
}
#parco-sud .more-artists-note{
  color:white;
}
#parco-nord .more-artists-note{
  color:var(--navy);
}
@media(max-width:760px){
  .more-artists-note{
    margin-top:14px;
    font-size:10px;
  }
}


/* v45 — final "E molti altri" card inside the carousels */
.many-more-card{
  display:flex;
  align-items:stretch;
  justify-content:stretch;
}

.many-more-inner{
  width:100%;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:28px;
  box-sizing:border-box;
  border:3px solid var(--ink);
  background:
    linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.04) 100%),
    repeating-linear-gradient(
      -45deg,
      rgba(255,255,255,.08) 0px,
      rgba(255,255,255,.08) 12px,
      transparent 12px,
      transparent 24px
    );
}

#parco-sud .many-more-inner{
  background-color: var(--navy);
  color: white;
  box-shadow: 10px 10px 0 var(--yellow);
}
#parco-nord .many-more-inner{
  background-color: #f4f1e8;
  color: var(--navy);
  box-shadow: 10px 10px 0 var(--coral);
}

.many-more-kicker{
  margin:0 0 12px 0;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.85;
}

.many-more-title{
  margin:0 0 12px 0;
  font-size:clamp(28px, 3.4vw, 52px);
  line-height:.95;
  font-weight:1000;
  text-transform:uppercase;
}

.many-more-text{
  margin:0;
  max-width:22ch;
  font-size:16px;
  line-height:1.25;
  font-weight:700;
}

@media (max-width: 760px){
  .many-more-inner{
    padding:20px;
  }
  .many-more-kicker{
    font-size:10px;
  }
  .many-more-title{
    font-size:clamp(24px, 8vw, 36px);
  }
  .many-more-text{
    font-size:14px;
  }
}


/* v46 — visual 'E molti altri' cards for Parco Sud and Parco Nord */
.many-more-card{overflow:hidden}
.many-more-card .many-more-figure{position:relative;margin:0;background:var(--navy)}
.many-more-card .many-more-figure img{width:100%;height:100%;object-fit:cover;filter:brightness(.56) saturate(.92)}
.many-more-card .many-more-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(7,22,77,.06) 0%, rgba(7,22,77,.42) 100%);pointer-events:none}
.many-more-card .many-more-chip{position:absolute;left:14px;top:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);padding:7px 8px;font-size:10px;font-weight:1000;letter-spacing:.08em;line-height:1;text-transform:uppercase;box-shadow:4px 4px 0 var(--ink)}
.many-more-card .many-more-copy{display:block;min-height:auto}
.many-more-card .many-more-copy small{display:block;font-size:10px;font-weight:1000;letter-spacing:.12em;margin-bottom:8px}
.many-more-card .many-more-copy h3{margin:0;font-size:clamp(34px,3.2vw,50px);line-height:.86;letter-spacing:-.055em}
.many-more-card .many-more-copy p{margin:12px 0 0;font-size:15px;line-height:1.35;font-weight:700;letter-spacing:0;opacity:.92;max-width:26ch}

.many-more-artist-card{border-color:white;box-shadow:8px 8px 0 rgba(255,255,255,.18)}
.many-more-artist-card .many-more-copy{padding:20px 22px 24px;min-height:150px}
.many-more-artist-card .many-more-copy small{color:var(--navy)}
.many-more-artist-card .many-more-copy h3{color:var(--navy)}
.many-more-artist-card .many-more-copy p{color:var(--ink)}

.many-more-liscio-card{border:2px solid var(--ink);box-shadow:10px 10px 0 var(--navy)}
.many-more-liscio-card .many-more-copy{padding:20px 20px 24px}
.many-more-liscio-card .many-more-copy small{color:var(--navy)}
.many-more-liscio-card .many-more-copy h3{color:var(--navy)}
.many-more-liscio-card .many-more-copy p{color:var(--ink);max-width:28ch}

@media (max-width:760px){
  .many-more-card .many-more-chip{left:12px;top:12px;font-size:9px;padding:6px 7px}
  .many-more-card .many-more-copy h3{font-size:clamp(34px,9.4vw,46px)}
  .many-more-card .many-more-copy p{font-size:14px;max-width:none}
}


/* v47 — final image-based “E molti altri” cards with complete 2026 names */
.many-more-card .many-more-figure{position:relative;overflow:hidden}
.many-more-card .many-more-figure img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.42) saturate(.88);transform:scale(1.015)}
.many-more-card .many-more-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,22,77,.10),rgba(7,22,77,.36));pointer-events:none}
.many-more-roster{position:absolute;z-index:3;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;color:white}
.many-more-roster span{font-size:clamp(10px,.9vw,13px);line-height:1.08;font-weight:900;letter-spacing:.015em;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.many-more-card .many-more-copy{min-height:156px!important;padding:20px 22px 24px!important;display:flex!important;align-items:flex-end!important}
.many-more-card .many-more-copy>div{min-width:0}
.many-more-card .many-more-copy small{display:block;margin-bottom:7px;font-size:9px;font-weight:1000;letter-spacing:.12em;color:var(--navy)}
.many-more-card .many-more-copy h3{margin:0!important;color:var(--navy)!important;font-size:clamp(34px,3vw,46px)!important;line-height:.86!important;letter-spacing:-.055em!important}
.many-more-liscio-card .many-more-roster{grid-template-columns:1fr;gap:8px}

@media(max-width:760px){
  .many-more-roster{left:16px;right:16px;bottom:16px;gap:7px 12px}
  .many-more-roster span{font-size:11px}
  .many-more-liscio-card .many-more-roster{grid-template-columns:1fr 1fr}
  .many-more-card .many-more-copy{min-height:150px!important;padding:18px 18px 22px!important}
  .many-more-card .many-more-copy h3{font-size:clamp(34px,8.5vw,40px)!important}
}


/* v48 — fix “E molti altri” cards: same vertical card layout as the others */
.many-more-card{
  display:block !important;
}
.many-more-card .many-more-figure{
  width:100%;
}
.many-more-card .many-more-copy{
  width:100%;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
  align-items:flex-start !important;
}
.many-more-card .many-more-copy .artist-name-block,
.many-more-card .many-more-copy .many-more-name-block{
  width:100%;
}
.many-more-card .many-more-copy h3{
  max-width:100%;
}
.many-more-liscio-card .many-more-roster{
  grid-template-columns:1fr 1fr;
}
@media (min-width: 761px){
  .many-more-card .many-more-copy{
    min-height:148px !important;
  }
}
@media (max-width:760px){
  .many-more-card .many-more-copy{
    min-height:132px !important;
  }
  .many-more-roster{
    left:14px;
    right:14px;
    bottom:14px;
    gap:8px 12px;
  }
  .many-more-roster span{
    font-size:10px;
    line-height:1.1;
  }
}


/* =========================================================
   v49 — "E molti altri": names are now a real visual element
   ========================================================= */
.many-more-roster{
  left:16px !important;
  right:16px !important;
  bottom:16px !important;
  padding:14px 15px !important;
  gap:10px 18px !important;
  background:rgba(7,22,77,.76);
  border:2px solid rgba(255,255,255,.88);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

.many-more-roster span{
  font-size:clamp(16px,1.35vw,21px) !important;
  line-height:1.02 !important;
  font-weight:1000 !important;
  letter-spacing:-.025em !important;
  text-shadow:0 2px 10px rgba(0,0,0,.65) !important;
}

.many-more-liscio-card .many-more-roster{
  grid-template-columns:1fr 1fr !important;
}

@media(max-width:760px){
  .many-more-roster{
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    padding:12px 12px !important;
    gap:9px 12px !important;
  }

  .many-more-roster span{
    font-size:clamp(16px,4.6vw,19px) !important;
    line-height:1.02 !important;
  }

  .many-more-liscio-card .many-more-roster span{
    font-size:clamp(17px,4.9vw,20px) !important;
  }
}

@media(max-width:380px){
  .many-more-roster span{
    font-size:15px !important;
  }
  .many-more-liscio-card .many-more-roster span{
    font-size:16px !important;
  }
}


/* =========================================================
   v50 — Parco Sud: remove excessive empty vertical space
   ========================================================= */
#parco-sud .artists-heading{
  padding-bottom:26px !important;
}

#parco-sud .artists-heading .section-heading{
  margin-bottom:0 !important;
}

#parco-sud .south-summary{
  padding-top:8px !important;
  padding-bottom:20px !important;
}

@media(max-width:760px){
  #parco-sud .artists-heading{
    padding-top:68px !important;
    padding-bottom:22px !important;
  }

  #parco-sud .artists-heading .section-heading{
    margin-bottom:0 !important;
  }

  #parco-sud .south-summary{
    padding-top:6px !important;
    padding-bottom:18px !important;
    gap:11px !important;
  }

  #parco-sud .artists-track{
    padding-top:10px !important;
  }
}


/* =========================================================
   v51 — carousel arrows always below + clean names overlay
   ========================================================= */

/* All carousel arrows live below the content, never over photos. */
.carousel-shell{
  position:relative;
}

.carousel-controls{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:min(calc(100% - (2 * var(--final-gutter))), var(--content-max));
  margin:18px auto 0;
}

.carousel-controls .carousel-arrow{
  position:static !important;
  inset:auto !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  flex:0 0 auto;
}

.carousel-controls .carousel-arrow:hover{
  transform:translateY(-2px) !important;
}

/* The old section-specific arrow offsets must not interfere. */
.liscio-arrow,
.food-arrow,
.experience-arrow{
  top:auto !important;
  left:auto !important;
  right:auto !important;
}

/* "E molti altri": no box behind the names. */
.many-more-roster{
  background:transparent !important;
  border:0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  padding:0 !important;
  left:20px !important;
  right:20px !important;
  bottom:20px !important;
  gap:11px 20px !important;
}

.many-more-roster span{
  color:#fff !important;
  font-size:clamp(18px,1.55vw,24px) !important;
  line-height:.96 !important;
  font-weight:1000 !important;
  letter-spacing:-.035em !important;
  text-transform:uppercase !important;
  text-shadow:
    0 2px 3px rgba(0,0,0,.95),
    0 5px 18px rgba(0,0,0,.85) !important;
}

/* Stronger image fade only at the bottom, not a visible rectangle. */
.many-more-card .many-more-overlay{
  background:
    linear-gradient(
      180deg,
      rgba(7,22,77,.08) 0%,
      rgba(7,22,77,.12) 42%,
      rgba(7,22,77,.74) 100%
    ) !important;
}

/* Parco Nord has fewer names, so they can be even larger. */
.many-more-liscio-card .many-more-roster span{
  font-size:clamp(20px,1.8vw,27px) !important;
}

@media(max-width:760px){
  .carousel-controls{
    width:calc(100% - (2 * var(--final-gutter))) !important;
    margin-top:14px !important;
  }

  .carousel-controls .carousel-arrow{
    width:46px !important;
    height:46px !important;
    font-size:22px !important;
  }

  .many-more-roster{
    left:15px !important;
    right:15px !important;
    bottom:15px !important;
    gap:10px 12px !important;
  }

  .many-more-roster span{
    font-size:clamp(16px,4.65vw,20px) !important;
    line-height:.98 !important;
  }

  .many-more-liscio-card .many-more-roster span{
    font-size:clamp(18px,5.2vw,22px) !important;
  }
}

@media(max-width:380px){
  .many-more-roster span{
    font-size:15px !important;
  }
  .many-more-liscio-card .many-more-roster span{
    font-size:17px !important;
  }
}


/* =========================================================
   v24 — POLISH LAYER · micro-interazioni & rifiniture
   Solo hover / focus / transizioni. Nessun cambio di layout.
   Rispetta prefers-reduced-motion e (hover:hover).
   ========================================================= */

:root{ --ease-pop:cubic-bezier(.2,.75,.25,1); }

/* --- Card: firma neo-brutalista → si sollevano e l'ombra cresce --- */
@media(hover:hover){
  .artist-card:hover{
    transform:translate3d(-4px,-8px,0);
    box-shadow:13px 16px 0 rgba(255,255,255,.22);
  }
  .artist-card.featured:hover{
    transform:translate3d(-4px,-8px,0);
    box-shadow:14px 17px 0 var(--yellow);
  }
  .day-card:hover{
    transform:translate3d(-4px,-8px,0);
    box-shadow:12px 15px 0 var(--ink);
  }
  .liscio-card:hover{
    transform:translate3d(-4px,-8px,0);
    box-shadow:14px 17px 0 var(--navy);
  }
  .palio-feature:hover{
    transform:translate3d(-3px,-6px,0);
    box-shadow:16px 18px 0 var(--yellow);
  }
}
.liscio-card{ transition:transform .3s var(--ease-pop),box-shadow .3s ease; }

/* Hero: le tre foto inclinate si raddrizzano e salgono */
.hero-photo{ transition:transform .4s var(--ease-pop),box-shadow .4s ease; }
@media(hover:hover){
  .hero-photo:hover{
    transform:rotate(0deg) translateY(-6px) scale(1.02);
    box-shadow:16px 18px 0 var(--navy);
    z-index:6;
  }
}

/* Food slide: leggero sollevamento oltre allo zoom già presente */
.food-slide{ transition:transform .35s var(--ease-pop),box-shadow .35s ease; }
@media(hover:hover){
  .food-slide:hover{ transform:translateY(-6px); }
}

/* --- Bottoni: press fisico brutalista --- */
.button{
  transition:transform .16s var(--ease-pop),box-shadow .16s ease;
  will-change:transform;
}
@media(hover:hover){
  .button.dark:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--yellow); }
  .button.light:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--coral); }
}
.button.dark:active{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--yellow); }
.button.light:active{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--coral); }

/* Edition chip: micro-pop */
.edition-chip{ transition:transform .2s var(--ease-pop),box-shadow .2s ease; }
@media(hover:hover){
  .edition-chip:hover{ transform:translate(-1px,-1px); box-shadow:6px 6px 0 var(--ink); }
}

/* --- Nav: underline animato (solo desktop) --- */
@media(hover:hover) and (min-width:761px){
  .main-nav a{ position:relative; transition:color .2s ease; }
  .main-nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
    background:var(--coral); transform:scaleX(0); transform-origin:left center;
    transition:transform .28s var(--ease-pop);
  }
  .main-nav a:hover::after{ transform:scaleX(1); }
}

/* Brand nell'header: micro-scala */
.site-header .brand img{ transition:transform .3s var(--ease-pop); }
@media(hover:hover){ .site-header .brand:hover img{ transform:scale(1.03); } }

/* --- Link testuali: colore / nudge --- */
.poster-link,.palio-link,.footer-links-compact a{
  transition:transform .2s var(--ease-pop),color .2s ease,border-color .2s ease;
}
@media(hover:hover){
  .poster-link:hover{ color:var(--coral); border-bottom-color:var(--coral); }
  .palio-link:hover,
  .footer-links-compact a:hover{ transform:translateX(2px); }
}

/* --- Menu toggle --- */
.menu-toggle{ transition:transform .18s var(--ease-pop),background .18s ease; }
@media(hover:hover){ .menu-toggle:hover{ background:var(--yellow); } }
.menu-toggle:active{ transform:scale(.94); }

/* --- Ticker & ribbon: pausa al passaggio --- */
@media(hover:hover){
  .ticker:hover .ticker-track,
  .liscio-ribbon:hover>div{ animation-play-state:paused; }
}

/* --- Reveal: stagger esteso per le card in fila --- */
.reveal-card:nth-child(5){transition-delay:.20s}
.reveal-card:nth-child(6){transition-delay:.25s}
.reveal-card:nth-child(7){transition-delay:.30s}
.reveal-card:nth-child(8){transition-delay:.35s}

/* --- Focus visibile da tastiera (accessibilità) --- */
a:focus-visible,button:focus-visible,.button:focus-visible{
  outline:3px solid var(--purple);
  outline-offset:3px;
}

/* --- Lightbox: entrata morbida della locandina --- */
.lightbox>div{ transition:transform .3s var(--ease-pop),opacity .3s ease; }
.lightbox:not(.open)>div{ transform:scale(.96); opacity:0; }
.lightbox.open>div{ transform:scale(1); opacity:1; }

/* --- Video fallback play: pulse al passaggio --- */
.video-play-fallback{ transition:transform .2s var(--ease-pop); }
@media(hover:hover){ .video-play-fallback:hover{ transform:scale(1.08); } }

/* --- Rispetto totale di reduced-motion --- */
@media(prefers-reduced-motion:reduce){
  .hero-photo:hover,.artist-card:hover,.artist-card.featured:hover,.day-card:hover,
  .liscio-card:hover,.food-slide:hover,.palio-feature:hover,
  .button:hover,.button:active,.edition-chip:hover{ transform:none !important; }
  .ticker:hover .ticker-track,.liscio-ribbon:hover>div{ animation-play-state:running !important; }
  .lightbox:not(.open)>div{ transform:none; }
}


/* =========================================================
   v25 — UPGRADE LAYER · CTA iscrizione, entrata hero, rifiniture
   ========================================================= */

/* Offset di scroll: il titolo non finisce sotto l'header sticky */
[id]{ scroll-margin-top:calc(var(--header) + 16px); }

/* Selezione testo brandizzata */
::selection{ background:var(--coral); color:#fff; }
::-moz-selection{ background:var(--coral); color:#fff; }

/* --- Blocco iscrizione "TI AVVISIAMO NOI" --- */
.notify-block{
  margin-top:clamp(30px,4vw,56px);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(24px,4vw,60px);
  align-items:center;
  background:var(--navy);
  color:#fff;
  border:2px solid var(--ink);
  box-shadow:10px 10px 0 var(--coral);
  padding:clamp(28px,4vw,54px);
}
.notify-copy .eyebrow{ color:var(--yellow); }
.notify-copy h3{
  font-size:clamp(40px,5vw,74px);
  line-height:.82;
  letter-spacing:-.05em;
  margin:6px 0 16px;
  font-weight:1000;
}
.notify-copy h3 span{ color:var(--yellow); }
.notify-copy p{
  margin:0;
  font-weight:700;
  font-size:clamp(15px,1.3vw,19px);
  line-height:1.25;
  max-width:46ch;
  color:rgba(255,255,255,.9);
}
.notify-form{ position:relative; }
.notify-hp{ position:absolute; left:-9999px; top:0; width:1px; height:1px; overflow:hidden; opacity:0; }
.notify-row{ display:flex; gap:10px; flex-wrap:wrap; }
.notify-row input[type=email]{
  flex:1 1 220px;
  min-width:0;
  border:2px solid var(--ink);
  background:#fff;
  color:var(--ink);
  padding:15px 16px;
  font:inherit;
  font-weight:800;
  font-size:16px; /* evita lo zoom automatico su iOS */
  transition:box-shadow .2s ease,transform .2s var(--ease-pop);
}
.notify-row input[type=email]::placeholder{ color:#8a8a8a; font-weight:700; }
.notify-row input[type=email]:focus{
  outline:none;
  box-shadow:5px 5px 0 var(--yellow);
  transform:translate(-1px,-1px);
}
.notify-row button{
  flex:0 0 auto;
  cursor:pointer;
  border:2px solid var(--ink);
  background:var(--coral);
  color:var(--ink);
  padding:15px 22px;
  font-weight:1000;
  text-transform:uppercase;
  font-size:14px;
  box-shadow:5px 5px 0 var(--yellow);
  transition:transform .16s var(--ease-pop),box-shadow .16s ease;
}
@media(hover:hover){
  .notify-row button:hover{ transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--yellow); }
}
.notify-row button:active{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--yellow); }
.notify-note{
  margin:13px 0 0;
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  color:rgba(255,255,255,.62);
}
.notify-ok{
  display:none;
  margin:16px 0 0;
  padding:14px 16px;
  background:var(--green);
  color:#fff;
  border:2px solid var(--ink);
  font-weight:1000;
  box-shadow:5px 5px 0 var(--ink);
}
.notify-block.is-sent .notify-row,
.notify-block.is-sent .notify-note{ display:none; }
.notify-block.is-sent .notify-ok{ display:block; }

@media(max-width:820px){
  .notify-block{ grid-template-columns:1fr; box-shadow:7px 7px 0 var(--coral); }
}
@media(max-width:760px){
  .notify-row button{ flex:1 1 100%; }
}

/* --- Entrata premium dell'hero (usa il sistema reveal esistente) --- */
html.motion-ready .hero-copy:not(.is-visible){ transform:translateY(30px) !important; }
html.motion-ready .hero-photos:not(.is-visible){ transform:translateY(30px) scale(.985) !important; }
.hero-photos{ transition:opacity .85s var(--ease-pop),transform .85s var(--ease-pop); }
.hero-photos.is-visible{ transition-delay:.08s; }

@media(prefers-reduced-motion:reduce){
  .notify-row input[type=email]:focus{ transform:none; }
}


/* =========================================================
   v52 — DESKTOP POLISH
   Keep mobile unchanged; make desktop grids intentional.
   ========================================================= */
@media(min-width:981px){

  /* 1. Artist / Parco Nord rails: exactly 3 complete cards.
     No random fourth card cut at the right edge. */
  .artists-track,
  .liscio-track{
    gap:18px !important;
    padding-left:var(--final-gutter) !important;
    padding-right:var(--final-gutter) !important;
  }

  .artist-card,
  .liscio-card{
    flex:0 0 calc((100vw - (2 * var(--final-gutter)) - 36px) / 3) !important;
    width:calc((100vw - (2 * var(--final-gutter)) - 36px) / 3) !important;
    min-width:0 !important;
    max-width:none !important;
    scroll-snap-align:start !important;
  }

  .artist-card figure,
  .liscio-card figure{
    height:clamp(520px,42vw,670px) !important;
  }

  .artist-copy.artist-copy-manuel,
  .liscio-copy{
    min-height:168px !important;
  }

  /* Long artist names: same hierarchy, but never cropped on desktop. */
  .artist-copy.artist-name-long h3{
    font-size:clamp(27px,2.15vw,35px) !important;
    line-height:.88 !important;
  }

  .artist-copy.artist-name-xlong h3{
    font-size:clamp(25px,1.95vw,32px) !important;
    line-height:.89 !important;
  }

  .liscio-card.accent-claudia .liscio-copy h3{
    font-size:clamp(27px,2.15vw,34px) !important;
    line-height:.88 !important;
    letter-spacing:-.06em !important;
    white-space:normal !important;
  }

  /* 2. Programma: exactly 3 full days on desktop. */
  .program-track{
    gap:16px !important;
    padding-left:var(--final-gutter) !important;
    padding-right:var(--final-gutter) !important;
  }

  .day-card{
    flex:0 0 calc((100vw - (2 * var(--final-gutter)) - 32px) / 3) !important;
    width:calc((100vw - (2 * var(--final-gutter)) - 32px) / 3) !important;
    min-width:0 !important;
    max-width:none !important;
    min-height:650px !important;
    scroll-snap-align:start !important;
  }

  .day-head span{
    font-size:clamp(34px,3vw,48px) !important;
  }

  /* 3. Food: two complete editorial panels, not one huge card
     with narrow slices of the neighbours. */
  .food-carousel{
    margin-top:52px !important;
  }

  .food-track{
    gap:18px !important;
    padding-left:0 !important;
    padding-right:0 !important;
    scroll-padding-inline:0 !important;
  }

  .food-slide{
    flex:0 0 calc((100% - 18px) / 2) !important;
    width:calc((100% - 18px) / 2) !important;
    max-width:none !important;
    height:clamp(540px,43vw,660px) !important;
    scroll-snap-align:start !important;
  }

  .food-slide-copy h3{
    font-size:clamp(52px,4.6vw,76px) !important;
    line-height:.82 !important;
  }

  .food-slide-copy p{
    font-size:clamp(15px,1.15vw,18px) !important;
  }

  /* 4. Carousel buttons: clearly below and visually grouped. */
  .carousel-controls{
    width:min(calc(100% - (2 * var(--final-gutter))),var(--content-max)) !important;
    justify-content:flex-end !important;
    gap:12px !important;
    margin-top:18px !important;
  }

  .food-carousel .carousel-controls{
    width:100% !important;
  }

  /* 5. "E molti altri": names remain large, but fit comfortably. */
  .many-more-roster{
    left:18px !important;
    right:18px !important;
    bottom:18px !important;
    gap:10px 16px !important;
  }

  .many-more-roster span{
    font-size:clamp(15px,1.15vw,19px) !important;
  }

  .many-more-liscio-card .many-more-roster span{
    font-size:clamp(17px,1.3vw,21px) !important;
  }

  /* 6. Palio: remove the oversized empty pause before the teams. */
  .palio-squad-section{
    margin-top:56px !important;
    padding-top:38px !important;
  }

  .palio-squad-heading{
    margin-bottom:44px !important;
  }

  /* 7. Final info: a little tighter on wide screens. */
  .info-section{
    padding-top:92px !important;
    padding-bottom:92px !important;
  }

  .info-section .section-heading{
    margin-bottom:52px !important;
  }

  /* 8. Desktop max-width rhythm:
     on ultra-wide monitors the site stays composed instead of stretching. */
  @media(min-width:1700px){
    .artist-card,
    .liscio-card{
      flex-basis:calc((100vw - (2 * var(--final-gutter)) - 36px) / 3) !important;
    }

    .day-card{
      flex-basis:calc((100vw - (2 * var(--final-gutter)) - 32px) / 3) !important;
    }
  }
}


/* =========================================================
   v53 — DESKTOP RAIL CLIPPING
   3 complete cards, then scroll. No sliced fourth card.
   ========================================================= */
@media(min-width:981px){

  .artists-track,
  .liscio-track,
  .program-track{
    width:calc(100% - (2 * var(--final-gutter))) !important;
    max-width:var(--content-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    scroll-padding-inline:0 !important;
  }

  .artist-card,
  .liscio-card{
    flex:0 0 calc((100% - 36px) / 3) !important;
    width:calc((100% - 36px) / 3) !important;
  }

  .day-card{
    flex:0 0 calc((100% - 32px) / 3) !important;
    width:calc((100% - 32px) / 3) !important;
  }

  /* Controls line up with the exact visible rail. */
  #parco-sud .carousel-controls,
  #parco-nord .carousel-controls,
  #programma .carousel-controls{
    width:calc(100% - (2 * var(--final-gutter))) !important;
    max-width:var(--content-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}




/* =========================================================
   v56 — FIREWORKS DESKTOP FINAL BALANCE
   Clear columns, no text collision.
   ========================================================= */
@media(min-width:981px){
  .fireworks-section{
    min-height:660px !important;
    padding-top:clamp(92px,7vw,126px) !important;
    padding-bottom:clamp(92px,7vw,126px) !important;
  }

  .fireworks-inner{
    width:min(calc(100% - 40px), 1660px) !important;
    grid-template-columns:
      minmax(250px, .72fr)
      minmax(610px, 1.72fr)
      minmax(270px, .76fr) !important;
    gap:clamp(34px,3vw,54px) !important;
    align-items:center !important;
  }

  .fireworks-kicker{
    align-self:start !important;
    padding-top:4px;
  }

  .fireworks-kicker b{
    font-size:clamp(58px,4.35vw,84px) !important;
    line-height:.84 !important;
  }

  .fireworks-copy{
    align-self:center !important;
    min-width:0 !important;
    padding-right:4px;
  }

  .fireworks-copy .eyebrow{
    margin-bottom:16px !important;
  }

  .fireworks-copy h2{
    width:100% !important;
    max-width:100% !important;
    overflow:visible !important;
    line-height:.82 !important;
  }

  .fireworks-copy .fw-show{
    width:auto !important;
    max-width:100% !important;
    font-size:clamp(72px,6.05vw,116px) !important;
    line-height:.82 !important;
    letter-spacing:-.07em !important;
    white-space:nowrap !important;
  }

  .fireworks-copy .fw-pyro{
    width:auto !important;
    max-width:100% !important;
    font-size:clamp(67px,5.55vw,106px) !important;
    line-height:.84 !important;
    letter-spacing:-.065em !important;
    white-space:nowrap !important;
    -webkit-text-stroke:1.8px white !important;
  }

  .fireworks-time{
    align-self:center !important;
    min-width:0 !important;
    padding-left:clamp(24px,2vw,34px) !important;
    border-left:2px solid rgba(255,255,255,.55) !important;
  }

  .fireworks-time small{
    font-size:clamp(11px,.85vw,14px) !important;
    white-space:nowrap;
  }

  .fireworks-time strong{
    margin:12px 0 18px !important;
    font-size:clamp(68px,4.9vw,94px) !important;
    line-height:.82 !important;
    letter-spacing:-.06em !important;
    white-space:nowrap !important;
  }

  .fireworks-time p{
    max-width:19ch !important;
    font-size:clamp(15px,1vw,17px) !important;
    line-height:1.32 !important;
  }

  /* Decorative bursts stay outside the reading area. */
  .burst-one{
    right:-6vw !important;
    top:-5vw !important;
    opacity:.72 !important;
  }

  .burst-two{
    left:-9vw !important;
    bottom:-11vw !important;
    opacity:.68 !important;
  }

  .burst-three{
    left:42% !important;
    bottom:-17vw !important;
    opacity:.62 !important;
  }
}

@media(min-width:981px) and (max-width:1280px){
  .fireworks-inner{
    grid-template-columns:minmax(200px,.64fr) minmax(500px,1.55fr) minmax(235px,.72fr) !important;
    gap:28px !important;
  }

  .fireworks-copy .fw-show{
    font-size:clamp(66px,6vw,82px) !important;
  }

  .fireworks-copy .fw-pyro{
    font-size:clamp(61px,5.5vw,76px) !important;
  }

  .fireworks-time strong{
    font-size:clamp(62px,5vw,76px) !important;
  }
}


/* =========================================================
   v57 — SPONSOR 2026
   Individual sponsor graphics extracted from the supplied PDF.
   ========================================================= */
.sponsors-section{
  position:relative;
  overflow:hidden;
  background:var(--paper);
  color:var(--ink);
  padding-top:clamp(88px,8vw,132px) !important;
  padding-bottom:clamp(84px,7vw,120px) !important;
}

.sponsor-heading{
  margin-bottom:48px !important;
}

.sponsor-heading h2 span{
  color:var(--coral);
}

.sponsor-heading>p{
  max-width:34ch;
}

.sponsor-carousel{
  position:relative;
  max-width:var(--content-max);
  margin:0 auto;
}

.sponsor-track{
  display:grid;
  grid-auto-flow:column;
  grid-template-rows:repeat(2, 190px);
  grid-auto-columns:clamp(250px,20vw,310px);
  gap:16px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:4px;
  padding:8px 8px 18px 4px;
  scrollbar-width:none;
  cursor:grab;
}

.sponsor-track::-webkit-scrollbar{
  display:none;
}

.sponsor-track.dragging{
  cursor:grabbing;
  scroll-snap-type:none;
}

.sponsor-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  background:#fff;
  border:2px solid var(--ink);
  box-shadow:7px 7px 0 var(--yellow);
  scroll-snap-align:start;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .2s ease, box-shadow .2s ease;
}

.sponsor-card:nth-child(4n+2){
  box-shadow:7px 7px 0 var(--green);
}
.sponsor-card:nth-child(4n+3){
  box-shadow:7px 7px 0 var(--purple);
}
.sponsor-card:nth-child(4n+4){
  box-shadow:7px 7px 0 var(--coral);
}

.sponsor-card img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}

@media(hover:hover){
  .sponsor-card:hover{
    transform:translateY(-4px);
  }
}

.sponsors-section .carousel-controls{
  width:100% !important;
  max-width:none !important;
  margin-top:16px !important;
}

.sponsor-meter{
  width:100%;
  height:5px;
  margin-top:22px;
  background:rgba(7,22,77,.13);
  overflow:hidden;
}

.sponsor-meter span{
  display:block;
  width:100%;
  height:100%;
  background:var(--navy);
  transform:scaleX(.08);
  transform-origin:left center;
  transition:transform .12s linear;
}

/* The extra nav item must still fit comfortably on desktop. */
@media(min-width:761px){
  .main-nav{
    gap:clamp(8px,1.15vw,18px) !important;
  }
  .main-nav a{
    font-size:clamp(9px,.82vw,12px) !important;
  }
}

@media(max-width:760px){
  .sponsors-section{
    padding-top:68px !important;
    padding-bottom:66px !important;
  }

  .sponsor-heading{
    margin-bottom:30px !important;
  }

  .sponsor-track{
    grid-template-rows:repeat(2, 154px);
    grid-auto-columns:min(72vw,258px);
    gap:12px;
    padding-top:4px;
    padding-bottom:14px;
  }

  .sponsor-card{
    box-shadow:5px 5px 0 var(--yellow);
  }
  .sponsor-card:nth-child(4n+2){
    box-shadow:5px 5px 0 var(--green);
  }
  .sponsor-card:nth-child(4n+3){
    box-shadow:5px 5px 0 var(--purple);
  }
  .sponsor-card:nth-child(4n+4){
    box-shadow:5px 5px 0 var(--coral);
  }

  .sponsors-section .carousel-controls{
    width:100% !important;
    margin-top:12px !important;
  }

  .sponsor-meter{
    margin-top:18px;
  }
}
