/*
Theme Name: Esther Borte Walk in the Park
Theme URI: https://estherbortewalkinthepark.org
Author: Cindy Samco
Description: Single-page theme for the annual Esther Borte Walk in the Park. Includes Raffle Prize, Sponsor, and Vendor entry with a shared SVG category picker, and action cards linking to hosted Cognito forms.
Version: 1.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: ebw
*/

:root{
  --cream:#f6f1e3;
  --paper:#fbf8ef;
  --forest:#2c4a2e;
  --moss:#5d7a4e;
  --sage:#aabf8e;
  --sage-pale:#dde5cb;
  --wood:#8a6843;
  --wood-dark:#6b4f32;
  --ink:#33402f;
  --quilt-red:#a44a38;
  --quilt-red-dark:#83392b;
  --gold:#b07d2e;
  --gold-bright:#d9a93f;
  --blue:#6e87a0;
  --flower-red:#b65b46;
  --display:'Bitter',Georgia,serif;
  --body:'Source Serif 4',Georgia,serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  font-size:1.0625rem;
}
img{max-width:100%;display:block}
a{color:var(--forest)}
h1,h2,h3{font-family:var(--display);color:var(--forest);line-height:1.15}
.wrap{max-width:1060px;margin:0 auto;padding:0 24px}

/* ---------- eyebrow / section labels ---------- */
.eyebrow{
  font-family:var(--display);font-weight:700;font-size:.78rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--moss);
  display:flex;align-items:center;gap:.75em;margin-bottom:.6em;
}
.eyebrow::before{
  content:"";width:36px;height:14px;flex:0 0 36px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 14'%3E%3Cpath d='M1,12 Q16,10 34,4' fill='none' stroke='%235d7a4e' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M8,11 C5,5 8,1 14,0 C14,5 12,9 8,11 Z' fill='%235d7a4e'/%3E%3Cpath d='M19,8 C22,2 27,0 32,2 C29,7 23,10 19,8 Z' fill='%238aa86f'/%3E%3C/svg%3E") no-repeat center/contain;
}
#donate .eyebrow{color:var(--gold)}
#donate .eyebrow::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 14'%3E%3Cpath d='M1,12 Q16,10 34,4' fill='none' stroke='%23b07d2e' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M8,11 C5,5 8,1 14,0 C14,5 12,9 8,11 Z' fill='%23b07d2e'/%3E%3Cpath d='M19,8 C22,2 27,0 32,2 C29,7 23,10 19,8 Z' fill='%23d9a93f'/%3E%3C/svg%3E");
}
#raffle .eyebrow::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 14'%3E%3Cpath d='M1,12 Q16,10 34,4' fill='none' stroke='%23a44a38' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M8,11 C5,5 8,1 14,0 C14,5 12,9 8,11 Z' fill='%23a44a38'/%3E%3Cpath d='M19,8 C22,2 27,0 32,2 C29,7 23,10 19,8 Z' fill='%23c97f63'/%3E%3C/svg%3E");
}

/* ---------- flora decoration ---------- */
.flora{position:absolute;pointer-events:none;user-select:none}
.hero-branch{top:14px;width:clamp(110px,17vw,205px);height:auto;opacity:.8;z-index:0}
.hero-branch.left{left:-6px;transform:rotate(6deg)}
.hero-branch.right{right:-6px;transform:scaleX(-1) rotate(6deg)}
.hero h1,.hero p.lede{position:relative;z-index:1}
.hero-grass{bottom:6px;width:66px;height:auto;opacity:.92;z-index:3}
.hero-grass.g1{left:5%}
.hero-grass.g2{right:7%;transform:scaleX(-1)}
.hero-grass.g3{left:22%;width:40px;opacity:.55;bottom:10px}
.portrait-sprig{top:-30px;right:-20px;width:76px;height:auto;transform:rotate(26deg);z-index:1}
.quilt-wrap{position:relative;max-width:360px;margin:0 auto}
.quilt-photo{
  display:block;width:100%;border:9px solid #fff;border-radius:2px;
  box-shadow:0 12px 32px rgba(83,57,43,.22);transform:rotate(1.5deg);
}
.quilt-flower{top:-18px;left:-16px;width:46px;height:auto;transform:rotate(-12deg);filter:drop-shadow(0 2px 3px rgba(83,57,43,.3));z-index:1}
#vendors{position:relative}
#vendors::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:28px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 26'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M6,26 Q3,12 0,4' stroke='%235d7a4e' stroke-width='2.2'/%3E%3Cpath d='M16,26 Q16,8 12,0' stroke='%238aa86f' stroke-width='2.2'/%3E%3Cpath d='M26,26 Q28,10 34,2' stroke='%235d7a4e' stroke-width='2.2'/%3E%3Cpath d='M40,26 Q44,14 50,6' stroke='%238aa86f' stroke-width='2.2'/%3E%3Cpath d='M54,26 Q52,10 48,2' stroke='%235d7a4e' stroke-width='2.2'/%3E%3Cpath d='M66,26 Q68,12 74,4' stroke='%238aa86f' stroke-width='2.2'/%3E%3Cpath d='M34,26 Q36,18 38,14' stroke='%23aabf8e' stroke-width='1.8'/%3E%3Cpath d='M74,26 Q76,16 79,10' stroke='%23aabf8e' stroke-width='1.8'/%3E%3C/g%3E%3Ccircle cx='12' cy='2' r='2.8' fill='%23b65b46'/%3E%3Ccircle cx='50' cy='7' r='2.6' fill='%236e87a0'/%3E%3Ccircle cx='74' cy='5' r='2.4' fill='%23d9a93f'/%3E%3C/svg%3E") repeat-x bottom/80px 26px;
  opacity:.8;
}
@media (max-width:680px){
  .hero-branch{opacity:.5;width:96px}
  .portrait-sprig{width:60px;top:-24px;right:-10px}
}

/* ---------- nav ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(246,241,227,.92);backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(93,122,78,.18);
  transition:box-shadow .25s;
}
nav.scrolled{box-shadow:0 2px 14px rgba(44,74,46,.10)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:1060px;margin:0 auto;padding:0 24px}
.nav-brand{font-family:var(--display);font-weight:800;font-size:1rem;letter-spacing:.04em;color:var(--forest);text-decoration:none;display:flex;align-items:center;gap:10px}
.nav-brand img{height:26px;width:auto}
.nav-links{display:flex;gap:26px;list-style:none}
.nav-links a{font-family:var(--display);font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--moss)}
.nav-links a:hover{color:var(--forest)}
.nav-links a.nav-cta{background:var(--forest);color:var(--cream);padding:8px 16px;border-radius:6px}
.nav-links a.nav-cta:hover{background:var(--moss);color:#fff}
@media (max-width:760px){.nav-links{display:none}}

/* ---------- hero ---------- */
header.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(110% 70% at 18% 8%, rgba(180,205,226,.6) 0%, rgba(180,205,226,0) 58%),
    radial-gradient(circle 150px at 79% 13%, rgba(233,200,121,.55) 0%, rgba(233,200,121,0) 72%),
    radial-gradient(90% 60% at 85% 12%, rgba(229,236,214,.7) 0%, rgba(229,236,214,0) 55%),
    radial-gradient(120% 80% at 50% 110%, var(--sage-pale) 0%, rgba(221,229,203,0) 62%),
    var(--cream);
  text-align:center;
  padding:72px 24px 0;
}
body::after{ /* paper grain over everything */
  content:"";position:fixed;inset:0;pointer-events:none;z-index:999;
  opacity:.045;mix-blend-mode:multiply;
  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='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
#esther,#register,#vendors{box-shadow:inset 0 16px 28px -20px rgba(44,74,46,.28)}
.hero h1{
  font-size:clamp(2.1rem,5.4vw,3.9rem);font-weight:800;
  letter-spacing:.015em;text-transform:uppercase;
  max-width:18ch;margin:0 auto;
}
.hero .year{display:block;font-size:.42em;letter-spacing:.3em;color:var(--moss);font-weight:700;margin-bottom:.35em}
.hero p.lede{
  font-style:italic;font-size:clamp(1.05rem,2.2vw,1.3rem);
  color:var(--ink);max-width:34ch;margin:1.1em auto 0;
}
/* hero date — typographic, with painted gold swash */
.hero-date{position:relative;z-index:1;margin-top:1.7rem}
.hd-day{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.25rem,2.9vw,1.7rem);letter-spacing:.06em;color:var(--forest);
}
.hd-day .hd-year{
  color:var(--gold);font-size:.78em;letter-spacing:.14em;
  margin-left:.35em;vertical-align:.06em;
}
.hd-swash{display:block;width:min(300px,64vw);height:16px;margin:2px auto 8px}
.hd-meta{
  font-family:var(--display);font-weight:700;font-size:.86rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--moss);
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
}
.hd-fl{width:13px;height:13px;flex:0 0 13px}
.c-red{color:var(--flower-red)}
.c-blue{color:var(--blue)}

/* hero scene depth */
.hero-trees{position:absolute;z-index:0;opacity:.6;pointer-events:none}
.hero-trees.t-left{left:8%;bottom:102px;width:120px;height:auto}
.hero-trees.t-right{right:6%;bottom:104px;width:160px;height:auto}
.walk-shadow{
  position:absolute;left:50%;bottom:4px;transform:translateX(-50%);
  width:min(560px,78vw);height:16px;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 50% 100% at 50% 50%, rgba(44,74,46,.20), transparent 70%);
}
@media (max-width:860px){
  .hero-trees.t-right{display:none}
  .hero-trees.t-left{width:90px;bottom:84px}
}
/* walking silhouettes on a painted path */
.hero-walk{position:relative;margin-top:2rem}
.hero-path{
  position:absolute;left:0;right:0;bottom:0;height:150px;z-index:0;
  background:
    radial-gradient(140% 200% at 50% -60%, rgba(221,229,203,0) 40%, var(--sage-pale) 75%),
    linear-gradient(to bottom, transparent 30%, rgba(170,191,142,.45));
  clip-path:ellipse(120% 100% at 50% 100%);
}
.hero-walk img{
  position:relative;display:block;margin:0 auto 8px;
  width:min(580px,82vw);height:auto;z-index:2;
  filter:drop-shadow(0 4px 6px rgba(44,74,46,.25));
}
@media (max-width:860px){
  .hero-path{height:120px}
}

/* ---------- sections ---------- */
section{padding:84px 0}
section h2{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:800;margin-bottom:.5em}
.section-intro{max-width:62ch}

/* about Esther */
#esther{background:var(--paper)}
.esther-grid{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}
@media (max-width:820px){.esther-grid{grid-template-columns:1fr;gap:32px}}
.portrait{
  background:#fff;padding:14px 14px 48px;border-radius:4px;
  box-shadow:0 8px 28px rgba(44,74,46,.16);
  transform:rotate(-1.5deg);position:relative;max-width:340px;
}
.portrait img{border-radius:2px}
.portrait figcaption{
  position:absolute;bottom:12px;left:0;right:0;text-align:center;
  font-style:italic;font-size:.95rem;color:var(--moss);
}
.esther-text p+p{margin-top:1em}
.placeholder-note{
  margin-top:1.4em;padding:12px 16px;border-left:3px solid var(--sage);
  background:rgba(170,191,142,.14);font-size:.92rem;font-style:italic;color:var(--moss);
  border-radius:0 6px 6px 0;
}

/* schedule — winding path as a left rail */
#schedule .wrap{max-width:760px}
.trail{position:relative;margin-top:48px;padding-left:104px}
.trail-svg{position:absolute;left:0;top:0;width:96px;height:100%;overflow:visible}
.trail-svg path{fill:none;stroke:var(--wood);stroke-width:5;stroke-dasharray:1 14;stroke-linecap:round;opacity:.65}
.stop{
  position:relative;display:flex;align-items:center;gap:26px;
  margin-bottom:56px;
}
.stop:last-child{margin-bottom:0}
.stop-time{
  flex:0 0 168px;text-align:center;
  background:linear-gradient(184deg,#a07a4f,var(--wood) 60%,#7c5c3a);
  border:2px solid var(--wood-dark);border-radius:7px;color:#2e2013;
  font-family:var(--display);font-weight:800;font-size:1.02rem;letter-spacing:.05em;
  padding:10px 8px;box-shadow:0 4px 12px rgba(60,40,20,.22);
  transform:rotate(-1deg);text-shadow:0 1px 0 rgba(255,255,255,.25);
}
.stop:nth-child(even) .stop-time{transform:rotate(1deg)}
.stop-body{flex:1}
.stop-body h3{font-size:1.12rem;font-weight:700;margin-bottom:.15em}
.stop-body p{font-size:.98rem;color:#465241}
.stop-dot{
  position:absolute;left:-56px;top:50%;transform:translate(-50%,-50%);
  width:16px;height:16px;border-radius:50%;
  background:var(--forest);border:3px solid var(--cream);box-shadow:0 0 0 2px var(--sage);
}
.trail .stop:nth-of-type(1) .stop-dot{background:var(--forest)}
.trail .stop:nth-of-type(2) .stop-dot{background:var(--flower-red)}
.trail .stop:nth-of-type(3) .stop-dot{background:var(--gold)}
.trail .stop:nth-of-type(4) .stop-dot{background:var(--blue)}
.trail .stop:nth-of-type(5) .stop-dot{background:var(--moss)}
@media (max-width:680px){
  .trail{padding-left:60px}
  .trail-svg{width:56px}
  .stop{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:42px}
  .stop-time{flex-basis:auto;font-size:.9rem;padding:8px 16px}
  .stop-dot{left:-32px}
}

/* register + donate share form styling */
#register{background:var(--paper)}
.form-slot{
  margin-top:36px;border:2px dashed var(--sage);border-radius:10px;
  background:#fff;padding:48px 28px;text-align:center;color:var(--moss);
}
.form-slot strong{font-family:var(--display);color:var(--forest);display:block;font-size:1.05rem;margin-bottom:.3em}
.form-slot code{
  display:inline-block;margin-top:10px;font-size:.82rem;background:rgba(170,191,142,.18);
  padding:4px 10px;border-radius:5px;color:var(--ink);font-family:ui-monospace,Menlo,monospace;
}

/* ---------- action cards (link out to hosted forms) ---------- */
.action-center{display:flex;justify-content:center;margin-top:34px}
.action-card{
  position:relative;overflow:hidden;display:block;text-decoration:none;
  width:100%;max-width:440px;border-radius:16px;padding:24px 26px 22px;
  background:linear-gradient(145% 130% at 0 0, var(--ac-tint), #fff 68%);
  border:1px solid var(--ac-line);
  box-shadow:0 6px 20px rgba(83,57,43,.10);
  transition:transform .18s ease, box-shadow .18s ease;
}
.action-card:hover,.action-card:focus-visible{transform:translateY(-3px);box-shadow:0 13px 30px rgba(83,57,43,.17)}
.ac-badge{
  position:relative;z-index:1;display:inline-flex;width:52px;height:52px;border-radius:50%;
  align-items:center;justify-content:center;background:var(--ac-main);color:#fff;
  box-shadow:0 4px 11px var(--ac-shadow);
}
.ac-badge svg{width:26px;height:26px}
.ac-title{position:relative;z-index:1;display:block;font-family:var(--display);font-weight:800;font-size:1.32rem;color:var(--ac-dark);margin-top:13px}
.ac-sub{position:relative;z-index:1;display:block;color:#4d5645;font-size:.96rem;line-height:1.5;margin-top:5px;max-width:36ch}
.ac-btn{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;margin-top:17px;
  font-family:var(--display);font-weight:700;font-size:.84rem;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;background:var(--ac-main);padding:11px 20px;border-radius:8px;
}
.ac-arrow{width:16px;height:16px;transition:transform .18s ease}
.action-card:hover .ac-arrow{transform:translateX(4px)}
.ac-watermark{position:absolute;top:50%;right:18px;transform:translateY(-50%);width:148px;height:auto;color:var(--ac-main);opacity:.06;pointer-events:none;z-index:0}
.ac-red{--ac-main:var(--quilt-red);--ac-dark:var(--quilt-red-dark);--ac-tint:rgba(164,74,56,.13);--ac-line:rgba(164,74,56,.22);--ac-shadow:rgba(164,74,56,.4)}
.ac-gold{--ac-main:var(--gold);--ac-dark:#7c5410;--ac-tint:rgba(217,169,63,.18);--ac-line:rgba(176,125,46,.3);--ac-shadow:rgba(176,125,46,.4)}
.ac-green{--ac-main:var(--forest);--ac-dark:var(--forest);--ac-tint:rgba(93,122,78,.15);--ac-line:rgba(93,122,78,.26);--ac-shadow:rgba(44,74,46,.34)}

/* ---------- action cards end ---------- */

/* registration rates */
.reg-cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:820px){.reg-cols{grid-template-columns:1fr;gap:40px}}
.reg-head{font-family:var(--display);font-weight:800;color:var(--forest);font-size:1.4rem;margin-bottom:.1em}
.reg-rates{list-style:none;margin:14px 0 0;border-top:1px solid rgba(93,122,78,.22)}
.reg-rates li{display:flex;align-items:baseline;gap:16px;padding:13px 2px;border-bottom:1px solid rgba(93,122,78,.22)}
.rr-price{font-family:var(--display);font-weight:800;font-size:1.4rem;color:var(--forest);min-width:70px}
.rr-free{color:var(--gold)}
.rr-what{color:#465241;font-size:1.02rem}
.reg-note{margin:18px 0 4px;display:flex;align-items:center;gap:11px;font-size:.98rem;color:var(--quilt-red-dark);background:rgba(164,74,56,.08);border:1px solid rgba(164,74,56,.16);border-radius:9px;padding:12px 15px}
.reg-note svg{width:21px;height:21px;flex:0 0 21px;color:var(--quilt-red);fill:none;stroke:var(--quilt-red)}

/* give the raffle ticket card room below the jar steps */
#raffle .action-card{margin-top:30px}
#raffle{
  background:
    radial-gradient(100% 80% at 80% 0%, rgba(164,74,56,.07) 0%, transparent 55%),
    var(--cream);
}
#raffle .eyebrow{color:var(--quilt-red)}
#donate .eyebrow{color:var(--gold)}
#donate .eyebrow::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 14'%3E%3Cpath d='M1,12 Q16,10 34,4' fill='none' stroke='%23b07d2e' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M8,11 C5,5 8,1 14,0 C14,5 12,9 8,11 Z' fill='%23b07d2e'/%3E%3Cpath d='M19,8 C22,2 27,0 32,2 C29,7 23,10 19,8 Z' fill='%23d9a93f'/%3E%3C/svg%3E");
}
#raffle .eyebrow::before{background:var(--quilt-red)}
#raffle h2{color:var(--quilt-red-dark)}
.raffle-grid{display:grid;grid-template-columns:1fr 360px;gap:56px;align-items:center;margin-top:8px}
@media (max-width:860px){.raffle-grid{grid-template-columns:1fr;gap:40px}}
.quilt{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;
  aspect-ratio:1;border:10px solid #fff;outline:1px solid rgba(60,40,20,.15);
  box-shadow:0 12px 32px rgba(83,57,43,.22);transform:rotate(1.5deg);
  max-width:360px;margin:0 auto;
}
.quilt div{aspect-ratio:1}
.q1{background:#a44a38}.q2{background:#dccfa9}.q3{background:#5d7a4e}.q4{background:#c8b08a}
.q5{background:#6e87a0}.q6{background:#c9a14e}
.qa{background:linear-gradient(45deg,#a44a38 50%,#dccfa9 50%)}
.qb{background:linear-gradient(-45deg,#5d7a4e 50%,#dccfa9 50%)}
.qc{background:linear-gradient(135deg,#c8b08a 50%,#a44a38 50%)}
.qd{background:linear-gradient(-135deg,#dccfa9 50%,#5d7a4e 50%)}
.qe{background:linear-gradient(45deg,#6e87a0 50%,#dccfa9 50%)}
.qf{background:linear-gradient(-135deg,#c9a14e 50%,#5d7a4e 50%)}
.quilt-caption{text-align:center;font-size:.92rem;color:var(--quilt-red-dark);margin-top:18px;line-height:1.5}
.quilt-caption strong{font-family:var(--display);font-size:1.05rem;font-style:normal;display:inline-block;margin-bottom:.15em}
.jar-how{
  margin-top:1.4em;display:grid;gap:14px;
}
.jar-how .step{display:flex;gap:14px;align-items:flex-start}
.jar-how .step-n{
  flex:0 0 34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:var(--quilt-red);color:#fff;font-family:var(--display);font-weight:800;
}
.jar-how .step:nth-child(2) .step-n{background:var(--gold)}
.jar-how .step:nth-child(3) .step-n{background:var(--blue)}
.btn{
  display:inline-block;font-family:var(--display);font-weight:700;font-size:.92rem;
  letter-spacing:.07em;text-transform:uppercase;text-decoration:none;
  padding:13px 26px;border-radius:7px;margin-top:1.6em;
}
.btn-raffle{background:var(--quilt-red);color:#fff}
.btn-raffle:hover{background:var(--quilt-red-dark)}
#raffle .form-slot{border-color:rgba(164,74,56,.45);color:var(--quilt-red-dark)}
#raffle .form-slot strong{color:var(--quilt-red-dark)}

/* raffle prize list */
.prizes-head{margin-top:64px}
.prizes-head h3{font-family:var(--display);font-weight:800;color:var(--quilt-red-dark);font-size:1.4rem;margin-bottom:.3em}
.prizes-head p{max-width:60ch;color:#465241}
.prize-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:24px;
}
.prize-card{
  background:#fff;border:1px solid rgba(164,74,56,.16);border-left:4px solid var(--quilt-red);
  border-radius:9px;padding:15px 17px;box-shadow:0 4px 14px rgba(83,57,43,.07);
  display:flex;gap:13px;align-items:flex-start;
}
.prize-card .pj{flex:0 0 24px;width:24px;height:auto;color:var(--quilt-red);margin-top:1px}
.prize-name{font-family:var(--display);font-weight:700;color:var(--quilt-red-dark);font-size:1rem;line-height:1.25}
.prize-donor{font-size:.85rem;color:var(--moss);margin-top:4px}
.prize-card.featured{
  border-left-color:var(--gold);
  background:linear-gradient(110% 100% at 0 0, rgba(217,169,63,.1), #fff 60%);
  grid-column:1 / -1;
}
.prize-card.featured .pj{color:var(--gold)}
.prize-card.featured .prize-name{color:#7c5410}
.prizes-note{margin-top:18px;font-size:.86rem;font-style:italic;color:var(--moss)}

/* sponsor wall */
.sponsor-head{font-family:var(--display);font-weight:800;color:var(--gold);font-size:1.4rem;margin-top:40px;margin-bottom:.2em}
.sponsor-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;margin:22px 0 8px;
}
.sponsor-tile{
  background:#fff;border:1px solid rgba(176,125,46,.22);border-radius:9px;
  aspect-ratio:3 / 2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  text-align:center;padding:12px;box-shadow:0 3px 10px rgba(83,57,43,.06);
}
.sponsor-tile svg{width:30px;height:auto;color:var(--gold);opacity:.7}
.sponsor-tile .sp-name{font-family:var(--display);font-weight:700;font-size:.9rem;color:var(--gold);line-height:1.2}
.sponsor-tile.empty{border-style:dashed;border-color:var(--sage);background:transparent}
.sponsor-tile.empty .sp-name{color:var(--moss);font-weight:400;font-style:italic}
.sponsor-tile.empty svg{color:var(--sage);opacity:.8}

/* vendor wall */
.vendor-head{font-family:var(--display);font-weight:800;color:var(--forest);font-size:1.4rem;margin-bottom:.2em}
.vendor-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px;margin:22px 0 8px;
}
.vendor-tile{
  background:#fff;border:1px solid rgba(93,122,78,.22);border-radius:9px;
  aspect-ratio:3 / 2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  text-align:center;padding:12px;box-shadow:0 3px 10px rgba(83,57,43,.06);
}
.vendor-tile svg{width:32px;height:auto;color:var(--moss);opacity:.78}
.vendor-tile .v-name{font-family:var(--display);font-weight:700;font-size:.9rem;color:var(--forest);line-height:1.2}
.vendor-tile .v-cat{font-size:.72rem;color:var(--moss);text-transform:uppercase;letter-spacing:.07em}
.vendor-tile.empty{border-style:dashed;border-color:var(--sage);background:transparent}
.vendor-tile.empty .v-name{color:var(--moss);font-weight:400;font-style:italic}
.vendor-tile.empty svg{color:var(--sage);opacity:.85}

/* business donations */
#donate .two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media (max-width:820px){#donate .two-col{grid-template-columns:1fr}}
#donate ul{margin:1em 0 0 1.2em}
#donate li{margin-bottom:.5em}

/* vendors */
#vendors{background:var(--paper)}
#vendors .two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media (max-width:820px){#vendors .two-col{grid-template-columns:1fr;gap:28px}}

/* footer */
footer{
  background:var(--forest);color:var(--sage-pale);
  padding:56px 0 40px;text-align:center;
}
footer img{height:48px;width:auto;margin:0 auto 18px;filter:invert(92%) sepia(8%) saturate(500%) hue-rotate(50deg) brightness(105%)}
footer .foot-title{font-family:var(--display);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:1.05rem;color:#fff}
footer p{font-size:.92rem;margin-top:.6em;opacity:.85}
footer a{color:var(--sage-pale)}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
:focus-visible{outline:3px solid var(--moss);outline-offset:2px}
