/* Promotion campaign carousel. Artwork carries the colour; all copy remains editable. */
.home-promotions{margin-top:44px;margin-bottom:0;scroll-margin-top:110px}
.home-promotions[hidden],.home-promotions [hidden]{display:none!important}
.home-promotions__head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:23px}
.home-promotions__head h2{margin:0;font-size:28px;line-height:1.25;letter-spacing:-.7px}
.home-promotions__sub{margin:8px 0 0;color:var(--bb-muted,#77829a);font-size:15px}
.home-promotions__position{color:var(--bb-muted,#77829a);font-size:12px;white-space:nowrap;padding-bottom:2px}
.home-promotions__carousel{position:relative}
.promo-rail{display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:4px 2px 16px;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y pinch-zoom}
.promo-rail::-webkit-scrollbar{display:none}
.promo-rail:focus-visible{outline:2px solid var(--bb-primary,#514dff);outline-offset:5px;border-radius:16px}
.promo-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.promo-rail.is-dragging *{cursor:grabbing!important}
.home-promotions__nav{position:absolute;inset:0;pointer-events:none}
.home-promotions__nav button{position:absolute;top:calc(50% - 28px);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #e6e8f2;background:#fff;box-shadow:0 4px 18px #17234c22;cursor:pointer;pointer-events:auto;transition:opacity .18s,transform .18s;z-index:3}
.home-promotions__nav button:first-child{left:-22px}.home-promotions__nav button:last-child{right:-22px}
.home-promotions__nav button:hover{transform:scale(1.07)}.home-promotions__nav button:disabled{opacity:0;pointer-events:none}
.home-promotions__nav img{width:23px;height:23px}
.promo-card,.promo-skeleton{position:relative;box-sizing:border-box;flex:0 0 clamp(360px,42%,620px);min-width:0;border-radius:16px;scroll-snap-align:start}
.promo-card{--promo-color:#322298;--promo-highlight:#ffe47a;isolation:isolate;display:flex;flex-direction:column;min-height:278px;overflow:hidden;text-decoration:none;color:white;background:linear-gradient(115deg,var(--promo-color),#6860e0);box-shadow:0 5px 14px #17234c0b;transition:box-shadow .2s;container-type:inline-size}
.promo-card--jade{--promo-color:#075c50;--promo-highlight:#fff0a3}.promo-card--blue{--promo-color:#153ca9;--promo-highlight:#ffe47a}.promo-card--coral{--promo-color:#9d2145;--promo-highlight:#fff0ab}
.promo-card:hover{box-shadow:0 7px 20px #17234c24}
.promo-card:focus-visible,.promo-card__cta:focus-visible,.home-promotions__nav button:focus-visible{outline:3px solid #ff9b52;outline-offset:3px}
.promo-card__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;transition:transform .5s ease}
.promo-card:hover .promo-card__photo{transform:scale(1.025)}
.promo-card::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b063c3b 0%,#0b063c16 48%,transparent 68%);pointer-events:none}
.promo-card__body{box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;width:57%;min-height:278px;padding:27px 0 25px 28px;position:relative}
.promo-card__eyebrow{display:inline-block;max-width:100%;padding:5px 9px;background:#ffffff19;border:1px solid #ffffff38;border-radius:5px;font-size:10px;font-weight:700;letter-spacing:1px;line-height:1.35;color:#fff}
.promo-card__title{color:#fff;font-weight:700;font-size:clamp(24px,5.8cqi,35px);line-height:1.12;letter-spacing:-.8px;margin:15px 0 10px;text-wrap:balance;max-width:95%;text-shadow:0 1px 10px #0002}
.promo-card__description{font-size:13px;line-height:1.5;color:#fffffff0;max-width:92%;margin:0 0 20px;text-shadow:0 1px 6px #0003}
.promo-card__cta{display:inline-flex;align-items:center;gap:15px;padding:10px 15px;border-radius:999px;background:var(--promo-highlight);color:#282047;font-size:13px;font-weight:700;line-height:1.25;text-decoration:none;margin-top:auto;box-shadow:0 3px 9px #0001}
.promo-card__arrow{font-size:18px;line-height:1}
.promo-card--discount .promo-card__body{min-height:300px;padding-top:22px;padding-bottom:21px;width:58%}
.promo-card--discount .promo-card__title{font-size:17px;letter-spacing:-.2px;margin:10px 0 6px}
.promo-card--discount .promo-card__description{font-size:12px;margin-bottom:13px}
.promo-card__amount{display:flex;gap:8px;align-items:baseline;margin-top:12px;color:#fff}
.promo-card__amount strong{font-size:clamp(42px,10cqi,62px);line-height:1;letter-spacing:-2px}.promo-card__amount>span{font-size:23px;font-weight:700;color:var(--promo-highlight)}
.promo-card__coupon{display:flex;flex-wrap:wrap;gap:10px;align-items:start;margin-top:14px;font-size:11px;color:#fff}
.promo-card__coupon code{font-family:inherit;font-size:11px;font-weight:700;letter-spacing:1px;color:#fff;padding:4px 7px;background:#ffffff15;border:1px dashed #ffffff88;border-radius:4px}
.promo-card__terms summary{cursor:pointer;padding:5px 0}.promo-card__terms p{line-height:1.6;max-width:260px;margin:8px 0 0;padding:10px;background:#100a4088;border-radius:6px}
.promo-skeleton{min-height:278px;background:linear-gradient(110deg,#eeedf8 25%,#f7f6fc 45%,#eeedf8 65%);background-size:250% 100%;animation:promo-shimmer 1.4s linear infinite}
@keyframes promo-shimmer{to{background-position:-150% 0}}
.home-promotions:not([hidden])+.home-band--filtered{margin-top:40px}
@media(prefers-reduced-motion:reduce){.promo-card,.promo-card__photo,.home-promotions__nav button{transition:none}.promo-skeleton{animation:none}}
