/* Existing special-modal component, scoped to the New Year's Eve campaign. */
.special-modal--nye { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:24px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease,visibility .3s ease; }
.special-modal--nye.is-open { opacity:1; visibility:visible; pointer-events:auto; }
.special-modal--nye .special-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.82); backdrop-filter:blur(8px); }
.special-modal--nye .special-modal__dialog { position:relative; display:grid; grid-template-columns:38% 62%; width:min(860px,94vw); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; border:1px solid rgba(219,177,79,.5); border-radius:8px; background:linear-gradient(155deg,#47101c,#10090c 65%,#050505); box-shadow:0 30px 120px rgba(0,0,0,.72); }
/* The 44px hit target centers a 22px SVG at a visual inset of about 20px. */
.special-modal--nye .special-modal__close { position:absolute; z-index:3; top:8px; right:8px; display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:2px; background:transparent; box-shadow:none; color:rgba(255,255,255,.82); line-height:0; cursor:pointer; appearance:none; transform:none; filter:none; transition:color .15s ease; }
.special-modal--nye .special-modal__close svg { display:block; width:22px; height:22px; pointer-events:none; }
.special-modal--nye .special-modal__close:hover { color:#fff; background:transparent; box-shadow:none; transform:none; filter:none; }
.special-modal--nye .special-modal__close:focus-visible { outline:2px solid #f5ede5; outline-offset:2px; }
.special-modal--nye .nye-promotion__button:focus-visible { outline:2px solid #f4d38e; outline-offset:4px; }
.special-modal--nye .nye-promotion__photo { min-height:420px; overflow:hidden; }
.special-modal--nye .nye-promotion__photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 0; }
.special-modal--nye .special-modal__heading { align-self:center; position:relative; padding:66px 38px 46px; color:#fff; text-align:center; }
.special-modal--nye .special-modal__heading h2 { margin:0 0 22px; font-family:'Essonnes Display',Georgia,serif; font-size:clamp(32px,3.1vw,44px); line-height:1.08; font-weight:400; color:#fff; }
.special-modal--nye #special-description { margin:0 0 22px; font:16px/1.5 'Inter',Arial,sans-serif; color:#eee6e4; }
.special-modal--nye #special-details { margin:0 0 28px; font:14px/1.6 'Inter',Arial,sans-serif; color:#e4c78d; }
.special-modal--nye .nye-promotion__price { white-space:nowrap; }
.special-modal--nye .nye-promotion__button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:14px 22px; background:linear-gradient(105deg,#8c1028,#be1837,#8c1028); color:#fff; border:0; font:600 13px/1.3 'Inter',Arial,sans-serif; letter-spacing:.04em; text-decoration:none; }
.special-modal--nye .nye-promotion__button:hover { filter:brightness(1.15); }
@media(max-width:600px) {
    .special-modal--nye { padding:12px; padding-bottom:calc(12px + env(safe-area-inset-bottom,0px)); }
    .special-modal--nye .special-modal__dialog { grid-template-columns:1fr; width:100%; max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px)); }
    .special-modal--nye .nye-promotion__photo { min-height:0; height:270px; }
    .special-modal--nye .nye-promotion__photo img { object-position:50% 9%; }
    .special-modal--nye .special-modal__heading { padding:26px 22px 30px; }
    .special-modal--nye .special-modal__heading h2 { font-size:32px; margin-bottom:16px; }
    .special-modal--nye #special-description { font-size:15px; margin-bottom:16px; }
    .special-modal--nye #special-details { font-size:13px; margin-bottom:22px; }
    .special-modal--nye .nye-promotion__button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .special-modal--nye { transition:none; } }
