/* Santa on State: holiday storefront review */
/* Shared dimensional gold molding, matched to the snowy banner's baked-in edge. */
:root{--gold-divider-height:6px;--gold-divider-fill:linear-gradient(to bottom,#9a5c12 0%,#e1ab43 15%,#fff0af 30%,#ffd575 46%,#d89a2d 62%,#9a5a12 83%,#70400e 100%);--gold-divider-shadow:0 2px 3px #4b2b1740}
:root{--cream:#f8f2e6;--paper:#fffaf1;--pine:#153e2d;--red:#9b2639;--brass:#c59a49;--max:1240px}
.hero{height:510px;max-height:none;min-height:0;padding:0;align-items:center}.free-banner{margin-top:0}
.hero img{object-position:center 48%;opacity:1}.hero-capitol-preview img{object-position:center 27%;transform:translateX(1.5%) scale(1.09)}.hero::after{background:radial-gradient(ellipse 15% 34% at 20% 51%,rgba(255,204,120,.13),transparent 86%),linear-gradient(90deg,rgba(7,29,19,.52),rgba(7,29,19,.18) 37%,rgba(7,29,19,.01) 72%)}
.hero-content{padding:50px 28px}.hero h1{font-size:clamp(48px,6vw,78px);max-width:9ch;line-height:1.02;letter-spacing:-.035em;text-shadow:0 2px 7px rgba(0,16,10,.56)}.hero p.lede{font-size:21px;line-height:1.65;max-width:34ch;color:#fff8e9;margin:24px 0;text-shadow:0 1px 5px rgba(0,16,10,.64)}.hero-actions{margin-top:30px}
@media(min-width:701px){.hero-capitol-preview img{transform:translateX(3%) scale(1.09)}.hero-capitol-preview::after{background:radial-gradient(ellipse 12% 24% at 23% 46%,rgba(255,224,163,.16),transparent 86%),radial-gradient(ellipse 15% 34% at 20% 51%,rgba(255,204,120,.13),transparent 86%),linear-gradient(90deg,rgba(7,29,19,.52),rgba(7,29,19,.18) 37%,rgba(7,29,19,.01) 72%)}}
.btn{padding:15px 26px;font-size:16px;border-radius:2px}.btn-primary{background:#e4b864;color:#201c14}.btn-ghost{background:#10291b45;border-color:#e8dcc5}
.free-banner{background:#113d2b;border-width:2px}.free-banner .wrap{padding:30px 28px}.free-banner-art{max-width:930px;box-shadow:0 16px 35px #00190e33}
section{padding:88px 0}.section-head h2,.schedule-intro h2{font-size:44px;line-height:1.12;color:var(--pine);letter-spacing:-.025em}.kicker,.tier-label{text-transform:uppercase;letter-spacing:.12em;font-size:14px!important}.section-head p{line-height:1.8}.schedule-layout{gap:76px;grid-template-columns:.9fr 1.1fr}.ledger{border-top:3px solid var(--brass);background:var(--paper);padding:8px 28px 12px;box-shadow:0 12px 35px #392b1110}.ledger-row{padding:20px 0;grid-template-columns:1fr 1fr auto}.ledger-row .day{color:var(--pine)}.ledger-foot{text-align:center}.free-note{padding:16px 20px}.location-line{font-size:16px;line-height:1.8}#schedule,#location{scroll-margin-top:125px}
section.tight{padding:80px 0;background:#efe7d6}.all-ages-layout{gap:90px}#all-ages{position:relative;isolation:isolate;overflow:hidden;background:#efe7d6}#all-ages::before,#all-ages::after{position:absolute;inset:0;content:'';pointer-events:none}#all-ages::before{z-index:0;background:url('images/all-ages-background-refined.webp') center 40% / cover no-repeat;filter:saturate(.8) brightness(1.03);opacity:.76}#all-ages::after{z-index:1;background:linear-gradient(90deg,#fff8e9d8 0%,#fff8e99b 39%,#fff8e926 66%,transparent 80%)}#all-ages>.wrap{position:relative;z-index:2}.all-ages-photo{aspect-ratio:1/1;border:9px solid var(--paper);outline:1px solid #c59a4955;box-shadow:0 18px 40px #30210e17;transform:rotate(1.5deg)}.teaser-grid{gap:28px}.teaser-grid a{border:8px solid var(--paper);box-shadow:0 8px 25px #38251417}.teaser-grid a:nth-child(2){transform:translateY(12px)}.band .wrap{padding:52px 28px}.band h3{max-width:37ch;line-height:1.3}
#all-ages .section-head{transform:translateY(-10px)}
.page-hero{background:var(--pine);padding:58px 0;border-bottom:3px solid var(--brass)}.page-hero h1{color:var(--paper);font-size:58px;letter-spacing:-.025em}.page-hero p{color:#eee4d1;line-height:1.75}.page-hero .kicker{color:#e5b965}.page-hero-badge{height:155px;filter:drop-shadow(0 7px 14px #00150955)}
.sponsor-tier{padding:28px 0 46px}.sponsor-card{background:#fffaf1;border:1px solid #c59a4955;border-radius:2px;min-height:230px;box-shadow:0 8px 25px #38251408}.sponsor-card img{mix-blend-mode:multiply}.tier-1 img{max-height:210px}.tier-2 .sponsor-card{flex:0 1 570px}.tier-2 .sponsor-card img{max-height:195px}.tier-3 .sponsor-card img{max-height:110px}.tier-label{color:var(--pine)}
.gallery-grid{gap:24px;align-items:start}.gallery-grid figure{padding:7px;background:var(--paper);box-shadow:0 7px 24px #37281018}.gallery-grid img{height:auto;object-fit:contain;aspect-ratio:auto}.gallery-grid .wide img{aspect-ratio:auto}.social-panel{border-radius:2px;border-top:3px solid var(--brass)}.text-page{background:var(--paper);padding:36px 44px;box-shadow:0 12px 40px #3927100b}.text-page h2{color:var(--pine);font-size:27px}.text-page p{font-size:17px;line-height:1.8}.text-page h2:first-child{margin-top:0}
footer.site-footer{padding:40px 0 24px}.footer-brand img.logo-mark{height:112px}.footer-sponsors{justify-content:space-between;gap:28px;padding:8px 0;border-bottom:1px solid var(--rule)}.footer-sponsors img{height:70px;max-width:170px;object-fit:contain;opacity:1;mix-blend-mode:multiply}.footer-sponsors img.presenting{height:88px}.footer-sponsors img.presenting.wordmark{height:43px}.footer-sponsors span{max-width:95px}a:focus-visible,button:focus-visible{outline:3px solid #b38124;outline-offset:5px}
@media(max-width:900px){.schedule-layout{gap:36px;grid-template-columns:1fr}.all-ages-layout{gap:35px}.hero{height:500px}}
@media(max-width:700px){.hero{height:520px}.hero h1{font-size:52px}.hero p.lede{font-size:18px}.hero::after{background:radial-gradient(ellipse 22% 26% at 18% 51%,rgba(255,204,120,.1),transparent 86%),linear-gradient(90deg,#09241785,#09241721)}.free-banner .wrap{padding:18px 14px}section,section.tight{padding:48px 0}.section-head h2,.schedule-intro h2{font-size:34px}.page-hero{padding:38px 0}.page-hero h1{font-size:40px}.page-hero-badge{display:none}.ledger{padding:8px 18px}.ledger-row{grid-template-columns:1fr auto;gap:4px 12px}.ledger-row .day{grid-column:1}.ledger-row .date{grid-column:1}.ledger-row .time{grid-column:2;grid-row:span 2}.all-ages-layout{grid-template-columns:1fr}.text-page{padding:26px}.footer-sponsors{justify-content:center}.footer-sponsors span{max-width:none;width:100%;text-align:center}.tier-1 .sponsor-card{padding:36px}.teaser-grid{gap:14px}.teaser-grid a:nth-child(2){transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Approved unified header. Clip only the empty white export margins;
   retain every bow, garland branch, candy stripe and the full brand artwork. */
.art-header{background:#fff;position:relative;z-index:20}
.art-header-frame{position:relative;width:100%;aspect-ratio:2048/520;overflow:hidden}
.art-header-frame>img{width:100%;height:auto;max-width:none;transform:translateY(-16.9270833%);pointer-events:none}
.art-link{position:absolute;display:block;border-radius:3px;text-decoration:none;min-height:24px}
.art-link span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.art-home{left:2%;top:48%;width:51%;height:47%}
.art-schedule{left:54.4%;width:6.1%}.art-location{left:61.5%;width:6%}.art-disclaimer{left:68.5%;width:10.5%}.art-sponsors{left:80.2%;width:6.5%}.art-gallery{left:87.5%;width:10.5%}
.art-header nav .art-link{top:72%;height:14%}
.art-link:hover{background:#bd92270d;box-shadow:inset 0 -2px #bc8b32}
.art-link:focus-visible{outline:3px solid #164631;outline-offset:2px;background:#ffffff33}
#schedule,#location{scroll-margin-top:24px}
@media(max-width:700px){.art-header nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;background:#f7efdf;padding:14px 20px}.art-header-frame{aspect-ratio:auto;overflow:visible;padding-top:25.390625%;height:auto}.art-header-frame>img{position:absolute;top:0;clip-path:inset(16.9270833% 0 16.40625% 0)}.art-header nav .art-link{position:relative;left:auto;top:auto;width:auto;height:auto;min-height:44px;display:flex;align-items:center;color:#123b29;font-size:15px}.art-header nav .art-link span{position:static;width:auto;height:auto;clip:auto;margin:0;overflow:visible}.art-home{top:0;height:25vw}.art-header nav .art-link:hover{box-shadow:none;text-decoration:underline}}

/* Approved complete banner: raised sign, snowbank, gold divider and cream edge. */
section.free-banner { padding:clamp(5px,.55vw,9px) 0 0; background:#113d2b; border:0; line-height:0; overflow:hidden; }
/* Trim the artwork's baked-in lower rule so its snow meets the site cream directly. */
.free-banner-art { display:block; width:100%; max-width:none; height:auto; margin:0 0 -4.6vw; box-shadow:none; }

/* Gift tags share editable lettering and dimensional paper, ribbon and bells. */
.hero-actions{display:flex;flex-wrap:wrap;gap:24px;margin-top:35px;padding-left:8px}
.hero-actions .hero-art-button{display:flex;align-items:center;width:220px;max-width:100%;min-height:44px;position:relative;transition:transform .18s;filter:drop-shadow(0 5px 5px #00170c66)}
.hero .hero-art-button img{position:static;display:block;width:100%;height:auto;object-fit:contain;opacity:1}
.hero-art-button:hover{transform:translateY(-3px)}
.gift-tag{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:90px;padding:15px 38px 17px 44px;color:var(--pine);text-decoration:none;background:repeating-linear-gradient(15deg,#fffaf100 0 3px,#ad8b4f08 3px 4px),linear-gradient(110deg,#e7d8b9,#fffaf1 16%,#f5ebd6);border:1px solid #d4b772;border-radius:19px 4px 4px 19px;box-shadow:2px 5px 0 #bda985,4px 12px 18px #001b2266;font-family:Fraunces,Georgia,serif;font-size:20px;transform:rotate(-2deg);transition:transform .2s,box-shadow .2s}
.gift-tag::before,.social-tag::before{content:'';position:absolute;left:13px;top:calc(50% - 5px);width:9px;height:9px;border-radius:50%;background:#74542c;border:2px solid #d4ad56;box-shadow:inset 1px 1px 2px #241708}
.tag-eyebrow{font:600 10px/1.5 'Work Sans',sans-serif;text-transform:uppercase;letter-spacing:.16em;margin-bottom:4px;color:#8c2931}
.tag-gallery{transform:rotate(2deg)}
.gift-tag:hover{transform:translateY(-4px) rotate(0);box-shadow:2px 5px 0 #bda985,4px 16px 20px #001b2277;color:#89242d}
.wax-seal{position:absolute;bottom:-12px;right:12px;width:32px;height:32px;border:3px double #c15a57;border-radius:48%;background:radial-gradient(at 35% 25%,#ad3944,#70232b);box-shadow:1px 3px 4px #3e0e1744;color:#e8b581;text-align:center;font:italic 23px/26px Georgia,serif}
.tag-bells{position:absolute;left:-10px;top:12px;width:34px;height:54px;pointer-events:none;z-index:2;transform:rotate(-13deg)}
.tag-bells::before{content:'';position:absolute;width:9px;height:40px;top:-12px;left:12px;background:linear-gradient(90deg,#641b26,#c34b53 45%,#8c2636);border:1px solid #a83943;transform:rotate(-18deg);box-shadow:1px 2px 2px #3c1a1633}
.tag-bells i{position:absolute;bottom:2px;left:0;width:20px;height:21px;border:1px solid #936820;border-radius:48%;background:radial-gradient(circle at 30% 25%,#fff0b0,#dbb65b 35%,#a77420 80%);box-shadow:1px 2px 3px #35271144}
.tag-bells i+i{left:15px;bottom:8px;transform:rotate(28deg)}
.tag-bells i::after{content:'';position:absolute;left:4px;right:4px;bottom:5px;height:3px;border-radius:50%;background:#6e4c19;transform:rotate(-30deg)}
.tag-gallery .tag-bells::before,.instagram-tag .tag-bells::before{background:linear-gradient(90deg,#0b3524,#41845c,#154631);border-color:#315c39}
.location-sign{position:relative;display:flex;flex-direction:column;align-items:center;margin:32px 8px 6px;padding:29px 24px 24px;text-align:center;color:#fff5dc;background:repeating-linear-gradient(0deg,#ffffff03 0 2px,#00000003 2px 4px),linear-gradient(105deg,#143b2b,#24553d 50%,#103424);border:3px double #d5b367;border-radius:9px;box-shadow:0 5px 0 #0a251c,0 7px 0 #b99550,0 15px 23px #39281022}
.location-sign::after{content:'';position:absolute;inset:7px;border:1px solid #b891426b;border-radius:4px;pointer-events:none}
.location-sign .tag-bells{left:calc(50% - 17px);top:-15px;transform:rotate(9deg)}
.location-sign .location-kicker{font:600 11px/1.6 'Work Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#e2be73;margin-top:7px}
.location-sign strong{font:500 clamp(25px,3vw,36px)/1.25 Fraunces,Georgia,serif;margin:6px 0}
.location-suite{font-size:14px;color:#fff5dc}.location-detail{font-size:13px;line-height:1.6;color:#ebddbf;border-top:1px solid #c9a45966;margin-top:12px;padding-top:10px}
.location-art{position:relative;display:block;margin:24px -10px 0;line-height:0;border-radius:8px;text-decoration:none}.location-art img{display:block;width:100%;height:auto;filter:drop-shadow(0 5px 5px #55391422);transition:filter .18s}.location-art:hover img{filter:drop-shadow(0 7px 7px #55391444)}.location-directions{position:absolute;left:61%;bottom:15%;width:30%;transform:translateX(-50%);font:600 13px/1.4 'Work Sans',sans-serif;letter-spacing:.015em;color:var(--pine);text-align:center;text-transform:none;transition:color .18s}.location-art:hover .location-directions{color:var(--red)}
#schedule{padding:64px 0 58px;background:#efe7d6 url('images/this-years-visits-workshop.webp') center/cover no-repeat}
#schedule .schedule-layout{grid-template-columns:1fr 1fr;gap:52px;align-items:start}
#schedule .location-art{margin:10px -10px 0}
#schedule .schedule-layout{grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.schedule-sign{position:relative;container-type:inline-size;width:100%;max-width:570px;justify-self:center;filter:drop-shadow(0 6px 5px #5a3e1725)}
.schedule-sign-art{display:block;width:100%;height:auto;clip-path:polygon(6.2% 13.8%,9.8% 12.1%,13.1% 9.1%,16.5% 6.3%,26% 6.5%,37% 3.8%,45% 1.8%,51% 1.5%,59% 2.6%,69% 5%,78% 6.1%,87% 6.5%,90.2% 9.7%,93.9% 13.8%,93.9% 87.2%,90.8% 88.8%,88.7% 91%,88.2% 95.3%,17% 95.5%,15.7% 92.6%,11.6% 89.4%,6.2% 87.2%)}
.schedule-sign-year{position:absolute;top:29.95%;left:51.5%;width:13%;height:4%;display:flex;align-items:center;justify-content:center;color:#861d26;font:600 5cqw/1 Georgia,serif;background:radial-gradient(ellipse,#f6e9ce 55%,#f6e9ce00 75%)}
#schedule .schedule-sign .ledger{position:absolute;top:34.75%;left:13.8%;right:12.7%;height:51.5%;display:grid;grid-template-rows:repeat(7,1fr);padding:0;background:none;border:0;box-shadow:none}
#schedule .schedule-sign .ledger-row{display:grid;grid-template-columns:1fr 1.28fr 1.2fr;gap:2%;padding:0;border:0;align-items:center;font:600 3.35cqw/1.2 Georgia,serif}
#schedule .schedule-sign .ledger-row .day,#schedule .schedule-sign .ledger-row .date,#schedule .schedule-sign .ledger-row .time{font:inherit;white-space:nowrap;grid-column:auto;grid-row:auto}
#schedule .schedule-sign .ledger-row .day,#schedule .schedule-sign .ledger-row .date{color:#123c29}
#schedule .schedule-sign .ledger-row .time{color:#8d2028;text-align:right;font-size:3.1cqw}
.rule.schedule-divider{width:100%;max-width:none;height:3px;margin:0;border:0;background:linear-gradient(to bottom,#e5c780,#b78935 65%,#f2db9b);box-shadow:0 2px 4px #72521d22}
@media(max-width:900px){#schedule .schedule-layout{grid-template-columns:1fr;gap:30px}#schedule .location-art{max-width:580px}}
@media(max-width:700px){
  #schedule{padding:44px 0 40px}
  #schedule .location-art{margin:8px 0 0}
  #schedule .schedule-sign .ledger-row{
    grid-template-columns:1fr auto;
    gap:0 2cqw;
    font-size:clamp(11.5px,3.85cqw,15px);
    line-height:1.04;
  }
  #schedule .schedule-sign .ledger-row .day{grid-column:1;grid-row:1}
  #schedule .schedule-sign .ledger-row .date{grid-column:1;grid-row:2}
  #schedule .schedule-sign .ledger-row .time{grid-column:2;grid-row:1 / span 2;font-size:1em}
}
.social-links{gap:25px;flex-wrap:wrap;align-items:center}
:root{--social-tag-width:240px}
.social-links .social-art-link{display:flex;align-items:center;justify-content:center;flex:0 1 var(--social-tag-width);width:var(--social-tag-width);max-width:100%;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transition:transform .18s}
.social-links .social-art-link img{display:block;width:100%;height:auto;filter:drop-shadow(0 3px 3px #001b1733)}
.social-links .social-art-link:hover{background:transparent;transform:translateY(-2px)}
@media(max-width:700px){.social-links .social-art-link{flex-basis:calc(50% - 4px);width:calc(50% - 4px);max-width:var(--social-tag-width)}}
.social-links .social-tag,.footer-col .social-tag{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:58px;padding:10px 28px 10px 30px;border:1px solid #c6a155;border-radius:13px 3px 3px 13px;background:repeating-linear-gradient(15deg,#ffffff00 0 3px,#d6b46c0a 3px 4px),#174731;color:#fff5dc;text-decoration:none;box-shadow:1px 3px 0 #0a2c1d,2px 6px 9px #23170d26;font:500 16px/1.2 Fraunces,Georgia,serif}
.social-links .instagram-tag,.footer-col .instagram-tag{background-color:#8d2934;box-shadow:1px 3px 0 #561722,2px 6px 9px #23170d26}
.social-tag .tag-bells{transform:scale(.7) rotate(-12deg);transform-origin:left top;left:-5px;top:4px}
.social-links a.social-tag:hover,.footer-col a.social-tag:hover{background-color:#21573e;color:white;transform:translateY(-2px)}
.social-tag small{display:block;font:10px/1.5 'Work Sans',sans-serif;letter-spacing:.03em;margin-top:3px;color:#f8dfb9}
.social-icon{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;flex:none}
.facebook-icon{border-radius:50%;background:#0866ff;color:white;font:bold 29px/1 Arial,sans-serif;padding-top:5px;overflow:hidden}
.instagram-icon{position:relative;border-radius:7px;background:radial-gradient(circle at 25% 100%,#ffdd55,#ff543e 42%,#c837ab 65%,#5368d5)}
.instagram-icon::before{content:'';position:absolute;inset:4px;border:2px solid white;border-radius:5px}.instagram-icon::after{content:'';width:7px;height:7px;border:2px solid white;border-radius:50%}.instagram-icon i{position:absolute;right:6px;top:6px;width:3px;height:3px;background:white;border-radius:50%}
.tag-sparkle{position:absolute;right:7px;top:8px;color:#e8c97f;font:22px Georgia,serif}
.band .wrap{justify-content:center;text-align:center}.band h3{max-width:58ch}
.footer-top{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:start}
.footer-brand{display:flex;align-items:center;gap:26px}.footer-brand img.logo-mark{flex:none;max-width:38%;object-fit:contain;margin:0}.footer-brand p{margin:0;line-height:1.8;max-width:30ch}
.footer-nav{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:22px}.footer-col h2{color:var(--pine);letter-spacing:.15em}.footer-col>a:not(.social-tag){padding:8px 0;min-height:40px;margin:0;border-bottom:1px solid #b59b6a33}.footer-col .social-tag{font-size:14px;min-height:48px;margin-bottom:14px;padding-right:21px;gap:7px}
.sponsor-link{display:inline-flex;align-items:center;justify-content:center}.sponsor-card>.sponsor-link{width:100%;height:100%}.sponsor-link:hover{filter:brightness(.9)}
/* One divider per section boundary; the snowy banner retains its original lower edge. */
.art-header,.free-banner,.page-hero,.band,.site-footer{position:relative}
.page-hero,footer.site-footer{border:0}
.art-header::before,.free-banner::before,.page-hero::after,.band::before,.site-footer::before{content:'';position:absolute;left:0;right:0;height:var(--gold-divider-height);background:var(--gold-divider-fill);box-shadow:var(--gold-divider-shadow);z-index:25;pointer-events:none}
.art-header::before,.page-hero::after{bottom:0}
.free-banner::before,.band::before,.site-footer::before{top:0}
hr.rule,hr.rule.schedule-divider{display:block;width:100%;max-width:none;height:var(--gold-divider-height);margin:0;border:0;background:var(--gold-divider-fill);box-shadow:var(--gold-divider-shadow);position:relative;z-index:2}
.footer-top{grid-template-columns:minmax(0,.95fr) minmax(0,1.3fr);gap:32px;align-items:center;padding-bottom:22px}.footer-bottom{margin-top:12px}
.footer-brand{gap:20px;min-width:0}.footer-brand p{font-size:14px;line-height:1.7}.footer-nav{grid-template-columns:1fr 1.4fr .8fr;gap:22px;min-width:0}.footer-col{min-width:0}.footer-col a{line-height:1.5}
@media(max-width:850px){.footer-top{grid-template-columns:1fr;gap:30px}.footer-brand{max-width:580px}.footer-nav{max-width:750px}}
@media(max-width:700px){.hero-actions{gap:24px 18px}.gift-tag{font-size:17px;min-height:76px;padding:12px 23px 12px 35px}.hero{height:auto;min-height:570px}.hero-content{padding-top:45px;padding-bottom:55px}.social-links{gap:22px;margin-top:8px}.footer-nav{grid-template-columns:1fr 1fr}.footer-col:last-child{grid-column:1/-1}.footer-col:last-child .social-tag{margin-right:20px}.footer-brand{gap:20px}.footer-brand p{font-size:14px}.footer-sponsors>a{max-width:45%}.footer-sponsors>a img{max-width:100%}.location-sign{margin-left:0;margin-right:0}}
@media(max-width:800px){#all-ages::after{background:linear-gradient(180deg,#fff8e9cf 0%,#fff8e997 42%,#fff8e932 66%,transparent 80%)}}
.home-sponsor-band{padding:0;overflow:hidden;background:#efe7d6;border:0}.home-sponsor-band::before{content:none}
.home-sponsor-band::before,.home-sponsor-band::after{content:none}
.home-sponsor-link{position:relative;display:grid;min-height:clamp(145px,12.5vw,225px);overflow:hidden;width:100%;place-items:center;background:#a40814;color:#fff9e9;text-align:center;text-decoration:none;cursor:pointer;isolation:isolate;transition:transform .24s ease,filter .24s ease,box-shadow .24s ease}
.home-sponsor-link::before{position:absolute;inset:0;z-index:0;content:'';pointer-events:none;background:radial-gradient(ellipse at 14% 55%,#fff1b526 0 1%,transparent 10%),radial-gradient(ellipse at 86% 42%,#fff1b526 0 1%,transparent 11%);opacity:.45;transition:opacity .24s ease}
.home-sponsor-copy{position:relative;z-index:1;display:flex;max-width:min(900px,70vw);flex-direction:column;align-items:center;gap:clamp(7px,.7vw,12px);padding:20px 28px;line-height:1.1}
.sponsor-orbit{display:none}
.sponsor-orbit::before,.sponsor-orbit::after{content:'✦';position:absolute;color:#fff0ad;font:23px/1 Georgia,serif;text-shadow:0 0 7px #fff9cb,0 0 18px #eea621}.sponsor-orbit::before{top:-11px;left:19%}.sponsor-orbit::after{right:13%;bottom:-12px}
.home-sponsor-title{font-family:'Fraunces',Georgia,serif;font-size:clamp(26px,3.35vw,50px);font-weight:600;line-height:1.06;text-shadow:0 2px 5px #3b0007}
.home-sponsor-note{max-width:720px;font-family:'Fraunces',Georgia,serif;font-size:clamp(16px,1.7vw,25px);font-weight:500;line-height:1.18;text-shadow:0 2px 5px #3b0007}
.magic-word{color:#f0c55a;text-shadow:0 0 5px #fff4b8,0 0 17px #e7a52288;transition:color .28s ease,text-shadow .28s ease}
.sponsor-snow{display:none}
.sponsor-snow-one{top:10%;left:3%;font-size:clamp(15px,2.2vw,34px)}.sponsor-snow-two{top:28%;left:12%;font-size:clamp(12px,1.4vw,21px)}.sponsor-snow-three{bottom:14%;left:6%;font-size:clamp(14px,1.8vw,28px)}.sponsor-snow-four{bottom:26%;left:21%;font-size:clamp(12px,1.3vw,20px)}.sponsor-snow-five{top:12%;right:4%;font-size:clamp(15px,2.2vw,34px)}.sponsor-snow-six{top:28%;right:13%;font-size:clamp(12px,1.4vw,21px)}.sponsor-snow-seven{bottom:15%;right:7%;font-size:clamp(14px,1.8vw,28px)}.sponsor-snow-eight{bottom:25%;right:21%;font-size:clamp(12px,1.3vw,20px)}
.home-sponsor-link:hover,.home-sponsor-link:focus-visible{transform:translateY(-2px);filter:brightness(1.07);box-shadow:0 6px 16px #5e091655}.home-sponsor-link:hover::before,.home-sponsor-link:focus-visible::before{opacity:.95;animation:sponsor-sparkle 2.2s ease-in-out infinite alternate}.home-sponsor-link:focus-visible{outline:3px solid #ffe398;outline-offset:-5px}
.home-sponsor-link.is-activating{animation:sponsor-band-pulse .24s ease-out both}
@keyframes sponsor-band-pulse{50%{transform:scale(1.008);filter:brightness(1.16)}100%{transform:scale(1)}}
@keyframes sponsor-sparkle{to{transform:scale(1.08);opacity:.7}}
@media(max-width:700px){.home-sponsor-band{padding:0}.home-sponsor-link{min-height:clamp(145px,42vw,195px)}.home-sponsor-copy{max-width:92vw;padding:19px 25px 21px;gap:6px}.home-sponsor-title{font-size:clamp(23px,6.5vw,34px)}.home-sponsor-note{font-size:clamp(15px,4.5vw,21px)}.sponsor-orbit{right:4%;left:4%;height:62%}.sponsor-orbit::before,.sponsor-orbit::after{font-size:19px}.sponsor-snow-one,.sponsor-snow-five{font-size:24px}.sponsor-snow-two,.sponsor-snow-six{font-size:16px}.sponsor-snow-three,.sponsor-snow-seven{font-size:19px}.sponsor-snow-four,.sponsor-snow-eight{display:none}}
@media(prefers-reduced-motion:reduce){.home-sponsor-link,.home-sponsor-link::before,.sponsor-orbit,.sponsor-snow,.magic-word{animation:none!important;transition:none!important}}

/* Six sponsor marks with the shared label above the row. */
.footer-sponsors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;justify-items:center;column-gap:22px;row-gap:12px}
.footer-sponsors>span{grid-column:1/-1;width:100%;max-width:none;text-align:center}
.footer-sponsors>img,.footer-sponsors>a{max-width:100%;min-width:0}
.footer-sponsors>a img{max-width:100%;object-fit:contain}
.footer-sponsors .sbm-logo{width:160px;height:auto;max-height:80px}
.tier-3 .sponsor-card img[src*="strategic-brand"]{width:220px;height:auto;max-width:100%;object-fit:contain}
@media(max-width:800px){.footer-sponsors{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-sponsors>a{max-width:100%}}
@media(max-width:440px){.footer-sponsors{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Readable gold treatment for body copy; green panels receive a brighter companion shade. */
:root{--hashtag-gold:#8C5A16;--hashtag-gold-on-pine:#E5B965}
.hashtag-gold{color:var(--hashtag-gold)}
.footer-social .hashtag-gold,.page-hero .hashtag-gold{color:var(--hashtag-gold-on-pine)}

/* Equal pairs, with a smaller centered community tier. */
.tier-2 .sponsor-row,.tier-3 .sponsor-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.tier-2 .sponsor-card{min-height:290px;padding:40px}
.tier-3 .sponsor-row{max-width:800px;margin-inline:auto}
.tier-3 .sponsor-card{min-height:210px;padding:30px}
.tier-2 .sponsor-card img,.tier-3 .sponsor-card img{max-width:100%;object-fit:contain}
@media(max-width:600px){.tier-2 .sponsor-row,.tier-3 .sponsor-row{grid-template-columns:1fr}.tier-2 .sponsor-card{min-height:250px}.tier-3 .sponsor-row{max-width:380px}}
/* Christmas sign treatment for the photo policy and request dialog. */
.disclaimer-sign,.removal-dialog{background:linear-gradient(115deg,#fff9e9,#f8e9c7 55%,#fff8e6);border:3px solid #17503a;outline:2px solid #c79a4b;outline-offset:3px;border-radius:18px;box-shadow:0 8px 22px #62421b26,inset 0 0 0 3px #dfb559;color:#243a2e}
.disclaimer-sign{max-width:920px;margin:auto;padding:42px 48px;position:relative}
.disclaimer-sign:before{content:'✦';display:block;text-align:center;color:#b98522;font-size:32px;margin-top:-30px;margin-bottom:12px}
.sign-divider{display:flex;align-items:center;gap:18px;color:#b98522;margin:28px 0 18px}.sign-divider:before,.sign-divider:after{content:'';height:1px;background:#c79a4b;flex:1}
.disclaimer-sign h2{margin-top:0}.removal-button{font:600 17px 'Fraunces',Georgia,serif;background:#124832;color:#fff6dc;border:2px solid #d3a447;border-radius:6px;padding:12px 20px;min-height:44px;cursor:pointer;box-shadow:0 2px 4px #42280033}
.removal-button span{color:#edc05e;margin-left:12px}.removal-dialog{width:min(620px,calc(100% - 36px));max-height:85vh;padding:32px;overflow:auto}.removal-dialog::backdrop{background:#071b16b8;backdrop-filter:blur(3px)}
.removal-dialog h2{text-align:center;font-size:32px;margin:8px 24px 18px}.removal-dialog p{font-size:15px;line-height:1.6}.removal-close{position:absolute;right:12px;top:10px;width:44px;height:44px;background:#124832;color:#f3c766;border:2px solid #c79a4b;border-radius:50%;font-size:28px;cursor:pointer}
.removal-dialog label{display:block;margin:16px 0 5px;font-weight:600}.removal-dialog label span{color:#a31c28}.removal-dialog input,.removal-dialog select,.removal-dialog textarea{width:100%;padding:10px;border:1px solid #a9b3a8;background:#fffdf7;border-radius:4px;font:inherit;min-height:44px}.removal-dialog small{display:block;font-size:13px;margin-top:6px}.removal-dialog .removal-button{display:block;margin:18px auto 0}.removal-dialog button:disabled{opacity:.55;cursor:not-allowed}.removal-preview-note{border-top:1px solid #c79a4b;padding-top:16px}
@media(max-width:600px){.disclaimer-sign{padding:30px 23px}.removal-dialog{padding:28px 20px}.removal-dialog h2{font-size:26px}}

/* Approved evergreen-and-gold wood sign; text remains live and editable. */
.disclaimer-sign,.removal-sign-content{background:url('images/disclaimer-wood-sign.webp') center/100% 100% no-repeat;border:0;outline:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 7px 6px #68461925);color:#163e2c}
.disclaimer-sign{padding:115px 65px 58px;max-width:940px}
.disclaimer-sign:before{display:none}
.disclaimer-sign h2,.removal-dialog h2{font-family:'Fraunces',Georgia,serif;color:#073c2b}
.disclaimer-sign p{font-family:Georgia,serif;font-size:18px;line-height:1.55}
.removal-dialog{background:transparent;border:0;outline:0;box-shadow:none;border-radius:0;padding:0;width:min(680px,calc(100% - 24px));max-height:92vh;filter:none}
.removal-sign-content{padding:110px 54px 48px}
.removal-dialog h2{margin:0 0 16px;font-size:32px}
.removal-dialog p,.removal-dialog label{font-family:Georgia,serif}
.removal-close{position:sticky;float:right;top:16px;margin:26px 24px -70px 0;z-index:2}
.removal-button{background:linear-gradient(#185b40,#043e2c);border:3px ridge #dbad48;box-shadow:0 0 0 1px #0d452d,0 4px 5px #694b2c33;border-radius:2px}
@media(max-width:600px){.disclaimer-sign{padding:100px 30px 42px}.disclaimer-sign p{font-size:16px}.removal-sign-content{padding:115px 28px 42px}.removal-dialog h2{font-size:26px}}
/* Phone view: preserve the clear artwork-to-heading spacing used by the removal form. */
@media(max-width:700px){.disclaimer-sign{padding-top:180px}}
.removal-sign-content{padding-top:145px}
@media(max-width:600px){.removal-sign-content{padding-top:165px}}

/* Blue sponsorship banner: live wording over the supplied text-free winter artwork. */
.home-sponsor-link {
  min-height: clamp(165px, 14vw, 225px);
  background: #0b3768;
}
.home-sponsor-copy { z-index: 2; max-width: min(1250px, 74vw); }
.home-sponsor-title { font-size: clamp(29px, 4.1vw, 62px); }
.home-sponsor-note { font-size: clamp(16px, 2vw, 28px); }
.magic-word {
  position: relative;
  color: #e8ad45;
  background: linear-gradient(180deg, #fff3bc 0%, #e7a338 40%, #c77c20 72%, #fff0b6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #fff0d1;
  text-shadow: 0 0 3px #fff7d7, 0 0 13px #e7a52a99;
}
.sponsor-magic-trail { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.sponsor-trail-glow { fill: none; stroke: #f7b342; stroke-width: 18; stroke-linecap: round; opacity: .24; filter: url(#trail-glow); }
.sponsor-trail-stroke { fill: none; stroke: url(#trail-gold); stroke-width: 4.4; stroke-linecap: round; stroke-dasharray: 10 9; opacity: .76; }
.sponsor-trail-sparks { fill: #fff2b4; opacity: .72; filter: drop-shadow(0 0 4px #eeae35); }
.home-sponsor-link:hover .magic-word, .home-sponsor-link:focus-visible .magic-word { animation: sponsor-magic-brighten 1.15s ease-out both; }
.home-sponsor-link:hover .sponsor-trail-stroke, .home-sponsor-link:focus-visible .sponsor-trail-stroke { animation: sponsor-trail-trace 1.15s ease-out both; }
.home-sponsor-link:hover .sponsor-trail-glow, .home-sponsor-link:focus-visible .sponsor-trail-glow { animation: sponsor-trail-glow 1.15s ease-out both; }
.home-sponsor-link:hover .sponsor-trail-sparks, .home-sponsor-link:focus-visible .sponsor-trail-sparks { animation: sponsor-trail-sparks 1.15s ease-out both; }
@keyframes sponsor-magic-brighten { 42% { filter: brightness(1.3); text-shadow: 0 0 5px #fff9df, 0 0 22px #f5b43ecc; } 100% { filter: brightness(1); } }
@keyframes sponsor-trail-trace { 0% { stroke-dashoffset: 64; opacity: .3; } 42% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: .76; } }
@keyframes sponsor-trail-glow { 42% { opacity: .58; } 100% { opacity: .24; } }
@keyframes sponsor-trail-sparks { 42% { opacity: 1; filter: drop-shadow(0 0 9px #fff3a9); } 100% { opacity: .72; } }
@media (max-width:700px) {
  .home-sponsor-copy { max-width: 92vw; }
  .home-sponsor-title { font-size: clamp(24px, 6.7vw, 36px); }
  .home-sponsor-note { font-size: clamp(15px, 4.3vw, 21px); }
  .sponsor-magic-trail { transform: scale(1.22); transform-origin: center; }
}
@media (prefers-reduced-motion: reduce) {
  .home-sponsor-link:hover .magic-word, .home-sponsor-link:focus-visible .magic-word,
  .home-sponsor-link:hover .sponsor-trail-stroke, .home-sponsor-link:focus-visible .sponsor-trail-stroke,
  .home-sponsor-link:hover .sponsor-trail-glow, .home-sponsor-link:focus-visible .sponsor-trail-glow,
  .home-sponsor-link:hover .sponsor-trail-sparks, .home-sponsor-link:focus-visible .sponsor-trail-sparks { animation: none; }
}

/* Approved blue sponsorship banner: separate production background, live text, and transparent flourish. */
.home-sponsor-band {
  padding: 0;
  overflow: hidden;
  background: #073563;
}
.home-sponsor-link {
  display: grid;
  min-height: clamp(158px, 14.8vw, 198px);
  aspect-ratio: auto;
  place-items: center;
  overflow: hidden;
  background: #073563 url('images/sponsorship-blue-production-background.webp') center / cover no-repeat;
  isolation: isolate;
  transform: none;
  filter: none;
  box-shadow: none;
}
.home-sponsor-link::before { content: none; }
.home-sponsor-copy {
  z-index: 2;
  width: min(86%, 1790px);
  max-width: none;
  gap: clamp(14px, 1.25vw, 27px);
  padding: 0;
  transform: translateY(1.5%);
}
.home-sponsor-title {
  max-width: 1760px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(30px, 3.6vw, 64px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -.025em;
  color: #fffefa;
  text-shadow: 0 2px 4px #001b45c9, 0 0 10px #ffffff3d;
}
.home-sponsor-note {
  max-width: 1160px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(17px, 1.65vw, 26px);
  font-weight: 500;
  line-height: 1.15;
  color: #fff9eb;
  text-shadow: 0 2px 4px #001b45c9;
}
.magic-word {
  position: relative;
  display: inline-block;
  color: #dfa13a;
  -webkit-text-fill-color: #dfa13a;
  text-shadow: 0 1px 2px #001b45b3;
}
.magic-word::after {
  position: absolute;
  inset: 0;
  content: attr(data-text);
  color: #e6a23b;
  background: linear-gradient(180deg, #fff5c8 0%, #efbc60 18%, #d99227 56%, #ffd074 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #ffefbc;
  text-shadow: 0 0 5px #fff9de, 0 0 21px #f5bb53cc;
  opacity: 0;
  pointer-events: none;
}
.sponsor-magic-flourish {
  position: absolute;
  top: 36%;
  left: 7%;
  z-index: 1;
  width: 75%;
  height: auto;
  object-fit: contain;
  transform: translateY(-50%) rotate(6deg);
  transform-origin: 62% 50%;
  pointer-events: none;
  opacity: .72;
  filter: brightness(.82) saturate(.86);
}
.home-sponsor-link:hover,
.home-sponsor-link:focus-visible {
  transform: none;
  filter: none;
  box-shadow: none;
}
.home-sponsor-link:hover .magic-word::after,
.home-sponsor-link:focus-visible .magic-word::after,
.home-sponsor-link.is-sparkling .magic-word::after {
  animation: sponsor-magic-highlight 3.8s ease-in-out both;
}
.home-sponsor-link:hover .sponsor-magic-flourish,
.home-sponsor-link:focus-visible .sponsor-magic-flourish,
.home-sponsor-link.is-sparkling .sponsor-magic-flourish {
  animation: sponsor-flourish-highlight 3.8s ease-in-out both;
}
.home-sponsor-link.is-activating { animation: none; }
@keyframes sponsor-magic-highlight {
  0%, 100% { opacity: 0; filter: brightness(1); }
  18%, 55% { opacity: 1; filter: brightness(1.18); }
}
@keyframes sponsor-flourish-highlight {
  0%, 100% { opacity: .72; filter: brightness(.82) saturate(.86); }
  18%, 55% { opacity: .9; filter: brightness(1.05) saturate(1); }
}
@media (max-width: 700px) {
  .home-sponsor-link {
    min-height: clamp(180px, 52vw, 230px);
    aspect-ratio: auto;
    background-position: center;
  }
  .home-sponsor-copy {
    width: min(88%, 510px);
    gap: 11px;
    transform: translateY(0);
  }
  .home-sponsor-title {
    font-size: clamp(25px, 6.2vw, 34px);
    line-height: 1.05;
  }
  .home-sponsor-note {
    font-size: clamp(15px, 4vw, 20px);
    line-height: 1.17;
  }
  .sponsor-magic-flourish {
    top: 40%;
    width: 108%;
    left: 2%;
    right: auto;
    object-fit: contain;
    transform-origin: 62% 50%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-sponsor-link:hover .magic-word::after,
  .home-sponsor-link:focus-visible .magic-word::after,
  .home-sponsor-link.is-sparkling .magic-word::after,
  .home-sponsor-link:hover .sponsor-magic-flourish,
  .home-sponsor-link:focus-visible .sponsor-magic-flourish,
  .home-sponsor-link.is-sparkling .sponsor-magic-flourish {
    animation: none;
  }
}

/* Phone-only location link: keep the directions cue directly below the address art. */
@media (max-width:700px) {
  #schedule .location-art {
    display:grid;
    grid-template-columns:repeat(100, 1fr);
    align-items:start;
  }
  #schedule .location-art img {
    grid-column:1 / -1;
    grid-row:1;
  }
  #schedule .location-art .location-directions {
    position:static;
    grid-column:46 / span 30;
    grid-row:2;
    width:auto;
    margin-top:4px;
    transform:none;
    font-size:12px;
    line-height:1.25;
  }
}
