/* Montserrat - normal - cyrillic; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/montserrat-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Montserrat - normal - latin; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/montserrat-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Playfair Display - italic - cyrillic; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Playfair Display';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/playfair-display-italic-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Playfair Display - italic - latin; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Playfair Display';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/playfair-display-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Playfair Display - normal - cyrillic; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Playfair Display';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/playfair-display-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Playfair Display - normal - latin; SIL OFL 1.1. */
@font-face {
  font-family: 'NY27 Playfair Display';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/uploads/new-year-2027/fonts/playfair-display-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


.ny27-page{--ny-green:#10291e;--ny-deep:#071b13;--ny-gold:#d7b36b;--ny-cream:#f6f2e9;--ny-ink:#26372b;--ny-muted:#6b7268;color:var(--ny-ink);overflow:clip;background:var(--ny-cream)}
.ny27-page *, .ny27-page *::before,.ny27-page *::after{box-sizing:border-box}
.ny27-page a{touch-action:manipulation}
.ny27-page img{display:block;max-width:100%}
.ny27-page h1,.ny27-page h2,.ny27-page h3,.ny27-page p{margin:0}
.ny27-container{width:min(1180px,calc(100% - 80px));margin-inline:auto}
.ny27-page [id]{scroll-margin-top:108px}
.ny27-page h2{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(34px,4.3vw,62px);font-weight:400;line-height:1.12;letter-spacing:-.035em}
.ny27-page h2 em{font-weight:400;color:#977027}
.ny27-page p{font-size:15px;line-height:1.8}
.ny27-eyebrow{color:var(--ny-gold);font-size:10px!important;font-weight:600;letter-spacing:.24em;text-transform:uppercase}
.ny27-hero{position:relative;background:var(--ny-deep);color:var(--ny-cream);padding:140px 0 60px;isolation:isolate}
.ny27-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 20% 35%,#284c2f99,transparent 60%),linear-gradient(125deg,#142e20,#061b13 65%)}
.ny27-hero-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:90px;align-items:center}
.ny27-title{font-family:var(--font-heading,'Playfair Display',serif);font-size:clamp(40px,5vw,68px);font-weight:400;line-height:1.05;letter-spacing:.015em;margin-top:30px!important}
.ny27-title span{display:block;font-size:clamp(130px,16vw,228px);line-height:.94;letter-spacing:-.065em;color:var(--ny-gold);background:linear-gradient(110deg,#e8d49b,#c69b47 55%,#f2dfaa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ny27-hero-label{font-size:13px!important;text-transform:uppercase;letter-spacing:.3em;margin:18px 0 24px!important;color:#e2d7bc}
.ny27-tagline{font-family:var(--font-heading,serif);font-size:clamp(23px,2.5vw,32px)!important;line-height:1.4!important;max-width:450px}
.ny27-tagline em{color:var(--ny-gold)}
.ny27-event{display:flex;flex-direction:column;gap:7px;margin:30px 0;font-size:13px;line-height:1.6;letter-spacing:.02em}
.ny27-event strong{font-size:22px;font-weight:500;color:var(--ny-gold)}
.ny27-event-dress{color:#b8c4b8}.ny27-event-dress b{color:#f4ebdb;font-weight:500;margin-left:6px}
.ny27-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px}
.ny27-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:17px 25px;border:1px solid transparent;border-radius:5px;font-size:12px;font-weight:600;line-height:1.45;text-align:center;text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s;min-height:52px}
.ny27-button:hover{transform:translateY(-3px);box-shadow:0 10px 24px #0002}
.ny27-button-gold{background:linear-gradient(110deg,#e5cc87,#c49536);color:#19251a!important}
.ny27-button-dark{background:var(--ny-green);color:#fff!important;width:100%}
.ny27-text-link{color:inherit;font-size:12px;text-decoration:none;border-bottom:1px solid #c4953680;padding:9px 0;display:inline-flex;gap:15px;align-items:center}
.ny27-text-link:hover{color:var(--ny-gold)}
.ny27-capacity{font-size:11px!important;color:#b7c1b3;margin-top:20px!important}.ny27-capacity span{color:var(--ny-gold);margin-right:6px}
.ny27-hero-poster{position:relative;display:block;border:1px solid #c4953666;border-radius:180px 180px 10px 10px;padding:8px;box-shadow:0 24px 70px #0005;transform:rotate(2deg);transition:transform .5s}
.ny27-hero-poster:hover{transform:rotate(0)}
.ny27-hero-poster img{width:100%;height:auto;border-radius:172px 172px 5px 5px}
.ny27-image-hint{position:absolute;left:24px;right:24px;bottom:24px;background:#081d17e8;backdrop-filter:blur(10px);padding:12px 16px;border:1px solid #b98e4355;border-radius:4px;color:#f6eddb;display:flex;justify-content:space-between;font-size:11px}
.ny27-scroll{display:flex;align-items:center;gap:14px;justify-content:center;text-decoration:none;color:#b3c0b4;font-size:9px;letter-spacing:.18em;text-transform:uppercase;width:max-content;max-width:100%;margin:50px auto 0}
.ny27-scroll span{display:block;width:36px;height:1px;background:#c49536}
.ny27-sparks{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.ny27-sparks i{position:absolute;width:3px;height:3px;border-radius:50%;background:#e1c987;box-shadow:0 0 14px #d4b265;animation:ny27-spark 7s ease-in-out infinite;opacity:.35}.ny27-sparks i:nth-child(1){left:5%;top:20%}.ny27-sparks i:nth-child(2){left:44%;top:11%;animation-delay:-2s}.ny27-sparks i:nth-child(3){left:48%;top:70%;animation-delay:-4s}.ny27-sparks i:nth-child(4){left:7%;top:84%;animation-delay:-3s}.ny27-sparks i:nth-child(5){left:95%;top:50%;animation-delay:-1s}.ny27-sparks i:nth-child(6){left:60%;top:90%;animation-delay:-5s}
.ny27-section-nav{background:#0d241a;border-top:1px solid #b78e3c44;border-bottom:1px solid #b78e3c44}.ny27-section-nav .ny27-container{display:flex;justify-content:center;gap:40px;overflow-x:auto;padding:20px 0;scrollbar-width:thin}.ny27-section-nav a{color:#e0d9c6;font-size:11px;white-space:nowrap;text-decoration:none;letter-spacing:.04em}.ny27-section-nav a:hover{color:var(--ny-gold)}
.ny27-section{padding:100px 0}.ny27-cream{background:var(--ny-cream)}
.ny27-section-heading{max-width:780px;margin:0 auto 48px;text-align:center}.ny27-section-heading .ny27-eyebrow{color:#987426}.ny27-section-heading h2{margin:14px 0 20px}.ny27-section-heading>p:last-child{color:var(--ny-muted);max-width:590px;margin:auto}
.ny27-artists{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #c8ba9866;border-bottom:1px solid #c8ba9866}
.ny27-artist{padding:30px 24px 34px;border-right:1px solid #c8ba9866}.ny27-artist:last-child{border:0}.ny27-artist-number{font-family:var(--font-heading,serif);font-size:36px;color:#b9944c}.ny27-artist-role{font-size:10px!important;letter-spacing:.09em;text-transform:uppercase;color:#747c6c;margin:28px 0 8px!important}.ny27-artist h3{font-family:var(--font-heading,serif);font-size:27px;font-weight:500;line-height:1.2;margin-bottom:14px}.ny27-artist>p:last-child{font-size:12px;color:var(--ny-muted);line-height:1.7}
.ny27-evening-extras{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 32px;margin-top:34px}.ny27-evening-extras p{font-size:12px}.ny27-evening-extras span{color:#b48b40;margin-right:8px}
.ny27-menu-section{background:#fffdf8}.ny27-welcome{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:var(--ny-green);color:#e9eddf;padding:38px 44px;border-radius:8px;margin-bottom:34px}.ny27-welcome>div+div{border-left:1px solid #d7b36b55;padding-left:44px}.ny27-menu-kicker{font-size:9px;font-weight:600;letter-spacing:.2em;color:var(--ny-gold)}.ny27-welcome h3{font-family:var(--font-heading,serif);color:#eddbab;font-size:32px;font-weight:400;margin:10px 0 12px}.ny27-welcome p{font-size:13px;color:#c4cec0}
.ny27-menu-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.ny27-menu-card{background:#f6f2e9;border:1px solid #d8c8a64d;padding:32px;border-radius:8px}.ny27-menu-card h3{font-family:var(--font-heading,serif);font-size:25px;font-weight:500;line-height:1.3;display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid #c6ad7466;margin-bottom:20px}.ny27-menu-card h3>span{font-family:var(--font-body,sans-serif);font-size:10px;color:#94732d}.ny27-menu-card ul{padding:0;margin:0;list-style:none}.ny27-menu-card li{position:relative;padding-left:16px;margin:0 0 16px;font-size:13px;line-height:1.75}.ny27-menu-card li:last-child{margin:0}.ny27-menu-card li::before{content:'◆';position:absolute;left:0;top:3px;font-size:7px;color:#b88f3f}.ny27-menu-stack{display:grid;gap:28px}.ny27-preorder{border-top:1px solid #c6ad7466;padding-top:18px;margin-top:20px}.ny27-preorder strong{display:block;font-size:9px;letter-spacing:.07em;text-transform:uppercase;line-height:1.7}.ny27-preorder p{font-size:13px;margin-top:7px}.ny27-menu-original{margin-top:26px;color:#856124}
.ny27-dress{background:var(--ny-green);color:#f6f2e9}.ny27-dress-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.ny27-dress h2{margin:18px 0 24px}.ny27-dress h2 em{color:var(--ny-gold)}.ny27-dress-intro{max-width:350px;color:#bcc8ba}.ny27-swatches{display:flex;gap:12px;margin-top:28px}.ny27-swatches i{width:23px;height:23px;border-radius:50%;border:1px solid #ffffff50;background:#101310}.ny27-swatches i:nth-child(2){background:#166141}.ny27-swatches i:nth-child(3){background:#e7d9b2}.ny27-swatches i:nth-child(4){background:#c49536}.ny27-swatches i:nth-child(5){background:#7b2935}.ny27-dress-cards{display:grid;gap:22px}.ny27-dress-card{padding:30px 34px;border:1px solid #bda15e66;border-radius:6px;background:#ffffff03}.ny27-dress-card h3{font-family:var(--font-heading,serif);font-size:29px;font-weight:400;margin:10px 0 14px;color:#f0dfb5}.ny27-dress-card p{font-size:13px;color:#d8ded1}.ny27-dress-card .ny27-dress-detail{font-size:12px;color:#aebaac;margin-top:15px}
.ny27-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.ny27-price-grid h2{margin:15px 0 22px}.ny27-price-grid>.ny27-reveal>p:last-child{color:var(--ny-muted)}.ny27-price-grid .ny27-eyebrow{color:#987426}.ny27-price-card{padding:38px 36px;border:1px solid #c9b785;border-radius:8px;background:#fffdf8;box-shadow:0 16px 40px #332c1906}.ny27-price-card dl{margin:0}.ny27-price-card dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:22px 0;border-bottom:1px solid #d9d0bb}.ny27-price-card dl>div:first-child{padding-top:0}.ny27-price-card dt{font-size:12px}.ny27-price-card dd{font-family:var(--font-heading,serif);font-size:27px;white-space:nowrap;margin:0}.ny27-price-card dd span{font-size:18px}.ny27-price-card .ny27-price-free{font-size:23px;color:#89702f}.ny27-price-card>p{color:var(--ny-muted);font-size:11px;text-align:center;margin:24px 0}
.ny27-gallery{background:#ebe6da}.ny27-poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:start}.ny27-poster-card{color:var(--ny-ink);text-decoration:none;min-width:0}.ny27-poster-card img{width:100%;height:auto;aspect-ratio:auto;border-radius:5px;background:#082015;transition:transform .4s,box-shadow .4s}.ny27-poster-card:hover img{transform:translateY(-6px);box-shadow:0 16px 30px #0b241b33}.ny27-poster-card>span{display:flex;justify-content:space-between;gap:15px;font-size:11px;line-height:1.6;margin-top:14px}.ny27-poster-card b{font-size:18px;font-weight:400;color:#9a752d}
.ny27-reserve{text-align:center;background:radial-gradient(ellipse at 50% 100%,#2f4a29,#0a2118 65%);color:var(--ny-cream);padding-bottom:110px}.ny27-reserve h2{margin:20px 0}.ny27-reserve h2 em{color:var(--ny-gold)}.ny27-reserve p:not(.ny27-eyebrow){color:#bdc9b7;max-width:550px;margin-inline:auto}.ny27-reserve-phone{display:inline-block;font-family:var(--font-heading,serif);font-size:clamp(28px,4vw,45px);color:#efdfb6;letter-spacing:.03em;text-decoration:none;margin:28px 0}.ny27-reserve .ny27-actions{justify-content:center}
.ny27-lightbox{position:fixed;inset:0;margin:auto;padding:18px 24px;background:#071a13;color:#f4ead0;border:1px solid #d7b36b66;border-radius:10px;width:min(720px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);overflow:auto;box-shadow:0 20px 100px #0008}.ny27-lightbox::backdrop{background:#030c09e6;backdrop-filter:blur(7px)}.ny27-lightbox img{max-height:calc(100dvh - 180px);width:auto;max-width:100%;height:auto;object-fit:contain;margin:auto}.ny27-lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;font-size:12px}.ny27-lightbox button{background:transparent;border:1px solid #d7b36b66;color:#e5c483;border-radius:50%;width:42px;height:42px;font-size:24px;cursor:pointer;flex-shrink:0}.ny27-lightbox-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:14px;font-size:12px}.ny27-page a:focus-visible,.ny27-page button:focus-visible{outline:2px solid #c49536;outline-offset:5px}
.ny27-enter{animation:ny27-enter .85s both}.ny27-hero-copy .ny27-enter:nth-child(2){animation-delay:.1s}.ny27-hero-copy .ny27-enter:nth-child(3){animation-delay:.2s}.ny27-hero-copy .ny27-enter:nth-child(n+4){animation-delay:.3s}.ny27-motion .ny27-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.ny27-motion .ny27-reveal.is-visible{opacity:1;transform:none}
@keyframes ny27-enter{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes ny27-spark{0%,100%{transform:translateY(0);opacity:.15}50%{transform:translateY(-24px);opacity:.65}}
@media(min-width:1500px){.ny27-hero{padding-top:150px}.ny27-hero-poster{max-width:455px;margin-left:auto}}
@media(max-width:1100px){.ny27-hero-grid{gap:44px}.ny27-container{width:calc(100% - 56px)}.ny27-artist{padding-inline:18px}.ny27-price-grid,.ny27-dress-grid{gap:44px}.ny27-price-card{padding:28px 24px}.ny27-price-card dd{font-size:23px}.ny27-hero .ny27-actions{gap:12px}}
@media(max-width:767px){.ny27-container{width:calc(100% - 36px)}.ny27-hero{padding:48px 0 34px}.ny27-hero-grid{grid-template-columns:1fr;gap:40px}.ny27-hero-copy{text-align:center}.ny27-title{margin-top:22px!important;font-size:43px}.ny27-title span{font-size:160px}.ny27-tagline{margin:auto!important;max-width:330px;font-size:26px!important}.ny27-hero-label{font-size:11px!important}.ny27-hero .ny27-actions{justify-content:center}.ny27-hero-poster{width:min(360px,88%);margin:0 auto;transform:none;border-radius:120px 120px 8px 8px}.ny27-hero-poster img{border-radius:112px 112px 4px 4px}.ny27-scroll{margin-top:30px}.ny27-eyebrow{font-size:8px!important;letter-spacing:.18em}.ny27-event{font-size:11px;margin:24px 0}.ny27-section{padding:62px 0}.ny27-section-heading{margin-bottom:30px}.ny27-section-heading>p:last-child{font-size:13px}.ny27-section-nav .ny27-container{justify-content:flex-start;gap:24px;padding-block:17px}.ny27-page h2{font-size:36px}.ny27-artists{grid-template-columns:1fr 1fr}.ny27-artist{padding:22px 16px}.ny27-artist:nth-child(2){border-right:0}.ny27-artist:nth-child(-n+2){border-bottom:1px solid #c8ba9866}.ny27-artist h3{font-size:23px}.ny27-artist-role{font-size:9px!important;margin-top:18px!important}.ny27-evening-extras{display:grid;gap:13px;margin-top:25px}.ny27-evening-extras p{font-size:11px}.ny27-welcome{grid-template-columns:1fr;padding:26px;gap:24px}.ny27-welcome>div+div{padding:24px 0 0;border-left:0;border-top:1px solid #d7b36b55}.ny27-menu-columns,.ny27-dress-grid,.ny27-price-grid{grid-template-columns:1fr;gap:25px}.ny27-menu-card{padding:26px 22px}.ny27-menu-card h3{font-size:24px}.ny27-menu-card li{font-size:12px}.ny27-menu-stack{gap:25px}.ny27-dress-grid>.ny27-reveal:first-child{text-align:center}.ny27-dress-intro{margin:auto!important}.ny27-swatches{justify-content:center}.ny27-dress-card{padding:25px}.ny27-price-grid>.ny27-reveal:first-child{text-align:center}.ny27-price-card dd{font-size:24px}.ny27-price-card dt{font-size:11px}.ny27-poster-grid{grid-template-columns:1fr 1fr;gap:24px 16px}.ny27-reserve{padding-bottom:85px}.ny27-reserve .ny27-actions{gap:18px}.ny27-lightbox{padding:14px}.ny27-page [id]{scroll-margin-top:24px}}
@media(max-width:479px){.ny27-price-card dl>div{flex-direction:column;align-items:flex-start;gap:8px}.ny27-price-card dd{font-size:27px}}
@media(max-width:359px){.ny27-title span{font-size:140px}.ny27-price-card{padding:24px 16px}.ny27-price-card dd{font-size:24px}.ny27-button{padding-inline:18px}.ny27-artists{grid-template-columns:1fr}.ny27-artist{border-right:0;border-bottom:1px solid #c8ba9866}}
@media(prefers-reduced-motion:reduce){.ny27-page *,.ny27-page *::before,.ny27-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ny27-motion .ny27-reveal{opacity:1;transform:none}.ny27-hero-poster{transform:none}}


/* Page-scoped typography: two families, explicit Cyrillic and real italic. */
.ny27-page {
    --font-body: 'NY27 Montserrat', 'Montserrat', Arial, sans-serif;
    --font-heading: 'NY27 Playfair Display', 'Playfair Display', Georgia, serif;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75;
    font-synthesis: none;
    font-variant-numeric: lining-nums;
}
.ny27-page h1, .ny27-page h2, .ny27-tagline, .ny27-reserve-phone {
    font-family: var(--font-body);
    font-weight: 400;
}
.ny27-page h2 { font-family: var(--font-body); font-size: clamp(30px, 3vw, 42px); font-weight: 500; line-height: 1.3; letter-spacing: -.025em; }
.ny27-page h2 em { font-family: inherit; font-style: normal; font-weight: inherit; }
.ny27-tagline em { font-style: normal; font-weight: 500; }
.ny27-page h3 {
    font-family: var(--font-body);
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: -.02em;
}
.ny27-artist h3 { font-size: 23px; }
.ny27-welcome h3, .ny27-dress-card h3 { font-size: 21px; }
.ny27-page p, .ny27-menu-card li { font-family: var(--font-body); }
.ny27-page p { font-size: 15px; line-height: 1.8; }
.ny27-artist > p:last-child, .ny27-welcome p,
.ny27-menu-card li, .ny27-preorder p, .ny27-dress-card p,
.ny27-dress-card .ny27-dress-detail { font-size: 15px; line-height: 1.75; }
.ny27-eyebrow { font-size: 11px !important; letter-spacing: .16em; font-weight: 600; }
.ny27-artist-role { font-size: 11px !important; letter-spacing: .08em; font-weight: 500; }
.ny27-menu-kicker { font-family: var(--font-body); font-size: 10px; letter-spacing: .13em; font-weight: 600; }
.ny27-section-nav a, .ny27-poster-card > span,
.ny27-text-link, .ny27-button, .ny27-image-hint,
.ny27-lightbox-toolbar, .ny27-lightbox-controls { font-family: var(--font-body); font-size: 13px; line-height: 1.6; }
.ny27-button { font-weight: 600; }
.ny27-price-card dt { font-family: var(--font-body); font-size: 14px; font-weight: 500; }
.ny27-price-card dd { font-family: var(--font-body); font-size: 26px; font-weight: 500; line-height: 1.35; letter-spacing: -.04em; font-variant-numeric: lining-nums tabular-nums; }
.ny27-price-card dd span { font-size: 19px; }
.ny27-price-card .ny27-price-free { font-size: 23px; font-weight: 500; letter-spacing: -.025em; }
.ny27-event { font-family: var(--font-body); font-size: 13px; }
.ny27-event strong { font-weight: 500; font-variant-numeric: tabular-nums; }
@media (max-width: 1000px) {
    .ny27-price-grid { grid-template-columns: 1fr; gap: 30px; }
    .ny27-price-grid > div:first-child { text-align: center; }
    .ny27-price-card { width: 100%; max-width: 620px; margin-inline: auto; }
}
@media (max-width: 767px) {
    .ny27-page h2 { font-size: 30px; line-height: 1.3; }
    .ny27-page h3, .ny27-welcome h3, .ny27-dress-card h3 { font-size: 21px; }
    .ny27-artist h3 { font-size: 21px; }
    .ny27-page p { font-size: 14px; }
    .ny27-eyebrow { font-size: 10px !important; letter-spacing: .13em; }
    .ny27-artist-role { font-size: 10px !important; }
    .ny27-price-card dd { font-size: 25px; }
}
@media (max-width: 359px) {
    .ny27-page h2 { font-size: 28px; }
    .ny27-price-card dd { font-size: 23px; }
}

/* One text family throughout the page; only the 007 numeral is decorative. */
.ny27-title { font-family: var(--font-body); font-weight: 500; font-size: clamp(38px, 4vw, 58px); letter-spacing: -.03em; }
.ny27-title span { font-family: var(--font-heading); font-weight: 400; font-style: normal; }
.ny27-tagline { font-family: var(--font-body); font-size: clamp(22px, 2.2vw, 28px) !important; line-height: 1.55 !important; letter-spacing: -.02em; }
.ny27-reserve-phone { font-family: var(--font-body); font-size: clamp(25px, 3.5vw, 38px); font-weight: 500; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
@media(max-width:767px) { .ny27-title { font-size: 38px; } .ny27-tagline { font-size: 23px !important; } }

/* Seating plan: natural image proportions, same type scale as the page. */
.ny27-seating { background: #fffdf8; }
.ny27-seating-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; max-width: 760px; margin: 0 auto 30px; }
.ny27-seating-tier { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 22px 26px; border: 1px solid #cfbb8e66; background: var(--ny-cream); border-radius: 8px; }
.ny27-seat-dot { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px #baa87580; }
.ny27-seat-dot-red { background: #b7353d; }
.ny27-seat-dot-blue { background: #12678b; }
.ny27-page .ny27-seating-tier h3 { font-size: 14px; font-weight: 500; margin: 0 0 6px; letter-spacing: 0; }
.ny27-page .ny27-seating-tier p { font-size: 25px; font-weight: 500; line-height: 1.3; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.ny27-seating-tier p span { font-size: 12px; font-weight: 400; letter-spacing: 0; }
.ny27-seating-image { display: block; padding: 14px; background: #fffef5; border: 1px solid #c4aa7066; border-radius: 10px; box-shadow: 0 14px 40px #26372b08; text-decoration: none; color: var(--ny-ink); }
.ny27-page .ny27-seating-image img { width: 100%; height: auto; aspect-ratio: auto; border-radius: 3px; }
.ny27-seating-image-label { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 10px 4px; font-size: 12px; font-weight: 500; }
.ny27-seating-image-label b { color: #987027; font-size: 20px; font-weight: 400; }
.ny27-seating-footer { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 16px; }
.ny27-page .ny27-seating-footer p { font-size: 12px; color: var(--ny-muted); }
.ny27-seating-footer a { white-space: nowrap; color: #856124; }
.ny27-seating-action { display: flex; justify-content: center; margin-top: 28px; }
.ny27-seating-action .ny27-button { width: auto; }
.ny27-lightbox--seating { width: min(1200px, calc(100vw - 28px)); }
.ny27-page .ny27-lightbox--seating img { max-width: 100%; max-height: calc(100dvh - 180px); width: auto; height: auto; }
@media (max-width: 767px) {
    .ny27-seating-legend { gap: 12px; margin-bottom: 22px; }
    .ny27-seating-tier { flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 16px; }
    .ny27-seat-dot { width: 22px; height: 22px; flex-basis: 22px; }
    .ny27-page .ny27-seating-tier h3 { font-size: 12px; }
    .ny27-page .ny27-seating-tier p { font-size: 23px; }
    .ny27-seating-tier p span { display: block; margin-top: 4px; font-size: 11px; }
    .ny27-seating-image { padding: 6px; }
    .ny27-seating-image-label { font-size: 11px; padding-inline: 8px; }
    .ny27-seating-footer { flex-direction: column; gap: 8px; }
}
/* Full-width photographic opening; all overrides stay inside the event hero. */
.ny27-page .ny27-hero { min-height: min(1040px, 110svh); padding: clamp(90px, 8vw, 132px) 0 44px; overflow: hidden; }
.ny27-hero-background { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ny27-page .ny27-hero-background img { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; object-position: center; }
.ny27-hero .ny27-glow { z-index: 1; background: linear-gradient(90deg, rgba(4,22,15,.28) 0%, rgba(4,22,15,.38) 10%, rgba(4,22,15,.74) 26%, rgba(4,22,15,.76) 42%, rgba(4,22,15,.3) 60%, rgba(4,22,15,.04) 80%), linear-gradient(0deg, rgba(4,22,15,.75), transparent 32%); }
.ny27-hero .ny27-sparks { z-index: 1; }
.ny27-hero .ny27-hero-grid { display: block; position: relative; z-index: 2; }
.ny27-hero .ny27-hero-copy { width: 54%; max-width: 610px; }
.ny27-hero .ny27-title { margin-top: 22px !important; color: var(--ny-cream); }
.ny27-hero .ny27-title span { font-size: clamp(130px, 12vw, 182px); }
.ny27-hero .ny27-tagline { max-width: 460px; }
.ny27-hero .ny27-hero-label { margin: 14px 0 20px !important; }
.ny27-hero .ny27-event { margin: 24px 0; }
.ny27-hero .ny27-scroll { position: relative; z-index: 2; margin-top: 36px; color: #f1ead9; }
.ny27-hero .ny27-capacity, .ny27-hero .ny27-event-dress { color: #d6dfd2; }
/* Preserve the full photograph on wide screens as well. */
@media (min-width: 768px) and (max-width: 1100px) {
    .ny27-hero .ny27-hero-copy { width: 62%; }
    .ny27-hero .ny27-glow { background: linear-gradient(90deg, rgba(4,22,15,.94), rgba(4,22,15,.76) 45%, rgba(4,22,15,.14) 90%); }
}
@media (max-width: 767px) {
    .ny27-page .ny27-hero { min-height: 0; aspect-ratio: auto; padding: 0 0 42px; }
    .ny27-hero-background { position: relative; inset: auto; display: block; width: 100%; }
    .ny27-page .ny27-hero-background img { width: 100%; height: auto; object-fit: contain; object-position: center; }
    .ny27-hero .ny27-hero-grid { padding-top: 32px; }
    .ny27-hero .ny27-glow { display: none; }
    .ny27-hero .ny27-hero-copy { width: 100%; max-width: 520px; margin-inline: auto; text-align: center; }
    .ny27-hero .ny27-title span { font-size: 136px; }
    .ny27-hero .ny27-tagline { max-width: 340px; margin-inline: auto !important; }
    .ny27-hero .ny27-eyebrow { line-height: 1.9; }
    .ny27-hero .ny27-actions { justify-content: center; gap: 12px 22px; }
    .ny27-hero .ny27-scroll { margin-top: 28px; font-size: 9px; }
}
@media (max-width: 359px) {
    .ny27-hero .ny27-title { font-size: 34px; }
    .ny27-hero .ny27-title span { font-size: 122px; }
    .ny27-hero .ny27-tagline { font-size: 21px !important; }
    .ny27-hero .ny27-event { font-size: 11px; }
}

/* Only the newly painted side margins may be trimmed; the original scene stays complete. */
.ny27-page .ny27-hero.ny27-fill-edges .ny27-hero-background img { object-fit: cover; object-position: center; }

/* Full-width section bar stays inside the first block, rather than below its edge. */
.ny27-page .ny27-hero { padding-bottom: 128px; }
.ny27-hero > .ny27-section-nav {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
    width: 100%; margin: 0; padding: 0; transform: none;
    background: #0d241a; border: 0; border-top: 1px solid #b78e3c44;
    border-radius: 0; box-shadow: none;
}
.ny27-hero > .ny27-section-nav .ny27-container {
    display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
    width: calc(100% - 72px); max-width: 1180px; margin: 0 auto; padding: 9px 0;
    align-items: center; gap: 0 16px;
    overflow: visible;
}
.ny27-hero > .ny27-section-nav a {
    display: inline-flex; min-height: 44px; align-items: center; justify-content: center;
    padding: 5px 0; color: #e0d9c6; font-family: var(--font-body);
    font-size: 12px; line-height: 1.5; white-space: nowrap;
    text-align: center; text-decoration: none; transition: color .2s;
}
.ny27-hero > .ny27-section-nav a:hover { color: var(--ny-gold); }
@media (min-width: 768px) and (max-width: 1100px) {
    .ny27-hero > .ny27-section-nav .ny27-container { width: calc(100% - 40px); gap: 0 22px; }
    .ny27-hero > .ny27-section-nav a { font-size: 11px; }
}
@media (max-width: 767px) {
    .ny27-page .ny27-hero { padding-bottom: 0; }
    .ny27-hero > .ny27-section-nav { position: relative; margin: 32px 0 0; }
    .ny27-hero > .ny27-section-nav .ny27-container { width: calc(100% - 36px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
    .ny27-hero > .ny27-section-nav a { white-space: normal; font-size: 11px; }
}

/* The desktop opening ends at the viewport edge, including its section bar. */
@media (min-width: 768px) {
    .ny27-page .ny27-hero { box-sizing: border-box; min-height: 100vh; min-height: 100svh; }
}

/* Approved light editorial layout. Typography remains the existing page typography. */
.ny27-menu-section { background: #f2eee5; }
.ny27-menu-section > .ny27-container > .ny27-section-heading {
    max-width: 1000px; margin: 0 auto 40px; text-align: left;
}
.ny27-light-banquet-grid {
    display: grid; grid-template-columns: 1fr 1.1fr; grid-template-areas: "copy photo"; align-items: center;
    gap: 64px; max-width: 1000px;
}
.ny27-light-banquet-copy { grid-area: copy; min-width: 0; }
.ny27-light-banquet-copy .ny27-menu-kicker { display: block; color: #8b6a29; }
.ny27-page .ny27-light-banquet-copy h3 { font-size: 21px; color: var(--ny-ink); margin: 8px 0 12px; }
.ny27-page .ny27-light-banquet-copy p { font-size: 15px; line-height: 1.8; color: #4b584b; }
.ny27-light-banquet-item + .ny27-light-banquet-item { margin-top: 26px; padding-top: 24px; border-top: 1px solid #b9a37266; }
.ny27-light-banquet-photos { grid-area: photo; display: block; min-width: 0; width: 100%; max-width: 440px; justify-self: end; }
.ny27-light-photo { margin: 0; min-width: 0; }
.ny27-light-photo-mount {
    padding: 10px; background: linear-gradient(135deg, #e8ddc7, #faf5eb 48%, #e8dcc4);
    border: 1px solid #c4a86c; border-radius: 8px;
    box-shadow: 0 10px 24px #4d3c1d14, 0 2px 5px #4d3c1d0a;
}
.ny27-page .ny27-light-photo img {
    display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain;
    border: 0; outline: 0; border-radius: 3px;
}
.ny27-light-photo figcaption { font-family: var(--font-body); font-size: 11px; line-height: 1.6; color: #687362; padding-top: 8px; }
.ny27-light-banquet-note { max-width: 1000px; font-family: var(--font-body); font-size: 10px; line-height: 1.7; color: #687362; text-align: right; margin-top: 28px; }
.ny27-menu-balanced { margin-top: 28px; align-items: stretch; }
@media (min-width: 768px) {
    .ny27-menu-balanced > .ny27-menu-cold { display: flex; flex-direction: column; }
    .ny27-menu-balanced > .ny27-menu-cold > ul { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    .ny27-light-banquet-grid { gap: 40px; }
}
@media (max-width: 767px) {
    .ny27-menu-section > .ny27-container > .ny27-section-heading { margin-bottom: 30px; }
    .ny27-light-banquet-grid { grid-template-columns: 1fr; grid-template-areas: "photo" "copy"; gap: 26px; }
    .ny27-page .ny27-light-banquet-copy p { font-size: 14px; }
    .ny27-light-banquet-photos { max-width: 440px; justify-self: center; }
    .ny27-light-photo-mount { padding: 8px; }
    .ny27-light-banquet-note { text-align: left; margin-top: 24px; }
    .ny27-menu-balanced { margin-top: 24px; align-items: start; }
}
@media (max-width: 479px) {
    .ny27-light-banquet-photos { max-width: 380px; justify-self: center; }
}

/* A quiet transition between the programme and the light banquet section. */
.ny27-page #ny27-program { padding-bottom: 64px; }
.ny27-page .ny27-menu-section { position: relative; padding-top: 64px; }
.ny27-menu-section::before {
    content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
    width: min(1180px, calc(100% - 80px)); height: 1px; pointer-events: none;
    background: linear-gradient(90deg, transparent, #b8964d66 18%, #b8964d66 82%, transparent);
}
.ny27-menu-section > .ny27-container > .ny27-section-heading > p:last-child { margin-left: 0; margin-right: 0; }
@media (max-width: 1100px) { .ny27-menu-section::before { width: calc(100% - 56px); } }
@media (max-width: 767px) {
    .ny27-page #ny27-program { padding-bottom: 42px; }
    .ny27-page .ny27-menu-section { padding-top: 44px; }
    .ny27-menu-section::before { width: calc(100% - 36px); }
}

/* Stronger welcome text; preserve section spacing and the entire photo column. */
@media (min-width: 768px) {
    .ny27-page .ny27-light-banquet-copy h3 { font-size: 28px; }
    .ny27-page .ny27-light-banquet-copy p { font-size: 16px; }
}
/* Four clean typographic covers; full original artwork opens from each link. */
.ny27-poster-card > .ny27-poster-cover {
    position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 0;
    margin: 0; width: 100%; aspect-ratio: 853 / 1280; padding: 24px 22px;
    overflow: hidden; border: 1px solid #aa8c4859; border-radius: 6px;
    background: #0d241a; color: #f4eedf; text-align: left;
    box-shadow: 0 8px 22px #10291e0d; transition: transform .3s ease, box-shadow .3s ease;
}
.ny27-cover-art {
    position: absolute; inset: 46% 0 0; z-index: -1; pointer-events: none;
    background-size: cover; background-repeat: no-repeat; background-position: center;
}
.ny27-cover-invitation .ny27-cover-art { background-image: linear-gradient(180deg, #0d241a, #0d241a33 60%, #0d241acc), url('/uploads/new-year-2027/hero-night.webp'); background-size: 100% 100%, 175% auto; background-position: center, left bottom; }
.ny27-cover-menu .ny27-cover-art { background-image: linear-gradient(180deg, #0d241a, #0d241a55 60%, #0d241acc), url('/uploads/new-year-2027/poster-menu-atmosphere.jpg'); background-position: 50% 64%; }
.ny27-cover-dress .ny27-cover-art { background-image: linear-gradient(180deg, #0d241a, #0d241a33 60%, #0d241acc), url('/uploads/new-year-2027/hero-night.webp'); background-position: 85% 34%; }
.ny27-cover-program .ny27-cover-art { background-image: linear-gradient(180deg, #0d241a, #0d241a55 60%, #0d241acc), url('/uploads/new-year-2027/welcome-atmosphere.webp'); background-position: 60% 40%; }
.ny27-cover-brand { display: block; font-family: var(--font-body); color: #dfc384; font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .22em; text-transform: uppercase; }
.ny27-cover-brand > span { display: block; margin-top: 6px; font-size: 9px; font-weight: 400; letter-spacing: .08em; color: #c5cbb9; }
.ny27-cover-copy { display: block; margin-top: 30px; }
.ny27-cover-series { display: block; margin-bottom: 13px; font-family: var(--font-body); font-size: 10px; line-height: 1.6; letter-spacing: .12em; text-transform: uppercase; color: #d7b36b; }
.ny27-cover-title { display: block; font-family: var(--font-body); font-size: clamp(19px, 1.65vw, 24px); font-weight: 500; line-height: 1.25; letter-spacing: -.03em; color: #f4eedf; }
.ny27-cover-title > span { display: block; }
.ny27-cover-subtitle { display: block; margin-top: 14px; max-width: 180px; font-family: var(--font-body); font-size: 12px; line-height: 1.7; color: #d2d9c8; }
.ny27-cover-open { display: block; margin-top: auto; padding-top: 20px; font-family: var(--font-body); font-size: 11px; line-height: 1.6; color: #ead29b; }
.ny27-poster-card:hover .ny27-poster-cover { transform: translateY(-4px); box-shadow: 0 14px 28px #10291e24; }
.ny27-poster-card > .ny27-poster-caption { margin-top: 14px; font-family: var(--font-body); font-size: 11px; line-height: 1.6; }
@media (min-width: 768px) and (max-width: 1100px) {
    .ny27-poster-card > .ny27-poster-cover { padding: 18px 14px; }
    .ny27-cover-copy { margin-top: 22px; }
    .ny27-cover-title { font-size: 19px; }
    .ny27-cover-subtitle { display: none; }
}
@media (max-width: 767px) {
    .ny27-poster-card > .ny27-poster-cover { padding: 20px 18px; }
    .ny27-cover-title { font-size: clamp(16px, 3.8vw, 23px); }
}
@media (max-width: 479px) {
    .ny27-poster-card > .ny27-poster-cover { padding: 16px 12px; }
    .ny27-cover-brand { font-size: 10px; letter-spacing: .14em; }
    .ny27-cover-brand > span { font-size: 9px; letter-spacing: .02em; }
    .ny27-cover-copy { margin-top: 20px; }
    .ny27-cover-series { font-size: 9px; margin-bottom: 10px; letter-spacing: .06em; }
    .ny27-cover-subtitle { display: none; }
    .ny27-cover-open { padding-top: 12px; font-size: 10px; }
}

/* Artist portraits: the same light editorial grid, with quiet photographic mounts. */
.ny27-artists.ny27-artists-with-photos {
    gap: 0; padding: 28px 0 30px; align-items: start;
}
.ny27-artists-with-photos .ny27-artist,
.ny27-artists-with-photos .ny27-artist:last-child {
    padding: 0 22px; border: 0; min-width: 0;
}
.ny27-artists-with-photos .ny27-artist + .ny27-artist { border-left: 1px solid #c8ba9866; }
.ny27-artist-topline { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.ny27-artists-with-photos .ny27-artist-number { font-size: 26px; line-height: 1; }
.ny27-page .ny27-artist-topline .ny27-artist-role {
    margin: 0 !important; font-size: 9px !important; letter-spacing: .08em; text-align: right; line-height: 1.5;
}
.ny27-artist-photo {
    display: block; padding: 6px; background: #ece5d6; border: 1px solid #bca47480;
    box-shadow: 0 7px 19px #2d2b1d0d; text-decoration: none; border-radius: 3px;
}
.ny27-artist-photo-window { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: #ddd8ce; }
.ny27-page .ny27-artist-photo img {
    width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 50%;
    filter: none;
}
.ny27-page .ny27-artist-photo--02 img { object-position: 50% 75%; }
.ny27-page .ny27-artist-photo--01 img, .ny27-page .ny27-artist-photo--03 img, .ny27-page .ny27-artist-photo--04 img { object-position: 50% 30%; }
.ny27-artist-photo:focus-visible { outline-offset: 5px; }
.ny27-page .ny27-artist-photo-note {
    display: flex; justify-content: space-between; align-items: center; gap: 8px;
    font-size: 10px; color: #84734f; line-height: 1.5; margin: 9px 0 18px;
}
.ny27-artist-photo-note svg { width: 13px; height: 13px; flex: none; }
.ny27-artists-with-photos .ny27-artist h3 { font-size: 22px; line-height: 1.35; margin: 0 0 10px; }
.ny27-page .ny27-artists-with-photos .ny27-artist-description { font-size: 13px; line-height: 1.75; color: var(--ny-muted); }
.ny27-artist-gallery { width: min(980px, calc(100vw - 28px)); }
.ny27-artist-gallery [hidden] { display: none !important; }
.ny27-artist-gallery .ny27-lightbox-controls { min-height: 42px; }
.ny27-artist-gallery .ny27-artist-dialog-title { font-size: 15px; font-weight: 500; }
.ny27-artist-gallery .ny27-artist-dialog-role { display: block; color: #c2bcaa; font-size: 11px; font-weight: 400; margin-top: 3px; }
@media (min-width: 768px) and (max-width: 1000px) {
    .ny27-artists-with-photos .ny27-artist, .ny27-artists-with-photos .ny27-artist:last-child { padding-inline: 12px; }
    .ny27-artist-topline { display: block; min-height: 62px; }
    .ny27-page .ny27-artist-topline .ny27-artist-role { text-align: left; margin-top: 12px !important; }
    .ny27-artists-with-photos .ny27-artist h3 { font-size: 19px; min-height: 2.7em; }
}
@media (max-width: 767px) {
    .ny27-artists.ny27-artists-with-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 22px; row-gap: 30px; }
    .ny27-artists-with-photos .ny27-artist, .ny27-artists-with-photos .ny27-artist:last-child { padding-inline: 12px; }
    .ny27-artists-with-photos .ny27-artist:nth-child(odd) { padding-left: 0; border-left: 0; }
    .ny27-artists-with-photos .ny27-artist:nth-child(even) { padding-right: 0; border-left: 1px solid #c8ba9866; }
    .ny27-artists-with-photos .ny27-artist:nth-child(-n+2) { border-bottom: 0; }
    .ny27-artist-topline { display: block; min-height: 57px; margin-bottom: 12px; }
    .ny27-artists-with-photos .ny27-artist-number { font-size: 24px; }
    .ny27-page .ny27-artist-topline .ny27-artist-role { text-align: left; margin-top: 10px !important; font-size: 8px !important; }
    .ny27-artist-photo { padding: 5px; }
    .ny27-page .ny27-artist-photo-note { font-size: 9px; margin-bottom: 14px; }
    .ny27-artists-with-photos .ny27-artist h3 { font-size: 18px; min-height: 2.7em; margin-bottom: 6px; }
    .ny27-page .ny27-artists-with-photos .ny27-artist-description { font-size: 12px; line-height: 1.7; }
}
@media (max-width: 359px) {
    .ny27-artists-with-photos .ny27-artist, .ny27-artists-with-photos .ny27-artist:last-child { padding-inline: 8px; }
    .ny27-artists-with-photos .ny27-artist h3 { font-size: 16px; }
}

/* Keep the program introduction in two intentional sentences, with adaptive wrapping on phones. */
.ny27-program-intro > span { display: block; text-wrap: balance; }
.ny27-program-intro > span + span { margin-top: 3px; }

/* Make room for the visible Christmas lights at the left of the desktop hero. */
@media (min-width: 1101px) {
    .ny27-hero .ny27-hero-copy { margin-left: clamp(24px, 3.25vw, 64px); }
}

/* The table photograph belongs to the main banquet, after the combined welcome. */
.ny27-main-menu-intro {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 64px; align-items: center; margin-top: 48px; padding-top: 36px;
    border-top: 1px solid #b9a37266;
}
.ny27-main-menu-copy { max-width: 540px; min-width: 0; }
.ny27-main-menu-copy .ny27-menu-kicker { color: #8b6a29; }
.ny27-page .ny27-main-menu-copy h3 { font-size: 28px; margin: 8px 0 12px; color: var(--ny-ink); }
.ny27-page .ny27-main-menu-copy p { font-size: 16px; line-height: 1.8; color: #4b584b; }
.ny27-main-menu-intro .ny27-light-table { width: 100%; max-width: 320px; justify-self: end; }
.ny27-main-menu-intro + .ny27-light-banquet-note { max-width: 1180px; margin-top: 14px; }
@media (min-width: 768px) and (max-width: 1100px) {
    .ny27-main-menu-intro { gap: 40px; }
}
@media (max-width: 767px) {
    .ny27-main-menu-intro { grid-template-columns: 1fr; gap: 24px; margin-top: 36px; padding-top: 30px; }
    .ny27-page .ny27-main-menu-copy h3 { font-size: 23px; }
    .ny27-page .ny27-main-menu-copy p { font-size: 14px; }
    .ny27-main-menu-intro .ny27-light-table { max-width: 380px; justify-self: center; }
    .ny27-main-menu-intro + .ny27-light-banquet-note { margin-top: 16px; text-align: left; }
}

/* Native disclosure keeps the entire banquet compact until the guest opens it. */
.ny27-menu-disclosure { border: 0; background: transparent; }
.ny27-menu-disclosure > summary {
    display: flex; align-items: center; justify-content: center;
    width: 260px; min-width: 0; max-width: 100%; min-height: 52px;
    box-sizing: border-box; margin-left: max(0px, calc((100% - 1000px) / 2));
    padding: 12px 0; list-style: none; cursor: pointer;
    background: transparent; border: 0; border-bottom: 1px solid #b59b67;
    border-radius: 0; box-shadow: none;
    color: var(--ny-ink); font: 500 16px/1.5 var(--font-body); text-align: left;
}
.ny27-menu-disclosure > summary::-webkit-details-marker { display: none; }
.ny27-menu-disclosure > summary::marker { content: ''; }
.ny27-menu-summary-action { display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; }
.ny27-menu-summary-action > .ny27-menu-summary-closed,
.ny27-menu-summary-action > .ny27-menu-summary-open { flex: 1; min-width: 0; }
.ny27-menu-summary-open { display: none; }
.ny27-menu-disclosure[open] .ny27-menu-summary-closed { display: none; }
.ny27-menu-disclosure[open] .ny27-menu-summary-open { display: inline; }
.ny27-menu-summary-icon {
    position: relative; display: block; width: 14px; height: 18px; flex: 0 0 14px; color: currentColor;
}
.ny27-menu-summary-icon::before {
    content: ''; position: absolute; top: 50%; left: 50%; width: 7px; height: 7px;
    border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
    transform: translate(-50%, -75%) rotate(45deg);
}
.ny27-menu-disclosure[open] .ny27-menu-summary-icon::before { transform: translate(-50%, -25%) rotate(225deg); }
.ny27-menu-disclosure > summary:focus-visible { outline: 2px solid #c49536; outline-offset: 6px; }
.ny27-menu-disclosure[open] > .ny27-menu-disclosure-content { margin-top: 28px; }
.ny27-menu-disclosure-content { padding: 30px; }
.ny27-menu-disclosure .ny27-light-banquet-grid { width: 100%; margin-inline: auto; }
.ny27-menu-without-photos .ny27-light-banquet-grid { display: block; max-width: none; }
.ny27-menu-without-photos .ny27-light-banquet-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.ny27-menu-without-photos .ny27-light-banquet-item + .ny27-light-banquet-item { margin-top: 0; padding-top: 0; border-top: 0; border-left: 1px solid #b9a37266; padding-left: 30px; }
.ny27-menu-without-photos .ny27-main-menu-intro { display: block; margin-top: 32px; padding-top: 28px; }
.ny27-menu-disclosure .ny27-main-menu-copy { max-width: none; }
.ny27-menu-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 28px; }
.ny27-menu-footer .ny27-menu-original { margin-top: 0; }
.ny27-menu-close {
    display: inline-flex; align-items: center; gap: 12px; min-height: 44px;
    padding: 10px 18px; border: 1px solid #b4955877; border-radius: 4px;
    background: transparent; color: var(--ny-ink); cursor: pointer;
    font: 500 13px/1.5 var(--font-body);
}
.ny27-menu-close[hidden] { display: none; }
.ny27-menu-close svg { width: 14px; height: 14px; }
@media (hover: hover) {
    .ny27-menu-disclosure > summary:hover { color: #10291e; border-bottom-color: #92702e; }
    .ny27-menu-close:hover { background: #eee5d477; }
}
@media (max-width: 767px) {
    .ny27-menu-disclosure-content { padding: 24px 16px; }
    .ny27-menu-without-photos .ny27-light-banquet-copy { grid-template-columns: 1fr; gap: 24px; }
    .ny27-menu-without-photos .ny27-light-banquet-item + .ny27-light-banquet-item { padding-left: 0; border-left: 0; padding-top: 24px; border-top: 1px solid #b9a37266; }
    .ny27-menu-disclosure .ny27-menu-card { padding: 24px 18px; }
    .ny27-menu-disclosure .ny27-menu-card h3 { font-size: 20px; gap: 10px; }
    .ny27-menu-footer { align-items: stretch; gap: 16px; }
    .ny27-menu-close { justify-content: center; width: 100%; }
}

/* Welcome and sweets stay visible; only the main banquet is collapsible. */
.ny27-welcome-group + .ny27-container > .ny27-menu-disclosure { margin-top: 72px; }
.ny27-menu-disclosure .ny27-main-menu-intro { margin-top: 0; padding-top: 0; border-top: 0; }
@media (max-width: 767px) {
    .ny27-welcome-group + .ny27-container > .ny27-menu-disclosure { margin-top: 52px; }
}

/* The new table photograph introduces the expanded menu, at its natural aspect ratio. */
.ny27-menu-photo-link { display: block; cursor: zoom-in; }
/* Keep the expanded-menu introduction compact rather than sizing text around a large photo. */
.ny27-menu-disclosure-content { padding: 0 24px 24px; }
.ny27-menu-disclosure .ny27-main-menu-intro { align-items: start; }
.ny27-menu-disclosure .ny27-menu-balanced { margin-top: 16px; }
.ny27-menu-disclosure .ny27-light-table figcaption { padding-top: 6px; }
@media (min-width: 768px) {
    .ny27-menu-disclosure .ny27-light-photo-mount { padding: 10px; }
    .ny27-menu-disclosure .ny27-main-menu-copy h3 { margin: 6px 0 10px; }
}
@media (max-width: 767px) {
    .ny27-menu-disclosure-content { padding: 0 16px 20px; }
    .ny27-menu-disclosure .ny27-main-menu-intro { gap: 18px; }
    .ny27-menu-disclosure .ny27-menu-balanced { margin-top: 20px; }
}

/* Keep the photograph large and let the dishes fill the space beside it. */
.ny27-menu-disclosure .ny27-main-menu-intro { display: block; }
.ny27-menu-photo-grid .ny27-menu-stack { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ny27-menu-photo-grid .ny27-menu-hot { flex: 1; }
.ny27-menu-photo-grid .ny27-light-table { width: 100%; max-width: none; align-self: stretch; }
@media (max-width: 767px) {
    .ny27-menu-photo-grid .ny27-menu-stack { display: contents; }
    .ny27-menu-photo-grid .ny27-light-table { max-width: none; justify-self: stretch; order: -1; }
}

/* The opener is only a button; all menu text appears in the expanded content. */
.ny27-menu-disclosure .ny27-main-menu-copy { text-align: center; }
.ny27-menu-disclosure .ny27-menu-balanced { margin-top: 28px; }
@media (max-width: 767px) {
    .ny27-menu-disclosure .ny27-menu-balanced { margin-top: 24px; }
}
