/* Lighter design review: keep the event structure, make the content easy to scan. */
:root {
  --paper: #fffaf5;
  --sand: #fff1e7;
  --card: #ffffff;
  --ink: #302534;
  --ink-2: #625965;
  --line: #e7dcd4;
  --accent: #ad493e;
  --accent-press: #93392f;
  --accent-soft: #ffede3;
  --gold: #d77737;
  --band: #fff1e7;
  --band-ink: #302534;
  --display: "Figtree", "Segoe UI", system-ui, sans-serif;
  --shadow: 0 7px 22px rgba(67, 39, 47, .07);
  --shadow-lift: 0 13px 31px rgba(67, 39, 47, .11);
  --preview-cream: #fffaf5;
  --preview-gold: #ba573d;
}
body { background: #fffaf5; color: #302534; }
:focus-visible, .pill input:focus-visible + span { outline-color: #c75d3c; }
h1, h2, h3 { font-family: var(--display); text-transform: none; letter-spacing: -.035em; line-height: 1.1; }
h2 { font-size: clamp(35px, 4.8vw, 58px); font-weight: 800; }
h3 { font-size: clamp(23px, 2.5vw, 29px); font-weight: 800; }
.section-head h2 { max-width: 19ch; }
.eyebrow { color: #aa483d; font-size: 12px; letter-spacing: .09em; font-weight: 800; }
.eyebrow::before { background: #e8915b; }
.lede { color: #625965; }
.btn { border-radius: 10px; font-weight: 800; }
.btn-primary, .draw .btn-primary { background: #34283b; color: #fff; box-shadow: 0 7px 16px rgba(52,40,59,.16); }
.btn-primary:hover, .draw .btn-primary:hover { background: #4e3853; color: #fff; }

.design-preview-note { background: #fff4e6; color: #493a43; border-color: #eadbc9; }
.design-preview-note a { color: #9f3e37; }
.fair-masthead { background: #fffaf5; border-bottom: 1px solid #eee3da; padding: 8px max(20px, calc((100vw - 1180px)/2)); }
.fair-masthead img { width: 122px; padding: 0; background: none; border-radius: 0; }
.strip { background: #e47554; color: #fff; box-shadow: none; }
.strip-stats b, .strip a { color: #fff; }
.strip-link { border-color: rgba(255,255,255,.75); }

.hero {
  color: #302534;
  background:
    radial-gradient(circle at 86% 8%, rgba(245,160,112,.17), transparent 31%),
    linear-gradient(120deg, #fffaf5 0%, #fff6ee 60%, #fff0e4 100%);
}
.hero::before { opacity: .12; background-image: radial-gradient(#c87763 .55px, transparent .55px); background-size: 15px 15px; }
.hero-layout { padding-block: clamp(29px, 3.1vw, 47px) clamp(42px, 5vw, 68px); }
.hero-kicker { color: #994037; border-color: #e8c2ad; background: #fff; box-shadow: 0 3px 12px rgba(78,40,45,.06); }
.kicker-mark { color: #fff; background: #c75b43; }
.hero h1 { color: #302534; font-family: var(--display); font-size: clamp(52px, 5.3vw, 74px); font-weight: 800; line-height: 1.015; letter-spacing: -.05em; text-transform: none; }
.hero h1 em { color: #bd543e; background: none; -webkit-text-fill-color: currentColor; }
.hero .hero-sub { max-width: 46ch; margin: 21px 0 22px; color: #514752; font-size: clamp(17px, 1.65vw, 20px); font-weight: 500; line-height: 1.5; }
.hero-actions .btn-primary { min-height: 56px; border-radius: 10px; background: #34283b; color: #fff; box-shadow: 0 8px 19px rgba(52,40,59,.17); }
.hero-actions .btn-primary:hover { background: #4e3853; color: #fff; }
.hero-text-link { color: #954336; font-weight: 800; }
.hero-benefits { margin-top: 19px; }
.hero-benefits span { color: #513c49; background: #fff; border-color: #ecd8c9; font-weight: 750; box-shadow: 0 2px 8px rgba(66,37,44,.04); }
.hero-benefits span::before { color: #c75b43; }
.hero-when { background: #fff; color: #514752; border-color: #e8d7ca; box-shadow: 0 4px 17px rgba(72,42,46,.06); }
.hero-when strong { color: #a7493a; }
.hero .hero-qualifier, .hero .hero-qualifier a { color: #655a63; }
.hero-media { height: clamp(440px, 39vw, 535px); }
.hero-photo { border: 3px solid #fff; box-shadow: 0 15px 35px rgba(75,38,47,.16); }
.hero-photo-label { background: #fff; color: #954336; box-shadow: 0 3px 12px rgba(30,10,20,.13); }
.hero-photo figcaption { font-family: var(--body); font-weight: 800; letter-spacing: 0; }

#register { background: #fff0e5; color: #302534; }
#register::before { height: 4px; background: #e78c5a; }
#register .eyebrow, #register > .wrap > .reveal .eyebrow { color: #ad493e; }
#register #reg-title { max-width: 13ch; color: #302534; font-family: var(--display); font-size: clamp(48px, 5.4vw, 72px); line-height: 1.05; letter-spacing: -.045em; }
#register .lede, #register > .wrap > .reveal .lede { color: #5d5260; font-size: 18px; }
.register-perks p { border-top-color: #ddcabb; }
.register-perks span { color: #b8523e; }
.register-perks strong { color: #302534; }
.register-perks small { color: #625965; }
#register .pass, #register-2 .pass { background: #fff; border: 1px solid #ead9ca; border-top: 5px solid #df8b58; border-radius: 16px; box-shadow: 0 13px 35px rgba(70,42,47,.10); }
#register .pass-head h3, #register-2 .pass-head h3 { color: #302534; }
#register .pass-head, #register-2 .pass-head { border-color: #eadfd6; }
.pass-stamp { color: #96463a; background: #fff4eb; border-color: #ecd6c4; }
.input, .phone, .pill span { background: #fff; border-color: #d8cbc4; color: #302534; }
.input:focus, .phone:focus-within { border-color: #bb694b; box-shadow: 0 0 0 3px rgba(187,105,75,.13); }
.pill input:checked + span { background: #34283b; border-color: #34283b; color: #fff; }
.submit { background: #34283b; color: #fff; border-radius: 9px; box-shadow: 0 6px 15px rgba(52,40,59,.15); }
.submit:hover { background: #4e3853; color: #fff; }

#deals { background: #fffaf5; }
#deals .deal { background: #fff; border-color: #e9dbd0; box-shadow: 0 7px 22px rgba(67,39,47,.06); }
#deals .deal .corner { background: #b95543; color: #fff; }
#deals .deal .offer { color: #9e413a; font-family: var(--display); font-size: clamp(22px, 2.3vw, 27px); font-weight: 800; line-height: 1.15; letter-spacing: -.02em; }
#deals .deal-image, #deals .deal-image img { background: #fff8f1; }
#lucky-draw { background: #f9e9dc; color: #302534; }
#lucky-draw .eyebrow, #lucky-draw .section-head .eyebrow, #lucky-draw #draw-title, #lucky-draw #draw-title .gold, #lucky-draw .mini-faq h3 { color: #302534; }
#lucky-draw .section-head .lede, #lucky-draw .mini-faq p, #lucky-draw .draw-foot .tnc { color: #5e5360; }
#lucky-draw .prize, #lucky-draw .steps li { color: #302534; background: #fff; border-color: #e7d5c8; }
#lucky-draw .prize-name, #lucky-draw .prize-rank, #lucky-draw .steps b { color: #9f463a; }
#lucky-draw .draw-foot .btn-primary { background: #34283b; color: #fff; }
#lucky-draw .draw-foot .btn-primary:hover { background: #4e3853; color: #fff; }
#lucky-draw .prize-details summary { border-color: #d4bba8; color: #302534; }
#spin-the-wheel, #spin-the-wheel .wheel-panel { background: #fffaf5 !important; }
#stamp-rewards { background: #f4f1ec !important; }
#goodie-bag { background: #fffaf5; color: #302534; }
#goodie-bag .eyebrow, #goodie-bag h2 { color: #302534; }
#goodie-bag .bag-note { background: #fff4ea; color: #514752; border-color: #e8d6c8; }
#vendors { background: #f3f4f1; }
#vendors .vendor { background: #fff; border-color: #e1e4df; box-shadow: 0 5px 19px rgba(49,53,49,.055); }
#vendors .tag { background: #fff0e5; color: #9e4639; }
#vendors .vendor.more .plus { background: #34283b; color: #fff; }
#why, #faq { background: #fffaf5; }
#why .why, #why .why:nth-child(even) { background: #fff; border-color: #e8dbd2; }
#why .why .icon { color: #ad493e; }
#getting-there { background: #fff0e5; }
#getting-there .map { border-color: #e6d1c2; }
#faq .faq-list details { border-color: #e6dcd4; }
#register-2 { background: #f5e8df; color: #302534; }
#register-2 .eyebrow, #register-2 > .wrap > .reveal .eyebrow, #register-2 #final-title, #register-2 .lede, #register-2 > .wrap > .reveal .lede { color: #302534; }
#register-2 .cd-unit { background: #fff; border-color: #e9d9ca; }
#register-2 .cd-num, #register-2 .cd-lbl { color: #302534; }
.fair-video { background: #f4f1ec; }
footer { background: #f7f2ed; color: #5b515b; border-top: 1px solid #e8ded6; }
footer a { color: #934239; }
.mbar { background: #fff; color: #302534; border-top-color: #e9d9cb; box-shadow: 0 -5px 20px rgba(64,35,45,.1); }
.mbar p small { color: #625965; }
.mbar .btn-primary { background: #34283b; color: #fff; }

@media (max-width: 930px) {
  .hero h1 { font-size: clamp(52px, 8vw, 72px); }
  #register #reg-title { max-width: 16ch; }
}
@media (max-width: 700px) {
  .fair-masthead { padding: 7px 16px; }
  .fair-masthead img { width: 115px; }
  .hero-layout { padding-block: 28px 43px; }
  .hero-kicker { font-size: 9px; letter-spacing: .04em; }
  .hero h1 { font-size: clamp(43px, 10vw, 56px); line-height: 1.03; }
  .hero .hero-sub { margin: 18px 0 19px; font-size: 16px; line-height: 1.48; }
  .hero-actions .btn-primary { min-height: 55px; }
  .hero-media { height: 330px; }
  #register #reg-title { font-size: clamp(43px, 10vw, 58px); }
  #register .lede { font-size: 16px; }
  h2 { font-size: clamp(35px, 9vw, 50px); }
  #deals .deal .offer { font-size: 23px; }
}

/* Warm carnival palette: burnt umber, ember orange, and amber gold. */
:root {
  --fest-ink: #321a14;
  --fest-orange: #a94420;
  --fest-orange-dark: #8f351b;
  --fest-gold: #f3bd73;
  --fest-paper: #fffaf4;
  --fest-peach: #f5eadb;
  --paper: #fffaf4;
  --sand: #f5eadb;
  --ink-2: #6b5348;
  --line: #e2d3c3;
  --ink: var(--fest-ink);
  --accent: var(--fest-orange);
  --accent-press: #8f351b;
  --accent-soft: #f5eadb;
  --gold: var(--fest-gold);
  --band: #f5eadb;
  --band-ink: var(--fest-ink);
}
body { background: var(--fest-paper); color: var(--fest-ink); }
::selection { background: var(--fest-ink); color: #fff; }
:focus-visible, .pill input:focus-visible + span { outline: 3px solid #df4c1d; outline-offset: 3px; }
.eyebrow, .hero-text-link { color: var(--fest-orange-dark); }
.lede { color: #6b5348; }
.eyebrow::before { background: var(--fest-orange); }
.btn-primary, .draw .btn-primary, .submit, .mbar .btn-primary,
#lucky-draw .draw-foot .btn-primary {
  background: var(--fest-ink); color: #fff;
  box-shadow: 0 8px 20px rgba(50, 26, 20, .16);
}
.btn-primary:hover, .draw .btn-primary:hover, .submit:hover, .mbar .btn-primary:hover,
#lucky-draw .draw-foot .btn-primary:hover { background: #4e2a20; color: #fff; }

.design-preview-note { background: #fff5e5; color: var(--fest-ink); border-color: #efd6ac; }
.design-preview-note a { color: var(--fest-orange-dark); }
.fair-masthead { background: var(--fest-paper); border-color: #eedfc7; }
.strip { background: var(--fest-orange); color: #fff; border-bottom: 3px solid var(--fest-gold); }
.strip-stats b { color: #fff; }
.strip a { color: #fff; }
.strip-link { border-color: rgba(255,255,255,.75); background: rgba(50,26,20,.18); }

.hero {
  color: #fff;
  background:
    radial-gradient(circle at 87% 20%, rgba(197, 84, 38, .2), transparent 39%),
    linear-gradient(115deg, #2b1510 0%, #52271a 100%);
}
.hero::before { opacity: 0; }
.hero-kicker {
  color: #fff; background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,198,107,.55); box-shadow: none;
}
.kicker-mark { color: var(--fest-ink); background: var(--fest-gold); }
.hero h1 { color: #fff; font-size: clamp(52px, 4.5vw, 60px); letter-spacing: -.04em; }
.hero h1 em {
  color: var(--fest-gold); background: none; padding-inline: 0;
  -webkit-text-fill-color: currentColor;
}
.hero .hero-sub { color: #f1e5dc; font-weight: 550; }
.hero-actions .btn-primary {
  background: var(--fest-gold); color: var(--fest-ink); min-height: 58px;
  box-shadow: 0 9px 22px rgba(31, 11, 6, .24);
}
.hero-actions .btn-primary:hover { background: #ffd49c; color: var(--fest-ink); }
.hero-text-link { color: var(--fest-gold); text-decoration-color: var(--fest-gold); }
.hero-benefits span {
  background: rgba(255,255,255,.09); color: #fff; border: 1px solid rgba(255,255,255,.25);
  box-shadow: none;
}
.hero-benefits span::before { color: var(--fest-gold); }
.hero-when {
  background: rgba(255,255,255,.08); color: #fff;
  border: 1px solid rgba(255,255,255,.25); box-shadow: none;
}
.hero-when strong { color: var(--fest-gold); }
.hero .hero-qualifier, .hero .hero-qualifier a { color: #e1d1c4; }
.hero-photo { border: 4px solid #fff; box-shadow: 0 16px 32px rgba(37, 16, 10, .23); }
.hero-photo-label { background: var(--fest-gold); color: var(--fest-ink); }
.hero-date-sticker {
  position: absolute; z-index: 3; top: -18px; right: -16px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  width: 118px; height: 118px; border: 5px solid #fff9ef; border-radius: 50%;
  background: var(--fest-gold); color: var(--fest-ink);
  box-shadow: 0 10px 24px rgba(37, 16, 10, .24); transform: rotate(9deg);
}
.hero-date-sticker strong { font: 900 31px/.9 var(--display); letter-spacing: -.07em; white-space: nowrap; }
.hero-date-sticker span { font: 900 11px/1.05 var(--body); letter-spacing: .02em; white-space: nowrap; }
.carnival-runway { background: var(--fest-gold); border-block: 0; color: var(--fest-ink); }
.carnival-runway-inner { display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; min-height: 68px; }
.carnival-runway span { text-align: center; font-size: 13px; font-weight: 900; letter-spacing: .065em; text-transform: uppercase; }
.carnival-runway span + span { border-left: 1px solid rgba(50, 26, 20, .25); }
.carnival-runway span::before { content: "✦"; color: var(--fest-orange-dark); margin-right: 10px; }

#register { background: var(--fest-peach); color: var(--fest-ink); }
#register::before { height: 7px; background: var(--fest-orange); }
#register .eyebrow, #register > .wrap > .reveal .eyebrow { color: var(--fest-orange-dark); }
#register #reg-title { color: var(--fest-ink); }
#register .lede, #register > .wrap > .reveal .lede { color: #5b473f; }
.register-perks p { border-top-color: #d7a869; }
.register-perks span { color: var(--fest-orange-dark); }
.register-perks strong { color: var(--fest-ink); }
.register-perks small { color: #685347; }
#register .pass, #register-2 .pass {
  background: #fff; border: 1px solid #e2b47d;
  border-radius: 16px; box-shadow: 0 16px 34px rgba(74, 32, 19, .11);
}
#register .pass-head, #register-2 .pass-head { background: #fff0d7; border-color: #e2b47d; }
#register .pass-head h3, #register-2 .pass-head h3 { color: var(--fest-ink); }
.pass-stamp { color: var(--fest-ink); background: var(--fest-gold); border-color: #dd9a39; }
.input, .phone, .pill span { background: #fff; border-color: #cbb9a9; color: var(--fest-ink); }
.input:focus, .phone:focus-within { border-color: var(--fest-orange-dark); box-shadow: 0 0 0 3px rgba(243, 104, 44, .18); }
.pill input:checked + span { background: var(--fest-ink); border-color: var(--fest-ink); color: #fff; }

#deals { background: var(--fest-paper); }
#deals .deal { background: #fff; border-color: #e7d5c2; box-shadow: 0 8px 21px rgba(74, 32, 19, .07); }
#deals .deal .corner { background: var(--fest-gold); color: var(--fest-ink); }
#deals .deal .offer { color: var(--fest-orange-dark); }
#deals .deal-image, #deals .deal-image img { background: #fff7eb; }
#lucky-draw { background: #eec77e; color: var(--fest-ink); }
#lucky-draw .eyebrow, #lucky-draw .section-head .eyebrow,
#lucky-draw #draw-title, #lucky-draw #draw-title .gold, #lucky-draw .mini-faq h3 { color: var(--fest-ink); }
#lucky-draw .section-head .lede, #lucky-draw .mini-faq p, #lucky-draw .draw-foot .tnc { color: #4e3327; }
#lucky-draw .prize, #lucky-draw .steps li { color: var(--fest-ink); background: #fffaf1; border-color: #e6a55b; }
#lucky-draw .prize-name, #lucky-draw .prize-rank, #lucky-draw .steps b { color: var(--fest-orange-dark); }
#lucky-draw .prize-details summary { color: var(--fest-ink); border-color: #b57534; }
#spin-the-wheel, #spin-the-wheel .wheel-panel { background: #fff7ec !important; }
#stamp-rewards { background: #f7e8d1 !important; }
#goodie-bag { background: var(--fest-paper); color: var(--fest-ink); }
#goodie-bag .eyebrow, #goodie-bag h2 { color: var(--fest-ink); }
#goodie-bag .bag-note { background: #fff1d7; color: #4e3327; border-color: #e8bc81; }
#vendors { background: #f3e8d9; }
#vendors .vendor { background: #fff; border-color: #e6cdb0; box-shadow: 0 5px 18px rgba(71, 34, 22, .07); }
#vendors .tag { background: var(--fest-gold); color: var(--fest-ink); }
#vendors .vendor.more .plus { background: var(--fest-ink); color: #fff; }
#why, #faq { background: var(--fest-paper); }
#why .why, #why .why:nth-child(even) { background: #fff; border-color: #ead2b4; }
#why .why .icon { color: var(--fest-orange-dark); }
#getting-there { background: var(--fest-peach); }
#getting-there .map { border-color: #d9a773; }
#faq .faq-list details { border-color: #e6d2bd; }
#register-2 { background: var(--fest-ink); color: #fff; }
#register-2 .eyebrow, #register-2 > .wrap > .reveal .eyebrow,
#register-2 #final-title, #register-2 .lede,
#register-2 > .wrap > .reveal .lede { color: #fff; }
#register-2 .cd-unit { background: var(--fest-gold); border-color: var(--fest-gold); }
#register-2 .cd-num, #register-2 .cd-lbl { color: var(--fest-ink); }
.fair-video { background: #fff3df; }
footer { background: #28140f; color: #f6e8d5; border-top: 4px solid var(--fest-orange); }
footer a { color: var(--fest-gold); }
.mbar { background: var(--fest-paper); color: var(--fest-ink); border-top: 3px solid var(--fest-orange); }
.mbar p small { color: #685347; }
.mbar .btn-primary { background: var(--fest-orange); box-shadow: none; }

@media (max-width: 700px) {
  .hero h1 { font-size: clamp(43px, 10vw, 56px); }
  .hero-date-sticker { top: -12px; right: -7px; width: 82px; height: 82px; border-width: 3px; }
  .hero-date-sticker strong { font-size: 22px; }
  .hero-date-sticker span { font-size: 8px; }
  .carnival-runway-inner { grid-template-columns: repeat(2, 1fr); min-height: 78px; padding-block: 10px; }
  .carnival-runway span { padding: 5px 0; font-size: 10px; letter-spacing: .04em; }
  .carnival-runway span:nth-child(3) { border-left: 0; }
  .carnival-runway span::before { margin-right: 5px; }
}

/* The source page uses fixed burgundy heading and form-label colours. */
main h2, main h3, #register .pass, #register .pass label,
#register .pass legend, .deal-lightbox-close { color: var(--fest-ink); }
