.seasonal-page{background:var(--cream);color:var(--ink)}
.occasion-header{background:var(--deep);color:#fff;padding:17px 0}
.occasion-header .shell{display:flex;align-items:center;justify-content:space-between;gap:24px}
.occasion-header .brand{min-width:unset}
.occasion-header nav{display:flex;align-items:center;gap:26px}
.occasion-header nav a{color:#e9e7db;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;white-space:nowrap}
.occasion-header nav a:hover,.occasion-header nav a[aria-current=page]{color:var(--gold-light)}
.occasion-header .nav-cta{border:1px solid #947e61;padding:12px 16px}
.seasonal-hero{background:#24130f;color:#fbf6e8;position:relative;overflow:hidden}
.seasonal-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 78% 17%,#9b603a66,transparent 30%),radial-gradient(circle at 3% 82%,#8d572b55,transparent 28%),linear-gradient(135deg,#24100f,#0e0b09 75%)}
.seasonal-hero .shell{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding-top:95px;padding-bottom:95px}
.seasonal-hero h1{font-size:clamp(4.5rem,7.7vw,8rem);line-height:.95;letter-spacing:-.055em;margin:20px 0 25px}
.seasonal-hero h1 em{color:var(--gold-light);font-weight:400}
.seasonal-hero p{max-width:490px;color:#e4d9c8;font-size:17px;line-height:1.75}
.season-tag{color:#e1bc84;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:700}
.season-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:30px}
.season-actions .text-link{color:#f8efdf}
.poster-frame{border:1px solid #a78352;padding:10px;transform:rotate(1.5deg);box-shadow:0 25px 75px #0009;background:#1c0c0b}
.poster-frame img{display:block;width:100%;height:auto}
.christmas-hero .shell{min-height:580px}
.christmas-visual{margin:0;height:430px;border:9px solid #5a3b2c;box-shadow:0 24px 60px #0007;overflow:hidden}
.christmas-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 53%}
.event-hero-photo{display:none}
.seasonal-intro{padding-top:100px;padding-bottom:55px;text-align:center}
.seasonal-intro h2{font-size:clamp(3.2rem,5vw,5rem);margin:16px 0}
.seasonal-intro p{color:var(--muted);max-width:650px;margin:0 auto;line-height:1.75}
.festival-menus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-bottom:105px}
.festival-menus.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.festival-card{padding:33px 30px 30px;background:var(--paper);min-height:520px;display:flex;flex-direction:column;border:1px solid #dfd5c5;box-shadow:0 16px 45px #33251a0a}
.festival-card.red{background:#3a1216;color:#fbf0df;border-color:#8b4e42}
.festival-card.dark{background:var(--deep);color:#fbf0df;border-color:#70635d}
.festival-card.elegant{background:#302721;color:#fbf0df;border-color:#735d4b}
.festival-card.child{background:#f3e3c7}
.festival-card h3{font-size:clamp(2.5rem,3vw,3.8rem);line-height:1.05;margin:5px 0 17px;letter-spacing:-.045em}
.festival-card .menu-photo{margin:0 -30px 3px;aspect-ratio:3/2;overflow:hidden;background:#d8c6a7}
.festival-card .menu-photo img{display:block;width:100%;height:100%;object-fit:cover}
.festival-card .menu-subtitle{font-size:10px;text-transform:uppercase;letter-spacing:.17em;font-weight:700;color:var(--bronze);min-height:26px}
.festival-card.red .menu-subtitle,.festival-card.dark .menu-subtitle,.festival-card.elegant .menu-subtitle{color:var(--gold-light)}
.festival-card ul{padding:0;margin:13px 0 24px;list-style:none}
.festival-card li{border-top:1px solid #c6bca9;padding:15px 0;font-family:'Playfair Display',Georgia,serif;font-size:18px;line-height:1.42}
.festival-card.red li,.festival-card.dark li,.festival-card.elegant li{border-color:#70584a}
.festival-card .card-bottom{margin-top:auto}
.festival-card .price{font-family:'Playfair Display',Georgia,serif;font-size:33px;display:block;margin-bottom:17px}
.festival-card .button{width:100%;min-width:0;gap:12px;padding:15px 17px}
.festival-card.red .button,.festival-card.dark .button,.festival-card.elegant .button{background:var(--gold);color:var(--ink)}
.menu-footnote{padding:26px 0 100px;border-top:1px solid #d9cfc1;color:#665c58;line-height:1.7;display:flex;justify-content:space-between;gap:30px;align-items:center}
.menu-footnote p{max-width:700px;margin:0}
.menu-footnote .button{flex-shrink:0}
.festive-inclusions{background:var(--primary);color:#faf7eb;padding:75px 0}
.festive-inclusions .shell{display:grid;grid-template-columns:1fr 2fr;gap:8%}
.festive-inclusions h2{font-size:clamp(3rem,4vw,4.5rem);margin:0}
.festive-inclusions ul{display:grid;grid-template-columns:1fr 1fr;gap:14px 35px;padding:0;margin:0;list-style:none}
.festive-inclusions li{border-bottom:1px solid #665852;padding:11px 0;color:#e8e0dd;line-height:1.6}
.festive-inclusions li:before{content:'✦';color:#cfab74;margin-right:12px}
.offer-note{background:var(--stone);padding:70px 0}
.offer-note .shell{display:flex;align-items:center;justify-content:space-between;gap:40px}
.offer-note h2{font-size:clamp(2.6rem,4vw,4.2rem);margin:0}
.offer-note p{max-width:460px;color:var(--muted);line-height:1.7;margin:12px 0 0}
.offer-note .button{flex-shrink:0}
.event-page-hero{background:var(--primary);color:white;padding:100px 0 85px;position:relative;overflow:hidden}
.event-page-hero:after{content:'';position:absolute;right:-4%;top:-50px;width:38%;height:115%;background:url('/assets/fast-coop-club-room-1040.webp') center/cover;opacity:.3;mask-image:linear-gradient(90deg,transparent,#000 38%)}
.event-page-hero .shell{position:relative;z-index:1}
.event-page-hero h1{font-size:clamp(4rem,8vw,8rem);line-height:.95;margin:20px 0 22px}
.event-page-hero p{color:#dfd7d4;max-width:590px;line-height:1.8;font-size:17px}
.event-options{padding-top:75px;padding-bottom:105px}
.event-intro{max-width:700px;margin-bottom:55px}
.event-intro h2{font-size:clamp(3rem,5vw,5.5rem);margin:18px 0}
.event-intro p{line-height:1.75;color:var(--muted)}
.event-block{border-top:1px solid #c6bcb7;padding:35px 0 50px;display:grid;grid-template-columns:300px 1fr;gap:45px}
.event-block h3{font-size:37px;line-height:1.1;margin:0 0 14px}
.event-block>div:first-child p{color:var(--muted);line-height:1.7}
.event-variants{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.event-variant{background:#fffaf2;padding:0;border:1px solid #e0dbce;overflow:hidden}
.event-variant-photo{display:block;width:100%;height:185px;object-fit:cover;background:#d9c9b2}
.event-variant-body{padding:23px}
.event-variant h4{font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:24px;margin:0 0 15px}
.event-variant p{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.event-variant strong{color:#302520}
.event-variant ul{padding-left:18px;color:#574c47;line-height:1.7;margin:0}
.event-variant li{margin:7px 0}
.event-cta{margin-top:22px}
.holiday-teaser{background:#281612;color:#f8f0e2;padding:35px 0}
.holiday-teaser .shell{display:flex;align-items:center;justify-content:space-between;gap:25px}
.holiday-teaser strong{font-family:'Playfair Display',Georgia,serif;font-size:28px;font-weight:400}
.holiday-teaser p{color:#dfd0bd;margin:7px 0 0;font-size:13px}
.holiday-teaser-links{display:flex;gap:12px;flex-wrap:wrap}
.holiday-teaser-links a{border:1px solid #b58e5f;padding:14px 17px;text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;white-space:nowrap}
.holiday-teaser-links a:hover{background:var(--gold);color:#261d1a}
.seasonal-footer{background:var(--deep);color:#f6f1e5;padding:42px 0}
.seasonal-footer .shell{display:flex;justify-content:space-between;gap:25px;align-items:center}
.seasonal-footer a{color:#f6f1e5;text-decoration:none}
.seasonal-footer a:hover{color:#d8b37d}
.seasonal-footer nav{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:1100px){.festival-menus.four{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-card{min-height:470px}.occasion-header nav{gap:14px}}
@media(max-width:940px){.occasion-header .shell{flex-wrap:wrap}.occasion-header nav{width:100%;justify-content:space-between}.seasonal-hero .shell{grid-template-columns:1fr;gap:45px;padding-top:70px;padding-bottom:70px}.poster-frame{max-width:700px}.christmas-visual{height:320px}.festival-menus{grid-template-columns:1fr 1fr}.festival-card{min-height:460px}.festive-inclusions .shell{grid-template-columns:1fr;gap:35px}.event-block{grid-template-columns:1fr;gap:20px}.holiday-teaser .shell{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.occasion-header nav{overflow:auto;justify-content:flex-start;gap:21px;padding-bottom:3px}.occasion-header .nav-cta{padding:0;border:0}.seasonal-hero h1,.event-page-hero h1{font-size:clamp(4rem,13vw,6rem)}.seasonal-intro{padding-top:70px}.festival-menus,.festival-menus.four{grid-template-columns:1fr;padding-bottom:75px}.festival-card{min-height:0}.gallery-heading p{margin-top:20px}.festive-inclusions ul,.event-variants{grid-template-columns:1fr}.menu-footnote,.offer-note .shell{display:block}.menu-footnote .button,.offer-note .button{margin-top:25px}.seasonal-footer .shell{display:block}.seasonal-footer nav{margin-top:25px}.event-page-hero:after{width:80%}}

.seasonal-intro .section-kicker{justify-content:center}

@media(max-width:940px){
  .seasonal-hero .shell{gap:30px;padding-top:44px;padding-bottom:44px}
  .seasonal-hero .shell>div,.seasonal-hero .shell>figure{min-width:0}
  .christmas-hero .shell{min-height:0}
  .christmas-visual{height:auto;border-width:4px;width:100%;max-width:480px;justify-self:center}
  .christmas-visual img{height:auto;object-fit:contain}
  .poster-frame{width:100%;min-width:0;box-sizing:border-box;transform:none;padding:5px;margin:0}
  .event-page-hero{padding:44px 0}
  .event-page-hero:after{display:none}
  .event-hero-photo{display:block;width:100%;height:auto;margin-top:30px;border:4px solid #6a5b54}
}
@media(max-width:600px){
  .seasonal-hero h1,.event-page-hero h1{font-size:clamp(3rem,12vw,4.5rem);line-height:1.02;overflow-wrap:break-word}
  .season-actions{gap:20px;margin-top:24px}
  .season-actions .button{width:100%}
  .event-variant-photo{height:auto;aspect-ratio:3/2;object-fit:contain}
}

@media(max-width:940px){.event-variant-photo{height:auto;aspect-ratio:3/2;object-fit:contain}}
@media(max-width:600px){
  .seasonal-intro{padding-top:48px;padding-bottom:30px}
  .seasonal-intro h2,.event-intro h2{font-size:clamp(2.5rem,10vw,3.5rem)}
  .festival-card{padding:25px 22px}
  .festival-card .menu-photo{margin-left:-22px;margin-right:-22px}
  .festival-card h3{font-size:clamp(2.2rem,10vw,3rem);overflow-wrap:break-word}
  .festival-card li{font-size:17px;padding:12px 0}
  .festival-menus,.festival-menus.four{padding-bottom:48px}
  .festive-inclusions,.offer-note{padding:45px 0}
  .offer-note .button,.menu-footnote .button{width:100%;white-space:normal;gap:15px}
  .event-options{padding-top:45px;padding-bottom:48px}
  .event-intro{margin-bottom:30px}
  .event-block{padding-top:26px;padding-bottom:30px;gap:22px}
  .event-block h3{font-size:31px}
  .event-variant-body{padding:20px}
  .event-variant h4{font-size:23px}
  .event-cta{margin-top:12px}
  .menu-footnote{padding-top:24px;padding-bottom:10px}
}

.event-variant-photo.real-photo{height:auto;aspect-ratio:auto;object-fit:contain}

.menu-photo>.photo-frame,.christmas-visual>.photo-frame{height:100%}
.poster-frame .photo-frame img{height:auto}
.event-variant{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}
.event-variant>.photo-frame{align-self:stretch;display:flex;align-items:center;background:var(--stone)}
.event-variant .event-variant-photo{height:auto;aspect-ratio:auto;object-fit:contain;max-height:340px}
.event-variant-body{min-width:0;padding:22px}
.event-variant h4{font-size:23px}
@media(max-width:1100px){.event-variants{grid-template-columns:1fr}.event-variant .event-variant-photo{max-height:300px}}
@media(max-width:600px){
 .event-variant{grid-template-columns:112px minmax(0,1fr)}
 .event-variant-body{padding:16px}
 .event-variant h4{font-size:21px;margin-bottom:10px}
 .event-variant .event-variant-photo{max-height:260px}
 .event-variant p,.event-variant ul{font-size:13px;line-height:1.6}
 .event-variant ul{padding-left:14px}
}

.card-strip-tools{display:none}
@media(max-width:600px){
 .event-variants,.festival-menus,.festival-menus.four{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;gap:14px;padding-bottom:10px;align-items:stretch}
 .event-variant,.festival-menus .festival-card{flex:0 0 calc(100% - 18px);min-width:0;scroll-snap-align:start}
 .event-variant{display:flex;flex-direction:column;align-items:stretch}
 .event-variant>.photo-frame{display:flex;justify-content:center;align-items:center;height:200px;flex:0 0 200px}
 .event-variant .event-variant-photo{height:100%;width:100%;max-height:none;object-fit:contain}
 .event-variant-body{padding:20px}
 .event-variant h4{font-size:25px}
 .event-variant p,.event-variant ul{font-size:14px}
 .card-strip-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 24px;color:#7d613c;font-size:11px}
 .card-strip-tools>div{display:flex;gap:8px}
 .card-strip-tools button{height:40px;width:40px;border:1px solid #a88758;background:transparent;color:#392c26;border-radius:50%;font-size:20px;cursor:pointer}
 .festival-menus+.card-strip-tools{width:calc(100% - 36px);margin:14px auto 40px}
}

.festive-inclusions h2 em,.event-page-hero h1 em{color:var(--gold-light)}

.swipe-hint{display:none}
@media(max-width:600px){
 .card-strip-tools .swipe-hint{display:inline-block;font-size:23px;margin-left:auto;color:var(--bronze)}
 .card-strip-tools.hint-active .swipe-hint{animation:swipe-hint 1.6s ease-in-out 3}
}
@keyframes swipe-hint{0%,100%{transform:translateX(0);opacity:.6}35%{transform:translateX(-5px);opacity:1}70%{transform:translateX(5px);opacity:1}}
@media(prefers-reduced-motion:reduce){.card-strip-tools.hint-active .swipe-hint{animation:none}}

.festival-card[id]{scroll-margin-top:calc(var(--header-height,76px) + 20px)}
