.promo-dialog { box-sizing:border-box; width:min(540px,calc(100% - 32px)); max-height:calc(100dvh - 40px); border:1px solid #d4aa66; border-radius:20px; padding:40px; background:#fffdfb; color:#2d2030; box-shadow:0 24px 100px #241d2540; text-align:center; overflow:auto; }
.promo-dialog::backdrop { background:#241d25b8; backdrop-filter:blur(4px); }
.promo-close { position:absolute; top:12px; right:14px; width:38px; height:38px; border:1px solid #e5dce5; border-radius:50%; background:transparent; color:#2d2030; font-size:25px; cursor:pointer; }
.promo-kicker { font:700 12px 'DM Sans',sans-serif; text-transform:uppercase; letter-spacing:.16em; color:#6f3d75; }
.promo-discount { display:block; font:500 clamp(72px,15vw,110px)/1 'Playfair Display',Georgia,serif; letter-spacing:-.05em; color:#6f3d75; margin:18px 0 10px; }
.promo-dialog h2 { margin:0 0 18px; font:500 29px/1.2 'Playfair Display',Georgia,serif; }
.promo-dates { border-block:1px solid #e5dce5; padding:15px 0; font-weight:700; line-height:1.6; }
.promo-description { color:#706870; font-size:15px; line-height:1.7; }
.promo-link { display:block; padding:15px 20px; margin:22px 0 12px; border-radius:6px; color:white; background:#2d2030; font-weight:700; text-decoration:none; }
.promo-dismiss { border:0; background:none; color:#706870; text-decoration:underline; cursor:pointer; padding:12px; }
.promo-dialog :focus-visible { outline:3px solid #aa62ad; outline-offset:4px; }
.promo-nav { color:#6f3d75 !important; font-weight:700 !important; }
.promotion-page { margin:0; background:#f7f3ef; color:#2d2030; font-family:'DM Sans',sans-serif; }
.promotion-page * { box-sizing:border-box; }
.promotion-page a { color:inherit; }
.promotion-header { max-width:1120px; margin:auto; padding:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.promotion-brand { font:500 25px 'Playfair Display',Georgia,serif; text-decoration:none; }
.promotion-home { font-size:14px; text-underline-offset:5px; }
.promotion-main { max-width:1120px; margin:20px auto 64px; padding:0 24px; }
.promotion-layout { display:grid; grid-template-columns:1.05fr .95fr; background:#fffdfb; border:1px solid #e5dce5; }
.promotion-copy { padding:clamp(28px,5vw,64px); }
.promotion-copy h1 { font:500 clamp(32px,4vw,48px)/1.1 'Playfair Display',Georgia,serif; margin:0 0 24px; }
.promotion-copy .promo-discount { font-size:clamp(90px,11vw,140px); }
.promotion-photo { margin:0; min-height:500px; }
.promotion-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.promotion-services { padding:0; list-style:none; margin:24px 0; display:flex; flex-wrap:wrap; gap:8px; }
.promotion-services li { border:1px solid #e5dce5; border-radius:40px; padding:8px 13px; font-size:13px; }
.promotion-action { display:inline-block; padding:16px 22px; border-radius:6px; background:#2d2030; color:white !important; text-decoration:none; font-weight:700; margin-bottom:20px; }
.promotion-gallery-link { display:block; text-underline-offset:5px; font-size:14px; }
.promotion-details { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding-top:34px; line-height:1.8; color:#706870; }
.promotion-details h2 { color:#2d2030; font:500 25px 'Playfair Display',Georgia,serif; margin:0 0 12px; }
.promotion-status { color:#6f3d75; font-weight:700; }
@media(max-width:700px) { .promotion-layout,.promotion-details { grid-template-columns:1fr; } .promotion-main { padding:0 16px; } .promotion-photo { min-height:0; height:430px; } .promotion-header { padding:20px 16px; } .promotion-brand { font-size:22px; } .promo-dialog { padding:38px 24px 24px; } }
@media(max-width:1120px) { .site-header .desktop-nav { display:none; } .site-header .menu-toggle { display:inline-flex; } .site-header .brand-word { display:inline; } .site-header .header-cart { margin-left:auto; } }
