@media (max-width: 1024px) {
  :root {
    --fluid-x: clamp(30px, 6.25vw, 50px);
    --fluid-y: clamp(72px, 11vw, 120px);
    /* 005: ヘッダー垂直パディング上下25（25 + ロゴ高55.9 + 25） */
    --h-header: 106px;
    --header-logo-y: 25px;
    --sp-hero-top: var(--h-header);
    --h-hero-poster: calc(100vw * var(--hero-poster-ratio));
    --h-hero-banner: 24px;
    /* 007: 「すべての倉はこちら」ボックス余白は上下15・左右30（Figma実測） */
    --cta-pad-y: 15px;
    --cta-pad-x: 30px;
    --news-gap: 24px;
  }

  .page-shell,
  .site-header,
  .site-footer {
    width: 100%;
    max-width: none;
  }

  /* .site-header-logo-layer は position:absolute で body と一緒にスクロールするため、
     320px 未満では body の min-width(320px) に合わせて下限を明示する。
     .site-header は position:fixed でハンバーガー(.site-menu-toggle)の起点を兼ねるため
     ここでは触らず実ビューポート幅のままにする（触ると右端に押し出されて操作不能になる）。
     left:0/transform:none は width が ICB の100%を超えた時に中心軸はみ出しで body(左端0起点)と
     ズレるのを防ぐため（width=100vwの通常時は結果が変わらない） */
  .site-header-logo-layer {
    left: 0;
    width: max(320px, 100vw);
    transform: none;
    max-width: none;
  }

  .site-footer {
    margin-left: 0;
  }

  .site-footer__inner {
    display: contents;
  }

  .site-header__logo {
    left: 50%;
    width: 250px;
    transform: translateX(-50%);
  }

  .site-header__nav,
  .site-header__sns {
    display: none;
  }

  /* ハンバーガーメニュー（ボタンは menu.js が注入） */
  .site-header__toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    position: absolute;
    top: 14px;
    right: 16px;
    width: 44px;
    height: 44px;
    padding: 11px 10px;
    background: var(--c-bg);
    border: 1px solid var(--c-ink);
    border-radius: 6px;
    pointer-events: auto;
    cursor: pointer;
  }

  .site-header__toggle span {
    display: block;
    height: 2px;
    background: var(--c-ink);
    transition: transform 0.2s ease, opacity 0.2s ease;
  }

  .site-header.is-menu-open .site-header__toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .site-header.is-menu-open .site-header__toggle span:nth-child(2) {
    opacity: 0;
  }
  .site-header.is-menu-open .site-header__toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-header.is-menu-open .site-header__nav {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: auto;
    height: auto;
    padding: 72px 24px 20px;
    background: var(--c-bg);
    border-bottom: 2px solid var(--c-accent);
    pointer-events: auto;
  }

  .site-header.is-menu-open .site-header__nav-link {
    position: static;
    width: auto;
    padding: 14px 4px;
    font-size: 16px;
    border-bottom: 1px solid var(--c-bg-alt);
  }

  .page-shell {
    display: block;
    overflow: hidden;
  }

  .section-title--jp,
  .access__band,
  .access__info {
    display: none;
  }

  .section-title,
  .section__eyebrow {
    font-size: clamp(28px, 4.2vw, 36px);
    line-height: 1.45;
    letter-spacing: 0.05em;
  }

  .view-all {
    width: auto;
    max-width: max-content;
    letter-spacing: 0.08em;
  }

  .hero {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  .hero__poster-frame,
  .hero__banner {
    width: 100vw;
  }

  .hero__poster {
    width: 100%;
    object-position: center center;
  }

  .hero::after {
    content: none;
  }

  .pickup {
    height: auto;
    padding: var(--fluid-y) var(--fluid-x);
    background: var(--c-bg);
  }

  .pickup__inner {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .pickup__eyebrow {
    display: block;
  }

  .pickup__renewal {
    display: none;
  }

  .pickup__cards {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 6vw, 80px);
    height: auto;
    margin-top: clamp(24px, 4vw, 48px);
    border: 0;
  }

  .pickup-card {
    display: block;
    height: auto;
    aspect-ratio: 1000 / 565;
  }

  .about,
  .exhibitors,
  .journal,
  .news,
  .access {
    height: auto;
    background: var(--c-bg);
  }

  .about {
    padding: var(--fluid-y) var(--fluid-x);
  }

  /* 005: 余白の統一。about.css 側の margin-left(--about-x) が section padding と二重になるため打ち消す */
  .about__head {
    grid-template-columns: 1fr;
    gap: 24px;
    width: 100%;
    margin: 0;
    padding-top: 0;
  }

  .about__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(36px, 7vw, 90px);
    width: 100%;
    margin: 0;
    padding: clamp(56px, 9vw, 100px) 0 0;
  }

  .about__copy {
    width: auto;
  }

  .about__lead {
    width: auto;
    margin: 0;
    font-size: clamp(24px, 3.4vw, 30px);
    line-height: 1.55;
    letter-spacing: 0.08em;
    text-align: left;
    white-space: normal;
  }

  .about__body {
    margin-top: clamp(32px, 5vw, 50px);
    font-family: var(--font-sans);
    line-height: 2;
    letter-spacing: 0.08em;
  }

  .about__photos {
    gap: clamp(16px, 3vw, 20px);
    margin: 0;
  }

  .about__photos img {
    width: 100%;
    height: auto;
    aspect-ratio: 494.5 / 370.9;
  }

  .exhibitors {
    padding: var(--fluid-y) var(--fluid-x);
  }

  /* 007: EXHIBITORS 見出しと本文の間隔は 30px */
  .exhibitors__inner {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: clamp(32px, 7vw, 72px);
    row-gap: 30px;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .exhibitors__lead {
    margin-top: 0;
  }

  /* 005: 左揃えに統一（EXHIBITORS 見出しのセンタリング廃止） */
  .exhibitors__side .section-title--center {
    display: block;
    text-align: left;
  }

  .exhibitors__side .section-title--jp {
    display: none;
  }

  .exhibitors__lead {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
    font-family: var(--font-sans);
    line-height: 2;
    letter-spacing: 0.08em;
    background: transparent;
    writing-mode: horizontal-tb;
  }

  .exhibitors__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(18px, 4vw, 32px) clamp(16px, 3vw, 24px);
    margin-top: clamp(28px, 5vw, 50px);
  }

  .exhibitor-card,
  .exhibitor-card:nth-child(1) {
    width: auto;
    height: auto;
    transform: none;
  }

  .exhibitor-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 370 / 283.8;
  }

  .exhibitor-card p {
    height: auto;
    padding-top: 6px;
    font-size: clamp(12px, 1.8vw, 14px);
    line-height: 1.6;
  }

  /* 007: 「すべての倉はこちら」ボックス余白は上下15・左右30（Figma実測） */
  .exhibitors__link {
    width: max-content;
    height: auto;
    margin: clamp(36px, 7vw, 70px) auto 0;
    padding: var(--cta-pad-y, 15px) var(--cta-pad-x, 30px);
  }

  .journal {
    padding-bottom: var(--fluid-y);
    overflow: hidden;
  }

  .journal__inner {
    display: block;
    width: auto;
    margin: 0;
    padding: var(--fluid-y) var(--fluid-x) 0;
    overflow: visible;
  }

  .journal__inner > .section-title {
    display: block;
  }

  .journal-card,
  .journal-card:first-of-type {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto;
    margin-top: clamp(56px, 9vw, 90px);
  }

  .journal-card__meta {
    position: static;
    order: 1;
    width: 100%;
    height: auto;
  }

  .journal-card__number,
  .journal-card h3,
  .journal-card__category,
  .journal-card time {
    width: auto;
    max-width: 100%;
    margin-left: 0;
    text-align: left;
  }

  .journal-card h3 {
    margin-top: 14px;
  }

  .journal-card__carousel {
    position: static;
    order: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    width: 100%;
    height: auto;
    margin-top: 24px;
    overflow: visible;
  }

  .journal-card__carousel img,
  .journal-card__carousel img:nth-child(2),
  .journal-card__placeholder,
  .journal-card__placeholder:nth-child(2) {
    width: 100%;
    height: auto;
    aspect-ratio: 493 / 370;
  }

  .journal-card__view {
    position: static;
    order: 3;
    align-self: flex-end;
    margin-top: 18px;
  }

  .news {
    padding: var(--fluid-y) var(--fluid-x);
  }

  .news__inner {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .news .section-title {
    color: var(--c-accent-deep);
    text-align: left;
  }

  .news__body {
    display: block;
    width: 100%;
    height: auto;
    margin-top: clamp(32px, 5vw, 50px);
  }

  .news__list {
    display: flex;
    flex-direction: column;
    gap: var(--news-gap, 24px);
  }

  /* 005: NEWS は左揃え・タイトル → 日付（グレー・タイトル下）の縦積み */
  .news-item,
  .news-item:nth-child(2),
  .news-item:nth-child(3) {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
    order: initial;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }

  /* 005: 文字サイズ タイトル12px・日付10px */
  .news-item time,
  .news-item:nth-child(3) time {
    order: 2;
    color: var(--c-line);
    font-size: var(--fs-10);
    line-height: 14.5px;
    letter-spacing: 1px;
    text-align: left;
  }

  .news-item p {
    font-size: var(--fs-12);
    line-height: 17.4px;
    letter-spacing: 1.2px;
    white-space: normal;
  }

  /* 005: VIEW ALL は右揃え（inline-flex では margin-left:auto が効かないため flex 化） */
  .news__view {
    position: static;
    display: flex;
    width: max-content;
    height: auto;
    margin-top: 30px;
    margin-left: auto;
    font-size: var(--fs-12);
    line-height: 17.4px;
    letter-spacing: 0.08em;
  }

  .access {
    display: block;
    padding-top: var(--fluid-y);
    overflow: hidden;
  }

  .access__intro,
  .access__map-block,
  .instagram-strip {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    height: auto;
  }

  .access__intro {
    display: block;
    padding: 0 var(--fluid-x) clamp(36px, 6vw, 60px);
  }

  .access__copy {
    position: static;
    width: auto;
  }

  /* access.css の tablet 用 absolute 配置（.access__intro 配下 0-2-0）を同詳細度で戻す */
  .access__intro .section-title,
  .access__intro .access__view {
    position: static;
    top: auto;
    left: auto;
  }

  .access__intro .access__view {
    margin-top: 20px;
  }

  /* 005: 案内ブロックに左線（ACCESS 見出し下〜本文全体）。旧・引用線は座標がずれるため無効化 */
  .access__copy::before {
    content: none;
  }

  .access__routes {
    position: static;
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 5vw, 40px);
    width: auto;
    margin: clamp(36px, 6vw, 70px) 0 0;
    padding-left: clamp(16px, 3vw, 24px);
    border-left: 1px solid var(--c-line);
  }

  .access__routes section:first-child p,
  .access__routes section:last-child h3 {
    display: block;
  }

  .access__routes h3 {
    font-size: var(--fs-16);
    line-height: 23.2px;
    letter-spacing: 0;
  }

  .access__routes p {
    margin-top: 12px;
    font-size: var(--fs-12);
    line-height: 19.2px;
    letter-spacing: 0.6px;
    white-space: normal;
  }

  /* 005: 地図イラストはコンテンツ幅いっぱいに。VIEW ALL は地図下・右揃え */
  .access__map-block {
    display: block;
    padding: 0 var(--fluid-x) var(--fluid-y);
  }

  .access__map-block picture {
    display: block;
    width: 100%;
    /* base(access.css)の height:405px を解除。これが残ると中の img(height:auto・実寸)が
       picture を突き破り、直後の Instagram 帯に食い込む（地図が下に重なる）ため auto にする */
    height: auto;
    min-width: 0;
  }

  .access__view--bottom {
    display: flex;
    width: max-content;
    margin-top: 24px;
    margin-left: auto;
  }

  /* 上部（見出し直下）の VIEW ALL は 005 参考デザインでは地図下に一本化 */
  .access__intro .access__view {
    display: none;
  }

  .access__map {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
  }

  .instagram-strip {
    display: block;
    padding: var(--fluid-y) var(--fluid-x);
    background: #fff;
  }

  .instagram-strip__link {
    height: auto;
  }

  .instagram-strip__link > p {
    width: 100%;
    margin: 0;
    font-family: var(--font-serif);
    text-align: center;
  }

  .instagram-strip__embed {
    width: 100%;
    margin: 30px auto 0;
  }

  .footer-menu {
    display: flex;
    width: 100%;
    margin: clamp(48px, 8vw, 72px) auto;
  }

  .site-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: 40px;
    min-height: 0;
    height: auto;
    padding: 72px var(--fluid-x) 36px;
    background: var(--c-accent-deep);
  }

  .site-footer__past,
  .site-footer__credit,
  .site-footer__brand,
  .site-footer__brand p,
  .site-footer__brand img,
  .site-footer__logo-line1,
  .site-footer__logo-line2,
  .site-footer__logo-line3 {
    position: static;
    inset: auto;
    left: auto;
    top: auto;
    /* layout.css ≤560px の translateX(-50%) 中央寄せが static 化後に残ると左へ半分ずれる */
    transform: none;
  }

  .site-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .site-footer__brand img {
    width: min(300px, 80vw);
    height: auto;
    /* iOS Safari: フッターのスクロール演出(transform)で SVG ロゴが二重合成される
       (片方がわずかに横拡大して重なる)対策。各ロゴを独立レイヤーに固定してゴーストを消す */
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
  }

  /* ロゴ幅は width:min(300px,80vw)。マージンを固定pxにすると幅が縮む狭い端末
     (<375px)で重なり量がズレて縦に崩れる（二重に見える）ため、幅と同率でスケールさせる。
     ≥375px では 80vw≥300 で min により -30px/10px に一致（従来どおり） */
  .site-footer__logo-line2 {
    margin-top: max(-8vw, -30px);
  }

  .site-footer__logo-line3 {
    margin-top: min(2.67vw, 10px);
  }

  /* 005: コピーライトはフッター最下部の中央へ */
  .site-footer {
    padding-bottom: 70px;
  }

  .site-footer__brand p {
    position: absolute;
    bottom: 20px;
    left: 50%;
    width: max-content;
    margin: 0;
    transform: translateX(-50%);
    text-align: center;
  }

  .site-footer__past,
  .site-footer__credit {
    width: auto;
    color: #fff;
    white-space: normal;
  }

  .site-footer__past {
    grid-column: 1;
    grid-row: 2;
  }

  .site-footer__credit {
    grid-column: 2;
    grid-row: 2;
    text-align: right;
  }
}

/* 005: モバイル(Figma Mobile 1-799)はロゴ w190 固定・垂直パディング上下25（25+42.5+25） */
@media (max-width: 799px) {
  :root {
    --h-header: 93px;
    --header-logo-y: 25px;
  }

  .site-header__logo {
    width: 190px;
  }
}

@media (max-width: 700px) {
  :root {
    --h-hero-poster: calc(100vw * var(--hero-poster-ratio));
    --news-gap: 30px;
  }

  .pickup__cards,
  .about__grid,
  .exhibitors__inner,
  .access__intro,
  .access__map-block,
  .site-footer {
    grid-template-columns: 1fr;
  }

  .exhibitors__lead br {
    display: none;
  }

  .journal-card__carousel {
    grid-template-columns: 1fr;
  }

  .access__routes {
    flex-direction: column;
  }

  .news__list {
    gap: var(--news-gap, 30px);
  }

  .news-item,
  .news-item:nth-child(2),
  .news-item:nth-child(3) {
    gap: 10px;
  }

  .site-footer__past,
  .site-footer__credit {
    grid-column: 1;
    text-align: left;
  }

  .site-footer__credit {
    grid-row: 3;
  }
}

@media (max-width: 560px) {
  /* 005: Figma Mobile 実測（見出し fs24/34.8・本文 fs14/28・事業社名 fs12/24） */
  .section-title,
  .section__eyebrow,
  .about__lead {
    font-size: 24px;
    line-height: 34.8px;
    letter-spacing: 2.4px;
  }

  .about__desc,
  .about__body,
  .exhibitors__lead {
    font-size: var(--fs-14);
    line-height: 28px;
    letter-spacing: 1.4px;
  }

  .exhibitor-card p {
    font-size: var(--fs-12);
    line-height: 24px;
  }

  /* 005: Figma Mobile の倉一覧は1カラム縦積み */
  .pickup__cards,
  .exhibitors__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  :root {
    --fluid-x: 30px;
  }

  .footer-menu {
    margin: 48px auto;
  }
}
