.facility-hero .container { padding-block: 1.65rem 2.4rem; }
.facility-hero h1 { margin-block: 1rem .75rem; font-size: clamp(1.85rem, 4.65vw, 3.45rem); line-height: 1.33; }
.facility-hero .lede { max-inline-size: 42rem; font-size: 1.0625rem; }
.facility-date { margin-block-start: .7rem; color: #e0ece3; font-size: .9375rem; }
.facility-jumps { display: flex; flex-wrap: wrap; gap: .65rem; margin-block-start: 1.1rem; }
.facility-jumps a { display: inline-flex; align-items: center; gap: .55rem; padding: .48rem .85rem; background: var(--white); border-radius: .45rem; color: var(--forest); font-weight: 700; text-decoration: none; }
.facility-jumps a:hover { background: var(--green); }
.facility-jumps span { color: var(--sub); font-size: .9375rem; font-weight: 600; }
.facility-body { padding-block: 1.6rem 2.8rem; }
.facility-next { padding: 1.05rem 1.2rem; border: 1px solid #cbbd9c; border-radius: .7rem; background: #f9f3e6; }
.facility-next h2 { font-size: 1.125rem; }
.facility-next ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem 1rem; list-style: none; padding: 0; margin: .55rem 0 0; }
.facility-next li { border-inline-start: 2px solid #b29153; padding-inline-start: .7rem; line-height: 1.6; }
.facility-next a { font-weight: 700; }
.facility-next li p { font-size: .9375rem; }
.facility-group { margin-block: 2rem 0; }
.facility-section-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .55rem 1rem; padding-block-end: .35rem; border-bottom: 1px solid var(--line); }
.facility-section-head h2,.facility-editorial h2 { font: 600 clamp(1.35rem, 3vw, 1.9rem)/1.4 var(--serif); }
.facility-section-head > span { color: var(--sub); font-size: .9375rem; }
.facility-section-intro { margin-block: .5rem 1rem; color: var(--sub); }
.facility-cards { display: grid; gap: 1rem; }
.facility-card { display: grid; grid-template-columns: minmax(0,1.27fr) minmax(0,1fr); padding: clamp(1rem,2vw,1.35rem); border: 1px solid var(--line); border-radius: .7rem; background: var(--white); gap: .9rem 1.3rem; scroll-margin: 1rem; }
.facility-card:target { outline: 3px solid #a98648; outline-offset: 2px; }
.facility-region { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; column-gap: .65rem; row-gap: .22rem; }
.facility-region .pref-icon { grid-row: span 2; border-radius: .4rem; background: #eef3eb; padding: 3px; inline-size: 40px; block-size: 40px; }
.facility-place { color: var(--forest); font-size: 1rem; line-height: 1.45; font-weight: 750; }
.facility-tags { display: flex; flex-wrap: wrap; gap: .28rem; }
.facility-tags span { padding: .07rem .48rem; border-radius: .25rem; background: var(--green); color: var(--forest); font-size: .875rem; line-height: 1.55; font-weight: 650; }
.facility-card h3 { margin-block: .56rem .35rem; font-size: clamp(1.28rem,2.45vw,1.6rem); line-height: 1.4; }
.facility-card-terms { align-self: start; padding: .78rem .95rem; border-radius: .5rem; background: #eef2e9; font-size: 1rem; line-height: 1.7; }
.facility-deadline-label { color: #425c4e; font-size: .9rem; font-weight: 700; }
.facility-deadline { color: var(--forest); font-size: 1.19rem; line-height: 1.45; font-weight: 750; margin-block: .15rem .36rem; }
.facility-details { display: grid; grid-column: 1/-1; grid-template-columns: minmax(0,1fr) minmax(0,1.6fr); gap: .35rem 1rem; padding-block: .56rem .1rem; border-top: 1px solid var(--line); }
.facility-details dt { color: var(--sub); font-size: .875rem; font-weight: 700; }
.facility-details dd { font-size: 1rem; }
.facility-links,.facility-related { display: flex; flex-wrap: wrap; gap: .42rem 1.2rem; grid-column: 1/-1; font-size: .9375rem; }
.facility-links a { display: inline-flex; align-items: center; min-height: 30px; }
.facility-official { font-weight: 750; }
.facility-editorial { padding-block: 1.25rem; margin-block: 1.65rem; border-block: 1px solid var(--line); }
.facility-editorial p { margin-block-start: .5rem; }
.facility-related { margin-block-start: 1.3rem; }
@media (max-width: 670px) {
  .facility-hero .container { padding-block: 1.3rem 1.65rem; }
  .facility-next ul,.facility-card,.facility-details { grid-template-columns: minmax(0,1fr); }
  .facility-next { padding: .85rem; }
  .facility-card { padding: .95rem; }
}

/* Share the municipality hub's cream backdrop and outline of Japan. */
.facility-hero { border-bottom: 1px solid var(--line); }
.facility-hero .container { padding-block: clamp(2rem,5.5vw,4.6rem); }
.facility-hero::after { opacity: .15; width: min(600px,80vw); height: min(380px,85%); }
.facility-hero .lede { max-inline-size: 43rem; font-size: clamp(1rem,1.7vw,1.16rem); }
.facility-date { color: var(--sub); }
.facility-jumps { justify-content: center; }
.facility-jumps a { border: 1px solid #bacbbd; min-height: 44px; }
.facility-jumps a[href^="#"] { background: var(--forest); border-color: var(--forest); color: white; }
.facility-jumps a[href^="#"]:hover { background: #235348; }
.facility-jumps a[href^="#"] span { color: #f0e1b9; }
.facility-next ul { grid-template-columns: repeat(auto-fit,minmax(min(100%,11.5rem),1fr)); }
.facility-guide-links { grid-column: 1/-1; display: grid; gap: .45rem; padding: .75rem .85rem; border: 1px solid #dce4d9; border-radius: .5rem; background: #edf2eb; }
.facility-feature-heading { color: var(--forest); font-size: .9rem; line-height: 1.4; font-weight: 750; }
.facility-feature-buttons { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap: .5rem; }
.facility-feature-button,.facility-reading-button {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .1rem .65rem; align-items: center;
  min-inline-size: 0; min-block-size: 48px; padding: .53rem .7rem; background: var(--white);
  border: 1px solid #bacbbd; border-radius: .42rem; color: var(--forest); text-decoration: none;
}
.facility-feature-button:hover,.facility-reading-button:hover { border-color: #749284; background: #f8faf5; }
.facility-feature-caption { grid-column: 1; color: var(--sub); font-size: .82rem; font-weight: 650; line-height: 1.35; }
.facility-feature-title { grid-column: 1; font-size: 1rem; line-height: 1.45; font-weight: 750; }
.facility-feature-arrow { grid-column: 2; grid-row: 1 / span 2; color: #866329; font-size: 1.15rem; line-height: 1; font-weight: 700; }
.facility-map-credit { margin-block-start: 1.25rem; line-height: 1.65; }
.facility-cross { display: block; padding: .85rem 1rem; margin-top: 1.35rem; border: 1px solid #c5d2c5; border-radius: .55rem; background: var(--green); font-weight: 700; }
.facility-reading { padding-block: 1.15rem; margin-block: 1.6rem; border-top: 1px solid var(--line); }
.facility-reading h2 { font: 600 clamp(1.28rem,3vw,1.85rem)/1.45 var(--serif); }
.facility-reading ul { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,17rem),1fr)); gap: .65rem; list-style: none; margin: .85rem 0 0; padding: 0; }
.facility-reading li { min-width: 0; }
.facility-reading-button { min-block-size: 100%; padding: .8rem .9rem; }
.facility-reading-description { grid-column: 1; margin-top: .2rem; color: var(--sub); font-size: .9375rem; line-height: 1.55; }
.akiya-alert { color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: .4rem; padding: .68rem .8rem; line-height: 1.65; }
.akiya-alert > :is(h2,strong) { color: #812a23; }
.akiya-alert p { margin: .15rem 0 0; }
.akiya-alert a { color: var(--forest); font-weight: 700; }
.akiya-intro { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: .7rem; }
.akiya-intro .akiya-alert { padding: .9rem 1rem; }
.akiya-alert h2,.akiya-intro h2 { font-size: 1.075rem; }
.akiya-intro .facility-cross { margin: 0; background: var(--white); font-weight: 400; }
.akiya-intro .facility-cross a { font-weight: 700; }
.akiya-card .facility-summary { margin-block-end: .15rem; }
.akiya-card .akiya-alert { grid-column: 1/-1; }
.akiya-card .facility-details { grid-template-columns: minmax(0,1fr); align-content: start; border: 0; grid-column: auto; }
.akiya-card .facility-details div + div { border-top: 1px solid #cbd7c8; padding-top: .34rem; }
.akiya-card .facility-details dt { color: var(--forest); }
.akiya-card .akiya-price { font-size: 1.28rem; font-weight: 750; color: var(--forest); line-height: 1.35; }
.akiya-source-note { margin-block: 1rem; color: var(--sub); font-size: .875rem; line-height: 1.65; }
@media (max-width: 670px) {
  .facility-hero::after { inset: auto -1rem -2.2rem auto; }
  .facility-hero .container { padding-block: 1.65rem 2rem; }
  .facility-jumps { gap: .4rem; }
  .facility-jumps a { padding-inline: .6rem; font-size: .925rem; }
  .akiya-intro { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 520px) {
  .facility-region .pref-icon { inline-size: 36px; block-size: 36px; }
  .facility-guide-links { padding: .68rem; }
  .facility-feature-buttons { grid-template-columns: minmax(0,1fr); }
}
