/* ==========================================================================
   The Entertainment Pavilion — "Barn & Berry" theme (v0.8.0)
   Rustic-elegant: cream paper, forest green, barn red.
   Wide block caps (Archivo) + retro script (Yellowtail) + serif body (Lora).
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,400..900&family=Lora:ital,wght@0,400..600;1,400..500&family=Yellowtail&display=swap');
@import url(fa-all.min.css);
@import url(animate-v0.0.1.css);

:root {
  /* Paper */
  --paper: #f2ece1;
  --paper-deep: #e8dfcf;
  --card: #fbf8f1;
  --cream: #f6efe2;

  /* Forest green */
  --green: #1e4d3b;
  --green-deep: #143a2c;
  --green-night: #0f2c21;
  --green-tint: rgba(30, 77, 59, 0.08);

  /* Barn red */
  --barn: #8c2b22;
  --barn-deep: #6c1f18;
  --barn-night: #4f150f;

  /* Text */
  --ink: #22332b;
  --muted: #5a6a61;
  --rule: rgba(30, 77, 59, 0.3);
  --rule-soft: rgba(30, 77, 59, 0.16);
  --rule-cream: rgba(246, 239, 226, 0.4);

  /* Type */
  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-script: 'Yellowtail', 'Brush Script MT', cursive;
  --font-body: 'Lora', Georgia, 'Times New Roman', serif;

  --nav-h: 4.75rem;
  --radius: 4px;
  --shadow: 0 1px 0 rgba(30, 77, 59, 0.06), 0 14px 34px -18px rgba(20, 40, 30, 0.35);

  /* Legacy names some pages still reference */
  --text-color: var(--ink);
  --accent: var(--barn);
  --button-bg: var(--green);
  --button-text: var(--cream);
  --berry: var(--barn);
  --stitch: var(--rule);
  --s1: 1rem;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  min-height: 100vh;
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  color: var(--ink);
  background-color: var(--paper);
  /* faint paper grain */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .18 0 0 0 0 .12 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
}

main { flex: 1 0 auto; }

h1, h2, h3, h4, p { margin: 0; color: inherit; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-stretch: 112%;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.01em;
  color: var(--green);
}

h1 { font-size: clamp(2.25rem, 1.6rem + 3vw, 3.75rem); text-transform: uppercase; }
h2 { font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem); text-transform: uppercase; }
h3 { font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem); }
h4 { font-size: 1.125rem; }

p { font-family: var(--font-body); font-size: 1.0625rem; }

a {
  color: var(--green);
  text-decoration: none;
  cursor: pointer;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}
a:hover { color: var(--barn); }

/* Legacy pages expect links to be blocks with padding */
.center-content > a:not(.button), .list-link a, .nav a { display: inline-block; padding: 0.75em; }

b, strong { font-weight: 600; }

:focus-visible {
  outline: 2px solid var(--barn);
  outline-offset: 3px;
  border-radius: 2px;
}

hr {
  border: 0;
  border-top: 1px solid var(--rule);
  width: 85%;
  margin: 1.5em auto;
}

li {
  list-style: none;
  font-size: 1.0625rem;
  padding: 0.3em;
}

img { max-width: 100%; }
svg { fill: currentColor; }

.script { font-family: var(--font-script); font-weight: 400; text-transform: none; letter-spacing: 0; font-stretch: normal; }

.eyebrow, .label {
  font-family: var(--font-display);
  font-stretch: 125%;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--barn);
}

.icon-before { margin-right: 0.6em; }
.icon-after { margin-left: 0.6em; }

/* Ornament: rule — barn — rule */
.ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  color: var(--barn);
  margin: 0.9rem auto 0;
  max-width: 14rem;
}
.ornament::before, .ornament::after {
  content: '';
  flex: 1;
  height: 0;
  border-top: 1px solid currentColor;
  box-shadow: 0 3px 0 -2px currentColor;
  padding-bottom: 3px;
  opacity: .7;
}
.ornament i, .barn-mark {
  display: inline-block;
  width: 1.15rem;
  height: 1.15rem;
  background: currentColor;
  -webkit-mask: url(/images/barn-mark.svg) center / contain no-repeat;
  mask: url(/images/barn-mark.svg) center / contain no-repeat;
  flex: none;
}

/* The old berry divider image becomes the ornament */
img.divider { display: none; }

/* ---------- Header ---------- */
.menu, .menu-mobile {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--nav-h);
  z-index: 90;
  background: rgba(242, 236, 225, 0.94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--rule);
  box-shadow: 0 3px 0 -2px var(--rule-soft);
}

.menu {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(1rem, 3vw, 3rem);
  padding: 0 1.5rem;
}
.menu > :first-child { justify-self: end; }
.menu > :last-child { justify-self: start; }

.menu-mobile {
  display: none;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0 1rem;
}

a.menu-brand, a.menu-mobile-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0;
  min-width: 0;
  color: var(--green);
}
a.menu-brand:hover, a.menu-mobile-brand:hover { color: var(--barn); }
.menu-brand .barn-mark, .menu-mobile-brand .barn-mark { width: 1.9rem; height: 1.9rem; color: var(--barn); }

.menu-brand-name {
  display: flex;
  flex-direction: column;
  line-height: 1;
  white-space: nowrap;
}
.menu-brand-name small {
  font-family: var(--font-display);
  font-stretch: 125%;
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--barn);
  margin-bottom: 0.2rem;
}
.menu-brand-name span {
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.menu nav, .menu ul {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.menu li { padding: 0; }

.menu nav a {
  display: inline-block;
  position: relative;
  padding: 0.55rem 0.85rem;
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--green);
}
.menu nav a::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0.2rem;
  width: 0;
  height: 2px;
  background: var(--barn);
  transform: translateX(-50%);
  transition: width .2s ease;
}
.menu nav a:hover::after, .menu nav a[aria-current]::after { width: calc(100% - 1.7rem); }
.menu nav a[aria-current] { color: var(--barn); }

.menu nav a.menu-cta-inline {
  margin-left: 0.4rem;
  padding: 0.6rem 1.15rem;
  background: var(--green);
  color: var(--cream);
  border-radius: var(--radius);
  box-shadow: inset 0 0 0 1px var(--green), inset 0 0 0 3px var(--cream);
}
.menu nav a.menu-cta-inline::after { display: none; }
.menu nav a.menu-cta-inline:hover { background: var(--barn); box-shadow: inset 0 0 0 1px var(--barn), inset 0 0 0 3px var(--cream); }

.menu-toggle-btn, .mm-close-btn {
  flex: none;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  color: var(--green);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.menu-toggle-btn .fas, .mm-close-btn .fas { font-size: 1.2rem; }
.menu-toggle-btn:hover, .mm-close-btn:hover { background: var(--green); color: var(--cream); }

/* Mobile menu sheet */
.mm {
  position: fixed;
  inset: 0;
  height: 100vh;
  height: 100dvh;
  z-index: 100;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background: var(--paper);
}
.mm-header {
  flex: none;
  height: var(--nav-h);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0 1rem;
  border-bottom: 1px solid var(--rule);
}
.mm-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 28rem;
  margin: 0 auto;
  padding: 1.5rem 1.25rem calc(2rem + env(safe-area-inset-bottom));
}
.mm-nav { display: flex; flex-direction: column; margin-top: 1rem; }
.mm-nav-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.1rem 0.5rem;
  border-bottom: 1px solid var(--rule-soft);
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 800;
  font-size: 1.15rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}
.mm-nav-item .fas { width: 1.25em; font-size: 0.85em; color: var(--barn); text-align: center; }
.mm-nav-item[aria-current] { color: var(--barn); }
.mm-footer { margin-top: auto; padding-top: 2rem; display: grid; gap: 0.75rem; }
.mm-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 1rem;
  background: var(--green);
  color: var(--cream);
  border-radius: var(--radius);
  box-shadow: inset 0 0 0 1px var(--green), inset 0 0 0 4px var(--cream);
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.mm-cta-btn:hover { background: var(--barn); color: var(--cream); }

/* Simpler legacy menu markup (portal, confirmation, showcase) */
.mm > h2, .mm > a, .mm > svg { align-self: center; text-align: center; }
.mm.scale-in-ver-top { padding-top: 4.5rem; }
.mm > h2 { font-size: 1.75rem; }
.mm > a { display: block; padding: 0.9rem; font-family: var(--font-display); font-stretch: 118%; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mm-close { position: fixed; top: 20px; right: 28px; z-index: 105; }

/* ---------- Buttons ---------- */
.button, .button-legal {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.75em 1.6em;
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: var(--green);
  background: transparent;
  border: 1.5px solid var(--green);
  border-radius: var(--radius);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.button:hover, .button-legal:hover { background: var(--green); color: var(--cream); transform: translateY(-1px); }
.button:active { transform: translateY(0); }

.button-primary {
  background: var(--green);
  color: var(--cream);
  box-shadow: inset 0 0 0 3px var(--green), inset 0 0 0 4px var(--cream);
}
.button-primary:hover {
  background: var(--barn);
  border-color: var(--barn);
  color: var(--cream);
  box-shadow: inset 0 0 0 3px var(--barn), inset 0 0 0 4px var(--cream);
}

.button-barn { background: var(--barn); border-color: var(--barn); color: var(--cream); box-shadow: inset 0 0 0 3px var(--barn), inset 0 0 0 4px var(--cream); }
.button-barn:hover { background: var(--barn-deep); border-color: var(--barn-deep); box-shadow: inset 0 0 0 3px var(--barn-deep), inset 0 0 0 4px var(--cream); }

.button:disabled, .button[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.button:disabled::before { content: '\f023'; font-family: 'Font Awesome 5 Free'; font-weight: 900; margin-right: .6em; }
.button:disabled:hover { background: var(--green); color: var(--cream); }

.button-legal { margin: 0.5em; }

/* ---------- Hero: the barn wall ---------- */
.hero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: min(100vh, 58rem);
  min-height: min(100svh, 58rem);
  padding: calc(var(--nav-h) + 2.5rem) 1rem 3.5rem;
  color: var(--cream);
  background-color: var(--barn);
  /* board-and-batten siding */
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.28)),
    repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0 2px, transparent 2px 7px, rgba(255,255,255,.035) 7px 9px, transparent 9px 64px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .6' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  border-bottom: 6px solid var(--green-deep);
  box-shadow: inset 0 -10px 0 -4px var(--cream);
}

/* Sliding barn doors flanking the badge */
.hero::before, .hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  bottom: 6px;
  width: clamp(9rem, 17vw, 15rem);
  aspect-ratio: 200 / 372;
  max-height: calc(100% - var(--nav-h) - 2rem);
  background: url(/images/barn-door.svg) center bottom / contain no-repeat;
  filter: drop-shadow(0 10px 18px rgba(30, 6, 4, .35));
  pointer-events: none;
}
.hero::before { left: clamp(1rem, 5vw, 5rem); }
.hero::after { right: clamp(1rem, 5vw, 5rem); transform: scaleX(-1); }

.hero-inner { display: flex; flex-direction: column; align-items: center; max-width: 44rem; }

.hero-status {
  margin-top: 1.75rem;
  max-width: 34rem;
}
.hero-status .eyebrow { color: var(--cream); opacity: .85; }
.hero-status .season-text {
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-stretch: 112%;
  font-weight: 700;
  font-size: clamp(1.15rem, 1rem + 0.7vw, 1.5rem);
  line-height: 1.3;
  color: var(--cream);
}
.hero-status .season-subtext { margin-top: 0.35rem; font-style: italic; color: var(--cream); opacity: .9; }

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.75rem;
}
.hero .button { color: var(--cream); border-color: var(--cream); }
.hero .button:hover { background: var(--cream); color: var(--barn-deep); }
.hero .button-primary { background: var(--cream); color: var(--barn-deep); border-color: var(--cream); box-shadow: inset 0 0 0 3px var(--cream), inset 0 0 0 4px var(--barn); }
.hero .button-primary:hover { background: var(--green); border-color: var(--green); color: var(--cream); box-shadow: inset 0 0 0 3px var(--green), inset 0 0 0 4px var(--cream); }

/* ---------- Hero scene: bird on the roof, tractor by the door ---------- */
.hero { overflow: hidden; overflow: clip; }
.hero-badge { position: relative; }

/* Bird flies in from the upper right and lands on the badge's roof peak */
.hero-bird {
  position: absolute;
  left: 50%;
  bottom: 100%;
  width: clamp(2rem, 1.6rem + 1vw, 2.6rem);
  margin-bottom: -3px;
  transform: translateX(-52%);
  pointer-events: none;
}
.hero-bird .bird-x, .hero-bird .bird-y { display: block; }
.hero-bird .bird-x { animation: bird-fly-x 2.1s 2.2s cubic-bezier(.25, .65, .35, 1) both; }
.hero-bird .bird-y { animation: bird-fly-y 2.1s 2.2s cubic-bezier(.45, .1, .55, 1) both; }
.hero-bird .bird {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  transform-origin: 55% 100%;
  animation: bird-settle .45s 4.25s ease-out both, bird-idle 11s 5s ease-in-out infinite;
}
.bird-beak-lower { transform-box: fill-box; transform-origin: 100% 0%; animation: bird-beak 11s 5s ease-in-out infinite; }

/* Music notes drift up and away from the beak while it sings */
.bird-notes { position: absolute; left: 8%; top: 30%; width: 0; height: 0; }
.bird-note {
  position: absolute;
  left: -.45rem;
  top: -.6rem;
  width: .9rem;
  height: auto;
  fill: var(--cream);
  opacity: 0;
  filter: drop-shadow(0 1px 1px rgba(30, 6, 4, .45));
  animation: bird-note 11s 5.55s ease-out infinite;
}
.bird-note:nth-child(2) { --drift: -4.2rem; --tilt: 14deg; fill: #f9e7b0; animation-delay: 6.25s; }
.bird-note:nth-child(3) { --drift: -5.2rem; --tilt: -16deg; width: .75rem; animation-delay: 6.95s; }
.bird-note:nth-child(4) { --drift: -3.6rem; --tilt: 10deg; fill: #f9e7b0; animation-delay: 7.65s; }
/* Eastern bluebird: reads against the red siding */
.bird-body { fill: #3f6f9c; }
.bird-tail { fill: #2d5479; }
.bird-belly { fill: #e39a5a; }
.bird-wing { fill: #5b8fc0; transform-box: fill-box; transform-origin: 0% 50%; animation: bird-flap .17s 2.2s ease-in-out 12 both; }
.bird-beak { fill: #e0a63a; }
.bird-eye { fill: var(--cream); }
.bird-legs path { fill: none; stroke: #2b1a15; stroke-width: 1.4; stroke-linecap: round; }
.bird-legs { transform-box: fill-box; transform-origin: 50% 0%; animation: bird-legs .3s 3.95s ease-out both; }

@keyframes bird-fly-x { from { transform: translateX(16rem); } to { transform: translateX(0); } }
@keyframes bird-fly-y {
  from { transform: translateY(-11rem); opacity: 0; }
  12% { opacity: 1; }
  to { transform: translateY(0); }
}
@keyframes bird-flap {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-38deg) scaleY(-1.15); }
}
@keyframes bird-legs { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes bird-settle {
  0% { transform: scale(1, 1); }
  40% { transform: scale(1.08, .88); }
  100% { transform: scale(1, 1); }
}
/* Each cycle: lift the head and sing, then peck, look around, little hop */
@keyframes bird-idle {
  0%, 44%, 60%, 100% { transform: none; }
  4%, 40% { transform: rotate(9deg); }
  14%, 30% { transform: rotate(9deg) translateY(-1px); }
  22% { transform: rotate(11deg); }
  63% { transform: rotate(-12deg); }
  66% { transform: rotate(0deg); }
  70%, 80% { transform: scaleX(-1); }
  84% { transform: translateY(-.45rem); }
  88% { transform: none; }
}
@keyframes bird-beak {
  0%, 5%, 9%, 13%, 17%, 22%, 26%, 30%, 34%, 39%, 100% { transform: rotate(0deg); }
  7%, 11%, 15%, 19.5%, 24%, 28%, 32%, 36.5% { transform: rotate(-30deg); }
}
@keyframes bird-note {
  0% { transform: translate(0, 0) scale(.4) rotate(0deg); opacity: 0; }
  2% { opacity: 1; }
  13% { transform: translate(calc(var(--drift, -3rem) * .5), -1.1rem) scale(.9) rotate(calc(var(--tilt, -10deg) * -1)); }
  18% { opacity: .9; }
  27% { transform: translate(var(--drift, -3rem), -.4rem) scale(1) rotate(var(--tilt, -10deg)); opacity: 0; }
  100% { transform: translate(var(--drift, -3rem), -.4rem) scale(1); opacity: 0; }
}


/* Tractor drives in from the left and parks beside the barn door */
.hero-tractor {
  position: absolute;
  z-index: 0;
  bottom: 6px;
  left: calc(clamp(1rem, 5vw, 5rem) + clamp(9rem, 17vw, 15rem) * .42);
  width: clamp(7rem, 4rem + 6vw, 10rem);
  pointer-events: none;
  filter: drop-shadow(0 8px 10px rgba(30, 6, 4, .35));
  animation: tractor-drive 3.4s .6s cubic-bezier(.2, .55, .3, 1) both;
}
.hero-tractor .tractor { display: block; width: 100%; height: auto; overflow: visible; }
.tractor-body { animation: tractor-bump .22s .6s ease-in-out 15, tractor-idle .7s 4s ease-in-out infinite; }
.t-wheel { transform-box: fill-box; transform-origin: 50% 50%; }
.t-wheel-rear { animation: wheel-spin-rear 3.4s .6s cubic-bezier(.2, .55, .3, 1) both; }
.t-wheel-front { animation: wheel-spin-front 3.4s .6s cubic-bezier(.2, .55, .3, 1) both; }
.t-green { fill: var(--green); }
.t-green-deep { fill: var(--green-deep); }
.t-frame { fill: var(--green-night); }
.t-frame-line { fill: none; stroke: var(--green-night); stroke-width: 3; stroke-linecap: round; }
.t-roof { fill: var(--cream); }
.t-dark { fill: #1d241f; }
.t-stripe { fill: none; stroke: var(--cream); stroke-width: 1.5; opacity: .55; }
.t-grille { fill: none; stroke: #1d241f; stroke-width: 1.5; }
.t-light { fill: #f9e7b0; }
.t-tire { fill: #1a1d1b; }
.t-tread { fill: none; stroke: #39403b; stroke-width: 4; stroke-dasharray: 4 3.5; }
.t-hub { fill: var(--cream); }
.t-spoke { fill: none; stroke: var(--green-deep); stroke-width: 2.5; }
.t-cap { fill: var(--barn); }

/* Exhaust puffs from the stack */
.tractor-puffs { position: absolute; left: 77%; top: 19%; width: 0; height: 0; }
.tractor-puffs i {
  position: absolute;
  left: -.3rem;
  top: -.3rem;
  width: .6rem;
  height: .6rem;
  border-radius: 50%;
  background: var(--cream);
  opacity: 0;
  animation: tractor-puff 1.8s ease-out infinite;
}
.tractor-puffs i:nth-child(2) { animation-delay: .6s; }
.tractor-puffs i:nth-child(3) { animation-delay: 1.2s; }

@keyframes tractor-drive { from { transform: translateX(-100vw); } to { transform: translateX(0); } }
@keyframes wheel-spin-rear { from { transform: rotate(-2100deg); } to { transform: rotate(0deg); } }
@keyframes wheel-spin-front { from { transform: rotate(-4200deg); } to { transform: rotate(0deg); } }
@keyframes tractor-bump { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.5px); } }
@keyframes tractor-idle { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-.6px); } }
@keyframes tractor-puff {
  0% { transform: translate(0, 0) scale(.5); opacity: 0; }
  15% { opacity: .5; }
  100% { transform: translate(-1.4rem, -2.6rem) scale(2.6); opacity: 0; }
}

/* ---------- Barn badge (logo lockup) ---------- */
.barn-badge {
  position: relative;
  width: clamp(16rem, 52vw, 22rem);
  aspect-ratio: 200 / 236;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24% 1rem 6%;
  color: var(--green);
  text-align: center;
  text-transform: none;
  line-height: 1.2;
  filter: drop-shadow(0 18px 24px rgba(30, 6, 4, .35));
}
.barn-badge > svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; overflow: visible; }
.barn-badge .badge-fill { fill: var(--cream); }
.barn-badge .badge-line { fill: none; stroke: var(--green); }

.badge-the, .badge-small {
  font-family: var(--font-display);
  font-stretch: 125%;
  font-weight: 700;
  font-size: clamp(0.62rem, 0.55rem + 0.3vw, 0.75rem);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  line-height: 1.6;
}
.badge-the { margin-bottom: 0.1rem; }
.badge-script {
  font-family: var(--font-script);
  font-size: clamp(2.1rem, 1.6rem + 2.2vw, 2.9rem);
  line-height: 1;
  color: var(--barn);
  transform: rotate(-5deg);
  margin: 0.05em 0 0.2em;
  white-space: nowrap;
}
.badge-word {
  font-family: var(--font-display);
  font-stretch: 125%;
  font-weight: 900;
  font-size: clamp(1.9rem, 1.4rem + 2.2vw, 2.7rem);
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.badge-rule {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 78%;
  margin: 0.7rem 0 0.45rem;
  color: var(--barn);
}
.badge-rule::before, .badge-rule::after { content: ''; flex: 1; border-top: 1px solid var(--green); }
.badge-rule .barn-mark { width: 0.85rem; height: 0.85rem; }
.badge-small + .badge-small { opacity: .8; }

/* Compact badge for inner pages */
.barn-badge--sm { width: 11rem; filter: none; }
.barn-badge--sm .badge-script { font-size: 1.35rem; }
.barn-badge--sm .badge-word { font-size: 1.3rem; }
.barn-badge--sm .badge-the, .barn-badge--sm .badge-small { font-size: .52rem; }

/* ---------- Sections ---------- */
.section {
  width: 100%;
  max-width: 66rem;
  margin: 0 auto;
  padding: clamp(3.5rem, 8vw, 6rem) 1rem;
}
.section + .section { border-top: 1px solid var(--rule-soft); }

.band { background: var(--paper-deep); border-block: 1px solid var(--rule-soft); }
.band > .section { border-top: 0; }

.section-header {
  max-width: 42rem;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.section-header h2 { margin-top: 0.5rem; }
.section-header h2 .script { display: block; font-size: 1.15em; color: var(--barn); line-height: .8; margin-bottom: .1em; transform: rotate(-3deg); }
.section-header p { margin-top: 1rem; color: var(--muted); font-size: 1.125rem; }

/* ---------- Panels ---------- */
.panel {
  position: relative;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  outline: 1px solid var(--rule-soft);
  outline-offset: -7px;
  padding: clamp(1.6rem, 4vw, 2.75rem);
  box-shadow: var(--shadow);
}

.panel-green { background: var(--green); color: var(--cream); border-color: var(--green-deep); outline-color: var(--rule-cream); }
.panel-green h2, .panel-green h3, .panel-green .eyebrow { color: var(--cream); }

/* ---------- Steps ---------- */
.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  counter-reset: step;
}
.steps > li { list-style: none; padding: clamp(1.6rem, 3vw, 2.25rem); text-align: center; }
.steps h3 { margin: 0.35rem 0 0.6rem; }
.steps p { color: var(--muted); font-size: 1rem; }

.step-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1rem;
  border-radius: 50%;
  border: 1.5px solid var(--green);
  box-shadow: inset 0 0 0 4px var(--card), inset 0 0 0 5px var(--green);
  color: var(--barn);
  font-size: 1.2rem;
}
.steps .eyebrow { display: block; }

.page-icon { display: block; margin: 0 auto 1rem; font-size: 3rem; color: var(--barn); }

/* ---------- Casting criteria (accordion) ---------- */
.criteria-list { padding: 0.5rem clamp(1.25rem, 4vw, 2.5rem); }
.criteria-item + .criteria-item { border-top: 1px solid var(--rule-soft); }

.criteria-item summary {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 3rem;
  padding: 1.1rem 0;
  cursor: pointer;
  list-style: none;
}
.criteria-item summary::-webkit-details-marker { display: none; }
.criteria-item summary::after {
  content: '\f067';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  margin-left: auto;
  padding-left: 0.5rem;
  font-size: 0.85rem;
  color: var(--barn);
  transition: transform .2s ease;
}
.criteria-item[open] summary::after { transform: rotate(45deg); }

.criteria-icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  border: 1px solid var(--rule);
  color: var(--green);
  font-size: 0.95rem;
  transition: background-color .2s ease, color .2s ease;
}
.criteria-item.is-read .criteria-icon { background: var(--green); border-color: var(--green); color: var(--cream); }

.criteria-item summary h3 {
  font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.1rem);
  font-stretch: 118%;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.criteria-item summary:hover h3 { color: var(--barn); }
.criteria-item.is-read summary h3::after {
  content: '\f00c';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  font-size: 0.75em;
  margin-left: 0.6em;
  color: var(--barn);
}

.criteria-body { max-width: 46rem; padding: 0 0 1.5rem 3.5rem; }
.criteria-body p, .criteria-body li { font-size: 1.0625rem; }
.criteria-body p + p, .criteria-body p + ul, .criteria-body ul + p { margin-top: 0.75rem; }
.criteria-body ul { margin: 0; padding-left: 1.2em; }
.criteria-body li { list-style: disc; padding: 0.2em 0; }
.criteria-body li::marker { color: var(--barn); }
.criteria-body a, .apply-start a:not(.button), .prose a:not(.button) {
  display: inline;
  padding: 0;
  color: var(--barn);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.criteria-status {
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--barn);
}
.criteria-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  padding: 1.5rem 0 1rem;
  border-top: 1px solid var(--rule);
  text-align: center;
}
.criteria-footer [hidden], .apply-actions [hidden], .apply-panel [hidden], .info-modal-box [hidden] { display: none; }

/* Progress through the criteria: one segment per topic */
.criteria-progress {
  display: flex;
  gap: 4px;
  width: 100%;
  max-width: 22rem;
  margin: 0 auto;
}
.criteria-footer { flex-direction: column; }
.criteria-progress > span {
  flex: 1;
  height: 8px;
  border-radius: 2px;
  background: var(--rule-soft);
  box-shadow: inset 0 0 0 1px var(--rule-soft);
  transition: background-color .3s ease;
}
.criteria-progress > span.is-done { background: var(--green); box-shadow: none; }
.apply-start .criteria-progress { margin: 1.25rem auto .5rem; }

.criteria-next { margin-top: 1.25rem; min-height: 2.6rem; font-size: .75rem; }
.criteria-item.is-read .criteria-next { opacity: .75; }

.apply-hint {
  margin-top: 1rem;
  font-style: italic;
  color: var(--barn);
}

.button[aria-disabled="true"]::before { content: '\f023'; font-family: 'Font Awesome 5 Free'; font-weight: 900; margin-right: .6em; }
.button[aria-disabled="true"]:hover { background: var(--green); color: var(--cream); transform: none; }

/* ---------- Apply ---------- */
.apply-start { max-width: 38rem; margin: 0 auto; text-align: center; }
.apply-start p + p { margin-top: 0.85rem; }
.apply-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 1.75rem; }
.apply-message { font-family: var(--font-script); font-size: 2.6rem; line-height: 1.1; color: var(--barn); }
.form-note { margin-bottom: 1rem; text-align: center; font-style: italic; color: var(--muted); }
#applyForm:focus { outline: none; }

/* ---------- Key dates ---------- */
.dates {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--card);
}
.dates > li {
  list-style: none;
  padding: 1.4rem 1rem;
  text-align: center;
  border-left: 1px solid var(--rule-soft);
}
.dates > li:first-child { border-left: 0; }
.dates .date {
  display: block;
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 800;
  font-size: 1.35rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--green);
  margin-top: .25rem;
}
.dates p { font-size: 0.95rem; color: var(--muted); margin-top: .25rem; }
.dates .is-now { background: var(--green); color: var(--cream); }
.dates .is-now .date, .dates .is-now .eyebrow, .dates .is-now p { color: var(--cream); }

/* ---------- Performer hub (confirmation season) ---------- */
.hub {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
  gap: 1.25rem;
}
.hub-card { display: flex; flex-direction: column; align-items: flex-start; }
.hub-card h3 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); text-transform: uppercase; margin: .4rem 0 .75rem; }
.hub-card p { color: inherit; opacity: .9; }
.hub-card ul { margin: 1rem 0 0; padding-left: 1.2em; }
.hub-card li { list-style: disc; padding: .15em 0; font-size: 1rem; }
.hub-card li::marker { color: var(--barn); }
.hub-card .button { margin-top: auto; }
.hub-card .hub-actions { margin-top: auto; padding-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.panel-green .button { color: var(--cream); border-color: var(--cream); }
.panel-green .button:hover { background: var(--cream); color: var(--green); }
.panel-green .button-primary { background: var(--cream); color: var(--green); box-shadow: inset 0 0 0 3px var(--cream), inset 0 0 0 4px var(--green); }
.panel-green .button-primary:hover { background: var(--barn); border-color: var(--barn); color: var(--cream); box-shadow: inset 0 0 0 3px var(--barn), inset 0 0 0 4px var(--cream); }
.panel-green li::marker { color: var(--cream); }
.panel-green .step-icon { border-color: var(--cream); color: var(--cream); box-shadow: inset 0 0 0 4px var(--green), inset 0 0 0 5px var(--cream); }

/* ---------- Schedule of events ---------- */
.soe-day {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.5rem;
  padding-bottom: 1.25rem;
  margin-bottom: .5rem;
  border-bottom: 2px solid var(--green);
  box-shadow: 0 4px 0 -3px var(--green);
}
.soe-day h3 { text-transform: uppercase; font-size: clamp(1.25rem, 1.1rem + .8vw, 1.75rem); }
.soe-nav { display: flex; gap: .5rem; }
.soe-nav .button { min-height: 2.5rem; padding: .5em 1em; font-size: .72rem; }

.soe { margin: 0; padding: 0; }
.soe > li {
  list-style: none;
  display: grid;
  grid-template-columns: 7.5rem 1fr auto;
  align-items: baseline;
  gap: .25rem 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px dashed var(--rule);
}
.soe > li:last-child { border-bottom: 0; }
.soe-time {
  font-family: var(--font-display);
  font-stretch: 112%;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: .04em;
  color: var(--barn);
  font-variant-numeric: tabular-nums;
}
.soe-name { font-family: var(--font-body); font-size: 1.2rem; font-weight: 600; color: var(--green); }
.soe-type {
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--rule);
  border-radius: 999px;
  padding: .3em .8em;
  white-space: nowrap;
}
.soe-link { display: inline-block; margin-left: .5rem; font-family: var(--font-display); font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--barn); text-decoration: underline; text-underline-offset: .2em; }
.soe > li.is-contest .soe-type { background: var(--barn); border-color: var(--barn); color: var(--cream); }
.soe > li.is-past { opacity: .5; }
.soe > li.is-next .soe-time::after { content: 'Up next'; display: block; font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--green); }
.soe-empty { text-align: center; padding: 2rem 0 1rem; }
.soe-empty .apply-message { margin-bottom: .5rem; }

/* ---------- Contact ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(0, 2fr);
  gap: 1.25rem;
  align-items: start;
}
.contact-info { display: grid; gap: 1.25rem; }
.contact-info .panel { padding: 1.75rem; }
.contact-info h3 { font-size: .95rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .85rem; }
.contact-line { display: flex; align-items: baseline; gap: .8rem; font-size: 1rem; }
.contact-line + .contact-line { margin-top: .6rem; }
.contact-line .fas { flex: none; width: 1.1em; text-align: center; color: var(--barn); }
.contact-line a { display: inline; padding: 0; }
.contact-form { min-height: 24rem; }

/* ---------- Generic pages ---------- */
.main, .main-account {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  padding: calc(var(--nav-h) + 2.5rem) 1rem 3rem;
}
.main-account { min-height: 100vh; min-height: 100svh; }
.body-content { margin-top: 1rem; }

.center-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.page { width: 100%; max-width: 52rem; margin: 0 auto; padding: 0 1rem; }
.page--wide { max-width: 66rem; }
.page-header { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 2rem; }
.page-logo { width: 7.5rem; height: auto; margin-bottom: .75rem; }
.page-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: 2rem; }

.prose { text-align: left; overflow-wrap: anywhere; }
.prose.panel { max-width: 50rem; margin: 1.25rem auto 0; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: 1.4rem; margin-top: 1.75em; }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose ul { padding-left: 1.3em; margin-bottom: 0; }
.prose li { list-style: disc; padding: .2em 0; }
.prose li::marker { color: var(--barn); }

.paragraph li { list-style: circle; padding: .25em; }
.paragraph h4 { margin-top: 0; }

.welcome-container { width: 90%; max-width: 50rem; margin: 0 auto; line-height: 0; }
.welcome-image { width: 100%; height: auto; display: block; }
.season-text { margin-top: .75rem; font-size: clamp(1.1rem, 1rem + .5vw, 1.35rem); text-align: center; }
.season-subtext { margin-top: .25rem; font-size: 1rem; text-align: center; color: var(--muted); }

/* Old layout helpers */
.with-sidebar, .small-sidebar, .side-by-side { display: flex; flex-wrap: wrap; gap: var(--s1); margin: 3em 6em; }
.with-sidebar > :first-child { flex-basis: 25em; flex-grow: 1; }
.small-sidebar > :first-child { flex-basis: 18rem; flex-grow: 1; }
.side-by-side > :first-child { flex-grow: 1; }
.with-sidebar > :last-child, .side-by-side > :last-child { flex-basis: 0; flex-grow: 999; min-inline-size: 50%; }
.small-sidebar > :last-child { flex-basis: 0; flex-grow: 999; min-inline-size: 62%; }

#small-menu, #mobile-toggle { display: none; }
.logo { width: 80px; padding: .3em; cursor: pointer; }

/* ---------- Forms ---------- */
input[type=text], input[type=email], input[type=tel], input[type=password],
input[type=date], input[type=number], select, textarea {
  width: 100%;
  max-width: 400px;
  margin: 10px 0;
  padding: 13px 16px;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
input:focus, select:focus, textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px var(--green-tint); }
input::placeholder, textarea::placeholder { color: var(--muted); }
label { font-family: var(--font-display); font-stretch: 112%; font-weight: 600; font-size: .9rem; letter-spacing: .04em; }

/* ---------- Tables ---------- */
table {
  width: 100%;
  margin: 2em 0;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
}
th, td { padding: 1rem 1.25rem; text-align: left; font-size: 1rem; color: var(--ink); border-bottom: 1px solid var(--rule-soft); }
th { background: var(--green); color: var(--cream); font-family: var(--font-display); font-stretch: 118%; font-weight: 700; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; }
tr:last-child td { border-bottom: 0; }
tr:hover td { background: var(--green-tint); }
.table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.waivers table { max-width: 100%; }
.waivers td, .waivers th { padding-left: 1.5rem; padding-right: 1.5rem; }

/* ---------- Modals ---------- */
.modal-overlay, .info-modal-overlay {
  visibility: hidden;
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 1000;
  padding: 1rem;
  align-items: center;
  justify-content: center;
  background: rgba(15, 44, 33, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, visibility 0s linear .25s;
}
.modal-overlay.active, .info-modal-overlay.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition: opacity .25s ease, visibility 0s linear 0s;
}

.modal-box {
  position: relative;
  width: 90%;
  max-width: 500px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 2.5em 2em;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  outline: 1px solid var(--rule-soft);
  outline-offset: -7px;
  box-shadow: 0 20px 50px rgba(15, 44, 33, .35);
  transform: translateY(10px);
  transition: transform .25s ease;
}
.modal-overlay.active .modal-box { transform: none; }
.modal-close, .info-modal-close {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid transparent;
  border-radius: var(--radius);
  color: var(--green);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}
.modal-close { position: absolute; top: 10px; right: 10px; }
.modal-close:hover, .info-modal-close:hover { background: var(--green); color: var(--cream); }
.modal-title { font-size: 1.75rem; margin: 0 0 .8em; text-align: center; }
.modal-content p { margin: 1em 0; }

.info-modal-box {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 52rem;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: 0 20px 50px rgba(15, 44, 33, .35);
  transform: translateY(12px);
  transition: transform .25s ease;
}
.info-modal-overlay.active .info-modal-box { transform: none; }
.info-modal-header {
  flex: none;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  gap: .5rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--rule);
}
.info-modal-title { grid-column: 2; font-size: clamp(1.1rem, 1rem + .8vw, 1.5rem); text-transform: uppercase; text-align: center; }
.info-modal-close { grid-column: 3; }
.info-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1.5rem clamp(1.25rem, 4vw, 2.5rem) 2rem;
}
.info-modal-footer {
  flex: none;
  display: flex;
  justify-content: center;
  padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--rule);
}
.modal-intro { text-align: center; }

/* ---------- Footer ---------- */
footer {
  width: 100%;
  margin-top: auto;
  padding: 3rem 1rem 2rem;
  text-align: center;
  color: var(--cream);
  background: var(--green-deep);
  border-top: 6px solid var(--barn);
  box-shadow: inset 0 8px 0 -4px var(--cream);
}
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  margin-bottom: 2rem;
}
.footer-brand .barn-mark { width: 2rem; height: 2rem; color: var(--cream); margin-bottom: .25rem; }
.footer-brand .script { font-size: 2rem; line-height: 1; color: var(--cream); }
.footer-brand .label { color: var(--cream); opacity: .75; }
.footer-sponsors {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1.5rem 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--rule-cream);
  max-width: 52rem;
  margin: 0 auto;
}
.footer-sponsor { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.footer-logo-festival { width: 180px; height: auto; }
.footer-logo-tca { width: 100px; height: auto; }
footer .copyright { margin: 0; padding: 0; }
footer li { display: inline-block; padding: 0; }
footer li a, footer a {
  display: inline-block;
  padding: .5rem;
  color: var(--cream);
  font-family: var(--font-display);
  font-stretch: 118%;
  font-weight: 600;
  font-size: .68rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .8;
}
footer li a:hover, footer a:hover { color: var(--cream); opacity: 1; }
footer p, footer h1, footer h2, footer h3 { color: var(--cream); }

/* ---------- Video ---------- */
.video-wrapper { position: relative; }
.video-wrapper > video { width: 100%; vertical-align: middle; }
.video-overlay-play-button { position: absolute; inset: 0; width: 100%; height: 100%; padding: 10px calc(50% - 50px); cursor: pointer; background-image: linear-gradient(transparent, rgba(0,0,0,.6)); }
.video-overlay-play-button.is-hidden { display: none; }

.close, .back { position: fixed; top: 10px; z-index: 5; transition: transform .2s ease; }
.close { right: 28px; }
.back { left: 28px; }
.close:hover { transform: rotate(90deg); }

/* ---------- Legacy helpers ---------- */
body.is-legal { background: var(--paper); }
.is-legal { color: var(--ink); fill: var(--ink); }
.account-menu { margin: .75em auto; max-width: fit-content; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--card); }
.account-menu li { display: inline; }
.account-menu a { display: inline-block; padding: .5em .75em; font-family: var(--font-display); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .85rem; }
.indexnav { margin: 0; padding: 0; text-align: center; }
.indexnav li { display: inline; }
.indexnav a { display: inline-block; padding: 10px; font-size: 1.25rem; }

/* Old SVG wordmarks were hard-coded white; let them follow the text colour. */
main svg g[style*="fill:#ffffff"], .main svg g[style*="fill:#ffffff"], .center-content svg g[style*="fill:#ffffff"],
.main-account svg g[style*="fill:#ffffff"] {
  fill: var(--green) !important;
  stroke: var(--green) !important;
}

/* ---------- Cognito Forms ----------
   Seamless embeds ship each form's own theme as `.cog-<id> { --vars }`. Override those
   same variables here (`:root .cog-cognito` outranks `.cog-<id>`) so every form, and the
   dropdowns Cognito appends to <body>, picks up the site theme. Iframe embeds can't be
   styled from here, so forms should always use the seamless embed. */
:root .cog-cognito {
  --background-hsl: 40, 47%, 96%;
  --border-radius: var(--radius);
  --border-width: 1px;
  --color: var(--ink);
  --font-family: var(--font-body);
  --font-size: 16px;
  --font-weight: normal;
  --line-height: 1.5;
  --highlight: var(--green);
  --highlight-reverse: var(--cream);
  --primary: var(--green);
  --primary-reverse: var(--cream);
  --negative: #f6dcd8;
  --negative-reverse: var(--barn);
  --input-highlight: var(--green);

  --a__color: var(--barn);
  --a__font-family: var(--font-body);

  --form__background-color: transparent;
  --page__background-color: transparent;
  --page__background-image: none;

  --header__background-color: transparent;
  --header__color: var(--green);
  --header__font-family: var(--font-display);
  --header__font-weight: 800;
  --heading__color: var(--green);
  --heading__font-family: var(--font-display);
  --heading__font-weight: 700;

  --label__color: var(--green);
  --label__font-family: var(--font-display);
  --label__font-weight: 600;

  --input__background-color: #fffdf8;
  --input__border-color: var(--rule);
  --input__border-radius: var(--radius);
  --input__color: var(--ink);
  --input__box-shadow: none;
  --input-focus__box-shadow: 0 0 0 3px var(--green-tint);
  --placeholder__color: var(--muted);
  --checkable__border-color: var(--rule);
  --checkbox__border-radius: 3px;
  --card__border-color: var(--rule-soft);

  --button-primary__background-color: var(--green);
  --button-primary__border-color: var(--green);
  --button-primary__border-radius: var(--radius);
  --button-primary__color: var(--cream);
  --button-primary__font-family: var(--font-display);
  --button-primary__font-size: 0.95em;
  --button-primary__font-weight: 700;
  --button-secondary__background-color: transparent;
  --button-secondary__border-color: var(--green);
  --button-secondary__border-radius: var(--radius);
  --button-secondary__color: var(--green);
  --button-secondary__font-family: var(--font-display);
  --button-secondary__font-size: 0.95em;
  --button-secondary__font-weight: 700;
}
:root .cog-cognito .cog-button--primary,
:root .cog-cognito .cog-button--secondary {
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  padding: .85em 2.25em !important;
  transition: background-color .2s, border-color .2s, color .2s !important;
}
:root .cog-cognito .cog-button--primary:hover {
  background: var(--barn) !important;
  border-color: var(--barn) !important;
}
:root .cog-cognito .cog-button--secondary:hover {
  background: var(--green) !important;
  color: var(--cream) !important;
}
/* Cognito darkens error rows with black when it thinks the page is dark. */
:root .cog-cognito.cog-form--dark-background .cog-col.is-error::after { opacity: 0 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .hero::before, .hero::after { opacity: .55; }
}

@media (max-width: 950px) {
  .menu { display: none; }
  .menu-mobile { display: flex; }
  .with-sidebar, .small-sidebar, .side-by-side { margin: 1em 1.25em; }
  .body-content { margin: 1rem .5em 0; }
  .waivers td, .waivers th { font-size: .8em; padding-left: 8px; padding-right: 8px; }
  #info, #dates, #t-hide { display: none; }
  #small-menu { display: block; }
}

@media (max-width: 800px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .hero::before, .hero::after { display: none; }
  .hero-tractor { left: 1rem; width: 5.5rem; }
}

@media (max-width: 700px) {
  :root { --nav-h: 4.25rem; }
  .criteria-body { padding-left: 0; }
  .dates > li { border-left: 0; border-top: 1px solid var(--rule-soft); }
  .dates > li:first-child { border-top: 0; }
  .soe > li { grid-template-columns: 1fr auto; }
  .soe-time { grid-column: 1 / -1; }
  .soe-type { grid-column: 2; grid-row: 2; }
}

@media (max-width: 680px) {
  .info-modal-overlay { padding: 0; }
  .info-modal-box { max-width: none; height: 100vh; height: 100dvh; max-height: none; border: 0; border-radius: 0; }
}

@media (max-width: 480px) {
  .hero-actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 20rem; }
  .menu-brand-name span { font-size: .82rem; letter-spacing: .03em; }
  .menu-brand .barn-mark, .menu-mobile-brand .barn-mark { width: 1.6rem; height: 1.6rem; }
  #m-hide { display: none; }
  #mobile-toggle { display: flex; }
  .indexnav li { display: block; }
  .indexnav a { display: block; padding: 16px; }
  footer li { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  /* Skip the scene's entrances; keep the bird perched and the tractor parked. */
  .tractor-puffs { display: none; }
}

/* ---------- Performer waiver (/waiver) ---------- */
.waiver-page { padding-bottom: 1rem; }
.waiver-lead { margin-top: .75rem; max-width: 36rem; color: var(--muted); }
.waiver-test {
  margin: 0 auto 1.5rem; max-width: 40rem; padding: .7rem 1rem;
  border: 1px dashed var(--barn); border-radius: var(--radius);
  background: rgba(140, 43, 34, .05); color: var(--barn-deep); font-size: .95rem; text-align: center;
}
.waiver-form { max-width: 44rem; margin: 0 auto; padding: 1.25rem; }
.waiver-wrong { margin-top: 1rem; text-align: center; font-size: .95rem; color: var(--muted); }
.waiver-multi { color: var(--ink, inherit); }
.waiver-done { max-width: 44rem; margin: 1.25rem auto 0; padding: 1.5rem 1.25rem; text-align: center; }
.waiver-done h3 { margin: .25rem 0 .5rem; }
.waiver-done p:not(.eyebrow) { margin: 0 auto 1.1rem; max-width: 30rem; color: var(--muted); }
.waiver-search { max-width: 34rem; margin: 0 auto; padding: 1.25rem; text-align: left; }
.waiver-search .label { display: block; margin-bottom: .4rem; }
.waiver-search-row { display: flex; gap: .6rem; }
.waiver-search-row input { flex: 1; min-width: 0; }
.waiver-results { max-width: 34rem; margin: 1.25rem auto 0; }
.waiver-results ul { margin: 0; padding: 0; list-style: none; }
.waiver-results li + li { border-top: 1px solid var(--rule-soft); }
.waiver-results a { display: flex; justify-content: space-between; align-items: center; padding: .85rem .25rem; font-weight: 600; text-decoration: none; color: var(--green); }
.waiver-results a:hover { color: var(--barn); }
.waiver-page .muted { color: var(--muted); }
.waiver-page .form-error {
  margin: 0 auto 1.25rem; max-width: 34rem; padding: .75rem 1rem; border-radius: var(--radius);
  background: rgba(140, 43, 34, .08); border: 1px solid rgba(140, 43, 34, .35); color: var(--barn-deep);
}
@media (max-width: 480px) { .waiver-search-row { flex-direction: column; } }

/* Scroll reveal (scripts-v0.0.13.js adds .reveal, then .is-visible when on screen). */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .6s cubic-bezier(.2, .7, .2, 1) var(--reveal-delay, 0ms),
              transform .6s cubic-bezier(.2, .7, .2, 1) var(--reveal-delay, 0ms);
}
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}
