/* build_wp.py で生成。直接編集しない（正本: docs/select-2026/prototype/_src/） */
/* ==========================================================
   テーマとの調整
   ========================================================== */
html:has(main.p-nts) { scroll-behavior: smooth; }
/* このページは独自の固定ボタン（.c-fixed-cta）を使うため、テーマの固定ボタンとその分のフッター下余白を外す */
body:has(main.p-nts) #cta { display: none; }
body:has(main.p-nts) footer { margin-bottom: 0; }
/* テーマの main の下余白は付けない（最後のエリアからフッターへ直接つなぐ） */
main.p-nts { margin-bottom: 0; }
/* テーマの要素スタイル（section の上下余白、strong の色、small の大きさ、リンクの transition）を打ち消す */
.p-nts section { padding: 0; }
.p-nts strong { font-weight: bolder; color: inherit; }
.p-nts small { display: inline; font-size: smaller; letter-spacing: inherit; }
.p-nts a { transition: none; }

/* ==========================================================
   Foundation
   ========================================================== */
.p-nts {
  --key: #9db681;
  --key-dark: #5b7348;
  --key-text: #6f8a55;
  --text: #231815;
  --sub: #555;
  --line: #d6d6d0;
  --panel: #f7f7f5;
  --ph: #e7eae1;
  --ph-line: #93a183;
  --ask: #8a5a2b;
  --header-h: 73px; /* 本番テーマのヘッダーの見た目の高さ（実測） */
  --cta-h: 64px;
  --mincho: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --gothic: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  --en: "Marcellus", "Times New Roman", serif;
}
.p-nts *, .p-nts *::before, .p-nts *::after { box-sizing: border-box; }

.p-nts {
  background: #fff;
  font-family: var(--mincho);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: var(--text);
}
.p-nts h1, .p-nts h2, .p-nts h3, .p-nts h4, .p-nts p, .p-nts ul, .p-nts ol, .p-nts dl, .p-nts dd, .p-nts figure { margin: 0; padding: 0; }
.p-nts ul, .p-nts ol { list-style: none; }
.p-nts a { color: inherit; }
.p-nts img { display: block; max-width: 100%; }
.p-nts button { font: inherit; color: inherit; }
.p-nts [id] { scroll-margin-top: calc(var(--header-h) + 8px); }
/* 日本語の改行: 文節で折り返し、行末に1〜2文字だけ残るのを防ぐ（未対応ブラウザは通常の折り返し） */
.p-nts h1, .p-nts h2, .p-nts h3, .p-nts .c-heading__lead, .p-nts .c-tbd, .p-nts .c-next, .p-nts .c-link, .p-nts .c-btn, .p-nts .c-btn-note, .p-nts .c-balloon, .p-nts .p-plans__copy { word-break: auto-phrase; text-wrap: balance; }
.p-nts p, .p-nts li, .p-nts dd { text-wrap: pretty; }
.p-nts .u-ib { display: inline-block; }
/* 余白は8pxの段階（8/16/24/32/48/64）で使う
   8: 同じまとまりの中の小さな間（ラベル→値、注記どうし、箇条の行間）
   16: 小見出し（h3/h4）→本文、ボタン→補足、図→ボタン
   24: 見出し（h2）→リード、枠の内側
   32: 段落→段落（1行分）、まとまり→まとまり（セクションの中の要素間）
   48: 見出しブロック→中身、セクション末の「次に見るもの」
   64: セクションの上下（PCは120） */
main.p-nts p + p { margin-top: 32px; }
.p-nts .c-note + .c-note { margin-top: 8px; }
main.p-nts :is(h3, h4) + :is(p, ul, ol, dl, div) { margin-top: 16px; }
@media (min-width: 992px) {
  .p-nts { --header-h: 116px; --cta-h: 64px; }
  .p-nts { font-size: 16px; letter-spacing: 0.1em; }
}

/* ==========================================================
   Layout
   ========================================================== */
.p-nts .l-inner { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
.p-nts .l-section { padding: 64px 0; }
.p-nts .l-section--panel { background: var(--panel); }
@media (min-width: 992px) {
  .p-nts .l-section { padding: 120px 0; }
}

/* ==========================================================
   Component
   ========================================================== */
/* 見出し */
.p-nts .c-heading { margin-bottom: 48px; text-align: center; }
.p-nts .c-heading__en { display: block; font-family: var(--en); font-size: 15px; letter-spacing: 0.24em; color: var(--key-text); }
.p-nts .c-heading__title { margin-top: 8px; font-size: 24px; font-weight: 600; line-height: 1.5; letter-spacing: 0.08em; }
.p-nts .c-heading__title::after { content: ""; display: block; width: 40px; margin: 24px auto 0; border-top: 1px solid var(--key); }
.p-nts .c-heading__lead { margin-top: 24px; font-size: 16px; }
.p-nts .c-h3 { font-size: 22px; font-weight: 600; line-height: 1.55; }
@media (min-width: 992px) {
  .p-nts .c-heading { margin-bottom: 48px; }
  .p-nts .c-heading__title { font-size: 30px; }
  .p-nts .c-h3 { font-size: 24px; }
}

/* ボタン（角は直角・ホバーはリンクのみ） */
.p-nts .c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 400px;
  min-height: 60px;
  margin: 16px auto 0;
  padding: 8px 16px;
  background: var(--key-dark);
  border: 1px solid var(--key-dark);
  font-family: var(--gothic);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #fff;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s;
}
.p-nts .c-btn--sub { min-height: 56px; background: #fff; color: var(--key-dark); }
.p-nts .c-btn:active { opacity: 0.8; }
@media (hover: hover) {
  .p-nts .c-btn:hover { background: #4a5f3a; }
  .p-nts .c-btn--sub:hover { background: #eef2e8; }
}
.p-nts .c-btns { margin-top: 24px; }
@media (min-width: 992px) {
  .p-nts .c-btns { display: flex; justify-content: center; align-items: flex-end; gap: 16px; }
  .p-nts .c-btns .c-btn { width: 400px; margin: 0; white-space: nowrap; }
  .p-nts .c-btns .c-action .c-btn { width: 100%; }
}
/* PCではボタンとリンクを横に並べる（スマホは縦積みのまま） */
@media (min-width: 992px) {
  .p-nts .c-btn-row { display: flex; justify-content: center; align-items: stretch; gap: 16px; margin-top: 32px; }
  .p-nts .c-btn-row > :is(.c-btn, .c-link) { margin: 0 !important; }
  .p-nts .c-btn-row > .c-btn { flex: 1 1 0; max-width: 400px; }
  .p-nts .c-btn-row > .c-link { flex: none; min-height: 60px; padding: 8px 32px; }
}
/* 単独のリンクは、小さいボタン（3番目のサイズ）で見せる。記号: ページ内は↓、ほかのページへは→ */
.p-nts .c-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  min-height: 48px;
  margin: 16px auto 0;
  padding: 8px 20px;
  background: #fff;
  border: 1px solid var(--key-dark);
  text-align: center;
  font-family: var(--gothic);
  font-size: 15px;
  line-height: 1.5;
  color: var(--key-dark);
  text-decoration: none;
}
.p-nts .c-link::after { content: "→"; }
.p-nts .c-link[href^="#"]::after { content: "↓"; }
.p-nts .c-link[href^="tel:"]::after { content: none; }
.p-nts .c-link:active { opacity: 0.8; }
@media (hover: hover) { .p-nts .c-link:hover { background: #eef2e8; } }
.p-nts .c-tbd { display: block; margin-top: 4px; font-family: var(--gothic); font-size: 14px; color: var(--ask); text-align: center; }

/* 要確認の表示 */
.p-nts .c-ask { font-family: var(--gothic); font-size: 0.85em; font-weight: 600; color: var(--ask); white-space: nowrap; }

/* 仮の写真枠 */
.p-nts .c-ph {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3 / 2;
  padding: 12px;
  background: var(--panel);
  border: 1px solid #e3e6dd;
  font-family: var(--gothic);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #8b9183;
  text-align: center;
}
/* プラン外観。CGがないPLAN29（立面図）は全体を見せる */
.p-nts .p-plan__img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.p-nts .p-plan__img[src$="plan29-f.jpg"] { object-fit: contain; background: #fff; border: 1px solid #e3e6dd; }
/* 支給画像が入った枠（枠のサイズ指定はそのまま使う） */
.p-nts .c-ph--img { background: center / cover no-repeat; border: 0; font-size: 0; }
.p-nts .c-ph--plan { background-color: #fff; background-size: contain; border: 1px solid #e3e6dd; }
.p-nts .c-ph small { display: block; font-size: 12px; font-weight: 400; color: #6b7660; }
.p-nts .c-ph--43 { aspect-ratio: 4 / 3; }
/* 灰色の面のセクションでは、枠を白にして面と区別する */
.p-nts .l-section--panel .c-ph:not(.c-ph--img) { background: #fff; }
.p-nts .c-ph--map { background: #eef0ea; }

/* 注記 */
.p-nts .c-note { font-family: var(--gothic); font-size: 14px; line-height: 1.7; letter-spacing: 0.04em; color: var(--sub); }

/* 情報パネル */
.p-nts .c-info { padding: 24px 20px; background: var(--panel); }
.p-nts .c-info__row + .c-info__row { margin-top: 16px; }
.p-nts .c-info__label { display: block; margin-bottom: 8px; font-family: var(--gothic); font-size: 14px; font-weight: 600; letter-spacing: 0.12em; color: var(--key-dark); }
/* 値はラベルより大きく太く、ラベルとの差をはっきりさせる */
.p-nts .c-info dd { font-size: 17px; font-weight: 600; line-height: 1.7; }
.p-nts .c-info dd :is(.c-note, .c-link, .c-date) { font-weight: 400; }
/* 本文の直前に置く小見出しの頭に、キーカラーの■を付ける（番号付きの見出し・プランのキャッチ・中に■の項目を持つ箱の見出しには付けない） */
.p-nts :is(.c-info__label, .p-reserve__flow .c-h3, .p-standard__label, .p-standard__item-title)::before { content: ""; display: inline-block; flex: none; width: 8px; height: 8px; margin-right: 8px; background: var(--key); vertical-align: 0.2em; }
.p-nts .p-standard__label::before { width: 10px; height: 10px; }
.p-nts .c-present { margin: 8px 0; max-width: 320px; background: #fff; }
.p-nts .c-present img { display: block; width: 100%; height: auto; }
.p-nts .c-present figcaption { padding: 0 8px 8px; font-size: 12px; font-weight: 400; color: var(--muted, #666); text-align: center; }
.p-nts .c-box .c-info { margin-top: 16px; padding: 0; background: none; }
.p-nts .c-box .c-info__row { padding: 16px 0; border-bottom: 1px solid var(--line); }
.p-nts .c-box .c-info__row + .c-info__row { margin-top: 0; }
.p-nts .c-box .c-info__row:first-child { border-top: 1px solid var(--line); }

/* 枠（全周罫線） */
.p-nts .c-box { padding: 24px 20px; border: 1px solid var(--line); background: #fff; }

/* ページ内ナビ（チップ） */
/* スマホでも全項目が見えるよう、横スクロールではなく折り返す */
/* ページ内ナビ: 全周の細線で囲み、小見出しを付けて、上のボタンと別のまとまりにする */
.p-nts .l-section:has(+ .c-toc) { padding-bottom: 0; }
.p-nts .c-toc:has(+ .l-section--panel) { margin-bottom: 48px; }
.p-nts .c-toc { margin: 48px 20px 0; padding: 16px 16px 24px; border: 1px solid var(--line); }
.p-nts .c-toc__title { font-family: var(--gothic); font-size: 14px; letter-spacing: 0.12em; color: var(--sub); text-align: center; }
.p-nts .c-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }
@media (min-width: 992px) {
  .p-nts .c-toc { display: flex; align-items: center; max-width: 1040px; margin: 64px auto 0; padding: 20px 32px; }
  .p-nts .c-toc__title { flex: none; padding-right: 32px; margin-right: 32px; border-right: 1px solid var(--line); line-height: 1.6; }
  .p-nts .c-toc .c-chips { flex: 1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; margin-top: 0; }
  .p-nts .c-toc .c-chips__item { justify-content: center; }
}
@media (min-width: 992px) { .p-nts br.u-sp { display: none; } }
.p-nts .c-chips__item {
  flex: none;
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 48px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid var(--key-dark);
  font-family: var(--gothic);
  font-size: 15px;
  color: var(--key-dark);
  text-decoration: none;
  white-space: nowrap;
}
/* ページ内の該当箇所へ移動することを、下向きの矢印で示す */
.p-nts .c-chips__item::after { content: "↓"; }
.p-nts .c-chips__item:active { opacity: 0.8; }
@media (hover: hover) { .p-nts .c-chips__item:hover { background: #eef2e8; } }
/* ページ内ナビ: 押したくなるよう、番号付きの立体ボタンにし、右端の丸い矢印で「この下へ移動する」ことを示す */
.p-nts .c-toc { position: relative; border: 2px solid var(--key-dark); }
/* 囲みの左上に「CHECK!」の札を付けて、目に留まるようにする */
.p-nts .c-toc::before { content: "CHECK!"; position: absolute; top: -16px; left: -8px; padding: 4px 14px; background: var(--key-dark); font-family: var(--en); font-size: 16px; line-height: 1.4; letter-spacing: 0.12em; color: #fff; transform: rotate(-6deg); }
.p-nts .c-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 8px; counter-reset: toc; }
.p-nts .c-chips__item:last-child { grid-column: 1 / -1; }
.p-nts .c-chips__item { position: relative; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; min-height: 60px; padding: 6px 36px 6px 12px; border-width: 2px; box-shadow: 0 4px 0 var(--key-dark); font-size: 14px; font-weight: 600; letter-spacing: 0; color: var(--text); line-height: 1.3; white-space: nowrap; counter-increment: toc; transition: background-color 0.2s, transform 0.15s, box-shadow 0.15s; }
.p-nts .c-chips__item::before { content: counter(toc, decimal-leading-zero); font-family: var(--en); font-size: 13px; font-weight: 400; letter-spacing: 0.1em; color: var(--key-text); }
.p-nts .c-chips__item::after { content: ""; position: absolute; top: 50%; right: 8px; width: 22px; height: 22px; margin-top: -11px; background: var(--key-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3.5v8M4.5 8 8 11.5 11.5 8' fill='none' stroke='%23fff' stroke-width='1.8'/%3E%3C/svg%3E") center / 14px no-repeat; border-radius: 50%; transition: transform 0.2s; }
.p-nts .c-chips__item:active { opacity: 1; transform: translateY(4px); box-shadow: 0 0 0 var(--key-dark); }
/* 幅の狭いスマホでは、長い名前を折り返す */
@media (max-width: 379px) { .p-nts .c-chips__item { white-space: normal; } }
@media (hover: hover) {
  .p-nts .c-chips__item:hover { transform: translateY(2px); box-shadow: 0 2px 0 var(--key-dark); }
  .p-nts .c-chips__item:hover::after { transform: translateY(3px); }
}
@media (min-width: 992px) {
  /* PCも見出しはボタンの上に置き、ボタンに横幅を広く使う */
  .p-nts .c-toc { display: block; max-width: 1200px; padding: 24px 40px 32px; }
  .p-nts .c-toc::before { top: -20px; left: -12px; padding: 6px 20px; font-size: 20px; }
  .p-nts .c-toc__title { padding: 0; margin: 0; border: 0; }
  .p-nts .c-toc .c-chips { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(0, 1fr); gap: 20px; margin-top: 16px; }
  .p-nts .c-chips__item:last-child { grid-column: auto; }
  .p-nts .c-toc .c-chips__item { justify-content: center; min-height: 68px; padding: 6px 44px 6px 16px; font-size: clamp(14px, 1.15vw, 16px); }
  .p-nts .c-chips__item::after { right: 12px; width: 26px; height: 26px; margin-top: -13px; }
}

/* 次に見るもの */
.p-nts .c-next { margin-top: 48px; text-align: center; }
.p-nts .c-next a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 8px 20px; background: #fff; border: 1px solid var(--key-dark); font-family: var(--gothic); font-size: 15px; line-height: 1.5; color: var(--key-dark); text-decoration: none; }
.p-nts .c-next a:active { opacity: 0.8; }
@media (hover: hover) { .p-nts .c-next a:hover { background: #eef2e8; } }

/* 画面下の固定ボタン */
.p-nts .c-fixed-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  display: flex;
  padding-bottom: env(safe-area-inset-bottom);
  background: #fff;
  transform: translateY(100%);
  transition: transform 0.3s;
}
.p-nts .c-fixed-cta.is-show { transform: translateY(0); }
.p-nts .c-fixed-cta__text { display: none; }
.p-nts .c-fixed-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--cta-h);
  font-family: var(--gothic);
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
}
.p-nts .c-fixed-cta__btn--main { flex: 1 1 0; background: var(--key-dark); color: #fff; }
.p-nts .c-fixed-cta__btn--sub { flex: 1 1 0; border: 1px solid var(--key-dark); color: var(--key-dark); }
@media (min-width: 992px) {
  .p-nts .c-fixed-cta { align-items: stretch; justify-content: center; gap: 0; padding: 0 max(40px, calc((100% - 1040px) / 2)); background: var(--key-dark); }
  .p-nts .c-fixed-cta__text { display: flex; align-items: center; margin-right: auto; font-family: var(--en); font-size: 18px; letter-spacing: 0.1em; color: #fff; }
  .p-nts .c-fixed-cta__btn { flex: none; width: 260px; height: 56px; font-size: 16px; }
  .p-nts .c-fixed-cta__btn--main { background: #fff; color: var(--key-dark); }
  .p-nts .c-fixed-cta__btn--sub { border: 0; border-left: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
}

/* FAQ（開閉） */
.p-nts .c-faq__item { border-bottom: 1px solid var(--line); }
.p-nts .c-faq__item:first-child { border-top: 1px solid var(--line); }
.p-nts .c-faq__q {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  min-height: 60px;
  padding: 18px 0;
  font-size: 17px;
  line-height: 1.6;
  list-style: none;
  cursor: pointer;
}
.p-nts .c-faq__q::-webkit-details-marker { display: none; }
.p-nts .c-faq__q::after { content: "＋"; flex: none; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-top: 2px; border: 1px solid var(--key-dark); border-radius: 50%; font-family: var(--gothic); font-size: 14px; line-height: 1; color: var(--key-dark); }
.p-nts .c-faq__item[open] .c-faq__q::after { content: "−"; }
.p-nts .c-faq__a { padding: 0 0 20px; }
.p-nts .c-faq__a p + p { margin-top: 32px; }

/* 開閉（詳しく） */
.p-nts .c-more { margin-top: 16px; }
.p-nts .c-more__btn { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 8px 0; font-family: var(--gothic); font-size: 15px; font-weight: 600; line-height: 1.5; color: var(--key-dark); list-style: none; cursor: pointer; }
.p-nts .c-more__btn::-webkit-details-marker { display: none; }
.p-nts .c-more__btn::after { content: "＋"; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 1px solid var(--key-dark); border-radius: 50%; font-size: 14px; font-weight: 400; line-height: 1; }
.p-nts .c-more[open] .c-more__btn::after { content: "−"; }
.p-nts .c-more__btn:active { opacity: 0.8; }
.p-nts .c-more__btn, .p-nts .c-faq__q { transition: color 0.2s; }
.p-nts .c-more__btn::after, .p-nts .c-faq__q::after { transition: background-color 0.2s, color 0.2s; }
@media (hover: hover) {
  .p-nts .c-more__btn:hover, .p-nts .c-faq__q:hover { color: var(--key); }
  .p-nts .c-more__btn:hover::after, .p-nts .c-faq__q:hover::after { background: var(--key-dark); color: #fff; }
}
.p-nts .c-more__btn:focus-visible { outline: 2px solid var(--key-dark); outline-offset: 2px; }
.p-nts .c-more__body { padding-top: 16px; }
/* PCは画面が広いので「詳しく見る」を最初から開いておく（開く処理は common.js） */
@media (min-width: 992px) {
  .p-nts .c-more__btn { display: none; }
  .p-nts .c-more__body { padding-top: 0; }
}

/* 動画（サムネイル＋タップで再生） */
.p-nts .c-video { margin-top: 24px; }
.p-nts .c-video__btn { position: relative; display: block; width: 100%; padding: 0; background: none; border: 0; cursor: pointer; }
.p-nts .c-video__btn .c-ph { aspect-ratio: 16 / 9; justify-content: flex-end; padding-bottom: 12px; }
.p-nts .c-video__play { position: absolute; top: 50%; left: 50%; width: 56px; height: 56px; margin: -36px 0 0 -28px; background: rgba(25, 25, 25, 0.7); }
.p-nts .c-video__play::before { content: ""; position: absolute; top: 50%; left: 50%; margin: -10px 0 0 -6px; border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
.p-nts .c-video__btn:focus-visible { outline: 2px solid var(--key-dark); outline-offset: 2px; }
.p-nts .c-video__cap { margin-top: 8px; font-family: var(--gothic); font-size: 14px; line-height: 1.7; color: var(--sub); }

/* ボタンの上に添える補足（誰向けの入口かを1行で）。＼ ／ で囲み、本文と見分ける */
.p-nts .c-btn-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 24px; font-family: var(--gothic); font-size: 14px; font-weight: 600; line-height: 1.5; letter-spacing: 0.06em; color: var(--key-dark); text-align: center; }
.p-nts .c-btn-note::before { content: "＼"; font-weight: 400; }
.p-nts .c-btn-note::after { content: "／"; font-weight: 400; }
.p-nts .c-btn-note + .c-btn { margin-top: 8px; }
.p-nts .c-btns > * > :first-child { margin-top: 0; }
.p-nts .c-btns > * + * { margin-top: 24px; }
@media (min-width: 992px) {
  .p-nts .c-btns .c-action { width: 400px; }
  .p-nts .c-btns > * + * { margin-top: 0; }
  .p-nts .c-btns .c-btn-note { margin-top: 0; }
  .p-nts .c-btns .c-btn-note + .c-btn { margin-top: 8px; }
  .p-nts .c-btns { align-items: flex-end; }
}

/* 来場の安心材料（予約ボタンのすぐ上） */
.p-nts .c-reassure { margin-top: 24px; text-align: center; }
.p-nts .c-reassure__lead { font-size: 16px; line-height: 1.8; }

/* 要点（開かなくても見える箇条書き） */
.p-nts .c-points { margin-top: 24px; border-top: 1px solid var(--line); }
/* 箇条書きの行は罫線で区切るので、見出しの■と紛れる頭の■は付けない */
.p-nts .c-points li { --dot-top: 12px; padding: 12px 0 !important; border-bottom: 1px solid var(--line); font-family: var(--gothic); font-size: 15px; line-height: 1.8; }
.p-nts .c-points li, .p-nts .p-plan__points li, .p-nts .c-dots li { position: relative; padding-left: 18px; }
.p-nts .c-points li::before { display: none; }
.p-nts .c-points li::before, .p-nts .p-plan__points li::before, .p-nts .c-dots li::before { content: ""; position: absolute; top: calc(var(--dot-top, 0px) + (1lh - 6px) / 2); left: 2px; width: 6px; height: 6px; background: var(--key); }
.p-nts .c-dots li + li, .p-nts .p-plan__points li + li { margin-top: 8px; }

/* 注記の「※」の下に文字を回り込ませない（build.py が ※ で始まる注記に u-hang を付ける） */
.p-nts .u-hang { display: block; padding-left: 1em; text-indent: -1em; }

/* GRAND OPEN の告知ブロック（全体が GRAND OPEN ページへのリンク） */
/* GRAND OPEN ページへの導線: GRAND OPEN ページの最初の画面と同じ深緑・金の二重枠・紙吹雪で、イベントだと一目でわかるようにする */
.p-nts .c-event { --ev-green: #2c6847; --ev-gold: #c9c17f; --ev-yellow: #fff367; display: block; padding: 24px 16px; background: var(--ev-green); border: 3px solid var(--ev-gold); outline: 1px solid var(--ev-gold); outline-offset: -9px; text-align: center; text-decoration: none; color: #fff; }
.p-nts .c-event > span { display: block; }
.p-nts .c-event__label { font-family: var(--gothic); font-size: 14px; letter-spacing: 0.12em; color: rgba(255, 255, 255, 0.88); }
.p-nts .c-event__title { display: flex !important; align-items: center; justify-content: center; gap: 12px; margin-top: 4px; font-family: var(--en); font-size: 28px; line-height: 1.3; letter-spacing: 0.16em; color: #fff; }
.p-nts .c-event__title::before, .p-nts .c-event__title::after { content: ""; flex: none; width: 20px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 13l6-1-4-4zM6 6l5 1-2-6zM13 5l4 1-1-5z' fill='%23fff367'/%3E%3C/svg%3E") no-repeat center / contain; }
.p-nts .c-event__title::after { transform: scaleX(-1); }
.p-nts .c-event__date, .p-nts .c-date { font-family: var(--en); font-size: 30px; line-height: 1.4; letter-spacing: 0.04em; }
.p-nts .c-event__date small, .p-nts .c-date small { font-family: var(--mincho); font-size: 14px; }
.p-nts .c-event__date small { color: var(--ev-yellow); }
.p-nts .c-date { display: inline-block; font-size: 24px; }
.p-nts .c-event__meta { margin-top: 8px; font-size: 15px; line-height: 1.8; }
.p-nts .c-event__more { width: fit-content; margin: 16px auto 0; padding: 8px 20px; background: #fff; font-family: var(--gothic); font-size: 15px; font-weight: 600; color: var(--ev-green); }
.p-nts .c-event--compact { padding: 16px; }
.p-nts .c-event--compact .c-event__title { font-size: 22px; }
.p-nts .c-event--compact .c-event__date { font-size: 24px; }
.p-nts .c-event--compact .c-event__more { margin-top: 8px; padding: 4px 16px; font-size: 14px; }
.p-nts .c-event:active { opacity: 0.8; }
@media (hover: hover) { .p-nts .c-event:hover { background: #245a3c; } }
/* 本文中で目を留めてほしい短い一言（黄色のマーカー） */
.p-nts .c-marker { display: inline; font-size: 14px; background: linear-gradient(transparent 55%, #fff367 55%); }

/* 来場特典のバナー（先方支給バナーのテイストをHTMLで再現。先方デザインに合わせ、角丸の方針の例外とする） */
.p-nts .c-gift { --gift-green: #2c6847; --gift-gold: #c9c17f; --gift-yellow: #fff367; --gift-orange: #f29325; display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; max-width: 400px; margin: 24px auto 0; padding: 16px 12px 16px 20px; background: var(--gift-green); border: 3px solid var(--gift-gold); font-family: var(--gothic); font-weight: 400; line-height: 1.3; letter-spacing: 0.02em; color: #fff; text-align: center; }
.p-nts .c-gift__text { display: flex; flex-direction: column; align-items: center; }
.p-nts .c-gift__top { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; letter-spacing: 0.16em; color: var(--gift-yellow); }
.p-nts .c-gift__top::before, .p-nts .c-gift__top::after { content: ""; width: 18px; height: 14px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 13l6-1-4-4zM6 6l5 1-2-6zM13 5l4 1-1-5z' fill='%23fff367'/%3E%3C/svg%3E") no-repeat center / contain; }
.p-nts .c-gift__top::after { transform: scaleX(-1); }
.p-nts .c-gift__main { margin-top: 4px; font-size: 16px; font-weight: 600; white-space: nowrap; }
.p-nts .c-gift__em { display: inline-block; margin-right: 4px; padding-bottom: 2px; font-size: 22px; background: linear-gradient(var(--gift-orange), var(--gift-orange)) no-repeat left bottom / 100% 4px; }
.p-nts .c-gift__sub { margin-top: 8px; font-size: 13px; }
.p-nts .c-gift__card { position: relative; flex: none; display: grid; place-items: center; width: 52px; height: 44px; background: #fff; }
.p-nts .c-gift__card::after { content: ""; position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; background: var(--gift-green); border-radius: 50%; }
.p-nts .c-gift__card svg { width: 20px; height: 26px; }
@media (min-width: 992px) {
  .p-nts .c-gift { max-width: 480px; padding: 16px 20px 16px 32px; gap: 16px; }
  .p-nts .c-gift__top { font-size: 18px; }
  .p-nts .c-gift__em { font-size: 28px; }
  .p-nts .c-gift__main { font-size: 19px; }
  .p-nts .c-gift__card { width: 64px; height: 52px; }
}

/* 手書き風ロゴに合わせた、やわらかな下線のあしらい */
.p-nts .c-mark { padding-bottom: 6px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'%3E%3Cpath d='M1 5c12-4 22 2 34-1s22-3 34 0 24 3 50-2' fill='none' stroke='%239db681' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") left bottom / 100% 8px no-repeat; }

/* 吹き出し（ボタンの上に置く。しっぽは下向き） */
.p-nts .c-balloon { position: relative; margin: 24px 0 16px; padding: 12px 14px; background: #eef2e8; font-family: var(--gothic); font-size: 14px; line-height: 1.7; text-align: center; }
.p-nts .c-balloon::after { content: ""; position: absolute; left: 50%; bottom: -10px; margin-left: -10px; border-style: solid; border-width: 10px 10px 0; border-color: #eef2e8 transparent transparent; }
.p-nts .c-balloon strong { display: block; font-size: 15px; }

/* 声（吹き出し風の引用。左右交互） */
.p-nts .c-voices { display: grid; gap: 18px; }
.p-nts .c-voices li { position: relative; width: fit-content; max-width: 88%; padding: 12px 16px; background: var(--panel); font-size: 15px; line-height: 1.8; }
.p-nts .c-voices li:nth-child(even) { margin-left: auto; }
@media (min-width: 992px) { .p-nts .c-voices { max-width: 720px; margin-inline: auto; } }
.p-nts .c-voices li::after { content: ""; position: absolute; bottom: -10px; left: 20px; border-style: solid; border-width: 10px 10px 0 0; border-color: var(--panel) transparent transparent; }
.p-nts .c-voices li:nth-child(even)::after { left: auto; right: 20px; border-width: 10px 0 0 10px; }
.p-nts .l-section--panel .c-voices li, .p-nts .l-section--panel .c-voices li::after { background: #fff; }
.p-nts .l-section--panel .c-voices li::after { background: none; border-top-color: #fff; }

/* 拡大して見るボタン（図の下） */
.p-nts .c-zoom-btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 44px; margin-top: 8px; padding: 6px 4px; background: #fff; border: 1px solid var(--key-dark); font-family: var(--gothic); font-size: 14px; color: var(--key-dark); cursor: pointer; letter-spacing: 0; white-space: nowrap; }
.p-nts .c-zoom-btn svg { flex: none; width: 16px; height: 16px; }
.p-nts .c-zoom-btn:active { opacity: 0.8; }
@media (hover: hover) { .p-nts .c-zoom-btn:hover { background: #eef2e8; } }

/* 手順（番号付き） */
.p-nts .c-steps { text-align: left; border-top: 1px solid var(--line); }
.p-nts .c-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 0 10px; padding: 16px 0; border-bottom: 1px solid var(--line); font-family: var(--gothic); font-size: 15px; line-height: 1.8; counter-increment: step; }
.p-nts .c-steps li::before { content: counter(step); font-family: var(--en); font-size: 24px; line-height: 1.2; color: var(--key-text); }

/* 拡大表示 */
.p-nts .c-zoom { width: 100%; padding: 0; background: none; border: 0; cursor: zoom-in; }
.p-nts .c-lightbox { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: rgba(0, 0, 0, 0.88); }
.p-nts .c-lightbox::backdrop { background: rgba(0, 0, 0, 0.88); }
.p-nts .c-lightbox__body { display: flex; align-items: center; justify-content: center; height: 100%; padding: 64px 12px 24px; overflow: auto; touch-action: pinch-zoom pan-x pan-y; }
.p-nts .c-lightbox__body .c-ph { width: min(100%, 900px); aspect-ratio: 3 / 4; font-size: 18px; }
.p-nts .c-lightbox__close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
  width: 52px;
  height: 52px;
  /* 白い図面の上でも見えるよう、緑の地に白い×と白い縁取りにする */
  background: var(--key-dark);
  border: 2px solid #fff;
  font-family: var(--gothic);
  font-size: 30px;
  line-height: 1;
  color: #fff;
  cursor: pointer;
}


/* ==========================================================
   Project（商品ページ）
   ========================================================== */
/* 最初の画面 */
.p-nts--select .p-fv__body { padding: 20px 20px 0; }
.p-nts--select .p-fv__catch { font-size: 19px; font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; }
/* ロゴ（手書き風の nature &TS） */
.p-nts--select .p-fv__brand { display: flex; align-items: center; gap: 8px; }
.p-nts--select .p-fv__brand img { width: auto; height: 34px; }
.p-nts--select .p-fv__brand span { font-family: var(--en); font-size: 24px; letter-spacing: 0.16em; }
.p-nts--select .p-fv__catch { margin-top: 16px; }
.p-nts--select .p-fv .c-event { margin-top: 16px; }
.p-nts--select .p-fv__points { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 16px; }
.p-nts--select .p-fv__point { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--line); font-family: var(--gothic); font-size: 14px; line-height: 1.4; letter-spacing: 0.02em; }
.p-nts--select .p-fv__point svg { width: 28px; height: 28px; color: var(--key-dark); }
.p-nts--select .p-fv__visual > .c-ph { aspect-ratio: auto; height: min(300px, 36svh); }
.p-nts--select .p-fv__cta { padding: 0 20px; }
/* PC: GRAND OPEN ページ（写真と文字の左右2分割）と同じ構成にしない。
   写真を右に上下の余白をあけて置き、白いカードを写真の左下に重ねる。GRAND OPEN の案内と予約ボタンは写真の下に並べる */
@media (min-width: 992px) {
  .p-nts--select .p-fv__visual { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 620px; padding: 48px 0 24px; background: var(--panel); }
  .p-nts--select .p-fv__visual > .c-ph { position: absolute; z-index: -1; top: 40px; right: max(40px, calc((100% - 1280px) / 2)); bottom: 56px; width: min(70%, 1040px); height: auto; background-position: center 74%; }
  .p-nts--select .p-fv__body { width: 540px; margin-left: max(24px, calc((100% - 1280px) / 2 - 40px)); padding: 40px 36px; background: #fff; }
  .p-nts--select .p-fv__catch { font-size: 24px; }
  .p-nts--select .p-fv__brand img { height: 44px; }
  .p-nts--select .p-fv__brand span { font-size: 30px; }
  .p-nts--select .p-fv__point { font-size: 14px; }
  .p-nts--select .p-fv__cta { display: flex; justify-content: center; gap: 24px; padding: 40px 40px 0; }
  .p-nts--select .p-fv .c-event { width: 340px; margin: 0; }
  .p-nts--select .p-fv .c-btn-row { flex-direction: column; justify-content: center; width: 400px; margin: 0; }
  .p-nts--select .p-fv .c-btn-row > .c-btn { flex: none; max-width: none; }
}

/* SELECTとは */
/* 文章の見出しは2行に収める（4行に割れると見出しだけで縦に長くなる） */
.p-nts--select .p-about .c-heading__title { font-size: 20px; letter-spacing: 0.04em; }
@media (min-width: 992px) { .p-nts--select .p-about .c-heading__title { font-size: 30px; } }
.p-nts--select .p-about__text { margin-top: 48px; }
/* 選ぶ→仕上げる→自分たちらしい住まいに、の流れを図にする */
.p-nts--select .p-about__steps { display: grid; gap: 24px; margin-top: 32px; counter-reset: none; }
.p-nts--select .p-about__steps li { position: relative; padding: 16px; border: 1px solid var(--line); font-family: var(--gothic); font-size: 15px; line-height: 1.8; text-align: center; }
.p-nts--select .p-about__steps li + li::before { content: ""; position: absolute; top: -18px; left: 50%; margin-left: -7px; border-style: solid; border-width: 10px 7px 0; border-color: var(--key) transparent transparent; }
.p-nts--select .p-about__steps strong { display: block; margin-bottom: 8px; font-family: var(--mincho); font-size: 20px; font-weight: 600; }
.p-nts--select .p-about__step-num { display: block; font-family: var(--en); font-size: 14px; letter-spacing: 0.2em; color: var(--key-text); }
.p-nts--select .p-about__steps li:last-child { background: var(--panel); border-color: var(--panel); }
.p-nts--select .p-about .c-ph { margin-top: 24px; }
.p-nts--select .p-about__closing { margin-top: 48px; text-align: center; }
@media (min-width: 992px) {
  /* 左の列をほどいて、流れの図（01〜03）は2列の下に横並びで置く。右の写真は左の文章と同じ高さにする */
  .p-nts--select .p-about__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "voices photo" "text photo" "steps steps"; gap: 0 48px; align-items: start; }
  .p-nts--select .p-about__grid > div:first-child { display: contents; }
  .p-nts--select .p-about__grid .c-voices { grid-area: voices; margin-inline: 0; }
  .p-nts--select .p-about__text { grid-area: text; }
  .p-nts--select .p-about .c-ph { grid-area: photo; align-self: stretch; aspect-ratio: auto; min-height: 320px; margin-top: 0; }
  .p-nts--select .p-about__steps { grid-area: steps; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 56px; }
  .p-nts--select .p-about__steps li { display: flex; flex-direction: column; justify-content: center; padding: 24px; }
  .p-nts--select .p-about__steps li + li::before { top: 50%; left: -26px; margin: -7px 0 0; border-width: 7px 0 7px 10px; border-color: transparent transparent transparent var(--key); }
}

/* 選ばれる4つの理由 */
.p-nts--select .p-reasons__list { display: grid; gap: 16px; }
.p-nts--select .p-reasons__num { display: block; font-family: var(--en); font-size: 24px; line-height: 1.2; color: var(--key-text); text-align: center; }
.p-nts--select .p-reasons .c-box > .c-h3 { margin-top: 8px; text-align: center; }
.p-nts--select .p-reasons .c-box > .c-h3 + p { margin-top: 16px; text-align: center; }
.p-nts--select .p-reasons__sub { margin-top: 24px; font-weight: 600; }
.p-nts--select .p-reasons__incl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-top: 16px; font-family: var(--gothic); font-size: 15px; line-height: 1.8; }
.p-nts--select .p-reasons__incl li + li { margin-top: 0; }
.p-nts--select .p-reasons__pricebox { margin-top: 32px; padding: 24px 16px; background: var(--panel); text-align: center; }
.p-nts--select .p-reasons__pricebox .c-note { margin-top: 8px; text-align: left; }
.p-nts--select .p-reasons__price small { font-size: 14px; font-weight: 400; }
.p-nts--select .p-reasons__tax { margin-top: 8px; font-family: var(--gothic); font-size: 15px; }
.p-nts--select .p-reasons__price { font-family: var(--gothic); font-size: 24px; font-weight: 600; line-height: 1.4; }
.p-nts--select .p-reasons .c-ph { margin-top: 16px; }
@media (min-width: 992px) {
  /* PCはカードを横長にして縦に並べ、中を2列にする（2×2だと01の量が多く、隣のカードに空白が出るため） */
  .p-nts--select .p-reasons__list { grid-template-columns: 1fr; gap: 24px; }
  .p-nts--select .p-reasons .c-box { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; align-content: start; padding: 40px 48px; }
  .p-nts--select .p-reasons .c-box > * { grid-column: 1 / -1; }
  .p-nts--select .p-reasons .c-box > :is(.c-points, .c-video, .p-reasons__sub, .p-reasons__incl) { grid-column: 1; }
  .p-nts--select .p-reasons .c-box > :is(.c-more, .p-reasons__pricebox) { grid-column: 2; grid-row: 4 / span 2; margin-top: 24px; }
  .p-nts--select .p-reasons .c-box > .c-points + .c-more { margin-top: 24px; }
  /* 写真や項目のないカードは1列で中央に */
  .p-nts--select .p-reasons .c-box:not(:has(> .c-points, > .p-reasons__pricebox)) > .c-more { grid-column: 1 / -1; grid-row: auto; justify-self: center; max-width: 720px; margin-top: 16px; }
  .p-nts--select .p-reasons__price { font-size: 20px; }
}

/* モデルハウス */
/* 写真は GRAND OPEN ページの最初の画面と同じもの。スマホでは画面の端まで広げる */
.p-nts--select .p-model__grid > .c-ph { width: calc(100% + 40px); margin: 0 -20px; aspect-ratio: 4 / 5; background-position: center 70%; }
.p-nts--select .p-model .c-info { margin-top: 24px; }
.p-nts--select .p-model__soft { margin-top: 24px; text-align: center; }
@media (min-width: 992px) {
  .p-nts--select .p-model__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: stretch; }
  .p-nts--select .p-model .c-info { margin-top: 0; }
  .p-nts--select .p-model__grid > .c-ph { width: 100%; margin: 0; aspect-ratio: auto; min-height: 480px; }
  .p-nts--select .p-model__cta { margin-top: 48px; }
}

/* おすすめ10プラン */
.p-nts--select .p-plans__guide { margin-bottom: 24px; padding: 16px; background: #fff; border: 1px solid var(--line); }
.p-nts--select .p-plans__guide-title { font-family: var(--gothic); font-size: 14px; letter-spacing: 0.1em; color: var(--sub); text-align: center; }
.p-nts--select .p-plans__types { display: grid; grid-template-columns: 4fr 3fr 3fr; margin-top: 8px; text-align: center; }
/* PCは幅に余裕があるので3等分にする（スマホは「A・B・D・E」が収まるよう左を広く） */
@media (min-width: 992px) { .p-nts--select .p-plans__types { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.p-nts--select .p-plans__type + .p-plans__type { border-left: 1px solid var(--line); }
.p-nts--select .p-plans__type dt { font-family: var(--gothic); font-size: 14px; }
.p-nts--select .p-plans__type dd { font-family: var(--en); font-size: 18px; letter-spacing: 0; white-space: nowrap; color: var(--key-dark); }
.p-nts--select .p-plans__hint { margin-bottom: 12px; font-family: var(--gothic); font-size: 14px; font-weight: 600; letter-spacing: 0.06em; color: var(--key-dark); text-align: center; }
/* 価格帯タブ: 1つずつ独立した押せるボタンに見せ、選んでいるタブは押し込まれた状態＋下の中身を指す三角で示す */
.p-nts--select .p-plans__tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 20px;
}
.p-nts--select .p-plans__tab {
  position: relative;
  min-height: 72px;
  padding: 8px 0 22px;
  background: #fff;
  border: 2px solid var(--key-dark);
  box-shadow: 0 4px 0 var(--key-dark);
  font-family: var(--en);
  font-size: 24px;
  line-height: 1.1;
  color: var(--key-dark);
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, transform 0.15s, box-shadow 0.15s;
}
.p-nts--select .p-plans__tab small { display: block; margin-top: 4px; font-family: var(--gothic); font-size: 12px; font-weight: 600; letter-spacing: 0; color: var(--text); }
/* 下向きの矢印で「押すと下に中身が出る」ことを示す */
.p-nts--select .p-plans__tab::after { content: ""; position: absolute; bottom: 8px; left: 50%; width: 7px; height: 7px; margin-left: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.p-nts--select .p-plans__tab[aria-selected="true"] { background: var(--key-dark); color: #fff; transform: translateY(4px); box-shadow: 0 0 0 var(--key-dark); }
.p-nts--select .p-plans__tab[aria-selected="true"] small { color: #fff; }
.p-nts--select .p-plans__tab[aria-selected="true"]::after { bottom: -12px; width: 0; height: 0; margin-left: -9px; border-style: solid; border-width: 10px 9px 0; border-color: var(--key-dark) transparent transparent; transform: none; }
.p-nts--select .p-plans__tab[aria-selected="false"]:active { transform: translateY(4px); box-shadow: 0 0 0 var(--key-dark); }
@media (hover: hover) {
  .p-nts--select .p-plans__tab[aria-selected="false"]:hover { background: #eef2e8; transform: translateY(2px); box-shadow: 0 2px 0 var(--key-dark); }
}
@media (min-width: 992px) {
  .p-nts--select .p-plans__tabs { gap: 12px; }
  .p-nts--select .p-plans__tab { min-height: 88px; font-size: 30px; }
  .p-nts--select .p-plans__tab small { font-size: 14px; }
}
/* タブを切り替えた時、中身をふわっと出す */
.p-nts--select .p-plans__panel:not([hidden]) { animation: panel-in 0.3s ease-out; }
.p-nts--select @keyframes panel-in { from { opacity: 0; transform: translateY(8px); } .p-nts--select }
@media (prefers-reduced-motion: reduce) { .p-plans__panel:not([hidden]) { animation: none; } .p-nts--select }
.p-plans__tab[aria-selected="true"] small { color: #fff; }
.p-nts--select .p-plans__tab:focus-visible { outline: 2px solid var(--key-dark); outline-offset: -2px; }
.p-nts--select .p-plans__head { padding-top: 28px; text-align: center; }
.p-nts--select .p-plans__band { font-family: var(--gothic); font-size: 17px; font-weight: 600; }
.p-nts--select .p-plans__tax { display: block; font-size: 14px; font-weight: 400; color: #5f6a55; }
.p-nts--select .p-plans__copy { margin-top: 16px; font-size: 20px; font-weight: 600; line-height: 1.6; }
.p-nts--select .p-plans__head .c-note { margin-top: 8px; }
.p-nts--select .p-plans__cards { display: grid; gap: 24px; margin-top: 32px; }
.p-nts--select .p-plan .c-ph { aspect-ratio: 4 / 3; }
.p-nts--select .p-plan__spec { margin-top: 16px; font-family: var(--gothic); font-size: 14px; color: var(--sub); }
.p-nts--select .p-plan__catch { margin-top: 8px; }
.p-nts--select .p-plan__text { margin-top: 16px; }
.p-nts--select .p-plan__floors { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; }
.p-nts--select .p-plan__floors--one { grid-template-columns: 1fr; }
.p-nts--select .p-plan__floors .c-ph { aspect-ratio: 1 / 1; font-size: 14px; }
.p-nts--select .p-plan__floors--one .c-ph { aspect-ratio: 2 / 1; }
.p-nts--select .p-plan__points { margin-top: 16px; font-family: var(--gothic); font-size: 15px; line-height: 1.8; }
.p-nts--select .p-plan .c-btn-note { text-align: left; }
.p-nts--select .p-model__perks-note { display: block; margin-top: 12px; }
.p-nts--select .p-model__perks-note + .p-model__perks-note { margin-top: 4px; }
.p-nts--select .p-plans__other { margin-top: 48px; text-align: center; }
.p-nts--select .p-plans__other-label { font-family: var(--gothic); font-size: 14px; color: var(--sub); }
.p-nts--select .p-plans__other-list { display: flex; justify-content: center; gap: 8px; margin-top: 8px; }
.p-nts--select .p-plans__other-btn { width: 52px; height: 52px; background: #fff; border: 2px solid var(--key-dark); box-shadow: 0 4px 0 var(--key-dark); font-family: var(--en); font-size: 20px; color: var(--key-dark); cursor: pointer; transition: background-color 0.2s, transform 0.15s, box-shadow 0.15s; }
.p-nts--select .p-plans__other-btn[aria-current="true"] { background: var(--key-dark); color: #fff; transform: translateY(4px); box-shadow: 0 0 0 var(--key-dark); }
.p-nts--select .p-plans__other-btn:active { transform: translateY(4px); box-shadow: 0 0 0 var(--key-dark); }
@media (hover: hover) { .p-nts--select .p-plans__other-btn:not([aria-current="true"]):hover { background: #eef2e8; transform: translateY(2px); box-shadow: 0 2px 0 var(--key-dark); } }
@media (min-width: 992px) {
  .p-nts--select .p-plans__cards { grid-template-columns: 1fr 1fr; gap: 32px; }
}

/* もっとプランを見たい方へ */
.p-nts--select .p-more__text { margin-top: 48px; }
.p-nts--select .p-more__text strong { font-size: 18px; }
@media (min-width: 992px) { .p-nts--select .p-more__text { text-align: center; } }

/* 標準仕様 */
.p-nts--select .p-standard__label { margin: 48px 0 16px; }
.p-nts--select .p-standard__label:first-of-type { margin-top: 0; }
.p-nts--select .p-standard__items { border-top: 1px solid var(--line); }
.p-nts--select .p-standard__item { display: grid; grid-template-columns: 112px 1fr; gap: 0 16px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--line); }
.p-nts--select .p-standard__item .c-ph { aspect-ratio: 1 / 1; font-size: 13px; }
.p-nts--select .p-standard__item-title { font-size: 18px; font-weight: 600; line-height: 1.6; }
.p-nts--select .p-standard__item-text { margin-top: 16px; font-size: 15px; line-height: 1.8; }
.p-nts--select .p-standard__item .c-note { margin-top: 8px; }
.p-nts--select .p-standard__item .c-more { grid-column: 1 / -1; margin-top: 4px; }
.p-nts--select .p-standard__equip small { display: block; margin-top: 2px; font-size: 13px; color: var(--sub); }
.p-nts--select .p-standard__equip { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
.p-nts--select .p-standard__equip li { font-family: var(--gothic); font-size: 15px; font-weight: 600; line-height: 1.5; text-align: center; }
.p-nts--select .p-standard__equip small { font-weight: 400; }
.p-nts--select .p-standard__equip .c-ph { aspect-ratio: 4 / 3; margin-bottom: 8px; padding: 6px; font-size: 13px; font-weight: 400; line-height: 1.4; }
@media (min-width: 992px) {
  /* 1件を1行に並べ、写真と文を1:3で置く。写真は見切れないよう横長にする */
  .p-nts--select .p-standard__item { grid-template-columns: 1fr 3fr; gap: 0 40px; align-content: start; padding: 32px 0; }
  .p-nts--select .p-standard__item > .c-ph { grid-row: 1 / span 2; aspect-ratio: 4 / 3; }
  .p-nts--select .p-standard__item .c-more { grid-column: 2; margin-top: 16px; }
  .p-nts--select .p-standard__equip { grid-template-columns: repeat(6, 1fr); }
}

/* 最後の予約エリア */
.p-nts--select .p-final { padding-bottom: 64px; text-align: center; }
.p-nts--select .p-final .c-ph { aspect-ratio: auto; height: 300px; }
.p-nts--select .p-final__copy { margin-top: 48px; font-size: 24px; font-weight: 600; line-height: 1.6; }
.p-nts--select .p-final__text { margin-top: 24px; }
.p-nts--select .p-final .c-event { margin-top: 48px; }
@media (min-width: 992px) {
  .p-nts--select .p-final .c-ph { height: 480px; }
  .p-nts--select .p-final__copy { font-size: 32px; }
}
/* PCだけで改行する */
.p-nts--select br.u-pc { display: none; }
@media (min-width: 992px) { .p-nts--select br.u-pc { display: inline; } }




/* ==========================================================
   Project（GRAND OPENページ）
   ========================================================== */
/* 最初の画面: 日付・場所・予約ボタンを1画面に収める。
   イベント感を出すため、情報欄は特典バナーと同じ深緑の地に白文字・金の罫線・黄の飾り */
.p-nts--go .p-go-fv { --go-green: #2c6847; --go-gold: #c9c17f; --go-yellow: #fff367; }
.p-nts--go .p-go-fv .c-ph { aspect-ratio: auto; height: min(240px, 28svh); }
.p-nts--go .p-go-fv__body { padding: 24px 20px 32px; background: var(--go-green); color: #fff; text-align: center; }
.p-nts--go .p-go-fv__label { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 12px; word-break: keep-all; font-family: var(--gothic); font-size: 14px; letter-spacing: 0.12em; color: rgba(255, 255, 255, 0.88); }
.p-nts--go .p-go-fv__brand { display: inline-flex; align-items: center; gap: 6px; font-family: var(--en); font-size: 15px; letter-spacing: 0.16em; color: #fff; }
.p-nts--go .p-go-fv__brand img { width: auto; height: 20px; filter: brightness(0) invert(1); }
.p-nts--go .p-go-fv__title { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 8px; font-family: var(--en); font-size: 32px; font-weight: 400; line-height: 1.3; letter-spacing: 0.14em; white-space: nowrap; color: #fff; }
.p-nts--go .p-go-fv__title::before, .p-nts--go .p-go-fv__title::after { content: ""; flex: none; width: 22px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 13l6-1-4-4zM6 6l5 1-2-6zM13 5l4 1-1-5z' fill='%23fff367'/%3E%3C/svg%3E") no-repeat center / contain; }
.p-nts--go .p-go-fv__title::after { transform: scaleX(-1); }
.p-nts--go .p-go-fv__date { margin-top: 8px; font-family: var(--en); font-size: 36px; font-weight: 400; line-height: 1.4; letter-spacing: 0.04em; }
.p-nts--go .p-go-fv__date small { font-family: var(--mincho); font-size: 14px; color: var(--go-yellow); }
.p-nts--go .p-go-fv__meta { margin-top: 16px; padding: 8px 0; border-top: 1px solid var(--go-gold); border-bottom: 1px solid var(--go-gold); font-size: 15px; line-height: 1.8; }
.p-nts--go .p-go-fv__soft { margin-top: 16px; font-family: var(--gothic); font-size: 14px; line-height: 1.7; color: rgba(255, 255, 255, 0.88); }
.p-nts--go .p-go-fv .c-gift { margin-top: 16px; }
.p-nts--go .p-go-fv .c-btn { margin-top: 24px; background: #fff; border-color: #fff; color: var(--go-green); }
.p-nts--go .p-go-fv .c-link { margin-top: 16px; background: transparent; border-color: #fff; color: #fff; }
@media (hover: hover) {
  .p-nts--go .p-go-fv .c-btn:hover { background: #eef2e8; }
  .p-nts--go .p-go-fv .c-link:hover { background: rgba(255, 255, 255, 0.12); }
}
@media (min-width: 992px) {
  .p-nts--go .p-go-fv { display: grid; grid-template-columns: 50% 1fr; min-height: max(560px, calc(100vh - var(--header-h))); }
  .p-nts--go .p-go-fv .c-ph { height: 100%; }
  .p-nts--go .p-go-fv__body { display: flex; flex-direction: column; justify-content: center; padding: 40px 48px; }
  .p-nts--go .p-go-fv__title { font-size: 40px; }
  .p-nts--go .p-go-fv__date { font-size: 44px; }
  .p-nts--go .p-go-fv .c-btn { max-width: none; }
}

/* 最初の画面: 縦長の写真の空にタイトルと日程を載せる。建物には文字をかけない */
.p-nts--go .p-go-mv2 { position: relative; height: min(480px, 64svh); background: #9ec3e6 url(../images/nature-ts/mv2-go.jpg) center 62% / cover no-repeat; }
.p-nts--go .p-go-mv2::before { content: ""; position: absolute; inset: 0 0 auto; height: 50%; background: linear-gradient(rgba(16, 52, 84, 0.38), rgba(16, 52, 84, 0)); }
.p-nts--go .p-go-mv2__text { position: absolute; inset: 0 0 auto; padding: 40px 16px 0; color: #fff; text-align: center; text-shadow: 0 1px 8px rgba(10, 40, 70, 0.45); }
.p-nts--go .p-go-mv2 .p-go-fv__label, .p-nts--go .p-go-mv2 .p-go-fv__brand { color: #fff; }
.p-nts--go .p-go-mv2 .p-go-fv__label { flex-wrap: wrap; gap: 4px 12px; word-break: keep-all; }
.p-nts--go .p-go-mv2 .p-go-fv__title { margin-top: 4px; font-size: 32px; white-space: nowrap; }
.p-nts--go .p-go-mv2 .p-go-fv__date { margin-top: 0; font-size: 34px; }
.p-nts--go .p-go-mv2 .p-go-fv__date small { color: #fff; }
@media (min-width: 992px) {
  .p-nts--go .p-go-mv2 { height: auto; min-height: 100%; background-position: center 92%; }
  /* PC: タイトルと日程は写真の左下に置く。下側を暗くして文字を読みやすくする */
  .p-nts--go .p-go-mv2::before { inset: auto 0 0; height: 55%; background: linear-gradient(rgba(16, 52, 84, 0), rgba(16, 52, 84, 0.55)); }
  .p-nts--go .p-go-mv2__text { inset: auto auto 0 0; padding: 0 40px 40px; text-align: left; }
  .p-nts--go .p-go-mv2 .p-go-fv__label, .p-nts--go .p-go-mv2 .p-go-fv__title { justify-content: flex-start; }
  .p-nts--go .p-go-mv2 .p-go-fv__title { font-size: clamp(36px, 3.6vw, 56px); }
  .p-nts--go .p-go-mv2 .p-go-fv__date { font-size: clamp(34px, 3.2vw, 50px); }
}

/* 見出しの英字ラベルの両脇に、特典バナーと同じ放射の飾りを付ける */
main.p-nts--go .c-heading__en { display: flex; align-items: center; justify-content: center; gap: 8px; }
main.p-nts--go .c-heading__en::before, main.p-nts--go .c-heading__en::after { content: ""; width: 16px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M1 13l6-1-4-4zM6 6l5 1-2-6zM13 5l4 1-1-5z' fill='%239db681'/%3E%3C/svg%3E") no-repeat center / contain; }
main.p-nts--go .c-heading__en::after { transform: scaleX(-1); }

/* 開催概要と来場特典 */
/* 「予約なしでご来場いただけます」は、ひと目で分かるよう帯で目立たせる */
.p-nts--go .p-go-noresv { display: inline-block; padding: 4px 12px; background: var(--key-dark); color: #fff; font-family: var(--gothic); font-weight: 700; letter-spacing: 0.06em; }
.p-nts--go .p-go-fv .p-go-noresv { margin: 4px 0; background: var(--go-yellow); color: var(--go-green); }
.p-nts--go .p-event .c-box { margin-top: 16px; }
.p-nts--go .p-event .c-box .c-h3, .p-nts--go .p-reserve .c-box .c-h3 { text-align: center; }
@media (min-width: 992px) {
  /* 概要と特典は横並びにせず上下に置き、それぞれを2列にする（左右の高さの差をなくす） */
  .p-nts--go .p-event__grid { display: grid; gap: 32px; }
  .p-nts--go .p-event__grid > .c-info { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; padding: 32px 40px; }
  .p-nts--go .p-event__grid > .c-info .c-info__row + .c-info__row { margin-top: 0; }
  .p-nts--go .p-event .c-box { margin-top: 0; }
  .p-nts--go .p-event .c-box .c-info { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }
  .p-nts--go .p-event .c-box .c-info__row:nth-child(2) { border-top: 1px solid var(--line); }
  .p-nts--go .p-event .c-box .c-gift { margin-left: 0; }
}

/* 見どころ */
.p-nts--go .p-highlights__overview { text-align: center; }
.p-nts--go .p-highlights__floors { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-width: 480px; margin: 16px auto 0; }
/* 先方の想い（体感のすすめ） */
.p-nts--go .p-highlights__message { margin-bottom: 48px; text-align: center; }
.p-nts--go .p-highlights__message-catch { margin-bottom: 16px; font-size: 22px; font-weight: 600; line-height: 1.6; letter-spacing: 0.06em; color: var(--key-text); }
.p-nts--go .p-highlights__floors .c-ph { aspect-ratio: 1 / 1; }
.p-nts--go .p-highlights__overview p { font-size: 15px; }
.p-nts--go .p-highlights__price { margin-top: 16px; }
.p-nts--go .p-highlights__tax { margin-left: 8px; font-family: var(--gothic); font-size: 13px; color: #6b7660; }
.p-nts--go .p-highlights__overview .c-note { margin-top: 8px; font-size: 13px; }
.p-nts--go .p-highlights__overview .p-highlights__same { margin-top: 16px; padding: 12px 16px; background: #fff; border: 1px solid var(--line); font-size: 15px; line-height: 1.8; }
.p-nts--go .p-highlights__floors .c-zoom .c-ph { display: block; }
.p-nts--go .p-highlights__item .c-video { margin-top: 0; }
.p-nts--go .p-highlights__item .c-note { margin-top: 8px; font-size: 13px; }
.p-nts--go .p-highlights__list { display: grid; gap: 64px; margin-top: 48px; }
.p-nts--go .p-highlights__num { margin-right: 10px; font-family: var(--en); font-size: 24px; font-weight: 400; letter-spacing: 0.04em; color: var(--key-text); }
.p-nts--go .p-highlights__item .c-h3 { display: flex; align-items: baseline; margin-top: 24px; }
.p-nts--go .p-highlights__item p { margin-top: 16px; }
/* 01〜05の写真は、全体が見えるよう正方形にそろえる */
.p-nts--go .p-highlights__item > .c-ph { aspect-ratio: 1 / 1; }
.p-nts--go .p-highlights__links { margin-top: 32px; }
@media (min-width: 992px) {
  /* 5件を3＋2で並べ、2段目は中央に寄せる（右端だけ空くのを避ける） */
  .p-nts--go .p-highlights__list { grid-template-columns: repeat(6, 1fr); gap: 40px 24px; }
  .p-nts--go .p-highlights__item { grid-column: span 2; }
  .p-nts--go .p-highlights__item:nth-child(4):nth-last-child(2) { grid-column: 2 / span 2; }
  /* 横に並ぶ動画（16:9）と写真の高さをそろえる */
}

/* SELECTとは */
.p-nts--go .p-go-about { text-align: center; }
.p-nts--go .p-go-about__logo { display: block; width: 100%; max-width: 240px; height: auto; margin: 0 auto 24px; }
.p-nts--go .p-go-about__points { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 24px; }
.p-nts--go .p-go-about__points li { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 8px; padding: 12px 8px; border: 1px solid var(--line); background: #fff; font-family: var(--gothic); font-size: 14px; line-height: 1.4; text-align: left; }
.p-nts--go .p-go-about__points svg { width: 28px; height: 28px; color: var(--key-dark); }
@media (min-width: 992px) {
  .p-nts--go .p-go-about__points { grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 1040px; margin: 32px auto 0; }
  .p-nts--go .p-go-about__points li { justify-content: center; grid-template-columns: 28px auto; padding: 16px; white-space: nowrap; }
}

/* アクセス */
.p-nts--go .p-access__map { display: block; width: 100%; margin-top: 16px; aspect-ratio: 4 / 3; border: 0; }
.p-nts--go .p-access .c-info { margin-top: 8px; }
.p-nts--go .p-access__mark { margin-top: 16px; aspect-ratio: 4 / 3; }
@media (min-width: 992px) {
  .p-nts--go .p-access__grid { display: grid; grid-template-columns: 3fr 2fr; gap: 32px; }
  .p-nts--go .p-access__map { margin-top: 0; }
  /* 右の「住所」の頭を、左の地図の上端にそろえる */
  .p-nts--go .p-access .c-info { margin-top: 0; padding-top: 0; }
  .p-nts--go .p-access .c-info__label { line-height: 1; }
}

/* 来場予約 */
.p-nts--go .p-reserve { text-align: center; }
.p-nts--go .p-reserve__tel { margin-top: 32px; }
.p-nts--go .p-reserve__tel p + p { margin-top: 8px; }
.p-nts--go .p-reserve__num { display: inline-flex; align-items: center; min-height: 48px; font-family: var(--gothic); font-size: 28px; font-weight: 600; color: var(--text); text-decoration: none; }
.p-nts--go .p-reserve__flow { margin-top: 48px; }
.p-nts--go .p-reserve__flow .c-h3 { font-size: 17px; margin-bottom: 16px; }
.p-nts--go .p-reserve__cal { margin-top: 32px; }
.p-nts--go .p-reserve__cal .kc-calendar-wrapper iframe { width: 100%; }
.p-nts--go .p-reserve .c-box { margin-top: 32px; text-align: left; }
@media (min-width: 992px) { .p-nts--go .p-reserve .c-box { text-align: center; } }
.p-nts--go .p-reserve .c-gift + p { margin-top: 16px; }
.p-nts--go .p-reserve__perks-note { margin-top: 12px; text-align: left; }
.p-nts--go .p-reserve__perks-note + .p-reserve__perks-note { margin-top: 4px; }
@media (min-width: 992px) { .p-nts--go .p-reserve__perks-note { max-width: 640px; margin-inline: auto; } }
@media (min-width: 992px) {
  .p-nts--go .p-reserve__inner { max-width: 800px; margin: 0 auto; }
}
