/* ==========================================================================
   The Bunkum Tap - custom overrides (loaded last)
   Six Ticks CMS rule: never override .container / .row / .col-* globally.
   All layout tweaks are scoped under a section class.
   ========================================================================== */

@font-face {
  font-family: "TAY Birdie";
  src: url("/assets/fonts/TAYBirdieRegular.woff2") format("woff2"),
       url("/assets/fonts/TAYBirdieRegular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --paper: oklch(0.955 0.017 89);
  --primary: oklch(0.215 0.035 158);
  --surface: oklch(0.255 0.038 158);
  --oak: oklch(0.72 0.06 90);
  --secondary: oklch(0.62 0.155 48);
  --secondary-fg: oklch(0.975 0.014 89);
  --fg: var(--paper);
  --muted: oklch(0.83 0.02 92);
  --line: oklch(0.955 0.017 89 / 16%);
  --font-display: "TAY Birdie", "Kumbh Sans", system-ui, sans-serif;
  --font-sans: "Kumbh Sans", system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  background: var(--primary);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 0.95;
  font-weight: 400;
  margin: 0;
  color: inherit;
}
h1 { font-size: 40px; }
h2 { font-size: 40px; }
h3 { font-size: 36px; }
p { margin: 0; }
a { color: var(--secondary); }
a:hover, a:focus { color: var(--fg); text-decoration: none; }
img { max-width: 100%; height: auto; }

@media (min-width: 768px) { h1 { font-size: 48px; } h2 { font-size: 48px; } }
@media (min-width: 1200px) { h2 { font-size: 60px; } }

/* ---------- Reusable type helpers ---------- */
.display-caps {
  font-family: var(--font-display);
  letter-spacing: 0.02em;
  line-height: 0.92;
  text-transform: uppercase;
}
.birdie { font-family: var(--font-display); letter-spacing: 0.005em; line-height: 1.15; }
.eyebrow { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .02em; line-height: .92; color: var(--secondary); font-size: 16px; margin-bottom: 16px; }
.lead-copy { font-size: 18px; line-height: 1.65; color: var(--muted); }
.lead-copy + .lead-copy { margin-top: 24px; }
.text-amber { color: var(--secondary); }
.text-oak { color: var(--oak); }
.text-muted-soft { color: var(--muted); }
.amber-rule { width: 96px; height: 1px; background: var(--secondary); margin: 40px auto 32px; }

/* ---------- Buttons ---------- */
.btn-amber, .btn-amber-outline {
  display: inline-block;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: .92;
  font-size: 16px;
  padding: 16px 24px;
  border: 1px solid var(--secondary);
  border-radius: 0;
  transition: background-color .2s, color .2s;
  max-width: 100%;
}
.btn-amber { background: var(--secondary); color: var(--secondary-fg); }
.btn-amber:hover, .btn-amber:focus { background: transparent; color: var(--secondary); }
.btn-amber-outline { background: transparent; color: var(--secondary); }
.btn-amber-outline:hover, .btn-amber-outline:focus { background: var(--secondary); color: var(--secondary-fg); }
.btn-lg-pad { padding: 16px 32px; font-size: 18px; }

/* ---------- Light band (flips tokens locally) ---------- */
.band-light {
  background: var(--paper);
  --fg: oklch(0.215 0.035 158);
  --muted: oklch(0.4 0.03 158);
  --line: oklch(0.215 0.035 158 / 18%);
  --secondary: oklch(0.54 0.155 45);
  --oak: oklch(0.48 0.06 80);
  color: var(--fg);
}
.band-dark { background: var(--primary); }
.band-surface { background: var(--surface); }

/* ---------- Header / navbar ---------- */
.site-header { position: sticky; top: 0; z-index: 1030; }
.site-header .navbar {
  margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
  background: oklch(0.215 0.035 158 / 90%);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  min-height: 0;
}
.site-header .navbar-brand { height: auto; padding: 12px 15px; }
.site-header .navbar-brand img { height: 40px; width: auto; }
.site-header .navbar-nav > li > a {
  font-family: var(--font-display); text-transform: uppercase; letter-spacing: .02em;
  font-size: 16px; color: oklch(0.955 0.017 89 / 80%); background: transparent !important;
}
.site-header .navbar-nav > li > .nav-label {
  display: block; padding: 10px 15px; font-family: var(--font-display); text-transform: uppercase;
  letter-spacing: .02em; font-size: 16px; line-height: 20px; color: oklch(0.955 0.017 89 / 55%);
}
.site-header .navbar-nav > li > a:hover { color: var(--secondary); }
.site-header .navbar-nav > li > a.nav-accent { color: var(--secondary); }
.site-header .navbar-nav > li > a.nav-accent:hover { color: var(--paper); }
.site-header .navbar-toggle { border: 0; margin-top: 14px; color: oklch(0.955 0.017 89 / 80%); font-size: 26px; padding: 4px 10px; }
.site-header .navbar-toggle:hover, .site-header .navbar-toggle:focus { background: transparent; color: var(--secondary); }
.site-header .navbar-toggle .fa-times { display: none; }
.site-header .navbar-toggle[aria-expanded="true"] .fa-bars { display: none; }
.site-header .navbar-toggle[aria-expanded="true"] .fa-times { display: inline-block; }
.site-header .navbar-collapse { border-top: 1px solid var(--line); box-shadow: none; }
@media (max-width: 767px) {
  .site-header .navbar-nav { margin: 0 -15px; }
  .site-header .navbar-nav > li > a, .site-header .navbar-nav > li > .nav-label { padding: 16px 24px; border-bottom: 1px solid var(--line); }
}
@media (min-width: 768px) {
  .site-header .navbar-brand img { height: 48px; }
  .site-header .navbar-nav > li > a, .site-header .navbar-nav > li > .nav-label { padding-top: 26px; padding-bottom: 26px; }
  .site-header .navbar-collapse { border-top: 0; }
}

/* ---------- Hero ---------- */
.hero-shopfront { position: relative; overflow: hidden; background: var(--primary); isolation: isolate; min-height: 78vh; display: flex; align-items: flex-end; }
.hero-shopfront > .container { position: relative; z-index: 2; width: 100%; }
.hero-shopfront .hero-image-mobile { display: none; }
.hero-shopfront .hero-copy { text-align: center; color: var(--paper); padding: 280px 0 56px; text-shadow: 0 2px 18px rgba(0,0,0,.75); }
.hero-shopfront .hero-copy .hero-tag { color: var(--secondary); font-size: 16px; margin-top: 20px; }
.hero-shopfront .hero-copy .hero-sub { color: oklch(0.955 0.017 89 / 85%); font-size: 16px; margin-top: 12px; }
.hero-shopfront .hero-copy .btn-amber { margin-top: 28px; }
.hero-shopfront .hero-bg { display: block; position: absolute; inset: 0; z-index: 0; }
.hero-shopfront .hero-bg video { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-shopfront .hero-bg:after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, oklch(0.215 0.035 158 / 92%), oklch(0.215 0.035 158 / 24%) 58%, oklch(0.215 0.035 158 / 42%)); }
@media (min-width: 768px) { .hero-shopfront .hero-copy .hero-tag { font-size: 20px; } }
@media (min-width: 992px) {
  .hero-shopfront { min-height: 88vh; display: flex; align-items: center; }
  .hero-shopfront .hero-bg:after { content: ""; position: absolute; inset: 0;
    background: oklch(0.215 0.035 158 / 55%); }
  .hero-shopfront .hero-copy { text-align: center; padding: 128px 0; text-shadow: 0 2px 18px rgba(0,0,0,.75); }
  .hero-shopfront .hero-copy h1 { font-size: 88px; }
  .hero-shopfront .hero-copy .hero-tag { font-size: 24px; margin-top: 24px; }
  .hero-shopfront .hero-copy .btn-amber { margin-top: 40px; padding: 16px 32px; font-size: 18px; }
}

.hero-shopfront .hero-cta { margin-top: 28px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.hero-shopfront .hero-cta .btn-amber, .hero-shopfront .hero-cta .btn-amber-outline { margin-top: 0; }
@media (min-width: 768px) { .hero-shopfront .hero-cta { flex-direction: row; justify-content: center; gap: 16px; } }
@media (min-width: 992px) {
  .hero-shopfront .hero-cta .btn-amber, .hero-shopfront .hero-cta .btn-amber-outline { margin-top: 0; padding: 16px 32px; font-size: 18px; }
}

/* ---------- Why Bunkum ---------- */
.why-bunkum { padding: 96px 0 40px; text-align: center; }
.flourish { color: oklch(0.48 0.06 80 / 45%); width: 80px; display: block; margin: 0 auto; }
.doodle { display: block; width: 72px; height: 72px; margin-bottom: 20px; color: var(--secondary); }
.doodle path, .doodle circle, .doodle rect, .doodle ellipse { vector-effect: non-scaling-stroke; }
.why-bunkum .closing-line { font-size: 24px; line-height: 1.1; }
.why-bunkum h2 { margin-bottom: 32px; }
@media (min-width: 768px) { .why-bunkum { padding-top: 128px; padding-bottom: 48px; } .why-bunkum .closing-line { font-size: 30px; } }
@media (min-width: 1200px) { .why-bunkum .flourish-wrap { display: flex; align-items: center; justify-content: center; height: 100%; } }

/* ---------- Support tiers ---------- */
.support-tiers { padding: 24px 0 96px; }
.support-tiers .intro { text-align: center; }
.support-tiers .intro .eyebrow { font-size: 20px; }
.support-tiers .intro h2 { margin-bottom: 32px; }
.support-tiers .tier-grid-gap { height: 64px; }
@media (min-width: 768px) { .support-tiers { padding-bottom: 128px; } .support-tiers .intro .eyebrow { font-size: 24px; } .support-tiers .intro h2 { font-size: 60px; } }

.equal-cards .row { display: flex; flex-wrap: wrap; }
.equal-cards .row > [class*="col-"] { display: flex; margin-bottom: 30px; }
.equal-cards .row:before, .equal-cards .row:after { display: none; }

.tier-card { display: flex; flex-direction: column; width: 100%; border: 1px solid var(--line); padding: 32px; text-align: center; }
.tier-card .tier-eyebrow { min-height: 40px; color: var(--secondary); font-size: 16px; line-height: 1.25; }
.tier-card h3 { margin-top: 16px; line-height: 1; }
.tier-card .tier-price { font-size: 48px; line-height: 1; margin-top: 16px; }
.tier-card .tier-blurb { margin-top: 24px; color: var(--muted); }
.tier-card .tier-extra { margin-top: 16px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.tier-card .tier-perks-intro { margin-top: 32px; font-size: 16px; }
.tier-card ul { list-style: none; padding: 0; margin: 16px 0 0; font-size: 14px; line-height: 1.6; color: var(--muted); }
.tier-card ul li + li { margin-top: 12px; }
.tier-card .tier-footnote { margin-top: 24px; font-size: 14px; font-style: italic; color: var(--muted); }
.tier-card .tier-spacer { flex: 1; }
.tier-card .btn-amber, .tier-card .btn-amber-outline { margin-top: 40px; }

/* ---------- Newsletter ---------- */
.notify-panel { border: 1px solid var(--line); padding: 32px; text-align: center; margin-top: 50px; }
.notify-panel h3 { font-size: 30px; }
.notify-panel .lead-copy { max-width: 576px; margin: 24px auto 0; }
.notify-panel form { max-width: 512px; margin: 32px auto 0; display: flex; flex-direction: column; gap: 12px; }
.notify-panel input[type=email] { width: 100%; border: 1px solid var(--line); background: transparent; padding: 16px 20px; font-size: 16px; color: var(--fg); border-radius: 0; }
.notify-panel input[type=email]:focus { border-color: var(--secondary); outline: none; }
.notify-panel .btn-amber { flex-shrink: 0; }
.notify-panel .small-note { margin-top: 16px; font-size: 14px; color: var(--muted); }
.notify-panel .mc-honeypot { position: absolute; left: -5000px; }
@media (min-width: 768px) { .notify-panel { padding: 48px; } .notify-panel h3 { font-size: 36px; } .notify-panel form { flex-direction: row; } }

/* ---------- Beermat band ---------- */
.beermat-band { position: relative; overflow: hidden; background: var(--primary); text-align: center; }
.beermat-band img { display: block; width: 100%; height: 42vw; max-height: 620px; min-height: 220px; object-fit: cover; }
.beermat-band .fade-top, .beermat-band .fade-bottom { position: absolute; left: 0; right: 0; pointer-events: none; }
.beermat-band .fade-top { top: 0; height: 96px; background: linear-gradient(to bottom, var(--primary), transparent); }
.beermat-band .fade-bottom { top: calc(min(max(42vw, 220px), 620px) - 112px); height: 112px; background: linear-gradient(to top, var(--primary), transparent); }
.beermat-band .caption { font-size: 24px; color: var(--oak); padding: 8px 0 64px; }

/* ---------- Split sections ---------- */
.split-local { padding: 80px 0; }
.split-local h2 { color: var(--paper); }
.split-local .lead-copy { color: oklch(0.955 0.017 89 / 85%); margin-top: 32px; max-width: 576px; }
.split-local .birdie { font-size: 24px; color: var(--oak); margin-top: 32px; }
.split-local .caption-note { margin-top: 24px; color: oklch(0.955 0.017 89 / 60%); }
.split-local .split-media img { width: 100%; border-radius: 2px; margin-bottom: 48px; }
@media (min-width: 768px) { .split-local { padding: 96px 0; } .split-local .birdie { font-size: 30px; } }
@media (min-width: 992px) { .split-local .split-copy { padding-top: 40px; } .split-local .split-media img { margin-bottom: 0; } }

/* ---------- Inner page feature splits ---------- */
.feature-split { padding: 80px 0; }
.feature-split .feature-media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 2px; margin-bottom: 40px; }
.feature-split .feature-copy { padding: 8px 0; }
.feature-split .feature-copy h2 { margin-bottom: 28px; }
.feature-split .feature-copy .lead-copy + .lead-copy { margin-top: 20px; }
@media (min-width: 768px) { .feature-split { padding: 96px 0; } }
@media (min-width: 992px) {
  .feature-split .row { display: flex; align-items: center; }
  .feature-split .row:before, .feature-split .row:after { display: none; }
  .feature-split .feature-media img { margin-bottom: 0; }
  .feature-split .feature-copy { padding: 32px 36px; }
}

/* ---------- Editorial drinks page ---------- */
.drinks-editorial { padding: 80px 0 104px; overflow: hidden; }
.drinks-editorial .drinks-heading { border-bottom: 4px solid var(--primary); padding-bottom: 24px; margin-bottom: 64px; }
.drinks-editorial .drinks-heading h2 { font-size: 56px; }
.drinks-editorial .drinks-heading h2 span { color: var(--secondary); }
.drinks-editorial .drinks-heading .eyebrow { margin: 18px 0 0; }
.drinks-editorial .drink-row + .drink-row { margin-top: 88px; }
.drinks-editorial .drink-row { position: relative; }
.drinks-editorial .drink-frame { position: relative; margin: 0 12px 44px 0; }
.drinks-editorial .drink-frame:after { content: ""; position: absolute; inset: 14px -14px -14px 14px; z-index: 0; background: var(--oak); }
.drinks-editorial .drink-row-alt .drink-frame { margin-right: 0; margin-left: 12px; }
.drinks-editorial .drink-row-alt .drink-frame:after { inset: 14px 14px -14px -14px; background: var(--secondary); }
.drinks-editorial .drink-frame img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: 3px solid var(--primary); }
.drinks-editorial .drink-copy { padding: 8px 0 0; }
.drinks-editorial .drink-copy h2 { color: var(--primary); margin-bottom: 28px; }
.drinks-editorial .drink-copy .lead-copy { color: var(--muted); }
.drinks-editorial .drink-doodle { display: block; width: 88px; height: 88px; margin-bottom: 24px; color: var(--secondary); }
.drinks-editorial .drink-doodle path, .drinks-editorial .drink-doodle circle { vector-effect: non-scaling-stroke; }
@media (min-width: 768px) {
  .drinks-editorial { padding: 112px 0 136px; }
  .drinks-editorial .drinks-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 88px; }
  .drinks-editorial .drinks-heading h2 { font-size: 76px; }
  .drinks-editorial .drinks-heading .eyebrow { margin: 0 0 8px; }
}
@media (min-width: 992px) {
  .drinks-editorial .drink-row { display: flex; align-items: center; }
  .drinks-editorial .drink-row:before, .drinks-editorial .drink-row:after { display: none; }
  .drinks-editorial .drink-row + .drink-row { margin-top: 128px; }
  .drinks-editorial .drink-frame { margin-bottom: 0; }
  .drinks-editorial .drink-copy { padding: 36px 48px; }
}

/* ---------- Story band ---------- */
.story-band { position: relative; overflow: hidden; background: var(--primary); text-align: center; color: var(--paper); isolation: isolate; }
.story-band .story-bg { position: absolute; inset: 0; z-index: -1; }
.story-band .story-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.story-band .story-bg:after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, oklch(0.215 0.035 158 / 95%), oklch(0.215 0.035 158 / 75%), oklch(0.215 0.035 158 / 95%)); }
.story-band .story-inner { padding: 96px 0; }
.story-band .lead-copy { color: oklch(0.955 0.017 89 / 80%); margin: 32px auto 0; max-width: 672px; }
.story-band blockquote { border: 0; padding: 0; margin: 48px auto 0; max-width: 672px; }
.story-band blockquote p { font-size: 24px; line-height: 1.1; color: var(--secondary); }
.story-band ol { list-style: none; padding: 0; margin: 56px 0 0; }
.story-band ol li + li { margin-top: 40px; }
.story-band .gen-year { display: block; color: var(--secondary); font-size: 16px; }
.story-band .gen-who { display: block; font-size: 30px; margin-top: 8px; }
.story-band .gen-what { display: block; max-width: 448px; margin: 8px auto 0; color: oklch(0.955 0.017 89 / 70%); }
.story-band .signoff { margin-top: 56px; font-size: 24px; color: var(--secondary); }
@media (min-width: 768px) { .story-band .story-inner { padding: 128px 0; } .story-band blockquote p { font-size: 36px; } .story-band .signoff { font-size: 30px; } }

/* ---------- Testimonials ---------- */
.testimonial-band { position: relative; overflow: hidden; background: var(--primary); color: var(--paper); border-top: 8px solid var(--secondary); border-bottom: 8px solid var(--secondary); text-align: center; padding: 0; }
.testimonial-band:after { content: ""; position: absolute; right: -44px; bottom: -44px; width: 180px; height: 180px; border-right: 6px solid var(--oak); border-bottom: 6px solid var(--oak); opacity: .18; pointer-events: none; }
.testimonial-band .testimonial-inner { position: relative; z-index: 1; padding: 72px 54px 88px; }
.testimonial-band .testimonial-inner > .eyebrow { margin-bottom: 12px; }
.testimonial-band .testimonial-inner > h2 { font-size: 40px; }
.testimonial-band .carousel { min-height: 310px; }
.testimonial-band .carousel-inner { min-height: 260px; }
.testimonial-band .item { min-height: 260px; padding: 0 32px 44px; }
.testimonial-band .quote-mark { display: block; height: 54px; margin-top: 24px; color: var(--secondary); font-family: Georgia, serif; font-size: 84px; line-height: 1; opacity: .7; }
.testimonial-band blockquote { border: 0; padding: 0; margin: 0 auto; max-width: 760px; }
.testimonial-band blockquote p { color: var(--paper); font-family: var(--font-display); font-size: 23px; line-height: 1.18; text-transform: uppercase; }
.testimonial-band .testimonial-name { margin-top: 24px; color: var(--secondary); font-size: 19px; }
.testimonial-band .carousel-control { width: 48px; color: var(--oak); background: none; text-shadow: none; opacity: .65; }
.testimonial-band .carousel-control:hover, .testimonial-band .carousel-control:focus { color: var(--secondary); opacity: 1; }
.testimonial-band .carousel-control .fas { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 28px; }
.testimonial-band .carousel-indicators { bottom: -10px; margin-bottom: 0; }
.testimonial-band .carousel-indicators li { width: 34px; height: 4px; margin: 0 4px; border: 0; border-radius: 0; background: oklch(0.955 0.017 89 / 22%); }
.testimonial-band .carousel-indicators .active { background: var(--secondary); }
@media (min-width: 768px) {
  .testimonial-band .testimonial-inner { padding: 88px 72px 104px; }
  .testimonial-band .testimonial-inner > h2 { font-size: 52px; }
  .testimonial-band .carousel { min-height: 330px; }
  .testimonial-band .carousel-inner, .testimonial-band .item { min-height: 280px; }
  .testimonial-band blockquote p { font-size: 32px; }
  .testimonial-band .carousel-control { width: 72px; }
}
@media (prefers-reduced-motion: reduce) { .testimonial-band .carousel-inner > .item { transition: none; } }

/* ---------- Visit info ---------- */
.visit-info { padding: 96px 0 42px; text-align: center; }
.visit-info h2 { font-size: 16px; color: var(--secondary); line-height: .92; }
.visit-info p { margin: 16px 0 56px; color: var(--muted); }
@media (min-width: 768px) { .visit-info { padding: 128px 0 72px; } .visit-info h2 { font-size: 16px; } }

/* ---------- Closing CTA ---------- */
.closing-cta { padding: 80px 0; text-align: center; }
.closing-cta h2 { font-size: 40px; }
.closing-cta .lead-copy { max-width: 576px; margin: 24px auto 0; }
.closing-cta .btn-amber { margin-top: 32px; }
.closing-cta .btn-amber + .btn-amber-outline { margin-left: 12px; }
.closing-cta-featured { padding: 48px 0; }
.closing-cta-frame { position: relative; overflow: hidden; border: 1px solid var(--line); padding: 56px 24px; }
.closing-cta-frame:before { content: ""; position: absolute; inset: 10px; border: 1px solid var(--line); pointer-events: none; }
.closing-cta-featured .eyebrow { margin-bottom: 20px; }
.closing-cta-mark { position: relative; width: 68px; height: 68px; margin: 0 auto 20px; color: var(--oak); }
.closing-cta-rule { width: 64px; height: 1px; margin: 24px auto 0; background: var(--secondary); }
.closing-cta-featured .lead-copy { position: relative; }
.closing-cta-featured .btn-amber { position: relative; }
.closing-cta-botanical { position: absolute; left: -28px; bottom: -32px; width: 180px; height: 180px; color: oklch(0.215 0.035 158 / 10%); pointer-events: none; }
@media (min-width: 768px) {
  .closing-cta { padding: 96px 0; }
  .closing-cta h2 { font-size: 48px; }
  .closing-cta-featured { padding: 64px 0; }
  .closing-cta-frame { padding: 72px 64px; }
  .closing-cta-featured h2 { font-size: 60px; }
}
@media (max-width: 479px) {
  .closing-cta .btn-amber + .btn-amber-outline { display: table; margin: 12px auto 0; }
}

/* ---------- Page banner (privacy) ---------- */
.page-banner { position: relative; overflow: hidden; background: var(--primary); text-align: center; color: var(--paper); min-height: 45vh; display: flex; align-items: center; isolation: isolate; }
.page-banner > .container { width: 100%; }
.page-banner .banner-bg { position: absolute; inset: 0; z-index: -1; }
.page-banner .banner-bg img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; }
.page-banner .banner-bg:after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, oklch(0.215 0.035 158 / 80%), oklch(0.215 0.035 158 / 50%), oklch(0.215 0.035 158 / 80%)), oklch(0.215 0.035 158 / 30%); }
.page-banner .banner-inner { padding: 96px 0; }
.page-banner h1 { font-size: 60px; }
.page-banner .banner-sub { margin-top: 16px; font-size: 18px; color: var(--secondary); }
@media (min-width: 768px) { .page-banner h1 { font-size: 72px; } .page-banner .banner-sub { font-size: 24px; } .page-banner .banner-inner { padding: 128px 0; } }
@media (min-width: 1200px) { .page-banner h1 { font-size: 96px; } }

/* ---------- Long-form article ---------- */
.policy-article { padding: 64px 0; font-size: 18px; }
.policy-article .policy-body p, .policy-article .policy-body ul, .policy-article .policy-body ol { color: var(--muted); margin: 16px 0 0; line-height: 1.65; }
.policy-article .policy-body strong { color: var(--fg); }
.policy-article .policy-body h2 { font-size: 30px; margin-top: 48px; }
.policy-article .policy-body h3 { font-size: 22px; margin-top: 32px; }
.policy-article .policy-body ul { padding-left: 24px; list-style: disc; }
.policy-article .policy-body li + li { margin-top: 8px; }
.policy-article .policy-body a { color: var(--secondary); text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 768px) { .policy-article { padding: 96px 0; } .policy-article .policy-body h2 { font-size: 36px; } }

/* ---------- Footer ---------- */
.site-footer { background: var(--primary); color: var(--paper); text-align: center; padding: 64px 0; }
.site-footer .footer-logo { max-width: 320px; width: 100%; margin: 0 auto; display: block; }
.site-footer p { color: oklch(0.955 0.017 89 / 45%); font-size: 16px; margin-top: 16px; }
.site-footer p:first-of-type { margin-top: 32px; }
.site-footer p a { color: inherit; text-decoration: underline; text-decoration-color: oklch(0.955 0.017 89 / 30%); text-underline-offset: 4px; }
.site-footer p a:hover { color: var(--paper); }
@media (min-width: 768px) { .site-footer .footer-logo { max-width: 384px; } }

/* ---------- Six Ticks base-style neutralisers ---------- */
html body { padding-top: 0 !important; background-color: var(--primary) !important; color: var(--fg); font-family: var(--font-sans); }
.hero-shopfront, .beermat-band, .story-band, .page-banner { padding-top: 0; padding-bottom: 0; }
.site-header .navbar, .site-header .navbar-default { min-height: 0; }

/* Events grid */
.events-grid, .supporters-grid { padding: 80px 0 56px; }
.events-intro { text-align: center; margin-bottom: 48px; }
.event-card { position: relative; margin: 0 8px 48px 0; background: var(--paper); border: 2px solid var(--primary); box-shadow: 8px 8px 0 var(--secondary); text-align: center; }
.event-media { position: relative; overflow: hidden; }
.event-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.event-card:hover .event-media img { transform: scale(1.04); }
.event-date { position: absolute; top: 0; left: 0; min-width: 84px; padding: 10px 12px; background: var(--primary); color: var(--paper); line-height: 1; border-right: 4px solid var(--secondary); border-bottom: 4px solid var(--secondary); }
.event-date span { display: block; }
.event-month { color: var(--secondary); font-weight: 700; font-size: 15px; letter-spacing: .08em; }
.event-day { font-family: var(--font-display); font-size: 38px; margin: 4px 0 2px; }
.event-year { font-size: 14px; font-weight: 600; }
.event-time { font-size: 11px; margin-top: 6px; opacity: .85; }
.event-body { padding: 24px 22px 26px; }
.event-body h3 { margin: 0 0 10px; font-family: var(--font-display); font-size: 22px; text-transform: uppercase; color: var(--primary); }
.event-body p { margin: 0 0 12px; }
.event-body .event-venue { margin: 0; color: var(--secondary); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 14px; }
.supporter-tile { margin: 0 8px 32px 0; padding: 28px 20px; background: var(--paper); border: 2px solid var(--primary); box-shadow: 6px 6px 0 var(--secondary); text-align: center; }
.supporter-mark { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 50%; background: var(--primary); color: var(--secondary); font-size: 22px; }
.supporter-tile h3 { margin: 0 0 8px; font-family: var(--font-display); font-size: 19px; text-transform: uppercase; color: var(--primary); }
.supporter-tile p { margin: 0; }
@media (prefers-reduced-motion: reduce) { .event-media img { transition: none; } }

/* ---------- Home cross-links ---------- */
.split-local .split-cta { margin-top: 36px; }
.split-local .split-cta .btn-amber { margin-top: 0; }
.events-intro .doodle { margin-left: auto; margin-right: auto; }
.visit-info .visit-flourish { margin-bottom: 48px; }
.visit-info .visit-more { margin: 0; }
.visit-info .visit-more a { color: var(--secondary); text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Contact page ---------- */
.contact-card { background: oklch(0.98 0.012 89); border: 2px solid var(--primary); padding: 32px 24px; margin-bottom: 40px; }
.contact-form-col h2 { font-size: 32px; margin-bottom: 16px; }
.contact-form .form-field { margin-bottom: 24px; }
.contact-form .form-grid { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .contact-form .form-grid { grid-template-columns: 1fr 1fr; gap: 0 24px; } }
.contact-form label { display: block; font-weight: 600; font-size: 14px; letter-spacing: .02em; margin-bottom: 8px; }
.contact-form .req { color: var(--secondary); }
.contact-form .optional { color: var(--muted); font-weight: 400; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--line); background: oklch(1 0 0); padding: 14px 16px; font-size: 16px; color: var(--fg); border-radius: 0; box-shadow: none; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--muted); opacity: 1; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--secondary); outline: none; box-shadow: none; }
.contact-form textarea { resize: vertical; }
.contact-form .btn-amber { margin-top: 8px; }
.contact-thanks h3 { margin-bottom: 12px; }
.contact-details { background: oklch(0.93 0.03 158); }
.contact-details .contact-title { font-size: 26px; margin-bottom: 12px; }
.contact-details .lead-copy { margin-bottom: 28px; }
.contact-row { display: flex; gap: 16px; margin-bottom: 24px; }
.contact-row:last-child { margin-bottom: 0; }
.contact-row-divider { border-top: 1px solid var(--line); padding-top: 24px; }
.contact-icon { color: var(--secondary); font-size: 20px; line-height: 1; margin-top: 5px; width: 24px; text-align: center; flex-shrink: 0; }
.contact-row-body h2, .contact-row-body h3 { font-size: 20px; margin-bottom: 8px; }
.contact-row-body h2 { font-size: 24px; }
.contact-row-body p { color: var(--muted); margin: 0; }
@media (min-width: 768px) {
  .contact-card { padding: 48px 40px; }
  .contact-form-col h2 { font-size: 38px; }
}
@media (min-width: 992px) { .contact-card { margin-bottom: 0; } }
.contact-split .row { align-items: flex-start; }
.contact-map iframe { display: block; width: 100%; height: 450px; border: 0; }
