@charset "UTF-8";

/* Static line drawings, inspired by a printed brewery event programme. */
:root { --ornament-ochre: #9b824c; }
.ornament-library { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.ornament { display: block; flex: none; max-width: 100%; color: var(--beer); pointer-events: none; user-select: none; }
.ornament-sake-ink { color: var(--sake); }

.hero-flourish { display: flex; align-items: center; gap: 24px; margin-top: 24px; max-width: 420px; }
.hero-flourish::after { content: ""; flex: 1; height: 5px; border-block: 1px solid var(--line); }
.hero-drinks { width: 200px; height: auto; }
.hero-visual { position: relative; padding: 15px 15px 12px; border: 1px solid #cdcaba; background: #fcfbf7; }
.hero-visual::before, .hero-visual::after { content: ""; position: absolute; width: 30px; height: 30px; pointer-events: none; }
.hero-visual::before { top: 5px; left: 5px; border-top: 1px solid var(--ornament-ochre); border-left: 1px solid var(--ornament-ochre); }
.hero-visual::after { bottom: 5px; right: 5px; border-bottom: 1px solid var(--ornament-ochre); border-right: 1px solid var(--ornament-ochre); }
.hero-visual figcaption { padding-right: 48px; min-height: 38px; display: flex; align-items: center; }
.hero-hop { position: absolute; right: 16px; bottom: 12px; width: 35px; height: 38px; color: var(--ornament-ochre); }

.section-heading { align-items: center; }
.heading-title { display: flex; min-width: 0; align-items: center; gap: 16px; }
.heading-title h2 { min-width: 0; }
.heading-title h2 > span { display: inline-block; }
.heading-ornament { width: 44px; height: 48px; color: var(--ornament-ochre); }
.heading-ornament--market { width: 76px; height: 48px; }
.section-heading > p { flex-shrink: 0; }

/* The rule suggests a ticket stub; the full row remains the link target. */
.schedule-link { position: relative; }
.schedule-link::before { content: ""; position: absolute; inset: 17px auto 17px 174px; border-left: 1px dashed #c9c7b9; pointer-events: none; }
.event-emblem { width: 80px; height: 88px; margin-top: 26px; color: var(--event-color); opacity: .82; }
.event-emblem--market { width: 112px; height: 72px; }
.lineup-heading { align-items: center; }
.lineup-heading h4 { flex: 1; }
.lineup-ornament { width: 40px; height: 44px; color: var(--event-color); }

.visitor-guide .heading-ornament { color: var(--sake); }
.questions > div { border-top-style: dashed; }
.reading-label { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.reading-ornament { width: 44px; height: 46px; }
.reading-links > a:last-child .reading-ornament { color: var(--sake); }
.reading-type { letter-spacing: .06em; }
.reading-links h3 { margin-top: 12px; }
.reading-links h3 > span { display: inline-block; }
.shop-section { border-top: 1px solid var(--line); }
.shop-heading { display: flex; align-items: center; gap: 22px; }
.shop-heading h2 { min-width: 0; }
.shop-ornament { width: 106px; height: 91px; color: var(--ornament-ochre); }
.footer-brand-group { display: flex; align-items: center; gap: 25px; }
.footer-kura { width: 174px; height: 65px; color: #d6d2b7; }

@media (max-width: 1000px) {
  .hero-drinks { width: 160px; }
  .hero-flourish { margin-top: 17px; }
  .hero-visual { padding: 11px 11px 8px; }
  .heading-title { gap: 12px; }
  .heading-ornament { width: 38px; height: 42px; }
  .heading-ornament--market { width: 64px; }
  .section-heading > p { font-size: 10px; letter-spacing: .06em; }
  .schedule-link::before { left: 138px; }
  .shop-heading { gap: 16px; }
  .shop-ornament { width: 82px; height: 72px; }
  .footer-brand-group { gap: 18px; }
  .footer-kura { width: 130px; height: 49px; }
  .footer-top { flex-wrap: wrap; }
}
@media (max-width: 700px) {
  .hero-flourish { display: none; }
  .hero-visual { margin-top: 22px; }
  .hero-visual figcaption { font-size: 9px; }
  .heading-title { gap: 11px; align-items: flex-start; }
  .heading-ornament { width: 32px; height: 38px; }
  .heading-ornament--market { width: 49px; }
  .heading-title h2 { font-size: 21px; line-height: 1.65; letter-spacing: .025em; }
  .schedule-link::before { left: 107px; inset-block: 18px; }
  .event-date { position: relative; padding-right: 42px; }
  .event-location { width: 100%; margin-left: 0; }
  .event-emblem { position: absolute; right: 0; top: 0; width: 34px; height: 40px; margin: 0; }
  .event-emblem--market { width: 38px; height: 32px; top: 5px; }
  .lineup-ornament { width: 30px; height: 36px; }
  .lineup-heading { gap: 10px; }
  .lineup-heading > span { font-size: 22px; }
  .reading-ornament { width: 39px; height: 42px; }
  .shop-heading { gap: 16px; }
  .shop-ornament { width: 76px; height: 66px; }
  .shop-section .shop-heading h2 { font-size: 21px; }
  .footer-brand-group { display: block; }
  .footer-kura { width: 196px; height: 73px; margin-bottom: 18px; }
}
@media (max-width: 360px) {
  .schedule-link::before { left: 95px; }
  .event-day, .event-day-long { font-size: 32px; }
  .lineup-ornament { width: 26px; height: 30px; }
  .lineup-heading { gap: 8px; }
}
@media print {
  .ornament, .hero-flourish { display: none; }
  .hero-visual { padding: 0; border: 0; }
  .hero-visual::before, .hero-visual::after, .schedule-link::before { display: none; }
  .hero-visual figcaption { padding: 0; }
}
