@media (max-width: 1100px) {
  .site-header__inner {
    min-height: 72px;
  }

  .menu-button {
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
  }

  .menu-button__line {
    width: 22px;
    height: 2px;
    background: var(--color-red);
  }

  .global-nav {
    position: absolute;
    top: 72px;
    right: 24px;
    left: 24px;
    display: none;
    padding: 22px;
    border: 1px solid rgba(189, 0, 0, 0.18);
    border-radius: 8px;
    background: var(--color-white);
  }

  .global-nav.is-open {
    display: grid;
    gap: 20px;
  }

  .global-nav__list {
    display: grid;
    gap: 14px;
  }

  .global-nav__children {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding: 12px 0 0 14px;
    border-top: 1px solid rgba(189, 0, 0, 0.12);
  }

  .global-nav__children a {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 700;
  }

  .global-nav__children a::after {
    display: none;
  }

  .button--header {
    width: 100%;
  }

  .hero {
    min-height: 560px;
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.08)),
      url("../images/fv.jpg") center / cover no-repeat;
  }

  .hero::before {
    width: min(62vw, 520px);
  }

  .hero::after {
    width: min(6vw, 48px);
    transform: translateX(min(62vw, 520px));
  }

  .mission__grid,
  .report-list,
  .reports-archive-grid {
    grid-template-columns: 1fr;
  }

  .steward-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .venue-grid,
  .venue-list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .container,
  .site-header__inner,
  .hero__inner {
    width: min(calc(100% - 40px), var(--container));
  }

  .site-logo {
    flex-shrink: 0;
  }

  .site-logo img {
    width: 88px;
  }

  .section {
    padding: 58px 0;
  }

  .section-heading--row {
    align-items: flex-start;
    flex-direction: column;
  }

  .section-heading__title {
    font-size: 28px;
  }

  .hero {
    min-height: auto;
    padding: 235px 0 46px;
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.08)),
      url("../images/fv.jpg") 68% 72% / cover no-repeat;
  }

  .hero::before {
    top: 150px;
    right: 0;
    bottom: auto;
    width: 100%;
    height: calc(100% - 150px);
    background: linear-gradient(180deg, rgba(189, 0, 0, 0) 0%, rgba(178, 0, 0, 0.72) 30%, rgba(142, 0, 0, 0.96) 100%);
  }

  .hero::after {
    display: none;
  }

  .hero__title {
    font-size: 31px;
  }

  .hero__text {
    font-size: 16px;
  }

  .hero-venue-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .hero-venue-list li {
    text-align: center;
  }

  .hero__actions,
  .hero__actions .button {
    width: 100%;
  }

  .intro-panel,
  .mission-card {
    padding: 24px;
  }

  .area-intro {
    padding: 42px 0;
  }

  .intro-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .nagoya-intro__layout,
  .venue-detail-lead__layout,
  .venue-greeting__layout,
  .venue-place__layout,
  .venue-access__layout,
  .report-detail-layout,
  .plaza-keywords,
  .plaza-activity,
  .plaza-detail,
  .about-info__grid,
  .flow-list--horizontal {
    grid-template-columns: 1fr;
  }

  .venue-anchor-nav {
    position: static;
    top: auto;
    backdrop-filter: none;
  }

  .lower-hero {
    padding: 62px 0 68px;
  }

  .lower-hero h1 {
    font-size: 36px;
  }

  .nagoya-intro__content,
  .venue-detail-lead__content,
  .venue-greeting__content,
  .venue-access__content,
  .privacy-content,
  .report-detail,
  .plaza-board {
    padding: 24px;
  }

  .report-sidebar {
    position: static;
  }

  .report-detail__header h2 {
    font-size: 29px;
  }

  .report-gallery,
  .post-nav {
    grid-template-columns: 1fr;
  }

  .about-aim .section-heading__title {
    min-width: 0;
    padding: 12px 28px;
  }

  .about-aim__body {
    margin-top: 28px;
    font-size: 18px;
    font-weight: 700;
    line-height: 2;
  }

  .nagoya-intro__image-frame,
  .venue-detail-lead__image,
  .venue-greeting__image,
  .venue-map-frame {
    min-height: 240px;
  }

  .venue-greeting__layout > .venue-greeting__image {
    display: none;
  }

  .venue-greeting__image--sp {
    display: grid;
    margin: 0 0 22px;
  }

  .venue-feature-list,
  .venue-mission__grid,
  .venue-point-grid,
  .program-grid,
  .venue-flow-list,
  .steward-grid {
    grid-template-columns: 1fr;
  }

  .venue-info-table div {
    grid-template-columns: 1fr;
  }

  .privacy-contact div {
    grid-template-columns: 1fr;
  }

  .plaza-keywords div + div,
  .flow-list--horizontal li + li,
  .venue-flow-list li + li {
    border-left: 0;
  }

  .plaza-keywords div + div {
    border-top: 1px solid rgba(255, 255, 255, 0.34);
  }

  .flow-list--horizontal li + li {
    border-top: 1px solid var(--color-red);
  }

  .venue-flow-list li + li {
    border-top: 1px solid var(--color-red);
  }

  .flow-list--horizontal li:not(:last-child)::after,
  .venue-flow-list li:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -14px;
    left: 50%;
    transform: translateX(-50%) rotate(135deg);
  }

  .intro-visual {
    width: min(100%, 280px);
    margin: 0 auto;
  }

  .intro-visual--logo {
    padding: 24px;
  }

  .venue-grid,
  .venue-list-grid {
    grid-template-columns: 1fr;
  }

  .line-cta__inner {
    grid-template-columns: 1fr;
  }

  .line-cta__inner > div {
    justify-items: center;
    text-align: center;
  }

  .line-cta h2 {
    font-size: 24px;
  }

  .line-cta__qr {
    width: 190px;
  }
}

@media (max-width: 375px) {
  .container,
  .site-header__inner,
  .hero__inner {
    width: calc(100% - 32px);
  }

  body {
    font-size: 15px;
  }

  .hero__title {
    font-size: 28px;
  }

  .section-heading__title {
    font-size: 25px;
  }

  .button {
    min-height: 46px;
    padding: 11px 16px;
    font-size: 14px;
  }

  .lower-hero h1 {
    font-size: 31px;
  }

  .hero {
    min-height: auto;
    padding-top: 215px;
    padding-bottom: 42px;
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.08)),
      url("../images/fv.jpg") 68% 72% / cover no-repeat;
  }

  .hero::before {
    top: 140px;
    height: calc(100% - 140px);
  }

  .line-cta h2 {
    font-size: 22px;
  }

  .flow-list li {
    grid-template-columns: 1fr;
  }

  .flow-list span {
    width: 58px;
    height: 58px;
    font-size: 22px;
  }
}
