
:root { --background:#fff7e9; --foreground:#173451; --cream:#fff7e9; --cream-deep:#f8ead3; --navy:#173451; --red:#ed111c; --red-dark:#ae2025; --orange:#f05a30; --gold:#f5a800; --white:#fff; --border:rgba(23,52,81,.16); --radius:1.25rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--navy); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button { font:inherit; }
.site-shell { overflow:hidden; }
.page-width { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }

.hero { position:relative; background:var(--cream); isolation:isolate; }
.hero::before { content:""; position:absolute; inset:auto 0 0; height:44%; background:linear-gradient(180deg,transparent,rgba(245,168,0,.08)); z-index:-2; }
.hero-leaves { position:absolute; z-index:-1; top:-20px; right:-80px; width:min(620px,48vw); pointer-events:none; }
.free-ribbon { position:absolute; top:38px; left:-55px; width:245px; padding:15px 0; transform:rotate(-42deg); background:var(--red); color:white; text-align:center; text-transform:uppercase; font-weight:900; letter-spacing:.08em; box-shadow:0 8px 24px rgba(144,17,27,.2); }
.hero-grid { min-height:680px; display:grid; grid-template-columns:1.08fr .92fr; gap:68px; align-items:center; padding-block:88px 76px; }
.year-label,.eyebrow { margin:0 0 14px; color:var(--red-dark); font-size:.79rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.hero h1,.section-heading h2,.health-copy h2,.visit-inner h2 { font-family:Georgia,"Times New Roman",serif; }
.hero h1 { margin:0; max-width:690px; color:var(--navy); font-size:clamp(4rem,7.2vw,7.1rem); line-height:.87; letter-spacing:-.065em; text-wrap:balance; text-shadow:3px 3px 0 white; }
.hero h1 span { display:block; color:var(--red); font-size:.75em; margin-top:.18em; }
.hero-intro { max-width:650px; margin:28px 0 30px; font-size:1.15rem; line-height:1.65; color:#456078; }
.event-facts { display:grid; gap:12px; }
.event-facts>div { display:flex; align-items:flex-start; gap:14px; }
.event-facts svg { flex:0 0 22px; margin-top:1px; color:var(--red); }
.event-facts span { display:grid; gap:3px; }
.event-facts strong { font-size:.97rem; }
.event-facts small { color:#5c7184; font-size:.87rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:9px; border-radius:999px; padding:0 22px; font-size:.86rem; font-weight:900; text-transform:uppercase; letter-spacing:.045em; transition:transform .18s,box-shadow .18s; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--red); color:white; box-shadow:0 10px 22px rgba(174,32,37,.2); }
.button-secondary { background:white; border:1px solid var(--border); }
.hero-gallery { position:relative; height:490px; display:grid; grid-template-columns:1fr 1fr; gap:12px; transform:rotate(1.5deg); }
.hero-gallery::before { content:""; position:absolute; inset:14px -15px -15px 14px; border-radius:30px; background:var(--orange); z-index:-1; }
.hero-gallery img { width:100%; height:100%; object-fit:cover; border:7px solid white; box-shadow:0 18px 45px rgba(23,52,81,.18); }
.hero-gallery .gallery-main { grid-row:span 2; border-radius:28px 6px 6px 28px; object-position:36% center; }
.hero-gallery img:nth-child(2) { border-radius:6px 28px 6px 6px; }
.hero-gallery img:nth-child(3) { border-radius:6px 6px 28px 6px; object-position:60% center; }

.quick-nav { background:var(--red); color:white; }
.quick-nav-inner { min-height:68px; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:13px 28px; }
.quick-nav span { font-size:.74rem; font-weight:900; text-transform:uppercase; letter-spacing:.12em; color:#ffd9bd; }
.quick-nav a { font-size:.9rem; font-weight:800; }
.quick-nav a:hover { text-decoration:underline; text-underline-offset:4px; }

.section { padding-block:96px; }
.activities-section { background:#fffdf7; }
.section-heading h2,.health-copy h2,.visit-inner h2 { margin:0; font-size:clamp(2.7rem,5vw,4.8rem); line-height:.96; letter-spacing:-.045em; }
.split-heading { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:46px; }
.split-heading>p,.section-heading.centered>p:last-child { margin:0; color:#596f82; font-size:1.06rem; line-height:1.7; }
.highlight-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.highlight-card { grid-column:span 2; min-height:390px; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--border); border-radius:22px; background:white; box-shadow:0 10px 30px rgba(23,52,81,.08); }
.highlight-card.feature-1,.highlight-card.feature-2 { grid-column:span 3; }
.highlight-image,.highlight-art { height:235px; overflow:hidden; }
.highlight-image img { width:100%; height:100%; object-fit:cover; }
.feature-1 .highlight-image img { object-position:36% center; }
.feature-2 .highlight-image img { object-position:58% center; }
.feature-3 .highlight-image img { object-position:center; }
.feature-5 .highlight-image img { object-position:center; }
.highlight-art { display:grid; place-items:center; background:var(--navy); color:white; }
.highlight-art svg { width:88px; height:88px; stroke-width:1.35; }
.feature-4 .highlight-art { background:var(--orange); }
.feature-5 .highlight-art { background:var(--red); }
.highlight-content { flex:1; padding:0 26px 28px; }
.highlight-card h3,.health-list h3 { margin:14px 0 9px; font-size:1.3rem; }
.highlight-card p,.health-list p { margin:0; color:#5a7083; font-size:1rem; line-height:1.6; }
.icon-disc { width:68px; height:68px; display:grid; place-items:center; margin-top:-34px; border:6px solid white; border-radius:50%; background:var(--red); color:white; box-shadow:0 7px 18px rgba(23,52,81,.15); }
.icon-disc svg { width:28px; height:28px; }
.card-link { display:inline-flex; align-items:center; gap:7px; margin-top:20px; color:var(--red-dark); font-size:.875rem; font-weight:900; letter-spacing:.035em; text-transform:uppercase; }
.card-link:hover { text-decoration:underline; text-underline-offset:4px; }

.health-section { background:var(--orange); color:white; padding-block:94px; }
.health-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:70px; align-items:center; }
.health-image-wrap { position:relative; }
.health-image-wrap>img { width:100%; aspect-ratio:4/4.4; object-fit:cover; border-radius:28px; border:8px solid white; box-shadow:0 22px 55px rgba(112,26,15,.24); }
.eyebrow.light { color:#fff1c7; }
.section-lead { margin:24px 0 34px; max-width:700px; color:#fff2e7; font-size:1.05rem; line-height:1.68; }
.health-list { display:grid; gap:16px; }
.health-list article { display:grid; grid-template-columns:48px 1fr; gap:17px; padding:18px 20px; background:rgba(151,25,17,.21); border:1px solid rgba(255,255,255,.26); border-radius:16px; }
.health-list article>svg { width:28px; margin:2px auto; }
.health-list p { color:#fff4ec; }

.section-heading.centered { max-width:700px; margin:0 auto 46px; text-align:center; }
.section-heading.centered>p:last-child { margin-top:18px; }

.sponsor-section { padding-block:92px; background:white; }
.sponsor-tiers { display:grid; gap:50px; }
.sponsor-tier { display:grid; gap:22px; }
.tier-heading { display:flex; align-items:center; gap:18px; color:var(--navy); font-size:.78rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.tier-heading::before,.tier-heading::after { content:""; height:1px; flex:1; background:var(--border); }
.sponsor-tier-platinum .tier-heading span { color:#66727c; }
.sponsor-tier-gold .tier-heading span { color:#a56a00; }
.sponsor-tier-bronze .tier-heading span { color:#9a562e; }
.sponsor-logo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sponsor-logo-card { min-height:180px; display:grid; place-items:center; padding:30px; border:1px solid var(--border); border-radius:20px; background:#fffdf8; box-shadow:0 8px 24px rgba(23,52,81,.06); }
.sponsor-logo-card img { width:100%; max-width:310px; max-height:92px; object-fit:contain; }
.sponsor-tier-gold .sponsor-logo-grid,.sponsor-tier-bronze .sponsor-logo-grid { max-width:500px; margin-inline:auto; grid-template-columns:1fr; }
.sponsor-tier-gold .sponsor-logo-grid { max-width:390px; }
.sponsor-tier-gold .sponsor-logo-card { min-height:150px; padding:28px; }
.sponsor-tier-gold .sponsor-logo-card img { max-width:275px; max-height:76px; }
.sponsor-tier-bronze .sponsor-logo-grid { max-width:310px; }
.sponsor-tier-bronze .sponsor-logo-card { min-height:122px; padding:22px; }
.sponsor-tier-bronze .sponsor-logo-card img { max-width:235px; max-height:62px; }
.sponsor-tier-bronze .sponsor-logo-card { background:#4b4b4b; }
.organizer-block { margin-top:78px; padding-top:70px; border-top:1px solid var(--border); }
.organizer-block .section-heading { margin-bottom:32px; }
.organizer-block .section-heading h2 { font-size:clamp(2.2rem,4vw,3.5rem); }
.presenting-partners { max-width:960px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:18px; }
.partner-logo-card { min-height:155px; display:grid; place-items:center; padding:26px; border:1px solid var(--border); border-radius:18px; background:#fffdf8; }
.partner-logo-card img { max-height:72px; object-fit:contain; }
.partner-organizations { max-width:1080px; margin:48px auto 0; padding-top:40px; border-top:1px solid var(--border); }
.partner-organizations h3 { margin:0 0 24px; color:var(--navy); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.55rem,2.4vw,2rem); text-align:center; }
.partner-organization-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.partner-organization-card { min-width:0; min-height:112px; display:grid; place-items:center; padding:18px 12px; border:1px solid var(--border); border-radius:15px; background:#fffdf8; }
.partner-organization-card img { width:100%; max-width:112px; height:70px; object-fit:contain; }
.text-logo { text-transform:uppercase; line-height:.9; text-align:center; }
.text-logo strong { font-family:Georgia,serif; font-size:2.35rem; }
.text-logo span { font-size:1.02rem; letter-spacing:.18em; }
.visit-banner { background:var(--red); color:white; padding-block:62px; }
.visit-inner { display:grid; grid-template-columns:1fr 1.15fr auto; gap:45px; align-items:center; }
.visit-inner h2 { font-size:clamp(2.3rem,4vw,3.8rem); }
.visit-details { display:grid; gap:13px; }
.visit-details span { display:flex; align-items:center; gap:10px; font-size:.93rem; font-weight:700; }
.visit-details svg { width:19px; flex:0 0 19px; }
.button-cream { background:var(--cream); color:var(--red-dark); white-space:nowrap; }

.guide-page { min-height:100vh; background:#fffdf7; }
.guide-hero { position:relative; overflow:hidden; padding:70px 0 74px; background:var(--navy); color:white; isolation:isolate; }
.guide-leaves { position:absolute; z-index:-1; top:-40px; right:-70px; width:min(590px,48vw); opacity:.72; }
.back-link { display:inline-flex; align-items:center; gap:7px; margin-bottom:58px; color:#ffe0b4; font-size:.875rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.guide-hero .year-label { color:#ffbf51; }
.guide-hero h1,.guide-section h2,.performer-card h3,.food-truck-card h3 { font-family:Georgia,"Times New Roman",serif; }
.guide-hero h1 { margin:0; font-size:clamp(4rem,9vw,7.8rem); line-height:.88; letter-spacing:-.065em; }
.guide-hero>div>p:not(.year-label) { max-width:680px; margin:26px 0 0; color:#d7e0e8; font-size:1.1rem; line-height:1.7; }
.guide-jump { display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.guide-jump a { padding:12px 18px; border:1px solid rgba(255,255,255,.35); border-radius:999px; font-size:.875rem; font-weight:800; }
.guide-jump a:hover { background:white; color:var(--navy); }
.guide-section { padding:86px 0; scroll-margin-top:20px; }
.food-truck-section { background:#fff0d6; }
.vendor-section { background:var(--orange); color:white; }
.guide-section-heading { display:flex; align-items:center; gap:22px; margin-bottom:38px; }
.guide-section-heading .guide-icon { flex:0 0 68px; margin:0; }
.guide-section-heading .eyebrow { margin-bottom:8px; }
.guide-section-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; align-items:center; }
.guide-icon { width:68px; height:68px; display:grid; place-items:center; margin-bottom:24px; border-radius:50%; background:var(--red); color:white; }
.guide-icon svg { width:30px; height:30px; }
.vendor-section .guide-icon { background:var(--navy); }
.guide-section h2 { margin:0; font-size:clamp(2.9rem,6vw,5rem); line-height:.95; letter-spacing:-.045em; }
.guide-section-copy>p:last-child { max-width:560px; margin:22px 0 0; color:#5b7184; font-size:1rem; line-height:1.7; }
.vendor-section .eyebrow { color:#fff0c2; }
.vendor-section .guide-section-copy>p:last-child { color:#fff4e9; }
.guide-resource-art,.vendor-photo { width:100%; min-height:390px; max-height:510px; border-radius:28px; box-shadow:0 22px 50px rgba(23,52,81,.16); }
.vendor-photo { object-fit:cover; border:8px solid white; }
.vendor-list { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 30px; margin:10px 0 0; padding:26px 30px; list-style:none; border:1px solid rgba(255,255,255,.28); border-radius:22px; background:rgba(255,255,255,.12); }
.vendor-list li { padding:12px 0; border-bottom:1px solid rgba(255,255,255,.22); color:white; font-size:.98rem; font-weight:650; line-height:1.42; }
.guide-resource-art { display:grid; place-items:center; background:var(--navy); color:white; border:8px solid white; }
.guide-resource-art svg { width:120px; height:120px; stroke-width:1.1; }
.performer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.performer-card { overflow:hidden; border:1px solid var(--border); border-radius:22px; background:white; box-shadow:0 12px 34px rgba(23,52,81,.1); }
.performer-card>img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.performer-card:nth-child(1)>img { object-position:center; }
.performer-card:nth-child(2)>img { object-position:center; }
.performer-card:nth-child(3)>img { object-position:center 34%; }
.performer-card:nth-child(4)>img { object-position:center 58%; }
.performer-card:nth-child(5)>img { object-position:center; }
.performer-card:nth-child(6)>img { object-position:center 35%; }
.performer-card:nth-child(7)>img { object-position:center; }
.performer-copy { padding:25px 25px 28px; }
.performance-type { margin:0 0 8px; color:var(--red-dark); font-size:.72rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.performer-card h3,.food-truck-card h3 { margin:0; color:var(--navy); font-size:1.75rem; line-height:1.08; letter-spacing:-.025em; }
.performer-copy>p:last-child,.food-truck-copy>p:not(.performance-type) { margin:17px 0 0; color:#5a7083; font-size:.96rem; line-height:1.67; }
.food-truck-card { display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:center; padding:34px; border:1px solid rgba(174,32,37,.14); border-radius:28px; background:white; box-shadow:0 18px 45px rgba(23,52,81,.12); }
.food-truck-card h3 { font-size:clamp(2.4rem,5vw,4.2rem); }
.food-truck-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.menu-preview { position:relative; overflow:hidden; border:7px solid white; border-radius:20px; box-shadow:0 13px 32px rgba(23,52,81,.16); background:#eee; }
.menu-preview img { width:100%; aspect-ratio:1.295/1; object-fit:cover; }
.guide-date { padding:38px 0; background:var(--red); color:white; }
.guide-date>div { display:flex; align-items:center; justify-content:center; gap:16px; }
.guide-date svg { flex:0 0 26px; }
.guide-date div div { display:grid; gap:5px; }
.guide-date strong { font-size:1rem; }
.guide-date span { color:#ffe1d6; font-size:.875rem; }

@media (max-width:1080px) {
  .hero-grid { grid-template-columns:1fr 1fr; gap:38px; } .hero h1 { font-size:clamp(3.6rem,7.5vw,6rem); }
  .highlight-grid { grid-template-columns:repeat(2,1fr); } .highlight-card,.highlight-card.feature-1,.highlight-card.feature-2 { grid-column:span 1; } .highlight-card.feature-5 { grid-column:1/-1; } .visit-inner { grid-template-columns:1fr 1fr; }
  .partner-organization-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .visit-inner .button { grid-column:1/-1; width:max-content; }
}
@media (max-width:760px) {
  .page-width { width:min(100% - 28px,600px); }
  .hero-leaves,.guide-leaves { display:none; } .free-ribbon { top:18px; left:14px; width:auto; padding:10px 16px; transform:none; border-radius:999px; font-size:.72rem; }
  .hero-grid { min-height:auto; grid-template-columns:1fr; gap:44px; padding-block:72px 54px; } .hero-copy { padding-top:15px; }
  .hero h1 { max-width:560px; font-size:clamp(3.8rem,17vw,5.7rem); } .hero-intro { font-size:1rem; } .hero-gallery { height:390px; }
  .quick-nav-inner { justify-content:center; overflow:visible; flex-wrap:wrap; gap:10px 18px; padding-block:18px; text-align:center; } .quick-nav-inner>* { white-space:nowrap; } .quick-nav span { flex:0 0 100%; }
  .section { padding-block:72px; } .split-heading,.health-grid { grid-template-columns:1fr; gap:28px; }
  .highlight-grid,.presenting-partners,.sponsor-logo-grid { grid-template-columns:1fr; } .partner-organization-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .highlight-card,.highlight-card.feature-1,.highlight-card.feature-2,.highlight-card.feature-5 { grid-column:1; min-height:auto; }
  .sponsor-tier-platinum .sponsor-logo-grid { max-width:560px; margin-inline:auto; width:100%; }
  .highlight-image,.highlight-art { height:220px; } .health-image-wrap { max-width:520px; }
  .visit-inner { grid-template-columns:1fr; gap:26px; } .visit-inner .button { grid-column:auto; }
  .guide-hero { padding:48px 0 58px; } .back-link { margin-bottom:48px; }
  .guide-section { padding:66px 0; } .guide-section-grid { grid-template-columns:1fr; gap:34px; }
  .guide-resource-art,.vendor-photo { min-height:300px; } .performer-grid { grid-template-columns:1fr; } .performer-card { display:grid; grid-template-columns:.9fr 1.1fr; }
  .vendor-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .performer-card>img { height:100%; min-height:280px; aspect-ratio:auto; } .food-truck-card { grid-template-columns:1fr; gap:32px; padding:24px; }
  .guide-date>div { align-items:flex-start; justify-content:flex-start; }
}
@media (max-width:470px) {
  .hero h1 { font-size:3.7rem; } .hero-actions,.hero-actions .button { width:100%; }
  .hero-gallery { height:320px; gap:7px; } .hero-gallery img { border-width:4px; } .highlight-grid { gap:10px; }
  .highlight-card { padding:22px 18px; } .guide-section-heading { align-items:flex-start; } .guide-section-heading .guide-icon { width:56px; height:56px; flex-basis:56px; }
  .guide-section-heading .guide-icon svg { width:25px; height:25px; } .performer-card { display:block; } .performer-card>img { min-height:0; aspect-ratio:4/3; }
  .vendor-list { grid-template-columns:1fr; padding:20px 22px; }
  .food-truck-actions,.food-truck-actions .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
