/* Seasonal campaign: scoped palette keeps existing restaurant themes intact. */
.ny-page, .ny-popup {
  --ny-green: #14251d;
  --ny-deep: #0d1a14;
  --ny-cream: #f7f0df;
  --ny-gold: #e4c783;
  --ny-burgundy: #742c38;
  --ny-ink: #203127;
  --ny-muted: #62685c;
  --ny-border: rgba(32,49,39,.22);
  --ny-ease: cubic-bezier(.23,1,.32,1);
  font-family: 'Manrope', sans-serif;
}
.ny-page { background: var(--ny-cream); color: var(--ny-ink); }
.ny-page *, .ny-popup * { box-sizing: border-box; }
.ny-page :where(main) h1, .ny-page :where(main) h2, .ny-page :where(main) h3, .ny-popup h2 { font-family: 'Playfair Display',serif; font-weight: 600; }
.ny-page :where(main) h2 { font-size: clamp(2.5rem,4.7vw,4.4rem); line-height: 1.12; letter-spacing: -.025em; text-wrap: balance; }
.ny-page :where(main) h2 em, .ny-page :where(main) h1 em { font-style: normal; color: var(--ny-burgundy); }
.ny-page p { text-wrap: pretty; }
.ny-page a, .ny-page button, .ny-popup a, .ny-popup button { -webkit-tap-highlight-color: transparent; }
.ny-page :focus-visible, .ny-popup :focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.ny-container { width: min(1200px,calc(100% - 4rem)); margin-inline: auto; }
.ny-section { padding-block: clamp(4rem,7vw,7rem); }
.ny-svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ny-eyebrow { margin: 0 0 1.5rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; line-height: 1.5; }
.ny-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 56px; padding: 1rem 1.4rem; border: 1px solid transparent; border-radius: 4px; background: var(--ny-gold); color: #14251d; font: 650 1rem/1.4 'Manrope',sans-serif; text-decoration: none; cursor: pointer; transition: background-color 150ms ease,color 150ms ease; }
.ny-button > span { font-size: 1.4rem; line-height: 1; }
.ny-button--small { min-height: 44px; font-size: .875rem; padding: .65rem 1rem; gap: 1rem; }
.ny-button--burgundy { color: var(--ny-cream); background: var(--ny-burgundy); }
.ny-button--cream { color: var(--ny-burgundy); background: var(--ny-cream); }
.ny-button:disabled { cursor: wait; opacity: .65; }
.ny-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; color: inherit; border: 0; padding: .5rem 0; background: none; font: 600 .875rem/1.5 'Manrope',sans-serif; text-decoration: underline; text-underline-offset: .35em; }
.ny-header { background: var(--ny-deep); color: var(--ny-cream); border-bottom: 1px solid rgba(228,199,131,.2); }
.ny-header__inner { display: flex; align-items: center; min-height: 88px; gap: 2rem; }
.ny-logo { display: inline-flex; flex-shrink: 0; align-items: center; }
.ny-logo img { width: 170px; height: 54px; object-fit: contain; filter: brightness(0) invert(1); }
.ny-header__home { margin-left: auto; font-size: .875rem; }
.ny-header__phone { font-size: .875rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ny-hero { position: relative; overflow: hidden; min-height: 780px; color: var(--ny-cream); background: var(--ny-deep); isolation: isolate; }
.ny-hero__media { position: absolute; inset: 0; z-index: -2; }
.ny-art { display: block; position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; }
[data-ny-video][hidden] { display: none; }
.ny-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(7,18,12,.45),transparent 75%); pointer-events: none; }
.ny-hero__content { padding-top: clamp(3rem,6vw,6rem); padding-bottom: 5rem; }
.ny-hero .ny-eyebrow { display: flex; align-items: center; gap: .7rem; color: var(--ny-gold); }
.ny-star { display: inline-block; font-size: 1.35rem; }
.ny-hero h1 { margin: 0; max-width: 11ch; font-size: clamp(3.7rem,6.9vw,6.5rem); line-height: 1.02; letter-spacing: -.035em; }
.ny-hero h1 em { color: var(--ny-gold); }
.ny-hero__lead { margin: 1.7rem 0 2rem; font-size: 1.125rem; line-height: 1.6; max-width: 38ch; color: #eee6d4; }
.ny-hero__facts { display: flex; gap: 3rem; margin-bottom: 2rem; }
.ny-hero__facts p { display: grid; gap: .35rem; margin: 0; }
.ny-hero__facts p > span { color: #d4c9b2; font-size: .8125rem; }
.ny-hero__facts strong { font-size: 1.15rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ny-hero__facts small { font-size: .875rem; font-weight: 400; }
.ny-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.ny-hero__year { margin-top: 1.5rem; color: #c9c9b8; font-size: .75rem; line-height: 1.5; }
.ny-hero__seal { position: absolute; right: 9%; top: 53%; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 128px; height: 128px; border: 1px solid #e4c783; border-radius: 50%; color: var(--ny-gold); background: rgba(13,26,20,.6); font-size: .75rem; transform: rotate(9deg); }
.ny-hero__seal strong { font-family: 'Playfair Display',serif; font-size: 2.5rem; line-height: 1.2; }
.ny-section-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 1.5rem 4rem; align-items: end; }
.ny-section-heading .ny-eyebrow { grid-column: 1/-1; margin: 0; color: var(--ny-burgundy); }
.ny-section-heading > p:last-child { margin: 0 0 .3rem; max-width: 40ch; color: var(--ny-muted); line-height: 1.7; }
.ny-features { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem; margin-top: 4rem; }
.ny-features article { border-top: 1px solid var(--ny-border); padding-top: 1.25rem; }
.ny-feature-number { color: var(--ny-burgundy); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.ny-features h3 { font-size: 2rem; line-height: 1.2; letter-spacing: -.02em; margin: 1.5rem 0 1rem; }
.ny-features p { line-height: 1.65; color: var(--ny-muted); max-width: 31ch; margin: 0 0 1rem; }
.ny-features a { min-height: 44px; display: inline-flex; align-items: center; gap: 1rem; font-size: .8125rem; font-weight: 700; text-decoration: underline; text-underline-offset: .3em; }
.ny-space { background: #eee6d4; }
.ny-space__heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.ny-space__heading .ny-eyebrow { color: var(--ny-burgundy); }
.ny-space__heading > p { line-height: 1.65; color: var(--ny-muted); }
.ny-spaces { display: grid; grid-template-columns: 1.2fr 1fr; gap: 2rem; align-items: start; }
.ny-spaces figure { margin: 0; }
.ny-spaces figure:last-child { margin-top: 3rem; }
.ny-spaces img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 3px; outline: 1px solid oklch(0 0 0 / .1); outline-offset: -1px; }
.ny-spaces figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; font-size: .875rem; font-weight: 700; margin-top: .75rem; }
.ny-spaces figcaption span { font-size: .75rem; font-weight: 400; color: var(--ny-muted); }
.ny-photo-note { font-size: .75rem; color: var(--ny-muted); margin-top: 2rem; }
.ny-dates { background: var(--ny-green); color: var(--ny-cream); }
.ny-dates__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
.ny-dates .ny-eyebrow { color: var(--ny-gold); }
.ny-dates h2 { font-size: clamp(2rem,3.5vw,3.1rem); }
.ny-date-range { font-family: 'Playfair Display',serif; font-size: clamp(5rem,10vw,9rem); letter-spacing: -.055em; font-variant-numeric: lining-nums; line-height: 1.1; margin-top: 1.5rem; }
.ny-date-range span { color: var(--ny-gold); font-size: .7em; margin-inline: .12em; }
.ny-date-caption { font-size: 1rem; color: #e1d8c6; }
.ny-price { position: relative; padding: 3rem; border: 1px solid rgba(228,199,131,.5); background: #622633; border-radius: 3px; overflow: hidden; }
.ny-price__snow { position: absolute; right: -24px; top: -25px; width: 145px; height: 145px; color: var(--ny-gold); opacity: .42; }
.ny-price__amount { font-family: 'Playfair Display',serif; font-size: clamp(3rem,5vw,4.6rem); line-height: 1.15; margin: 1.5rem 0 .5rem; font-variant-numeric: tabular-nums; }
.ny-price__amount span { font-family: 'Manrope',sans-serif; font-size: 1.1rem; }
.ny-price__unit { color: #eadccd; margin-bottom: 1.5rem; }
.ny-price__note { font-size: .875rem; line-height: 1.65; color: #eadccd; max-width: 34ch; margin-bottom: 2rem; }
.ny-price .ny-button { width: 100%; gap: 1rem; font-size: .875rem; }
.ny-request__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 5rem; align-items: start; }
.ny-request__intro { position: relative; }
.ny-request__intro > p:not(.ny-eyebrow) { line-height: 1.65; color: var(--ny-muted); max-width: 35ch; margin: 1.75rem 0; }
.ny-request__intro .ny-eyebrow { color: var(--ny-burgundy); }
.ny-request__phone { font-size: 1.5rem; font-weight: 600; display: block; width: fit-content; min-height: 44px; font-variant-numeric: tabular-nums; }
.ny-request__caption { display: block; font-size: .8125rem; color: var(--ny-muted); }
.ny-request__snow { width: 140px; height: 140px; color: #90713a; margin-top: 3rem; }
.ny-form-panel { background: #fffaf0; border: 1px solid var(--ny-border); padding: 2.5rem; border-radius: 4px; }
.ny-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem 1rem; }
.ny-field { min-width: 0; }
.ny-field--wide { grid-column: 1/-1; }
.ny-field label { display: block; font-size: .875rem; font-weight: 650; margin-bottom: .5rem; }
.ny-field label small { display: block; font-size: .75rem; color: #62685c; font-weight: 400; line-height: 1.5; }
.ny-field input, .ny-field textarea { display: block; width: 100%; min-width: 0; min-height: 48px; padding: .75rem; border: 1px solid #8b8c7d; border-radius: 3px; color: var(--ny-ink); background: #fffdf7; font: 400 1rem/1.5 'Manrope',sans-serif; resize: vertical; }
.ny-field input::placeholder, .ny-field textarea::placeholder { color: #6d7066; }
.ny-field input:focus, .ny-field textarea:focus { border-color: var(--ny-burgundy); outline: 2px solid var(--ny-burgundy); outline-offset: 2px; }
.ny-field [aria-invalid="true"] { border-color: #a3231b; }
.ny-error { color: #a3231b; font-size: .8125rem; line-height: 1.5; margin-top: .35rem; }
.ny-error:empty, #corporateStatus:empty { display: none; }
.ny-consent { display: flex; gap: .65rem; align-items: flex-start; margin-top: 1.5rem; font-size: .8125rem; line-height: 1.6; }
.ny-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin-top: .1rem; accent-color: var(--ny-burgundy); }
.ny-consent a, .ny-legal a { color: var(--ny-burgundy); text-decoration: underline; text-underline-offset: .2em; }
.ny-legal { font-size: .75rem; color: var(--ny-muted); margin: .75rem 0; }
.ny-form-note { margin: 1rem 0 1.5rem; color: var(--ny-muted); font-size: .8125rem; line-height: 1.6; }
#corporateSubmit { width: 100%; }
#corporateStatus { font-size: .875rem; line-height: 1.5; margin-top: .75rem; }
.ny-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ny-success[hidden], #corporateForm[hidden] { display: none; }
.ny-success { padding-block: 2rem; }
.ny-success svg { width: 48px; height: 48px; color: var(--ny-green); margin-bottom: 1.5rem; }
.ny-success h3 { font-size: 2rem; line-height: 1.2; }
.ny-success p { line-height: 1.65; margin-block: 1rem; color: var(--ny-muted); }
.ny-faq { padding-top: 0; }
.ny-faq__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 5rem; }
.ny-faq .ny-eyebrow { color: var(--ny-burgundy); }
.ny-faq details { border-top: 1px solid var(--ny-border); }
.ny-faq details:last-child { border-bottom: 1px solid var(--ny-border); }
.ny-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; padding-block: 1rem; font-weight: 650; cursor: pointer; list-style: none; }
.ny-faq summary::-webkit-details-marker { display: none; }
.ny-faq summary::after { content: '+'; font-size: 1.5rem; flex: 0 0 auto; font-weight: 400; color: var(--ny-burgundy); }
.ny-faq [open] summary::after { content: '−'; }
.ny-faq details p { max-width: 60ch; line-height: 1.65; padding-bottom: 1.5rem; color: var(--ny-muted); }
.ny-footer { background: var(--ny-deep); color: var(--ny-cream); padding-block: 2rem; }
.ny-footer .ny-container { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; }
.ny-footer p, .ny-footer > div > a:not(.ny-logo) { font-size: .875rem; }
.ny-footer nav { width: 100%; display: flex; flex-wrap: wrap; gap: 1.5rem; padding-top: 1rem; border-top: 1px solid rgba(247,240,223,.2); }
.ny-footer nav a, .ny-footer > div > span { font-size: .75rem; min-height: 32px; display: inline-flex; align-items: center; color: #c9c9b8; }
.ny-footer > div > span { margin-left: auto; }

/* Native dialog, one campaign per visit; media never blocks its actions. */
.ny-popup { position: fixed; inset: 0; margin: auto; width: min(920px,calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain; padding: 0; border: 1px solid #816f48; border-radius: 8px; background: var(--ny-deep); color: var(--ny-cream); box-shadow: 0 30px 100px rgba(0,0,0,.5); }
.ny-popup::backdrop { background: rgba(6,14,9,.76); }
.ny-popup__body { position: relative; isolation: isolate; overflow: hidden; padding: clamp(2rem,4.2vw,4rem); min-height: 520px; }
.ny-popup__media { position: absolute; inset: 0; z-index: -2; }
.ny-popup__body::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(7,18,12,.4),transparent 80%); z-index: -1; pointer-events: none; }
.ny-popup__copy { max-width: 27rem; }
.ny-popup .ny-eyebrow { color: var(--ny-gold); margin-bottom: 1.2rem; padding-right: 1.5rem; }
.ny-popup h2 { font-size: clamp(2.5rem,4.6vw,4rem); line-height: 1.07; letter-spacing: -.03em; margin: 0; text-wrap: balance; }
.ny-popup h2 em { font-style: normal; color: var(--ny-gold); }
.ny-popup__lead { max-width: 28ch; margin: 1.4rem 0; color: #ece3ce; font-size: 1rem; line-height: 1.6; }
.ny-popup__facts { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding-block: .8rem; border-block: 1px solid rgba(228,199,131,.32); width: fit-content; font-weight: 600; font-size: .9375rem; margin: 1.5rem 0; font-variant-numeric: tabular-nums; }
.ny-popup__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.25rem; }
.ny-popup__actions .ny-button { gap: 1.5rem; }
.ny-popup__actions .ny-text-link { color: var(--ny-cream); font-size: .8125rem; }
.ny-popup__close { position: absolute; top: .75rem; right: .75rem; z-index: 3; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(247,240,223,.65); border-radius: 50%; background: #14251d; color: #fff7e5; cursor: pointer; }
.ny-popup [data-ny-media] { min-height: 520px; }
.ny-popup[open] { animation: ny-popup-enter 240ms var(--ny-ease) both; }
@keyframes ny-popup-enter { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion:no-preference) {
  .ny-ready [data-ny-reveal] { transition: opacity 450ms var(--ny-ease),transform 450ms var(--ny-ease); }
  .ny-ready [data-ny-reveal]:not(.is-visible) { opacity: 0; transform: translateY(16px); }
  .ny-button:not(:disabled):active { transform: scale(.98); }
}
@media (hover:hover) and (pointer:fine) {
  .ny-button:hover { background: #f5dfaa; color: #14251d; }
  .ny-button--burgundy:hover { background: #57202a; color: #fff7e5; }
  .ny-button--cream:hover { background: #ead5a3; color: #57202a; }
  .ny-text-link:hover, .ny-features a:hover { text-decoration-thickness: 2px; }
  .ny-popup__close:hover { background: var(--ny-gold); color: var(--ny-green); }
}
@media (max-width:900px) {
  .ny-header__phone { display: none; }
  .ny-hero { min-height: 720px; }
  .ny-hero h1 { font-size: clamp(3.5rem,8vw,5rem); }
  .ny-section-heading { grid-template-columns: 1fr; gap: 1rem; }
  .ny-section-heading > p:last-child { max-width: 55ch; }
  .ny-features { gap: 1.5rem; }
  .ny-features h3 { font-size: 1.6rem; }
  .ny-dates__grid, .ny-request__grid, .ny-faq__grid { gap: 2.5rem; }
  .ny-price, .ny-form-panel { padding: 1.5rem; }
  .ny-space__heading { display: block; }
  .ny-space__heading > p { margin-top: 1rem; }
}
@media (max-width:640px) {
  .ny-container { width: calc(100% - 2rem); }
  .ny-section { padding-block: 3.5rem; }
  .ny-header__inner { gap: 1rem; min-height: 74px; }
  .ny-logo img { width: 120px; height: 44px; }
  .ny-header__home { display: none; }
  .ny-header .ny-button { margin-left: auto; min-height: 44px; font-size: .75rem; padding: .65rem; gap: .6rem; }
  .ny-hero { min-height: auto; }
  .ny-hero__media .ny-art { object-position: 59% center; }
  .ny-hero::after { background: linear-gradient(90deg,rgba(7,18,12,.65),rgba(7,18,12,.15)),linear-gradient(0deg,rgba(7,18,12,.75),transparent); }
  .ny-hero__content { padding-block: 3.25rem 5rem; }
  .ny-hero .ny-eyebrow { font-size: .625rem; letter-spacing: .1em; margin-bottom: 1.5rem; }
  .ny-hero h1 { font-size: clamp(3.15rem,13vw,4.7rem); line-height: 1.05; }
  .ny-hero__lead { font-size: 1rem; margin-block: 1.5rem; }
  .ny-hero__facts { gap: 1.5rem; margin-bottom: 1.5rem; }
  .ny-hero__facts strong { font-size: 1rem; }
  .ny-hero__facts small { font-size: .75rem; }
  .ny-hero__seal { display: none; }
  .ny-actions { gap: .5rem 1rem; }
  .ny-actions .ny-button { width: 100%; }
  .ny-hero__year { margin-top: 1rem; max-width: 34ch; }
  .ny-page :where(main) h2 { font-size: 2.4rem; }
  .ny-features { grid-template-columns: 1fr; margin-top: 2.5rem; gap: 1.75rem; }
  .ny-features article { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .5rem 1rem; }
  .ny-feature-number { grid-row: 1/4; padding-top: .3rem; }
  .ny-features h3 { margin: 0 0 .5rem; font-size: 1.8rem; }
  .ny-features h3 br { display: none; }
  .ny-features p { margin: 0; max-width: none; font-size: .9375rem; }
  .ny-features a { grid-column: 2; }
  .ny-spaces { grid-template-columns: 1fr; gap: 1.75rem; }
  .ny-spaces figure:last-child { margin-top: 0; }
  .ny-spaces figcaption { flex-wrap: wrap; }
  .ny-dates__grid, .ny-request__grid, .ny-faq__grid { grid-template-columns: 1fr; gap: 2rem; }
  .ny-date-range { font-size: 6rem; margin-top: 1rem; }
  .ny-price { padding: 1.75rem; }
  .ny-price__amount { font-size: 3.75rem; }
  .ny-request__snow { display: none; }
  .ny-request__phone { font-size: 1.25rem; }
  .ny-form-panel { padding: 1.25rem; }
  .ny-form-grid { grid-template-columns: minmax(0,1fr); }
  .ny-field--wide { grid-column: 1; }
  .ny-field label small { display: inline; margin-left: .35rem; }
  .ny-faq { padding-top: 0; }
  .ny-faq summary { min-height: 64px; font-size: .9375rem; }
  .ny-footer .ny-container { display: grid; gap: .75rem; }
  .ny-footer nav { gap: .5rem 1rem; }
  .ny-footer > div > span { margin-left: 0; }
  .ny-popup { width: calc(100% - 1.5rem); max-height: calc(100dvh - 1.5rem); }
  .ny-popup__body { padding: 3.5rem 1.4rem 3.7rem; min-height: 0; }
  .ny-popup [data-ny-media] { min-height: 0; }
  .ny-popup__media .ny-art { object-position: 62% center; }
  .ny-popup__body::after { background: linear-gradient(90deg,rgba(7,18,12,.72),rgba(7,18,12,.42)); }
  .ny-popup h2 { font-size: clamp(2.5rem,11vw,3.3rem); }
  .ny-popup .ny-eyebrow { font-size: .625rem; letter-spacing: .1em; margin-bottom: 1rem; }
  .ny-popup__lead { font-size: .9375rem; margin: 1rem 0; }
  .ny-popup__facts { font-size: .875rem; margin: 1.2rem 0; }
  .ny-popup__actions .ny-button { width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  .ny-popup[open] { animation: none; }
  .ny-ready [data-ny-reveal] { opacity: 1; transform: none; transition: none; }
  .ny-button:active { transform: none; }
}
/* Reflow instead of clipping when visitors enlarge text. */
.ny-page :where(main) h1,.ny-page :where(main) h2,.ny-page :where(main) h3,.ny-popup h2,.ny-button,.ny-hero__facts strong { overflow-wrap: anywhere; }
.ny-form-panel,.ny-field,.ny-consent span,.ny-header__inner > *, .ny-request__grid > *, .ny-dates__grid > * { min-width: 0; }
.ny-consent a,.ny-legal a { overflow-wrap: anywhere; }
/* Large text keeps actions intact rather than overflowing or stacking glyphs. */
.ny-header__inner { flex-wrap: wrap; padding-block: .65rem; }
.ny-header .ny-button { flex-shrink: 0; }
.ny-features a { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.ny-features a span { flex: 0 0 auto; }
.ny-popup__close { flex: 0 0 44px; }
@media (max-width:640px) {
  .ny-header .ny-button { margin-left: auto; max-width: 100%; }
  .ny-header__inner { gap: .5rem 1rem; }
  .ny-features a { display: block; }
  .ny-features a span { display: inline; padding-left: .35rem; }
  .ny-eyebrow, .ny-popup .ny-eyebrow, .ny-hero .ny-eyebrow { font-size: .75rem; }
}
.ny-spaces { grid-template-columns: 1.45fr .55fr; align-items: center; }
.ny-space-note { padding: 2rem 0 2rem 1rem; }
.ny-space-note > svg { width: 88px; height: 88px; color: #94763f; margin-bottom: 2rem; }
.ny-space-note h3 { font-size: clamp(1.75rem,2.5vw,2.4rem); line-height: 1.2; margin-bottom: 1.25rem; }
.ny-space-note p:not(.ny-eyebrow) { color: var(--ny-muted); font-size: .9375rem; line-height: 1.8; margin-bottom: 1.25rem; }
.ny-space-note .ny-eyebrow { color: var(--ny-burgundy); }
@media (max-width:640px) {
  .ny-spaces { grid-template-columns: minmax(0,1fr); }
  .ny-space-note { padding: .5rem 0 0; }
  .ny-space-note > svg { float: right; width: 72px; height: 72px; margin: 0 0 1rem 1rem; }
}
.ny-page p, .ny-page label, .ny-page a, .ny-popup p, .ny-popup a { overflow-wrap: anywhere; }
.ny-price__amount { overflow-wrap: normal !important; }
.ny-header__inner > .ny-button { min-width: 0; }
@media (max-width:640px) {
  .ny-features article { grid-template-columns: 24px minmax(0,1fr); }
  .ny-price { padding: 1.25rem; }
  .ny-price__amount { font-size: clamp(2rem,14vw,3.75rem); }
  .ny-price__amount span { font-size: .35em; }
  .ny-field label small { display: block; margin-left: 0; }
}

/* Snowfall is a click-through viewport layer; preference lives in the controller. */
.ny-snow { position: fixed; inset: 0; z-index: 20; overflow: hidden; pointer-events: none; contain: strict; }
.ny-snow[hidden], .ny-snow-toggle[hidden] { display: none; }
.ny-snow__flake {
  position: absolute; top: -32px; left: var(--snow-x); width: var(--snow-size); height: var(--snow-size);
  color: #fff9ea; opacity: 0; pointer-events: none;
  filter: drop-shadow(0 1px 1px rgba(32,49,39,.5));
  animation: ny-snowfall var(--snow-duration) linear var(--snow-delay) infinite;
}
.ny-snow__flake svg { width: 100%; height: 100%; display: block; }
@keyframes ny-snowfall {
  0% { opacity: 0; transform: translate3d(0,-24px,0) rotate(0deg); }
  8% { opacity: var(--snow-opacity); }
  88% { opacity: var(--snow-opacity); }
  100% { opacity: 0; transform: translate3d(var(--snow-drift),calc(100vh + 64px),0) rotate(var(--snow-spin)); }
}
.ny-snow-toggle {
  position: fixed; right: max(1rem,env(safe-area-inset-right)); bottom: max(1rem,env(safe-area-inset-bottom));
  z-index: 30; width: 48px; height: 48px; display: grid; place-items: center;
  border: 1px solid #b29457; border-radius: 50%; color: #e4c783; background: #14251d;
  box-shadow: 0 4px 16px rgba(0,0,0,.18); cursor: pointer;
}
.ny-snow-toggle[aria-pressed="true"] { background: #e4c783; color: #14251d; }
.ny-snow-toggle[aria-pressed="true"] .ny-snow-toggle__slash { display: none; }
.ny-snow-toggle:focus-visible { outline: 3px solid #742c38; outline-offset: 4px; }
@media (hover:hover) and (pointer:fine) {
  .ny-snow-toggle:hover { border-color: #fff3d2; box-shadow: 0 4px 16px rgba(0,0,0,.3); }
}
/* Explicit user opt-in can enable snow even when the system starts with reduced motion. */
@media (prefers-reduced-motion:reduce) {
  :root[data-ny-snow="on"] .ny-snow__flake {
    animation: ny-snowfall var(--snow-duration) linear var(--snow-delay) infinite !important;
  }
}
