/* Promotions / redemption: a shared utility layer under the seasonal skin. */
::selection{background:#fbb500;color:#00245b}input{accent-color:#00245b}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}a{text-underline-offset:3px}.christmas-hero{padding:28px 38px 30px;grid-template-columns:1fr .8fr}.hero-copy h1{font-size:60px}.hero-copy p{font-size:14px;margin-bottom:16px}.hero-caption{display:none}.hero-art{max-width:400px;justify-self:end;transform:rotate(-1deg)}.hero-art>span{display:none}.finder-heading{margin-top:26px}.finder-heading h2{font-size:37px}.offer-discovery{margin-bottom:12px}#offerTypes{display:flex;gap:8px;margin:22px 0 15px}.type-filter{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cbd3dc;background:white;padding:15px 10px;border-radius:3px;font-weight:700;font-size:14px}.type-filter svg{height:20px;width:20px}.type-filter.selected{background:#00245b;color:#fff;border-color:#00245b}.type-filter[data-type=exclusive].selected{background:#fbb500;color:#00245b;border-color:#fbb500}#offerTimes{display:flex;gap:8px;flex-wrap:wrap}.filters{padding:12px 0}.filters .frow{margin-bottom:9px}.filters #dealRow{margin-bottom:0}.section-intro{margin-bottom:0}.promotion-grid{align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.offer-card{display:flex;flex-direction:column;min-width:0;background:white;border:1px solid #d4dce3;border-radius:4px;overflow:hidden}.offer-card-body{padding:22px;display:flex;flex-direction:column;flex:1}.offer-type{display:inline-flex;align-items:center;gap:7px;font:700 11px var(--label);letter-spacing:.045em;color:#425977}.offer-type svg{width:18px;height:18px}.offer-type.exclusive{color:#825900}.offer-card h3{font:400 34px/1.04 var(--disp);margin:15px 0 13px;letter-spacing:.005em}.offer-venue{font-size:14px;font-weight:700;line-height:1.4;margin:0}.offer-venue span{display:block;font-size:12px;font-weight:400;color:#53677f;margin-top:4px}.offer-brandline{display:flex;gap:9px;height:48px;margin:16px 0 10px;align-items:center}.offer-brandline img{height:44px;width:auto;object-fit:contain;max-width:35px}.offer-schedule{display:flex;align-items:flex-start;gap:7px;font-size:12px;line-height:1.5;margin:8px 0 2px}.offer-schedule svg{width:17px;height:17px;flex-shrink:0;margin-top:1px}.offer-range{font-size:11px;color:#53677f;margin:2px 0 17px}.offer-rule{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;margin-top:auto}.offer-rule svg{width:18px;height:18px}.offer-card.public .offer-rule{color:#285c4b}.offer-open{display:flex;justify-content:space-between;align-items:center;width:100%;font-weight:700;font-size:13px;padding:14px 0 0;margin-top:16px;border-top:1px solid #dce2e7;min-height:44px;text-align:left}.offer-open:hover{color:#976300}.offer-open>span{font-size:22px}.exclusive-banner{height:100px;display:flex;position:relative;align-items:center;padding:20px 22px;background:#00245b;color:#ffe3a1;overflow:hidden}.exclusive-banner>span{max-width:63%;font-size:13px;line-height:1.5}.exclusive-banner>svg{position:absolute;right:5px;top:-11px;width:104px;height:122px}.exclusive-banner .music-art{opacity:.85;transform:none;right:7px;bottom:auto;top:8px;height:90px;width:90px}.offer-card.exclusive{background:#fff9e9;border-color:#d7b761}.stock-label{font-weight:700;font-size:12px;margin-top:10px;color:#805b0a}.stock-label small{font-size:11px;font-weight:400}.offer-card.exclusive .offer-open{border-color:#dacba5}.more-promotions{grid-column:1/-1}.offer-detail{padding-top:17px}.offer-detail h2{font:400 43px/1 var(--disp);margin:18px 0 15px;padding-right:12px}.offer-detail>p{font-size:14px;line-height:1.65;color:#53677f}.offer-detail-venue{font-weight:700;color:#00245b!important}.offer-detail-venue span{display:block;font-weight:400;font-size:12px}.offer-facts{margin:23px 0;border-top:1px solid #d8dfe4}.offer-facts>div{display:grid;grid-template-columns:100px 1fr;gap:15px;padding:12px 0;border-bottom:1px solid #d8dfe4;font-size:13px}.offer-facts dt{color:#53677f}.offer-facts dd{margin:0;font-weight:500}.offer-detail .offer-demo-note,.offer-demo-note{font-size:11px;color:#596b82;line-height:1.6}.offer-detail .stock-detail{color:#805b0a;font-weight:700}.stock-detail span{font-size:11px;font-weight:400}.offer-terms{margin-top:20px;font-size:12px;color:#53677f}.offer-terms summary{cursor:pointer;font-weight:700;padding:12px 0;color:#00245b}.offer-terms p{line-height:1.6}.offer-detail .btn,.redemption-pass .btn{display:flex;align-items:center;justify-content:center;gap:10px}.btn svg{width:20px;height:20px;flex-shrink:0}.offer-detail .pass-help,.pass-help{font-size:12px;text-align:center;line-height:1.5;color:#53677f;margin:10px 0 18px}.unavailable{background:#d9dfe4;color:#00245b;opacity:1!important}.exclusive-detail-art{position:relative;display:flex;align-items:center;background:#00245b;height:138px;margin:-4px -2px 0;border-radius:3px;overflow:hidden;padding:22px}.exclusive-detail-art>svg{position:absolute;right:20px;width:128px;height:138px;top:0}.exclusive-detail-art .music-art{opacity:.8;bottom:auto;transform:none;right:18px;top:15px;width:110px;height:110px}.exclusive-detail-art>span{color:#fbb500;font:400 40px/.96 var(--disp);max-width:130px}.venue-offers{display:grid;gap:12px;margin:20px 0}.venue-offer{padding:18px;display:flex;flex-direction:column;gap:9px;text-align:left;border:1px solid #d3dce4;background:#fff;border-radius:3px}.venue-offer.exclusive{background:#fff7e1;border-color:#d7b761}.venue-offer>strong{font-size:19px;line-height:1.3}.venue-offer>span:not(.offer-type){font-size:12px;color:#53677f}.venue-offer small{font-size:12px}.event-public-label{position:absolute;top:24px;right:20px;font-size:9px;letter-spacing:.05em}.event-no-redemption{display:block;color:#3f6656;font-size:11px;margin-top:8px}.event-public-detail{font-size:11px;font-weight:700;color:#285c4b;margin-bottom:20px}.event-public-detail span{display:block;font-size:12px;font-weight:400;margin-top:5px}.redemption-pass{background:#00245b;color:white;margin:-20px;padding:30px 28px 24px;min-height:620px;position:relative;text-align:center}.pass-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px;padding-right:32px;text-align:left}.pass-brand img{height:49px;width:auto;background:white;padding:4px;border-radius:2px}.pass-brand>span{font:700 12px var(--label);color:#fbb500;letter-spacing:.06em}.pass-demo-banner{border:1px solid #a4b7d0;color:#d3def0;padding:9px 5px;font-size:10px;letter-spacing:.07em;margin:0 0 20px}.pass-status{display:flex;align-items:center;justify-content:center;gap:10px;background:#d9f1e4;color:#115637;padding:15px;font:700 16px var(--label)}.pass-status svg{width:23px;height:23px}.live-dot{height:10px;width:10px;background:#198353;border-radius:50%;animation:pass-pulse 1.2s ease-in-out infinite}.redemption-pass h2{font:400 43px/1.05 var(--disp);margin:25px 0 18px;color:#fff}.pass-instruction{font-size:13px;color:#c6d5eb;margin:0 0 8px}.redemption-pass h3{font-size:19px;margin:0;line-height:1.3;color:#fff}.pass-area{font-size:13px;color:#c6d5eb;margin:7px 0 12px}.pass-validity{font-size:12px;color:#d9e3f3}.pass-code{padding:19px 0 16px;border-top:1px solid #456083;border-bottom:1px solid #456083;margin:20px 0}.pass-code span{display:block;font-size:10px;letter-spacing:.06em;color:#c6d5eb;margin-bottom:8px}.pass-code strong{font:700 clamp(18px,5vw,26px) var(--label);letter-spacing:.07em;color:#fbb500;overflow-wrap:anywhere}.pass-live{display:flex;justify-content:space-between;gap:20px;text-align:left;font-variant-numeric:tabular-nums}.pass-live>div:last-child{text-align:right}.pass-live span{display:block;font-size:10px;color:#c6d5eb;letter-spacing:.04em}.pass-live strong{display:block;font-size:20px;margin-top:5px;color:white}.pass-track{height:4px;background:#476080;margin-top:14px}.pass-track span{height:100%;background:#fbb500;display:block;transition:width 1s linear}.pass-screenshot{font-size:12px;line-height:1.5;color:#c6d5eb;margin:15px 0 18px}.pass-back{font-size:13px;text-decoration:underline;color:#fff;margin:20px 0 10px;min-height:36px}.pass-terms{text-align:left;border-top:1px solid #456083;margin-top:12px;padding-top:12px;color:#c6d5eb;font-size:11px;line-height:1.6}.pass-terms summary{cursor:pointer;padding:6px 0;color:white;font-size:12px}.pass-receipt{font-size:14px;line-height:1.65;color:#d5e1f2;margin:25px 0}.redemption-pass.redeemed .pass-status{background:#e7ecf2;color:#32435b}.redemption-pass.expired .pass-status{background:#ffe1d6;color:#822e16}.redemption-pass.redeemed .pass-code strong,.redemption-pass.expired .pass-code strong{color:#b1bfd4;text-decoration:line-through}.staff-review{padding:25px 0 8px}.staff-review h2{font:400 43px/1 var(--disp);margin:25px 0 16px}.staff-review>p{font-size:14px;color:#53677f;line-height:1.65}.staff-summary{display:flex;flex-direction:column;gap:12px;padding:20px;background:#fff;border:1px solid #d3dce4;margin:24px 0}.staff-summary strong{font-size:18px}.staff-summary span{font-size:14px}.staff-summary code{font:700 14px var(--label);letter-spacing:.05em}.staff-check{display:flex;gap:12px;font-size:14px;line-height:1.5;align-items:flex-start;padding:12px 0 25px}.staff-check input{width:22px;height:22px;flex-shrink:0;margin:0}.staff-review .offer-demo-note{font-size:11px}.redemption-admin{margin:30px 38px;padding:26px;background:#fff7e1;border:1px solid #d7b761}.redemption-admin h2{font:400 34px/1 var(--disp);margin:0 0 16px}.redemption-admin p{font-size:13px;line-height:1.7}.redemption-admin .btn{max-width:390px}.sheet:has(.redemption-pass){background:#00245b}.sheet:has(.redemption-pass) .handle{background:#7588a7}.sheet:has(.redemption-pass) .sheet-close{top:10px;right:10px}.sheet:has(.redemption-pass) #outletSheetBody{padding-top:20px}#offerTypes svg,#offerTimes svg{flex-shrink:0}.offer-card.public{border-top:1px solid #d4dce3}.offer-card .offer-rule{min-height:24px}
@keyframes pass-pulse{50%{opacity:.35}}
@media(max-width:1000px){.promotion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.christmas-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:15px;padding:24px 20px}.hero-copy h1{font-size:40px;margin:0 0 12px;line-height:.95}.hero-copy p{font-size:12px;line-height:1.5;margin-bottom:13px}.hero-copy p br{display:none}.hero-cta{padding:10px;font-size:10px;gap:12px;min-height:44px}.hero-art{margin:0;transform:rotate(-2deg);align-self:center;width:100%;max-width:none}.hero-art img{aspect-ratio:1/1.2;object-fit:cover;object-position:15% center}.finder-heading{margin:23px 20px 15px}.finder-heading h2{font-size:31px}.view-tabs{gap:22px}.view-tabs button{min-height:48px}.section-intro h2{font-size:29px}.section-intro p{font-size:12px;line-height:1.5}.section-intro{margin-top:22px}#offerTypes{gap:6px;margin-top:20px;align-items:stretch}.type-filter{font-size:11px;line-height:1.35;padding:12px 7px;min-height:52px}.type-filter svg{display:none}#offerTimes{gap:8px}#offerTimes .pill{font-size:11px;min-height:40px}.promotion-grid{grid-template-columns:1fr;gap:16px}.offer-card-body{padding:22px}.offer-card h3{font-size:36px}.offer-card .offer-venue{font-size:15px}.offer-range{font-size:12px}.offer-schedule{font-size:13px}.offer-type{font-size:11px}.offer-open{font-size:14px}.exclusive-banner{height:88px}.exclusive-banner>svg{height:110px;width:100px;top:-13px}.offer-detail h2{font-size:40px}.offer-facts>div{grid-template-columns:90px 1fr;gap:14px}.exclusive-detail-art{height:130px}.exclusive-detail-art>span{font-size:36px}.redemption-pass{padding:28px 23px 22px}.pass-brand>span{font-size:11px}.pass-brand img{height:43px}.pass-status{font-size:15px}.redemption-pass h2{font-size:39px}.pass-code strong{font-size:20px;letter-spacing:.045em}.pass-live strong{font-size:18px}.pass-brand{margin-bottom:20px}.pass-demo-banner{font-size:10px}.pass-validity{font-size:12px}.pass-code span,.pass-live span{font-size:11px}.pass-terms{font-size:12px}.event-public-label{font-size:9px;right:14px}.redemption-admin{margin:24px 20px;padding:20px}.staff-review h2{font-size:39px}.redemption-pass .btn{font-size:12px;letter-spacing:.035em}}
@media(prefers-reduced-motion:reduce){.live-dot{animation:none}.pass-track span{transition:none}}
.filter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #d3dce4}.filter-toolbar>#filterToggle{font-size:12px;min-height:44px;font-weight:500;text-align:left}.filter-toolbar #filterToggle span{font-size:19px;margin-left:10px}.filter-toolbar #mapBtn{margin:0;white-space:nowrap}.offer-discovery{margin-bottom:0}.promotion-grid .empty{grid-column:1/-1}.offer-brandline img{max-height:44px}
@media(max-width:600px){.filter-toolbar>#filterToggle{font-size:12px}.filter-toolbar #mapBtn{font-size:11px}.hero-copy h1{font-size:40px}.offer-card-body{padding:20px}.event-public-label{top:auto;bottom:16px;right:15px}}

/* Keep each brand label and bottle comfortably inside its own button. */
#brandRow{gap:8px;padding-top:2px;padding-bottom:4px;scroll-padding-inline:16px}
#brandRow .pill{flex:0 0 auto;gap:10px;padding:10px 16px;min-height:44px;box-sizing:border-box}
#brandRow .pill img{flex:0 0 18px;width:18px;height:28px;object-fit:contain}

/* Christmas artwork supplied by Connect; historic schedules omitted from crops. */
.hero-art.campaign-photo{transform:none;max-width:500px;border:0;box-shadow:none;overflow:hidden}
.hero-art.campaign-photo img{aspect-ratio:1.9;object-fit:cover;border-radius:3px}
.campaign-product-art{height:185px;display:flex;align-items:center;background:#8f080d;color:#fff;gap:16px;padding:0 18px 0 0;overflow:hidden}
.campaign-product-art img{width:42%;height:100%;object-fit:contain;flex-shrink:0}
.campaign-product-art>div{padding-block:15px}
.campaign-product-art span{display:block;font:700 9px var(--label);letter-spacing:.08em;color:#ffdc81}
.campaign-product-art strong{display:block;font:400 29px/.98 var(--disp);margin:10px 0}
.campaign-product-art small{display:block;font-size:10px;line-height:1.45;color:#ffe7d8}
.campaign-product-art.christmas-stout{background:#005737}
.campaign-product-art.christmas-caribe{background:#4d137d}
.event-art.archive-event-art{height:auto;aspect-ratio:4/5;padding:0;background:#00245b}
.archive-event-art>img{display:block;width:100%;height:100%;object-fit:contain}
.archive-event-art .event-sample{left:auto;right:12px;bottom:12px;background:#00245b;color:white;padding:7px 9px;border:1px solid #ffffff66}
.event-plan-title{font:700 11px/1.4 var(--label);color:#68778d;margin:0 0 8px!important}
.detail-art.archive-event-art{max-height:510px;aspect-ratio:4/5}
.exclusive-banner{background:#00245b url('assets/christmas-santa.webp') left 18%/cover no-repeat;isolation:isolate}
.exclusive-banner:before{content:'';position:absolute;inset:0;background:#00245bc9;z-index:-1}
@media(max-width:600px){.hero-art.campaign-photo{max-width:none}.campaign-product-art{height:175px}.campaign-product-art strong{font-size:31px}.event-art.archive-event-art{aspect-ratio:4/5}.detail-art.archive-event-art{max-height:450px}}
.campaign-product-art.christmas-parang-hero{background:#00245b}.campaign-product-art.christmas-parang-hero img{object-fit:cover;object-position:35% center}.archive-event-art:before,.archive-event-art:after{display:none}

/* Original campaign lettering, outlined from the supplied campaign fonts. */
.hero-copy h1.campaign-headline{font-size:inherit;line-height:1;margin:0 0 14px;max-width:470px}
.campaign-headline img{display:block;width:100%;height:auto}
@media(max-width:600px){.hero-copy h1.campaign-headline{margin:0 0 12px}.christmas-hero:has(.campaign-headline){grid-template-columns:1.2fr .8fr;gap:10px}.campaign-headline img{width:calc(100% + 12px);max-width:none;margin-left:-8px}}

/* Restore the original complete Christmas happy-hour hero artwork. */
.hero-art.campaign-original{transform:none;max-width:500px;box-shadow:none;border:0}
.hero-art.campaign-original img{display:block;width:100%;height:auto;object-fit:contain}

/* Full campaign hero: original artwork with a restrained sparkle on Beer. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.christmas-hero.campaign-hero-full{display:block;padding:0;background:#00245b;overflow:hidden}
.campaign-hero-full:before{display:none}
.campaign-hero-full .hero-art.campaign-stage{position:relative;display:block;max-width:none;width:100%;margin:0;border:0;transform:none;box-shadow:none;line-height:0}
.campaign-stage>img{display:block;width:100%;height:auto;aspect-ratio:16/9}
.beer-sparkles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.beer-twinkle{opacity:0;transform:scale(.65);animation:beerTwinkle 9s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.twinkle-two{animation-delay:2.8s}.twinkle-three{animation-delay:5.7s}
@keyframes beerTwinkle{0%,5%,24%,100%{opacity:0;transform:scale(.65)}12%{opacity:.88;transform:scale(1.1)}18%{opacity:.3;transform:scale(.85)}}
.motion-paused .beer-twinkle{animation-play-state:paused}
.hero-action-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 38px;border-top:1px solid #ffffff22}
.hero-action-strip p{font-size:14px;line-height:1.65;color:#d8e5f5;margin:0}.hero-action-strip strong{font-weight:600;color:#fff}
.hero-action-strip .hero-cta{font:700 13px var(--body);padding:16px 25px;min-height:48px;justify-content:center;white-space:nowrap;transition:background-color .2s}
.hero-action-strip .hero-cta:hover{background:#ffd15c}
.ui-icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle}
#mapBtn,#mapFab,#filterToggle{display:inline-flex;align-items:center;justify-content:center;gap:9px}
#mapFab .ui-icon{width:18px;height:18px}#filterToggle .ui-icon{width:18px;height:18px}
#filterToggle[aria-expanded=true]{color:#00245b;background:#e7ebee}
.location-icon{display:flex;align-items:center}.location-icon .ui-icon{width:25px;height:25px}
.view-tabs button{font-size:15px;text-align:center}.offer-open{justify-content:flex-start}
@media(max-width:600px){.christmas-hero.campaign-hero-full{display:block;padding:0}.hero-action-strip{padding:18px 20px 20px;gap:14px;display:block}.hero-action-strip p{font-size:13px;line-height:1.55}.hero-action-strip .hero-cta{width:100%;margin-top:15px;min-height:48px}.view-tabs button{font-size:15px}.campaign-hero-full .hero-art.campaign-stage{max-width:none}}
@media(prefers-reduced-motion:reduce){.beer-twinkle{animation:none;opacity:0}.hero-action-strip .hero-cta{transition:none}}
#filterToolbar #filterToggle{padding:10px 12px;min-height:44px;border-radius:3px;font-size:12px}
#filterToolbar #filterToggle span{font:inherit}
