/* V25 — stronger event photography and compact, clear choices. */
html:has(#photos), html:has(#aftermovie) { scroll-behavior: auto; }
.home-upcoming.light, .party-list-section {
  background: var(--party-ink);
  color: var(--party-paper);
  padding-block: 66px 68px;
  color-scheme: dark;
}
.home-upcoming .home-events-head h2, .party-list-head h2 { color: inherit; font-size: clamp(32px,4.3vw,62px); }
.home-upcoming .home-events-head p, .party-list-head p,
.party-row .party-format, .party-row .party-sale-status { color: #bbc0c2; }
.party-list { border-top-color: #777d7f; }
.party-row { grid-template-columns: 220px minmax(0,1fr) auto; gap: clamp(25px,4vw,65px); padding-block: 26px; border-bottom-color: #515759; }
.party-poster { aspect-ratio: 3 / 2; object-position: center 45%; }
.party-copy h2, .party-copy h3 { font-size: clamp(27px,3.2vw,46px); }
.party-meta { color: var(--party-paper); }
.party-cta { min-height: 50px; }
.party-cta .icon { transition: transform .25s var(--ease); }
.party-row:hover .party-cta .icon { transform: translate(3px,-3px); }
.home-upcoming .party-row:focus-visible, .party-list-section .party-row:focus-visible { outline-color: var(--party-paper); }

/* Two real locations, visible without a second oversized photo banner. */
.home-media { padding: 66px var(--gutter) 70px; background: var(--party-paper); color: var(--party-ink); }
.home-media-inner { max-width: 1440px; margin-inline: auto; }
.home-media-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 30px; }
.home-media-head h2 { font-size: clamp(32px,4.3vw,62px); font-weight: 600; line-height: 1.03; }
.home-media-head .back { color: var(--party-ink); }
.home-media-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.home-media-link { display: block; min-width: 0; }
.home-media-photo { overflow: hidden; background: var(--party-ink); }
.home-media-photo img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center 45%; }
.home-media-link:last-child .home-media-photo img { object-position: center 52%; }
.home-media-caption { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-top: 18px; }
.home-media-caption strong { font-size: 20px; font-weight: 600; line-height: 1.2; }
.home-media-caption small { display: block; margin-top: 9px; color: var(--party-muted); font-size: 10px; letter-spacing: .04em; }
.home-media-caption .icon { width: 25px; height: 25px; flex-shrink: 0; }
.home-media-link:focus-visible { outline-color: var(--color-accent); }

/* Let the location and the photographs carry the gallery. */
.gallery-intro { padding-top: 130px; padding-bottom: 30px; }
.gallery-intro h1 { font-size: clamp(56px,6.4vw,88px); }
.gallery-intro p { max-width: 42ch; }
.location-index { padding-top: 24px; padding-bottom: 65px; }
.location-grid { gap: 28px; }
.location-card:nth-child(2) { margin-top: 0; }
.location-card-media img { aspect-ratio: 5 / 4; object-position: center 45%; }
.location-card[href*="duernstein"] .location-card-media img { object-position: center 50%; }
.location-card-caption { margin-top: 20px; }
.location-card-caption h2 { font-size: clamp(25px,2.5vw,36px); }
.location-card-caption h2 em { display: inline; font-size: .68em; color: var(--party-muted); }
.location-card-count { margin-top: 13px; }
.location-card-arrow { border: 0; background: var(--color-accent); color: var(--party-paper); }
.location-card:hover .location-card-arrow { background: var(--color-accent-hover); color: var(--party-paper); }
.location-hero { height: 60svh; min-height: 450px; max-height: 620px; padding-bottom: 40px; }
.location-hero h1 em { display: inline-block; font-family: 'DM Sans',Arial,sans-serif; font-style: normal; font-size: .62em; font-weight: 500; text-transform: uppercase; line-height: 1.1; }
.location-hero-note { margin-top: 18px; }
.expanded-album .album-grid { gap: 16px; }
.expanded-album .album-grid .photo-link { display: block; aspect-ratio: 4 / 5; overflow: hidden; }
.expanded-album .album-grid img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.album-photo-heading { font-size: 30px; }
.album-view-note { color: var(--party-muted); font-size: 12px; margin: -12px 0 26px; }
.aftermovie-section { background: var(--party-ink); color: var(--party-paper); color-scheme: dark; }
.aftermovie-copy > p, .archive-artwork p, .aftermovie-player figcaption { color: #bbc0c2; }
.aftermovie-copy > .back { color: var(--party-paper); }
.archive-artwork { border-color: #515759; }
.aftermovie-section :focus-visible { outline-color: var(--party-paper); }

/* Sharpen the secondary pages without adding steps to the ticket path. */
.format-page .page-hero { min-height: 430px; height: 60svh; max-height: 600px; }
.format-page .section { padding-block: 50px; }
.format-page .detail-grid { gap: 50px; align-items: start; }
.format-page .detail-copy h2 { font-size: clamp(30px,3.6vw,48px); }
.format-page .detail-card { padding-top: 20px; }
.format-page .gallery { gap: 16px; }
.format-page .gallery .photo-link img { aspect-ratio: 4 / 3; }
.faq-section { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(0,1.35fr); gap: clamp(30px,5vw,80px); align-items: start; }
.faq-section .section-head { margin: 0; align-items: start; }
.faq-section .section-head h2 { flex-shrink: 1; font-size: 32px; line-height: 1.08; }
.faq-list summary { font-size: 18px; }

/* A clear brand sign-off instead of a small corporate footer. */
.site-footer.editorial-footer { padding-top: 38px; }
.editorial-footer .footer-main { align-items: flex-end; gap: 30px; }
.footer-wordmark { display: block; font-size: clamp(44px,7.4vw,96px); line-height: .95; font-weight: 600; letter-spacing: -.04em; }
.footer-signature { min-height: 0; padding-block: 5px; }
.footer-links { gap: 27px; }
.editorial-footer .footer-bottom { margin-top: 30px; }

@media (max-width: 1000px) {
  .party-row { grid-template-columns: 160px minmax(0,1fr); gap: 12px 30px; }
  .party-poster { grid-row: span 2; aspect-ratio: 1; }
  .party-action { grid-column: 2; align-items: flex-start; }
  .party-copy h2, .party-copy h3 { font-size: 32px; }
  .editorial-footer .footer-main { flex-direction: column; align-items: flex-start; gap: 24px; }
  .footer-links { width: 100%; justify-content: space-between; }
}
@media (max-width: 640px) {
  .home-upcoming.light, .party-list-section { padding-block: 40px 45px; }
  .home-upcoming .home-events-head, .party-list-head { gap: 14px; margin-bottom: 25px; }
  .home-upcoming .home-events-head h2, .party-list-head h2 { font-size: 32px; }
  .home-upcoming .home-events-head p, .party-list-head p { font-size: 13px; }
  .party-row { grid-template-columns: 96px minmax(0,1fr); gap: 10px 19px; padding-block: 23px; }
  .party-poster { aspect-ratio: 3 / 4; }
  .party-copy h2, .party-copy h3 { font-size: clamp(21px,5.9vw,28px); }
  .party-meta { margin-top: 12px; }
  .party-cta { min-height: 46px; }
  .home-media { padding: 40px 22px 44px; }
  .home-media-head { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 25px; }
  .home-media-head h2 { font-size: 32px; }
  .home-media-head .back { padding-top: 0; }
  .home-media-grid { grid-template-columns: 1fr; gap: 30px; }
  .home-media-photo img { aspect-ratio: 16 / 9; }
  .home-media-caption { padding-top: 14px; }
  .home-media-caption strong { font-size: 18px; }
  .home-media-caption small { font-size: 10px; margin-top: 7px; }
  .gallery-intro { padding: 105px 22px 25px; gap: 18px; }
  .gallery-intro h1 { font-size: clamp(44px,12vw,60px); }
  .gallery-intro p { font-size: 14px; }
  .location-index { padding-top: 14px; padding-bottom: 42px; }
  .location-grid { gap: 35px; }
  .location-card-media img { aspect-ratio: 4 / 3; }
  .location-card-caption h2 { font-size: 28px; }
  .location-card-caption h2 em { font-size: .66em; }
  .location-hero { height: 58svh; min-height: 410px; padding-bottom: 30px; }
  .location-hero h1 { font-size: clamp(39px,10.7vw,58px); }
  .expanded-album .album-grid { gap: 12px; }
  .album-view-note { margin-top: -10px; margin-bottom: 22px; font-size: 11px; }
  .format-page .page-hero { min-height: 400px; height: 56svh; }
  .format-page .section { padding-block: 36px; }
  .format-page .detail-grid { gap: 28px; }
  .format-page .gallery .photo-link img { aspect-ratio: 1; }
  .faq-section { grid-template-columns: 1fr; gap: 25px; }
  .faq-section .section-head h2 { font-size: 28px; }
  .faq-list summary { font-size: 17px; }
  .site-footer.editorial-footer { padding-top: 29px; }
  .footer-wordmark { font-size: clamp(35px,10.4vw,55px); }
  .editorial-footer .footer-main { gap: 20px; }
  .footer-links { gap: 12px; }
  .editorial-footer .footer-bottom { margin-top: 18px; }
}
@media (max-width: 359px) {
  .party-row { grid-template-columns: 74px minmax(0,1fr); gap: 10px 15px; }
  .party-copy h2, .party-copy h3 { font-size: 20px; }
  .home-upcoming .home-events-head h2, .party-list-head h2 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) { .party-cta .icon { transition: none; } .party-row:hover .party-cta .icon { transform: none; } }
