.offer-ribbon { position:sticky;top:0;z-index:10;background:#233e62;color:#fffdf8;border-bottom:1px solid #ffffff25; }
.offer-ribbon-inner { width:min(1190px,calc(100% - 48px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0; }
.ribbon-copy { display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.5; }
.promo-preview-label { font-size:8px;letter-spacing:1.8px;color:#e9c1a7; }
.promo-clock { display:flex;gap:7px;font-variant-numeric:tabular-nums; }
.promo-clock>span { display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:43px;padding:7px 9px;background:#172d49;border:1px solid #ffffff18;border-radius:3px;line-height:1.2; }
.promo-clock b { font:600 20px/1.1 Georgia,serif;letter-spacing:1px; }
.promo-clock small { font:8px/1.4 Arial,sans-serif;letter-spacing:1px;margin-top:4px; }
.ribbon-claim { background:var(--cream);color:var(--navy);border:0;border-radius:3px;padding:12px 19px;font-size:13px;font-weight:700;white-space:nowrap; }
.ribbon-claim span { margin-left:12px; }
.promotion-dialog { width:min(830px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:8px;background:var(--paper);box-shadow:0 30px 100px #13233870; }
.promotion-dialog[open] { display:grid;grid-template-columns:.8fr 1.2fr; }
.promotion-dialog::backdrop { background:#152941b8;backdrop-filter:blur(3px); }
.promo-close { position:absolute;top:13px;right:13px;z-index:2;width:38px;height:38px;min-width:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);font:27px/1 Arial,sans-serif;color:var(--navy); }
.promo-art { background:#233e62;color:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;overflow:hidden; }
.promo-art-heading { text-align:center;font:31px/1.05 Georgia,serif;letter-spacing:1px; }
.promo-art-heading span { display:block;font:9px/1.5 Arial,sans-serif;letter-spacing:3px;margin-top:9px; }
.promo-art img { width:100%;height:255px;object-fit:cover;object-position:48% center;margin:32px 0 25px; }
.promo-art p { font:italic 30px/1.22 Georgia,serif;text-align:center;color:#f4ddc9; }
.promo-art-note { font-size:8px;letter-spacing:2.3px;margin-top:20px; }
.promo-body { padding:42px 39px 25px; }
.promo-body .eyebrow { font-size:9px;letter-spacing:1.8px;margin-bottom:16px;padding-right:15px; }
.promo-body h2 { font-size:36px;line-height:1.1;letter-spacing:-1px; }
#promotion-description { font-size:14px;line-height:1.75;margin-top:18px; }
.promo-price { display:flex;gap:17px;align-items:center;margin-block:22px 19px; }
.promo-savings { border:1px solid #b9876b;padding:10px 12px;font-size:12px;letter-spacing:1px;font-weight:700;color:var(--clay); }
.promo-price s { font-size:15px;color:var(--muted);margin-right:8px; }
.promo-price strong { font:32px/1.1 Georgia,serif;color:var(--navy); }
.promo-price small { display:block;font-size:8px;letter-spacing:1.2px;margin-top:6px;color:var(--muted); }
.promo-time { border-block:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;margin-bottom:20px; }
.promo-time>span { font-size:11px;color:var(--muted);max-width:100px;line-height:1.6; }
.promo-time .promo-clock>span { min-width:40px;background:#f0ebe1;border-color:#e2dbcf;color:var(--navy);padding:6px 8px; }
.promo-time .promo-clock b { font-size:20px; }
#promotion-form label { font-size:12px;margin-bottom:7px; }
#promotion-form input { background:white;min-height:48px;border-color:#bbb5aa;font-size:16px;padding:11px 13px;margin:0; }
.promo-consent { font-size:10px;line-height:1.65;color:var(--muted);margin-top:10px; }
.promo-submit { width:100%;margin-top:17px;min-height:52px; }
.promo-status { font-size:12px;line-height:1.65;color:var(--navy);margin-top:12px; }
.promo-status:empty { display:none; }
.promo-dismiss { display:block;margin:15px auto 0;background:none;border:0;padding:7px;font-size:11px;text-decoration:underline;text-underline-offset:3px;color:var(--muted); }
.promo-preview { border-top:1px solid var(--line);padding-top:12px;font-size:10px;line-height:1.6;color:var(--muted);margin-top:14px; }
#promotion-success .button { width:100%;margin-top:18px; }
@media(max-width:800px) {
 .offer-ribbon-inner { gap:12px;width:calc(100% - 32px); }
 .ribbon-copy { font-size:12px; }
 .ribbon-claim { font-size:11px;padding:11px 12px; }
 .promo-clock>span { min-width:35px;padding:6px; }
 .promo-clock b { font-size:18px; }
 .promotion-dialog { width:min(730px,calc(100% - 28px)); }
 .promo-body { padding:39px 27px 22px; }
 .promo-body h2 { font-size:32px; }
}
@media(max-width:600px) {
 .offer-ribbon-inner { display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:10px 0; }
 .ribbon-copy { font-size:11px; }
 .offer-ribbon .promo-clock { grid-column:2;grid-row:1 / 3; }
 .ribbon-claim { justify-self:start;background:transparent;color:var(--cream);padding:0;text-decoration:underline;text-underline-offset:3px;min-height:26px; }
 .promo-clock>span { min-width:32px;padding:6px 5px; }
 .promo-clock small { font-size:7px; }
 .promotion-dialog[open] { display:block; }
 .promotion-dialog { max-height:calc(100dvh - 24px); }
 .promo-art { display:none; }
 .promo-body { padding:36px 25px 22px; }
 .promo-body h2 { font-size:34px; }
 .promo-close { top:10px;right:10px;width:34px;height:34px;min-width:34px; }
 .promo-body .eyebrow { font-size:8px;padding-right:25px; }
 .promo-price { margin-block:18px; }
 .promo-time { margin-bottom:16px; }
}
/* Current welcome offer: generous controls and readable consent. */
.offer-ribbon { background:var(--navy); }
.ribbon-copy s { opacity:.8; margin-right:6px; }
.promo-close { width:44px;height:44px;min-width:44px; }
.promo-body { padding-top:48px; }
.promo-body .eyebrow { font-size:11px; }
#promotion-description { font-size:16px; }
#promotion-form label { font-size:15px; }
.promo-consent,.promo-terms,.promo-preview { font-size:12px;line-height:1.65; }
.promo-terms { color:var(--muted);margin-top:17px; }
.promo-preview-label { font-size:10px;letter-spacing:1px; }
.promo-status { font-size:15px; }
.promo-dismiss { min-height:44px;font-size:14px; }
#promotion-form .promo-optin { display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;line-height:1.6;margin-top:13px;color:var(--muted); }
#promotion-form .promo-optin input { width:18px;height:18px;min-height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--clay); }
.ribbon-claim { min-height:44px; }
.promo-time>span { font-size:12px; }
.promo-art img { object-position:49% center; }
@media(max-width:600px) {
 .promo-close { width:44px;height:44px; }
 .promo-body { padding:55px 23px 20px; }
 .promo-body h2 { font-size:32px; }
 .promo-body .eyebrow { font-size:10px;padding-right:0; }
 .ribbon-copy { font-size:12px; }
 .promo-preview-label { font-size:9px;letter-spacing:.6px; }
 .ribbon-claim { min-height:34px; }
}
@media(max-width:360px) {
 .offer-ribbon-inner { gap:6px; }
 .offer-ribbon .promo-clock { gap:3px; }
 .offer-ribbon .promo-clock>span { min-width:26px;padding:5px 3px; }
 .promo-body { padding-inline:18px; }
 .promo-time { gap:8px; }
 .promo-time .promo-clock>span { min-width:30px;padding:5px; }
}
/* Keep the close control available while the form scrolls on shorter screens. */
.promotion-dialog { width:min(900px,calc(100% - 32px));overflow:hidden; }
.promotion-dialog[open] { grid-template-columns:.75fr 1.25fr; }
.promo-body { max-height:calc(100dvh - 40px);overflow:auto;padding:34px 38px 22px; }
.promo-body .eyebrow { margin-bottom:12px;padding-right:30px; }
#promotion-description { margin-top:13px;line-height:1.6; }
.promo-price { margin-block:16px; }
.promo-time { padding-block:9px;margin-bottom:14px; }
.promo-submit { margin-top:12px; }
.promo-terms { margin-top:12px; }
.promo-dismiss { margin-top:7px; }
.promo-preview { margin-top:7px; }
@media(max-width:600px) {
 .promo-body { max-height:calc(100dvh - 24px);padding:55px 23px 20px; }
 .promo-body .eyebrow { padding-right:0; }
}
@media(max-width:360px) { .promo-body { padding-inline:18px; } }

/* Compact sale strip: keep the offer and countdown on one slim row. */
.offer-ribbon-inner { width:min(1190px,calc(100% - 32px));display:flex;justify-content:center;gap:22px;padding:4px 0; }
.ribbon-copy { flex-direction:row;align-items:center;gap:12px;font-size:12px;white-space:nowrap; }
.offer-ribbon .promo-preview-label { font-size:9px;letter-spacing:.7px;color:#f0ceba; }
.offer-ribbon .promo-clock { gap:4px; }
.offer-ribbon .promo-clock>span { min-width:32px;padding:3px 6px; }
.offer-ribbon .promo-clock b { font-size:16px; }
.offer-ribbon .promo-clock small { font-size:7px;margin-top:2px; }
.ribbon-claim { min-height:44px;padding:5px 13px;background:transparent;color:var(--cream);font-size:12px;text-decoration:underline;text-underline-offset:3px; }
.ribbon-claim span { margin-left:6px; }
@media(max-width:600px) {
 .offer-ribbon-inner { width:calc(100% - 24px);gap:14px;justify-content:space-between; }
 .ribbon-copy { flex-direction:column;align-items:flex-start;gap:0;font-size:12px;line-height:1.4; }
 .ribbon-extra { display:none; }
 .offer-ribbon .promo-preview-label { font-size:8px; }
 .ribbon-claim { padding-inline:5px; }
}
@media(max-width:360px) {
 .offer-ribbon-inner { gap:8px; }
 .offer-ribbon .promo-clock>span { min-width:28px;padding-inline:4px; }
}
