.event-gallery-link,.appearance-section{padding:clamp(2rem,6vw,5rem) clamp(1.25rem,6vw,7rem)}
.district-map-section{padding:clamp(3rem,7vw,6rem) clamp(1.25rem,6vw,7rem);background:var(--paper);display:grid;grid-template-columns:.8fr 1.2fr;gap:1.5rem 3rem;align-items:center}
.district-map-copy h2{font-size:clamp(2.3rem,5vw,4.7rem);line-height:1.02;margin:.5rem 0 1rem}.district-map-copy h2 span{color:var(--red)}.district-map-copy>p:not(.eyebrow){max-width:30rem;color:var(--muted)}
.district-map-frame{position:relative;min-width:0;overflow:hidden;border-radius:1rem;background:#e8edf2;box-shadow:0 1rem 3rem #071f3c18;aspect-ratio:4/3}.district-map-frame iframe{display:block;width:100%;height:100%;min-height:25rem;border:0}.district-map-source{grid-column:2;margin:0;color:var(--muted);font-size:.875rem}.district-map-source a{text-underline-offset:.2em}
.media-page-link{margin-top:1rem}
.event-gallery-link{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2rem;background:var(--paper)}
.bbq-event-logo{grid-column:1/-1;width:100%;height:auto;background:var(--navy-900);border-radius:1rem;padding:clamp(1rem,3vw,2.5rem)}
.event-gallery-link h2,.appearance-section h2{font-size:clamp(2.25rem,5vw,4.8rem)}
.event-gallery-link p{max-width:36rem}.event-gallery-link .eyebrow,.appearance-section .eyebrow{font-size:.875rem}
.appearance-section{background:var(--navy-900);color:white;text-align:center}
.appearance-section .eyebrow{color:var(--sky)}.appearance-section>p{max-width:38rem;margin:1.25rem auto}
.scratch-card{position:relative;max-width:58rem;min-height:34rem;margin:2rem auto 1rem;border:1px solid #ffffff55;border-radius:1.25rem;overflow:hidden;background:var(--navy-950)}
.appearance-details{min-height:20rem;display:flex;flex-direction:column;justify-content:center;padding:2rem;align-items:center}
.appearance-details h3{font-size:clamp(1.5rem,4vw,2.25rem);margin:0}.appearance-details p{margin:.5rem 0;max-width:30rem}
.fair-reveal{min-height:34rem;padding:2.5rem 1.25rem 3rem;background:linear-gradient(145deg,var(--navy-950),var(--navy-900))}
.fair-reveal .fair-kicker{font-size:.875rem;letter-spacing:.18em;font-weight:800;color:var(--sky)}
.fair-reveal h3{font-family:var(--headline);font-size:clamp(2.3rem,6vw,4.8rem);line-height:.98;letter-spacing:-.04em;text-shadow:0 2px 20px #031326}
.fair-reveal .fair-dates{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:900;letter-spacing:.06em;color:var(--gold);margin-top:1rem}
.fair-reveal dl{margin:1rem 0 1.2rem;background:#031326cc;padding:1rem 1.5rem;border-radius:.7rem;max-width:32rem}
.fair-reveal dl>div+div{margin-top:1rem}.fair-reveal dt{font-size:.875rem;color:var(--sky);font-weight:700}.fair-reveal dd{margin:.2rem 0 0;font-size:1rem}
.fair-reveal>a{font-size:.875rem;text-underline-offset:.25rem}
.flyer-reveal{min-height:0;padding:0;background:#fff}
.flyer-reveal img{display:block;width:100%;height:auto}
.scratch-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.scratch-card canvas[hidden]{display:none}.scratch-reveal{color:white;background:transparent;border:0;text-decoration:underline;text-underline-offset:.3rem;padding:.75rem;cursor:pointer}
.gallery-main{max-width:100rem;margin:auto;padding:clamp(2rem,6vw,6rem) clamp(1rem,4vw,4rem)}
.gallery-heading h1{font-size:clamp(3rem,7vw,7rem)}.gallery-heading h1 span{color:var(--red);text-shadow:none}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.photo-tile{background:var(--navy-950);color:white;border:0;border-radius:.75rem;overflow:hidden;padding:0;text-align:left;cursor:pointer}
.photo-tile img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.photo-tile span{display:block;padding:.65rem 1rem;font-size:.875rem}
#photo-dialog{width:min(95vw,65rem);max-height:92svh;padding:0;border:0;border-radius:1rem;color:var(--ink);background:var(--paper)}
#photo-dialog::backdrop{background:#031326df}.photo-dialog-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.5rem}
.photo-dialog-header h2{font-size:1.25rem}.photo-dialog-header button{border:0;background:transparent;padding:.75rem;cursor:pointer}
#selected-photo{width:100%;max-height:60svh;object-fit:contain;background:var(--navy-950)}.photo-dialog-body{padding:1rem 1.5rem}
@media(max-width:850px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-gallery-link{grid-template-columns:1fr}.event-gallery-link>.button{justify-self:start}.district-map-section{grid-template-columns:1fr}.district-map-source{grid-column:1}.district-map-frame{aspect-ratio:1.15}.district-map-frame iframe{min-height:22rem}}
@media(max-width:480px){.photo-grid{gap:.65rem}.photo-page .brand small{display:none}.photo-page .site-header>a:last-child{font-size:.875rem}.scratch-card,.appearance-details{min-height:22rem}}

/* Rosie’s upcoming appearances: exact dates and times from the supplied calendar. */
.calendar-reveal{min-height:34rem;padding:2rem clamp(1rem,3vw,2.5rem);background:linear-gradient(145deg,var(--navy-950),var(--navy-900));align-items:stretch;text-align:left}
.calendar-reveal .calendar-kicker{max-width:none;margin:0 0 .5rem;color:var(--sky);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.calendar-reveal h3{color:white;font-family:var(--headline);font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.1;letter-spacing:-.04em}
.calendar-reveal .calendar-timezone{margin:.6rem 0 1.3rem;color:#ffffffbb;font-size:.85rem}
.appearance-calendar{list-style:none;display:grid;gap:.8rem;margin:0;padding:0;width:100%}
.appearance-calendar>li{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:1.3rem;align-items:center;padding:1rem;border:1px solid #ffffff30;border-radius:.75rem;background:#ffffff08}
.appearance-date{display:grid;justify-items:center;align-content:center;border-right:1px solid #ffffff30;padding-right:1rem;line-height:1.1;color:white}
.appearance-date>span{font-size:.8rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase;color:var(--sky)}
.appearance-date>strong{font-family:var(--headline);font-size:2.8rem;letter-spacing:-.05em}
.appearance-date>small{margin-top:.3rem;font-size:.7rem;color:#ffffffbb}
.appearance-calendar h4{margin:0;color:white;font-family:var(--headline);font-size:clamp(1.05rem,2.4vw,1.5rem);line-height:1.3}
.appearance-calendar .appearance-location{margin:.35rem 0 0;color:var(--sky);font-size:.95rem}
.appearance-calendar .appearance-time{margin:.4rem 0 0;color:var(--gold);font-size:1rem;font-weight:750}
.awareness-note{display:flex;align-items:center;justify-content:center;gap:.8rem;max-width:58rem;margin:1.5rem auto 0;padding:1rem 1.25rem;background:#3d205d;border:1px solid #b89adb;border-radius:.75rem;color:#fff}
.awareness-note>span{color:#d6b4ff;font-size:1.5rem}.awareness-note p{margin:0;text-align:left}
.appearance-noscript{max-width:58rem;margin:1.5rem auto;text-align:left}.appearance-noscript ul{padding-left:1.3rem}.appearance-noscript li{margin:.75rem 0}
@media(max-width:480px){.calendar-reveal{padding:1.4rem 1rem}.appearance-calendar>li{grid-template-columns:4.25rem minmax(0,1fr);gap:.8rem;padding:.85rem .65rem}.appearance-date{padding-right:.65rem}.appearance-date>strong{font-size:2.3rem}.appearance-date>small{font-size:.6rem}.appearance-calendar .appearance-time{font-size:.9rem}.awareness-note{font-size:.9rem}}

.calendar-reveal .calendar-source { max-width: none; margin: 1.25rem 0 0; color: var(--sky); font-size: 1rem; text-underline-offset: .2em; }
@media (min-width: 850px) { .appearance-calendar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .appearance-calendar>li { grid-template-columns: 5rem minmax(0, 1fr); gap: 1rem; } }
