:root {
  --paper:#f5f8fb;
  --ink:#23364b;
  --muted:#67788a;
  --accent:#245b87;
  --line:#d7e1e9;
  --serif:'Noto Serif JP','Yu Mincho',serif;
  --sans:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px}
.renewal {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:14px/1.8 var(--sans);
  -webkit-font-smoothing:antialiased}
.renewal h1,.renewal h2,.renewal h3,.renewal p {
  margin:0}
.renewal a {
  color:inherit;
  text-decoration:none}
.renewal button,.renewal input,.renewal select {
  font:inherit}
.renewal button,.renewal a {
  -webkit-tap-highlight-color:transparent}
.renewal button {
  cursor:pointer}
.renewal img {
  max-width:100%;
  display:block}
.renewal [hidden] {
  display:none!important}
.renewal a,.renewal button {
  touch-action:manipulation}
.renewal :focus-visible {
  outline:3px solid #3c84b8;
  outline-offset:5px}
.wrap {
  width:min(1200px,calc(100% - 112px));
  margin-inline:auto}
.section-space {
  padding-block:94px}
.eyebrow {
  font:500 10px/1.5 var(--sans);
  letter-spacing:.19em;
  color:var(--accent);
  margin-bottom:15px!important}
.red-dot {
  color:var(--accent);
  padding-left:4px}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  margin-bottom:38px}
.section-heading h2 {
  font:600 clamp(23px,2.2vw,32px)/1.6 var(--serif);
  letter-spacing:.08em}
.section-intro {
  font-size:13px;
  color:var(--muted);
  line-height:2}
.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  font-size:12px;
  font-weight:500;
  padding:10px 0;
  border:0;
  border-bottom:1px solid #b6c8d7;
  background:none;
  color:var(--ink)}
.text-link span {
  font-size:18px;
  color:var(--accent)}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:16px 23px;
  font-size:12px;
  font-weight:500;
  letter-spacing:.05em;
  transition:background .2s,transform .2s}
.button:hover {
  transform:translateY(-2px)}
.button-red {
  background:var(--accent);
  color:white!important}
.button-red:hover {
  background:#194465}
.button-outline {
  border:1px solid #b8cad8}
.button span {
  font-size:19px}
.skip-link {
  position:fixed;
  left:16px;
  top:-100px;
  z-index:200;
  background:var(--paper);
  padding:15px}
.skip-link:focus {
  top:12px}
.site-header {
  height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 42px;
  position:sticky;
  top:0;
  z-index:50;
  background:var(--paper);
  border-bottom:1px solid rgba(0,0,0,.04)}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  flex-shrink:0}
.brand img {
  object-fit:contain}
.brand small {
  display:block;
  font-size:9px;
  letter-spacing:.14em;
  line-height:1.6;
  margin-bottom:4px}
.brand strong {
  display:block;
  font:600 24px/1.3 var(--serif);
  letter-spacing:.13em}
.site-nav {
  display:flex;
  gap:30px;
  align-items:center;
  font-size:11px;
  font-weight:500}
.site-nav>a:not(.button):hover {
  color:var(--accent)}
.site-nav .button {
  margin-left:8px;
  padding:13px 21px}
.menu-toggle {
  display:none}
.festival-hero {
  position:relative;
  height:min(700px,calc(100svh - 96px));
  min-height:530px;
  background:#192f46;
  color:white;
  overflow:hidden}
.hero-photos,.hero-photo,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%}
.hero-photo {
  object-fit:cover;
  object-position:center 58%;
  opacity:0;
  transition:opacity 1.3s ease}
.hero-photo.is-active {
  opacity:1}
.hero-photo:nth-child(2) {
  object-position:center 55%}
.hero-shade {
  background:linear-gradient(90deg,rgba(12,30,49,.65),rgba(12,30,49,.12) 65%),linear-gradient(0deg,rgba(8,24,42,.65),transparent 40%)}
.hero-copy {
  position:absolute;
  left:8.3%;
  top:17%;
  z-index:2}
.eyebrow.light {
  color:#fff;
  font-size:10px;
  display:flex;
  align-items:center;
  gap:12px}
.eyebrow.light>span[aria-hidden] {
  width:24px;
  height:1px;
  background:#cedeea}
.hero-copy h1 {
  font:500 clamp(42px,5.2vw,78px)/1.55 var(--serif);
  letter-spacing:.13em;
  text-shadow:0 2px 20px #102a4340;
  margin:23px 0 22px}
.hero-description {
  font-size:13px;
  letter-spacing:.12em;
  line-height:2.3}
.hero-link {
  margin-top:32px;
  display:inline-flex;
  gap:65px;
  align-items:center;
  font-size:11px;
  border-bottom:1px solid #becfdd;
  padding-bottom:11px}
.hero-link>span {
  font-size:21px}
.hero-vertical {
  position:absolute;
  right:4%;
  top:13%;
  writing-mode:vertical-rl;
  font:400 13px/1 var(--serif);
  letter-spacing:.3em}
.hero-bottom {
  position:absolute;
  bottom:27px;
  left:4%;
  right:4%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px}
.hero-caption {
  font-size:10px;
  display:flex;
  align-items:center;
  gap:12px;
  letter-spacing:.08em}
.small-cross {
  font-size:20px}
.slider-controls {
  display:flex;
  align-items:center;
  gap:15px}
.slide-number,.slide-total {
  font-size:10px;
  letter-spacing:.12em}
.slide-total {
  opacity:.6}
.slide-dots {
  display:flex;
  gap:5px}
.slide-dot {
  position:relative;
  width:23px;
  height:34px;
  border:0;
  background:none;
  padding:0}
.slide-dot:before {
  content:'';
  position:absolute;
  left:0;
  right:0;
  height:2px;
  top:16px;
  background:#ffffff60;
  transition:background .2s}
.slide-dot.is-active:before {
  background:white}
.slide-pause {
  border:1px solid #ffffff60;
  color:white;
  background:transparent;
  width:34px;
  height:34px;
  font-size:12px}
.scroll-hint {
  font-size:9px;
  letter-spacing:.17em;
  display:flex;
  align-items:center;
  gap:30px}
.scroll-hint span {
  font-size:22px}
.important-strip {
  background:#eaf0f6;
  border-bottom:1px solid var(--line);
  padding:16px 0}
.important-strip .wrap {
  display:flex;
  gap:23px;
  align-items:center}
.important-strip a {
  font-size:12px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  flex:1}
.quick-links {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--line);
  padding:30px 0}
.quick-links>a {
  display:flex;
  align-items:center;
  gap:22px;
  padding:7px 30px;
  border-right:1px solid var(--line)}
.quick-links>a:first-child {
  padding-left:0}
.quick-links>a:last-child {
  border:0;
  padding-right:0}
.quick-number {
  font:italic 14px Georgia,serif;
  color:#7d91a5}
.quick-links>a>span:nth-child(2) {
  font:500 15px var(--serif);
  letter-spacing:.07em}
.quick-links small {
  display:block;
  font:9px var(--sans);
  letter-spacing:.13em;
  color:var(--muted);
  margin-bottom:9px}
.circle-arrow {
  border:1px solid #cad8e4;
  width:37px;
  height:37px;
  display:grid;
  place-items:center;
  border-radius:50%;
  margin-left:auto;
  flex-shrink:0;
  font:18px var(--sans);
  transition:background .2s,color .2s}
.quick-links a:hover .circle-arrow,.festival-card:hover .circle-arrow {
  background:var(--accent);
  border-color:var(--accent);
  color:white}
.news-section {
  padding-top:74px}
.news-filters {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:25px}
.news-filters button {
  border:1px solid transparent;
  color:#566c80;
  background:transparent;
  padding:8px 21px;
  font-size:11px;
  border-radius:2px}
.news-filters button.is-active {
  background:var(--ink);
  color:white}
.news-filters button:hover {
  border-color:var(--ink)}
.news-row {
  border-top:1px solid var(--line)}
.news-row:last-child {
  border-bottom:1px solid var(--line)}
.news-row summary {
  display:grid;
  grid-template-columns:100px 98px 1fr 25px;
  align-items:center;
  gap:22px;
  min-height:87px;
  padding:22px 8px;
  cursor:pointer;
  list-style:none}
.news-row summary::-webkit-details-marker {
  display:none}
.news-row summary:hover .news-title {
  color:var(--accent)}
.news-row time {
  font-size:11px;
  letter-spacing:.04em;
  color:var(--muted)}
.tag {
  font-size:10px;
  white-space:nowrap;
  text-align:center;
  background:#e6eef5;
  color:#47667f;
  display:inline-block;
  padding:3px 10px;
  min-width:76px}
.tag-red {
  background:#e2edf7;
  color:#245b87}
.news-title {
  font-size:13px;
  font-weight:500;
  line-height:1.9;
  overflow-wrap:anywhere}
.news-plus {
  color:#70869a;
  font-size:20px;
  text-align:right;
  transition:transform .2s}
.news-row[open] .news-plus {
  transform:rotate(45deg)}
.news-body {
  padding:0 50px 28px 250px;
  color:#50697e;
  font-size:13px}
.rich-text {
  overflow-wrap:anywhere}
.rich-text p {
  margin-bottom:1em}
.rich-text a {
  text-decoration:underline;
  color:var(--accent)}
.rich-text img,.rich-text iframe {
  max-width:100%;
  height:auto}
.news-more {
  text-align:center;
  margin-top:24px}
.empty-state,.service-note {
  padding:24px;
  background:#eaf0f6;
  color:#5d7183;
  font-size:13px}
.service-note {
  margin-bottom:25px!important;
  border-left:3px solid var(--accent)}
.about-section {
  background:#eaf0f6}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center}
.about-photo {
  position:relative;
  padding:0 25px 20px 0}
.about-photo>img {
  width:100%;
  height:550px;
  object-fit:cover;
  object-position:center}
.photo-label {
  position:absolute;
  right:0;
  top:35px;
  writing-mode:vertical-rl;
  font:500 25px var(--serif);
  letter-spacing:.22em;
  background:var(--paper);
  padding:24px 19px}
.photo-index {
  position:absolute;
  bottom:0;
  left:0;
  font-size:8px;
  letter-spacing:.15em;
  color:#687f93}
.about-copy {
  position:relative}
.about-copy h2 {
  font:500 35px/1.9 var(--serif);
  letter-spacing:.09em;
  margin-bottom:28px}
.about-copy>p:not(.eyebrow) {
  font-size:13px;
  line-height:2.5;
  margin-bottom:22px}
.about-copy .text-link {
  margin-top:4px}
.about-watermark {
  position:absolute;
  right:-20px;
  bottom:-45px;
  font:170px var(--serif);
  color:var(--accent);
  opacity:.085;
  pointer-events:none}
.festival-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px}
.festival-card-photo {
  position:relative;
  overflow:hidden}
.festival-card-photo>img {
  width:100%;
  height:290px;
  object-fit:cover;
  transition:transform .5s}
.festival-card:hover img {
  transform:scale(1.025)}
.status-badge {
  position:absolute;
  left:20px;
  top:20px;
  background:var(--paper);
  color:#536b80;
  font-size:10px;
  letter-spacing:.05em;
  padding:7px 13px}
.status-open {
  background:#426247;
  color:#fff}
.festival-card-body {
  position:relative;
  padding:27px 0;
  border-bottom:1px solid var(--line)}
.festival-card-body .eyebrow {
  font-size:9px;
  margin-bottom:9px!important}
.festival-card-body h3 {
  font:600 25px var(--serif);
  letter-spacing:.1em;
  margin-bottom:13px}
.festival-card-body>p:not(.eyebrow) {
  font-size:12px;
  color:var(--muted);
  padding-right:45px}
.festival-card-body .circle-arrow {
  position:absolute;
  right:0;
  top:42px}
.journal-section {
  padding-top:0}
.journal-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px}
.journal-card>img {
  width:100%;
  aspect-ratio:1.55;
  object-fit:cover}
.journal-meta {
  display:flex;
  gap:18px;
  font-size:10px;
  color:var(--muted);
  margin:18px 0 12px!important}
.journal-card h3 {
  font-size:14px;
  font-weight:500;
  line-height:1.9;
  display:flex;
  justify-content:space-between;
  gap:15px}
.gallery-section {
  background:#eaf0f6}
.gallery-note {
  color:var(--muted);
  font-size:11px}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px}
.gallery-photo {
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden}
.gallery-photo[hidden],.gallery-more button[hidden] { display:none; }
.gallery-more { display:flex; flex-direction:column; align-items:center; gap:14px; margin-top:32px; }
.gallery-more p { margin:0; color:var(--muted); font-size:11px; letter-spacing:.08em; }
.gallery-more .button { min-width:180px; }
.gallery-photo>img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s}
.gallery-photo:hover>img {
  transform:scale(1.035)}
.gallery-photo>span {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  background:linear-gradient(transparent,#142d46c9);
  padding:45px 22px 18px;
  color:white;
  font-size:11px;
  display:flex;
  justify-content:space-between;
  gap:10px}
.gallery-photo b {
  font-size:16px}
.poster-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:30px;
  align-items:start}
.poster-grid img {
  max-height:600px;
  margin:auto;
  object-fit:contain}
.social-strip {
  padding-block:60px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px}
.social-strip h2 {
  font:500 23px var(--serif);
  margin-bottom:15px}
.social-strip p:not(.eyebrow) {
  font-size:11px;
  color:var(--muted)}
.social-strip .button {
  min-width:190px}
.site-footer {
  background:#192f46;
  color:#f3f7fb;
  padding:52px 0 20px}
.footer-main {
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:45px;
  align-items:start;
  padding-bottom:42px}
.site-footer .brand img {
  filter:none}
.footer-main>p {
  font:13px/2.2 var(--serif);
  letter-spacing:.09em;
  color:#c2d1df}
.footer-links {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  font-size:11px;
  color:#d1dde7}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  border-top:1px solid #ffffff25;
  padding-top:22px;
  font-size:10px;
  color:#b2c5d6}
.footer-bottom small {
  font-size:9px;
  letter-spacing:.1em}
.photo-dialog {
  padding:0;
  border:0;
  background:#152a40;
  color:white;
  max-width:calc(100vw - 32px);
  max-height:92svh;
  box-shadow:0 10px 80px #0006}
.photo-dialog::backdrop {
  background:#0d2034e8}
.photo-dialog img {
  max-width:90vw;
  max-height:78svh;
  object-fit:contain;
  margin:auto}
.photo-dialog p {
  padding:0 20px 14px;
  font:500 16px/1.8 var(--sans);
  overflow-wrap:anywhere}
.photo-meta { display:block; padding:18px 20px 6px; color:#b2c5d6; font-size:10px; letter-spacing:.06em; }
.photo-meta[hidden]+p { padding-top:18px; }
.photo-close {
  position:absolute;
  right:10px;
  top:10px;
  color:white;
  background:#152a40da;
  border:1px solid #ffffff70;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  padding:0;
  line-height:1;
  cursor:pointer;
  border-radius:50%;
  font-size:28px!important}
.photo-close svg { display:block; width:22px; height:22px; }
.page-intro {
  padding:55px 0 60px;
  border-bottom:1px solid var(--line)}
.breadcrumb {
  font-size:10px;
  color:var(--muted);
  margin-bottom:40px!important}
.breadcrumb span {
  padding:0 15px}
.page-intro h1 {
  font:600 42px/1.6 var(--serif);
  letter-spacing:.07em;
  margin-bottom:20px}
.page-intro>p:last-child {
  color:#60758a;
  font-size:13px;
  line-height:2}
.application-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px}
.application-card {
  border:1px solid var(--line);
  background:#ffffff}
.application-card>img {
  width:100%;
  height:250px;
  object-fit:cover}
.application-content {
  padding:32px}
.application-content h2 {
  font:600 28px var(--serif);
  margin-bottom:18px}
.application-content>.tag {
  margin-bottom:20px}
.application-content p {
  font-size:13px;
  color:var(--muted);
  line-height:2}
.application-content .button {
  width:100%;
  margin-top:22px}
.application-entry+.application-entry {
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-top:24px}
.deadline {
  font-size:12px!important;
  color:var(--accent)!important;
  margin-top:12px!important}
.closed-notice {
  padding:16px;
  background:#eaf0f6;
  text-align:center;
  font-size:12px;
  margin-top:22px!important}
.application-guide {
  border-top:1px solid var(--line);
  margin-top:60px;
  padding-top:40px}
.application-guide h2 {
  font:600 23px var(--serif);
  margin-bottom:30px}
.application-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  list-style:none;
  padding:0;
  margin:0}
.application-steps li {
  padding-left:20px;
  border-left:1px solid var(--line)}
.application-steps span {
  font:italic 22px Georgia;
  color:var(--accent)}
.application-steps h3 {
  font-size:14px;
  margin:12px 0}
.application-steps p {
  font-size:12px;
  color:var(--muted)}
.archive-tools {
  display:flex;
  gap:15px;
  align-items:flex-end;
  margin-bottom:30px}
.archive-tools label {
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:11px}
.archive-tools label:first-child {
  flex:1}
.archive-tools input,.archive-tools select {
  border:1px solid #c5d4e0;
  background:#ffffff;
  border-radius:0;
  padding:12px 15px;
  min-height:48px;
  width:100%;
  color:var(--ink)}

@media(min-width:1600px) {
  .festival-hero {
  height:780px;
  max-height:none}
.hero-copy {
  top:19%}
}

@media(max-width:1100px) {
  .site-header {
  padding-inline:25px}
.site-nav {
  gap:18px;
  font-size:10px}
.brand strong {
  font-size:22px}
.wrap {
  width:calc(100% - 72px)}
.about-grid {
  gap:55px}
.about-photo>img {
  height:510px}
.hero-copy {
  left:7%}
.quick-links>a {
  padding-inline:18px;
  gap:15px}
.quick-links>a>span:nth-child(2) {
  font-size:13px}
.footer-main {
  gap:30px}
.festival-card-photo>img {
  height:250px}
}

@media(max-width:800px) {
  html {
  scroll-padding-top:90px}
.site-header {
  height:80px;
  padding-inline:22px}
.brand strong {
  font-size:21px}
.brand small {
  font-size:8px}
.brand img {
  width:42px;
  height:42px}
.menu-toggle {
  display:flex;
  border:0;
  background:none;
  align-items:center;
  gap:10px;
  font-size:10px;
  padding:12px 0 12px 12px;
  color:var(--ink)}
.menu-lines {
  width:22px;
  height:11px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink)}
.site-nav {
  display:none;
  position:absolute;
  top:80px;
  left:0;
  right:0;
  padding:20px 25px 30px;
  background:var(--paper);
  border-top:1px solid var(--line);
  box-shadow:0 15px 20px #0001;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  font-size:13px}
.site-nav.is-open {
  display:flex}
.site-nav>a {
  padding:14px 0}
.site-nav .button {
  margin:12px 0 0;
  padding:15px 20px}
.wrap {
  width:calc(100% - 48px)}
.festival-hero {
  height:650px;
  min-height:530px;
  max-height:calc(100svh - 80px)}
.hero-copy {
  top:16%;
  left:7%}
.hero-copy h1 {
  font-size:60px}
.hero-vertical {
  right:6%}
.hero-bottom {
  left:7%;
  right:7%;
  flex-wrap:wrap;
  gap:15px}
.hero-caption {
  width:100%}
.scroll-hint {
  margin-left:auto}
.section-space {
  padding-block:65px}
.section-heading {
  gap:20px;
  margin-bottom:28px}
.section-heading h2 {
  font-size:24px}
.quick-links {
  padding:20px 0}
.quick-number {
  display:none}
.quick-links>a {
  padding-inline:13px;
  gap:8px}
.quick-links>a>span:nth-child(2) {
  font-size:12px}
.circle-arrow {
  width:28px;
  height:28px;
  font-size:14px}
.quick-links small {
  font-size:8px}
.news-row summary {
  grid-template-columns:85px 83px 1fr 18px;
  gap:14px}
.news-row time {
  font-size:10px}
.news-body {
  padding-left:15px}
.about-grid {
  gap:35px}
.about-copy h2 {
  font-size:27px}
.about-copy>p:not(.eyebrow) {
  font-size:11px}
.about-photo>img {
  height:475px}
.photo-label {
  font-size:20px;
  padding:20px 13px}
.festival-card-photo>img {
  height:225px}
.festival-cards {
  gap:22px}
.festival-card-body h3 {
  font-size:22px}
.gallery-note {
  display:none}
.footer-main {
  grid-template-columns:1fr 1fr}
.footer-main>p {
  display:none}
.social-strip h2 {
  font-size:21px}
.social-strip .button {
  min-width:155px}
.journal-section {
  padding-top:0}
.application-content {
  padding:24px}
.application-card>img {
  height:210px}
}

@media(max-width:540px) {
  .wrap {
  width:calc(100% - 40px)}
.festival-hero {
  height:660px;
  max-height:calc(100svh - 80px);
  min-height:530px}
.hero-photo {
  object-position:61% center}
.hero-shade {
  background:linear-gradient(90deg,#0c1e31a8,#0c1e3130),linear-gradient(0deg,#08182aa6,transparent 45%)}
.hero-copy {
  top:13%;
  left:8%}
.hero-copy h1 {
  font-size:clamp(36px,10.5vw,51px);
  line-height:1.65;
  margin-top:22px;
  margin-bottom:20px}
.hero-description {
  font-size:11px;
  line-height:2.3}
.hero-link {
  margin-top:25px;
  font-size:10px;
  gap:45px}
.eyebrow.light {
  font-size:8px;
  letter-spacing:.15em}
.hero-vertical {
  font-size:10px;
  top:10%}
.hero-bottom {
  bottom:23px}
.hero-caption {
  font-size:8px}
.slider-controls {
  gap:12px}
.slide-dot {
  width:18px}
.slide-dots {
  gap:3px}
.scroll-hint {
  font-size:8px;
  gap:12px}
.scroll-hint>span {
  font-size:17px}
.important-strip .wrap {
  gap:12px;
  align-items:flex-start}
.important-strip a {
  font-size:10px}
.important-strip .tag {
  min-width:auto;
  padding:4px 7px;
  font-size:8px}
.quick-links {
  width:100%;
  padding:0;
  grid-template-columns:1fr}
.quick-links>a,.quick-links>a:first-child,.quick-links>a:last-child {
  padding:20px 24px;
  border:0;
  border-bottom:1px solid var(--line)}
.quick-number {
  display:block;
  width:25px}
.quick-links>a>span:nth-child(2) {
  font-size:13px}
.quick-links small {
  display:inline-block;
  min-width:93px;
  margin:0 14px 0 0}
.quick-links .circle-arrow {
  width:28px;
  height:28px}
.section-space {
  padding-block:53px}
.section-heading {
  align-items:flex-start;
  flex-direction:column;
  gap:15px;
  margin-bottom:24px}
.section-heading h2 {
  font-size:24px}
.section-heading .text-link {
  font-size:11px}
.eyebrow {
  font-size:9px;
  margin-bottom:12px!important}
.news-filters {
  gap:4px;
  margin-bottom:20px}
.news-filters button {
  padding:8px 13px;
  font-size:10px}
.news-row summary {
  grid-template-columns:82px 1fr 20px;
  gap:10px 12px;
  padding:20px 0;
  min-height:102px}
.news-row .tag {
  justify-self:start;
  font-size:9px;
  padding:2px 10px}
.news-title {
  grid-row:2;
  grid-column:1/3;
  font-size:12px}
.news-plus {
  grid-row:1/3;
  grid-column:3}
.news-body {
  padding:0 5px 22px;
  font-size:12px}
.about-grid {
  grid-template-columns:1fr;
  gap:38px}
.about-photo {
  padding-right:25px}
.about-photo>img {
  height:410px}
.photo-label {
  font-size:22px}
.about-copy {
  padding-left:12px}
.about-copy h2 {
  font-size:31px;
  line-height:1.8}
.about-copy>p:not(.eyebrow) {
  font-size:12px}
.about-watermark {
  right:0}
.festival-cards,.journal-grid {
  grid-template-columns:1fr;
  gap:32px}
.festival-card-photo>img {
  height:245px}
.festival-card-body {
  padding-top:22px}
.festival-card-body>p:not(.eyebrow) {
  font-size:11px}
.festival-card-body .circle-arrow {
  top:40px;
  width:36px;
  height:36px}
.section-intro {
  font-size:11px}
.journal-section {
  padding-top:0}
.journal-grid {
  gap:34px}
.gallery-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px}
.gallery-photo>span {
  font-size:9px;
  padding:30px 12px 12px}
.gallery-photo-2 span,.gallery-photo-3 span {
  font-size:8px}
.social-strip {
  padding-block:45px;
  flex-direction:column;
  align-items:flex-start;
  gap:23px}
.social-strip h2 {
  font-size:20px}
.social-strip p:not(.eyebrow) {
  font-size:10px;
  line-height:2}
.social-strip .button {
  width:100%}
.site-footer {
  padding-top:40px}
.footer-main {
  grid-template-columns:1fr;
  gap:28px;
  padding-bottom:30px}
.footer-links {
  gap:12px}
.footer-bottom {
  font-size:9px}
.footer-bottom small {
  font-size:8px}
.application-grid,.application-steps {
  grid-template-columns:1fr;
  gap:25px}
.page-intro {
  padding:25px 0 40px}
.breadcrumb {
  margin-bottom:32px!important}
.page-intro h1 {
  font-size:30px}
.application-content {
  padding:26px}
.application-card>img {
  height:240px}
.application-guide {
  margin-top:40px}
.archive-tools {
  flex-wrap:wrap}
.archive-tools label:first-child {
  flex-basis:100%}
.archive-tools label {
  flex:1}
.photo-dialog img {
  max-width:calc(100vw - 32px)}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
*,*::before,*::after {
  transition:none!important;
  animation:none!important}
}

.notification-button {
  border:0;
  border-bottom:1px solid #839bb0;
  background:none;
  color:inherit;
  padding:0 0 3px;
  font-size:11px!important}
.notification-status:empty {
  display:none}
.notification-status {
  font-size:10px;
  max-width:260px}

.article-content {
  max-width:800px;
  margin-inline:auto}
.article-cover {
  width:100%;
  max-height:550px;
  object-fit:contain;
  margin-bottom:40px}
.article-prose {
  font-size:15px;
  line-height:2.1}
.article-prose h2 {
  font:600 25px/1.8 var(--serif);
  margin:2em 0 1em}
.article-prose h3 {
  font-size:20px;
  margin:1.5em 0 .8em}
.article-prose p {
  margin-bottom:1.5em}
.article-gallery {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:40px 0}
.article-gallery img {
  width:100%;
  height:260px;
  object-fit:cover}
.article-content>.text-link {
  margin-top:35px}
.related-articles {
  border-top:1px solid var(--line)}
.access-grid {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:60px;
  align-items:start}
.access-grid h2 {
  font:600 30px var(--serif);
  margin-bottom:25px}
.access-grid p {
  font-size:13px}
.access-details {
  margin:30px 0}
.access-details dt {
  font-size:12px;
  color:var(--accent);
  margin-top:18px}
.access-details dd {
  font-size:13px;
  margin:7px 0}
.access-map {
  width:100%;
  height:470px;
  border:0}
.faq-list details {
  border-bottom:1px solid var(--line);
  padding:24px 0}
.faq-list summary {
  cursor:pointer;
  list-style:none;
  font-size:14px;
  display:flex;
  justify-content:space-between;
  gap:25px}
.faq-list summary::-webkit-details-marker {
  display:none}
.faq-list summary>span {
  color:var(--accent)}
.faq-list details p {
  font-size:13px;
  padding-top:20px;
  color:var(--muted)}
.closed-notice a {
  text-decoration:underline;
  text-underline-offset:4px}
@media(max-width:800px) {
  .access-grid {
  grid-template-columns:1fr;
  gap:30px}
.access-map {
  height:350px}
}
@media(max-width:540px) {
  .article-prose {
  font-size:13px}
.article-prose h2 {
  font-size:21px}
.article-gallery {
  grid-template-columns:1fr}
.page-intro h1 {
  overflow-wrap:anywhere}
.faq-list summary {
  font-size:12px}
.faq-list details p {
  font-size:12px}
}

/* District identity and shared inner-page layouts */
.footer-identity { min-width:0; }
.footer-crest { display:flex; align-items:center; justify-content:center; width:86px; height:86px; padding:9px; background:var(--paper); border-radius:50%; flex-shrink:0; }
.site-footer .footer-crest img { width:72px; height:56px; max-width:100%; object-fit:contain; filter:none; }
.footer-identity>p { font-size:11px; line-height:2.1; color:#c2d2e0; margin-top:22px; }
.footer-main { grid-template-columns:1.35fr 1fr 1fr; gap:50px; }
.footer-label { color:#a1b8cc; font-size:9px; letter-spacing:.16em; margin-bottom:8px; }
.footer-social { display:flex; align-items:center; gap:10px; }
.footer-social svg { flex-shrink:0; }
.site-nav a[aria-current=page] { color:var(--accent); }
.page-intro { position:relative; overflow:hidden; }
.page-intro::after { content:'豊浦'; position:absolute; right:0; bottom:-25px; font:600 130px/1.2 var(--serif); letter-spacing:.12em; color:#23364b04; pointer-events:none; z-index:-1; }
.breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:6px 0; }
.content-heading { font:600 25px/1.6 var(--serif); margin:20px 0 25px!important; }
.guide-feature { display:grid; grid-template-columns:1.05fr 1fr; gap:65px; align-items:center; }
.guide-feature>img { width:100%; height:400px; object-fit:cover; }
.guide-feature h2 { font:500 32px/1.85 var(--serif); margin-bottom:24px; }
.guide-feature p:not(.eyebrow) { font-size:13px; line-height:2.3; margin-bottom:16px; color:#5a7085; }
.guide-link-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:55px; }
.guide-link-card { position:relative; padding:30px 25px 65px; border:1px solid var(--line); transition:background .2s; }
.guide-link-card:hover { background:#eaf0f6; }
.guide-link-card .eyebrow { display:block; }
.guide-link-card h2 { font:600 20px/1.6 var(--serif); margin-bottom:15px; }
.guide-link-card p { font-size:12px; color:var(--muted); }
.guide-link-card .circle-arrow { position:absolute; right:22px; bottom:20px; }
.guide-archive { border-top:1px solid var(--line); }
.archive-links>a { display:grid; grid-template-columns:100px 1fr 20px; align-items:center; gap:23px; padding:27px 0; border-bottom:1px solid var(--line); font-size:13px; }
.archive-links>a:first-child { border-top:1px solid var(--line); }
.archive-links b { color:var(--accent); font-size:19px; font-weight:400; }
.archive-notice { display:flex; align-items:center; flex-wrap:wrap; gap:14px 22px; background:#eaf0f6; border-left:3px solid var(--accent); padding:22px 25px; margin-bottom:45px; }
.archive-notice p { flex:1; font-size:12px; min-width:220px; }
.archive-notice a { font-size:11px; text-decoration:underline; text-underline-offset:5px; }
.schedule-comparison { display:grid; grid-template-columns:1fr 1.25fr; gap:28px; }
.schedule-card { padding:35px; background:#eaf0f6; }
.schedule-card-accent { background:#ffffff; border-top:3px solid var(--accent); }
.schedule-card h3 { font:600 26px var(--serif); margin-bottom:25px; }
.schedule-card dl { margin:0; }
.schedule-card dt { font:500 17px/1.8 var(--serif); margin-top:20px; }
.schedule-card dd { font-size:13px; margin:8px 0 0; color:#5e7488; }
.schedule-card small { display:block; font-size:10px; margin-top:5px; }
.section-footnote { font-size:12px; color:var(--muted); line-height:2; margin:23px 0 35px!important; }
.traffic-map { display:block; margin:30px auto; max-width:950px; }
.traffic-map img { width:100%; height:auto; }
.traffic-map>span { display:block; text-align:right; font-size:11px; margin-top:12px; color:var(--accent); }
.traffic-legend { padding:28px; background:#eaf0f6; margin-bottom:25px; }
.traffic-legend h3 { font:600 18px var(--serif); margin-bottom:20px; }
.traffic-legend ul { list-style:none; padding:0; margin:0; }
.traffic-legend li { display:flex; gap:14px; align-items:center; font-size:12px; margin-top:12px; }
.legend-line { display:inline-block; width:24px; height:3px; flex-shrink:0; }
.past-application-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:55px; align-items:start; }
.table-scroll { width:100%; overflow-x:auto; }
.data-table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.data-table th,.data-table td { border-bottom:1px solid var(--line); padding:16px 13px; font-weight:400; }
.data-table thead { background:#eaf0f6; }
.data-table tbody th { white-space:nowrap; font-weight:500; }
.event-timeline { list-style:none; padding:0; margin:25px 0; }
.event-timeline li { display:grid; grid-template-columns:105px 1fr; gap:22px; border-left:1px solid #c6d6e3; padding:0 0 30px 20px; }
.event-timeline time { color:var(--accent); font-size:11px; }
.event-timeline time b { display:block; font:500 20px/2 var(--serif); }
.event-timeline h3 { font-size:14px; margin-bottom:10px; }
.event-timeline p { font-size:12px; color:var(--muted); }
.past-poster { padding:18px; background:#eaf0f6; }
.past-poster p { font-size:11px; color:var(--muted); margin-top:15px; }
.past-application-grid .button { margin-top:25px; }
.map-toolbar { display:flex; gap:22px; padding:25px; background:#eaf0f6; }
.control-group { display:flex; flex-direction:column; gap:10px; flex:1; }
.control-group label { font-size:11px; }
.control-group select { appearance:auto; min-height:48px; border:1px solid #c6d6e3; background:#ffffff; color:var(--ink); padding:10px 12px; width:100%; border-radius:0; }
.route-legend { display:flex; flex-wrap:wrap; gap:24px; margin:24px 0 15px; }
.route-legend span { display:flex; align-items:center; gap:8px; font-size:11px; }
.route-legend i { width:22px; height:3px; }
.route-page #map { height:490px; width:100%; z-index:1; border:1px solid var(--line); }
.route-page .leaflet-container { font-family:var(--sans); }
.route-page .leaflet-control-attribution a { color:#276086; text-decoration:underline; }
.route-status { font-size:11px; color:var(--muted); margin:15px 0 45px!important; }
.point-list-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.point-column { border:1px solid var(--line); background:#ffffff; padding:22px; min-width:0; border-top:3px solid #c6d6e3; }
.point-column:nth-child(1).is-highlighted { border-top-color:#28a745; }
.point-column:nth-child(2).is-highlighted { border-top-color:#007bff; }
.point-column:nth-child(3).is-highlighted { border-top-color:#dc3545; }
.column-title { font:600 20px var(--serif); margin-bottom:24px!important; }
.column-title span { margin-right:13px; font:italic 13px Georgia,serif; color:var(--muted); }
.point-card { display:block; width:100%; text-align:left; border:0; border-top:1px solid var(--line); background:transparent; color:var(--ink); padding:18px 0; }
.point-card strong { font-size:12px; font-weight:500; }
.point-time { display:block; color:var(--accent); font-size:12px; margin-top:5px; }
.point-card small { display:block; color:var(--muted); font-size:10px; margin-top:8px; line-height:1.8; }
.point-card:hover strong { color:var(--accent); }
.point-empty { padding:18px 0; font-size:12px; color:var(--muted); }
.error-page { text-align:center; padding:75px 0 100px; }
.error-number { display:block; font:400 130px/1.3 var(--serif); color:var(--accent); letter-spacing:.05em; margin:0 0 20px; }
.error-page h1 { font:500 30px/1.8 var(--serif); margin-bottom:24px; }
.error-page>p:not(.eyebrow) { color:var(--muted); font-size:13px; line-height:2.2; }
.error-actions { display:flex; gap:18px; justify-content:center; margin-top:36px; }
@media(max-width:1000px) { .footer-main { gap:30px; } .footer-crest { width:68px; height:68px; } .guide-feature { gap:35px; } .guide-link-grid { gap:15px; } .guide-link-card { padding-inline:20px; } .guide-link-card h2 { font-size:17px; } .past-application-grid { gap:30px; } }
@media(max-width:800px) { .footer-main { grid-template-columns:1fr 1fr; } .footer-identity { grid-column:1/-1; } .footer-identity>p { max-width:none; } .guide-feature { grid-template-columns:1fr; gap:30px; } .guide-feature>img { height:350px; } .guide-link-grid { grid-template-columns:1fr; gap:15px; } .guide-link-card { padding:25px 75px 25px 25px; } .guide-link-card .circle-arrow { bottom:30px; } .schedule-comparison { grid-template-columns:1fr; } .past-application-grid { grid-template-columns:1fr; } .past-poster { max-width:480px; } .point-list-columns { gap:12px; } .point-column { padding:15px; } .column-title { font-size:18px; } }
@media(max-width:540px) { .footer-main { gap:35px 20px; } .footer-identity .brand strong { font-size:23px; } .footer-identity>p { font-size:10px; } .footer-main .footer-links { font-size:10px; } .footer-label { font-size:8px; letter-spacing:.1em; } .footer-social { gap:7px; flex-wrap:wrap; } .footer-social svg { width:18px; height:18px; } .notification-button { text-align:left; font-size:10px!important; } .page-intro::after { font-size:90px; } .guide-feature>img { height:270px; } .guide-feature h2 { font-size:28px; } .guide-feature p:not(.eyebrow) { font-size:12px; } .guide-link-grid { margin-top:35px; } .archive-links>a { grid-template-columns:1fr 20px; gap:12px; padding:22px 0; font-size:12px; } .archive-links .tag { grid-column:1; justify-self:start; } .archive-links a>span:nth-child(2) { grid-row:2; } .archive-links b { grid-column:2; grid-row:1/3; } .archive-notice { padding:20px; margin-bottom:32px; gap:12px; } .archive-notice p { min-width:0; flex-basis:100%; } .schedule-card { padding:26px; } .schedule-card h3 { font-size:23px; } .map-toolbar { flex-wrap:wrap; padding:18px; gap:18px; } .control-group { flex-basis:calc(50% - 18px); } .control-group:last-child { flex-basis:100%; } .control-group select { font-size:16px; } .route-page #map { height:370px; } .route-status { margin-bottom:30px!important; } .point-list-columns { grid-template-columns:1fr; gap:22px; } .point-column { padding:23px; } .point-card { display:grid; grid-template-columns:1fr auto; gap:6px 12px; } .point-card small { grid-column:1/-1; } .point-time { margin-top:0; } .route-legend { gap:20px; } .error-page { padding-block:50px 65px; } .error-number { font-size:95px; } .error-page h1 { font-size:24px; } .error-page>p:not(.eyebrow) { font-size:12px; } .error-actions { flex-direction:column; } .data-table th,.data-table td { padding:14px 10px; } }
.page-intro h1 { text-wrap:balance; }
/* Put participation, local posters, and the yearly route within easy reach. */
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; position:absolute; left:8.3%; bottom:92px; z-index:3; }
.hero-copy .eyebrow { font-size:12px; letter-spacing:.24em; }
.hero-apply { padding:15px 20px; }
.hero-route { font-size:11px; border-bottom:1px solid #ffffff90; padding-block:10px; display:flex; gap:22px; align-items:center; }
.hero-open-label,.nav-open-label { font-size:10px!important; background:#fff; color:#245b87; padding:3px 7px; line-height:1.4; white-space:nowrap; }
.nav-open-label { font-size:9px!important; }
.site-nav .nav-apply { gap:14px; }
.menu-toggle { position:relative; }
.menu-open-dot { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--accent); right:-7px; top:10px; }
.home-participate { padding-block:48px 55px; }
.home-participate .section-heading { margin-bottom:27px; }
.join-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
.join-card { display:grid; grid-template-columns:34% 1fr; background:#ffffff; border:1px solid var(--line); min-width:0; transition:border-color .2s; }
.join-card:hover { border-color:var(--accent); }
.join-card>img { height:100%; width:100%; object-fit:cover; }
.join-copy { padding:25px; }
.join-status { font-size:10px; display:inline-block; color:#60758a; margin-bottom:12px; }
.join-status-open { background:#426247; color:white; padding:4px 10px; }
.join-status-recruiting { background:#e8f2f8; color:#245b87; padding:4px 10px; border:1px solid #b8d0e0; }
.join-copy h3 { font:600 26px var(--serif); margin-bottom:13px; }
.join-copy p { font-size:11px; color:var(--muted); line-height:1.9; }
.join-copy .join-deadline { color:var(--accent); font-weight:500; }
.join-action { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:19px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; font-weight:500; }
.join-action b { font-size:19px; font-weight:400; color:var(--accent); }
.join-card-open { border:1px solid #245b8770; background:#edf5fc; }
.join-card-recruiting { border-color:#a8c6d9; background:#f4f9fc; }
.join-card-open .join-action { background:var(--accent); color:white; padding:11px 14px; border:0; }
.join-card-open .join-action b { color:white; }
.noticeboard { background:#eaf0f6; padding-block:65px; }
.noticeboard-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.noticeboard-card { display:flex; flex-direction:column; background:#ffffff; border:1px solid #d2dfea; transition:box-shadow .2s; min-width:0; }
.noticeboard-card:hover { box-shadow:0 8px 25px #23364b12; }
.noticeboard-image { padding:22px; display:flex; align-items:center; justify-content:center; height:530px; }
.noticeboard-image img { width:100%; height:100%; object-fit:contain; }
.noticeboard-caption { display:flex; align-items:center; gap:15px; border-top:1px solid var(--line); padding:20px; }
.poster-number { font:italic 16px Georgia,serif; color:#8298ac; }
.noticeboard-caption h3 { font:500 13px/1.7 var(--sans); overflow-wrap:anywhere; }
.noticeboard-caption time { font-size:10px; color:var(--muted); }
.poster-expand { margin-left:auto; display:flex; gap:12px; align-items:center; white-space:nowrap; font-size:10px; color:var(--accent); }
.poster-expand b { font-size:20px; font-weight:400; }
.application-card-open { border:2px solid #245b8780; background:#edf5fc; }
.application-card-recruiting { border:1px solid #a8c6d9; background:#f4f9fc; }
.tag-recruiting { color:#245b87; background:#e8f2f8; border:1px solid #b8d0e0; }
.form-route-link { display:flex; justify-content:space-between; gap:25px; align-items:center; border:1px solid var(--line); padding:23px; margin-top:35px; font-size:13px; }
.form-route-link b { font-size:20px; color:var(--accent); font-weight:400; }
.footer-crest { width:60px; height:60px; padding:0; }
.site-footer .footer-crest img { width:84px; height:60px; max-width:none; flex-shrink:0; }
@media(max-width:1000px) { .noticeboard-image { height:450px; padding:18px; } .join-copy { padding:20px; } .join-copy h3 { font-size:23px; } .join-grid { gap:20px; } .poster-expand { font-size:9px; gap:6px; } }
@media(max-width:800px) { .join-card { grid-template-columns:29% 1fr; } .join-copy { padding:17px; } .join-copy h3 { font-size:21px; } .join-copy p { font-size:10px; } .noticeboard-image { height:370px; padding:14px; } .noticeboard-caption { padding:15px; gap:10px; } .poster-expand { font-size:0; } .noticeboard-grid { gap:20px; } }
@media(max-width:540px) { .hero-actions { flex-direction:column; align-items:flex-start; gap:9px; margin-top:23px; } .hero-apply { font-size:11px; padding:13px 17px; gap:16px; } .hero-route { font-size:10px; padding-block:7px; } .home-participate { padding-block:36px 40px; } .join-grid { grid-template-columns:1fr; gap:16px; } .join-card { grid-template-columns:30% 1fr; } .join-copy { padding:20px; } .join-copy h3 { font-size:24px; } .join-copy p { font-size:11px; } .noticeboard { padding-block:43px; } .noticeboard .section-heading h2 { font-size:22px; } .noticeboard-grid { grid-template-columns:1fr; gap:24px; } .noticeboard-image { height:auto; aspect-ratio:3/4; padding:15px; } .poster-expand { font-size:9px; } .noticeboard-caption h3 { font-size:12px; } .footer-crest { width:52px; height:52px; } .site-footer .footer-crest img { width:72px; height:52px; } .form-route-link { padding:20px; font-size:12px; } }
.guide-primary-route { background:#eaf0f6; margin:0 0 40px; }
.guide-primary-route strong { font:600 21px/1.8 var(--serif); }
@media(max-width:540px) { .guide-primary-route strong { font-size:18px; } }
@media(max-width:540px) { .festival-hero { min-height:610px; } }
.about-section + .journal-section { padding-top:75px; }
@media(max-width:540px) { .about-section + .journal-section { padding-top:53px; } }
/* Important announcements remain visible independently of the news filters. */
.important-board { --accent:#a34632; background:#fff2e9; border-top:3px solid var(--accent); border-bottom:1px solid #ecd1c4; padding-block:18px; }
.important-board-inner { display:grid; grid-template-columns:170px minmax(0,1fr); gap:24px; align-items:start; }
.important-board h2 { color:var(--accent); font:700 14px/2 var(--sans); padding-top:11px; }
.important-count { display:inline-block; background:var(--accent); color:#fff; padding:2px 7px; border-radius:3px; font-size:10px; line-height:1.6; font-weight:500; margin-left:6px; white-space:nowrap; vertical-align:middle; }
.important-item + .important-item { border-top:1px solid #ecd1c4; }
.important-item summary { list-style:none; display:grid; grid-template-columns:90px minmax(0,1fr) 22px; align-items:center; gap:15px; padding:13px 0; cursor:pointer; }
.important-item summary::-webkit-details-marker { display:none; }
.important-item time { color:var(--muted); font-size:10px; }
.important-item summary>span { font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.important-plus { color:var(--accent); font:400 18px var(--sans); transition:transform .2s; text-align:center; }
.important-item[open] .important-plus { transform:rotate(45deg); }
.important-item summary:hover>span { color:var(--accent); }
.important-body { padding:4px 37px 22px 105px; font-size:12px; line-height:2; color:#50697f; overflow-wrap:anywhere; }
.home-participate + .news-section { padding-top:16px; }
.district-watermark { position:absolute; font-family:var(--serif); font-weight:400; line-height:1; pointer-events:none; user-select:none; z-index:-1; }
.noticeboard .section-heading { position:relative; isolation:isolate; }
.poster-watermark { right:0; top:-30px; font-size:130px; color:var(--accent); opacity:.065; }
.site-footer { position:relative; isolation:isolate; overflow:hidden; }
.footer-watermark { right:3%; bottom:-38px; font-size:300px; color:#c2d8ee; opacity:.065; }
@media(max-width:540px) {
  .poster-watermark { top:-15px; right:-5px; font-size:108px; }
  .footer-watermark { right:-18px; bottom:30px; font-size:230px; opacity:.05; }
}
@media(max-width:800px) { .important-board-inner { grid-template-columns:1fr; gap:4px; } .important-board h2 { padding-top:0; } }
@media(max-width:540px) { .important-board { padding-block:18px 10px; } .important-item summary { grid-template-columns:minmax(0,1fr) 22px; gap:5px 12px; padding:15px 0; } .important-item time { grid-column:1; } .important-item summary>span { grid-column:1; font-size:11px; } .important-plus { grid-column:2; grid-row:1/3; } .important-body { padding:5px 10px 20px 0; font-size:11px; } .home-participate + .news-section { padding-top:12px; } }

/* One accessible foreground notification, matching the site palette. */
.push-message { position:fixed; top:110px; right:24px; width:min(380px,calc(100% - 40px)); padding:22px 48px 22px 22px; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-top:3px solid var(--accent); box-shadow:0 8px 32px #192f4626; z-index:100; overflow-wrap:anywhere; }
.push-message strong { display:block; font-size:14px; }
.push-message p { font-size:12px; margin-top:8px; white-space:pre-line; max-height:160px; overflow:auto; }
.push-message a { display:inline-block; margin-top:12px; color:var(--accent); text-decoration:underline; font-size:12px; }
.push-message button { position:absolute; right:5px; top:5px; border:0; background:none; color:var(--ink); font-size:22px; width:40px; height:40px; }
@media(max-width:540px) { .push-message { top:92px; right:20px; } }

/* Poster summaries keep participation and news readable before opening an image. */
.photo-original { display:inline-block; color:#e4eff9; border-bottom:1px solid #9db3c6; font-size:11px; margin:0 20px 18px; padding-bottom:4px; }
.poster-attached-label { display:inline-flex; align-items:center; gap:4px; margin-left:10px; padding:1px 6px; border:1px solid currentColor; border-radius:3px; color:var(--accent); font:500 9px/1.8 var(--sans); white-space:nowrap; vertical-align:middle; }
.poster-attachments { margin:20px 0; }
.attachment-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; font-size:12px!important; font-weight:600; color:var(--ink)!important; margin-bottom:12px; }
.attachment-heading span { font-size:10px; color:var(--muted); font-weight:400; }
.attachment-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,180px)); gap:14px; }
.attachment-card { display:flex; flex-direction:column; border:1px solid var(--line); background:white; border-radius:4px; overflow:hidden; }
.attachment-card img { width:100%; height:180px; padding:10px; object-fit:contain; background:#f4f7fa; }
.attachment-card>span { display:flex; justify-content:space-between; gap:8px; padding:8px 10px; font-size:10px; color:var(--accent); }
.attachment-card b { font-weight:400; }
.attachment-card:hover { border-color:var(--accent); }
.poster-category { display:inline-block; width:fit-content; padding:3px 9px; border-radius:3px; background:#eaf0f6; color:#526b80; font:500 10px/1.6 var(--sans); white-space:nowrap; }
.poster-category-festival { background:#245b87; color:white; }
.poster-categories { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.festival-posters { margin-top:24px; padding:26px; background:#eaf2f8; border-top:2px solid #245b87; border-radius:0 0 6px 6px; }
.festival-posters-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px 24px; margin-bottom:20px; }
.festival-posters-heading h2 { display:inline; margin-left:10px; font:600 17px/1.8 var(--serif); }
.festival-posters-heading p { font-size:11px; color:var(--muted); margin-top:8px; }
.festival-posters-heading>.text-link { font-size:11px; }
.festival-poster-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.festival-poster-card { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; gap:18px; padding:14px; background:white; border:1px solid #d3e1ec; border-radius:4px; transition:border-color .2s; }
.festival-poster-card:hover { border-color:var(--accent); }
.festival-poster-card>img { width:88px; height:116px; object-fit:contain; background:#f4f7fa; }
.festival-poster-copy { display:flex; flex-direction:column; gap:7px; min-width:0; }
.festival-poster-copy time { font-size:10px; color:var(--muted); }
.festival-poster-copy strong { font:600 13px/1.8 var(--sans); overflow-wrap:anywhere; }
.festival-poster-copy>span { font-size:10px; color:var(--accent); }
.festival-poster-copy b { padding-left:10px; font-size:16px; font-weight:400; }
.festival-posters-more { margin-top:18px; font-size:11px; }
.poster-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:25px; }
.poster-filter { display:flex; align-items:center; gap:12px; padding:10px 17px; border:1px solid #c6d6e4; border-radius:4px; background:transparent; color:#526b80; font:500 12px var(--sans); cursor:pointer; }
.poster-filter span { font-size:10px; opacity:.75; }
.poster-filter.is-active { color:white; background:#245b87; border-color:#245b87; }
.poster-filter:hover { border-color:#245b87; }
.noticeboard-card-festival { border-top:3px solid #245b87; }
@media(max-width:800px) { .festival-poster-grid { grid-template-columns:1fr; } }
@media(max-width:540px) {
  .festival-posters { padding:20px 16px; margin-top:20px; }
  .festival-posters-heading h2 { font-size:15px; margin-left:7px; }
  .festival-posters-heading p { font-size:10px; line-height:1.9; }
  .festival-poster-card { gap:14px; padding:12px; grid-template-columns:72px minmax(0,1fr); }
  .festival-poster-card>img { width:72px; height:100px; }
  .festival-poster-copy strong { font-size:12px; }
  .poster-filter { gap:9px; padding:9px 12px; font-size:11px; }
  .poster-filters { gap:7px; margin-bottom:20px; }
  .poster-attached-label { margin-left:6px; font-size:8px; }
  .attachment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .attachment-card img { height:155px; }
}

/* Let festival photographs stand on their own. */
.about-photo { padding:0; }
.photo-dialog #photo-title[hidden]+.photo-original { margin-top:18px; }

/* Quiet, consistent navigation marks with separate image/open-window actions. */
.link-icon { display:inline-block; width:16px; height:16px; flex-shrink:0; vertical-align:middle; }
.text-link { justify-content:flex-start; gap:12px; border-bottom-color:#cbd7e1; transition:color .2s,border-color .2s; }
.text-link:hover { color:var(--accent); border-bottom-color:var(--accent); }
.text-link .link-icon { width:14px; height:14px; }
.circle-arrow,.quick-links .circle-arrow { width:24px; height:24px; border:0; border-radius:0; color:var(--muted); }
.quick-links a:hover .circle-arrow,.festival-card:hover .circle-arrow { background:transparent; color:var(--accent); }
.button:hover { transform:none; }
.join-action b,.poster-expand b,.form-route-link>b { display:inline-flex; align-items:center; justify-content:center; }
.poster-expand { gap:8px; }
.festival-poster-copy b { display:inline-flex; vertical-align:middle; padding-left:6px; }
.festival-poster-copy .link-icon,.attachment-card .link-icon { width:14px; height:14px; }
.photo-original .link-icon { width:13px; height:13px; margin-left:5px; }
.gallery-note { display:inline-flex; align-items:center; gap:8px; }

/* A factual introduction to the shrine, its ritual, and Toyoura's participation. */
.festival-introduction>p { font-size:13px; line-height:2.1; margin-bottom:18px; color:#526b80; }
.shrine-ritual { margin:24px 0 16px; padding:18px 0; border-block:1px solid #cbd9e5; }
.shrine-ritual h3 { font:600 12px/1.8 var(--sans); margin:0 0 14px; }
.shrine-ritual dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.shrine-ritual dt { font-size:10px; color:var(--muted); margin-bottom:5px; }
.shrine-ritual dd { margin:0; font:500 14px/1.6 var(--sans); color:var(--ink); }
.festival-introduction>.ritual-note { font-size:11px; line-height:1.9; }
.festival-introduction>.history-sources { font-size:10px; line-height:1.9; color:var(--muted); margin-bottom:18px; }
.history-sources a { text-decoration:underline; text-decoration-color:#a8bdcf; text-underline-offset:3px; }
.history-sources span { padding-inline:5px; }
.slider-controls[hidden] { display:none; }
.slide-dots { max-width:34vw; overflow-x:auto; }
.slide-dot { flex-shrink:0; }
@media(max-width:540px) { .festival-introduction>p { font-size:12px; } .shrine-ritual dd { font-size:13px; } .shrine-ritual { margin-top:20px; } .about-copy .eyebrow { letter-spacing:.1em; } }

/* Festival wording and readable mobile copy. */
.hero-vertical { top:15%; right:5%; margin:0; color:#fff; font-size:16px; line-height:1.7; letter-spacing:.3em; text-shadow:0 1px 8px #0008; }
@media(max-width:700px) {
  .hero-vertical { top:10%; right:6%; font-size:14px; letter-spacing:.24em; }
  .hero-copy { right:17%; }
  .hero-apply { font-size:13px; gap:10px; padding-inline:12px; white-space:nowrap; }
  .hero-route { font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
  .page-intro>p:not(.eyebrow):not(.breadcrumb),.festival-introduction>p:not(.history-sources):not(.ritual-note),.rich-text,.rich-text p,.application-content>p,.application-entry>p,.application-steps p,.faq-list p,.join-copy p,.guide-feature p,.guide-link-card p,.section-intro,.access-grid>div>p,.access-details dd { font-size:15px; line-height:1.9; }
  .page-intro .breadcrumb,.history-sources,.festival-introduction>.history-sources,.festival-introduction>.ritual-note,.footer-identity p,.footer-links a,.footer-bottom small { font-size:12px; line-height:1.9; }
  main .eyebrow { font-size:11px; }
  .hero-copy .eyebrow { font-size:11px; }
  .service-note,.archive-notice p,.closed-notice,.application-guide>p,.festival-posters-heading p,.point-card { font-size:14px; line-height:1.9; }
  .important-item summary,.news-title { font-size:15px; line-height:1.75; }
  .important-item summary time,.news-row time,.tag,.join-status,.join-action,.noticeboard-caption time,.journal-meta,.poster-attached-label { font-size:12px; }
  .text-link,.news-filters button,.poster-filter,.gallery-note { font-size:13px; }
  .news-filters { flex-wrap:wrap; }
  .button { font-size:14px; }
  .hero-apply { font-size:13px; }
  .festival-poster-copy strong,.noticeboard-caption h3 { font-size:14px; }
}

/* The poster stays readable; QR destinations sit beside the image, never inside its link. */
.festival-posters-heading h2 { margin-left:0; }
.festival-poster-image { display:flex; flex-direction:column; align-items:center; align-self:start; gap:8px; }
.festival-poster-image img { width:100%; height:116px; object-fit:contain; background:#f4f7fa; }
.festival-poster-image>span { display:flex; align-items:center; gap:4px; font:500 11px/1.7 var(--sans); color:var(--accent); }
.festival-poster-image .link-icon { width:13px; height:13px; }
.festival-poster-copy .poster-categories { margin-bottom:0; }
.festival-poster-grid-full .festival-poster-card { grid-template-columns:1fr; align-items:start; gap:20px; padding:20px; }
.festival-poster-grid-full .festival-poster-image img { height:auto; max-height:480px; }
.poster-qr { min-width:0; margin-top:12px; }
.poster-qr[hidden],.noticeboard-card[hidden] { display:none; }
.poster-qr-links { display:flex; flex-direction:column; gap:8px; }
.renewal .poster-qr-link { display:flex; flex-direction:column; justify-content:center; gap:3px; min-height:48px; padding:10px 13px; background:#245b87; border:1px solid #245b87; border-radius:4px; color:#fff; line-height:1.6; overflow-wrap:anywhere; }
.poster-qr-link>span { font-size:13px; font-weight:600; }
.poster-qr-link>small { font-size:11px; opacity:.85; }
.poster-qr-link:hover { background:#194869; }
.poster-qr-link:focus-visible { outline:3px solid #df9b44; outline-offset:3px; }
.poster-qr .poster-qr-note { font:500 12px/1.8 var(--sans); color:#b13d36; margin:8px 0 0; padding:0; }
.poster-qr[aria-busy="true"] .poster-qr-note { color:#526b80; font-weight:400; }
.noticeboard-card>.poster-qr { padding:0 20px 20px; margin-top:auto; }
.attachment-entry { min-width:0; }
.attachment-entry .poster-qr { margin-top:8px; }
.attachment-entry .poster-qr-link { padding:8px 10px; }
.attachment-entry .poster-qr-link>span { font-size:12px; }
.photo-qr { margin:0 20px 20px; }
.photo-qr .poster-qr-note { color:#ffb4ab; }
.photo-qr[aria-busy="true"] .poster-qr-note { color:#c4d3df; }
.renewal .photo-qr .poster-qr-link { background:#eaf2f8; border-color:#eaf2f8; color:#173f60; }
.photo-qr .poster-qr-link:hover { background:white; }
@media(max-width:540px) {
  .festival-poster-image img { height:100px; }
  .festival-poster-card { align-items:start; }
  .festival-poster-grid-full .festival-poster-card { padding:16px; }
  .festival-poster-grid-full .festival-poster-image img { max-height:none; }
  .poster-qr-link { padding:10px; }
  .poster-qr .poster-qr-note { font-size:12px; }
}

/* Keep poster destinations visible while the image scrolls independently on phones. */
.photo-close { z-index:2; }
@media(max-width:700px),(max-height:540px) {
  .photo-dialog-poster[open] { display:flex; flex-direction:column; width:calc(100vw - 32px); height:92svh; overflow:hidden; }
  .photo-dialog-poster .photo-content { flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; }
  .photo-dialog-poster .photo-content img { max-width:100%; max-height:none; }
  .photo-dialog-poster .photo-qr { flex:0 0 auto; display:flex; flex-direction:column; max-height:45%; min-height:0; margin:0; padding:12px 16px max(12px,env(safe-area-inset-bottom)); background:#152a40; border-top:1px solid #597085; box-shadow:0 -6px 20px #07182840; }
  .photo-dialog-poster .photo-qr .poster-qr-links { min-height:0; overflow:auto; overscroll-behavior:contain; padding:3px; margin:-3px; }
  .photo-dialog-poster .photo-qr .poster-qr-link { flex-shrink:0; min-height:54px; padding:10px 14px; }
  .photo-dialog-poster .photo-qr .poster-qr-link>span { font-size:15px; }
  .photo-dialog-poster .photo-qr .poster-qr-note { flex-shrink:0; margin-top:8px; }
}

.featured-posters-panel { padding:28px; border:1px solid var(--line); border-top:3px solid var(--accent); background:white; }
.featured-posters .section-heading { margin-bottom:24px; }
.featured-posters .section-heading h2 { font-size:25px; }
.featured-posters .eyebrow { font-size:12px; letter-spacing:.12em; margin-bottom:8px!important; }
.featured-posters .festival-poster-card { background:var(--paper); }
@media(max-width:540px) {
  .featured-posters-panel { padding:22px 16px; }
  .featured-posters .section-heading { gap:12px; }
  .featured-posters .section-heading h2 { font-size:22px; }
}

/* Clear headings and a compact mobile navigation. */
.mobile-actions { display:none; }
.eyebrow,.footer-label { letter-spacing:.08em; }
.quick-links a { align-items:center; }
.join-status-open,.status-open,.nav-open-label,.hero-open-label { color:#a34632; background:#fff1e9; }
@media(max-width:700px) {
  .renewal:has(.mobile-actions) { padding-bottom:calc(72px + env(safe-area-inset-bottom,0px)); }
  html { scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
  .mobile-actions { display:grid; grid-template-columns:1.15fr 1fr; position:fixed; inset:auto 0 0; z-index:1100; gap:8px; padding:9px 16px calc(9px + env(safe-area-inset-bottom,0px)); background:#fdfefe; border-top:1px solid var(--line); box-shadow:0 -3px 16px #23364b0a; }
  .mobile-actions a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:8px 10px; font-size:14px; font-weight:600; line-height:1.5; border:1px solid var(--line); border-radius:5px; color:var(--ink); }
  .mobile-actions .mobile-participate { background:var(--accent); color:white; border-color:var(--accent); }
  .mobile-actions a[aria-current=page] { box-shadow:inset 0 -3px 0 #8facbf; }
  .mobile-open-label { padding:2px 5px; border-radius:3px; font-size:10px; background:#fff1e9; color:#9b3b28; white-space:nowrap; }
  .renewal:has(.photo-dialog[open]) .mobile-actions,.renewal:has(.site-nav.is-open) .mobile-actions { display:none; }
  .mobile-actions svg { flex-shrink:0; }
}
@media(max-width:360px) {
  .mobile-actions { padding-inline:10px; gap:6px; }
  .mobile-actions a { font-size:13px; gap:5px; padding-inline:6px; }
}

/* Brush lettering and blue glass surfaces. */
:root { --festival-font:'Yuji Syuku','Noto Serif JP','Yu Mincho',serif; }
.brand strong { font-family:var(--festival-font); font-weight:400; letter-spacing:.07em; }
.hero-copy h1 { font-family:var(--festival-font); font-weight:400; letter-spacing:.08em; }
.hero-site-name { margin:-10px 0 9px; color:#e8f2f8; font:500 clamp(16px,2vw,24px)/1.35 var(--serif); letter-spacing:.18em; text-shadow:0 2px 12px #102a4380; }
.hero-vertical { font-family:var(--festival-font); }
.hero-shade { background:linear-gradient(90deg,#081c32ce,#081c3278 50%,#081c3230),linear-gradient(0deg,#08182aa6,transparent 50%); }
.button,.hero-route,.mobile-actions a,.route-map-buttons button,.route-landmarks button,.renewal .poster-qr-link {
  border:1px solid #bacfdf;
  border-radius:28px;
  background:linear-gradient(145deg,#ffffffeb,#e9f1f8d9);
  box-shadow:inset 0 1px 0 #ffffffd9,inset 0 -1px 0 #ffffff40,0 5px 16px #102b4510;
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  backdrop-filter:blur(16px) saturate(130%);
  transition:background .2s,box-shadow .2s,transform .2s;
}
.button-red,.mobile-actions .mobile-participate,.renewal .poster-qr-link {
  background:linear-gradient(145deg,#3c749fd9,#16476feF);
  border-color:#86aac6;
  color:white;
  box-shadow:inset 0 1px 0 #ffffff6b,inset 0 -1px 0 #ffffff1f,0 6px 20px #102b4520;
}
.button-red:hover,.renewal .poster-qr-link:hover { background:linear-gradient(145deg,#3d759f,#123d61); }
.button:hover,.hero-route:hover { box-shadow:inset 0 1px 0 #ffffffa6,0 8px 22px #102b4529; }
.hero-route { min-height:44px; padding:11px 18px; font-size:12px; border-color:#ffffff85; background:linear-gradient(145deg,#ffffff36,#ffffff12); box-shadow:inset 0 1px 0 #ffffff7a,0 6px 18px #081b342b; }
.hero-apply { min-height:44px; padding-block:11px; }
.mobile-actions { background:#f5f9fcdd; -webkit-backdrop-filter:blur(20px) saturate(130%); backdrop-filter:blur(20px) saturate(130%); }
.mobile-actions a { border-radius:24px; }
.renewal .poster-qr-link { border-radius:15px; }
.renewal .photo-qr .poster-qr-link { background:linear-gradient(145deg,#f4f9ff,#d5e5f2); border-color:#ecf5ff; color:#173f60; }
.renewal .photo-qr .poster-qr-link:hover { background:#fff; }
.hero-festival-year { display:block; font:400 21px/1.5 Georgia,'Times New Roman',serif; letter-spacing:.14em; }
.hero-festival-days { display:flex; align-items:baseline; gap:10px; }
.hero-festival-days time { display:inline-flex; align-items:baseline; gap:8px; white-space:nowrap; }
.hero-festival-days time>span { font:400 clamp(38px,4.5vw,62px)/1.3 Georgia,'Times New Roman',serif; letter-spacing:.015em; }
.hero-festival-days small { font:400 14px/1.5 var(--sans); }
.hero-date-separator { font:400 24px/1 var(--serif); }
.hero-festival-caption { display:block; font-size:12px; letter-spacing:.1em; margin-top:6px; }
.hero-festival-date { color:#fff; text-shadow:0 2px 14px #07182785; }
.has-festival-date .hero-copy { top:11%; }
.has-festival-date .hero-copy h1 { margin-block:12px 5px; }
@media(max-width:800px) {
  .has-festival-date .hero-copy { top:8%; }
  .hero-festival-days time>span { font-size:46px; }
}
@media(max-width:540px) {
  .has-festival-date { min-height:620px; }
  .has-festival-date .hero-copy { top:7%; left:7%; right:13%; }
  .has-festival-date .hero-copy h1 { font-size:clamp(35px,10.5vw,51px); margin-block:10px 3px; }
  .hero-site-name { margin:-2px 0 6px; font-size:16px; letter-spacing:.14em; }
  .hero-festival-year { font-size:19px; }
  .hero-festival-days time>span { font-size:42px; }
  .hero-festival-days { gap:7px; }
  .hero-festival-days small { font-size:12px; }
  .hero-festival-caption { font-size:11px; }
  .has-festival-date .hero-actions { flex-direction:column; align-items:flex-start; gap:10px; margin-top:22px; }
  .hero-route { font-size:13px; min-height:48px; padding:12px 18px; }
  .hero-apply { padding-inline:17px; }
  .hero-vertical { right:5%; font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .button,.hero-route,.mobile-actions a,.route-map-buttons button,.route-landmarks button,.renewal .poster-qr-link { transition:none; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .hero-route { background:#29465e; }
  .mobile-actions { background:#f5f9fc; }
}
@media(max-width:360px) {
  .hero-festival-days time>span { font-size:35px; }
  .hero-festival-days time { gap:5px; }
  .hero-date-separator { font-size:18px; }
}
.join-card-open .join-action { border:1px solid #86aac6; border-radius:24px; background:linear-gradient(145deg,#3c749fd9,#16476fef); box-shadow:inset 0 1px 0 #ffffff6b,0 4px 12px #102b4518; }

.hero-festival-countdown { display:block; margin-top:5px; color:#e9f3f9; font-size:11px; letter-spacing:.12em; }
.festival-live-panel { background:#eaf3f8; border-block:1px solid #c7dce9; }
.festival-live-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; padding-block:22px; }
.festival-live-inner h2 { margin:2px 0 5px; font:600 21px/1.5 var(--serif); color:#1d4565; }
.festival-live-inner p:not(.eyebrow) { margin:0; color:#567087; font-size:12px; }
.festival-live-links { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.festival-live-links .button { min-height:42px; padding:10px 16px; font-size:12px; }
.gallery-photo-year { position:absolute; left:12px; bottom:10px; padding:4px 8px; background:#102a43cc; color:#fff; font-size:10px; letter-spacing:.08em; }
@media(max-width:700px) {
  .festival-live-inner { align-items:flex-start; flex-direction:column; gap:16px; padding-block:20px; }
  .festival-live-links { justify-content:flex-start; }
  .festival-live-links .button { min-height:40px; font-size:11px; padding:9px 13px; }
}

/* Keep hero actions compact and directly above the carousel controls. */
@media(max-width:800px) {
  .hero-actions { left:7%; bottom:128px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media(max-width:540px) {
  .hero-actions { left:7%; right:7%; bottom:128px; flex-direction:column; align-items:flex-start; gap:6px; }
  .hero-apply,.hero-route { width:auto; justify-content:center; min-height:42px; }
  .hero-apply { font-size:11px; padding:6px 12px; min-height:40px; }
  .hero-route { font-size:11px; min-height:38px; padding:8px 14px; }
  .has-festival-date .hero-actions { gap:6px; margin-top:0; }
}
