:root {
  --pine-950: #011b15;
  --pine-900: #03271f;
  --pine-800: #073a2d;
  --pine-700: #0b4a39;
  --paper: #f4eddf;
  --paper-light: #fffaf0;
  --paper-dark: #e7dbc7;
  --gold: #b88b2a;
  --gold-light: #e2bd61;
  --oxblood: #8f2a20;
  --oxblood-dark: #641a14;
  --ink: #123b31;
  --muted: #5d6d66;
  --line: rgba(112, 83, 35, .24);
  --display: Georgia, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
  --shadow: 0 18px 50px rgba(14, 33, 27, .12);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select { color: inherit; font: inherit; }
button { cursor: pointer; }
img, svg { display: block; }
.shell { width: min(calc(100% - clamp(32px, 7vw, 104px)), 1280px); margin-inline: auto; }
.eyebrow { margin: 0 0 8px; color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: 1.7px; text-transform: uppercase; }

/* Header */
.site-header { height: clamp(76px, 6.3vw, 92px); position: relative; z-index: 50; border-bottom: 1px solid rgba(226,189,97,.2); background: var(--pine-900); color: var(--paper); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; flex-direction: column; align-items: center; line-height: .94; }
.brand-kicker { color: var(--gold-light); font-family: var(--display); font-size: clamp(11px,1vw,14px); font-style: italic; font-weight: 700; }
.brand-name { display: flex; align-items: center; gap: 11px; font-family: var(--display); font-size: clamp(26px,2.4vw,35px); font-weight: 700; white-space: nowrap; }
.brand-name i { width: clamp(25px,2.8vw,40px); height: 1px; background: var(--gold); }
.main-nav { display: flex; align-items: center; gap: clamp(14px,1.75vw,27px); font-size: clamp(11px,.88vw,13px); font-weight: 800; letter-spacing: .35px; text-transform: uppercase; }
.main-nav a { position: relative; padding-block: 12px; white-space: nowrap; }
.main-nav a:not(.nav-register)::after { content: ""; height: 2px; position: absolute; right: 0; bottom: 5px; left: 0; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.main-nav a:not(.nav-register):hover::after,.main-nav a:not(.nav-register):focus-visible::after { transform: scaleX(1); }
.main-nav a:not(.nav-register):hover,.main-nav a:not(.nav-register):focus-visible { color: var(--gold-light); }
.nav-register { min-width: 148px; padding: 14px 22px !important; border: 1px solid rgba(226,189,97,.35); background: var(--oxblood); color: #fff; text-align: center; }
.menu-toggle { width: 48px; height: 48px; padding: 11px; display: none; flex-direction: column; justify-content: center; gap: 6px; border: 1px solid rgba(226,189,97,.55); border-radius: 2px; background: transparent; }
.menu-toggle span { height: 2px; display: block; background: var(--paper); transition: transform .2s,opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Hero */
.hero { height: clamp(650px, 46vw, 680px); position: relative; overflow: hidden; background: var(--pine-950); color: #fff; }
.hero-photo { position: absolute; inset: 0; background: url("assets/hero-background-approved.png?v=1") 72% 100% / cover no-repeat; }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,22,16,.88) 0%,rgba(0,24,18,.68) 32%,rgba(0,20,15,.16) 58%,transparent 74%),linear-gradient(0deg,rgba(0,20,15,.22),transparent 38%); }
.hero-inner { height: 100%; position: relative; z-index: 1; display: flex; align-items: center; }
.hero-copy { width: min(52%, 650px); text-align: center; text-shadow: 0 2px 5px rgba(0,0,0,.65); }
.hero-kicker { margin: 0 0 4px; color: var(--gold-light); font-family: var(--display); font-size: clamp(22px,2vw,27px); font-style: italic; font-weight: 700; }
.hero h1 { margin: 0; color: #fbf4e8; font-family: var(--display); font-size: clamp(68px,6.2vw,92px); font-weight: 700; letter-spacing: -3px; line-height: .92; text-transform: uppercase; white-space: nowrap; }
.hero-year { margin: 9px 0 0; color: #bc3b2e; font-family: var(--display); font-size: clamp(55px,4.6vw,68px); font-weight: 700; line-height: .88; text-shadow: 0 2px 0 #5c1510; }
.hero-meta { width: 100%; margin: 44px 0 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; border-block: 1px solid rgba(226,189,97,.88); background: rgba(0,36,27,.72); font-size: clamp(24px,2vw,30px); font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.hero-meta > div { min-width: 0; min-height: 80px; padding: 12px 16px; display: flex; align-items: center; justify-content: center; gap: 14px; }
.hero-meta span { display: flex; align-items: center; font: inherit; line-height: 1; }
.hero-meta > div:first-child { border-right: 1px solid rgba(226,189,97,.42); }
.hero-meta svg { width: 36px; height: 36px; flex: 0 0 36px; color: var(--gold-light); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.hero-meta small { display: block; margin-top: 3px; font-size: 14px; letter-spacing: .35px; }
.countdown { min-height: 78px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: stretch; border-bottom: 1px solid rgba(226,189,97,.82); background: rgba(0,27,20,.8); }
.countdown div { min-width: 0; padding: 10px 6px 9px; display: grid; place-items: center; align-content: center; gap: 4px; border-right: 1px solid rgba(226,189,97,.28); }
.countdown div:last-child { border-right: 0; }
.countdown strong { font-family: var(--sans); font-size: 36px; font-weight: 900; font-variant-numeric: tabular-nums; letter-spacing: -1px; line-height: .9; }
.countdown span { font-size: 12px; font-weight: 800; letter-spacing: .4px; line-height: 1; text-transform: uppercase; }
.hero-actions { margin-top: 16px; display: grid; grid-template-columns: 1fr; }
.btn { min-height: 50px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--gold); border-radius: 2px; background: transparent; font-family: var(--display); font-size: 15px; font-weight: 700; letter-spacing: .2px; text-transform: uppercase; }
.btn-red { border-color: #ad473c; background: var(--oxblood); color: #fff; }
.btn-outline { background: rgba(0,35,26,.42); color: var(--gold-light); }
.btn:hover,.btn:focus-visible { filter: brightness(1.12); }

/* Facts */
.facts-band { border-block: 1px solid var(--line); background: var(--paper-light); }
.facts-grid { min-height: 148px; display: grid; grid-template-columns: 1.05fr 1fr 1fr 1fr 1.35fr; }
.fact { min-width: 0; padding: 18px 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid var(--line); text-align: center; }
.fact:last-child { border-right: 0; }
.fact-icon { width: 49px; height: 49px; color: var(--pine-800); fill: currentColor; }
.team-icon { width: 68px; }
.calendar-icon { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.calendar-icon text { fill: currentColor; stroke: none; font-family: var(--sans); font-size: 8px; font-weight: 800; text-anchor: middle; }
.calendar-icon text:last-child { font-size: 15px; }
.shield-icon path:last-child { fill: none; stroke: var(--paper-light); stroke-width: 3; }
.extra-ball-icon { width: 68px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.extra-ball-icon .back-ball { opacity: .5; }
.extra-ball-icon .front-ball { fill: var(--paper-light); }
.extra-ball-icon circle:not(.front-ball):not(.back-ball) { fill: currentColor; stroke: none; }
.fact strong { margin-top: 4px; font-family: var(--display); font-size: 25px; line-height: 1; }
.fact span { margin-top: 7px; font-size: 12px; font-weight: 700; letter-spacing: .45px; line-height: 1.25; text-transform: uppercase; }
.facts-grid .mulligan-fact strong,.facts-grid .shield-icon + strong { font-size: 30px; }
.mulligan-fact span { max-width: 180px; }

/* Shared headings */
.section-heading { max-width: 780px; margin: 0 auto 32px; text-align: center; }
.section-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(34px,3.5vw,46px); line-height: 1.05; text-transform: uppercase; }
.section-heading > p:last-child { max-width: 640px; margin: 11px auto 0; color: var(--muted); font-size: 15px; }
.section-heading-light h2 { color: var(--paper); }
.section-heading-light > p:last-child { color: rgba(244,237,223,.72); }

/* What's included */
.whats-included { padding: clamp(50px,6vw,82px) 0 clamp(56px,6.5vw,90px); border-bottom: 1px solid var(--gold); background: linear-gradient(135deg,#eee3d0 0%,#fffaf0 48%,#e7dbc7 100%); }
.included-heading { max-width: 820px; }
.included-heading h2 { color: var(--pine-900); }
.included-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: clamp(14px,1.8vw,24px); }
.included-card { min-width: 0; position: relative; grid-column: span 2; overflow: hidden; border: 1px solid rgba(184,139,42,.52); background: var(--paper-light); box-shadow: 0 16px 36px rgba(14,33,27,.13); }
.included-card.included-wide { grid-column: span 3; }
.included-card > img { width: 100%; height: clamp(205px,18vw,270px); display: block; object-fit: cover; }
.included-wide > img { height: clamp(250px,22vw,330px); }
.included-weather { grid-column: 1 / -1; min-height: 300px; display: grid; grid-template-columns: minmax(300px,.75fr) minmax(0,1.7fr); }
.included-weather > img { height: auto; min-height: 0; align-self: center; object-fit: contain; object-position: center; }
.included-weather .included-copy { min-height: 100%; align-content: center; border-top: 0; border-right: 3px solid var(--gold); }
.included-copy { min-height: 116px; padding: 19px 20px 18px; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: start; gap: 13px; border-top: 3px solid var(--gold); }
.included-copy > span { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--oxblood); font-family: var(--display); font-size: 15px; font-weight: 700; }
.included-copy h3 { margin: 0; color: var(--pine-900); font-family: var(--display); font-size: clamp(22px,2vw,29px); line-height: 1.05; text-transform: uppercase; }
.included-copy p { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.included-copy small { margin-top: 9px; padding: 5px 8px; display: inline-flex; border: 1px solid rgba(143,42,32,.34); background: #f7e8e3; color: var(--oxblood); font-size: 10px; font-weight: 900; letter-spacing: .45px; line-height: 1; text-transform: uppercase; }

/* Challenges */
.challenges { padding: clamp(40px,4vw,56px) 0 clamp(44px,4.5vw,64px); background: var(--pine-900); color: var(--paper); }
.challenge-heading { max-width: none; margin-bottom: clamp(22px,2.5vw,32px); }
.challenge-heading h2 span { color: var(--gold-light); font-size: .72em; vertical-align: .08em; }
.challenge-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(18px,2vw,32px); }
.challenge-card { min-width: 0; margin: 0; }
.challenge-card > img { width: 100%; height: auto; aspect-ratio: 1672 / 941; display: block; object-fit: contain; }
.challenge-prize { width: fit-content; margin: clamp(24px,3vw,38px) auto 0; padding: 12px clamp(20px,3vw,38px); display: flex; align-items: baseline; justify-content: center; gap: .32em; border-block: 1px solid var(--gold); color: var(--paper); font-family: var(--display); font-size: clamp(24px,3vw,38px); line-height: 1; text-align: center; text-transform: uppercase; }
.challenge-prize strong { color: var(--gold-light); }
.challenge-prize span { font-size: .62em; }
.challenge-prize b { color: #fff; font-size: 1.15em; }
.course-chaos-break,
.course-water-break { overflow: hidden; border-block: 1px solid var(--gold); background: var(--pine-950); }
.course-chaos-break img,
.course-water-break img { width: 100%; height: auto; display: block; }

/* Course layout */
.course-layout { padding: clamp(54px,6vw,84px) 0; border-bottom: 1px solid rgba(226,189,97,.35); background: var(--pine-950); color: var(--paper); }
.course-layout-heading .eyebrow { color: var(--gold-light); }
.course-layout-heading > p:last-child { color: rgba(244,237,223,.72); }
.course-map-card { max-width: 1140px; margin-inline: auto; overflow: hidden; border: 1px solid var(--gold); background: var(--paper-light); color: var(--ink); box-shadow: 0 28px 70px rgba(0,0,0,.3); }
.course-map-masthead { min-height: 92px; padding: 18px clamp(22px,3vw,38px); display: flex; align-items: center; justify-content: space-between; gap: 32px; border-bottom: 3px double var(--gold); background: var(--pine-900); color: var(--paper); }
.course-map-name { display: grid; gap: 3px; }
.course-map-name strong { font-family: var(--display); font-size: clamp(23px,2.2vw,31px); line-height: 1; }
.course-map-name span { color: var(--gold-light); font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.course-summary { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4,auto); gap: clamp(18px,2.7vw,40px); list-style: none; }
.course-summary li { min-width: 58px; display: grid; gap: 1px; text-align: center; }
.course-summary b { color: #fff; font-family: var(--display); font-size: clamp(21px,2vw,28px); font-variant-numeric: tabular-nums; line-height: 1; }
.course-summary span { color: var(--gold-light); font-size: 10px; font-weight: 900; letter-spacing: .65px; text-transform: uppercase; }
.course-map-guide { padding: 18px clamp(22px,3vw,38px); display: grid; grid-template-columns: minmax(220px,.8fr) minmax(0,2.2fr); align-items: center; gap: clamp(22px,3vw,42px); border-bottom: 1px solid var(--line); background: #f3e8d4; }
.course-map-guide > p { margin: 0; display: grid; gap: 4px; }
.course-map-guide > p strong { color: var(--pine-900); font-family: var(--display); font-size: 19px; text-transform: uppercase; }
.course-map-guide > p span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.route-key { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(13px,2vw,24px); list-style: none; }
.route-key li { min-width: 0; display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 9px; }
.route-key i { width: 22px; height: 22px; display: block; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px currentColor; }
.route-key span { min-width: 0; display: grid; gap: 1px; }
.route-key b { color: var(--pine-900); font-size: 12px; line-height: 1.15; }
.route-key small { color: var(--muted); font-size: 10px; font-weight: 800; line-height: 1.2; text-transform: uppercase; }
.route-par-3 { color: var(--gold); background: var(--gold); }
.route-par-4 { color: var(--pine-800); background: var(--pine-800); }
.route-par-5 { color: var(--oxblood); background: var(--oxblood); }
.course-map-body { background: #e8dfc9; }
.course-map-figure { min-width: 0; margin: 0; padding: clamp(18px,2.5vw,32px); display: grid; justify-items: center; background: #e8dfc9; }
.course-map-expand { display: none; }
.course-map-figure picture { width: min(100%,800px); display: block; border: 1px solid #9d916f; background: #d4d9b9; box-shadow: inset 0 0 0 4px rgba(255,255,255,.35); }
.course-map-figure img { width: 100%; height: auto; display: block; }
.terrain-guide { width: min(100%,800px); margin-top: 15px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid #c7b99d; background: #fffaf0; }
.terrain-guide > strong { flex: 0 0 auto; color: var(--pine-900); font-family: var(--display); font-size: 14px; text-transform: uppercase; }
.terrain-key { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,auto); gap: clamp(10px,1.8vw,20px); list-style: none; }
.terrain-key li { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; text-transform: uppercase; }
.terrain-key i { width: 24px; height: 12px; flex: 0 0 24px; display: block; border: 1px solid rgba(0,0,0,.18); }
.terrain-fairway { border-radius: 10px; background: #76934f; }.terrain-green { border-radius: 50%; background: #b7ce69; }.terrain-water { background: #72a9af; }.terrain-bunker { border-radius: 50%; background: #d9c080; }.terrain-cartpath { height: 3px !important; border: 0 !important; background: #a98b6b; }
.course-map-figure figcaption { width: min(100%,800px); padding: 13px 4px 0; display: grid; gap: 4px; color: var(--muted); text-align: center; }
.course-map-figure figcaption span { font-size: 13px; font-weight: 800; line-height: 1.4; }
.course-map-figure figcaption small { font-size: 9px; letter-spacing: .3px; line-height: 1.45; text-transform: uppercase; }
.course-map-figure figcaption a { color: var(--pine-900); text-decoration: underline; text-underline-offset: 2px; }
.yardage-scorecard { border-top: 3px double var(--gold); background: #fffaf0; }
.yardage-scorecard summary { min-height: 62px; padding: 12px clamp(20px,2.6vw,34px); display: flex; align-items: center; gap: 13px; cursor: pointer; list-style: none; color: var(--pine-900); font-weight: 900; letter-spacing: .45px; text-transform: uppercase; }
.yardage-scorecard summary::-webkit-details-marker { display: none; }
.yardage-scorecard summary span { font-family: var(--display); font-size: 19px; }
.yardage-scorecard summary small { color: var(--muted); font-size: 11px; }
.yardage-scorecard summary::after { content: "+"; width: 30px; height: 30px; margin-left: auto; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--oxblood); font-family: var(--display); font-size: 23px; line-height: 1; }
.yardage-scorecard[open] summary::after { content: "−"; }
.scorecard-swipe { display: none; }
.scorecard-nines { padding: 0 clamp(20px,2.6vw,34px) clamp(24px,3vw,36px); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.scorecard-nine { min-width: 0; }
.scorecard-nine h3 { margin: 0; padding: 9px 13px; background: var(--pine-900); color: var(--gold-light); font-family: var(--display); font-size: 18px; text-transform: uppercase; }
.scorecard-scroll { max-width: 100%; overflow-x: auto; }
.scorecard-nine table { width: 100%; min-width: 540px; border-collapse: separate; border-spacing: 0; background: #fff; table-layout: fixed; font-size: 12px; font-variant-numeric: tabular-nums; }
.scorecard-nine th,.scorecard-nine td { height: 38px; padding: 5px 3px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.scorecard-nine tr:first-child th,.scorecard-nine tr:first-child td { border-top: 1px solid var(--line); }
.scorecard-nine th { width: 58px; position: sticky; left: 0; z-index: 1; border-left: 1px solid var(--line); background: #efe3cd; color: var(--pine-900); font-size: 11px; letter-spacing: .35px; text-transform: uppercase; box-shadow: 2px 0 0 rgba(184,139,42,.18); }
.scorecard-nine tr:first-child td,.scorecard-nine tr:last-child td { font-weight: 900; }
.scorecard-nine td:last-child { background: #f3e5ca; color: var(--oxblood); font-weight: 900; }

/* Registration */
.registration { padding: clamp(54px,6vw,82px) 0 0; background: linear-gradient(90deg,var(--paper-dark),var(--paper-light) 50%,var(--paper-dark)); }
.register-grid { display: grid; grid-template-columns: minmax(0,3fr) minmax(330px,2fr); gap: clamp(22px,2.5vw,36px); align-items: start; }
.registration-form,.cart-addons,.checkout-aside { min-width: 0; border: 1px solid var(--line); box-shadow: var(--shadow); }
.registration-form { padding: clamp(26px,2.6vw,38px); background: rgba(255,253,248,.9); }
.registration-main { min-width: 0; display: grid; gap: 18px; }
.cart-addons { padding: 26px; background: #fffdf8; }
.form-step { margin-bottom: 5px; padding-bottom: 19px; display: flex; align-items: center; gap: 13px; border-bottom: 1px solid var(--line); }
.form-step > span { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-family: var(--display); font-weight: 700; }
.form-step div { display: grid; }
.form-step strong { font-family: var(--display); font-size: 20px; }
.form-step small { color: var(--muted); font-size: 12px; }
.team-fields { margin-top: 21px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px 16px; }
.registration-form label { min-width: 0; display: grid; gap: 7px; font-size: 13px; font-weight: 800; }
.registration-form input { min-width: 0; width: 100%; height: 49px; padding: 0 13px; border: 1px solid #c8b99f; border-radius: 2px; outline: 0; background: #fff; font-size: 16px; font-weight: 400; }
.registration-form input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,139,42,.14); }
.addon-row { margin-top: 17px; padding: 14px 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.addon-copy { min-width: 0; display: grid; gap: 2px; }
.addon-copy strong { font-family: var(--display); font-size: 17px; line-height: 1.15; }
.addon-price { margin-top: 3px; color: var(--oxblood); font-family: var(--display); font-size: clamp(38px,3.4vw,48px); line-height: .9; }
.addon-price small { color: var(--ink); font-family: var(--sans); font-size: 12px; font-weight: 900; letter-spacing: .02em; text-transform: uppercase; }
.addon-copy span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.skins-row { margin-top: 0; }
.addon-checkbox { min-height: 44px; padding: 0 12px; flex: 0 0 auto; display: flex; align-items: center; gap: 8px; border: 1px solid #bcae93; background: #fff; color: var(--pine-800); cursor: pointer; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.addon-checkbox input { width: 20px; height: 20px; margin: 0; accent-color: var(--pine-800); }
.addon-checkbox:hover,.addon-checkbox:focus-within { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(184,139,42,.16); }
.addon-checkbox input:checked + span { color: var(--oxblood); }
.addon-checkbox input:disabled { cursor: not-allowed; }
.quantity-stepper { flex: 0 0 auto; display: grid; grid-template-columns: 42px 50px 42px; align-items: stretch; border: 1px solid #bcae93; background: #fff; }
.stepper-button { min-width: 42px; min-height: 42px; padding: 0; border: 0; background: var(--paper); color: var(--pine-800); font-size: 24px; font-weight: 700; line-height: 1; }
.stepper-button:hover:not(:disabled),.stepper-button:focus-visible { background: var(--gold-light); }
.stepper-button:disabled { cursor: not-allowed; opacity: .35; }
.quantity-stepper input { width: 50px; min-width: 0; height: 42px; padding: 0; border: 0; border-inline: 1px solid #d8cbb5; outline: 0; background: #fff; font-size: 18px; font-weight: 900; text-align: center; appearance: textfield; }
.quantity-stepper input::-webkit-outer-spin-button,.quantity-stepper input::-webkit-inner-spin-button { margin: 0; appearance: none; }
.drink-builder { min-width: 0; margin: 18px 0 0; padding: 0; border: 0; }
.drink-builder legend { padding: 0; font-family: var(--display); font-size: 18px; font-weight: 700; }
.drink-builder > p { margin: 4px 0 13px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.drink-options { min-width: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.drink-choice { min-width: 0; min-height: 65px; padding: 8px 5px; display: grid; place-items: center; align-content: center; gap: 2px; border: 1px solid #c8b99f; border-radius: 2px; background: #fff; color: var(--ink); }
.drink-choice strong { font-size: 11px; line-height: 1.1; text-transform: uppercase; }
.drink-choice span { color: var(--oxblood); font-family: var(--display); font-size: 18px; font-weight: 800; }
.drink-choice > small { color: var(--pine-800); font-size: 10px; font-weight: 900; letter-spacing: .25px; line-height: 1; text-transform: uppercase; }
.drink-choice:hover:not(:disabled),.drink-choice:focus-visible { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(184,139,42,.16); }
.drink-choice.active { border-color: var(--pine-800); background: var(--pine-800); color: #fff; box-shadow: inset 0 0 0 1px var(--gold-light); }
.drink-choice.active span { color: var(--gold-light); }
.drink-choice-round { min-height: 104px; padding: 9px 12px; position: relative; grid-column: 1 / -1; grid-template-columns: 78px minmax(0,1fr) auto; place-items: center start; gap: 10px; overflow: hidden; border: 2px solid var(--oxblood); background: linear-gradient(90deg,#fff 0%,#fff9ed 100%); text-align: left; }
.drink-choice-round .choice-badge { position: absolute; top: 0; right: 0; padding: 4px 9px; background: var(--oxblood); color: #fff; font-family: var(--sans); font-size: 9px; letter-spacing: .7px; line-height: 1; text-transform: uppercase; }
.choice-drinks { width: 78px; height: 82px; display: flex; align-items: flex-end; justify-content: center; gap: 0; }
.choice-drinks img { width: 43px; height: 78px; margin-inline: -4px; object-fit: contain; }
.choice-drinks .choice-bloody { transform: scale(1.14); transform-origin: center bottom; }
.drink-choice-round .choice-copy { display: grid; color: var(--ink); font-family: var(--sans); }
.drink-choice-round .choice-copy strong { font-family: var(--display); font-size: 17px; text-transform: uppercase; }
.drink-choice-round .choice-copy small { color: var(--muted); font-size: 11px; }
.drink-choice-round .choice-copy .choice-save { margin-top: 3px; color: var(--oxblood); font-size: 10px; font-weight: 900; letter-spacing: .35px; text-transform: uppercase; }
.drink-choice-round > b { color: var(--oxblood); font-family: var(--display); font-size: 29px; }
.drink-choice-round.active { background: var(--pine-800); }
.drink-choice-round.active .choice-copy,.drink-choice-round.active .choice-copy small,.drink-choice-round.active .choice-copy .choice-save,.drink-choice-round.active > b { color: #fff; }
.double-upgrade { margin-top: 14px; padding: 11px 0 0; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 10px; border-top: 1px solid var(--line); }
.double-upgrade > img { width: 38px; height: 54px; object-fit: contain; }
.double-copy .addon-price { font-size: clamp(34px,3vw,44px); }
.double-segments { display: grid; grid-template-columns: repeat(5,42px); border: 1px solid #bcae93; background: #fff; }
.double-segments button { width: 42px; height: 42px; padding: 0; border: 0; border-right: 1px solid #d8cbb5; background: var(--paper); color: var(--pine-800); font-size: 16px; font-weight: 900; }
.double-segments button:last-child { border-right: 0; }
.double-segments button:hover:not(:disabled),.double-segments button:focus-visible { background: var(--gold-light); }
.double-segments button.active { background: var(--pine-800); color: #fff; box-shadow: inset 0 0 0 1px var(--gold-light); }
.double-segments button:disabled { cursor: not-allowed; opacity: .3; }
.beer-builder { min-width: 0; margin: 20px 0 0; padding: 19px 0 0; border: 0; border-top: 1px solid var(--line); }
.beer-builder legend { padding: 0; color: var(--ink); font-family: var(--display); font-size: 18px; font-weight: 700; }
.beer-builder > p:first-of-type { max-width: 610px; margin: 4px 0 13px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.cart-cooler-panel { margin-top: 14px; padding: 16px; border: 1px solid #c8b99f; background: #fbf7ee; }
.cart-cooler-panel + .cart-cooler-panel { margin-top: 18px; }
.cart-cooler-panel h4 { margin: 0 0 12px; padding-bottom: 9px; border-bottom: 2px solid var(--gold); color: var(--pine-900); font-family: var(--display); font-size: 22px; line-height: 1; }
.beer-mode { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.beer-mode-choice { min-width: 0; min-height: 58px; padding: 9px 12px; display: flex; align-items: center; gap: 10px; border: 1px solid #c8b99f; background: #fff; cursor: pointer; }
.beer-mode-choice:hover,.beer-mode-choice:focus-within { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(184,139,42,.16); }
.beer-mode-choice input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--pine-800); }
.beer-mode-choice > span { min-width: 0; display: grid; gap: 2px; }
.beer-mode-choice strong { color: var(--ink); font-size: 13px; line-height: 1.15; text-transform: uppercase; }
.beer-mode-choice small { color: var(--muted); font-size: 11px; line-height: 1.2; }
.beer-mode-choice input:checked + span strong { color: var(--oxblood); }
.beer-mode-choice:has(input:checked) { border-color: var(--gold); background: #fffaf0; box-shadow: inset 0 0 0 1px rgba(184,139,42,.28); }
.beer-brand-title { margin: 16px 0 8px; color: var(--ink); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.beer-can-grid { min-width: 0; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.beer-can-choice { min-width: 0; min-height: 225px; padding: 9px 6px 10px; position: relative; display: grid; grid-template-rows: minmax(0,1fr) auto; align-items: end; gap: 7px; overflow: hidden; border: 1px solid #c8b99f; border-radius: 3px; outline: 0; background: #fff; color: var(--ink); cursor: pointer; font-family: var(--sans); }
.beer-can-choice:focus-visible { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184,139,42,.24); }
.beer-can-stage { min-width: 0; height: 180px; position: relative; display: grid; place-items: center; overflow: hidden; background: #fff; }
.beer-can-image { width: auto; max-width: 100%; height: 176px; object-fit: contain; transform: scale(.96); transform-origin: center bottom; opacity: .27; filter: grayscale(.85) saturate(.42); transition: opacity .18s ease,filter .18s ease,transform .18s ease; }
.beer-can-name { min-height: 28px; display: grid; place-items: center; color: var(--ink); font-size: 11px; font-weight: 900; line-height: 1.15; opacity: .68; text-align: center; text-transform: uppercase; transition: opacity .18s ease,color .18s ease; }
.beer-can-check { width: 26px; height: 26px; position: absolute; top: 2px; right: 2px; z-index: 2; display: grid; place-items: center; border-radius: 50%; background: var(--pine-800); color: #fff; font-size: 14px; font-weight: 900; opacity: 0; transform: scale(.7); transition: opacity .18s ease,transform .18s ease; }
.beer-can-quantity { min-width: 54px; min-height: 24px; padding: 5px 7px 4px; position: absolute; left: 50%; bottom: 2px; z-index: 2; transform: translateX(-50%); border: 1px solid var(--gold-light); background: var(--pine-900); color: #fff; font-size: 9px; font-weight: 900; letter-spacing: .04em; line-height: 1; white-space: nowrap; }
.beer-can-choice:hover:not(:disabled) .beer-can-image { opacity: .68; filter: grayscale(.22) saturate(.82); transform: scale(1); }
.beer-can-choice:hover:not(:disabled) .beer-can-name { opacity: .9; }
.beer-can-choice.selected { border-color: var(--gold); background: #fffaf0; box-shadow: inset 0 0 0 2px var(--pine-800),0 6px 16px rgba(0,52,40,.11); }
.beer-can-choice.selected .beer-can-image { opacity: 1; filter: none; transform: scale(1.02); }
.beer-can-choice.selected .beer-can-name { color: var(--pine-800); opacity: 1; }
.beer-can-choice.selected .beer-can-check { opacity: 1; transform: scale(1); }
.beer-can-choice:disabled { cursor: default; }
.beer-can-choice:disabled:not(.selected) { opacity: .48; }
.beer-can-grid.no-beer .beer-can-choice { opacity: .55; }
.beer-can-grid.no-beer .beer-can-image { opacity: .2; filter: grayscale(1) saturate(.25); }
.beer-can-grid.invalid { margin: -2px; padding: 2px; border-radius: 4px; box-shadow: 0 0 0 2px var(--oxblood); }
.beer-status { min-height: 18px; margin: 9px 0 0; color: var(--pine-800); font-size: 11px; font-weight: 800; line-height: 1.4; }
.cooler-return-notice { margin: 5px 0 0; padding: 9px 11px; border-left: 3px solid var(--gold); background: #fff8e8; color: var(--ink); font-size: 11px; line-height: 1.4; }
.cooler-return-notice[hidden] { display: none; }
.checkout-aside { padding: 26px; position: sticky; top: 20px; display: grid; gap: 16px; background: var(--pine-900); color: #fff; }
.checkout-step { margin: 0; border-bottom-color: rgba(226,189,97,.26); }
.checkout-step strong { color: var(--paper); }
.checkout-step small { color: rgba(244,237,223,.62); }
.summary-card h3 { margin: 0 0 10px; color: var(--gold-light); font-family: var(--display); font-size: 21px; }
.summary-line { padding-block: 7px; display: flex; justify-content: space-between; gap: 18px; font-size: 14px; }
.summary-included { margin-top: 5px; padding-top: 11px; align-items: flex-start; border-top: 1px solid rgba(226,189,97,.26); }
.summary-included b { max-width: 64%; color: var(--gold-light); font-size: 12px; line-height: 1.35; text-align: right; }
.summary-save { padding-top: 10px; color: var(--gold-light); }
.summary-save:not([hidden]) { display: grid; gap: 4px; }
.summary-save strong { font-size: 13px; line-height: 1.25; }
.summary-save span { color: rgba(244,237,223,.72); font-size: 11px; line-height: 1.35; }
.summary-total { margin-top: 10px; padding-top: 13px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(226,189,97,.75); font-family: var(--display); font-size: 17px; text-transform: uppercase; }
.summary-total strong { color: var(--gold-light); font-size: 32px; }
.continue { width: 100%; min-height: 54px; margin: 0; font-family: var(--sans); font-size: 13px; }
.continue:disabled { cursor: wait; opacity: .7; }
.payment-preview { padding-top: 13px; border-top: 1px solid rgba(226,189,97,.26); }
.payment-preview > p:first-child { margin: 0 0 9px; color: rgba(244,237,223,.7); font-size: 11px; text-align: center; }
.payment-accepted { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.payment-accepted span { min-height: 45px; padding: 7px 9px; display: flex; align-items: center; justify-content: center; gap: 7px; background: var(--paper-light); color: var(--ink); font-size: 12px; font-weight: 800; }
.payment-accepted b { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 6px; color: #fff; font-size: 14px; font-style: italic; }
.venmo-mark { background: #4694e8; }.paypal-mark { background: #245695; }
.secure-note { margin: 9px 0 0; color: rgba(244,237,223,.68); font-size: 12px; text-align: center; }
.form-status { min-height: 0; margin: 0; color: var(--gold-light); font-size: 12px; font-weight: 700; text-align: center; }
.resume-panel { margin-bottom: 20px; padding: 13px 16px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--gold); background: var(--pine-800); color: #fff; }
.resume-panel div { margin-right: auto; }.resume-panel b,.resume-panel span { display: block; font-size: 13px; }.resume-panel .btn { min-height: 42px; font-size: 12px; }
.text-button { border: 0; background: none; color: var(--oxblood); font-size: 12px; font-weight: 700; text-decoration: underline; }

/* Prepaid drink savings */
.prepay-drinks { padding: clamp(58px,7vw,94px) 0; border-block: 1px solid var(--gold); background: var(--paper-light); }
.prepay-drinks .section-heading { margin-bottom: clamp(28px,4vw,44px); }
.prepay-drinks .section-heading h2 { color: var(--oxblood); font-size: clamp(38px,4.6vw,64px); }
.prepay-drinks .section-heading > p:last-child { max-width: 720px; font-size: 16px; }
.credit-redemption-notice { max-width: 760px; margin: -18px auto clamp(24px,3vw,36px); padding: 12px 16px; border: 1px solid var(--gold); background: #fff3cf; color: var(--pine-900); font-size: 13px; line-height: 1.4; text-align: center; }
.credit-redemption-notice strong { color: var(--oxblood); }
.prepay-showcase { max-width: 1080px; margin-inline: auto; padding: clamp(22px,3vw,38px); display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.92fr) minmax(0,1fr); align-items: center; gap: clamp(16px,3vw,38px); border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); }
.prepay-drink { min-width: 0; margin: 0; display: grid; justify-items: center; text-align: center; }
.prepay-drink img { width: auto; max-width: 100%; height: clamp(250px,25vw,350px); display: block; object-fit: contain; filter: drop-shadow(0 18px 16px rgba(31,25,18,.16)); }
.prepay-bloody img { transform: scale(1.14); transform-origin: center bottom; }
.prepay-drink figcaption { margin-top: 10px; display: grid; gap: 4px; }
.prepay-drink figcaption strong { color: var(--pine-900); font-family: var(--display); font-size: clamp(22px,2.2vw,30px); line-height: 1; text-transform: uppercase; }
.prepay-drink figcaption span { color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .45px; text-transform: uppercase; }
.prepay-deal { min-width: 0; padding: clamp(22px,2.5vw,32px) clamp(18px,2vw,26px); display: grid; justify-items: center; border: 2px solid var(--gold); background: #fffaf0; text-align: center; box-shadow: inset 0 0 0 4px #fff; }
.prepay-deal > p { margin: 0 0 15px; color: var(--pine-900); font-size: 12px; font-weight: 900; letter-spacing: .85px; text-transform: uppercase; }
.prepay-comparison { width: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; }
.prepay-comparison div { display: grid; gap: 4px; }
.prepay-comparison b { color: var(--oxblood); font-family: var(--display); font-size: clamp(47px,5vw,68px); line-height: .85; }
.prepay-comparison div:last-child b { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 3px; }
.prepay-comparison span { color: var(--ink); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.prepay-comparison i { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--pine-800); color: #fff; font-family: var(--display); font-size: 13px; font-style: normal; text-transform: uppercase; }
.prepay-round { width: 100%; margin-top: 21px; padding-top: 18px; display: grid; gap: 3px; border-top: 1px solid var(--gold); }
.prepay-round strong { color: var(--pine-900); font-family: var(--display); font-size: 20px; text-transform: uppercase; }
.prepay-round b { color: var(--oxblood); font-family: var(--display); font-size: 40px; line-height: 1; }
.prepay-round span { color: var(--pine-800); font-size: 13px; font-weight: 900; text-transform: uppercase; }
.promo-add-round { min-height: 48px; margin-top: 17px; padding: 0 20px; border: 1px solid var(--oxblood); border-radius: 2px; background: var(--oxblood); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .45px; text-transform: uppercase; }
.promo-add-round:hover,.promo-add-round:focus-visible { filter: brightness(1.12); }
.prepay-deal > small { max-width: 280px; margin-top: 11px; color: var(--muted); font-size: 10px; line-height: 1.45; }

/* Event day */
.event-strip { display: grid; grid-template-columns: 1fr 150px 1fr; background: var(--pine-950); }
.event-panel { min-height: 250px; position: relative; overflow: hidden; }
.event-panel > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; filter: saturate(.45) contrast(1.08) brightness(.45); }
.event-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(1,27,21,.58),transparent); }
.event-panel:last-child::after { background: linear-gradient(-90deg,rgba(1,27,21,.58),transparent); }
.event-copy { width: 82%; padding: 40px 48px; position: relative; z-index: 1; color: #fff; }
.event-panel:last-child .event-copy { margin-left: auto; }
.event-copy h3 { margin: 0 0 12px; color: var(--gold-light); font-family: var(--display); font-size: 28px; text-transform: uppercase; }
.event-copy ul { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.65; }
.event-copy li::before { content: "—"; margin-right: 9px; color: var(--gold-light); }
.event-badge { position: relative; z-index: 2; display: grid; place-items: center; background: var(--pine-900); }
.event-badge img { width: 136px; height: 136px; }

/* Partners + footer */
.partners { padding: 36px 0; border-bottom: 1px solid var(--line); background: var(--paper-light); }
.partners-inner { display: grid; grid-template-columns: 1fr minmax(280px,440px) auto; align-items: center; gap: 34px; }
.partners h2 { margin: 0; font-family: var(--display); font-size: 31px; text-transform: uppercase; }
.partners-inner > p { margin: 0; color: var(--muted); font-size: 14px; }
.partner-cta { min-height: 46px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.site-footer { padding: 24px 0; background: var(--pine-900); color: var(--paper); }
.footer-inner { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 35px; }
.footer-brand { display: grid; width: max-content; line-height: .9; }
.footer-brand span { color: var(--gold-light); font-family: var(--display); font-size: 11px; font-style: italic; }.footer-brand strong { font-family: var(--display); font-size: 22px; text-transform: uppercase; }
.footer-meta { display: flex; gap: 27px; color: rgba(244,237,223,.76); font-size: 12px; }
.socials { display: flex; gap: 8px; }
.socials a { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(244,237,223,.45); border-radius: 50%; }
.socials svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }.socials a:first-child svg { fill: currentColor; stroke: none; }

/* Modal */
.modal { position: fixed; z-index: 1000; inset: 0; display: none; place-items: center; }.modal.open { display: grid; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,20,15,.78); backdrop-filter: blur(4px); }
.modal-card { width: min(92vw,620px); max-height: 92vh; overflow: auto; position: relative; padding: 30px; border: 1px solid var(--gold); background: var(--paper-light); box-shadow: 0 30px 90px rgba(0,0,0,.5); }
.modal-close { position: absolute; right: 10px; top: 5px; border: 0; background: none; font-size: 30px; }.modal-kicker { margin: 0; color: var(--oxblood); font-size: 12px; font-weight: 800; letter-spacing: 1.2px; text-align: center; text-transform: uppercase; }
.modal-card h2 { margin: 4px 0 16px; font-family: var(--display); text-align: center; text-transform: uppercase; }.modal-team,.modal-breakdown { margin-bottom: 10px; padding: 12px; border: 1px solid var(--line); background: #fff; }.modal-line { padding: 4px 0; display: flex; justify-content: space-between; gap: 14px; }.modal-savings { margin-top: 5px; padding-top: 8px; border-top: 1px solid var(--line); color: var(--pine-800); font-weight: 900; }.modal-included { margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--line); }.modal-included b { max-width: 65%; color: var(--pine-800); font-size: 12px; line-height: 1.35; text-align: right; }.modal-total { margin-top: 7px; padding-top: 9px; border-top: 1px solid var(--gold); font-family: var(--display); font-size: 18px; }
.modal-upsell { margin: 10px 0; padding: 14px; border: 1px solid var(--line); background: var(--paper-dark); }.modal-upsell h3 { margin: 0; color: var(--oxblood); font-size: 15px; text-align: center; text-transform: uppercase; }.modal-upsell p { margin: 5px 0 10px; font-size: 13px; text-align: center; }
.modal-drink-choices { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; }.choice { min-height: 54px; padding: 6px; border: 1px solid #bcae9a; background: var(--paper-light); font-size: 10px; font-weight: 800; text-transform: uppercase; }.choice.active { border-color: var(--gold); background: var(--pine-800); color: #fff; }.choice.featured { border-color: var(--oxblood); }
.double-control { margin-top: 9px; padding: 9px; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); color: var(--oxblood); font-size: 12px; font-weight: 800; text-transform: uppercase; }.modal-payments { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.modal-payments button { min-height: 52px; border: 0; background: var(--pine-800); color: #fff; font-weight: 800; }.payment-warning { padding: 9px; border: 1px solid #d59b29; background: #fff3cf; font-size: 13px; }.payment-action { margin: 9px auto 0; padding: 10px 15px; display: inline-block; background: var(--oxblood); color: #fff; text-transform: uppercase; }.pass-card { margin-top: 11px; padding: 12px; border: 1px solid var(--gold); background: #fff; text-align: center; }.pass-card h3 { margin: 0; }.pass-card p { margin: 6px 0; font-size: 12px; }#modal-qr { width: 160px; min-height: 160px; margin: 9px auto; padding: 5px; display: grid; place-items: center; background: #fff; }#modal-qr img,#modal-qr canvas { max-width: 150px !important; max-height: 150px !important; }.modal-card > .text-button { display: block; margin: 11px auto 0; }

@media (min-width: 701px) {
  .course-layout-heading,.prepay-drinks .section-heading { max-width: 1100px; }
  .course-layout-heading h2,.prepay-drinks .section-heading h2 { white-space: nowrap; }
  .addon-copy { flex: 1 1 auto; grid-template-columns: minmax(120px,auto) minmax(120px,1fr); grid-template-rows: auto auto; column-gap: clamp(18px,3vw,36px); align-items: center; }
  .addon-copy > strong { grid-column: 1; grid-row: 1; white-space: nowrap; }
  .addon-copy > .addon-price { grid-column: 1; grid-row: 2; }
  .addon-copy > span { grid-column: 2; grid-row: 1 / 3; align-self: center; font-size: 12px; }
  .double-copy > strong { white-space: nowrap; }
}

@media (max-width: 980px) {
  .shell { width: min(calc(100% - 40px), 860px); }
  .site-header { height: 72px; }
  .brand { align-items: flex-start; }.brand-name i { display: none; }
  .menu-toggle { display: flex; }
  .main-nav { width: 100%; padding: 10px 20px 18px; position: absolute; top: 72px; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; border-top: 1px solid rgba(226,189,97,.2); background: var(--pine-900); box-shadow: 0 18px 30px rgba(0,0,0,.32); font-size: 14px; }
  .main-nav.open { display: flex; }.main-nav a { min-height: 48px; display: grid; place-items: center; }.main-nav a:not(.nav-register)::after { display: none; }.nav-register { width: 100%; margin-top: 4px; }
  .hero { height: clamp(660px,72vw,690px); }.hero-photo { background-position: 67% center; background-size: auto 100%; }.hero-copy { width: min(58%,540px); }.hero h1 { font-size: clamp(55px,7.6vw,72px); }.hero-year { font-size: clamp(48px,6vw,58px); }
  .hero-meta { margin-top: 50px; font-size: clamp(20px,2.45vw,24px); }
  .hero-meta > div { min-height: 72px; padding-inline: 10px; }
  .hero-meta svg { width: 32px; height: 32px; flex-basis: 32px; }
  .hero-meta small { font-size: 12px; }
  .countdown { min-height: 70px; }.countdown strong { font-size: 31px; }.countdown span { font-size: 11px; }
  .facts-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }.fact { padding-inline: 8px; }.fact strong { font-size: 21px; }.fact span { font-size: 10px; }
  .team-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .beer-can-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .event-strip { grid-template-columns: 1fr 110px 1fr; }.event-copy { width: 100%; padding: 32px 25px; }.event-copy h3 { font-size: 23px; }.event-copy ul { font-size: 12px; }.event-badge img { width: 100px; height: 100px; }
  .partners-inner { grid-template-columns: 1fr auto; }.partners-inner > p { grid-row: 2; }.partner-cta { grid-column: 2; grid-row: 1 / 3; }
}

@media (max-width: 850px) {
  .included-card,.included-card.included-wide { grid-column: span 3; }
  .included-card > img,.included-wide > img { height: clamp(210px,34vw,280px); }
  .included-weather { grid-column: 1 / -1; min-height: 0; display: block; }
  .included-weather > img { height: auto; min-height: 0; object-position: center; }
  .included-weather .included-copy { min-height: 116px; border-top: 0; border-right: 0; border-bottom: 3px solid var(--gold); }
  .challenge-grid { grid-template-columns: 1fr; }
  .course-map-guide { grid-template-columns: 1fr; gap: 15px; }
  .route-key { width: 100%; }
  .course-map-expand { width: min(100%,760px); min-height: 46px; margin-bottom: 12px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--gold); background: var(--pine-900); color: #fff; font-size: 12px; font-weight: 900; letter-spacing: .45px; text-transform: uppercase; }
  .scorecard-nines { grid-template-columns: 1fr; }
  .register-grid { grid-template-columns: 1fr; }
  .registration-main,.checkout-aside { max-width: 760px; width: 100%; margin-inline: auto; }
  .checkout-aside { position: static; }
  .prepay-showcase { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .prepay-deal { grid-column: 1 / -1; grid-row: 1; }
  .prepay-drink img { height: clamp(250px,42vw,340px); }
}

@media (min-width: 701px) and (max-width: 980px) {
  .hero-kicker,.hero h1,.hero-year { transform: translateY(-40px); }
}

@media (max-width: 700px) {
  .shell { width: calc(100% - 28px); }
  .site-header { height: 82px; }
  .header-inner { gap: 18px; }
  .brand { align-items: flex-start; gap: 4px; line-height: 1; }
  .brand-kicker { font-size: 12px; line-height: 1; }.brand-name { font-size: 28px; line-height: 1; }
  .main-nav { top: 82px; }
  .hero { height: 623px; max-height: none; background: var(--pine-950); }
  .hero-photo {
    background-image: url("assets/hero-background-mobile-approved.png?v=1"),url("assets/hero-background-mobile-grass.png?v=1");
    background-position: 73% -112px,center bottom;
    background-size: auto 600px,auto 240px;
    background-repeat: no-repeat,no-repeat;
  }
  .hero-photo::after { background: none; }
  .hero-inner { align-items: flex-end; }
  .hero-copy { width: 100%; max-width: 520px; margin: 0 auto; padding-bottom: 12px; color: #fff; text-shadow: 0 2px 5px rgba(0,0,0,.65); }
  .hero-kicker { width: 100%; margin: 0; display: block; position: absolute; top: 20px; left: 0; font-size: 17px; line-height: 1; }
  .hero h1 { width: 100%; position: absolute; top: 43px; left: 0; font-size: clamp(43px,12vw,62px); letter-spacing: -2px; }
  .hero-year { width: 100%; margin: 0; position: absolute; top: 94px; left: 0; font-size: 48px; }
  .hero-meta { margin: 0; grid-template-columns: 1.18fr .82fr; border-color: var(--gold); background: rgba(0,36,27,.68); color: #fff; font-size: clamp(20px,5.8vw,23px); }
  .hero-meta > div { min-height: 72px; padding: 8px 12px; gap: 0; }
  .hero-meta span { white-space: nowrap; }
  .hero-meta small { margin-top: 2px; font-size: 10px; }
  .countdown { min-height: 76px; border-color: var(--gold); background: rgba(0,36,27,.68); color: #fff; }
  .countdown div { padding: 8px 2px 7px; gap: 4px; border-color: var(--line); }
  .countdown strong { font-size: 32px; }
  .countdown span { font-size: 11px; letter-spacing: .2px; }
  .hero-actions { margin-top: 12px; gap: 9px; }
  .btn { min-height: 48px; padding-inline: 12px; font-size: 13px; }
  .hero h1 { text-shadow: 0 3px 0 rgba(0,20,15,.96),0 0 16px rgba(0,20,15,.94); }
  .facts-grid { grid-template-columns: repeat(2,1fr); }.fact { min-height: 112px; border-bottom: 1px solid var(--line); }.fact:nth-child(2n) { border-right: 0; }.mulligan-fact { min-height: 96px; grid-column: 1 / -1; flex-direction: row; gap: 16px; border: 0; }.mulligan-fact .fact-icon { flex: 0 0 64px; }.mulligan-fact strong,.mulligan-fact span { margin: 0; text-align: left; }.mulligan-fact span { max-width: 180px; font-size: 11px; }
  .section-heading { margin-bottom: 24px; }.section-heading h2 { font-size: clamp(28px,8vw,36px); }.section-heading > p:last-child { font-size: 14px; }
  .whats-included { padding-block: 44px 48px; }
  .included-grid { grid-template-columns: 1fr; gap: 14px; }
  .included-card,.included-card.included-wide { grid-column: 1; }
  .included-card > img,.included-wide > img { height: clamp(205px,58vw,250px); }
  .included-weather > img { height: auto; }
  .included-weather .included-copy { min-height: 0; }
  .included-copy { min-height: 0; padding: 16px; grid-template-columns: 38px minmax(0,1fr); gap: 11px; }
  .included-copy > span { width: 36px; height: 36px; font-size: 13px; }
  .included-copy h3 { font-size: 22px; }
  .included-copy p { font-size: 13px; }
  .challenges { padding-block: 38px 44px; }.challenge-heading { margin-bottom: 20px; }
  .challenge-prize { width: 100%; padding-inline: 8px; flex-wrap: wrap; font-size: clamp(24px,8vw,32px); }
  .course-layout { padding-block: 46px; }
  .course-map-masthead { padding: 18px; flex-direction: column; align-items: flex-start; gap: 16px; }
  .course-summary { width: 100%; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; }
  .course-summary li { min-width: 0; padding: 7px 3px; border-left: 1px solid rgba(226,189,97,.28); }
  .course-summary li:first-child { border-left: 0; }
  .course-summary b { font-size: 21px; }.course-summary span { font-size: 9px; }
  .course-map-guide { padding: 18px; }.course-map-guide > p strong { font-size: 18px; }.course-map-guide > p span { font-size: 13px; }
  .route-key { grid-template-columns: 1fr; gap: 9px; }.route-key li { min-height: 44px; padding: 7px 10px; border: 1px solid var(--line); background: rgba(255,250,240,.68); }.route-key b { font-size: 13px; }.route-key small { font-size: 11px; }
  .course-map-figure { padding: 0 0 18px; }
  .course-map-expand { width: calc(100% - 24px); margin: 12px 12px 10px; }
  .course-map-figure picture { width: 100%; border-inline: 0; }
  .terrain-guide { width: calc(100% - 24px); margin-top: 12px; padding: 13px; display: grid; justify-content: stretch; gap: 11px; }
  .terrain-guide > strong { font-size: 15px; }
  .terrain-key { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 14px; }
  .terrain-key li { font-size: 12px; }
  .course-map-figure figcaption { width: calc(100% - 24px); padding: 13px 2px 0; gap: 5px; line-height: 1.4; }.course-map-figure figcaption span { font-size: 13px; }.course-map-figure figcaption small { font-size: 9px; }
  .yardage-scorecard summary { min-height: 68px; padding: 13px 18px; display: grid; grid-template-columns: minmax(0,1fr) 32px; gap: 2px 12px; }
  .yardage-scorecard summary span { font-size: 16px; }.yardage-scorecard summary small { grid-column: 1; font-size: 9px; }.yardage-scorecard summary::after { grid-column: 2; grid-row: 1 / 3; }
  .scorecard-swipe { margin: 0; padding: 10px 18px; display: block; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 800; text-align: right; }
  .scorecard-nines { padding: 0 12px 18px; gap: 16px; }.scorecard-nine h3 { font-size: 16px; }.scorecard-nine table { min-width: 570px; font-size: 13px; }.scorecard-nine th,.scorecard-nine td { height: 42px; }
  .registration { padding-top: 48px; }.registration-form,.cart-addons,.checkout-aside { padding: 22px 18px 24px; }.team-fields { grid-template-columns: 1fr; gap: 13px; }.registration-form label { gap: 6px; font-size: 13px; }.registration-form input { height: 48px; font-size: 16px; }.registration-main { gap: 14px; }.quantity-stepper { grid-template-columns: 44px 52px 44px; }.stepper-button { min-width: 44px; min-height: 44px; }.quantity-stepper input { width: 52px; height: 44px; }.drink-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.drink-choice { min-height: 61px; }.drink-choice-round { min-height: 102px; grid-column: 1 / -1; grid-template-columns: 72px minmax(0,1fr) auto; }.choice-drinks { width: 72px; }.choice-drinks img { width: 40px; height: 72px; }.double-upgrade { grid-template-columns: 38px minmax(0,1fr); }.double-segments { grid-column: 1 / -1; grid-template-columns: repeat(5,minmax(44px,1fr)); justify-self: stretch; }.double-segments button { width: auto; min-width: 44px; height: 44px; }.beer-mode { grid-template-columns: 1fr; }.beer-mode-choice { min-height: 58px; }.beer-can-choice { min-height: 190px; padding-inline: 5px; }.beer-can-stage { height: 144px; }.beer-can-image { height: 138px; }.checkout-aside { gap: 15px; }.payment-preview { padding-top: 13px; }.form-status { margin: 0; }
  .prepay-drinks { padding-block: 48px; }
  .prepay-drinks .section-heading h2 { font-size: clamp(35px,10vw,48px); }
  .prepay-drinks .section-heading > p:last-child { font-size: 14px; }
  .prepay-showcase { padding: 18px 12px 22px; gap: 18px 8px; }
  .prepay-deal { padding: 24px 16px; }
  .prepay-comparison b { font-size: clamp(48px,15vw,64px); }
  .prepay-drink img { height: clamp(210px,66vw,285px); }
  .prepay-drink figcaption strong { font-size: 21px; }
  .prepay-drink figcaption span { font-size: 9px; }
  .event-strip { grid-template-columns: 1fr; }.event-panel { min-height: 210px; }.event-panel:first-child { order: 1; }.event-badge { min-height: 96px; order: 2; }.event-panel:last-child { order: 3; }.event-badge img { width: 88px; height: 88px; }.event-copy { padding: 28px 30px; }.event-copy h3 { font-size: 24px; }.event-copy ul { font-size: 13px; }
  .partners { padding: 30px 0; }.partners-inner { grid-template-columns: 1fr; gap: 15px; text-align: center; }.partners-inner > p,.partner-cta { grid-column: auto; grid-row: auto; }.partner-cta { width: 100%; }
  .site-footer { padding: 25px 0; }.footer-inner { grid-template-columns: 1fr auto; gap: 20px; }.footer-meta { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; gap: 7px 20px; font-size: 12px; }.socials a { width: 44px; height: 44px; }
}

@media (max-width: 380px) {
  .hero { height: 623px; }.hero-photo { background-position: 73% -103px,center bottom; background-size: auto 575px,auto 240px; }.hero-kicker { top: 18px; font-size: 15px; }.hero h1 { top: 40px; font-size: 42px; }.hero-year { top: 87px; font-size: 45px; }.hero-meta { font-size: 19px; }.hero-meta > div { padding-inline: 8px; }.hero-actions .btn { font-size: 12px; }.payment-grid { grid-template-columns: 1fr; }
  .modal-card { padding: 24px 14px; }.modal-drink-choices { grid-template-columns: repeat(2,1fr); }.choice.featured { grid-column: 1 / -1; }.modal-payments { grid-template-columns: 1fr; }
  .addon-row { align-items: flex-start; }.addon-checkbox { min-height: 44px; padding-inline: 9px; }.beer-can-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.beer-can-choice { min-height: 184px; }.beer-can-stage { height: 138px; }.beer-can-image { height: 132px; }.summary-included,.modal-included { display: grid; gap: 3px; }.summary-included b,.modal-included b { max-width: none; text-align: left; }
}

@media (max-width: 340px) {
  .footer-inner { grid-template-columns: 1fr; }
  .socials { grid-row: 2; }
  .footer-meta { grid-row: 3; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.beer-can-image,.beer-can-name,.beer-can-check { transition: none; } }
