/* NNiNN renewal — ページ固有スタイル B（宿泊 / 私たちについて / お問い合わせ / お知らせ / 記事 / 本文ページ） */
@layer pages {
  /* ================= HOTEL ================= */
  .stay-hero { background: var(--c-sage); padding-block: var(--sp-4) var(--section-y); }
  .stay-hero__inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-4); align-items: center; }
  .stay-hero__crumb { grid-column: 1 / -1; }
  .stay-hero__text { grid-column: span 6; display: flex; flex-direction: column; gap: var(--sp-3); }
  .stay-hero__text h1 { font-size: clamp(30px, 3.9vw, 56px); }
  .stay-hero__name { font-size: 15px; color: var(--c-ink); margin-top: -8px; }
  .stay-hero__media { grid-column: 7 / span 6; margin: 0; display: flex; flex-direction: column; gap: 8px; }
  .stay-hero__media img { width: 100%; aspect-ratio: 4 / 3; max-height: 560px; object-fit: cover; border-radius: var(--r-img); }
  .stay-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; border-top: 1px solid var(--c-sage-line); border-bottom: 1px solid var(--c-sage-line); }
  .stay-stats > div { display: flex; flex-direction: column; gap: 6px; padding: 16px 0; }
  .stay-stats dt { font-size: 12px; color: var(--c-muted); }
  .stay-stats dd { font-family: var(--ff-display); font-weight: 700; font-size: 20px; color: var(--c-ink); white-space: nowrap; }
  @media (min-width: 1080px) and (max-width: 1279px) { .stay-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 1079px) {
    .stay-hero__text, .stay-hero__media { grid-column: 1 / -1; }
    .stay-hero__media { order: -1; margin-top: 0; }
    .stay-hero__crumb { order: -2; }
    .stay-hero__inner { row-gap: var(--sp-3); }
  }
  @media (max-width: 767px) {
    .stay-hero { padding-block: var(--sp-2) var(--sp-7); }
    .stay-hero__media img { aspect-ratio: 3 / 2; }
    .stay-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .stay-stats dd { font-size: 18px; }
  }

  .env { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-3); align-items: center; }
  .env__media { grid-column: span 6; }
  .env__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-img); }
  .env__text { grid-column: 8 / span 5; }
  .env__text h2 { font-size: clamp(26px, 2.8vw, 40px); }
  @media (max-width: 1079px) { .env__media, .env__text { grid-column: 1 / -1; } }

  .functions--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  @media (min-width: 768px) and (max-width: 1079px) {
    .functions--3 { grid-template-columns: 1fr; gap: 0; }
    .functions--3 .functions__item { flex-direction: row; align-items: flex-start; gap: var(--sp-2); padding: 22px 0; border: 0; border-bottom: 1px solid var(--c-line); border-radius: 0; background: none; }
  }
  @media (max-width: 767px) { .functions--3 { grid-template-columns: 1fr; } }
  .section--band .card { border-color: var(--c-sage-line); }

  .details { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-4); align-items: start; }
  .details__spec { grid-column: span 6; }
  .details__side { grid-column: 8 / span 5; display: flex; flex-direction: column; gap: var(--sp-4); }
  .checkinout { display: flex; gap: var(--sp-4); }
  .checkinout > div { display: flex; flex-direction: column; gap: 6px; }
  .checkinout__time { font-size: clamp(36px, 3.6vw, 52px); line-height: 1; color: var(--c-ink); }
  .details__note { color: var(--c-ink-2); }
  .rules { display: flex; flex-direction: column; gap: var(--sp-2); }
  .rules__list { display: flex; flex-direction: column; gap: 10px; }
  .rules__list li { position: relative; padding-left: 18px; font-size: 15px; line-height: 1.7; color: var(--c-ink); }
  .rules__list li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: 50%; background: var(--c-blue); }
  .rules__list.small li { font-size: 13px; color: var(--c-ink-2); }
  @media (max-width: 1079px) { .details__spec, .details__side { grid-column: 1 / -1; } }

  .amen-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); padding: var(--sp-4); background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-card); }
  .amen-groups h3 { font-size: 15px; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--c-line); }
  .amen-list { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
  @media (max-width: 1079px) { .amen-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 767px) { .amen-groups { grid-template-columns: 1fr; padding: 24px 20px; } }

  .access { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-4); align-items: start; }
  .access__text { grid-column: span 5; display: flex; flex-direction: column; gap: 28px; }
  .access__addr { font-size: 16px; color: var(--c-ink); }
  .access__routes { display: flex; flex-direction: column; gap: var(--sp-3); }
  .access__routes h3 { font-size: 15px; margin-bottom: 10px; }
  .access__routes p { margin-top: 10px; }
  .access__map { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: var(--sp-2); align-items: flex-start; }
  .access__map iframe { width: 100%; align-self: stretch; height: 400px; border: 0; border-radius: var(--r-img); background: var(--c-sage); display: block; }
  @media (max-width: 1079px) { .access__text, .access__map { grid-column: 1 / -1; } .access__map iframe { height: 300px; } }
  @media (max-width: 767px) { .access__map { order: -1; } .access__map iframe { height: 240px; } }

  /* 宿泊: ほかの施設 */
  /* 宿泊ページのヒーロー: トップの操作できる UI カード（.hero__media / .hero__ui）を流用。位置は stay-hero のグリッドに合わせる */
  .stay-hero .hero__media { grid-column: 7 / span 6; grid-row: auto; aspect-ratio: 876 / 550; margin: 0; align-self: start; }
  .stay-hero .hero__fx-glow { display: none; } /* 光のにじみ位置はトップの写真専用 */
  .stay-hero .hero__ui { left: 4%; bottom: 8%; width: 44%; min-height: 40%; }
  @media (max-width: 1079px) { .stay-hero .hero__media { grid-column: 1 / -1; order: -1; aspect-ratio: 4 / 3; } .stay-hero .hero__ui { width: 46%; min-height: 36%; } }
  @media (max-width: 767px) { .stay-hero .hero__media { aspect-ratio: 350 / 320; } .stay-hero .hero__ui { width: 56%; min-height: 34%; } }
  .facilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); list-style: none; margin: 0; padding: 0; }
  @media (max-width: 767px) { .facilities { grid-template-columns: 1fr; } }
  .facilities--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  @media (max-width: 1079px) { .facilities--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 767px) { .facilities--3 { grid-template-columns: 1fr; } }
  .facility { padding: 0; overflow: hidden; text-decoration: none; color: inherit; }
  .facility__media { border-radius: 0; aspect-ratio: 3 / 2; }
  .facility__media img { aspect-ratio: 3 / 2; }
  .facility__text { display: flex; flex-direction: column; gap: var(--sp-1); padding: 28px 32px 32px; }
  @media (max-width: 767px) { .facility__text { padding: 24px 28px 28px; } }
  .facility__text .textlink { margin-top: auto; }
  /* 宿泊: Beds24 予約ページの埋め込み（施設タブ + iframe） */
  .booking__inner:has(.booking__embed) { grid-template-columns: 1fr; align-items: start; }
  .booking { transition: background-color .5s var(--ease-out); }
  .booking[data-stay="kamogawa"] { background: var(--c-stay-kamogawa); }
  .booking[data-stay="satoyama"] { background: var(--c-stay-satoyama); }
  .booking[data-stay="nook"] { background: var(--c-stay-nook); }
  .booking__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-3) 80px; align-items: start; }
  .booking__current { display: flex; flex-direction: column; gap: 4px; text-align: right; color: var(--c-on-dark); }
  .booking__current-en { font-family: var(--ff-serif); font-size: 15px; letter-spacing: .14em; color: var(--c-on-dark-muted); }
  .booking__current-name { font-family: var(--ff-display); font-weight: 700; font-size: clamp(32px, 4vw, 56px); line-height: 1.15; color: #fff; }
  @media (max-width: 767px) { .booking__head { grid-template-columns: 1fr; gap: var(--sp-2); } .booking__current { text-align: left; } .booking__current-name { font-size: 32px; } }
  .booking__embed { display: flex; flex-direction: column; gap: var(--sp-2); }
  .booking__tabs { display: flex; gap: 8px; flex-wrap: wrap; }
  .booking__tab { display: inline-flex; align-items: center; min-height: var(--tap-min); padding: 0 24px; border-radius: var(--r-pill); border: 1px solid var(--c-on-dark-muted); background: transparent; color: var(--c-on-dark); font-family: var(--ff-body); font-size: 14px; cursor: pointer; transition: background .2s, color .2s; }
  .booking__tab:hover { background: rgba(255, 255, 255, .08); }
  .booking__tab[aria-selected="true"] { background: #fff; border-color: #fff; color: var(--c-ink); }
  .booking__frame { background: #fff; border-radius: var(--r-card); overflow: hidden; min-height: 720px; }
  .booking__frame iframe { display: block; width: 100%; height: 1500px; border: 0; transition: height .3s var(--ease-out); }
  .booking__frame.is-loading { position: relative; }
  .booking__frame.is-loading::after { content: "読み込み中…"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--c-ink-2); font-size: 14px; background: #fff; }
  .booking__alt { color: var(--c-on-dark-muted); }
  .textlink--on-dark, .textlink--on-dark .textlink__label { color: var(--c-on-dark); }
  @media (max-width: 767px) { .booking__tab { padding: 0 16px; font-size: 13px; } .booking__frame iframe { height: 1900px; } }
  .booking { padding-block: 96px; }
  .booking__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-4) 80px; align-items: center; }
  .booking__text { display: flex; flex-direction: column; gap: var(--sp-2); color: var(--c-on-dark); }
  .booking__text p { max-width: 40em; }
  .booking__text h2 { color: #fff; font-size: clamp(26px, 2.8vw, 40px); }
  .booking__label { color: var(--c-on-dark-muted); }
  .booking__voice { color: var(--c-on-dark-muted); font-size: 15px; margin-top: var(--sp-1); }
  @media (max-width: 1079px) { .booking__inner { grid-template-columns: 1fr; } }
  @media (max-width: 767px) { .booking { padding-block: 64px; } .booking__inner { gap: var(--sp-3); } }

  .notes { padding-block: 56px; }
  .notes__list { display: flex; flex-direction: column; gap: 6px; color: var(--c-muted); }
  .notes__list li { padding-left: 1em; text-indent: -1em; }
  .notes__list li::before { content: "・"; }
  @media (max-width: 767px) { .notes { padding-block: 40px 96px; } }

  .book-bar { display: none; }
  @media (max-width: 767px) {
    .book-bar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; height: calc(64px + env(safe-area-inset-bottom)); padding: 6px var(--gutter) calc(6px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--c-bg) 95%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--c-line); transform: translateY(110%); transition: transform .4s var(--ease-out); }
    .book-bar.is-visible { transform: none; }
  }
}

@layer pages {
  /* ================= COMPANY ================= */
  .about-hero { padding-block: var(--sp-4) 0; }
  .about-hero__inner { display: flex; flex-direction: column; gap: var(--sp-4); padding-bottom: 80px; }
  .about-hero__slogan { font-style: italic; font-size: clamp(48px, 7.2vw, 104px); line-height: 1.05; color: var(--c-ink); letter-spacing: -.01em; }
  .about-hero__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-3); align-items: end; }
  .about-hero__grid h1 { grid-column: span 7; font-size: clamp(28px, 3.3vw, 48px); }
  .about-hero__grid .lead { grid-column: 8 / span 5; }
  .about-hero__photo { width: 100%; aspect-ratio: 1312 / 520; object-fit: cover; border-radius: var(--r-img); }
  @media (max-width: 1079px) { .about-hero__grid h1, .about-hero__grid .lead { grid-column: 1 / -1; } .about-hero__photo { aspect-ratio: 16 / 10; } }
  @media (max-width: 767px) { .about-hero__inner { padding-bottom: 48px; gap: 28px; } .about-hero__photo { aspect-ratio: 350 / 240; } }

  .vmv { border-top: 1px solid var(--c-ink); }
  .vmv__row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-2); padding: 40px 0; border-bottom: 1px solid var(--c-ink); align-items: start; }
  .vmv__row .label { grid-column: span 2; padding-top: 6px; }
  .vmv__row h3 { grid-column: span 5; font-size: clamp(20px, 1.8vw, 26px); }
  .vmv__row p { grid-column: span 5; }
  @media (max-width: 1079px) { .vmv__row .label, .vmv__row h3, .vmv__row p { grid-column: 1 / -1; } .vmv__row { padding: 28px 0; } }
  .values { display: flex; flex-direction: column; gap: var(--sp-4); }
  .values__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
  .value { display: flex; flex-direction: column; gap: 14px; }
  .value__num { font-size: 36px; line-height: 1; color: var(--c-blue); }
  .value h3 { font-size: var(--fs-h3); }
  .value p { font-size: 14px; }
  @media (max-width: 767px) {
    .values__list { grid-template-columns: 1fr; gap: 0; }
    .value { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; row-gap: 10px; align-items: baseline; padding-block: var(--sp-3); }
    .value__num { font-size: 20px; }
    .value p { grid-column: 1 / -1; }
  }

  .base { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-3); align-items: center; }
  .base__text { grid-column: span 5; display: flex; flex-direction: column; gap: 28px; }
  .base__text h2 { font-size: clamp(26px, 2.8vw, 40px); }
  .base__media { grid-column: 7 / span 6; }
  .base__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-img); }
  @media (max-width: 1079px) { .base__text, .base__media { grid-column: 1 / -1; } .base__media { order: -1; } }

  /* ================= CONTACT ================= */
  .contact { padding-block: var(--sp-4) var(--section-y); }
  .contact__inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); row-gap: var(--sp-4); align-items: start; }
  .contact__intro { grid-column: span 5; display: flex; flex-direction: column; gap: 28px; position: sticky; top: calc(var(--header-h) + var(--sp-3)); }
  .contact__title { font-size: clamp(26px, 2.8vw, 40px); }
  .contact__info { border-top: 1px solid var(--c-line); }
  .contact__info > div { display: flex; flex-direction: column; gap: 6px; padding: 18px 0; border-bottom: 1px solid var(--c-line); }
  .contact__info dd { font-size: 15px; color: var(--c-ink-2); }
  .contact__info a { color: var(--c-blue); }
  .contact__form { grid-column: 7 / span 6; padding: 48px; gap: 28px; }
  .contact__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .contact__submit { min-height: 56px; }
  .contact__done { grid-column: 7 / span 6; padding: 48px; gap: var(--sp-2); }
  @media (min-width: 1080px) and (max-width: 1279px) { .contact__title { font-size: 28px; } }
  .contact__done h2 { font-size: clamp(22px, 2vw, 28px); }
  .contact__stay-note { padding: 14px 16px; background: var(--c-sage); border-radius: var(--r-field); color: var(--c-ink-2); }
  .contact__stay-note a { color: var(--c-blue); }
  fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
  legend { padding: 0; margin-bottom: 10px; }
  @media (max-width: 1079px) {
    .contact__intro { display: contents; }
    .contact__intro > *, .contact__form, .contact__done { grid-column: 1 / -1; }
    .contact__form, .contact__done { order: 1; }
    .contact__info { order: 2; }
  }
  @media (max-width: 767px) {
    .contact { padding-block: var(--sp-2) var(--sp-7); }
    .contact__form, .contact__done { padding: 24px 20px; gap: 24px; }
    .contact__cols { grid-template-columns: 1fr; }
  }

  /* ================= NEWS ================= */
  .news-head { padding-block: var(--sp-4) 64px; }
  .news-head__inner { display: flex; flex-direction: column; gap: var(--sp-4); }
  .news-head__row { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--sp-3); flex-wrap: wrap; }
  .news-head h1 { font-size: clamp(32px, 3.9vw, 56px); }
  .tabs { display: flex; gap: 8px; flex-wrap: wrap; }
  .tab { display: inline-flex; align-items: center; min-height: var(--tap-min); padding: 0 24px; border-radius: var(--r-pill); border: 1px solid var(--c-line); font-size: 14px; color: var(--c-ink); text-decoration: none; transition: background .2s, color .2s; }
  .tab:hover { background: var(--c-paper); }
  .tab[aria-current] { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
  .news-list { padding-bottom: var(--section-y); }
  .news-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
  .news-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: var(--c-ink); }
  .news-card__media { display: block; }
  .news-card__media img { aspect-ratio: 16 / 10; }
  .news-card__meta { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--c-ink-2); }
  .news-card__title { font-family: var(--ff-display); font-weight: 700; font-size: 18px; line-height: 1.5; }
  .news-cards--sm .news-card__title { font-size: 16px; }
  .news-cards--sm .news-card__meta { font-size: 13px; }
  .news-card:hover .news-card__title { color: var(--c-blue); }
  .news-rows { border-top: 1px solid var(--c-line); }
  .news-row { display: grid; grid-template-columns: minmax(0, 1fr) 160px 24px; gap: var(--sp-3); align-items: center; padding: 24px 0; border-bottom: 1px solid var(--c-line); text-decoration: none; color: var(--c-ink); }
  .news-row__thumb { order: 1; }
  .news-row__arrow { order: 2; }
  .news-row__body { display: grid; grid-template-columns: 140px 120px minmax(0, 1fr); gap: var(--sp-3); align-items: center; }
  .news-row__meta { display: contents; }
  .news-row__meta time { font-size: 15px; }
  .news-row__title { font-size: 16px; line-height: 1.6; font-weight: 500; }
  .news-row__thumb { width: 160px; height: 96px; object-fit: cover; border-radius: 10px; }
  /* WP 版: サムネは span で包む（img か .thumb-fallback が入る） */
  .news-row__thumb { display: block; overflow: hidden; flex-shrink: 0; }
  .news-row__thumb img, .news-row__thumb .thumb-fallback { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }
  .thumb-fallback { display: flex; align-items: center; justify-content: center; background: var(--c-sage); color: var(--c-ink); }
  .thumb-fallback .logo { font-size: 24px; }
  .news-card__media .thumb-fallback { aspect-ratio: 16 / 10; border-radius: var(--r-img); }
  .news-card__media .thumb-fallback .logo { font-size: 36px; }
  .post__eyecatch { display: block; }
  .news-row__arrow { color: var(--c-ink); display: inline-flex; transition: transform .3s var(--ease-out); }
  .news-row:hover .news-row__title { color: var(--c-blue); }
  .news-row:hover .news-row__arrow { transform: translateX(4px); }
  .news-row.is-hidden, .news-card.is-hidden { display: none; }
  .pagination { display: flex; gap: 8px; justify-content: center; }
  .pagination a { display: inline-flex; align-items: center; justify-content: center; width: var(--tap-min); height: var(--tap-min); border-radius: 50%; font-family: var(--ff-serif); font-size: 16px; color: var(--c-ink); text-decoration: none; border: 1px solid transparent; }
  .pagination a:hover, .pagination a[aria-label] { border-color: var(--c-line); }
  .pagination a[aria-current] { background: var(--c-ink); color: #fff; }
  @media (min-width: 768px) { .news-row--dup { display: none; } }
  @media (min-width: 1080px) and (max-width: 1279px) { .news-row__body { grid-template-columns: 110px 100px minmax(0, 1fr); } }
  @media (min-width: 768px) and (max-width: 1079px) {
    .news-head__row { flex-direction: column; align-items: flex-start; }
    .news-card__title { font-size: 16px; }
    .news-card__meta { font-size: 13px; }
    .news-row { grid-template-columns: minmax(0, 1fr) 120px 24px; }
    .news-row__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
    .news-row__meta { display: flex; gap: 10px; align-items: center; }
    .news-row__thumb { width: 120px; height: 72px; }
  }
  @media (max-width: 767px) {
    .news-head { padding-block: var(--sp-2) var(--sp-4); }
    .news-list { padding-bottom: 72px; }
    .news-cards { grid-template-columns: 1fr; }
    .news-row { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 18px 0; }
    .news-row__thumb { width: 96px; height: 72px; order: -1; }
    .news-row__arrow { display: none !important; }
    .news-row__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
    .news-row__meta { display: flex; gap: 10px; align-items: center; }
    .news-row__meta time { font-size: 13px; }
    .news-row__title { font-size: 14px; }
    .tab { padding: 0 18px; }
  }

  /* ================= POST / 本文ページ ================= */
  .post { padding-block: var(--sp-4) 0; }
  .post__crumb { margin-bottom: 40px; }
  .post__inner { max-width: 760px; margin-inline: auto; display: flex; flex-direction: column; gap: 40px; padding-bottom: var(--section-y); }
  .post__head { display: flex; flex-direction: column; gap: 20px; }
  .post__meta { display: flex; align-items: center; gap: 14px; font-size: 16px; color: var(--c-ink-2); }
  .post__title { font-size: clamp(24px, 2.5vw, 36px); line-height: 1.4; }
  .post__eyecatch { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-img); margin-top: 8px; }
  .prose { display: flex; flex-direction: column; gap: 1.6em; font-size: 16px; line-height: 2.1; color: var(--c-ink-2); }
  .prose h2 { font-size: clamp(22px, 2vw, 28px); line-height: 1.5; padding-bottom: 12px; border-bottom: 1px solid var(--c-line); margin-top: .6em; }
  .prose h3 { font-size: clamp(18px, 1.5vw, 20px); line-height: 1.6; margin-top: .2em; }
  .prose ul, .prose ol { display: flex; flex-direction: column; gap: 8px; padding-left: 1.4em; }
  .prose ul { list-style: disc; }
  .prose ol { list-style: decimal; }
  .prose blockquote { background: var(--c-sage); padding: 24px 28px; border-radius: var(--r-field); font-size: 15px; line-height: 2; color: var(--c-ink); }
  .prose figure { display: flex; flex-direction: column; gap: 10px; }
  .prose figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-img); }
  .prose figcaption { font-size: 12px; color: var(--c-muted); }
  .prose a { color: var(--c-blue); }
  .prose .spec { font-size: 15px; }
  .post__share { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 32px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
  .post__share .label { margin-right: 6px; }
  .post__share .chip { text-decoration: none; cursor: pointer; }
  .post__share .chip:hover { background: #fff; }
  .post__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
  .post__nav-item { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--c-line); border-radius: var(--r-field); background: var(--c-paper); text-decoration: none; color: var(--c-ink); font-size: 14px; line-height: 1.6; transition: border-color .2s; }
  .post__nav-item:hover { border-color: var(--c-ink); }
  .post__nav-item--next { text-align: right; align-items: flex-end; }
  .related__title { font-size: clamp(24px, 2.3vw, 32px); }
  .post__updated { font-size: 14px; color: var(--c-muted); }
  .toc { border: 1px solid var(--c-line); border-radius: var(--r-field); background: var(--c-paper); padding: 20px 24px; }
  .toc__title { margin-bottom: 10px; }
  .toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.6; }
  .toc .toc__sub { padding-left: 1.2em; font-size: 14px; }
  .toc a { color: var(--c-ink); text-decoration: none; border-bottom: 1px solid transparent; }
  .toc a:hover { border-bottom-color: var(--c-ink); }
  .prose :is(h2, h3)[id] { scroll-margin-top: calc(var(--header-h) + 16px); }
  .author { display: flex; gap: 20px; align-items: flex-start; padding: 24px; border: 1px solid var(--c-line); border-radius: var(--r-card); background: var(--c-paper); }
  .author__mark { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--c-sage); }
  .author__body { display: flex; flex-direction: column; gap: 6px; }
  .author__name { font-size: 17px; font-weight: 700; }
  .author__role { font-size: 13px; color: var(--c-muted); }
  .author__text { font-size: 14px; line-height: 1.8; color: var(--c-ink-2); }
  @media (max-width: 767px) {
    .post { padding-block: var(--sp-2) 0; }
    .post__crumb { margin-bottom: 24px; }
    .post__inner { gap: 28px; padding-bottom: 72px; }
    .post__share .label { width: 100%; }
    .post__nav { grid-template-columns: 1fr; }
    .post__nav-item--next { text-align: left; align-items: flex-start; }
    .author { flex-direction: column; gap: 14px; padding: 20px; }
  }
}
