/* フロントページ(LP)専用スタイル: ヒーロー/コンセプト/施設/健診/お知らせの各セクション */
/* ══ [2] ヒーロー(全画面: イラストが画面を支配する) ══ */
  .aplaza-hero {
    position: sticky;                    /* シート積層: ヒーローは固定され、次のシートが被さる */
    top: 0;
    min-height: 100svh;
    padding-bottom: clamp(110px, 13vw, 200px);   /* 下端の開業告知の帯の高さぶん */
    /* 暖かい光: 上から差し込み、足元へ深まる(Nekoの光の文法) */
    background:
      radial-gradient(120% 90% at 78% 10%, rgba(255, 244, 224, 0.9) 0%, rgba(255, 244, 224, 0) 55%),
      linear-gradient(180deg, #FFFDF8 0%, #FBF5E9 62%, #F6EEDD 100%);
    overflow: hidden;
    display: flex;
    align-items: center;
  }
  /* イラストの箱(picture)と画像(img)で役割を分ける: 箱 = GSAP の沈み込み演出 / 画像 = CSS の登場アニメーション。
     同じ要素の opacity を二つの仕組みで触ると、タイミング次第で画像が消えるため */
  .aplaza-hero__visual {
    position: absolute;
    right: -5%;
    bottom: 0;
    width: 74%;
    height: 96%;
  }
  .aplaza-hero__illust {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right bottom;
    opacity: 0;
    animation: fadeUp 1.6s var(--ease) 0.55s forwards;
  }
  .aplaza-hero__copy {
    position: relative;
    z-index: 2;
    padding: clamp(110px, 15vh, 150px) 0 clamp(40px, 6vh, 64px) clamp(24px, 6vw, 104px);
    max-width: min(54%, 700px);
  }
  .aplaza-hero__title {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(2.2rem, 4.3vw, 4rem);
    line-height: 1.55;
    letter-spacing: 0.06em;
    white-space: nowrap;              /* 改行は .aplaza-line 単位でのみ行う */
  }
  .aplaza-hero__title .aplaza-line { display: block; overflow: clip; }
  .aplaza-hero__title .aplaza-line > span {
    display: block;
    transform: translateY(112%);
    animation: lift 1.2s var(--ease) forwards;
  }
  .aplaza-hero__title .aplaza-line:nth-child(1) > span { animation-delay: 0.35s; }
  .aplaza-hero__title .aplaza-line:nth-child(2) > span { animation-delay: 0.5s; }
  .aplaza-hero__title .aplaza-line:nth-child(3) > span { animation-delay: 0.65s; }

  .aplaza-hero__sub {
    margin-top: 1.8em;
    font-size: clamp(0.92rem, 1.25vw, 1.05rem);
    line-height: 2.2;
    max-width: 27em;
    opacity: 0;
    animation: fadeUp 1.2s var(--ease) 1s forwards;
  }

  /* 開業告知「2027.4 秋田西武3Fにて OPEN」: ヒーロー下端の全幅の帯(中央揃え)。
     見出しより大きな数字を主役にし、帯の背後にアイボリーの光を敷いて、検査着(イラスト)に
     重なっても文字が立つようにする。演出は 数字が1桁ずつ着地 → 場所+朱マーカー → OPEN の順 */
  .aplaza-hero__open {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 3;
    margin: 0;
    padding: clamp(24px, 3vh, 40px) clamp(16px, 4vw, 48px) clamp(28px, 4vh, 48px);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    column-gap: 0.5em;
    row-gap: 0.25em;
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    line-height: 1;
    background: linear-gradient(180deg, rgba(246, 238, 221, 0) 0%, rgba(250, 244, 230, 0.92) 45%, rgba(250, 244, 230, 0.98) 100%);
    pointer-events: none;
  }
  .aplaza-hero__open-date {
    display: flex;
    align-items: baseline;
    font-size: clamp(3.2rem, 7.6vw, 7.4rem);
    letter-spacing: 0.02em;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
  }
  .aplaza-hero__open-digit {
    display: inline-block;
    opacity: 0;
    transform: translateY(0.45em) scale(0.8);
    transform-origin: 50% 100%;
    animation: land 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  }
  .aplaza-hero__open-digit:nth-child(1) { animation-delay: 1.15s; }
  .aplaza-hero__open-digit:nth-child(2) { animation-delay: 1.25s; }
  .aplaza-hero__open-digit:nth-child(3) { animation-delay: 1.35s; }
  .aplaza-hero__open-digit:nth-child(4) { animation-delay: 1.45s; }
  .aplaza-hero__open-digit:nth-child(5) { animation-delay: 1.6s; }
  .aplaza-hero__open-digit--month { font-size: 0.62em; margin-left: 0.04em; }

  .aplaza-hero__open-place {
    font-size: clamp(1.25rem, 2.5vw, 2.45rem);
    letter-spacing: 0.1em;
    color: var(--ink);
    opacity: 0;
    animation: fadeUp 0.9s var(--ease) 1.95s forwards;
  }
  /* 場所の朱マーカー(コンセプトの判定語と同じ装置)。少し遅れて左から引かれる */
  .aplaza-hero__open-place mark {
    display: inline-block;
    background-color: transparent;
    color: inherit;
    padding: 0.1em 0.25em;
    background-image: linear-gradient(transparent 52%, rgba(230, 48, 81, 0.42) 52%, rgba(230, 48, 81, 0.42) 94%, transparent 94%);
    background-repeat: no-repeat;
    background-size: 0% 100%;
    animation: marker 0.5s var(--ease) 2.35s forwards;
  }
  .aplaza-hero__open-word {
    font-size: clamp(1.5rem, 3.4vw, 3.3rem);
    letter-spacing: 0.2em;
    color: var(--accent);
    opacity: 0;
    transform: translateX(-10px);
    animation: fadeSide 0.8s var(--ease) 2.55s forwards;
  }

  @keyframes land {
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
  @keyframes fadeSide {
    to { opacity: 1; transform: translateX(0); }
  }
  @keyframes marker {
    to { background-size: 100% 100%; }
  }
  /* 動きを減らす設定では、初期非表示の要素をそのまま見せる(base.css が animation を止めるため) */
  @media (prefers-reduced-motion: reduce) {
    .aplaza-hero__illust,
    .aplaza-hero__sub,
    .aplaza-hero__open-digit,
    .aplaza-hero__open-word,
    .aplaza-hero__open-place { opacity: 1; transform: none; }
    .aplaza-hero__title .aplaza-line > span { transform: none; }
    .aplaza-hero__open-place mark { background-size: 100% 100%; }
  }

  /* ══ [3] コンセプト(仮組み: スクロール演出の検証を兼ねる) ══ */
  .aplaza-concept {
    position: relative;
    z-index: 2;
    background: var(--ground);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow: 0 -28px 60px -38px rgba(80, 79, 80, 0.35);   /* シートの浮き */
    padding: clamp(90px, 13vw, 180px) clamp(24px, 6vw, 104px) clamp(110px, 15vw, 200px);
    min-height: 100svh;
  }
  .aplaza-concept__inner { max-width: 880px; margin-inline: auto; }
  /* 章扉(statement)のスタイルは components/statement.css へ昇格済み */
  .aplaza-concept__body {
    margin-top: 2.5em;
    font-size: clamp(0.94rem, 1.3vw, 1.05rem);
    line-height: 2.5;
    max-width: 40em;
  }
  .aplaza-concept__note { margin-top: 4em; font-size: 0.75rem; color: var(--ink-soft); }

  /* 課題データ: 一枚看板型。主役数字が画面を支配する */
  /* 一枚看板: 内側の列(880px)より左右に広げる。ただし画面の余白(セクション padding)を食いつぶさないよう、
     はみ出し量は「片側の余白 − 24px」を上限にし、余白が足りない幅では 0 にする */
  .aplaza-data {
    margin-top: clamp(48px, 6vw, 80px);
    margin-inline: min(0px, max(-120px, -6vw, calc(24px - (100vw - 880px) / 2)));
  }
  .aplaza-data__label {
    font-size: clamp(0.85rem, 1.1vw, 1rem);
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--ink-soft);
  }
  .aplaza-data mark {
    background-color: transparent;
    color: var(--ink);
    font-weight: 700;
    padding: 0 0.15em;
    background-image: linear-gradient(transparent 55%, rgba(230, 48, 81, 0.3) 55%, rgba(230, 48, 81, 0.3) 92%, transparent 92%);
    /* スタンプ演出用: transform を効かせるための inline-block と、マーカーを引く方向の制御 */
    display: inline-block;
    background-repeat: no-repeat;
    background-size: 100% 100%;
  }
  .aplaza-data i { font-style: normal; font-variant-numeric: tabular-nums; }

  .aplaza-data__big {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(4.5rem, 14vw, 11.5rem);
    line-height: 1.05;
    letter-spacing: 0;
    color: var(--ink);
    margin-top: 0.1em;
  }
  .aplaza-data__big small { font-size: 0.38em; font-weight: 700; margin-left: 0.08em; }
  .aplaza-data__verdict { margin-top: 0.4em; font-size: clamp(1.3rem, 2.6vw, 2.1rem); }
  .aplaza-data__main .aplaza-data__src { margin-top: 1.2em; }
  .aplaza-data__src { font-size: 0.78rem; color: var(--ink-soft); line-height: 2; }

  .aplaza-data__sub {
    margin-top: clamp(48px, 6vw, 80px);
    padding-top: clamp(28px, 3.5vw, 44px);
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(24px, 4vw, 64px);
  }
  .aplaza-data__num {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(2.2rem, 4.6vw, 3.8rem);
    line-height: 1.15;
    color: var(--ink);
    margin-top: 0.15em;
  }
  .aplaza-data__num small { font-size: 0.45em; margin-left: 0.06em; }
  .aplaza-data__item .aplaza-data__verdict { font-size: clamp(0.95rem, 1.4vw, 1.2rem); }
  .aplaza-data__item .aplaza-data__src { margin-top: 0.7em; }
  @media (max-width: 720px) { .aplaza-data__sub { grid-template-columns: 1fr; } }

  /* 返しの言葉: 転換点。アクセントはここで使う */
  .aplaza-concept__turn {
    margin-top: clamp(64px, 8vw, 104px);
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    line-height: 1.95;
    letter-spacing: 0.06em;
    color: var(--accent);
    text-wrap: balance;
  }

  /* 返しを裏付ける3つの魅力 */
  /* 魅力カード: 大型スライド(Swiper) */
  .aplaza-answers {
    margin-top: clamp(40px, 5vw, 64px);
    margin-inline: min(0px, max(-120px, -6vw, calc(24px - (100vw - 880px) / 2)));   /* .aplaza-data と同じ考え方 */
    overflow: visible;
  }
  .aplaza-answers .swiper-slide {
    width: min(680px, 82vw);
    height: auto;
  }
  .aplaza-answers__item {
    height: 100%;
    background: var(--surface);
    border-radius: var(--radius-lg);
    padding: clamp(36px, 5vw, 72px);
    box-shadow: 0 30px 70px -45px rgba(80, 79, 80, 0.45);
  }
  .swiper-slide:hover .aplaza-answers__item { transform: translateY(-4px); }
  .aplaza-answers__item { transition: transform 0.6s var(--ease), box-shadow 0.6s var(--ease); }
  .swiper-slide:hover .aplaza-answers__item { box-shadow: 0 36px 80px -45px rgba(80, 79, 80, 0.55); }
  .aplaza-answers__item h3 {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.4rem, 2.5vw, 2.05rem);
    line-height: 1.65;
    letter-spacing: 0.04em;
  }
  .aplaza-answers__item h3 br + * { display: inline; }
  @media (max-width: 560px) { .aplaza-answers__item h3 br { display: none; } }
  .aplaza-answers__item p {
    margin-top: 1.4em;
    font-size: clamp(0.92rem, 1.25vw, 1.05rem);
    line-height: 2.3;
    max-width: 34em;
    text-wrap: pretty;
  }
  .aplaza-answers__item strong { color: var(--accent); font-weight: 700; }
  .aplaza-answers-pg { margin-top: 28px; display: flex; gap: 8px; }
  .aplaza-answers-pg .swiper-pagination-bullet { background: var(--ink-soft); opacity: 0.4; }
  .aplaza-answers-pg .swiper-pagination-bullet-active { background: var(--accent); opacity: 1; }


  /* ══ [4] 施設について(白シート) ══ */
  .aplaza-facility {
    position: relative;
    z-index: 2;
    background: var(--surface);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow: 0 -28px 60px -38px rgba(80, 79, 80, 0.3);
    margin-top: calc(-1 * var(--radius-lg));
    padding: clamp(90px, 12vw, 170px) clamp(24px, 6vw, 104px) clamp(110px, 14vw, 190px);
  }
  .aplaza-facility__inner { max-width: 1080px; margin-inline: auto; }
  .aplaza-facility__lead {
    margin-top: 2.2em;
    font-size: clamp(0.94rem, 1.3vw, 1.05rem);
    line-height: 2.5;
    max-width: 40em;
  }

  .aplaza-facility__floor { margin-top: clamp(48px, 6vw, 80px); }
  .aplaza-dim {
    display: flex;
    align-items: center;
    gap: 0.9em;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--ink-soft);
    margin-bottom: 16px;
  }
  .aplaza-dim::before, .aplaza-dim::after { content: ""; height: 1px; background: var(--line); flex: 1; }
  .aplaza-facility__floor img { width: 100%; }
  .aplaza-facility__floornote {
    margin-top: 1em;
    display: flex;
    justify-content: space-between;
    gap: 1em 2em;
    flex-wrap: wrap;
    font-size: 0.75rem;
    color: var(--ink-soft);
  }

  .aplaza-frow {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 4.5vw, 72px);
    align-items: center;
    margin-top: clamp(64px, 8vw, 104px);
  }
  .aplaza-frow:nth-of-type(even) .aplaza-frow__media { order: 2; }
  .aplaza-frow__media img {
    border-radius: var(--radius-md);
    box-shadow: 0 24px 56px -38px rgba(80, 79, 80, 0.45);
  }
  .aplaza-vignette { width: 100%; height: auto; display: block; }
  .aplaza-floor3d { width: 100%; height: auto; display: block; }
  .aplaza-facility__floorscroll { overflow-x: auto; }
  /* 案内文は入力環境で出し分ける(ホバーがある=ポインタ / 無い=タッチ) */
  .aplaza-facility__hint--touch { display: none; }
  @media (hover: none) {
    .aplaza-facility__hint--pointer { display: none; }
    .aplaza-facility__hint--touch { display: inline; }
  }
  @media (max-width: 720px) {
    .aplaza-floor3d { min-width: 720px; }   /* 縮めて判読不能にせず、横スクロールで見せる */
  }
  .aplaza-floor3d .aplaza-area { cursor: pointer; transition: transform 0.4s var(--ease); }
  .aplaza-floor3d .aplaza-area:hover { transform: translateY(-6px); }
  .aplaza-floor-tip {
    position: fixed;
    pointer-events: none;
    background: var(--ink);
    color: #fff;
    font-size: 0.8rem;
    line-height: 1.7;
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    opacity: 0;
    transition: opacity 0.2s;
    max-width: 280px;
    z-index: 50;
  }
  .aplaza-floor-tip b { display: block; font-size: 0.88rem; }
  .aplaza-frow h3 {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    line-height: 1.7;
    letter-spacing: 0.04em;
  }
  .aplaza-frow p {
    margin-top: 1.2em;
    font-size: clamp(0.9rem, 1.2vw, 1rem);
    line-height: 2.3;
    text-wrap: pretty;
  }
  .aplaza-frow strong { color: var(--accent); font-weight: 700; }
  @media (max-width: 720px) {
    .aplaza-frow { grid-template-columns: 1fr; }
    .aplaza-frow:nth-of-type(even) .aplaza-frow__media { order: 0; }
  }

  /* ══ [5] 健診について(紙白シート) ══ */
  .aplaza-checkup {
    position: relative;
    z-index: 2;
    background: var(--ground);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow: 0 -28px 60px -38px rgba(80, 79, 80, 0.3);
    margin-top: calc(-1 * var(--radius-lg));
    padding: clamp(90px, 12vw, 170px) clamp(24px, 6vw, 104px) clamp(110px, 14vw, 190px);
  }
  .aplaza-checkup__inner { max-width: 880px; margin-inline: auto; }
  .aplaza-checkup__lead {
    margin-top: 2.2em;
    font-size: clamp(0.94rem, 1.3vw, 1.05rem);
    line-height: 2.5;
    max-width: 40em;
  }

  /* 80GO看板: 足あとの歩行ラインがゴールの大型タイポへ届く */
  .aplaza-checkup__goal { margin-top: clamp(56px, 7vw, 96px); text-align: center; }
  .aplaza-checkup__walk {
    width: 100%;
    max-width: 720px;
    height: auto;
    display: block;
    margin-inline: auto;
  }
  .aplaza-checkup__num {
    /* 祝福の数字: コンセプトのショック数字(data__big)と同格のスケールで主張させる */
    display: inline-block;
    position: relative;
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(4.5rem, 14vw, 11.5rem);
    line-height: 1.1;
    letter-spacing: 0.02em;
  }
  .aplaza-checkup__num i { font-style: normal; color: var(--accent); font-size: 0.62em; margin-left: 0.06em; }
  .aplaza-checkup__num-ch { display: inline-block; }
  /* 着地とともに背後で灯る暖色の光(ヒーローの光の文法。数字の後光) */
  .aplaza-checkup__glow {
    position: absolute;
    left: -18%;
    top: -28%;
    width: 136%;
    height: 156%;
    border-radius: 50%;
    background: radial-gradient(closest-side,
      rgba(230, 48, 81, 0.10) 0%,
      rgba(255, 214, 160, 0.16) 45%,
      rgba(255, 214, 160, 0) 100%);
    z-index: -1;
    pointer-events: none;
  }
  .aplaza-checkup__slogan {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.25rem, 2.4vw, 1.9rem);
    letter-spacing: 0.08em;
    margin-top: 0.5em;
  }
  .aplaza-checkup__goalnote {
    margin-top: 1.8em;
    font-size: 0.86rem;
    line-height: 2.2;
    color: var(--ink-soft);
    max-width: 36em;
    margin-inline: auto;
    text-wrap: pretty;
  }

  /* ロコモ・フレイル健診: 3テストのステップライン */
  .aplaza-checkup__locomo {
    margin-top: clamp(72px, 9vw, 120px);
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: clamp(28px, 4.5vw, 72px);
    align-items: start;
  }
  .aplaza-checkup__locomo-head h3 {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    line-height: 1.7;
    letter-spacing: 0.04em;
  }
  .aplaza-checkup__locomo-head p {
    margin-top: 1.2em;
    font-size: clamp(0.9rem, 1.2vw, 1rem);
    line-height: 2.3;
    text-wrap: pretty;
  }
  .aplaza-checkup__locomo-head strong { color: var(--accent); font-weight: 700; }
  .aplaza-checkup__stepswrap { position: relative; }
  .aplaza-checkup__stepswrap::before {
    content: "";
    position: absolute;
    left: 21px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: var(--line);
  }
  .aplaza-checkup__rail {
    position: absolute;
    left: 21px;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: var(--accent);
  }
  .aplaza-checkup__steps {
    list-style: none;
    display: grid;
    gap: clamp(22px, 2.8vw, 32px);
  }
  .aplaza-checkup__step { position: relative; padding-left: 64px; }
  .aplaza-checkup__dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--surface);
    border: 2px solid var(--line);
    display: grid;
    place-items: center;
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: 1rem;
  }
  .aplaza-checkup__step h4 {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.05rem, 1.6vw, 1.3rem);
    line-height: 1.7;
  }
  .aplaza-checkup__step p {
    margin-top: 0.5em;
    font-size: 0.88rem;
    line-height: 2.1;
    text-wrap: pretty;
  }

  /* 受けられる健診: 診察券カード */
  .aplaza-checkup__menu { margin-top: clamp(72px, 9vw, 120px); }
  .aplaza-checkup__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(16px, 2.4vw, 28px);
    margin-top: 24px;
  }
  .aplaza-checkup__card {
    background: var(--surface);
    border-radius: var(--radius-md);
    padding: clamp(24px, 3vw, 40px);
    box-shadow: 0 24px 56px -40px rgba(80, 79, 80, 0.45);
  }
  .aplaza-checkup__card h4 {
    font-family: "Zen Maru Gothic", var(--font-body);
    font-weight: 700;
    font-size: clamp(1.1rem, 1.8vw, 1.45rem);
    line-height: 1.6;
  }
  .aplaza-checkup__card p {
    margin-top: 0.8em;
    font-size: 0.9rem;
    line-height: 2.1;
    text-wrap: pretty;
  }

  .aplaza-checkup__after {
    margin-top: clamp(56px, 7vw, 88px);
    font-size: clamp(0.94rem, 1.3vw, 1.05rem);
    line-height: 2.5;
    max-width: 40em;
  }
  .aplaza-checkup__after strong { color: var(--accent); font-weight: 700; }
  .aplaza-checkup__note { margin-top: 3em; font-size: 0.75rem; color: var(--ink-soft); }

  @media (max-width: 720px) {
    .aplaza-checkup__locomo { grid-template-columns: 1fr; }
    .aplaza-checkup__cards { grid-template-columns: 1fr; }
  }

  /* ══ [6] お知らせ(白シート) ══ */
  .aplaza-news {
    position: relative;
    z-index: 2;
    background: var(--surface);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    box-shadow: 0 -28px 60px -38px rgba(80, 79, 80, 0.3);
    margin-top: calc(-1 * var(--radius-lg));
    padding: clamp(90px, 12vw, 170px) clamp(24px, 6vw, 104px) clamp(110px, 14vw, 190px);
  }
  .aplaza-news__inner { max-width: 880px; margin-inline: auto; }
  /* 行組みリスト・円形矢印のスタイルは components/news-list.css へ昇格済み */

@keyframes lift { to { transform: translateY(0); } }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  /* ヒーローのスマホ・タブレット幅: 縦積み(コピー → イラスト → 開業告知の帯)。
     絶対配置のイラストと帯を通常フローに戻し、コピー欄の幅制限と見出しの nowrap を解く */
  @media (max-width: 900px) {
    .aplaza-hero {
      flex-direction: column;
      align-items: stretch;
      justify-content: flex-start;
      padding-bottom: 0;                 /* 帯は通常フローに置くので確保不要 */
    }
    .aplaza-hero__copy {
      order: -1;                         /* DOM ではイラストが先だが、スマホではコピーを先頭に */
      max-width: none;
      padding: clamp(96px, 14vh, 120px) clamp(24px, 6vw, 40px) 0;
    }
    .aplaza-hero__title { font-size: clamp(1.9rem, 8.4vw, 3rem); }
    .aplaza-hero__sub { max-width: none; }
    .aplaza-hero__visual {
      position: static;
      display: block;
      width: auto;
      height: auto;
      margin-top: auto;                  /* 余った縦空間はイラストの上へ寄せ、帯を下端に保つ */
    }
    .aplaza-hero__illust {
      width: 100%;
      height: auto;
      max-height: 46svh;
      object-position: center bottom;
    }
    .aplaza-hero__open {
      position: static;
      padding: clamp(16px, 3vh, 28px) 16px clamp(24px, 4vh, 36px);
      column-gap: 0.4em;
    }
    .aplaza-hero__open-date { font-size: clamp(3rem, 15vw, 4.4rem); }
    .aplaza-hero__open-place { font-size: clamp(1.1rem, 4.6vw, 1.5rem); }
    .aplaza-hero__open-word { font-size: clamp(1.4rem, 6.4vw, 2rem); }
  }

/* お知らせが0件のときの表示 */
.aplaza-news__empty {
  margin-top: 2.5em;
  color: var(--ink-soft);
}

/* ══ [7] アクセス(紙白シート。地図パネルはクリックで Google マップを読み込む) ══ */
.aplaza-access {
  position: relative;
  z-index: 2;
  background: var(--ground);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  box-shadow: 0 -28px 60px -38px rgba(80, 79, 80, 0.3);
  margin-top: calc(-1 * var(--radius-lg));
  padding: clamp(90px, 12vw, 170px) clamp(24px, 6vw, 104px) clamp(110px, 14vw, 190px);
}
.aplaza-access__inner { max-width: 1080px; margin-inline: auto; }
.aplaza-access__lead {
  margin-top: 2.2em;
  font-size: clamp(0.94rem, 1.3vw, 1.05rem);
  line-height: 2.5;
  max-width: 40em;
}

.aplaza-access__body {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: clamp(28px, 4.5vw, 72px);
  align-items: start;
  margin-top: clamp(48px, 6vw, 80px);
}

/* 地図パネル: 白いパネルに収める(ヒーローの白パネルと同じ文法)。
   カバーと地図は同じ縦横比にして、読み込み前後でレイアウトが跳ねないようにする */
.aplaza-access__map {
  background: var(--surface);
  border-radius: var(--radius-md);
  box-shadow: 0 24px 56px -38px rgba(80, 79, 80, 0.45);
  padding: clamp(12px, 1.6vw, 16px);
}
.aplaza-access__cover {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.6em;
  aspect-ratio: 4 / 3;
  padding: clamp(24px, 4vw, 48px);
  border-radius: var(--radius-sm);
  background: var(--ground);
}
.aplaza-access__map[data-state="map"] .aplaza-access__cover { display: none; }
.aplaza-access__cover-place {
  font-family: "Zen Maru Gothic", var(--font-body);
  font-weight: 700;
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  letter-spacing: 0.04em;
}
.aplaza-access__cover-addr { font-size: 0.85rem; color: var(--ink-soft); }
.aplaza-access__cover .aplaza-access__button { margin-top: 1em; }
.aplaza-access__note { max-width: 24em; font-size: 0.72rem; line-height: 1.9; color: var(--ink-soft); }

/* 読み込んだ Google マップ */
.aplaza-access__embed iframe {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 0;
  border-radius: var(--radius-sm);
}

.aplaza-access__info { display: grid; gap: 1.6em; padding-top: clamp(4px, 1vw, 12px); }
.aplaza-access__name {
  font-family: "Zen Maru Gothic", var(--font-body);
  font-weight: 700;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  letter-spacing: 0.04em;
}
.aplaza-access__addr { font-style: normal; font-size: clamp(0.94rem, 1.3vw, 1.05rem); line-height: 2.1; }
.aplaza-access__ways { display: grid; gap: 1em; }
.aplaza-access__way dt {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--ink-soft);
}
.aplaza-access__way dd { margin-top: 0.3em; font-size: 0.9rem; line-height: 2.1; text-wrap: pretty; }

.aplaza-access__button {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: var(--ink);
  color: #fff;
  font-size: 0.83rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border: 0;
  border-radius: var(--radius-md);
  padding: 12px 22px;
  cursor: pointer;
  box-shadow: 0 10px 28px -12px rgba(80, 79, 80, 0.55);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), background-color 0.35s var(--ease);
}
.aplaza-access__button:hover, .aplaza-access__button:focus-visible {
  background: var(--ink-deep);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -12px rgba(80, 79, 80, 0.65);
}
.aplaza-access__button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.aplaza-access__ext {
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.aplaza-access__ext::after { content: "↗"; margin-left: 0.3em; font-size: 0.9em; }
.aplaza-access__ext:hover, .aplaza-access__ext:focus-visible { color: var(--accent-deep); }
.aplaza-access__ext:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

@media (max-width: 720px) {
  .aplaza-access__body { grid-template-columns: 1fr; }
}
