@import url("/site/tokens.css");
@import url("/facility-assets/fonts.css");
/* ワイヤー用の中立なスタイル。見た目はデザイン担当が決めるため、色・文字・余白はすべて変数にまとめる。 */
:root {
  --c-bg: #ffffff;
  --c-surface: #f4f4f4;
  --c-surface-2: #e9e9e9;
  --c-text: #1f1f1f;
  --c-text-weak: #5c5c5c;
  --c-line: #c9c9c9;
  --c-primary: #2b2b2b;
  --c-on-primary: #ffffff;
  --c-warn: #a11d1d;
  --c-warn-bg: #fbeaea;
  --c-info: #5c5c5c;
  --c-info-bg: #efefef;
  --c-focus: #1a5fb4;
  --font: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Noto Sans Thai", "Noto Sans KR", "Noto Sans SC", "Noto Sans TC", sans-serif;
  --fs-body: 16px; --fs-small: 14px; --fs-h1: 32px; --fs-h2: 24px; --fs-h3: 18px;
  --lh: 1.7;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 16px; --sp-4: 24px; --sp-5: 40px; --sp-6: 64px;
  --radius: 4px;
  --w-max: 1200px;
  --panel-w: 400px;
}
* { box-sizing: border-box; }
html { font-size: var(--fs-body); }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font-family: var(--font); line-height: var(--lh); }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; } /* hidden 属性を、display を指定した部品（カード・バナーなど）でも効かせる */
a { color: inherit; }
:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; }
h1 { font-size: var(--fs-h1); line-height: 1.3; margin: var(--sp-3) 0; }
h2 { font-size: var(--fs-h2); line-height: 1.4; }
h3 { font-size: var(--fs-h3); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip { position: absolute; left: -999px; } .skip:focus { left: var(--sp-2); top: var(--sp-2); background: var(--c-bg); padding: var(--sp-2); z-index: 100; }
main { max-width: var(--w-max); margin: 0 auto; padding: 0 var(--sp-3) var(--sp-6); }
.note { color: var(--c-text-weak); font-size: var(--fs-small); }
.lead, .detail__lead, .article__lead, .section__lead { font-size: var(--t-md); }

/* header */
.site-header { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--c-line); position: sticky; top: 0; background: var(--c-bg); z-index: 20; }
.site-header__logo { font-weight: 700; text-decoration: none; display: flex; flex-direction: column; line-height: 1.2; }
.site-header__logo span { font-size: var(--fs-small); font-weight: 400; color: var(--c-text-weak); }
.site-header__place { font-size: var(--t-2xs); font-weight: 400; letter-spacing: 0.04em; color: var(--c-text-weak); }
.site-nav ul { list-style: none; display: flex; gap: var(--sp-3); margin: 0; padding: 0; }
.site-nav a { text-decoration: none; } .site-nav a[aria-current] { text-decoration: none; }
.site-header__menu { display: none; }
.lang-switch { margin-left: auto; font-size: var(--fs-small); }
.lang-switch__current { font-weight: 700; } .lang-switch__more { color: var(--c-text-weak); }
.plan-toggle { border: 1px solid var(--c-text); background: var(--c-bg); padding: var(--sp-1) var(--sp-3); border-radius: var(--radius); cursor: pointer; font: inherit; }
.plan-toggle__count { display: inline-block; min-width: 1.6em; background: var(--c-primary); color: var(--c-on-primary); border-radius: 1em; text-align: center; font-size: var(--fs-small); }

/* media placeholder */
.media { position: relative; margin: 0; background: var(--c-surface-2); overflow: hidden; }
.media--4x3 { aspect-ratio: 4/3; } .media--16x9 { aspect-ratio: 16/9; } .media--21x9 { aspect-ratio: 21/9; }
.media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.media__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--c-text-weak); font-size: var(--fs-small); border: 1px dashed var(--c-line); }
.media__credit { position: absolute; left: var(--sp-1); bottom: var(--sp-1); font-size: var(--t-2xs); background: rgba(255,255,255,.85); padding: 0 var(--sp-1); }

/* layout */
.hero { position: relative; margin: 0 calc(-1 * var(--sp-3)); }
.hero__text { padding: var(--sp-4) var(--sp-3); }
.page-banner { margin: 0 calc(-1 * var(--sp-3)); }
.page-banner__text { padding: var(--sp-3); }
.section { margin: var(--sp-5) 0; }
.section__title { border-bottom: 1px solid var(--c-line); padding-bottom: var(--sp-1); }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--sp-4); }
.card-grid--small { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.card { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-2); display: flex; flex-direction: column; gap: var(--sp-1); }
.card__link { text-decoration: none; }
.card__kicker, .detail__kicker { color: var(--c-text-weak); font-size: var(--fs-small); margin: var(--sp-2) 0 0; }
.card__title { margin: 0; }
.card__lead { margin: 0; font-size: var(--fs-small); }
.card__facts, .facts { margin: 0; display: grid; gap: var(--sp-1); }
.card__facts div, .facts div { display: grid; grid-template-columns: 9em 1fr; gap: var(--sp-2); }
.card__facts { font-size: var(--fs-small); }
dt { color: var(--c-text-weak); } dd { margin: 0; }
.card .btn--add { margin-top: auto; }
.entry-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--sp-3); }
.entry { border: 1px solid var(--c-line); padding: var(--sp-3); border-radius: var(--radius); text-decoration: none; display: block; }
.access-strip { list-style: none; padding: 0; display: grid; gap: var(--sp-2); }
.news { list-style: none; padding: 0; } .news time { color: var(--c-text-weak); margin-right: var(--sp-2); }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sp-2); padding: 0; font-size: var(--fs-small); }
.crumbs li + li::before { content: "›"; margin-right: var(--sp-2); }
.detail { display: grid; grid-template-columns: 1fr 300px; gap: var(--sp-5); align-items: start; }
.detail > *, .explore__body > *, .plan-page > * { min-width: 0; }
h1, h2, h3 { overflow-wrap: anywhere; }
.detail__side { position: sticky; top: 80px; display: grid; gap: var(--sp-3); }
.booking-box { border: 1px solid var(--c-line); padding: var(--sp-3); border-radius: var(--radius); }
.price { font-size: var(--t-lead); font-weight: 700; }
.table-wrap { overflow-x: auto; }
.info-table { border-collapse: collapse; width: 100%; font-size: var(--fs-small); }
.info-table th, .info-table td { border: 1px solid var(--c-line); padding: var(--sp-2); text-align: left; vertical-align: top; }
.checked { color: var(--c-text-weak); font-size: var(--fs-small); }
.ja-sub { display: block; font-size: var(--fs-small); color: var(--c-text-weak); font-weight: 400; }
.list { padding-left: 1.2em; }

/* tags & buttons */
.tag { display: inline-block; border: 1px solid var(--c-line); border-radius: 2px; padding: 0 var(--sp-1); font-size: var(--t-2xs); }
.tag--unknown { background: var(--c-info-bg); color: var(--c-info); border-color: transparent; }
.tag--book-ext { border-color: var(--c-text); font-weight: 700; }
.tag--book-jp { border-style: dashed; }
.tag--book-unk { background: var(--c-info-bg); color: var(--c-info); }
.btn { display: inline-block; font: inherit; border-radius: var(--radius); padding: var(--sp-2) var(--sp-3); cursor: pointer; text-decoration: none; border: 1px solid var(--c-text); background: var(--c-bg); color: var(--c-text); text-align: center; }
.btn--primary { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
.btn--link { border: 0; padding: 0; background: none; text-decoration: underline; }
.btn--external::after { content: ""; display: inline-block; width: .85em; height: .85em; margin-left: .3em; vertical-align: -.05em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 4.5h6v6M11.5 4.5l-7 7' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 4.5h6v6M11.5 4.5l-7 7' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.btn--file::after { content: " (PDF)"; font-size: var(--fs-small); }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.heart { color: var(--c-text); }
.callout { border-left: 4px solid var(--c-text); background: var(--c-surface); padding: var(--sp-2) var(--sp-3); margin: var(--sp-3) 0; }
.callout--warn { border-color: var(--c-warn); background: var(--c-warn-bg); }
.agency-block { border-top: 1px solid var(--c-line); margin-top: var(--sp-4); padding-top: var(--sp-2); font-size: var(--fs-small); color: var(--c-text-weak); }

/* itinerary (course) */
.itin { list-style: none; padding: 0; }
.itin__item { display: grid; grid-template-columns: 4em 1fr; gap: var(--sp-2); padding: var(--sp-2) 0; border-bottom: 1px solid var(--c-surface-2); }
.itin__time { font-weight: 700; } .itin__place, .itin__what { margin: 0; } .itin__what { color: var(--c-text-weak); font-size: var(--fs-small); }
.itin__move { grid-column: 2; margin: 0; font-size: var(--fs-small); color: var(--c-text-weak); }
.stops { list-style: none; padding: 0; } .stop { display: grid; grid-template-columns: 2em 1fr; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.stop__no { width: 2em; height: 2em; border-radius: 50%; background: var(--c-primary); color: var(--c-on-primary); display: flex; align-items: center; justify-content: center; }
.stop__move { grid-column: 2; font-size: var(--fs-small); color: var(--c-text-weak); }
.facts--compact { font-size: var(--fs-small); }

/* map */
.map { position: relative; border: 1px solid var(--c-line); background: var(--c-surface); aspect-ratio: 4/3; min-height: 240px; max-width: 100%; }   /* 320px 幅で min-height が幅を 320px に押し広げない */
.map svg { width: 100%; height: 100%; display: block; }
.map__note { position: absolute; top: var(--sp-1); left: var(--sp-2); margin: 0; font-size: var(--t-2xs); color: var(--c-text-weak); }
.map__pin { cursor: pointer; } .map__pin circle { fill: var(--c-bg); stroke: var(--c-text); stroke-width: 1.5; } .map__pin text { font-size: var(--t-2xs); }
.map__pin--on circle { fill: var(--c-primary); } .map__pin--on text { fill: var(--c-on-primary); }
.map__station rect { fill: var(--c-text); } .map__station text { font-size: var(--t-2xs); }
.map__pop { position: absolute; background: var(--c-bg); border: 1px solid var(--c-text); padding: var(--sp-2); font-size: var(--fs-small); max-width: 220px; z-index: 2; }

/* explore */
.tabs { display: flex; flex-wrap: wrap; gap: var(--sp-1); margin: var(--sp-3) 0; }
.tab { font: inherit; border: 1px solid var(--c-line); background: var(--c-bg); padding: var(--sp-1) var(--sp-3); cursor: pointer; }
.tab[aria-selected="true"] { background: var(--c-primary); color: var(--c-on-primary); }
.filters { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: end; background: var(--c-surface); padding: var(--sp-3); }
.filters fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.view-switch { margin: var(--sp-3) 0; display: flex; gap: var(--sp-2); align-items: center; }
.explore__body { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.explore__body .map { position: relative; }

/* audio */
.audio-block { background: var(--c-surface); padding: var(--sp-3); margin: var(--sp-4) 0; }
.audio-tracks { list-style: none; padding: 0; }
.audio-track { display: grid; grid-template-columns: auto 2em 1fr auto; gap: var(--sp-2); align-items: center; padding: var(--sp-1) 0; }
.audio-btn { font: inherit; border: 1px solid var(--c-text); background: var(--c-bg); border-radius: 2em; padding: var(--sp-1) var(--sp-3); cursor: pointer; }
.audio-btn[aria-pressed="true"] { background: var(--c-primary); color: var(--c-on-primary); }

/* plan panel */
.plan-panel { position: fixed; top: 0; right: 0; bottom: 0; width: var(--panel-w); background: var(--c-bg); border-left: 1px solid var(--c-text); z-index: 30; overflow-y: auto; padding: var(--sp-3); box-shadow: -4px 0 12px rgba(0,0,0,.08); }
.plan-bar { display: none; }
.plan__head { display: flex; justify-content: space-between; align-items: center; }
.plan__cond { background: var(--c-surface); padding: var(--sp-2); font-size: var(--fs-small); display: grid; gap: var(--sp-2); }
.plan__cond label { display: grid; gap: 2px; }
.plan__day { margin: var(--sp-3) 0; }
.plan__day h3 { display: flex; justify-content: space-between; align-items: center; margin: 0 0 var(--sp-2); }
.plan__items { list-style: none; padding: 0; margin: 0; }
.plan__item { border: 1px solid var(--c-line); padding: var(--sp-2); margin-bottom: var(--sp-1); background: var(--c-bg); }
.plan__item-top { display: flex; gap: var(--sp-2); align-items: baseline; }
.plan__time { font-weight: 700; min-width: 3.2em; }
.plan__name { flex: 1; font-weight: 700; }
.plan__meta { font-size: var(--t-2xs); color: var(--c-text-weak); margin: var(--sp-1) 0 0; }
.plan__ops { display: flex; gap: var(--sp-1); flex-wrap: wrap; margin-top: var(--sp-1); }
.plan__ops button, .plan__ops select { font: inherit; font-size: var(--t-2xs); padding: 2px var(--sp-1); }
.plan__seg { font-size: var(--t-2xs); color: var(--c-text-weak); padding: var(--sp-1) 0 var(--sp-1) var(--sp-3); display: flex; gap: var(--sp-1); align-items: center; flex-wrap: wrap; }
.plan__seg select { font: inherit; font-size: var(--t-2xs); }
.plan__warn { color: var(--c-warn); background: var(--c-warn-bg); font-size: var(--t-2xs); padding: 2px var(--sp-1); margin-top: var(--sp-1); }
.plan__warn::before { content: "⚠ "; }
.plan__info { color: var(--c-info); background: var(--c-info-bg); font-size: var(--t-2xs); padding: 2px var(--sp-1); margin-top: var(--sp-1); }
.plan__disclaimer { font-size: var(--t-2xs); color: var(--c-text-weak); }
.plan__total { border-top: 1px solid var(--c-line); padding-top: var(--sp-2); font-size: var(--fs-small); }
.plan__actions { display: grid; gap: var(--sp-2); margin-top: var(--sp-3); }
.plan__empty { color: var(--c-text-weak); }
.add-menu { position: absolute; background: var(--c-bg); border: 1px solid var(--c-text); padding: var(--sp-2); z-index: 40; display: grid; gap: var(--sp-1); }
.add-menu button { font: inherit; text-align: left; background: none; border: 1px solid var(--c-line); padding: var(--sp-1) var(--sp-2); cursor: pointer; }
.dialog { position: fixed; inset: 0; background: rgba(0,0,0,.4); display: flex; align-items: center; justify-content: center; z-index: 50; }
.dialog__box { background: var(--c-bg); padding: var(--sp-4); max-width: 520px; width: 92%; max-height: 90vh; overflow: auto; }
.dialog__box textarea, .dialog__box input[type=text] { width: 100%; font: inherit; font-size: var(--t-2xs); }
.turnstile { border: 1px dashed var(--c-line); padding: var(--sp-3); text-align: center; color: var(--c-text-weak); font-size: var(--fs-small); }

.plan-page { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
.shared-banner { background: var(--c-surface); border: 1px solid var(--c-text); padding: var(--sp-3); display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.is-shared .plan__ops, .is-shared .plan__cond-edit { display: none; }

/* suggest */
.suggest-form fieldset { border: 1px solid var(--c-line); margin: 0 0 var(--sp-3); display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.suggest-form legend { font-weight: 700; }
.req { font-size: var(--t-2xs); border: 1px solid var(--c-text); padding: 0 var(--sp-1); font-weight: 400; }
.suggest-more summary { cursor: pointer; margin-bottom: var(--sp-3); font-weight: 700; }
.suggest-result { border: 1px solid var(--c-text); padding: var(--sp-3); margin: var(--sp-4) auto; }
.ai-label { display: inline-block; border: 1px solid var(--c-text); font-size: var(--t-2xs); padding: 0 var(--sp-1); }
.loading { color: var(--c-text-weak); }

/* forms */
.form { max-width: 640px; display: grid; gap: var(--sp-3); }
.field { display: grid; gap: var(--sp-1); border: 0; padding: 0; margin: 0; }
.field input, .field select { font: inherit; padding: var(--sp-2); border: 1px solid var(--c-text); }
.field--check { display: block; }
.form__error { color: var(--c-warn); background: var(--c-warn-bg); padding: var(--sp-2); }
.attached-plan { background: var(--c-surface); padding: var(--sp-2); font-size: var(--fs-small); white-space: pre-wrap; }
.result { max-width: 640px; margin: var(--sp-6) auto; text-align: center; }
.result--error h1 { color: var(--c-warn); }

/* faq & text */
.faq { border-bottom: 1px solid var(--c-line); padding: var(--sp-2) 0; } .faq summary { cursor: pointer; font-weight: 700; }
.article { max-width: 760px; margin: 0 auto; } .toc { background: var(--c-surface); padding: var(--sp-2) var(--sp-3); }

/* footer & misc */
.site-footer { border-top: 1px solid var(--c-text); padding: var(--sp-4) var(--sp-3) calc(var(--sp-6) + 40px); max-width: var(--w-max); margin: 0 auto; }
.site-footer__cols { display: grid; grid-template-columns: 2fr 2fr 1fr; gap: var(--sp-4); }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer__small { font-size: var(--t-2xs); color: var(--c-text-weak); }
.toast { position: fixed; left: 50%; bottom: 80px; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); display: flex; align-items: center; gap: var(--sp-3); background: var(--c-primary); color: var(--c-on-primary); padding: var(--sp-2) var(--sp-3); border-radius: var(--radius); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s, visibility 0s .2s; z-index: 60; }
.toast.is-on { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .2s; }
.toast__msg { min-width: 0; text-wrap: balance; word-break: auto-phrase; position: relative; top: -1px; } /* この書体は字が行の中で1px強、下に寄るので、黒い地の上下中央に見えるよう上げる */
.toast__tail { display: inline-block; width: .5em; white-space: nowrap; }
.toast__undo { text-decoration: none; font: inherit; font-weight: 700; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: var(--radius); padding: .5px 10px 3.5px; cursor: pointer; white-space: nowrap; flex: none; }
.toast__undo:focus-visible { outline: 2px solid var(--c-on-primary); outline-offset: 2px; }
/* 旅程パネルが開いているとき：PC はパネルの左の残りの幅の中央、スマホはパネルの上の余白（8vh）に1行で出す */
body:has(.plan-panel:not([hidden])) .toast { left: calc((100% - var(--panel-w)) / 2); max-width: calc(100% - var(--panel-w) - 32px); }
/* 旅程ページ（PC）でパネルを開いたとき：本文の右にパネルの幅の余白をとり、地図と「概要／詳しく」をパネルの下に隠さない（r15） */
@media (min-width: 768px) { body.page-plan:has(.plan-panel:not([hidden])) { padding-right: var(--panel-w); } }
.consent { position: fixed; left: 0; right: 0; bottom: 0; background: var(--c-bg); border-top: 1px solid var(--c-text); padding: var(--sp-3); display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; justify-content: space-between; z-index: 45; }
.consent p { margin: 0; } .consent__btns { display: flex; gap: var(--sp-2); }

/* print sheet */
/* r14：狭い画面では表だけ横に動かす（ページは横に動かさない）。電話・予約の欄は折り返さない。操作は縦に並べる。読めない共有リンクでは知らせだけ */
.print-sheet.is-bad > :not(.plan__bad) { display: none; }
@media print {
  .site-header, .site-footer, .plan-panel, .plan-bar, .consent, .crumbs, .no-print, .toast, .view-seg, .itin-view-row { display: none !important; }
  main { padding: 0; } @page { size: A4 portrait; margin: 12mm; }
  /* パネルを開いたまま印刷しても、画面でパネルのぶん右を空けた余白は紙に持ち込まない（11/10 Takeru「印刷に何も出てこない」） */
  body, body:has(.plan-panel:not([hidden])) { padding-right: 0 !important; --sbw: 0px; }
}

/* mobile */
@media (max-width: 767px) {
  :root { --fs-h1: 26px; --fs-h2: 20px; }
  .site-header__menu { display: inline-block; font: inherit; }
  .site-nav { display: none; width: 100%; } .site-nav.is-open { display: block; } .site-nav ul { flex-direction: column; }
  .lang-switch__more { display: none; }
  /* スマホのヘッダーは1行（約52px）：サイト名・言語・旅程・メニュー。場所とサブタイトルは出さない */
  .site-header { flex-wrap: wrap; gap: var(--sp-2); padding: 6px var(--sp-3); }
  .site-header__logo { font-size: var(--t-body); margin-right: auto; }
  .site-header__place, .site-header__logo span { display: none; }
  .lang-switch { margin-left: 0; order: 2; } .lang-switch__current { display: none; }
  .site-header .plan-toggle { order: 3; padding: 4px 10px; }
  .site-header__menu { order: 4; padding: 4px 8px; font-size: var(--t-sm); }
  .site-header .plan-toggle, .lang-switch { font-size: var(--t-sm); }
  .site-nav { order: 5; }
  .plan-bar { display: none; }
  .plan-panel { top: 8vh; left: 0; width: auto; border-left: 0; border-top: 1px solid var(--c-text); border-radius: 12px 12px 0 0; }
  .detail, .explore__body, .plan-page, .site-footer__cols { grid-template-columns: 1fr; }
  .detail__side { position: static; }
  .explore__body .map { display: none; } .explore__body.is-map .map { display: block; position: static; } .explore__body.is-map [data-results] { display: none; }
  .card__facts div, .facts div { grid-template-columns: 7em 1fr; }
  .consent { bottom: 0; }
  /* スマホのトーストは左右 16px の幅いっぱいにし、長い文は1〜2行で折り返す（縦に1文字ずつ並ばないように） */
  .toast { left: 16px; right: 16px; transform: none; width: auto; max-width: none; }
  body:has(.plan-panel:not([hidden])) .toast { top: 8px; bottom: auto; left: 16px; right: 16px; transform: none; max-width: none; padding: 6px var(--sp-2) 6px var(--sp-3); font-size: var(--t-sm); }
  body:has(.plan-panel:not([hidden])) .toast__msg { flex: 1; min-width: 0; }
}
@media (min-width: 768px) { .view-switch [data-view] { display: none; } }

/* PC / mobile only */
.only-sp { display: none; }
@media (max-width: 767px) { .only-sp { display: block; margin: var(--sp-3) 0; } .only-pc { display: none; } }
.media:has(img) .media__ph { display: none; }

/* 3:2 cards, full-screen hero, highlights, itinerary notes (2026-10-23) */
.media--3x2 { aspect-ratio: 3/2; }
.media--hero { aspect-ratio: auto; height: min(82vh, 760px); min-height: 420px; }
.hero { position: relative; }
.hero .hero__text { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--sp-6, 48px) var(--sp-5, 32px) var(--sp-5, 32px);
  color: #fff; background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,0)); }
.hero .hero__text h1 { font-size: clamp(1.8rem, 4vw, 3rem); margin: 0 0 var(--sp-2); }
.hero .hero__text p, .hero .hero__text .note { color: #fff; max-width: 40em; }
.hero .media__credit { z-index: 2; top: var(--sp-1); bottom: auto; }
.story__why { font-size: var(--t-md); line-height: 1.9; max-width: 40em; }
.highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); margin-top: var(--sp-3); }
.highlight h3 { margin: var(--sp-2) 0 var(--sp-1); font-size: var(--t-md); }
.highlight p { margin: 0; color: var(--c-text-weak); }
.itin__daylead { margin: 0 0 var(--sp-2); color: var(--c-text-weak); }
.itin__why { margin: var(--sp-1) 0 0; font-size: var(--fs-small); line-height: 1.7; }
.stop__body .itin__why { font-size: var(--t-ui); margin: 0 0 var(--sp-2); }
@media (max-width: 767px) {
  .highlights { grid-template-columns: 1fr; }
  .media--hero { height: 70vh; min-height: 360px; }
  .hero .hero__text { padding: var(--sp-4) var(--sp-3); }
}

/* itinerary thumbnails, credits (2026-10-23) */
.plan__item--thumb { display: grid; grid-template-columns: 72px 1fr; gap: var(--sp-2); align-items: start; }
.plan__thumb { width: 72px; height: 48px; object-fit: cover; display: block; background: var(--c-surface); }
.plan__item--thumb:not(:has(.plan__thumb)) { grid-template-columns: 1fr; }
.suggest__stops { list-style: none; padding: 0; margin: 0 0 var(--sp-3); display: grid; gap: var(--sp-2); }
.suggest__stops .plan__thumb { width: 96px; height: 64px; }
.suggest__stops .plan__item--thumb { grid-template-columns: 96px 1fr; }
.credits-table td:first-child { width: 160px; }
.credits-table .media { width: 150px; }

/* course itinerary thumbs, suggestion timetable (2026-10-23) */
.itin__item { grid-template-columns: 4em 120px 1fr; }
.itin__item .itin__move { grid-column: 1 / -1; margin: 0; }
.itin__thumb { width: 120px; height: 80px; object-fit: cover; display: block; background: var(--c-surface); }
.itin__thumb--none { background: transparent; }
.tt { list-style: none; padding: 0; margin: 0 0 var(--sp-4); }
.tt__stop { display: grid; grid-template-columns: 5.5em 200px 1fr; gap: var(--sp-3); padding: var(--sp-3) 0; border-top: 1px solid var(--c-surface-2); }
.tt__time { font-weight: 700; font-size: var(--t-md); } .tt__time span { display: block; font-weight: 400; font-size: var(--fs-small); color: var(--c-text-weak); }
.tt__img { margin: 0; aspect-ratio: 3/2; background: var(--c-surface); overflow: hidden; }
.tt__thumb { width: 100%; height: 100%; object-fit: cover; display: block; }
.tt__kind { margin: 0; font-size: var(--fs-small); color: var(--c-text-weak); }
.tt__name { margin: var(--sp-1) 0; font-size: var(--t-md); }
.tt__what { margin: 0 0 var(--sp-1); line-height: 1.7; }
.tt__price { margin: 0; font-size: var(--fs-small); }
.tt__move { padding: var(--sp-1) 0 var(--sp-1) 5.5em; color: var(--c-text-weak); font-size: var(--fs-small); }
.tt__move--start { padding-left: 0; font-weight: 700; color: inherit; }
.tt__total { border: 1px solid var(--c-line); padding: var(--sp-3); margin: var(--sp-3) 0; }
.tt__total p { margin: 0 0 var(--sp-1); }
@media (max-width: 767px) {
  .itin__item { grid-template-columns: 3.5em 88px 1fr; } .itin__thumb { width: 88px; height: 59px; }
  .tt__stop { grid-template-columns: 4em 1fr; } .tt__img { grid-column: 2; } .tt__body { grid-column: 2; }
  .tt__move { padding-left: 4em; }
}

/* saved itineraries switcher (2026-10-23) */
.plan__switch { margin: 0 0 var(--sp-3); }
.plan__switch label { display: grid; gap: 4px; font-size: var(--fs-small); }
.plan__switch select, .plan__switch input { font: inherit; padding: 6px; }
.plan__switch-ops { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; }
.plan__switch .note { margin: 0; }
.btn--danger { color: #a40000; }

/* model course explainer, booked tag (2026-10-23) */
.explainer { border: 1px solid var(--c-line); background: var(--c-surface); padding: var(--sp-3); margin: var(--sp-3) 0; }
.explainer h2 { margin: 0 0 var(--sp-2); font-size: var(--t-md); }
.explainer ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--sp-3); }
.explainer li { display: grid; gap: 4px; } .explainer li span { color: var(--c-text-weak); font-size: var(--fs-small); line-height: 1.7; }
.tag--booked { border-color: var(--c-text); font-weight: 700; }
.section__lead { margin: 0 0 var(--sp-3); }

/* プライベートツアー（特別感）とセルフツアー（気軽さ）の描き分け (2026-10-23)。色は仮。デザイン担当が決める */
:root { --c-premium-bg: #1f1f1f; --c-premium-text: #f4f4f4; --c-premium-accent: #c9b27a; --c-casual-bg: #f6f3ec; }
.section--premium { background: var(--c-premium-bg); color: var(--c-premium-text); padding: var(--sp-5) var(--sp-4); }
.section--premium .section__lead, .section--premium .note { color: var(--c-premium-text); }
.section--premium .card { background: var(--c-premium-bg); border-color: #444; }
.explainer--premium { background: var(--c-premium-bg); color: var(--c-premium-text); border-color: var(--c-premium-accent); padding: var(--sp-4); }
.explainer--premium li span { color: #cfcfcf; }
.explainer--premium a { color: var(--c-premium-accent); }
.card--premium .price { font-size: var(--t-title); }
.card__incl { font-size: var(--fs-small); border-left: 3px solid var(--c-premium-accent); padding-left: var(--sp-2); margin: var(--sp-1) 0 var(--sp-2); }
.section--casual { background: var(--c-casual-bg); padding: var(--sp-5) var(--sp-4); }
.explainer--casual { background: var(--c-casual-bg); border-style: dashed; }
.card__ref { margin: var(--sp-2) 0 0; } .card__ref-label { display: inline-block; border: 1px solid var(--c-line); padding: 0 6px; font-size: var(--fs-small); margin-right: 4px; }
.card__ref .price__note { display: block; color: var(--c-text-weak); font-size: var(--t-2xs); }
.cost__big { font-size: var(--t-title); font-weight: 700; margin: 0 0 var(--sp-2); }
.info-table--move td { font-size: var(--fs-small); min-width: 8em; }
@media (max-width: 600px) { .section--premium, .section--casual { padding: var(--sp-4) var(--sp-3); margin-left: calc(-1 * var(--sp-3)); margin-right: calc(-1 * var(--sp-3)); } }
@media (max-width: 767px) { .lang-switch .only-sp { display: inline; margin: 0; } }
/* セルフツアーの立ち寄り先の写真 */
.stop__img { max-width: 420px; margin-bottom: var(--sp-2); }
@media (min-width: 768px) { .stop__body { display: grid; grid-template-columns: 320px 1fr; column-gap: var(--sp-4); align-items: start; } .stop__img { grid-row: 1 / span 20; margin: 0; } }

/* 行きたい場所（候補）→ 旅程ページで日に並べる (2026-10-23) */
.btn--add.is-added { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); border-style: solid; } /* 追加済みは塗りでひと目で分かるように */
.wish__n { display: inline-block; min-width: 1.6em; text-align: center; border-radius: 999px; background: var(--c-primary); color: var(--c-on-primary); font-size: var(--fs-small); }
.wish__del { border: 0; background: none; font-size: var(--t-title); cursor: pointer; line-height: 1; }
.btn--block { display: block; width: 100%; text-align: center; }
.stop__time { margin: 0; font-weight: 700; } .stop__time span { font-weight: 400; color: var(--c-text-weak); margin-left: 4px; }
.dos { list-style: none; padding: 0; margin: 0 0 var(--sp-2); display: flex; flex-wrap: wrap; gap: 6px; }
.dos li { border: 1px solid var(--c-line); border-radius: 999px; padding: 2px 10px; font-size: var(--fs-small); }
.plan__switch { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.plan__title { flex: 1 1 12em; min-width: 0; font: inherit; font-size: var(--t-title); font-weight: 700; border: 0; border-bottom: 1px dashed var(--c-line); padding: 2px 0; background: transparent; }
.plan__manage { flex-basis: 100%; font-size: var(--fs-small); } .plan__manage summary { cursor: pointer; color: var(--c-text-weak); }
/* 2026-10-23 レビュー反映 */
.entry__link { display: block; text-decoration: none; }
.entry__sub { margin: var(--sp-2) 0 0; font-size: var(--fs-small); }
.plan__time-in { font: inherit; font-weight: 700; width: auto; min-width: 0; padding: 0 2px; }
.plan__start input { font: inherit; padding: 0 2px; }
.plan__booked { display: inline-flex; align-items: center; gap: 2px; font-size: var(--t-2xs); }
.plan__booked-mark { font-size: var(--fs-small); margin-left: auto; white-space: nowrap; }
.plan__booked-note, .print-sheet__note { font-size: var(--fs-small); border-left: 3px solid var(--c-text); padding: var(--sp-1) var(--sp-2); margin: var(--sp-2) 0; }
.dialog__field { display: block; margin-top: var(--sp-2); }
.section[id] { scroll-margin-top: 8rem; }
.shared-banner__ops { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin: 0; }
.plan__cond-text { margin: var(--sp-2) 0; grid-template-columns: repeat(auto-fill, minmax(10em, 1fr)); }
.plan__cond-text div { min-width: 0; } .plan__cond-text dt { color: var(--c-text-weak); } .plan__cond-text dd { margin: 0; overflow-wrap: anywhere; }
.plan__shared-info h3 { margin-bottom: 0; }
.plan__bad { border: 1px solid var(--c-line); padding: var(--sp-3); }
.explore__empty { border: 1px dashed var(--c-line); padding: var(--sp-4) var(--sp-3); text-align: center; }

/* review round 4 */
.stop__audio { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.stop__audio p { margin: 0; }
.plan__item--gone .plan__name, .pick--gone .plan__name { color: var(--c-text-weak); }
.place-gone { margin: var(--sp-5) 0; }
.states { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); align-items: start; }
.states__col { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3); min-width: 0; }
.states__when { margin: 0 0 var(--sp-2); font-size: var(--fs-small); color: var(--c-text-weak); }
@media (max-width: 767px) { .states { grid-template-columns: 1fr; } }

/* AI 提案の入口（トップの旅の選び方の下・旅程ページの見出しの横） */
.entry-alt { margin: var(--sp-3) 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.page-title__tools { margin: calc(-1 * var(--sp-2)) 0 var(--sp-3); }
.plan__alt { margin: var(--sp-2) 0 0; text-align: center; }
/* 音声ガイドがあると：2つの読み手に向けた2つの枠（スマホは縦に並べる） */
.audio-why { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.audio-why__col { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3); min-width: 0; }
.audio-why__col h3 { margin: 0 0 var(--sp-2); font-size: var(--t-md); }
.audio-why__col p { margin: 0; line-height: 1.8; }
@media (max-width: 767px) { .audio-why { grid-template-columns: 1fr; } }

/* 2026-10-23 ペルソナレビューの直し */
.tag--link { text-decoration: none; cursor: pointer; } .tag--link:hover { text-decoration: underline; }
.entry__sub--car strong { margin-right: var(--sp-1); }
.plan__entry { border: 1px solid var(--c-line); padding: var(--sp-2) var(--sp-3); margin: 0 0 var(--sp-3); display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); align-items: center; }
.plan__entry legend { font-weight: 700; padding: 0 var(--sp-1); }
.plan__entry-by { display: flex; gap: var(--sp-3); }
.plan__cond-edit .plan__entry { margin: 0 0 var(--sp-2); }
.plan__check { display: flex; gap: var(--sp-1); align-items: center; }
.plan__drive-note { margin: var(--sp-1) 0 0; } /* 飲酒の一文（v3.19）：赤にせず、注記と同じ控えめな1行 */
.is-shared .site-header .plan-toggle { display: none; } /* 閲覧のみのページでは自分の旅程の件数を出さない */
.shared-meta { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); margin: var(--sp-3) 0; font-size: var(--fs-h3); }
.shared-meta div { display: flex; gap: var(--sp-2); } .shared-meta dt { color: var(--c-text-weak); } .shared-meta dd { margin: 0; font-weight: 700; }
.shared-version { font-size: var(--t-2xs); color: var(--c-text-weak); margin-top: var(--sp-4); }
.dialog__name { margin-top: var(--sp-1); }
.group-line { font-size: var(--fs-small); }
.explore__closed { font-size: var(--fs-small); color: var(--c-info); background: var(--c-info-bg); padding: var(--sp-1) var(--sp-2); }
.suggest__reason { border-left: 3px solid var(--c-text); padding-left: var(--sp-2); }
/* スマホでは表を1行ずつのカードにする（横スクロールをなくす）。見出しは各セルの前に data-label で出す */
@media (max-width: 767px) {
  .table-wrap { overflow-x: visible; }
  .info-table, .info-table tbody, .info-table tr, .info-table th, .info-table td { display: block; width: auto; }
  .info-table thead { display: none; }
  .info-table tr { border: 1px solid var(--c-line); margin-bottom: var(--sp-2); }
  .info-table th, .info-table td { border: 0; border-top: 1px solid var(--c-line); min-width: 0; }
  .info-table tr > :first-child { border-top: 0; font-weight: 700; background: var(--c-surface); }
  .info-table td[data-label]::before { content: attr(data-label); display: block; font-size: var(--t-2xs); color: var(--c-text-weak); }
}

/* 音声ガイドの試聴（代表の1本） */
.audio-sample { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3); margin: var(--sp-4) 0; }
.audio-sample--compact { margin: var(--sp-3) 0; }
.audio-sample__where { font-weight: 700; margin: 0 0 var(--sp-2); }
.audio-sample__langs { display: flex; flex-wrap: wrap; gap: var(--sp-1); margin: var(--sp-2) 0; }
.audio-sample__lang-label { align-self: center; font-size: var(--fs-small); }
.audio-sample .chip { font: inherit; font-size: var(--t-sm); padding: 2px 10px; border: 1px solid var(--c-line); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
.audio-sample .chip[aria-pressed="true"] { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
.audio-sample__script { margin: var(--sp-2) 0 0; padding: var(--sp-2) var(--sp-3); border-left: 3px solid var(--c-line); line-height: 1.9; }

/* 旅程の表示「概要／詳しく」（v3.11）。詳しくはセルフツアーの立ち寄り先と同じ文・タグ・表 */
.page-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); }
.page-title-row > h1, .page-title-row > h3 { margin-right: auto; }
.view-seg { display: inline-flex; flex: none; border: 1px solid var(--c-text); border-radius: 999px; overflow: hidden; vertical-align: middle; }
.view-seg button { font: inherit; font-size: var(--t-sm); padding: 4px 14px; border: 0; background: transparent; color: inherit; cursor: pointer; }
.view-seg button + button { border-left: 1px solid var(--c-text); }
.view-seg button[aria-pressed="true"] { background: var(--c-primary); color: var(--c-on-primary); }
[data-itin-root]:not(.is-full) .v-full { display: none; }
[data-itin-root].is-full .v-sum { display: none; }
.plan__item .itin__why, .tt__body .itin__why { margin: 4px 0 0; }
.plan__item .dos, .tt__body .dos { margin: var(--sp-1) 0 0; }
.plan__item .facts, .tt__body .facts { margin: var(--sp-1) 0 0; }
.plan__item .facts dd, .tt__body .facts dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }

/* 旅程の名前（入力欄と分かる形）・旅程の管理・集合場所（たたまない）（v3.11） */
.plan__name-field { flex: 1 1 14em; min-width: 0; display: grid; gap: 2px; }
.plan__name-label { font-size: var(--fs-small); color: var(--c-text-weak); }
.plan__name-hint { font-size: var(--fs-small); color: var(--c-text-weak); }   /* v3.14 7-2：名前の欄のヒント */
.plan__switch .plan__title { width: 100%; box-sizing: border-box; font-size: var(--t-title); font-weight: 700; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 6px 10px; background: var(--c-bg); }
.plan__switch .plan__title:hover, .plan__switch .plan__title:focus { border-color: var(--c-text); }
.plan__manage { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-1) var(--sp-3); }
.plan__manage .note { margin: 0; }
.plan__start-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(14em, 100%), 1fr)); gap: var(--sp-2); max-width: 48em; }
.plan__start-links .btn { width: 100%; justify-content: center; text-align: center; }

/* ---------- v3.11（2026-10-24）エリア・泊まる・ワーケーション・選ぶ人 ---------- */
.why { margin: var(--sp-1) 0; padding: var(--sp-1) var(--sp-2); border-left: 3px solid var(--c-line); background: var(--c-surface); }
.why p { margin: 0; } .why__who { font-size: var(--t-2xs); color: var(--c-text-weak); } .why__text { font-size: var(--fs-small); }
.detail__main > .why { margin: var(--sp-3) 0; } .detail__main > .why .why__text { font-size: inherit; }
.for-tags { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 0; }
.for-tags__label { font-size: var(--t-2xs); color: var(--c-text-weak); margin-right: 2px; }
.tag--for { background: var(--c-bg); border-style: dashed; }
.zones { display: grid; gap: var(--sp-3); grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: start; }
.card-grid--zones { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.zone__towns { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; } .zone__town { font-size: var(--t-2xs); border: 1px solid var(--c-line); padding: 0 4px; }
.zone__hl { margin: 0; padding-left: 1.2em; } .zone__hl-note { color: var(--c-text-weak); font-size: var(--t-2xs); }
.map__mark--stay rect { fill: var(--c-primary); } .map__mark--see circle { fill: var(--c-bg); stroke: var(--c-text); stroke-width: 1.5; }
.map__legend { position: absolute; bottom: var(--sp-1); right: var(--sp-2); margin: 0; font-size: var(--t-2xs); background: var(--c-bg); padding: 0 4px; }
.map__key { display: inline-block; width: 10px; height: 10px; margin: 0 2px 0 6px; vertical-align: middle; }
.map__key--stay { background: var(--c-primary); } .map__key--see { border: 1.5px solid var(--c-text); border-radius: 50%; }
.picks { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.picks__col h3 { margin: 0 0 var(--sp-1); font-size: var(--t-ui); } .picks__list { margin: 0; padding: 0; list-style: none; counter-reset: pk; }
.picks__list li a { display: flex; align-items: center; gap: var(--sp-2); padding: 4px 0; }
.picks__thumb { width: 56px; height: 40px; object-fit: cover; flex: none; background: var(--c-surface-2); }
.teaser { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--sp-3); align-items: center; }
.teaser__text .section__title { margin-top: 0; }
.stay-type__list { margin: 0; padding-left: 1.2em; font-size: var(--fs-small); } .stay-type__area { color: var(--c-text-weak); font-size: var(--t-2xs); }
.overnight { list-style: none; padding: 0; display: grid; gap: var(--sp-3); grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr) minmax(0, 1fr); align-items: start; }
.overnight > li { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-2); }
.overnight__night { background: var(--c-surface); } .overnight__no { margin: 0 0 var(--sp-1); font-weight: 700; } .overnight h3 { margin: var(--sp-1) 0 0; font-size: var(--t-ui); }
.overnight__meta, .overnight__area { color: var(--c-text-weak); font-size: var(--fs-small); margin: 0; } .overnight__inns { margin: 0; padding-left: 1.2em; }
.bases { display: grid; gap: var(--sp-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.base { border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3); }
.base h3 { margin: 0 0 var(--sp-1); } .base__zone { margin: 0; font-size: var(--fs-small); }
.base--main { grid-column: 1 / -1; border-width: 2px; border-color: var(--c-text); } .base--main h3 { font-size: var(--t-xl); }
.base__inns { padding-left: 1.2em; margin: var(--sp-2) 0 0; } .base__price { color: var(--c-text-weak); font-size: var(--fs-small); }
.drive__zone { display: block; font-size: var(--t-2xs); font-weight: 400; color: var(--c-text-weak); }
.zone-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-3); align-items: center; margin-bottom: var(--sp-3); }
.zone__times, .zone__near, .zone__stops { padding-left: 1.2em; } .zone__times span, .zone__near span, .zone__stops span { color: var(--c-text-weak); font-size: var(--fs-small); }
.zone__time { font-weight: 700; color: var(--c-text) !important; margin-right: var(--sp-1); }
.zone__model { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-3); align-items: start; }
.entry--q h3 { margin-top: 0; } .entry-grid--two { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.card--office { margin-top: var(--sp-3); }
.licence { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--sp-3); }
.licence__col { border: 1px solid var(--c-line); padding: var(--sp-2) var(--sp-3); border-radius: var(--radius); } .licence__col h4 { margin: 0 0 var(--sp-1); }
.facts--sheet { display: grid; gap: var(--sp-1); max-width: 52em; } .facts--sheet > div { display: grid; grid-template-columns: 8em minmax(0, 1fr); gap: var(--sp-2); } .facts--sheet ul.list { margin: 0; padding-left: 1.2em; }   /* 概要は1行に1項目（v3.23） */
.flow { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-2); counter-reset: fl; }
.flow__step { border: 1px solid var(--c-line); padding: var(--sp-2); display: flex; flex-direction: column; gap: 4px; position: relative; }
.flow__step::before { counter-increment: fl; content: counter(fl); font-weight: 700; } .flow__days { font-size: var(--t-2xs); color: var(--c-text-weak); }
.materials { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.media-themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-2); }
.media-theme { text-decoration: none; color: inherit; } .media-theme span { display: block; font-weight: 700; margin-top: 4px; }
.curators { display: grid; gap: var(--sp-4); }
.curator { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: var(--sp-3); border-top: 1px solid var(--c-line); padding-top: var(--sp-3); }
.curator__photo { aspect-ratio: 1; border: 1px dashed var(--c-line); background: var(--c-surface-2); display: flex; align-items: center; justify-content: center; color: var(--c-text-weak); font-size: var(--fs-small); border-radius: 50%; position: relative; overflow: hidden; }
.curator__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.curator h2 { margin: 0 0 var(--sp-1); font-size: var(--t-md); } .curator__picks { padding-left: 1.2em; }
.plan__staypick { border: 1px dashed var(--c-text); border-radius: var(--radius); padding: var(--sp-2); margin: var(--sp-2) 0; }
.plan__staypick-title { margin: 0 0 var(--sp-1); font-weight: 700; } .plan__staypick ul { list-style: none; margin: 0; padding: 0; }
.plan__staypick li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-1) var(--sp-2); padding: 4px 0; border-bottom: 1px solid var(--c-surface-2); }
.plan__staypick li .btn { margin-left: auto; padding: 2px var(--sp-2); } .plan__staypick p { margin: var(--sp-1) 0 0; }
@media (max-width: 760px) {
  .zones, .teaser, .zone-head, .zone__model, .overnight, .bases { grid-template-columns: minmax(0, 1fr); }
  .flow { grid-template-columns: minmax(0, 1fr); } .media-themes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .curator { grid-template-columns: 96px minmax(0, 1fr); }
  .map__legend { position: static; padding: var(--sp-1) var(--sp-2); }
}
.map--zones { aspect-ratio: auto; min-height: 0; } .map--zones svg { height: auto; }
.zones { grid-template-columns: minmax(0, 1fr); } .zones .map { max-width: 640px; width: 100%; }
.plan__ai { display: flex; flex-wrap: wrap; gap: var(--sp-1); align-items: center; margin: var(--sp-2) 0; } .plan__ai-title { margin: 0 var(--sp-1) 0 0; width: 100%; font-size: var(--fs-small); color: var(--c-text-weak); }
@media (max-width: 760px) { .section--stay .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); } .card--stay-type .card__title { font-size: var(--t-ui); } .card--stay-type .card__lead { font-size: var(--fs-small); } }
.map--zones { max-width: 720px; width: 100%; }
/* 物語の記事（v3.11）：主張を大きく、3つの見どころ、体験できる場所（施設のカード）、体験する方法、出典 */
.story-head { margin-bottom: var(--sp-5); }
.story-claim { font-size: clamp(1.25rem, 3.2vw, 1.6rem); line-height: 1.6; font-weight: 600; margin: var(--sp-4) 0 0; padding: var(--sp-3) 0 var(--sp-3) var(--sp-3); border-left: 4px solid var(--c-text); }
.story-part { margin: var(--sp-5) 0; } .story-part h2 { display: flex; gap: var(--sp-2); align-items: baseline; }
.story-part__num { flex: none; font-size: 0.85em; min-width: 1.6em; height: 1.6em; line-height: 1.6em; text-align: center; border: 1px solid var(--c-text); border-radius: 50%; }
.cite { font-size: 0.7em; line-height: 0; } .cite a { text-decoration: none; padding: 0 1px; }
.story-places { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--sp-4); }
.story-place { display: flex; flex-direction: column; min-width: 0; border-top: 2px solid var(--c-text); padding-top: var(--sp-2); } .story-place__note { margin: 0 0 var(--sp-2); } .story-place .card { flex: 1; }
.story-place__name { margin: 0 0 var(--sp-1); }
.story-how__list { list-style: none; padding: 0; display: grid; gap: var(--sp-3); }
.story-how__item { background: var(--c-surface); padding: var(--sp-3); } .story-how__item h3 { margin: 0 0 var(--sp-1); } .story-how__item p:last-child { margin-bottom: 0; }
.sources { margin-top: var(--sp-6); border-top: 1px solid var(--c-line); font-size: var(--fs-small); }
.sources__list { padding-left: 1.6em; } .sources__list li { margin: var(--sp-1) 0; overflow-wrap: anywhere; } .sources__list li:target { background: var(--c-surface-2); }
.sources__host { color: var(--c-text-weak); }
/* トップの旅の選び方（v3.20）：同じ重さの2枚の選択肢。押した方は線を太くし、下にカードが開く。スマホでも2枚を横に並べる（切り替えやすいように） */
.choose { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.choose__card { position: relative; border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3); min-width: 0; background: var(--c-bg); }
.choose__card:hover { border-color: var(--c-text); }
.choose__card.is-open { border: 3px solid var(--c-text); padding: calc(var(--sp-3) - 2px); background: var(--c-surface); }
.choose__title { margin: 0 0 var(--sp-2); font-size: var(--t-md); }
.choose__btn { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; text-decoration: none; }
.choose__btn::after { content: ""; position: absolute; inset: 0; } /* 枠のどこを押しても選べる */
.choose__btn:focus-visible { outline: none; } .choose__card:has(.choose__btn:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.choose__sep { color: var(--c-text-weak); }
.choose__price { font-weight: 700; margin: 0 0 var(--sp-1); }
.choose__lead { margin: 0; font-size: var(--fs-small); }
.choose__panel { margin-top: var(--sp-3); }
/* v3.25：開いている選択肢から下の区画へ三角でつなぐ（どちらを見ているかを形で示す） */
.choose__card.is-open::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 12px solid transparent; border-bottom-width: 0; border-top-color: var(--c-text); }
.choose__card { cursor: pointer; }
.choose__panel--private { background: var(--c-premium-bg); color: var(--c-premium-text); padding: var(--sp-4); }
.choose__panel--private .card { background: var(--c-premium-bg); border-color: #444; }
.choose__panel--self { background: var(--c-casual-bg); padding: var(--sp-4); }
.ways { list-style: none; padding: var(--sp-3) 0 0; margin: var(--sp-4) 0 0; border-top: 1px solid var(--c-line); display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); font-size: var(--fs-small); }
.ways__note { color: var(--c-text-weak); } .ways__car strong { margin-right: var(--sp-1); }
@media (max-width: 600px) {
  .choose { gap: var(--sp-2); }
  .choose__card { padding: var(--sp-2); } .choose__card.is-open { padding: calc(var(--sp-2) - 2px); }
  .choose__title { font-size: var(--t-ui); } .choose__sep { display: block; height: 0; overflow: hidden; }
  .choose__price { font-size: var(--fs-small); } .choose__lead { font-size: var(--t-xs); }
  .choose__panel--private, .choose__panel--self { padding: var(--sp-3); margin-left: calc(-1 * var(--sp-3)); margin-right: calc(-1 * var(--sp-3)); }
  .ways { flex-direction: column; }
}
.nowrap{white-space:nowrap}
/* ページの最初の説明（v3.23） */
.page-intro { max-width: 46em; margin: var(--sp-3) 0; } .page-intro__links { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); list-style: none; padding: 0; margin: var(--sp-2) 0 0; }
.zone__for { font-size: var(--t-sm); margin: 0; }
.zone__town-list { display: grid; gap: var(--sp-1); margin: var(--sp-2) 0; } .zone__town-list div { display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: var(--sp-2); } .zone__town-list dt { font-weight: 600; } .zone__town-list dd { margin: 0; }
.section--work-intro p { max-width: 46em; }
.audio-places { display: grid; grid-template-columns: repeat(auto-fill, minmax(14em, 1fr)); gap: var(--sp-1) var(--sp-3); padding-left: 1.2em; margin: var(--sp-2) 0; }   /* トップの音声ガイドのある8か所（v3.23） */
/* 楽しみ方のポイント（v3.23） */
.tips { list-style: none; padding: 0; margin: 0 0 var(--sp-2); display: grid; gap: var(--sp-2); max-width: 46em; }
.tip { border-left: 3px solid var(--c-line); padding-left: var(--sp-2); } .tip__text { margin: 0; } .tip__who { margin: 4px 0 0; font-size: var(--fs-small); color: var(--c-sub, #555); }
.story-add-all { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; margin-top: var(--sp-3); }
/* フッターの全ページのリンク（v3.23） */
.site-footer__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(12em, 1fr)); gap: var(--sp-3) var(--sp-4); margin-bottom: var(--sp-4); }
.site-footer__head { font-size: var(--t-sm); margin: 0 0 var(--sp-1); } .site-footer__group li { font-size: var(--t-xs); margin: 2px 0; }

/* r26（Takeru 2026-10-24）：旅程と AI の提案の画像を、セルフツアーの立ち寄り先と同じ大きさ（PC 320px・3:2、スマホは幅いっぱい最大420px）にする */
.plan-page .plan__item--thumb, .suggest__stops .plan__item--thumb { grid-template-columns: 1fr; }
.plan-page .plan__thumb, .suggest__stops .plan__thumb { width: 320px; max-width: 100%; height: auto; aspect-ratio: 3/2; }
.tt__stop { grid-template-columns: 5.5em 320px 1fr; }
@media (max-width: 767px) {
  .plan-page .plan__thumb, .suggest__stops .plan__thumb { width: 100%; max-width: 420px; }
  .tt__stop { grid-template-columns: 4em 1fr; } .tt__img { max-width: 420px; }
}
/* r26：「概要／詳しく」は日の並びのすぐ上に置き、スクロールしても見える位置に留める */
.itin-view-row { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) 0; margin: var(--sp-2) 0; background: var(--c-bg); border-bottom: 1px solid var(--c-line); }
.itin-view-row__label { font-weight: 700; }
@media (min-width: 768px) { .itin-view-row { position: sticky; top: var(--hdr-h, 0px); z-index: 5; } }   /* スマホは画面の上を固定要素で埋めない */
.itin-view-row .view-seg button { font-size: var(--t-meta); padding: 6px 18px; }
.choose__panel--private .btn--link { color: var(--c-premium-text); }
/* r26：施設の写真が届くまで画像がない項目は、写真の列をつめる */
.itin__item:not(:has(.itin__thumb)) { grid-template-columns: 4em 1fr; }
.plan__staypick .plan__thumb { width: 56px; height: auto; aspect-ratio: 3/2; }
@media (max-width: 767px) { .tt__img { grid-column: 1 / -1; width: 100%; } }

/* ==========================================================================
   v2 デザイン（2026-10-25）。ワイヤーは伝える内容の整理として使い、伝え方を作り直す。
   書体は Zen Kaku Gothic New 1系統、色は淵の深緑1色を広い面で使う。角は切らない（0）。
   ========================================================================== */
:root {
  --c-bg: var(--semantic-color-surface-default);
  --c-surface: var(--semantic-color-surface-muted);
  --c-surface-2: #e4e4e4;
  --c-text: var(--semantic-color-text-primary);
  --c-text-weak: var(--semantic-color-text-muted);
  --c-line: var(--semantic-color-border-default);
  --c-primary: var(--semantic-color-surface-emphasis);
  --c-deep: var(--semantic-color-surface-deep);
  --c-on-primary: var(--semantic-color-text-inverse);
  --c-accent: var(--semantic-color-text-accent);
  --c-focus: var(--semantic-color-focus-default);
  --font: var(--semantic-font-family-body);
  --fs-body: var(--semantic-font-size-body); --fs-small: var(--semantic-font-size-caption); --fs-lead: var(--semantic-font-size-lead);
  --fs-h1: clamp(2.75rem, 1rem + 5.6vw, var(--semantic-font-size-display));
  --fs-h2: clamp(1.75rem, 1.2rem + 1.8vw, var(--semantic-font-size-heading)); --fs-h3: 1.25rem;
  --lh: var(--semantic-font-line-height-body);
  --sp-1: var(--semantic-space-xs); --sp-2: var(--semantic-space-sm); --sp-3: var(--semantic-space-md); --sp-4: var(--semantic-space-lg); --sp-5: var(--semantic-space-xl); --sp-6: var(--semantic-space-section);
  --radius: var(--semantic-radius-card);
  --w-max: var(--semantic-size-content);
  --gutter: clamp(1rem, 4vw, 3rem);
  --wrap: min(calc(var(--w-max) - 2 * var(--gutter)), calc(100% - 2 * var(--gutter)));
}
:root {
  /* 文字の大きさ（tokens.json の semantic.font.size）。直接の px・rem は使わない */
  --t-2xs: var(--semantic-font-size-2xs); --t-xs: var(--semantic-font-size-xs); --t-sm: var(--semantic-font-size-sm); --t-meta: var(--semantic-font-size-meta);
  --t-ui: var(--semantic-font-size-ui); --t-body: var(--semantic-font-size-body); --t-md: var(--semantic-font-size-md); --t-title: var(--semantic-font-size-title);
  --t-lead: var(--semantic-font-size-lead); --t-xl: var(--semantic-font-size-xl);
  --ls-eyebrow: var(--semantic-font-letter-spacing-eyebrow); --ls-label: var(--semantic-font-letter-spacing-label);
  --radius-pill: var(--semantic-radius-pill);
  --dur-fast: var(--semantic-motion-duration-fast); --dur-slow: var(--semantic-motion-duration-slow); --ease: var(--semantic-motion-easing-standard);
}
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { font-size: var(--fs-body); line-height: var(--lh); font-family: var(--font); font-feature-settings: "palt" 0; color: var(--c-text); background: var(--c-bg); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .display { font-feature-settings: "palt" 1; word-break: auto-phrase; font-weight: var(--semantic-font-weight-heading); letter-spacing: .02em; line-height: var(--semantic-font-line-height-heading); }
h1 { font-size: var(--fs-h1); font-weight: var(--semantic-font-weight-display); line-height: var(--semantic-font-line-height-display); letter-spacing: .01em; margin: 0; }
h2 { font-size: var(--fs-h2); margin: 0 0 var(--sp-4); }
h3 { font-size: var(--fs-h3); margin: 0; }
p, li, dd { word-break: auto-phrase; overflow-wrap: anywhere; }   /* 文節が列より長いときだけ文字で折り、横にはみ出さない（見出しの 89 行目と同じ） */
a { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
a:hover { color: var(--c-accent); }
:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 3px; }
img { max-width: 100%; display: block; }
.skip:not(:focus) { left: 0; top: 0; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* 本文の幅。写真の全幅は .bleed */
main { max-width: none; padding: 0 0 var(--sp-6); }
main > * { width: var(--wrap); margin-left: auto; margin-right: auto; }
main > .bleed, main > .hero { width: 100%; }
/* Standalone blocks keep the page gutter even when their own margin resets it. */
main > :is(.page-intro, .page-title__tools, .audio-sample, .explainer, .place-gone, .plan__drive-note) { margin-inline: auto; }
main > .page-intro { max-width: none; }
main > .page-intro > p { max-width: 46em; }

/* ヘッダー */
.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: var(--sp-5); padding: 14px var(--gutter); background: var(--c-bg); border-bottom: 1px solid var(--c-line); }
.site-header__logo { display: flex; flex-direction: column; line-height: 1.2; text-decoration: none; font-weight: 900; font-size: var(--t-title); letter-spacing: .02em; }
.site-header__place, .site-header__logo span { font-weight: 400; font-size: var(--t-2xs); letter-spacing: .04em; color: var(--c-text-weak); }
.site-nav ul { display: flex; gap: var(--sp-4); list-style: none; margin: 0; padding: 0; }
.site-nav a { text-decoration: none; font-weight: 700; font-size: var(--t-meta); }
.site-nav a[aria-current] { color: var(--c-accent); box-shadow: none; }
.lang-switch { margin-left: auto; font-size: var(--t-sm); }
.lang-switch a { font-weight: 700; }
.lang-switch__more { color: var(--c-text-weak); }
.plan-toggle { font: inherit; font-weight: 700; color: var(--c-on-primary); background: var(--c-primary); border: 0; border-radius: var(--radius); padding: 10px 18px; cursor: pointer; }
.plan-toggle__count { display: inline-block; min-width: 1.6em; margin-left: 6px; background: var(--c-on-primary); color: var(--c-primary); border-radius: var(--radius); text-align: center; font-size: var(--t-xs); }

/* 写真 */
.media { position: relative; margin: 0; overflow: hidden; background: var(--c-surface); border-radius: var(--radius); }
.media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.media__ph { display: none; }

/* 区画 */
.section { margin: var(--sp-6) auto; }
.section__title { border: 0; padding: 0; }
.section__lead { color: var(--c-text-weak); }
.eyebrow, .hero__kicker { margin: 0 0 var(--sp-3); font-size: var(--t-xs); font-weight: 700; letter-spacing: .16em; text-transform: none; color: var(--c-accent); font-feature-settings: "palt" 1; }

/* ボタンとリンク */
.btn { display: inline-block; font: inherit; font-weight: 700; text-decoration: none; text-align: center; border-radius: var(--radius); padding: 12px 24px; border: 1px solid var(--c-text); background: transparent; color: var(--c-text); cursor: pointer; }
.btn:hover { background: var(--c-text); color: var(--c-bg); }
.btn--primary { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.btn--primary:hover { background: var(--c-deep); border-color: var(--c-deep); color: var(--c-on-primary); }
.btn--link { border: 0; padding: 0; background: none; color: var(--c-accent); text-decoration: underline; }
.btn--link:hover { background: none; color: var(--c-text); }

/* カード：囲まない。写真・名前・事実の順に、余白でまとめる */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--sp-5) var(--sp-4); }
.card { display: flex; flex-direction: column; gap: var(--sp-2); border: 0; padding: 0; background: transparent; }
.card__link { display: block; text-decoration: none; color: inherit; }
.card .media { aspect-ratio: 4 / 5; margin-bottom: var(--sp-3); }
.card__kicker { margin: 0 0 var(--sp-1); font-size: var(--t-xs); font-weight: 700; letter-spacing: .08em; color: var(--c-accent); }
.card__title { font-size: var(--t-lead); line-height: 1.4; }
.card__link:hover .card__title { text-decoration: underline; text-underline-offset: .2em; }
.card__lead { margin: 0; font-size: var(--t-meta); color: var(--c-text-weak); }
.card__facts { margin: var(--sp-2) 0 0; padding: var(--sp-3) 0 0; border-top: 1px solid var(--c-line); display: grid; gap: 4px; font-size: var(--t-meta); }
.card__facts div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: var(--sp-2); }
.card__facts dt { color: var(--c-text-weak); }
.card__facts dd { margin: 0; }
.card__price .price { font-size: var(--t-xl); font-weight: 900; font-feature-settings: "palt" 1; }
.card__ref { margin: var(--sp-2) 0 0; font-size: var(--t-md); font-weight: 700; }
.card__ref-label { display: block; font-size: var(--t-xs); color: var(--c-text-weak); border: 0; padding: 0; }
.card__ref .price__note, .price__note { display: block; font-size: var(--t-sm); font-weight: 400; color: var(--c-text-weak); }
.card__incl { margin: 0; font-size: var(--t-sm); border: 0; padding: 0; }

/* 東京から約2時間 */
.section--access-strip { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-4); align-items: baseline; padding: var(--sp-5) 0; border-top: 1px solid var(--c-text); border-bottom: 1px solid var(--c-line); }
.section--access-strip .section__title { grid-column: 1 / span 5; margin: 0; }
.access-strip { grid-column: 6 / -1; list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-2); font-size: var(--t-md); }
.access-strip li { padding-left: 3.5em; text-indent: -3.5em; }
.access-strip strong { display: inline-block; width: 3.5em; text-indent: 0; color: var(--c-accent); }
.section--access-strip > p { grid-column: 6 / -1; margin: 0; }

/* 旅の選び方 */
.choose { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.choose__card { position: relative; padding: var(--sp-5) var(--sp-4); border: 1px solid var(--c-text); border-radius: var(--radius); background: var(--c-bg); cursor: pointer; }
.choose__card.is-open { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-on-primary); }
.choose__card.is-open::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 14px solid transparent; border-bottom-width: 0; border-top-color: var(--c-primary); }
.choose__btn { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; }
.choose__btn::after { content: ""; position: absolute; inset: 0; }
.choose__title { font-size: var(--t-title); margin: 0 0 var(--sp-3); }
.choose__sep { opacity: .5; padding: 0 .25em; }
.choose__price { margin: 0 0 var(--sp-2); font-size: clamp(1.5rem, 1rem + 1.6vw, 2.25rem); font-weight: 900; line-height: 1.3; font-feature-settings: "palt" 1; }
.choose__lead { margin: 0; font-size: var(--t-meta); }
.choose__panel { margin-top: var(--sp-4); padding: var(--sp-5) var(--sp-4); }
.choose__panel--private { background: var(--c-deep); color: var(--c-on-primary); }
.choose__panel--private .card__kicker, .choose__panel--private .btn--link, .choose__panel--private dt, .choose__panel--private .price__note { color: inherit; }
.choose__panel--private .card__facts { border-top-color: rgba(255,255,255,.35); }
.choose__panel--private .btn--primary { background: var(--c-on-primary); color: var(--c-deep); border-color: var(--c-on-primary); }
.choose__panel--self { background: var(--c-surface); }
.choose__more { margin: var(--sp-5) 0 0; }
.ways { list-style: none; padding: 0; margin: var(--sp-4) 0 0; display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); align-items: center; font-size: var(--t-meta); }
.ways > li:not(.ways__car) > a { display: inline-block; border: 1px solid var(--c-text); padding: 10px 18px; text-decoration: none; font-weight: 700; }
.ways > li:not(.ways__car) > a:hover { background: var(--c-text); color: var(--c-bg); }
.ways__note { color: var(--c-text-weak); }
.ways__car a { color: var(--c-accent); font-weight: 700; }

/* 泊まる */
.section--stay .card .media { aspect-ratio: 3 / 2; }
.stay-type__list { margin: var(--sp-2) 0 0; padding: 0; list-style: none; font-size: var(--t-meta); }
.stay-type__list a { font-weight: 700; }
.stay-type__area { color: var(--c-text-weak); font-size: var(--t-xs); margin-left: 4px; }
.section--stay .card__ref { font-size: var(--t-title); font-weight: 900; }

/* ワーケーション */
.teaser { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--sp-4); align-items: end; }
.teaser > .media { grid-column: 1 / span 7; aspect-ratio: 16 / 10; }
.teaser__text { grid-column: 8 / -1; }
.teaser__text .section__title { margin-bottom: var(--sp-3); }

/* 音声ガイド */
.section--audio > .media { aspect-ratio: 21 / 9; margin-bottom: var(--sp-4); }
.audio-places { list-style: none; padding: 0; margin: var(--sp-3) 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(16em, 1fr)); gap: 0 var(--sp-4); }
.audio-places li { border-top: 1px solid var(--c-line); padding: 10px 0; }
.audio-places a { font-weight: 700; text-decoration: none; }
.audio-btn__icon { display: none; }
.audio-sample { background: var(--c-surface); padding: var(--sp-4); border: 0; }
.audio-btn { font: inherit; font-weight: 700; border: 1px solid var(--c-text); background: var(--c-bg); padding: 10px 20px; border-radius: var(--radius); cursor: pointer; }
.audio-sample .chip { font: inherit; font-size: var(--t-sm); border: 1px solid var(--c-line); background: var(--c-bg); padding: 4px 12px; border-radius: var(--radius); cursor: pointer; }
.audio-sample .chip[aria-pressed="true"] { background: var(--c-text); color: var(--c-bg); border-color: var(--c-text); }
.audio-sample__script { border: 0; padding: 0; line-height: 1.9; }

/* お知らせ */
.news { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--c-text); }
.news li { padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); }
.news time { display: inline-block; min-width: 7.5em; color: var(--c-text-weak); font-variant-numeric: tabular-nums; }

/* フッター：淵の深緑の面 */
.site-footer { max-width: none; margin: 0; padding: var(--sp-6) var(--gutter) calc(var(--sp-6) + 24px); background: var(--component-footer-surface, #163a57); color: var(--c-on-primary); border: 0; }
.site-footer a { color: inherit; }
.site-footer__links { display: grid; grid-template-columns: repeat(auto-fill, minmax(12em, 1fr)); gap: var(--sp-5) var(--sp-4); margin-bottom: var(--sp-5); }
.site-footer__head { font-size: var(--t-meta); margin: 0 0 var(--sp-2); }
.site-footer__group ul { list-style: none; margin: 0; padding: 0; }
.site-footer__group li { font-size: var(--t-sm); margin: 6px 0; }
.site-footer__group a { text-decoration: none; }
.site-footer__group a:hover { text-decoration: underline; }
.site-footer__cols { display: grid; grid-template-columns: 2fr 1fr; gap: var(--sp-4); border-top: 1px solid rgba(255,255,255,.3); padding-top: var(--sp-4); }
.site-footer__sns { list-style: none; margin: 0; padding: 0; }
.site-footer .agency-block { border-top: 1px solid rgba(255,255,255,.3); color: inherit; font-size: var(--t-sm); }
.site-footer__small { font-size: var(--t-xs); color: inherit; opacity: .9; }

/* スマホ */
@media (max-width: 767px) {
  :root { --fs-body: 1rem; --fs-lead: 1.125rem; --fs-h1: 2.875rem; --fs-h2: 1.75rem; }
  .site-header { gap: var(--sp-2); padding: 10px var(--gutter); flex-wrap: wrap; }
  .site-header__logo { font-size: var(--t-md); margin-right: auto; }
  .site-header__menu { font: inherit; font-weight: 700; border: 1px solid var(--c-text); background: var(--c-bg); border-radius: var(--radius); padding: 6px 10px; }
  .site-header .plan-toggle { padding: 6px 12px; }
  .site-nav.is-open a { display: block; padding: 12px 0; border-bottom: 1px solid var(--c-line); font-size: var(--t-body); }
  .section { margin: calc(var(--sp-6) * .65) auto; }
  .section--access-strip, .teaser { grid-template-columns: minmax(0, 1fr); }
  .section--access-strip > *, .teaser > * { grid-column: 1 / -1 !important; }
  .choose { gap: var(--sp-2); }
  .choose__card { padding: var(--sp-4) 12px; }
  .choose__title { font-size: var(--t-meta); }
  .choose__sep { display: block; font-size: 0; line-height: 0; }
  .choose__price { font-size: var(--t-title); }
  .choose__lead { font-size: var(--t-sm); }
  .choose__panel, .choose__panel--private, .choose__panel--self { padding: var(--sp-4) var(--sp-3); margin-left: 0; margin-right: 0; } /* ワイヤーの全幅の指定を打ち消す */
  /* 一覧のカードは横にスワイプする列にし、次のカードの端を見せる */
  .choose__panel .card-grid, .section--stay .card-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; grid-template-columns: none; gap: var(--sp-3); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--sp-2); }
  .choose__panel .card-grid > *, .section--stay .card-grid > * { scroll-snap-align: start; min-width: 0; }
  .card .media { aspect-ratio: 4 / 3; }
  .section--audio > .media { aspect-ratio: 3 / 2; }
  .site-footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__cols { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) { html[lang="en"] .site-header__logo { font-size: var(--t-ui); } html[lang="en"] .site-header { gap: 6px; } html[lang="en"] .site-header .plan-toggle { padding: 6px 8px; } }

/* トップの写真：文字を重ねず、写真を暗くしない（ワイヤーの重ねる指定を打ち消す） */
.hero { position: relative; margin: 0; }
.hero .hero__text { position: static; color: inherit; background: none; }
.hero .hero__text p, .hero .hero__text .note { color: inherit; }
.hero .media--hero { aspect-ratio: auto; min-height: 0; }
.hero .hero__text h1 { font-size: var(--fs-h1); margin: 0; }
/* 見出しは文節のまとまりごとにだけ折り返す（S-12） */
h1 .ph { display: inline-block; }
@media (max-width: 767px) { :root { --fs-h1: 2.5rem; } main h1:not(.hero h1) { font-size: min(var(--fs-h1), 11.1vw + 1rem - 20px); } }   /* 390px ではほぼ 2.5rem のまま、狭い幅で 9文字の1語（プライベートツアー）が1行に収まるよう小さくする。rem の項で文字の拡大にも追従する */

/* ---------- トップ（v2）：PC は縦書きの表紙、スマホは写真の下に横書き。旅の選び方は写真付きで、セルフツアーを先に置く ---------- */


.hero { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 var(--sp-4); height: calc(100vh - 74px); min-height: 600px; max-height: 900px; padding: 0 var(--gutter) 0 0; }
.hero .media--hero { grid-column: 1 / span 7; height: 100%; border-radius: 0; }
.hero__text { grid-column: 8 / -1; min-height: 0; overflow: hidden; padding-left: var(--sp-4) !important; display: flex; flex-direction: row-reverse; justify-content: flex-start; align-items: stretch; gap: var(--sp-4); padding: var(--sp-5) 0; height: 100%; position: relative; }
.hero .hero__text h1 { writing-mode: vertical-rl; padding-block-end: .15em; font-size: clamp(3rem, calc((100vh - 180px) / 9.6), 5.5rem); line-height: 1.4; letter-spacing: .06em; height: 100%; text-orientation: mixed; }
.hero .hero__text > p:last-child { writing-mode: vertical-rl; max-height: 100%; margin: 0 0 0 var(--sp-3); font-size: var(--t-md); line-height: 2; letter-spacing: .12em; height: 100%; }
.hero__kicker { position: absolute; left: var(--sp-4); bottom: var(--sp-5); margin: 0; }
@media (min-width: 768px) { .hero .hero__text { position: relative; } }
@media (max-width: 767px) {
  .hero { display: block; height: auto; min-height: 0; max-height: none; padding: 0; }
  .hero .media--hero { height: 62vh; }
  .hero .hero__text, .hero .hero__text h1, .hero .hero__text > p:last-child { writing-mode: horizontal-tb; height: auto; }
  .hero__text { padding-left: 0 !important; }
  .hero__text { display: block; width: var(--wrap); margin: 0 auto; padding: var(--sp-4) 0 0; }
  .hero__kicker { position: static; margin-bottom: var(--sp-2); }
  .hero .hero__text h1 { font-size: 2.5rem; line-height: 1.2; letter-spacing: .01em; }
  .hero .hero__text > p:last-child { max-height: none; margin: var(--sp-3) 0 0; line-height: 1.85; letter-spacing: 0; font-size: var(--t-body); }
}

/* 英語は表紙の列に横書きで組む（縦に寝かせると読めないため） */
@media (min-width: 768px) {
  html[lang="en"] .hero .hero__text { flex-direction: column; justify-content: center; gap: var(--sp-4); }
  html[lang="en"] .hero .hero__text h1, html[lang="en"] .hero .hero__text > p:last-child { writing-mode: horizontal-tb; height: auto; max-height: none; margin: 0; }
  html[lang="en"] .hero .hero__text h1 { font-size: clamp(2.5rem, 1rem + 2.6vw, 3.75rem); line-height: 1.08; letter-spacing: -.01em; }
  html[lang="en"] .hero .hero__text > p:last-child { font-size: var(--t-md); line-height: 1.7; letter-spacing: 0; }
  html[lang="en"] .hero__kicker { position: static; order: -1; }
}
/* 旅の選び方：写真と大きな料金の2枚 */
.section--choose { margin-top: var(--sp-5); }
.choose--photo .choose__card { padding: 0; border: 0; background: var(--c-bg); outline: 1px solid var(--c-text); outline-offset: -1px; }
.choose--photo .choose__card.is-open { background: var(--c-primary); outline-color: var(--c-primary); }
.choose--photo .choose__media { aspect-ratio: 3 / 2; margin-bottom: var(--sp-3); }
.choose--photo .choose__card > :not(.choose__media) { padding: 0 var(--sp-4); }
.choose--photo #choose-private-d, .choose--photo #choose-self-d { padding-bottom: var(--sp-4); }
.choose--photo .choose__price { font-size: clamp(1.625rem, 1rem + 1.8vw, 2.5rem); }
@media (max-width: 767px) {
  .choose--photo { grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); }
  .choose--photo .choose__card > :not(.choose__media) { padding: 0 var(--sp-3); }
  .choose--photo .choose__title { font-size: var(--t-md); }
  .choose--photo .choose__sep { display: inline; font-size: inherit; line-height: inherit; }
  .choose--photo .choose__price { font-size: 1.625rem; }
  .choose--photo .choose__lead { font-size: var(--t-meta); }
}
@media (min-width: 768px) { html[lang="ja"] .hero .hero__text h1 .ph { display: block; padding-inline: 0; padding-block: 2px; } } /* 縦書きでは文節のまとまりを1列ずつに組む */
/* ヘッダーは PC で1段に収める（英語は語が長い） */
@media (min-width: 768px) {
  .site-header { flex-wrap: nowrap; gap: var(--sp-4); }
  .site-nav ul { gap: 20px; }
  .site-nav a { white-space: nowrap; }
  html[lang="en"] .site-nav a { font-size: var(--t-sm); }
  html[lang="en"] .site-header__logo span, html[lang="en"] .site-header__place { white-space: nowrap; }
  .lang-switch { white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1439px) { html[lang="en"] .lang-switch__more { display: none; } }
@media (min-width: 768px) and (max-width: 1199px) { .lang-switch__more { display: none; } }
.plan-toggle { white-space: nowrap; flex: none; }

/* ---------- 批評の直し（v2 iterate 1） ---------- */
/* 主題の4つ（宿場・名水・酒と食・寺）を、リード文の順に写真で並べる（D-8） */
.theme-strip { list-style: none; margin: var(--sp-4) auto 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-2); }
.theme-strip .media { aspect-ratio: 4 / 3; }
@media (max-width: 767px) { .theme-strip { gap: 6px; margin-top: var(--sp-3); } .theme-strip .media { aspect-ratio: 1; } }
/* 本文の下限（スマホ16px・PC17px）に、カードの事実と注記を合わせる */
.card__facts { font-size: var(--fs-body); }
.card__facts dt { font-weight: 700; }
.card__ref .price__note, .price__note, .stay-type__list, .card__lead, .choose__lead, .ways { font-size: var(--t-ui); }
.site-footer__group li { font-size: var(--t-meta); }
@media (min-width: 768px) { html[lang="ja"] .hero .hero__text > p:last-child { font-size: var(--t-title); } }
/* ワーケーション：写真は全幅、文は写真の下の右の列（写真の横に空きを残さない） */
.teaser { align-items: start; }
.teaser > .media { grid-column: 1 / -1; aspect-ratio: 21 / 9; }
.teaser__text { grid-column: 6 / -1; }
/* 泊まる：5件を1行にそろえる */
@media (min-width: 1100px) { .section--stay .card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-3); } }
/* ほかのページの見出しの帯：写真は全幅、文字は本文の幅に */
main > .page-banner { width: 100%; margin: 0; }
.page-banner .media { border-radius: 0; }
.page-banner__text { width: var(--wrap); margin: 0 auto; padding: var(--sp-5) 0 0; }
.page-banner__text h1 { margin: 0; }
/* プライベートツアーの面は淵の深緑に（ワイヤーの黒を置き換える） */
:root { --c-premium-bg: var(--c-deep); --c-premium-text: var(--c-on-primary); --c-premium-accent: var(--c-on-primary); --c-casual-bg: var(--c-surface); }
@media (min-width: 768px) { html[lang="ja"] .hero .hero__text > p:last-child { max-height: calc(100% - 3.5rem); } } /* リード文は下の地名の行の手前で次の列へ送り、重ねない */
/* 写真の帯に、リード文の語を同じ順で添える（原稿の語のまま） */
.theme-strip figure { overflow: visible; background: none; }
.theme-strip .media img { position: static; width: 100%; aspect-ratio: 4 / 3; height: auto; }
.theme-strip__cap { margin-top: var(--sp-2); font-size: var(--t-md); font-weight: 700; font-feature-settings: "palt" 1; }
@media (max-width: 767px) { .theme-strip .media img { aspect-ratio: 1; } .theme-strip__cap { font-size: var(--t-xs); line-height: 1.4; margin-top: 4px; } }
/* 表は項目名を控えめに、値を本文の濃さで */
.card__facts dt { font-weight: 400; color: var(--c-text-weak); }
.card__facts dd { color: var(--c-text); }
@media (max-width: 767px) { .theme-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-2); } .theme-strip .media img { aspect-ratio: 3 / 2; } .theme-strip__cap { font-size: var(--t-ui); margin-top: 6px; } }

/* ---------- v2 iterate 2（評価役の案と木戸さんの指示） ---------- */
/* 主題の写真：名水を軸に大きく置き、宿場町・酒と食・寺の静けさをその横にリード文の順で並べる（水がつなぐ関係を配置で見せる） */
.theme-strip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: repeat(3, auto); gap: var(--sp-3) var(--sp-4); margin-top: var(--sp-5); }
.theme-strip > li:nth-child(2) { grid-column: 1; grid-row: 1 / span 3; }
.theme-strip > li:not(:nth-child(2)) { grid-column: 2; }
.theme-strip > li:nth-child(2) figure { height: 100%; display: flex; flex-direction: column; }
.theme-strip > li:nth-child(2) .media img, .theme-strip > li:nth-child(2) img { flex: 1; min-height: 0; aspect-ratio: auto; object-fit: cover; height: 100%; }
.theme-strip > li:nth-child(2) .theme-strip__cap { font-size: clamp(1.5rem, 1rem + 1.2vw, 2.25rem); font-weight: 900; }
.theme-strip > li:not(:nth-child(2)) figure { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--sp-3); align-items: end; }
.theme-strip > li:not(:nth-child(2)) img { aspect-ratio: 3 / 2; }
.theme-strip > li:not(:nth-child(2)) .theme-strip__cap { margin: 0; font-size: var(--t-title); }
.theme-strip img { border-radius: var(--radius); }
@media (max-width: 767px) {
  .theme-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; gap: var(--sp-3) var(--sp-2); }
  .theme-strip > li:nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
  .theme-strip > li:not(:nth-child(2)) { grid-column: auto; grid-row: 2; }
  .theme-strip > li:nth-child(2) img { aspect-ratio: 3 / 2; height: auto; flex: none; }
  .theme-strip > li:nth-child(2) .theme-strip__cap { font-size: var(--t-xl); }
  .theme-strip > li:not(:nth-child(2)) figure { display: block; }
  .theme-strip > li:not(:nth-child(2)) img { aspect-ratio: 1; }
  .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { margin-top: 6px; font-size: var(--t-ui); line-height: 1.4; }
}

/* 旅の選び方：セルフは白い札、プライベートは淵の深緑の札。写真は札の角に合わせて切り、札と一体にする */
.choose--photo .choose__card { border-radius: var(--radius); overflow: hidden; outline: 0; }
.choose--photo .choose__card--self { background: var(--c-bg); color: var(--c-text); box-shadow: inset 0 0 0 1px var(--c-line); }
.choose--photo .choose__card--private { background: var(--c-deep); color: var(--c-on-primary); }
.choose--photo .choose__card.is-open { background: revert-layer; }
.choose--photo .choose__card--self.is-open { background: var(--c-bg); color: var(--c-text); }
.choose--photo .choose__card--private.is-open { background: var(--c-deep); color: var(--c-on-primary); }
.choose--photo .choose__media { margin: 0 0 var(--sp-4); border-radius: 0; }
.choose--photo .choose__card--self .choose__media { margin: 1px 1px var(--sp-4); }
.choose--photo .choose__card--private .choose__sep, .choose--photo .choose__card--private .choose__lead { opacity: .85; }
/* 開いている札は、地の色を変えずに太い枠と下向きの印で示す */
.choose--photo .choose__card.is-open { outline: 3px solid var(--c-text); outline-offset: 4px; overflow: visible; }
.choose--photo .choose__card.is-open::after { border-top-color: var(--c-text); top: calc(100% + 7px); }
.choose--photo .choose__card.is-open .choose__media { overflow: hidden; border-radius: var(--radius) var(--radius) 0 0; }
.choose__panel { border-radius: var(--radius); }
.choose__panel--self { background: var(--c-surface); color: var(--c-text); }
.choose__panel--private { background: var(--c-deep); color: var(--c-on-primary); }
.choose { gap: var(--sp-4); }

/* カード：写真は角丸、事実は価格と所要時間だけ。旅程に加える操作をカードの下端にそろえる */
.card .media { border-radius: var(--radius); }
.card { height: 100%; }
.card__act { margin: auto 0 0; padding-top: var(--sp-3); }
.card__act .btn { width: 100%; }
.choose__panel--private .card__facts { border-top-color: rgba(255,255,255,.35); }
.choose__panel--private .card__facts dt { color: rgba(255,255,255,.75); }
.choose__panel--private .card__facts dd { color: inherit; }
.btn--small { padding: 6px 12px; font-size: var(--t-sm); margin-left: var(--sp-2); }
.stay-type__list li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--sp-2); padding: 6px 0; border-top: 1px solid var(--c-line); }
.stay-type__list .btn--small { margin-left: auto; }
.btn--add.is-added { background: var(--c-text); color: var(--c-bg); border-color: var(--c-text); }

/* スマホ：横に送る列をやめ、縦に積む */
@media (max-width: 767px) {
  .choose__panel .card-grid, .section--stay .card-grid { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); overflow: visible; gap: var(--sp-5); padding: 0; }
  .card .media { aspect-ratio: 16 / 9; }
  .choose--photo .choose__card.is-open { outline-offset: 3px; }
}
.theme-strip > li, .theme-strip figure { min-width: 0; min-height: 0; } /* 写真の元の幅で格子の列が広がらないようにする */
.theme-strip > li:nth-child(2) img { width: 100%; }
.theme-strip .media { aspect-ratio: auto; }
.choose--photo .choose__price { font-size: clamp(1.5rem, 1rem + 1.2vw, 2rem); }
@media (max-width: 767px) { .choose--photo .choose__price { font-size: var(--t-xl); } }
/* 泊まる：3列にそろえ、宿の名前と追加の操作を別の行にする */
@media (min-width: 1100px) { .section--stay .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); } }
.stay-type__list li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: var(--sp-2) 0; }
.stay-type__list .btn--small { margin-left: 0; justify-self: start; }
/* スマホ：押す操作は幅いっぱい・高さ44px以上。ツアーのカードは写真と名前を1行にして詰める */
@media (max-width: 767px) {
  .btn--add, .card__act .btn, .stay-type__list .btn--small, .ways > li:not(.ways__car) > a { display: block; width: 100%; min-height: 44px; padding: 10px 16px; justify-self: stretch; text-align: center; }
  .choose__panel .card__link { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--sp-3); align-items: center; }
  .choose__panel .card .media { aspect-ratio: 1; margin: 0; grid-row: 1 / span 2; }
  .choose__panel .card__kicker { margin: 0; align-self: end; }
  .choose__panel .card__title { font-size: var(--t-md); align-self: start; }
  .choose__panel .card__link:not(:has(.card__kicker)) > .card__title { grid-row: 1 / span 2; align-self: center; }
  .choose__panel .card__link > .card__kicker { grid-column: 2; grid-row: 1; }
  .choose__panel .card__link > .card__kicker + .card__title { grid-column: 2; grid-row: 2; }
  .choose__panel .card-grid { gap: var(--sp-4); }
}
@media (max-width: 767px) { .choose--photo .choose__price { font-size: var(--t-lead); } .ways > li { width: 100%; } }

/* ---------- v2 iterate 3（木戸さんの指示：言語の切替、写真の添え書き、色、旅の選び方） ---------- */
/* フッターは明るめの主の色の面に */
.site-footer { background: var(--component-footer-surface, #163a57); }
/* 言語の切替：日英だけを小さな切替にまとめる。ワイヤーで準備中の4言語はヘッダーに出さない */
.lang-switch { display: inline-flex; align-items: center; gap: 0; font-size: var(--t-sm); border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.lang-switch__more { display: none !important; }
.lang-switch__current, .lang-switch a { display: inline-block; padding: 6px 12px; line-height: 1.2; }
.lang-switch__current { font-weight: 700; background: var(--c-surface); }
.lang-switch a { text-decoration: none; font-weight: 400; color: var(--c-text-weak); }
.lang-switch a:hover { color: var(--c-text); background: var(--c-surface); }
@media (max-width: 767px) { .lang-switch .lang-switch__current { display: none; } .lang-switch { border: 0; } .lang-switch a { padding: 6px 4px; color: var(--c-text); font-weight: 700; } }

/* 写真の添え書き：表紙と同じ縦書きで、写真の右に上をそろえて置く */
.theme-strip > li figure, .theme-strip > li:nth-child(2) figure, .theme-strip > li:not(:nth-child(2)) figure { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-3); align-items: start; height: 100%; }
.theme-strip > li:nth-child(2) img { height: 100%; }
.theme-strip__cap, .theme-strip > li:nth-child(2) .theme-strip__cap, .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { writing-mode: vertical-rl; margin: 0; font-weight: 700; letter-spacing: .18em; line-height: 1.2; font-feature-settings: "palt" 1; color: var(--c-text); }
.theme-strip > li:nth-child(2) .theme-strip__cap { font-size: clamp(1.75rem, 1rem + 1.6vw, 2.75rem); font-weight: 900; }
.theme-strip > li:not(:nth-child(2)) .theme-strip__cap { font-size: var(--t-md); }
.theme-strip > li:not(:nth-child(2)) img { aspect-ratio: 16 / 9; }
html[lang="en"] .theme-strip__cap { writing-mode: horizontal-tb; letter-spacing: 0; align-self: end; max-width: 9em; }
html[lang="en"] .theme-strip > li figure { grid-template-columns: minmax(0, 1fr) minmax(0, 9em); }
@media (max-width: 767px) {
  .theme-strip > li:nth-child(2) img { aspect-ratio: 3 / 2; height: auto; }
  .theme-strip > li:not(:nth-child(2)) figure { display: block; }
  .theme-strip > li:not(:nth-child(2)) img { aspect-ratio: 1; }
  .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { writing-mode: horizontal-tb; margin-top: var(--sp-2); font-size: var(--t-ui); letter-spacing: .08em; text-align: center; }
  html[lang="en"] .theme-strip__cap { max-width: none; }
  html[lang="en"] .theme-strip > li:nth-child(2) figure { grid-template-columns: minmax(0, 1fr); }
}

/* 旅の選び方：選んだ札が、下の一覧と同じ色でつながる（タブ）。黒い枠と矢印は使わない */
.choose--photo { align-items: stretch; gap: var(--sp-3); margin-bottom: 0; }
.choose--photo .choose__card, .choose--photo .choose__card.is-open { outline: 0; box-shadow: none; overflow: hidden; border-radius: var(--radius); }
.choose--photo .choose__card.is-open::after, .choose--photo .choose__card::after { content: none; }
.choose--photo .choose__card--self, .choose--photo .choose__card--self.is-open { background: var(--semantic-color-surface-champagne); color: var(--c-text); }
.choose--photo .choose__card--private, .choose--photo .choose__card--private.is-open { background: var(--c-deep); color: var(--c-on-primary); }
.choose--photo .choose__card--private .choose__price { color: var(--semantic-color-text-champagne); }
.choose--photo .choose__card--self .choose__media { margin: 0 0 var(--sp-4); }
.choose--photo .choose__card:not(.is-open) { margin-bottom: var(--sp-3); }
.choose--photo .choose__card:not(.is-open) .choose__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.choose--photo .choose__card.is-open { margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.choose--photo .choose__card.is-open .choose__media { border-radius: 0; }
.section--choose .choose__panel { margin-top: 0; }
.choose__panel--self { background: var(--semantic-color-surface-champagne); }
.choose__panel--private { background: var(--c-deep); }
.choose__panel--private .card__kicker, .choose__panel--private .price { color: var(--semantic-color-text-champagne); }
.section--choose:has(.choose__card--self.is-open) .choose__panel--self { border-top-left-radius: 0; }
.section--choose:has(.choose__card--private.is-open) .choose__panel--private { border-top-right-radius: 0; }
.choose__panel--self .btn--primary { background: var(--c-text); border-color: var(--c-text); }
@media (max-width: 767px) {
  /* スマホは札のすぐ下にその一覧を置き、札と一覧をつなげる */
  .section--choose { display: flex; flex-direction: column; }
  .section--choose .choose--photo { display: contents; }
  .section--choose .choose__card--self { order: 1; }
  .section--choose .choose__panel--self { order: 2; }
  .section--choose .choose__card--private { order: 3; margin-top: var(--sp-3); }
  .section--choose .choose__panel--private { order: 4; }
  .section--choose .ways { order: 5; }
  .section--choose:has(.choose__card--self.is-open) .choose__panel--self, .section--choose:has(.choose__card--private.is-open) .choose__panel--private { border-top-left-radius: 0; border-top-right-radius: 0; }
  .choose--photo .choose__card:not(.is-open) { margin-bottom: 0; }
}
.theme-strip__cap, .theme-strip > li:nth-child(2) .theme-strip__cap, .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { line-height: 1.6; padding: 2px 4px; }

/* ---------- v2 iterate 4 ---------- */
/* 言語のメニュー：今の言語のボタンを押すと6言語の一覧が開く。ページのない言語は「準備中」 */
.lang-menu { position: relative; margin-left: auto; font-size: var(--t-sm); }
.lang-menu__btn { list-style: none; cursor: pointer; display: inline-block; padding: 7px 14px; border: 1px solid var(--c-line); border-radius: var(--radius); font-weight: 700; white-space: nowrap; }
.lang-menu__btn::-webkit-details-marker { display: none; }
.lang-menu__btn:hover, .lang-menu[open] .lang-menu__btn { border-color: var(--c-text); }
.lang-menu__list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 12rem; list-style: none; margin: 0; padding: 6px; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius); }
.lang-menu__item { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-3); padding: 9px 12px; border-radius: var(--radius); text-decoration: none; font-size: var(--t-meta); }
a.lang-menu__item:hover { background: var(--c-surface); color: var(--c-text); }
.lang-menu__item.is-current { font-weight: 700; background: var(--c-surface); }
.lang-menu__item.is-soon { color: var(--c-text-weak); }
.lang-menu__item small { font-size: var(--t-2xs); }
@media (max-width: 767px) { .lang-menu { margin-left: 0; order: 2; } .lang-menu__btn { padding: 6px 10px; } .lang-menu__list { right: auto; left: 50%; transform: translateX(-50%); } }

/* 旅の選び方：2つの旅を別のブロックにし、両方の一覧を常に見せる */
.section--choose { display: block; }
.trip { border-radius: var(--radius); overflow: hidden; margin-bottom: var(--sp-5); }
.trip--self { background: var(--semantic-color-surface-champagne); color: var(--c-text); }
.trip--private { background: var(--c-deep); color: var(--c-on-primary); }
.trip .choose__card, .trip .choose__card.is-open { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: 0 var(--sp-5); margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; outline: 0; box-shadow: none; cursor: auto; }
.trip .choose__card::after { content: none; }
.trip .choose__media { grid-row: 1 / span 2; margin: 0 !important; aspect-ratio: 16 / 9; border-radius: 0; }
.trip .choose__card > :not(.choose__media) { padding: 0 var(--sp-5) 0 0 !important; }
.trip .choose__title { align-self: end; margin: var(--sp-4) 0 var(--sp-3); font-size: var(--t-xl); text-decoration: none !important; }
.trip .choose__title a { text-decoration: none; }
.trip .choose__title a::after { content: none; }
.trip .choose__title a:hover { text-decoration: underline; }
.trip #choose-self-d, .trip #choose-private-d { align-self: start; padding-bottom: var(--sp-4) !important; }
.trip .choose__price { font-size: clamp(1.5rem, 1rem + 1.4vw, 2.25rem); }
.trip--private .choose__price, .trip--private .card__kicker, .trip--private .price { color: var(--semantic-color-text-champagne); }
.trip .choose__panel, .trip .choose__panel--self, .trip .choose__panel--private { background: transparent; border-radius: 0; margin: 0; padding: var(--sp-5); }
.trip--private .choose__panel .card__facts { border-top-color: rgba(255,255,255,.3); }
.ways { border-top: 0 !important; padding-top: 0 !important; }
@media (max-width: 767px) {
  .trip .choose__card, .trip .choose__card.is-open { display: block; }
  .trip .choose__media { aspect-ratio: 3 / 2; }
  .trip .choose__card > :not(.choose__media) { padding: 0 var(--sp-3) !important; }
  .trip .choose__title { font-size: var(--t-title); margin: var(--sp-4) 0 var(--sp-2); }
  .trip .choose__sep { display: inline; font-size: inherit; line-height: inherit; }
  .trip .choose__price { font-size: var(--t-lead); }
  .trip .choose__panel { padding: var(--sp-4) var(--sp-3); }
}

/* 北杜に泊まる：線を減らし、余白でまとめる */
.section--stay .stay-type__list li { border-top: 0; padding: 4px 0; }
.section--stay .stay-type__list { margin-top: var(--sp-3); }
.section--stay .card__ref { margin-top: var(--sp-3); }
.trip .choose__price { font-size: clamp(1.375rem, 1rem + .9vw, 1.75rem); }

/* ---------- v2 iterate 5：2つの旅のブロックを1つの構図として組む ---------- */
.trip { --trip-line: color-mix(in srgb, currentColor 22%, transparent); --trip-soft: color-mix(in srgb, currentColor 68%, transparent);
  padding: clamp(1.5rem, 4.5vw, 4.5rem); margin: 0 0 var(--sp-4); border-radius: var(--radius); overflow: visible; }
.trip--private { --trip-accent: var(--semantic-color-text-champagne); }
.trip--self { --trip-accent: var(--c-accent); }
/* 見出しの段：文と写真を12列の格子に。プライベートは写真を左に置いて向きを変える */
.trip__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 var(--sp-5); align-items: center; }
.trip__intro { grid-column: 1 / span 5; }
.trip__media { grid-column: 6 / -1; aspect-ratio: 3 / 2; margin: 0; border-radius: var(--radius); }
.trip--private .trip__intro { grid-column: 8 / -1; grid-row: 1; }
.trip--private .trip__media { grid-column: 1 / span 7; grid-row: 1; }
.trip__eyebrow { margin: 0 0 var(--sp-2); font-size: var(--t-meta); font-weight: 700; letter-spacing: .16em; color: var(--trip-accent); }
.trip__name { margin: 0 0 var(--sp-4); font-size: clamp(2rem, 1rem + 2.4vw, 3.25rem); font-weight: 900; line-height: 1.2; letter-spacing: .02em; }
.trip__name a { text-decoration: none; color: inherit; }
.trip__name a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .18em; }
.trip__price { margin: 0 0 var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--trip-line); font-size: clamp(1.25rem, 1rem + .8vw, 1.625rem); font-weight: 700; font-feature-settings: "palt" 1; }
.trip--private .trip__price { color: var(--trip-accent); }
.trip__lead { margin: 0 0 var(--sp-4); color: var(--trip-soft); }
.trip__more { margin: 0; }
.trip--self .trip__more .btn--primary { background: var(--c-text); border-color: var(--c-text); color: var(--c-bg); }
.trip--private .trip__more .btn--primary { background: var(--trip-accent); border-color: var(--trip-accent); color: var(--c-deep); }
/* 一覧の段：細い線で見出しと分け、4つのツアーを同じ位置にそろえる */
.trip__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); margin-top: clamp(2rem, 4vw, 3.5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--trip-line); }
.trip .card { display: flex; flex-direction: column; gap: 0; height: 100%; }
.trip .card__link { display: block; }
.trip .card .media { aspect-ratio: 4 / 3; margin: 0 0 var(--sp-3); border-radius: var(--radius); }
.trip .card__kicker { margin: 0 0 4px; font-size: var(--t-xs); letter-spacing: .06em; color: var(--trip-accent); }
.trip .card__title { margin: 0 0 var(--sp-2); font-size: 1.1875rem; line-height: 1.45; color: inherit; }
.trip .card__facts { display: flex; flex-wrap: wrap; gap: 0 var(--sp-3); margin: 0 0 var(--sp-2); padding: 0; border: 0; font-size: var(--t-meta); color: var(--trip-soft); }
.trip .card__facts div { display: flex; gap: 6px; }
.trip .card__facts dt { color: inherit; font-weight: 400; }
.trip .card__facts dd { color: inherit; font-weight: 700; }
.trip .card__ref, .trip .card__price { margin: 0; font-size: var(--t-md); font-weight: 700; }
.trip .card__ref-label { display: inline; margin-right: 6px; font-size: var(--t-sm); font-weight: 400; color: var(--trip-soft); }
.trip .card__ref .price__note, .trip .card__price .price__note { display: block; margin-top: 2px; font-size: var(--t-sm); font-weight: 400; line-height: 1.6; color: var(--trip-soft); }
.trip--private .card__price .price { font-size: inherit; color: inherit; }
.trip--private .card__price .price__note { display: inline; }
.trip .card__act { margin-top: auto; padding-top: var(--sp-4); }
.trip .card__act .btn { width: 100%; background: transparent; color: inherit; border-color: var(--trip-line); }
.trip .card__act .btn:hover { border-color: currentColor; background: transparent; color: inherit; }
.trip--private .card__link:hover .card__title { color: inherit; }
@media (max-width: 1023px) { .trip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .trip { padding: 0 0 var(--sp-4); overflow: hidden; }
  .trip__head { display: flex; flex-direction: column-reverse; }
  .trip__media { width: 100%; aspect-ratio: 3 / 2; border-radius: 0; }
  .trip__intro { padding: var(--sp-4) var(--sp-3) 0; }
  .trip__name { font-size: 2rem; margin-bottom: var(--sp-3); }
  .trip__list { grid-template-columns: minmax(0, 1fr); gap: 0; margin: var(--sp-4) var(--sp-3) 0; padding-top: 0; }
  .trip .card { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 0 var(--sp-3); padding: var(--sp-3) 0; border-top: 1px solid var(--trip-line); height: auto; }
  .trip .card__link { display: contents; }
  .trip .card .media { grid-column: 1; grid-row: 1 / span 4; aspect-ratio: 1; margin: 0; }
  .trip .card > :not(.card__link), .trip .card__link > :not(.media) { grid-column: 2; }
  .trip .card__title { font-size: var(--t-body); margin-bottom: 4px; }
  .trip .card__act { grid-column: 1 / -1 !important; padding-top: var(--sp-3); }
}
.trip__name { white-space: nowrap; font-size: clamp(1.75rem, .8rem + 2.2vw, 3rem); }
.page-home .trip--private .trip__name { white-space: normal; }
/* 文字を拡大して列が文字に対して狭くなったら、写真・番号を上に積んで題に幅を渡す。rem で比べるので、通常の文字の大きさでは条件に入らない */
.trip__list { container: trips / inline-size; }
@container trips (max-width: 17rem) {
  .trip .card { grid-template-columns: minmax(0, 1fr); }
  .trip .card .media { grid-row: auto; aspect-ratio: 3 / 2; margin-bottom: var(--sp-2); }
  .trip .card > :not(.card__link), .trip .card__link > :not(.media) { grid-column: 1; }
}
.stops { container: stops / inline-size; } .stops > .stop:last-child { margin-bottom: 0; }   /* 入れ物にすると最後の余白が ol の余白と重ならなくなるため */
@container stops (max-width: 17rem) { .stop { grid-template-columns: minmax(0, 1fr); } .stop > * { grid-column: 1; } }
/* 旅の選び方の下の、ほかの探し方：1行にそろえる */
.section--choose .ways { display: grid; grid-template-columns: repeat(2, max-content) minmax(0, 1fr); align-items: center; gap: var(--sp-3) var(--sp-3); margin-top: var(--sp-5); }
.section--choose .ways > li { display: contents; }
.section--choose .ways__note { font-size: var(--t-meta); }
.section--choose .ways__car { display: block !important; grid-column: 1 / -1; font-size: var(--t-meta); }
@media (max-width: 767px) { .section--choose .ways { grid-template-columns: minmax(0, 1fr); } .section--choose .ways > li { display: block; } }
/* プライベートの主のボタンは白い面に深い緑の文字（シャンパンはセルフツアーの色なので使わない） */
.trip--private .trip__more .btn--primary { background: var(--c-bg); border-color: var(--c-bg); color: var(--c-deep); }
.trip--private .trip__more .btn--primary:hover { background: var(--semantic-color-text-champagne); border-color: var(--semantic-color-text-champagne); color: var(--c-deep); }
/* プライベートツアーにはシャンパン色を使わない（シャンパンはセルフツアーの色）。強調は白の太さで示す */
.trip--private { --trip-accent: var(--c-on-primary); }
.trip--private .trip__price, .trip--private .card__kicker, .trip--private .price, .trip--private .choose__price { color: var(--c-on-primary); }
.trip--private .trip__eyebrow, .trip--private .card__kicker { opacity: .85; }
.trip--private .trip__more .btn--primary:hover { background: transparent; border-color: var(--c-bg); color: var(--c-bg); }

/* ---------- トップの仕上げ ---------- */
/* ヘッダーのロゴ：名前を1行目、2つの副題を2行目に1つにまとめる */
.site-header__logo { display: flex; flex-direction: column; gap: 2px; line-height: 1.2; }
.site-header__name { font-size: var(--t-title); font-weight: 900; letter-spacing: .02em; }
.site-header__sub { display: flex; flex-wrap: wrap; gap: 0; font-size: var(--t-2xs); font-weight: 400; letter-spacing: .04em; color: var(--c-text-weak); }
.site-header__sub .site-header__place, .site-header__sub .site-header__tag { display: inline; font-size: inherit; color: inherit; }
.site-header__sub .site-header__place::after { content: "／"; padding: 0 .35em; color: var(--c-line); }
html[lang="en"] .site-header__sub .site-header__place::after { content: "·"; padding: 0 .5em; }
@media (max-width: 767px) { .site-header__sub { display: none !important; } .site-header__name { font-size: var(--t-md); } }
.site-header__logo .site-header__name { font-size: var(--t-title); font-weight: 900; color: var(--c-text); }
.site-header__logo .site-header__sub, .site-header__logo .site-header__sub span { font-size: var(--t-2xs); margin: 0; }
@media (max-width: 767px) { .site-header__logo .site-header__name { font-size: var(--t-md); } }
/* 泊まる：PC は宿の名前と追加の操作を1行に */
@media (min-width: 768px) {
  .section--stay .stay-type__list li { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--sp-3); }
  .section--stay .stay-type__list li > a { grid-column: 1; }
  .section--stay .stay-type__list .stay-type__area { grid-column: 1; grid-row: 2; }
  .section--stay .stay-type__list .btn--small { grid-column: 2; grid-row: 1 / span 2; }
}
.section--stay .card__lead { margin-bottom: 0; }
/* 音声ガイドの試聴の枠（SOUND-GUIDE のプレーヤーに差し替えるまでの見た目） */
.audio-sample { border-radius: var(--radius); padding: var(--sp-4) var(--sp-5); }
.audio-places { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1023px) { .audio-places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .audio-places { grid-template-columns: minmax(0, 1fr); } .audio-sample { padding: var(--sp-3); } }
/* 東京から約2時間：上下の線を細く、余白でまとめる */
.section--access-strip { border-top: 1px solid var(--c-line); }
@media (max-width: 767px) { .site-header__logo .site-header__name { display: inline !important; } }
/* 英語の添え書きは横書き（縦にすると寝た文字になる） */
html[lang="en"] .theme-strip > li .theme-strip__cap, html[lang="en"] .theme-strip > li:nth-child(2) .theme-strip__cap, html[lang="en"] .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { writing-mode: horizontal-tb; letter-spacing: 0; line-height: 1.35; align-self: end; }
html[lang="en"] .theme-strip > li:nth-child(2) figure { grid-template-columns: minmax(0, 1fr); }
html[lang="en"] .theme-strip > li:nth-child(2) .theme-strip__cap { font-size: clamp(1.5rem, 1rem + 1vw, 2rem); }
html[lang="en"] .theme-strip > li:not(:nth-child(2)) figure { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: end; }
@media (max-width: 767px) { html[lang="en"] .theme-strip > li:not(:nth-child(2)) figure { display: block; } html[lang="en"] .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { font-size: var(--t-sm); margin-top: 6px; text-align: left; } }
/* 本文の下限（スマホ16px・PC17px）に合わせる。小見出しのラベルだけ14px */
.trip .card__facts, .trip .price__note, .trip .card__ref .price__note, .trip .card__price .price__note, .section--stay .card__lead, .trip .card__ref-label { font-size: var(--t-ui); }
.trip .card__kicker, .stay-type__area { font-size: var(--t-sm); }
@media (min-width: 768px) { .trip .card__facts, .trip .card__ref .price__note, .section--stay .card__lead { font-size: var(--t-body); } }

/* ---------- 作りの仕上げ（伝える内容と順番は変えない） ---------- */
/* 1. 区画の見出しを1つの型にそろえる：細い線の上に見出し。区画の間は同じ間隔 */
.page-home main > .section { margin-top: clamp(4rem, 8vw, 7.5rem); margin-bottom: 0; }
.page-home .section > .section__title, .page-home .teaser__text > .section__title { margin: 0 0 var(--sp-5); padding-top: var(--sp-3); border-top: 1px solid var(--c-text); font-size: clamp(1.625rem, 1.1rem + 1.3vw, 2.25rem); font-weight: 700; letter-spacing: .04em; line-height: 1.35; }

/* 2. 主題の写真の添え書き：写真の下に横書きでそろえる */
.theme-strip > li figure, .theme-strip > li:nth-child(2) figure, .theme-strip > li:not(:nth-child(2)) figure { display: flex; flex-direction: column; gap: 0; height: 100%; }
.theme-strip > li:nth-child(2) img { flex: 1; min-height: 0; }
.theme-strip__cap, .theme-strip > li:nth-child(2) .theme-strip__cap, .theme-strip > li:not(:nth-child(2)) .theme-strip__cap { writing-mode: horizontal-tb; margin: 0; padding: 10px 0 0; border-top: 0; font-size: var(--t-ui); font-weight: 700; letter-spacing: .08em; line-height: 1.5; text-align: left; }
.theme-strip > li:nth-child(2) .theme-strip__cap { font-size: var(--t-md); }
.theme-strip > li:not(:nth-child(2)) img { aspect-ratio: 16 / 9; }
.theme-strip { row-gap: var(--sp-4); }

/* 3. 旅の選び方の下のほかの探し方：ボタン2つと注記を同じ高さに */
.section--choose .ways { grid-template-columns: max-content max-content minmax(0, 1fr); column-gap: var(--sp-3); }
.section--choose .ways > li:not(.ways__car) > a { min-height: 44px; display: inline-flex; align-items: center; }

/* 4. 北杜に泊まる：5つの宿の種類を、写真・説明・宿と料金の3列の行に。空いた升目を作らない */
.page-home .section--stay .card-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
.page-home .section--stay .card { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-4); align-items: start; padding: 0; border: 0; height: auto; }
.page-home .section--stay .card__link { display: contents; }
.page-home .section--stay .card .media { grid-column: 1 / span 4; grid-row: 1 / span 3; aspect-ratio: 3 / 2; margin: 0; }
.page-home .section--stay .card__title { grid-column: 5 / span 4; grid-row: 1; margin: 0 0 var(--sp-2); font-size: var(--t-lead); }
.page-home .section--stay .card__lead { grid-column: 5 / span 4; grid-row: 2; margin: 0; color: var(--c-text-weak); }
.page-home .section--stay .stay-type__list { grid-column: 9 / -1; grid-row: 1 / span 2; margin: 0; }
.page-home .section--stay .stay-type__list li { padding: 0 0 var(--sp-2); }
.page-home .section--stay .card__ref { grid-column: 9 / -1; grid-row: 3; align-self: end; margin: 0; font-size: var(--t-title); }
.page-home .section--stay > p:last-child { margin-top: var(--sp-4); }
@media (min-width: 768px) and (max-width: 1023px) {
  .page-home .section--stay .stay-type__list li { grid-template-columns: minmax(0, 1fr); }
  .page-home .section--stay .stay-type__list li > a,
  .page-home .section--stay .stay-type__list .stay-type__area,
  .page-home .section--stay .stay-type__list .btn--small { grid-column: 1; grid-row: auto; }
}

/* 5. ワーケーション：写真と文を横に並べ、下端をそろえる */
.page-home .teaser { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; column-gap: var(--sp-5); }
.page-home .teaser > .media { grid-column: 1 / span 7; aspect-ratio: 4 / 3; }
.page-home .teaser__text { grid-column: 8 / -1; }
.page-home .teaser__text p:last-child { margin-bottom: 0; }

/* 6. 音声ガイド：写真と説明を左右に、8か所の一覧は線でそろえ、試聴の枠は全幅に */
.page-home .section--audio { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-5); align-items: start; }
.page-home .section--audio > * { grid-column: 1 / -1; }
.page-home .section--audio > .media { grid-column: 1 / span 6; grid-row: 2 / span 4; aspect-ratio: 4 / 5; margin: 0; }
.page-home .section--audio > .audio-why-line, .page-home .section--audio > .audio-why-line ~ p:not(:last-child), .page-home .section--audio > .audio-places { grid-column: 7 / -1; }
.page-home .section--audio > .audio-why-line { margin-top: 0; font-size: var(--fs-lead); line-height: 1.7; }
.page-home .section--audio > .audio-places { grid-template-columns: minmax(0, 1fr); margin: 0 0 var(--sp-3); }
.page-home .section--audio > .audio-places li { padding: 10px 0; }
.page-home .section--audio > .audio-sample { margin-top: var(--sp-5); }

/* 7. お知らせ：日付と本文の列をそろえる */
.news li { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: var(--sp-3); }

@media (max-width: 767px) {
  .page-home .section--stay .card { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-3); }
  .page-home .section--stay .card > *, .page-home .section--stay .card .media, .page-home .section--stay .card__title, .page-home .section--stay .card__lead, .page-home .section--stay .stay-type__list, .page-home .section--stay .card__ref { grid-column: 1; grid-row: auto; }
  .page-home .teaser > .media, .page-home .teaser__text { grid-column: 1 / -1; }
  .page-home .section--audio > * , .page-home .section--audio > .media, .page-home .section--audio > .audio-why-line, .page-home .section--audio > .audio-why-line ~ p, .page-home .section--audio > .audio-places { grid-column: 1 / -1; grid-row: auto; }
  .page-home .section--audio > .media { aspect-ratio: 3 / 2; margin-bottom: var(--sp-3); }
  .news li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .section--choose .ways { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) { .page-home .teaser, .page-home .section--audio { grid-template-columns: minmax(0, 1fr); column-gap: 0; } }
@media (max-width: 767px) { .page-home .section--audio > .audio-why-line ~ p:not(:last-child), .page-home .section--audio > .audio-places, .page-home .section--audio > .audio-why-line { grid-column: 1 / -1; } }
@media (min-width: 768px) {
  .page-home .section--stay .card { grid-template-rows: auto auto 1fr; }
  .page-home .section--stay .card__lead { align-self: start; }
  .page-home .section--stay .card__ref { grid-column: 5 / span 4; grid-row: 3; align-self: end; }
  .page-home .section--stay .stay-type__list { grid-column: 9 / -1; grid-row: 1 / span 3; }
}
.page-home .section--access-strip { border-top: 1px solid var(--c-text); border-bottom: 0; padding-top: var(--sp-3); }
.page-home .section--access-strip > .section__title { border-top: 0; padding-top: 0; margin: 0; }
/* 東京から約2時間：電車と車を時刻表のような2行に。右端の所要時間をそろえて大きく */
.page-home .section--access-strip { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-5); row-gap: var(--sp-3); align-items: start; padding-top: var(--sp-3); }
.page-home .section--access-strip > .section__title { grid-column: 1 / span 4; }
.page-home .access-strip { grid-column: 5 / -1; margin: 0; padding: 0; gap: 0; border-top: 1px solid var(--c-line); }
.page-home .access-strip li { display: grid; grid-template-columns: 4.5em minmax(0, 1fr) auto; align-items: baseline; column-gap: var(--sp-3); padding: var(--sp-3) 0; text-indent: 0; border-bottom: 1px solid var(--c-line); font-size: var(--t-body); line-height: 1.6; }
.page-home .access-strip strong { width: auto; font-size: var(--t-ui); color: var(--c-accent); }
.page-home .access-strip .nowrap { font-size: clamp(1.375rem, 1rem + .9vw, 1.75rem); font-weight: 700; font-feature-settings: "palt" 1; color: var(--c-text); }
.page-home .section--access-strip > p { grid-column: 5 / -1; margin: 0; }
@media (max-width: 767px) {
  .page-home .section--access-strip { grid-template-columns: minmax(0, 1fr); }
  .page-home .section--access-strip > * { grid-column: 1 !important; }
  .page-home .access-strip li { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
  .page-home .access-strip strong { grid-column: 1 / -1; }
  .page-home .access-strip .nowrap { font-size: var(--t-lead); }
}
/* 英語版：写真の添え書きは写真の下に左そろえ。カードの料金はラベルを分けて1行に */
html[lang="en"] .theme-strip > li figure, html[lang="en"] .theme-strip > li:nth-child(2) figure, html[lang="en"] .theme-strip > li:not(:nth-child(2)) figure { display: flex; flex-direction: column; }
html[lang="en"] .theme-strip > li .theme-strip__cap { align-self: stretch; max-width: none; text-align: left; padding-top: 10px; font-size: var(--t-ui); }
html[lang="en"] .theme-strip > li:nth-child(2) .theme-strip__cap { font-size: var(--t-md); }
html[lang="en"] .trip .card__ref-label { display: block; margin: 0 0 2px; }
html[lang="en"] .theme-strip > li:nth-child(n) .theme-strip__cap, html[lang="en"] .theme-strip > li:not(:nth-child(2)) .theme-strip__cap, html[lang="en"] .theme-strip > li:nth-child(2) .theme-strip__cap { align-self: stretch; text-align: left; }
/* 東京から約2時間：線は区画の見出しの線と、電車と車の間の1本だけ */
.page-home .access-strip { border-top: 0; }
.page-home .access-strip li { border-bottom: 0; padding: var(--sp-2) 0; }
.page-home .access-strip li + li { border-top: 1px solid var(--c-line); }
/* ワーケーション：見出しが写真の横の文の中にあるので、見出しの上の線は引かない */
.page-home .teaser__text > .section__title { border-top: 0; padding-top: 0; margin-bottom: var(--sp-3); }
/* ヘッダーの言語ボタンと旅程ボタンの大きさをそろえる（高さ44px、同じ文字の大きさ・角丸） */
.site-header .lang-menu__btn, .site-header .plan-toggle { box-sizing: border-box; height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0 16px; font-size: var(--t-meta); font-weight: 700; line-height: 1; border-radius: var(--radius); }
.site-header .lang-menu__btn { border: 1px solid var(--c-line); }
.site-header .plan-toggle { border: 1px solid var(--c-primary); }
.site-header .plan-toggle__count { margin-left: 2px; }
@media (max-width: 767px) { .site-header .lang-menu__btn, .site-header .plan-toggle { height: 40px; padding: 0 12px; font-size: var(--t-sm); } }
@media (max-width: 767px) {
  .site-header { flex-wrap: wrap; column-gap: 6px; }
  .site-header .site-header__menu { order: 4; box-sizing: border-box; height: 40px; display: inline-flex; align-items: center; padding: 0 10px; font-size: var(--t-sm); line-height: 1; border-radius: var(--radius); }
  .site-header .lang-menu__btn { padding: 0 10px; }
  .site-header .plan-toggle { padding: 0 10px; }
  .site-header .site-nav { order: 5; flex-basis: 100%; }
}
@media (max-width: 380px) { .site-header__logo .site-header__name { font-size: var(--t-ui); } .site-header .lang-menu__btn, .site-header .plan-toggle, .site-header .site-header__menu { padding: 0 8px; font-size: var(--t-xs); } .site-header { column-gap: 4px; } }
/* 検索と既存の項目を縮めず、収まらない幅では既存メニューで開く。 */
@media (min-width: 768px) and (max-width: 1439px) {
  .site-header { flex-wrap: wrap; column-gap: var(--sp-2); }
  .site-header__logo { margin-right: auto; }
  .site-header .site-header__menu { display: inline-flex; order: 4; box-sizing: border-box; height: 44px; align-items: center; padding: 0 14px; font: inherit; font-size: var(--t-meta); font-weight: 700; line-height: 1; border: 1px solid var(--c-text); background: var(--c-bg); border-radius: var(--radius); cursor: pointer; }
  .site-header .lang-menu { order: 2; margin-left: 0; }
  .site-header .plan-toggle { order: 3; }
  .site-header .site-nav { display: none; order: 5; flex-basis: 100%; }
  .site-header .site-nav.is-open { display: block; }
  .site-header .site-nav.is-open ul { flex-direction: column; gap: 0; padding: var(--sp-2) 0; }
  .site-header .site-nav.is-open a { display: block; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
}
@media (max-width: 1099px) { html[lang="en"] .site-header__logo .site-header__sub { display: none !important; } }
@media (min-width: 1100px) { html[lang="en"] .site-header__logo .site-header__sub { flex-wrap: nowrap; white-space: nowrap; font-size: var(--t-2xs); } }
/* 英語の副題は1行に固定しない（固定すると横にはみ出す）。PC では場所の方だけ出さず、主題の副題を1行で */
@media (min-width: 1100px) { html[lang="en"] .site-header__logo .site-header__sub { white-space: normal; flex-wrap: wrap; } html[lang="en"] .site-header__sub .site-header__place { display: none !important; } html[lang="en"] .site-header__logo .site-header__sub .site-header__tag { white-space: nowrap; } }
/* 東京から約2時間：見出しと同じ数を二重に強調しない。所要時間は文の中の普通の大きさに戻す */
.page-home .access-strip li { grid-template-columns: 4.5em minmax(0, 1fr); }
.page-home .access-strip .nowrap { font-size: inherit; font-weight: inherit; color: inherit; }
@media (max-width: 767px) { .page-home .access-strip li { grid-template-columns: minmax(0, 1fr); } }

/* ---------- 場所の詳細ページ（全48か所・日英。内容と順番はワイヤーのまま） ---------- */
/* PC：見出しの段を写真（左7列）と題・説明（右5列）に。右の列の下に候補リストのボタン。事実の区画は2列 */
.page-place .detail { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-5); row-gap: 0; align-items: start; margin-top: var(--sp-3); }
.page-place .detail__main { display: contents; }
.page-place .detail__main > *, .page-place .detail > aside { grid-column: 1 / -1; min-width: 0; }
.page-place .detail__main > .media:first-child { grid-column: 1 / span 7; grid-row: 1 / span 8; aspect-ratio: 4 / 3; margin: 0; }
.page-place .detail__main > .detail__kicker { grid-column: 8 / -1; grid-row: 1; margin: 0 0 var(--sp-2); }
.page-place .detail__main > h1 { grid-column: 8 / -1; grid-row: 2; margin: 0 0 var(--sp-3); font-size: clamp(2rem, 1.2rem + 1.8vw, 3rem); line-height: 1.3; font-weight: 900; }
.page-place .detail__main > .detail__lead { grid-column: 8 / -1; grid-row: 3; margin: 0 0 var(--sp-3); }
.page-place .detail__main > .card__tags { grid-column: 8 / -1; grid-row: 4; margin: 0 0 var(--sp-2); }
.page-place .detail__main > .for-tags { grid-column: 8 / -1; grid-row: 5; margin: 0 0 var(--sp-3); }
.page-place .detail__main > .why { grid-column: 8 / -1; grid-row: 6; margin: 0 0 var(--sp-4); }
.page-place .detail > .detail__side { grid-column: 8 / -1; grid-row: 7; position: static; }
.page-place .detail > .detail__side .btn--add { width: 100%; min-height: 48px; }
.page-place .detail__main > .only-sp { display: none; }
/* 事実の区画：2列の札。見出しは細い線の上に */
.page-place .detail__main > .section:has(> .facts) { grid-column: span 6; margin: var(--sp-6) 0 0; }
.page-place .detail__main > .section:has(> .facts) ~ .section:has(> .facts) { margin-top: var(--sp-5); }
.page-place .detail__main > .section:has(> .facts):nth-of-type(-n+2) { margin-top: var(--sp-6); }
.page-place .detail__main > .section > .section__title { margin: 0 0 var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--c-text); font-size: var(--t-lead); letter-spacing: .04em; }
.page-place .facts { gap: 0; }
.page-place .facts > div { grid-template-columns: 8em minmax(0, 1fr); padding: 8px 0; border-bottom: 1px solid var(--c-line); }
.page-place .facts dt { color: var(--c-text-weak); }
.page-place .tag--unknown { background: transparent; border: 0; padding: 0; font-size: var(--t-sm); color: var(--c-text-weak); }
.page-place .drink-law, .page-place .checked { grid-column: 1 / -1; }
.page-place .book-action { margin: 0 0 var(--sp-3); }
.page-place .book-action .btn { min-height: 48px; }
/* 音声ガイド：全幅の面。再生のボタンは文字で示す（印は使わない） */
.page-place .detail__main > .audio-block { margin: var(--sp-6) 0 0; padding: var(--sp-5); border-radius: var(--radius); background: var(--c-surface); }
.page-place .audio-block > h2 { margin: 0 0 var(--sp-3); font-size: var(--t-lead); }
.page-place .audio-track { grid-template-columns: auto 2em minmax(0, 1fr) auto; padding: 8px 0; border-top: 1px solid var(--c-line); }
.page-place .audio-btn .sr { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
.page-place .audio-btn { min-height: 40px; padding: 6px 16px; }
/* この施設を含むツアー：線で区切った一覧に */
.page-place .detail__main > .section:has(> .list) .list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--sp-4); }
.page-place .detail__main > .section:has(> .list) .list li { padding: 10px 0; border-bottom: 1px solid var(--c-line); }
.page-place .detail__main > .section:has(> .list) .list a { font-weight: 700; text-decoration: none; }
.page-place .detail__main > .section:has(> .list) .list a:hover { text-decoration: underline; }
/* 近くの施設：4列で全幅に */
.page-place .detail__main > .section:has(.card-grid) .card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); }
.page-place .detail__main > .section:has(.card-grid) .card .media { aspect-ratio: 4 / 3; }
.page-place .detail__main > .section:has(.card-grid) .card__facts div { grid-template-columns: 6em minmax(0, 1fr); }
.page-place .why { background: var(--c-surface); padding: var(--sp-3); }
@media (max-width: 1023px) { .page-place .detail__main > .section:has(.card-grid) .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .page-place .detail { display: block; }
  .page-place .detail__main { display: block; }
  .page-place .detail__main > .media:first-child { aspect-ratio: 3 / 2; margin: 0 calc(-1 * var(--gutter)) var(--sp-3); border-radius: 0; }
  .page-place .detail__main > h1 { font-size: 2rem; }
  .page-place .detail__main > .only-sp { display: block; }
  .page-place .detail__main > .only-sp .btn--add { width: 100%; min-height: 48px; }
  .page-place .detail__main > .section:has(> .facts) { margin-top: var(--sp-5); }
  .page-place .facts > div { grid-template-columns: 7em minmax(0, 1fr); }
  .page-place .detail__main > .audio-block { padding: var(--sp-4) var(--sp-3); margin-left: 0; margin-right: 0; }
  .page-place .detail__main > .section:has(> .list) .list { grid-template-columns: minmax(0, 1fr); }
  .page-place .detail__main > .section:has(.card-grid) .card-grid { grid-template-columns: minmax(0, 1fr); }
}
.page-place .detail__main > * { margin-left: 0; margin-right: 0; }
.page-place .detail__main > .section:has(> .facts), .page-place .detail__main > .section:has(> .facts):nth-of-type(-n+2), .page-place .detail__main > .section:has(> .facts) ~ .section:has(> .facts) { margin-top: var(--sp-5); }
.page-place .detail__main > .section:has(> .facts):first-of-type, .page-place .detail__main > .section:has(> .facts):first-of-type + .section { margin-top: var(--sp-6); }
.page-place .detail__main > .section:not(:has(> .facts)) { margin-top: var(--sp-6); }
@media (max-width: 767px) { .page-place .detail__main > .media:first-child { margin: 0 0 var(--sp-3); border-radius: var(--radius); } }
.page-place .facts > div { grid-template-columns: 9.5em minmax(0, 1fr); column-gap: var(--sp-3); }
.page-place .facts dt { word-break: auto-phrase; }
@media (max-width: 767px) {
  .page-place .facts > div { grid-template-columns: 8.5em minmax(0, 1fr); column-gap: var(--sp-2); }
  .page-place .detail__main > .section, .page-place .detail__main > .section:has(> .facts):first-of-type + .section { margin-top: var(--sp-5) !important; }
}

/* ---------- 検索（トップ・探す） ---------- */
.search { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
.search__label { font-weight: 700; font-size: var(--t-ui); }
.search__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-2); }   /* iPhone の Safari は入力欄に固有の幅を持たせるので、flex ではなく列の幅で画面に収める */
.search__input { flex: 1; width: 100%; min-width: 0; -webkit-appearance: none; appearance: none; height: 52px; padding: 0 var(--sp-3); font: inherit; font-size: var(--t-body); color: var(--c-text); background: var(--c-bg); border: 1px solid var(--c-text); border-radius: var(--radius); }
.search__input:focus { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.search__btn { height: 52px; padding: 0 var(--sp-5); }
.page-home .search--home { width: var(--wrap); margin: var(--sp-5) auto 0; }
.search--explore { flex-basis: 100%; width: 100%; margin-bottom: var(--sp-2); }
@media (max-width: 767px) { .search__btn { padding: 0 var(--sp-4); } .page-home .search--home { margin-top: var(--sp-4); } }
main > .search--explore { width: var(--wrap); margin: var(--sp-4) auto 0; }
.search__status { margin: var(--sp-2) 0 0; font-weight: 700; }
.search__status a { color: var(--c-accent); }
.section--explore-results { scroll-margin-top: 90px; }
#results { scroll-margin-top: 100px; }
/* フッター（PC）：中身を本文と同じ幅で中央に置き、列を均等に並べる */
@media (min-width: 768px) {
  .site-footer > * { max-width: calc(var(--w-max) - 2 * var(--gutter)); margin-left: auto; margin-right: auto; }
  .site-footer__links { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 768px) and (max-width: 1023px) { .site-footer__links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .site-footer__links { grid-template-columns: repeat(7, minmax(0, 1fr)); column-gap: var(--sp-4); } .site-footer__group li { font-size: var(--t-sm); } }
@media (min-width: 768px) and (max-width: 1199px) { .site-footer__links { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.site-footer__cols { align-items: start; }
@media (min-width: 768px) { .site-footer__cols { grid-template-columns: minmax(0, 1fr) auto; } .site-footer__sns { text-align: right; } }

/* ---------- 楽しみ方のポイント：囲み（灰色の面・片側の線）をやめ、小さな見出しと本文で組む（全ページ共通） ---------- */
.why, .page-place .why { margin: var(--sp-3) 0; padding: 0; border: 0; border-radius: 0; background: none; }
.why .why__who { margin: 0 0 4px; font-size: var(--t-sm); font-weight: 700; letter-spacing: .04em; color: var(--c-primary); }
.why .why__who a { color: inherit; }
.why .why__text { font-size: var(--t-ui); line-height: 1.8; color: var(--c-text); }
.detail__main > .why .why__text, .page-place .detail__main > .why .why__text { font-size: var(--t-md); }

/* ---------- 場所の詳細：横線を減らす。事実の行・音声の行・ツアーの行・カードの事実の線をなくし、余白で区切る ---------- */
.page-place .detail__main > .section > .section__title { border-top: 0; border-bottom: 0; padding-top: 0; }
.page-place .facts { row-gap: 10px; }
.page-place .facts > div { padding: 0; border-bottom: 0; }
.page-place .audio-track { border-top: 0; padding: 6px 0; }
.page-place .detail__main > .section:has(> .list) .list li { border-bottom: 0; padding: 6px 0; }
.page-place .card__facts { border-top: 0; padding-top: 0; }

/* 予約：おまかせ相談はボタンにせず、文中のリンクとして控えめに（予約先の情報を先に読ませる） */
.page-place .book-action > p:first-child { margin: 0 0 var(--sp-2); font-size: var(--t-body); font-weight: 700; }
.page-place .book-action__alt { margin: 0; font-size: var(--t-meta); color: var(--c-text-weak); }
.page-place .book-action__alt a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-accent); }
.page-place .book-action__alt .note { font-size: inherit; color: inherit; }

/* ---------- 音声ガイドのプレーヤー（見た目はこのサイト、動きは SOUND-GUIDE の JS。状態は data-sg-state と aria-current で受け取る） ---------- */
.page-place .detail__main > .audio-block { padding: 0; background: none; border-radius: 0; }
.page-place .audio-block > h2 { margin: 0 0 var(--sp-4); font-size: var(--t-lead); }
.hp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-3) var(--sp-6); align-items: start; }
.hp__head { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "play now" "nav nav"; gap: var(--sp-3) var(--sp-4); align-items: center; padding: var(--sp-4); border-radius: var(--radius); background: var(--c-surface); }
.hp:not([data-sg-ready]) .hp__head { display: none; }
.hp__play { grid-area: play; width: 88px; height: 88px; border: 0; border-radius: var(--radius); background: var(--c-primary); color: #fff; font: inherit; font-size: var(--t-body); font-weight: 700; cursor: pointer; }
.hp__play:hover { background: var(--c-text); }
.hp[data-sg-state="playing"] .hp__play { background: var(--c-text); }
.hp__now { grid-area: now; min-width: 0; }
.hp__title { display: flex; gap: var(--sp-2); align-items: baseline; margin: 0; font-weight: 700; font-size: var(--t-body); line-height: 1.5; }
.hp__count { flex: none; font-size: var(--t-sm); font-weight: 400; color: var(--c-text-weak); font-variant-numeric: tabular-nums; }
.hp__seek { --sg-fill: 0%; -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 44px; margin: -6px 0 -10px; padding: 0; background: transparent; cursor: pointer; }
.hp__seek::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: linear-gradient(var(--c-primary), var(--c-primary)) 0 0 / var(--sg-fill) 100% no-repeat, var(--c-line); }
.hp__seek::-moz-range-track { height: 4px; border-radius: 2px; background: var(--c-line); }
.hp__seek::-moz-range-progress { height: 4px; border-radius: 2px; background: var(--c-primary); }
.hp__seek::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; margin-top: -6px; border: 0; border-radius: 50%; background: var(--c-primary); }
.hp__seek::-moz-range-thumb { width: 16px; height: 16px; border: 0; border-radius: 50%; background: var(--c-primary); }
.hp__seek:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.hp__time { display: flex; justify-content: space-between; margin: 0; font-size: var(--t-sm); color: var(--c-text-weak); font-variant-numeric: tabular-nums; }
.hp__nav { grid-area: nav; display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
.hp__step { min-height: 44px; border: 1px solid var(--c-text); border-radius: var(--radius); background: var(--c-bg); color: var(--c-text); font: inherit; font-weight: 700; cursor: pointer; }
.hp__step:disabled { border-color: var(--c-line); color: var(--c-text-weak); cursor: default; }
.hp__list { grid-column: 2; grid-row: 1 / span 2; list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.hp__track { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: var(--sp-3); align-items: center; width: 100%; min-height: 52px; padding: 6px 0; border: 0; background: none; color: var(--c-text); font: inherit; font-size: var(--t-body); text-align: left; cursor: pointer; }
.hp:not([data-sg-ready]) .hp__track { cursor: default; }
.hp__no { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--radius); background: var(--c-surface); font-size: var(--t-meta); font-weight: 700; font-variant-numeric: tabular-nums; }
.hp__len { font-size: var(--t-meta); color: var(--c-text-weak); white-space: nowrap; }
.hp[data-sg-ready] .hp__track:hover .hp__name { text-decoration: underline; }
.hp__track[aria-current="true"] { color: var(--c-primary); font-weight: 700; }
.hp__track[aria-current="true"] .hp__no { background: var(--c-primary); color: #fff; }
.hp__guide { grid-column: 1; margin: 0; }
.hp__guide a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-accent); font-weight: 700; }
.hp[data-sg-state="unavailable"] .hp__head, .hp[data-sg-state="unavailable"] .hp__list { display: none; }
.page-place .audio-block > .note { margin: var(--sp-2) 0 0; font-size: var(--t-sm); color: var(--c-text-weak); }
@media (max-width: 767px) {
  .hp { grid-template-columns: minmax(0, 1fr); }
  .hp__list, .hp__guide { grid-column: 1; grid-row: auto; }
  .hp__head { padding: var(--sp-3); gap: var(--sp-3); }
  .hp__play { width: 72px; height: 72px; }
}
@media (prefers-reduced-motion: no-preference) { .hp__play, .hp__step { transition: background-color .15s, color .15s; } }
.hp__play { width: auto; min-width: 88px; padding: 0 14px; white-space: nowrap; }
@media (max-width: 767px) { .hp__play { min-width: 80px; height: 72px; padding: 0 10px; font-size: var(--t-ui); } }
.hp__demo { margin: 4px 0 0; font-size: var(--t-sm); color: var(--c-text-weak); }

/* 楽しみ方のポイント：本文の下に話し手（丸い顔の画像と名前） */
.why .why__label { margin: 0 0 4px; font-size: var(--t-sm); font-weight: 700; letter-spacing: .04em; color: var(--c-primary); }
.why .why__who { display: flex; align-items: center; gap: 10px; margin: var(--sp-2) 0 0; font-size: var(--t-sm); font-weight: 400; letter-spacing: 0; color: var(--c-text-weak); }
.why .why__who a { color: inherit; }
.why__face { flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background: var(--c-surface); }
.why__face--text { display: grid; place-items: center; font-size: var(--t-meta); font-weight: 700; color: var(--c-text); }
.detail__main > .why .why__face { width: 48px; height: 48px; }
.detail__main > .why .why__who { font-size: var(--t-meta); }

/* 予約：Web予約のボタンと電話を1行に。ダミーの断り書きは小さく */
.page-place .book-action__ways { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); margin: 0 0 var(--sp-2); }
.page-place .book-action__ways .note { flex-basis: 100%; margin: 0; font-size: var(--t-sm); color: var(--c-text-weak); }
.page-place .book-action__tel { margin: 0; font-size: var(--t-body); font-weight: 700; }
.page-place .book-action__tel span { font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.page-place .book-action__dummy { margin: 0 0 var(--sp-1); font-size: var(--t-sm); color: var(--c-text-weak); }

/* この施設を含むツアー：写真つきの小さなカード */
.tour-minis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-4); }
.tour-mini { display: grid; gap: 4px; color: var(--c-text); text-decoration: none; }
.tour-mini img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); margin-bottom: var(--sp-1); background: var(--c-surface); }
.tour-mini__kind { font-size: var(--t-sm); color: var(--c-text-weak); }
.tour-mini__name { font-size: var(--t-body); font-weight: 700; line-height: 1.5; }
.tour-mini:hover .tour-mini__name { text-decoration: underline; }
@media (max-width: 1023px) { .tour-minis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 場所の詳細（PC）：右の列を写真と同じ高さにし、候補リストのボタンを写真の下端にそろえる */
@media (min-width: 1200px) {
  .page-place .detail { grid-template-rows: repeat(6, auto) 1fr auto; }
  .page-place .detail__main > .media:first-child { grid-row: 1 / 9; aspect-ratio: auto; min-height: 100%; height: auto; }
  .page-place .detail__main > .media:first-child img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
  .page-place .detail > .detail__side { grid-row: 8; align-self: end; }
  .page-place .detail__main > .why { margin-bottom: var(--sp-4); }
}
/* 768〜1199px は右の列が細く写真が縦長になるため、写真の下に題と説明を置く */
@media (min-width: 768px) and (max-width: 1199px) {
  .page-place .detail__main > .media:first-child, .page-place .detail__main > .detail__kicker, .page-place .detail__main > h1, .page-place .detail__main > .detail__lead, .page-place .detail__main > .card__tags, .page-place .detail__main > .for-tags, .page-place .detail__main > .why, .page-place .detail > .detail__side { grid-column: 1 / -1; grid-row: auto; }
  .page-place .detail__main > .media:first-child { aspect-ratio: 16 / 9; margin-bottom: var(--sp-4); }
  .page-place .detail > .detail__side { grid-row: 7; max-width: 24rem; }
}

/* 事実の区画に強弱：区画ごとに上の線を1本だけ引き、各区画の最初の事実（住所・営業時間・料金の目安など）を大きく */
.page-place .detail__main > .section:has(> .facts) { padding-top: var(--sp-3); border-top: 1px solid var(--c-text); }
.page-place .detail__main > .section > .section__title { font-size: var(--t-title); margin-bottom: var(--sp-3); }
.page-place .facts > div:first-child dd { font-size: var(--t-title); font-weight: 700; line-height: 1.6; }
.page-place .facts > div:first-child dd .tag--unknown { font-size: var(--t-sm); font-weight: 400; }
.page-place .facts > div:first-child { margin-bottom: var(--sp-1); }
.page-place .facts > div:first-child dt { align-self: center; }

/* 場所の詳細：区画の間は上の余白だけで取る（グリッドの中では上下の余白が重ならず足し算になり、240px 空いていた） */
.page-place .detail__main > .section, .page-place .detail__main > .audio-block { margin-bottom: 0; }
.page-place .detail__main > .section:not(:has(> .facts)) { margin-top: var(--sp-6); }
@media (max-width: 767px) { .page-place .detail__main > .section:not(:has(> .facts)) { margin-top: var(--sp-5) !important; } }
@media (max-width: 767px) { .page-place .detail__main > .audio-block { margin-top: var(--sp-5); } }

/* ---------- 場所の詳細 v2（ai-design：demo/design/v2/place、採用 option-1「決める4つの帯」） ---------- */
/* 全案共通：予約の札・こんな人にの枠を外して文字に。決めるための事実の基本の組み方。未確認の1行 */
.page-place .detail__main > .card__tags, .page-place .detail__main > .for-tags { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 1em; font-size: var(--t-meta); }
.page-place .detail__main > .card__tags .tag, .page-place .detail__main > .for-tags .tag { padding: 0; border: 0; border-radius: 0; background: none; font-size: var(--t-meta); color: var(--c-text); }
.page-place .detail__main > .card__tags .tag--link { color: var(--c-accent); text-decoration: underline; }
.page-place .detail__main > .for-tags .for-tags__label { margin-right: -.3em; font-size: var(--t-sm); color: var(--c-text-weak); }
.decide { margin: var(--sp-6) 0 0; }
.decide__cell { min-width: 0; }
.decide__label { margin: 0 0 6px; font-size: var(--t-sm); font-weight: 700; letter-spacing: .04em; color: var(--c-text-weak); }
.decide__value { margin: 0; font-size: clamp(1.5rem, 1.2rem + .7vw, 1.875rem); font-weight: 700; line-height: 1.45; font-feature-settings: "palt" 1; word-break: auto-phrase; }
.decide__value .tag--unknown { font-size: var(--t-ui); font-weight: 400; }
.decide__note { margin: var(--sp-2) 0 0; font-size: var(--t-meta); line-height: 1.75; color: var(--c-text-weak); }
.decide .facts { margin-top: var(--sp-3); row-gap: 6px; font-size: var(--t-meta); }
.decide .facts > div { grid-template-columns: 7.5em minmax(0, 1fr); }
.page-place .facts > .facts__unk dt, .page-place .facts > .facts__unk dd { color: var(--c-text-weak); }
.page-place .facts > .facts__unk dd { font-size: var(--t-meta); line-height: 1.75; }
.page-place .facts > div.facts__unk:first-child dd { font-size: var(--t-meta); font-weight: 400; }
/* PC：写真の高さを右の列の文の高さに合わせる（写真の下に空きを残さない） */
@media (min-width: 1200px) {
  .page-place .detail { grid-template-rows: none; }
  .page-place .detail__main > .media:first-child { grid-row: 1 / 9; min-height: 420px; }
  .page-place .detail > .detail__side { grid-row: 7; align-self: start; }
}
.decide__label, .page-place .detail__main > .for-tags .for-tags__label { font-size: var(--t-meta); }
@media (min-width: 1200px) { .page-place .detail__main > .media:first-child { align-self: stretch; height: auto; } }
.page-place .detail__main > .decide { margin-top: var(--sp-5); }
@media (max-width: 767px) { .page-place .detail__main > .decide { margin-top: var(--sp-4); } }
/* option-1 決める4つの帯 */
.page-place .detail__main > .decide { display: grid; grid-template-columns: 1.25fr .85fr 1fr 1.6fr; gap: var(--sp-4) var(--sp-5); padding: var(--sp-4) 0 var(--sp-5); border-top: 2px solid var(--c-text); border-bottom: 1px solid var(--c-text); }
@media (max-width: 1023px) { .page-place .detail__main > .decide { grid-template-columns: 1fr 1fr; } .decide__cell--price, .decide__cell--book { grid-column: 1 / -1; } }
@media (max-width: 767px) {
  .page-place .detail__main > .decide { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
  .decide__cell--hours, .decide__cell--closed { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 0 var(--sp-2); align-items: baseline; }
  .decide__cell--hours .decide__label, .decide__cell--closed .decide__label { margin: 0; }
  .decide__value { font-size: var(--t-lead); }
}
.decide .nb { display: inline-block; }
.page-place .detail__main > .decide { grid-template-columns: 1.5fr .8fr 1fr 1.6fr; }
@media (max-width: 1023px) { .page-place .detail__main > .decide { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .page-place .detail__main > .decide { grid-template-columns: minmax(0, 1fr); } }

/* iOS Safari はボタンの文字色の既定が青。色を指定していないボタンは周りの文字色にする */
button { color: inherit; }
.site-header__menu, .hp__step, .audio-btn, .lang-menu__btn { color: var(--c-text); }

/* 旅程ボタンの件数：小さな白い札をやめ、「旅程」と同じ大きさ・太さの数字を細い区切り線の右に置く */
.site-header .plan-toggle__count { display: inline-block; min-width: 0; margin-left: 4px; padding: 0 0 0 10px; border-left: 1px solid rgba(255, 255, 255, .45); border-radius: 0; background: none; color: inherit; font-size: inherit; font-weight: inherit; line-height: 1.2; font-variant-numeric: tabular-nums; }

/* 場所の詳細 修正1（design-critic の採点から） */
/* 詳細の区画は2段組みに流し込み、左右の高さのむらをなくす */
.page-place .detail__main > .details { grid-column: 1 / -1; margin-top: var(--sp-6); columns: 2; column-gap: var(--sp-5); }
.page-place .details > .section { break-inside: avoid; margin: 0 0 var(--sp-5) !important; padding-top: var(--sp-3); border-top: 1px solid var(--c-text); }
@media (max-width: 767px) { .page-place .detail__main > .details { columns: 1; margin-top: var(--sp-5); } .page-place .details > .section { margin-bottom: var(--sp-4) !important; } }
/* 予約の結論は他の3つと同じ大きさ */
.page-place .decide__cell--book .book-action > .decide__value { margin: 0; font-size: clamp(1.25rem, 1.05rem + .5vw, 1.5rem); font-weight: 700; line-height: 1.5; }
.page-place .decide__cell--book .book-action > .decide__note { margin: 4px 0 var(--sp-3); }
/* 表のラベルと注記を大きく、濃く */
.page-place .facts dt, .page-place .facts > .facts__unk dt { color: var(--c-text); opacity: .72; }
.page-place .facts > .facts__unk dd, .decide__note, .page-place .book-action__dummy { font-size: var(--t-ui); color: var(--c-text); opacity: .72; }
.decide__label { font-size: var(--t-meta); color: var(--c-text); opacity: .72; }
/* 音声ガイドの曲番号：緑の四角をやめて数字だけ */
.hp__no, .hp__track[aria-current="true"] .hp__no { width: auto; height: auto; background: none; color: inherit; border-radius: 0; font-size: var(--t-body); }
/* スマホ：名前と説明の直後に4つの事実、その後に候補リストと楽しみ方のポイント */
@media (max-width: 767px) {
  .page-place .detail__main { display: flex; flex-direction: column; }
  .page-place .detail__main > .decide { order: 1; margin-top: var(--sp-3); }
  .page-place .detail__main > .only-sp { order: 2; margin-top: var(--sp-3); }
  .page-place .detail__main > .why { order: 3; }
  .page-place .detail__main > .details, .page-place .detail__main > .audio-block, .page-place .detail__main > .checked, .page-place .detail__main > .drink-law, .page-place .detail__main > .section { order: 4; }
}
.page-place .details > .section > .section__title { margin: 0 0 var(--sp-3); padding: 0; border: 0; font-size: var(--t-title); letter-spacing: .04em; }
.page-place .detail__main > .details { margin-top: var(--sp-5); }
.page-place .detail__main > .decide { padding-bottom: var(--sp-4); }

/* 場所の詳細 修正2（design-critic の採点から） */
/* 営業時間の帯の図：原稿の時刻だけから、6時〜23時の目盛りの上に営業の時間を描く */
.dayline { display: grid; gap: 6px; margin-top: var(--sp-3); max-width: 24rem; }
.dayline__row { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 10px; align-items: center; font-size: var(--t-sm); line-height: 1.4; color: var(--c-text); }
.dayline__name { overflow-wrap: anywhere; }
.dayline__track { position: relative; height: 10px; background: var(--c-surface); }
.dayline__bar { position: absolute; top: 0; bottom: 0; left: calc(var(--from) / 17 * 100%); width: calc((var(--to) - var(--from)) / 17 * 100%); background: var(--c-primary); }
.dayline__scale { position: relative; height: 1.4em; margin-left: calc(6.5em + 10px); font-size: var(--t-xs); color: var(--c-text-weak); font-variant-numeric: tabular-nums; }
.dayline__scale span { position: absolute; top: 0; left: calc(var(--at) / 17 * 100%); transform: translateX(-50%); }
@media (prefers-reduced-motion: no-preference) {
  .dayline__bar { transform-origin: left; animation: dayline-grow .8s ease-out both; }
  @keyframes dayline-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
/* PC：楽しみ方のポイントは帯の後ろに回し、4つの事実を最初の画面に入れる */
@media (min-width: 1200px) {
  .page-place .detail__main > .decide { order: 1; }
  .page-place .detail__main > .why { order: 2; grid-column: 1 / span 8; grid-row: auto; margin: var(--sp-5) 0 0; }
  .page-place .detail__main > .details, .page-place .detail__main > .audio-block, .page-place .detail__main > .checked, .page-place .detail__main > .drink-law, .page-place .detail__main > .section { order: 3; }
}
/* ツアーが3つのときは3列で全幅に */
.tour-minis:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) { .tour-minis:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* トップの音声ガイド：試聴がサンプルだと再生ボタンの横に書く。詳しい案内へはボタンで */
.audio-sample__tag { display: inline-block; margin-left: var(--sp-2); font-size: var(--t-meta); color: var(--c-text-weak); vertical-align: middle; }
.page-home .section--audio > .audio-more { margin-top: var(--sp-4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.audio-more .btn { min-height: 48px; display: inline-flex; align-items: center; }
.audio-more__note { margin: 0; font-size: var(--t-meta); color: var(--c-text-weak); }
@media (max-width: 767px) { .decide__cell--hours .dayline { grid-column: 1 / -1; max-width: none; } }
@media (min-width: 1200px) { .page-place .detail > .detail__side { align-self: end; } }
.dayline { max-width: 28rem; }
.dayline__row { grid-template-columns: 8.5em minmax(0, 1fr); }
.dayline__scale { margin-left: calc(8.5em + 10px); }
@media (max-width: 767px) { .dayline__row { grid-template-columns: 7.5em minmax(0, 1fr); } .dayline__scale { margin-left: calc(7.5em + 10px); } }
@media (min-width: 1200px) { .page-place .detail > .detail__side { grid-row: 8; align-self: end; } }
@media (max-width: 767px) { .dayline__row { grid-template-columns: 8.5em minmax(0, 1fr); } .dayline__scale { margin-left: calc(8.5em + 10px); } }
/* 区画の最初の行を大きくする強調は、4つの事実を帯に移したのでやめる（料金の内訳の長い文が太字の大きな字になっていた） */
.page-place .facts > div:first-child dd { font-size: inherit; font-weight: inherit; line-height: inherit; }
.page-place .facts > div:first-child { margin-bottom: 0; }
.page-place .facts > div:first-child dt { align-self: start; }

/* 場所の詳細 審査2周目 修正1 */
/* 営業時間：括弧の中（試飲など）は2行目に一段小さく */
.decide__value .decide__sub { display: block; margin-top: 2px; font-size: .78em; }
/* 営業時間の図：棒を太くし、終わりの時刻を棒の右に添える。セルの幅いっぱいに */
.dayline { max-width: none; gap: 10px; margin-top: var(--sp-4); }
.dayline__row { font-size: var(--t-meta); }
.dayline__track { height: 20px; }
.dayline__end { position: absolute; top: 50%; left: calc(var(--to) / 17 * 100% + 6px); transform: translateY(-50%); font-size: var(--t-sm); font-weight: 700; color: var(--c-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dayline__track { margin-right: 3.2em; }
.dayline__scale { margin-right: 3.2em; }
/* 詳細の区画：2段組みをやめ、区画ごとに「見出し3列｜表9列」の1行にする（左右の高さのむらをなくす） */
.page-place .detail__main > .details { columns: auto; }
.page-place .details > .section { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-5); align-items: start; }
.page-place .details > .section > .section__title { grid-column: 1 / span 3; }
.page-place .details > .section > :not(.section__title) { grid-column: 4 / -1; }
.page-place .details .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--sp-5); }
.page-place .details .facts > .facts__unk { grid-column: 1 / -1; }
.page-place .details .facts > div { grid-template-columns: 8em minmax(0, 1fr); }
@media (max-width: 1023px) { .page-place .details .facts { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 767px) {
  .page-place .details > .section { display: block; }
  .page-place .detail__main > .only-sp { order: 1; margin: var(--sp-3) 0 0; }
  .page-place .detail__main > .decide { order: 2; }
}
.page-place .details .facts { grid-template-columns: minmax(0, 1fr); }
.page-place .details .facts > div { grid-template-columns: 10em minmax(0, 1fr); }
@media (max-width: 767px) { .page-place .details .facts > div { grid-template-columns: 8.5em minmax(0, 1fr); } }

/* 場所の詳細 審査2周目 修正2 */
/* 営業時間の図は4つの事実の下に、帯の全幅で大きく。直売と試飲などの閉まる時刻の差を形で見せる */
.page-place .detail__main > .decide { grid-template-columns: 1.4fr .8fr 1.3fr 1.6fr; }
.decide > .dayline { grid-column: 1 / -1; max-width: none; margin: var(--sp-2) 0 0; padding-top: var(--sp-4); border-top: 1px solid var(--c-line); gap: 12px; }
.decide > .dayline .dayline__row { grid-template-columns: 11em minmax(0, 1fr); gap: var(--sp-3); font-size: var(--t-body); font-weight: 700; }
.decide > .dayline .dayline__track { height: 32px; margin-right: 4.5em; }
.decide > .dayline .dayline__end { font-size: var(--t-md); left: calc(var(--to) / 17 * 100% + 10px); }
.decide > .dayline .dayline__scale { margin: 0 4.5em 0 calc(11em + var(--sp-3)); font-size: var(--t-sm); }
@media (max-width: 1023px) { .decide > .dayline { grid-column: 1 / -1; } }
@media (max-width: 767px) {
  .decide__cell--hours { order: 1; } .decide > .dayline { order: 2; margin-top: 0; } .decide__cell--closed { order: 3; } .decide__cell--price { order: 4; } .decide__cell--book { order: 5; }
  .decide > .dayline .dayline__row { grid-template-columns: 7.5em minmax(0, 1fr); gap: 10px; font-size: var(--t-meta); }
  .decide > .dayline .dayline__track { height: 24px; margin-right: 3.4em; }
  .decide > .dayline .dayline__end { font-size: var(--t-meta); }
  .decide > .dayline .dayline__scale { margin: 0 3.4em 0 calc(7.5em + 10px); }
  .page-place .detail__main > .decide { order: 1; }
  .page-place .detail__main > .only-sp { order: 2; margin: var(--sp-3) 0 0; }
}
/* 料金の内訳は料金の目安の下に本文に近い大きさで */
.decide__cell--price .decide__note { font-size: var(--t-ui); line-height: 1.75; }
/* 詳細の値は本文と同じ大きさ */
@media (min-width: 768px) { .page-place .details .facts dd { font-size: var(--t-body); } .page-place .details .facts > .facts__unk dd { font-size: var(--t-ui); } }
@media (max-width: 1023px) { .page-place .detail__main > .decide { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .page-place .detail__main > .decide { grid-template-columns: minmax(0, 1fr); } }

/* Selected static headings: phrase boundaries are generated at build time.
   Existing .ph/vertical hero, body text and dynamic data are left alone. */
html[lang="ja"] [data-natural-wrap] { word-break: keep-all; overflow-wrap: anywhere; }
html[lang="en"] [data-natural-wrap] { word-break: normal; overflow-wrap: anywhere; white-space: normal; text-wrap: balance; }
/* トップの音声ガイド：1曲の形のプレーヤー（施設ページと同じ部品）。曲の画像｜場所・題・再生位置｜丸い再生ボタン */
.hp--mini { display: block; }
.hp--mini .hp__head { grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: none; gap: var(--sp-4); align-items: center; padding: 0; background: none; border-radius: 0; }
.hp--mini .hp__cover { width: 96px; height: 96px; margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--c-bg); }
.hp--mini .hp__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp--mini .hp__now { grid-area: auto; display: grid; gap: 2px; }
.hp--mini .hp__where { display: flex; flex-wrap: wrap; gap: 0 .75em; margin: 0; font-size: var(--t-sm); color: var(--c-text-weak); }
.hp--mini .hp__where a { color: var(--c-text); font-weight: 700; }
.hp--mini .hp__title { margin: 0 0 4px; font-size: var(--t-title); font-weight: 700; }
.hp--mini .hp__seek { margin: 0 0 -12px; }
.hp--mini .hp__time { font-size: var(--t-xs); }
.hp--mini .hp__play { grid-area: auto; display: grid; place-items: center; width: 64px; height: 64px; padding: 0; border-radius: 50%; background: var(--c-primary); color: #fff; }
.hp--mini .hp__play svg { width: 30px; height: 30px; }
.hp--mini .hp__play:hover { background: var(--c-text); }
.hp--mini .hp__play .i-pause { display: none; }
.hp--mini[data-sg-state="playing"] .hp__play { background: var(--c-primary); }
.hp--mini[data-sg-state="playing"] .hp__play .i-pause { display: inline; }
.hp--mini[data-sg-state="playing"] .hp__play .i-play { display: none; }
.hp--mini .hp__list { display: none; }   /* 1曲なので一覧は出さない（動きの JS が曲を見つけるために HTML には置く） */
.hp--mini .hp__demo { grid-column: 1 / -1; margin: var(--sp-2) 0 0; font-size: var(--t-sm); color: var(--c-text-weak); }
.audio-sample .hp--mini + .audio-sample__langs { margin-top: var(--sp-4); }
.audio-sample__more { margin: var(--sp-2) 0 0; font-size: var(--t-meta); }
@media (max-width: 767px) {
  .hp--mini .hp__head { grid-template-columns: 72px minmax(0, 1fr) auto; gap: var(--sp-3); }
  .hp--mini .hp__cover { width: 72px; height: 72px; }
  .hp--mini .hp__title { font-size: var(--t-body); }
  .hp--mini .hp__play { width: 56px; height: 56px; }
}
.hp--mini .hp__play { flex: none; min-width: 0; min-height: 0; aspect-ratio: 1; }   /* 丸を保つ（施設ページ用の .hp__play の幅が当たらないように） */
@media (max-width: 767px) {
  /* スマホ：画像・場所と題・再生ボタンを1行に、再生位置と時間はその下の全幅 */
  .hp--mini .hp__head { grid-template-columns: 64px minmax(0, 1fr) 56px; row-gap: 0; }
  .hp--mini .hp__now { display: contents; }
  .hp--mini .hp__cover { grid-column: 1; grid-row: 1 / span 2; width: 64px; height: 64px; }
  .hp--mini .hp__where { grid-column: 2; grid-row: 1; align-self: end; }
  .hp--mini .hp__title { grid-column: 2; grid-row: 2; align-self: start; margin: 0; }
  .hp--mini .hp__play { grid-column: 3; grid-row: 1 / span 2; }
  .hp--mini .hp__seek, .hp--mini .hp__time, .hp--mini .hp__demo { grid-column: 1 / -1; }
  .hp--mini .hp__seek { margin-top: var(--sp-2); }
}
@media (max-width: 767px) {
  /* 場所の名前は長いので、題の段の上に全幅で */
  .hp--mini .hp__where { grid-column: 1 / -1; grid-row: 1; margin-bottom: var(--sp-2); }
  .hp--mini .hp__cover { grid-row: 2; }
  .hp--mini .hp__title { grid-row: 2; align-self: center; }
  .hp--mini .hp__play { grid-row: 2; }
}
/* トップの1曲のプレーヤー：再生ボタンはシークバーの左（押してから進み具合を見る順。標準の音声プレーヤーと同じ並び） */
.hp--mini .hp__head { grid-template-columns: 120px 64px minmax(0, 1fr); grid-template-areas: none; column-gap: var(--sp-3); row-gap: 0; align-items: center; }
.hp--mini .hp__now { display: contents; }
.hp--mini .hp__cover { grid-column: 1; grid-row: 1 / span 5; width: 120px; height: 120px; align-self: start; margin-right: var(--sp-2); }
.hp--mini .hp__where { grid-column: 2 / -1; grid-row: 1; margin: 0; }
.hp--mini .hp__title { grid-column: 2 / -1; grid-row: 2; margin: 2px 0 var(--sp-2); }
.hp--mini .hp__play { grid-column: 2; grid-row: 3 / span 2; align-self: center; }
.hp--mini .hp__seek { grid-column: 3; grid-row: 3; margin: 0 0 -12px; }
.hp--mini .hp__time { grid-column: 3; grid-row: 4; }
.hp--mini .hp__demo { grid-column: 2 / -1; grid-row: 5; margin: var(--sp-2) 0 0; }
@media (max-width: 767px) {
  .hp--mini .hp__head { grid-template-columns: 64px minmax(0, 1fr); column-gap: var(--sp-3); }
  .hp--mini .hp__where { grid-column: 1 / -1; grid-row: 1; margin-bottom: var(--sp-2); }
  .hp--mini .hp__cover { grid-column: 1; grid-row: 2; width: 64px; height: 64px; margin: 0; }
  .hp--mini .hp__title { grid-column: 2; grid-row: 2; align-self: center; margin: 0; }
  .hp--mini .hp__play { grid-column: 1; grid-row: 3 / span 2; justify-self: center; margin-top: var(--sp-3); }
  .hp--mini .hp__seek { grid-column: 2; grid-row: 3; margin-top: var(--sp-3); }
  .hp--mini .hp__time { grid-column: 2; grid-row: 4; }
  .hp--mini .hp__demo { grid-column: 1 / -1; grid-row: 5; }
}
/* ---------- 3つのエリアの位置関係図（scripts/area_map で作る。探す・エリア・宿・場所・セルフツアー・旅程のページ） ----------
   エリアは北杜市フードバレー協議会の分け方。塗りは蒼の明度だけで分け、清流（濃い）→ 高原 → 太陽（明るい）の順に明るくする。
   字と線の大きさは viewBox（幅800）の単位。地図が幅 約480px で出るときに、エリア名 約18px・駅名 約16px になる */
.map--zones { aspect-ratio: auto; min-height: 0; border: 0; background: none; }
.map--zones svg, .place-map svg { width: 100%; height: auto; display: block; }
.map--zones .map__note, .map--zones .map__legend { position: static; margin: var(--sp-1) 0 0; padding: 0; background: none; }
:is(.map--zones, .place-map) { --map-dim: var(--semantic-color-map-zone-dim); --map-label: var(--semantic-color-map-label); --map-outline: var(--semantic-color-map-outline); --map-leader: var(--semantic-color-map-leader); --map-hw: var(--semantic-color-map-highway); --map-ic-label: var(--semantic-color-map-ic-label); --map-rail: var(--semantic-color-map-rail); --map-legend: var(--semantic-color-map-legend); --map-peak: var(--semantic-color-map-peak); --map-ink: var(--semantic-color-text-primary); }
:is(.map--zones, .place-map) .map__zones path { stroke-width: 10; stroke-linejoin: round; transition: fill .2s var(--ease, ease), stroke .2s var(--ease, ease); }
:is(.map--zones, .place-map) .map__zone--kaikoma { --zone: var(--semantic-color-map-zone-kaikoma); --zone-hover: var(--semantic-color-map-zone-kaikoma-hover); --zone-focus: var(--semantic-color-map-zone-kaikoma-focus); }
:is(.map--zones, .place-map) .map__zone--yatsugatake { --zone: var(--semantic-color-map-zone-yatsugatake); --zone-hover: var(--semantic-color-map-zone-yatsugatake-hover); --zone-focus: var(--semantic-color-map-zone-yatsugatake-focus); }
:is(.map--zones, .place-map) .map__zone--mizugaki { --zone: var(--semantic-color-map-zone-mizugaki); --zone-hover: var(--semantic-color-map-zone-mizugaki-hover); --zone-focus: var(--semantic-color-map-zone-mizugaki-focus); }
:is(.map--zones, .place-map) .map__zone path { fill: var(--zone); stroke: var(--zone); }
:is(.map--zones, .place-map) .map__zone:is(.is-here, .is-focus) path { fill: var(--zone-focus); stroke: var(--zone-focus); }
:is(.map--zones, .place-map) .map__zone.is-dim path { fill: var(--map-dim); stroke: var(--map-dim); }
:is(.map--zones, .place-map) a.map__zone:is(:hover, :focus-visible) path { fill: var(--zone-hover); stroke: var(--zone-hover); }
:is(.map--zones, .place-map) a.map__zone:focus-visible { outline: none; }
:is(.map--zones, .place-map) a.map__zone:focus-visible .map__region { stroke: var(--map-ink); stroke-width: 6; }
:is(.map--zones, .place-map) .map__region-label { font-size: 30px; font-weight: 700; fill: var(--map-label); letter-spacing: .06em; paint-order: stroke; stroke: none; }
:is(.map--zones, .place-map) .map__region-towns { font-size: 19px; font-weight: 400; fill: var(--map-label); letter-spacing: .08em; }
:is(.map--zones, .place-map) .map__zone:is(.is-here, .is-focus, :hover) .map__region-label { fill: var(--map-ink); }
:is(.map--zones, .place-map) .map__zone:is(.is-here, .is-focus, :hover) .map__region-towns { fill: var(--map-ink); }
:is(.map--zones, .place-map) .map__zone.is-dim .map__region-label { fill: var(--map-peak); }
:is(.map--zones, .place-map) .map__label-leader { fill: none; stroke: var(--map-leader); stroke-width: 1.5; }
:is(.map--zones, .place-map):lang(en) .map__region-label { font-size: 24px; letter-spacing: .01em; }
:is(.map--zones, .place-map):lang(en) .map__region-towns { font-size: 16px; letter-spacing: .02em; }
:is(.map--zones, .place-map) .map__borders path { fill: none; stroke: #fff; stroke-width: 4; }
:is(.map--zones, .place-map) .map__outline path { fill: none; stroke: var(--map-outline); stroke-width: 2; }
:is(.map--zones, .place-map) .map__hw path, :is(.map--zones, .place-map) .map__legend-hw { fill: none; stroke: var(--map-hw); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
:is(.map--zones, .place-map) .map__rail path { fill: none; stroke: var(--map-rail); stroke-width: 3.5; stroke-linejoin: round; stroke-linecap: round; }
:is(.map--zones, .place-map) .map__station rect { fill: #fff; stroke: var(--map-rail); stroke-width: 3; transform-box: fill-box; transform-origin: center; transform: scale(1.5); }
:is(.map--zones, .place-map) .map__legend-st { fill: #fff; stroke: var(--map-rail); stroke-width: 3; }
:is(.map--zones, .place-map) .map__ic circle, :is(.map--zones, .place-map) .map__legend-ic { fill: #fff; stroke: var(--map-hw); stroke-width: 4; }
:is(.map--zones, .place-map) :is(.map__station, .map__ic) text { font-size: var(--t-xl); font-weight: 700; fill: var(--map-ink); paint-order: stroke; stroke: #fff; stroke-width: 8px; stroke-linejoin: round; }
:is(.map--zones, .place-map) .map__ic text { fill: var(--map-ic-label); }
:is(.map--zones, .place-map) .map__legend text { font-size: var(--t-md); fill: var(--map-legend); }
:is(.map--zones, .place-map) .map__peaks text { font-size: var(--t-title); fill: var(--map-peak); }
:is(.map--zones, .place-map) .map__peaks .map__peak--main { font-size: var(--t-lead); font-weight: 700; fill: var(--map-label); }
:is(.map--zones, .place-map) .map__mark--stay rect { fill: var(--map-ink); stroke: #fff; stroke-width: 2; }
:is(.map--zones, .place-map) .map__mark--see circle { fill: #fff; stroke: var(--map-ink); stroke-width: 3; }
@media (prefers-reduced-motion: reduce) { :is(.map--zones, .place-map) .map__zones path { transition: none; } }
@media (max-width: 767px) {
  :is(.map--zones, .place-map) .map__region-label { font-size: 34px; }
  :is(.map--zones, .place-map) .map__region-towns { font-size: 24px; }
  :is(.map--zones, .place-map) :is(.map__station, .map__ic) text { font-size: 30px; stroke-width: 9px; }
  :is(.map--zones, .place-map) .map__legend text { font-size: 24px; }
  :is(.map--zones, .place-map) .map__peaks text:not(.map__peak--main):not(.map__peak--south) { display: none; }
  :is(.map--zones, .place-map) .map__peaks .map__peak--main { font-size: 30px; }
}

/* Desktop search shares the header row; tablet search is available in the open menu. */
.search--header { display: none; }
@media (min-width: 768px) {
  .site-header { column-gap: 16px; row-gap: var(--sp-2); }
  .site-header .search--header { display: grid; flex: 0 1 20rem; order: 6; gap: 0; min-width: 14rem; container-type: normal; }
  .search--header .search__row { width: 100%; grid-template-columns: minmax(0, 1fr) auto; }
  .search--header .search__input, .search--header .search__btn { height: auto; min-height: 2.75rem; }
  .search--header .search__input { font-size: 1rem; }
  .search--header .search__btn { padding-inline: var(--sp-3); }
}
@media (min-width: 1440px) { .site-header { flex-wrap: nowrap; } }
@media (min-width: 768px) and (max-width: 1099px) {
  .site-header .search--header { display: none; }
}
/* Let narrow search rows reflow as text grows, without shrinking the input away. */
.search { container-type: inline-size; }
@container (max-width: 18rem) {
  .search__row { grid-template-columns: minmax(0, 1fr); }
  .search__btn { justify-self: end; }
}

/* Search results clear the actual sticky header, including reflowed rows. */
#results { scroll-margin-top: calc(var(--hdr-h, 100px) + var(--sp-3)); }

.curator .curator__bio { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); margin-block: var(--sp-2); }
.curator__bio dd { max-width: 46em; }
@media (max-width: 767px) {
  .curator { grid-template-columns: minmax(0, 1fr); }
  .curator__photo { width: 96px; }
  .curator .facts > div { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
}

.audio-link { display: inline-flex; align-items: center; gap: .4em; }
.audio-callout .audio-link { color: var(--c-primary); font-weight: 700; text-decoration: none; }
.audio-link__label { text-decoration: underline; text-underline-offset: .18em; text-decoration-skip-ink: none; }
.audio-link__icon { flex: none; }
.audio-block[id] { scroll-margin-top: calc(var(--hdr-h, 100px) + var(--sp-3)); }
.audio-callout { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 24px; margin: var(--sp-4) 0 var(--sp-5); padding: 32px; border: 1px solid #eee8dd; border-radius: 12px; background: var(--c-surface); }
.audio-callout__mark { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--c-bg); color: var(--c-text); }
.audio-callout__mark svg { width: 30px; height: 30px; }
.audio-callout .audio-callout__eyebrow { margin: 0 0 8px; color: var(--c-text-weak); font-size: 12px; letter-spacing: .12em; }
.audio-callout h2 { margin: 0; font-size: clamp(1.35rem, 1rem + .8vw, 1.75rem); line-height: 1.5; }
.audio-callout .audio-callout__description { margin: 12px 0 24px; line-height: 1.8; }
.audio-callout__button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 20px; border-radius: var(--radius); background: var(--c-primary); color: #fff; font-weight: 700; text-decoration: none; }
.audio-callout__button:hover { color: #fff; background: #285b4e; }
.audio-callout__button:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 4px; }
.audio-callout__button svg { flex: none; }
@media (max-width: 767px) {
  .audio-callout { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 24px 20px; }
  .audio-callout__mark { width: 48px; height: 48px; }
  .audio-callout__mark svg { width: 26px; height: 26px; }
  .audio-callout__button { width: 100%; box-sizing: border-box; }
}
.map__peak-arrow { fill: none; stroke: #777; stroke-width: 2; }
@media (max-width: 767px) { .map__peak-arrow--north-east { display: none; } }

.do__book-consult { margin: var(--sp-2) 0 0; font-size: 15px; }

.page-place .why__name a { text-decoration: none; }
.page-place .why__name a:hover, .page-place .why__name a:focus-visible { text-decoration: underline; }

/* ===== 2026-11-05 ロゴ T1 の仮置き（全ページ共通）===== */
.site-header .site-header__logo .site-header__name, .print-brand { display: block !important; font-size: 0 !important; color: transparent !important; display: block; width: 214px; height: 28px; background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%228 8 746.7 72.6%22%3E%3Cpath fill=%22%23151515%22 d=%22M8 8.3H34.55L35.9 8.49L37.13 8.7L38.36 8.96L39.58 9.25L40.8 9.58L42.01 9.95L43.21 10.36L44.38 10.82L45.53 11.33L46.65 11.89L47.75 12.49L48.82 13.14L49.87 13.83L50.89 14.57L51.89 15.36L52.86 16.2L53.8 17.09L54.71 18.03L55.57 19.02L56.39 20.06L57.18 21.16L57.92 22.31L58.63 23.52L59.3 24.78L59.92 26.09L60.51 27.45L61.06 28.87L61.54 30.35L61.97 31.89L62.34 33.5L62.65 35.16L62.91 36.89L63.11 38.67L63.25 40.52L63.34 42.43L63.36 44.4L63.34 46.29L63.25 48.13L63.11 49.92L62.91 51.65L62.65 53.33L62.34 54.95L61.97 56.52L61.54 58.03L61.06 59.49L60.51 60.9L59.92 62.25L59.29 63.56L58.62 64.81L57.91 66.01L57.16 67.16L56.37 68.26L55.54 69.31L54.67 70.31L53.76 71.25L52.81 72.15L51.83 73L50.83 73.8L49.8 74.55L48.75 75.26L48.4 75.48L47.68 75.93L46.58 76.54L45.46 77.11L44.32 77.64L43.15 78.12L41.96 78.55L40.76 78.94L39.55 79.29L38.34 79.6L37.12 79.86L35.89 80.09L34.66 80.27L33.55 80.4H8ZM20.73 77.4H26.77L28.98 77.38L29.8 77.34L30.61 77.26L31.42 77.15L32.17 77.02L33.08 76.83L33.83 76.64L34.58 76.42L35.37 76.16L36.15 75.87L37.07 75.48L37.76 75.14L38.52 74.73L39.32 74.22L39.98 73.76L40.68 73.22L41.43 72.58L42.05 71.99L42.72 71.32L43.36 70.6L43.94 69.89L44.55 69.07L45.17 68.14L45.72 67.21L46.25 66.23L46.75 65.19L47.23 64.1L47.68 62.95L48.11 61.75L48.51 60.5L48.88 59.19L49.22 57.81L49.51 56.36L49.76 54.85L49.98 53.28L50.15 51.63L50.29 49.92L50.39 48.15L50.44 46.31L50.46 44.4L50.45 42.42L50.39 40.5L50.31 38.66L50.18 36.9L50.03 35.2L49.83 33.58L49.61 32.02L49.34 30.54L49.05 29.14L48.71 27.8L48.35 26.53L47.96 25.32L47.55 24.16L47.11 23.06L46.65 22.03L46.16 21.04L45.65 20.12L45.11 19.26L44.5 18.38L43.91 17.64L43.36 17L42.73 16.35L42.1 15.73L41.5 15.21L40.78 14.64L40.09 14.15L39.47 13.76L38.68 13.32L37.88 12.93L37.21 12.65L36.46 12.37L35.7 12.13L34.99 11.93L34.16 11.72L33.32 11.55L32.2 11.39L31.9 11.38H20.73Q18.53 11.38 18.53 13.58V75.2Q18.53 77.4 20.73 77.4ZM73.33 80.6Q74.01 80.6 75.96 80.5Q77.91 80.4 80.15 80.36Q82.4 80.31 84.06 80.31Q85.71 80.31 87.81 80.36Q89.91 80.4 91.71 80.5Q93.52 80.6 94.2 80.6Q95.57 80.6 95.57 79.04Q95.57 77.38 94.2 77.38Q91.18 77.38 90.1 75.97Q89.03 74.55 89.03 71.24V42.91H86.99L79.16 35.73V42.91H79.15Q79.18 43.46 79.18 44.12V71.24Q79.18 74.55 78.01 75.97Q76.84 77.38 73.33 77.38Q71.77 77.38 71.77 79.04Q71.77 80.6 73.33 80.6ZM78.04 21.41H88.7Q89.91 19.76 89.91 17.59Q89.91 14.76 88.01 12.91Q86.1 11.05 83.37 11.05Q80.64 11.05 78.74 12.91Q76.84 14.76 76.84 17.59Q76.84 19.76 78.04 21.41ZM125.02 81.77Q121.61 81.77 118.15 80.8Q114.68 79.82 112.34 78.84Q110.2 77.97 108.64 78.94Q107.66 79.62 106.78 80.7Q105.81 81.67 104.78 81.28Q103.76 80.89 103.76 79.53V66.55Q103.76 65.29 104.88 65.09Q106 64.9 106.59 65.87Q113.51 77.38 125.22 77.38Q129.8 77.38 132.97 75.43Q136.14 73.48 136.14 69.87Q136.14 67.24 133.85 65.87Q131.56 64.51 128 63.68Q124.44 62.85 120.44 61.97Q116.44 61.09 112.88 59.48Q109.32 57.87 107.03 55Q104.73 52.12 104.73 47.34Q104.73 44.12 106.44 41.19Q108.15 38.27 111.76 36.41Q115.37 34.56 120.83 34.56Q123.95 34.56 126.97 35.24Q130 35.93 132.24 36.9Q133.7 37.49 134.63 37.49Q135.56 37.49 136.05 37.1Q136.53 36.71 137.07 36.27Q137.61 35.83 138 35.44Q138.87 34.85 139.61 35Q140.34 35.15 140.34 36.41V48.02Q140.34 49.29 139.17 49.53Q138 49.78 137.61 48.8Q135.17 43.14 130.88 40.75Q126.58 38.36 122.29 38.36Q117.22 38.36 114.68 40.51Q112.15 42.66 112.15 45.48Q112.15 47.92 114.39 49.14Q116.63 50.36 120.2 51.04Q123.76 51.73 127.75 52.56Q131.75 53.39 135.31 54.95Q138.87 56.51 141.12 59.43Q143.36 62.36 143.36 67.43Q143.36 71.43 141.12 74.7Q138.87 77.97 134.78 79.87Q130.68 81.77 125.02 81.77ZM173.89 81.77Q167.94 81.77 162.77 79.43Q157.6 77.09 154.43 72.02Q151.26 66.94 151.26 58.85Q151.26 52.12 154.14 46.61Q157.02 41.1 162.38 37.83Q167.75 34.56 175.26 34.56Q179.35 34.56 182.91 36.02Q186.47 37.49 188.72 40.07Q190.96 42.66 190.96 46.17Q190.96 48.7 189.21 50.65Q187.45 52.61 184.82 52.61Q182.18 52.61 180.72 51.24Q179.26 49.87 179.35 47.63Q179.35 45.78 180.38 44.7Q181.4 43.63 181.79 41.78Q182.18 40.71 180.72 39.49Q179.26 38.27 175.94 38.27Q173.01 38.27 169.84 40.17Q166.67 42.07 164.43 46.56Q162.19 51.04 162.19 58.85Q162.19 67.72 166.04 72.21Q169.89 76.7 175.75 76.7Q179.55 76.7 182.38 75.19Q185.21 73.67 187.11 71.53Q189.01 69.38 189.89 67.33Q190.57 65.77 192.13 66.46Q193.69 67.04 193.01 68.7Q192.03 71.33 189.89 74.36Q187.74 77.38 183.94 79.58Q180.13 81.77 173.89 81.77ZM222.66 81.77Q216.13 81.77 211.1 78.65Q206.08 75.53 203.25 70.16Q200.42 64.8 200.42 58.07Q200.42 51.34 203.25 46.02Q206.08 40.71 211.1 37.63Q216.13 34.56 222.66 34.56Q229.3 34.56 234.27 37.63Q239.25 40.71 242.07 46.02Q244.9 51.34 244.9 58.07Q244.9 64.8 242.07 70.16Q239.25 75.53 234.27 78.65Q229.3 81.77 222.66 81.77ZM222.66 78.55Q228.52 78.55 231.25 72.89Q233.98 67.24 233.98 58.07Q233.98 49 231.25 43.39Q228.52 37.78 222.66 37.78Q216.81 37.78 214.08 43.39Q211.35 49 211.35 58.07Q211.35 67.24 214.08 72.89Q216.81 78.55 222.66 78.55ZM275.04 81.77Q273.48 81.77 272.8 81.19Q272.12 80.6 271.73 79.62Q271.53 78.94 270.51 76.31Q269.48 73.67 268.07 69.97Q266.65 66.26 265.04 62.16Q263.44 58.07 262.02 54.31Q260.61 50.56 259.53 47.87Q258.46 45.19 258.17 44.31Q256.12 38.85 252.02 38.85Q250.66 38.85 250.66 37.19Q250.66 35.63 252.02 35.63Q253.1 35.63 255.44 35.78Q257.78 35.93 260.22 35.93Q261.87 35.93 264.07 35.83Q266.26 35.73 268.22 35.68Q270.17 35.63 270.85 35.63Q272.31 35.63 272.31 37.19Q272.31 38.85 270.85 38.85Q269 38.85 268.22 39.83Q267.43 40.8 267.82 42.17Q268.02 42.95 269.09 45.73Q270.17 48.51 271.58 52.26Q272.99 56.02 274.36 59.63Q275.73 63.24 276.75 65.82Q277.77 68.41 277.87 68.8Q278.07 69.29 278.51 69.24Q278.94 69.19 279.14 68.7Q279.43 68.02 280.26 65.77Q281.09 63.53 282.26 60.56Q283.43 57.58 284.55 54.61Q285.68 51.63 286.55 49.39Q287.43 47.14 287.63 46.46Q288.8 42.75 287.28 40.8Q285.77 38.85 282.75 38.85Q281.29 38.85 281.29 37.19Q281.29 35.63 282.75 35.63Q283.82 35.63 285.82 35.78Q287.82 35.93 290.26 35.93Q292.8 35.93 294.99 35.78Q297.18 35.63 298.26 35.63Q299.62 35.63 299.62 37.19Q299.62 38.85 298.26 38.85Q296.11 38.85 294.11 40.95Q292.11 43.05 290.45 47.63Q290.26 48.12 289.38 50.41Q288.5 52.7 287.28 56.07Q286.07 59.43 284.65 63.14Q283.24 66.85 281.92 70.31Q280.6 73.77 279.63 76.31Q278.65 78.84 278.26 79.72Q277.87 80.7 277.19 81.23Q276.51 81.77 275.04 81.77ZM328.5 81.77Q317.86 81.77 311.67 75.67Q305.48 69.58 305.48 58.95Q305.48 52.22 308.26 46.7Q311.04 41.19 316.11 37.88Q321.18 34.56 327.81 34.56Q332.98 34.56 336.74 36.61Q340.49 38.66 342.93 41.92Q345.37 45.19 346.59 48.95Q347.81 52.7 347.81 56.12Q347.81 57.58 345.96 57.58H317.77Q316.4 57.58 316.4 59.14Q316.4 65.87 318.01 69.63Q319.62 73.38 322.59 74.94Q325.57 76.5 329.47 76.5Q334.54 76.5 338.3 74.21Q342.05 71.92 344.2 69.09Q345.27 67.82 346.64 68.7Q348 69.58 347.03 71.04Q345.37 73.58 342.98 76.06Q340.59 78.55 337.08 80.16Q333.57 81.77 328.5 81.77ZM318.35 53.78H334.84Q336.69 53.78 336.69 52.02Q336.69 48.22 335.86 45.05Q335.03 41.88 333.03 39.93Q331.03 37.97 327.62 37.97Q323.23 37.97 320.64 41.97Q318.06 45.97 316.89 52.31Q316.79 52.9 316.99 53.29Q317.38 53.78 318.35 53.78ZM356.49 80.6Q357.56 80.6 361.07 80.45Q364.59 80.31 368.88 80.31Q374.05 80.31 377.27 80.45Q380.49 80.6 381.46 80.6Q383.02 80.6 383.02 78.94Q383.02 77.38 381.46 77.38Q378.14 77.38 375.95 76.02Q373.76 74.65 373.76 71.24V56.6Q373.76 52.41 375.36 48.56Q376.97 44.7 379.51 42.22Q382.05 39.73 384.58 39.73Q386.05 39.73 386.48 40.61Q386.92 41.49 386.92 43.44Q386.92 45.09 388.19 46.9Q389.46 48.7 392.87 48.7Q395.99 48.7 397.51 46.61Q399.02 44.51 399.02 42.56Q399.02 39.05 396.39 36.8Q393.75 34.56 388.48 34.56Q385.27 34.56 382.58 35.97Q379.9 37.39 377.8 39.44Q375.71 41.49 374.15 43.63Q373.85 44.02 373.56 43.92Q373.27 43.83 373.27 43.53V42.91H371.9L364.07 35.73V42.91H364.05Q364.1 43.47 364.1 44.12V71.43Q364.1 74.75 362.29 76.06Q360.49 77.38 356.49 77.38Q355.12 77.38 355.12 78.94Q355.12 80.6 356.49 80.6ZM492.21 21.26 481.78 11.7V40.12L481.71 40.79L481.45 41.48L480.99 42.15L478.81 44.31L477.48 45.47L476.53 46.12L475.58 46.6L474.7 46.84L473.76 46.89L472.83 46.69L471.94 46.29L470.99 45.63L470.01 44.72L468.15 42.49L463.31 35.68L461.81 34.04L460.51 33L459.76 32.59L459.01 32.34L457.71 32.27L456.4 32.65L454.51 33.71L453.43 33.91L452.77 33.83L452.15 33.62L451.59 33.27L451.16 32.87L450.66 32.05L450.44 31.06L450.44 17.65L439.91 8V80.6H450.44L450.48 45.5L450.73 44.73L451.18 44.05L453.23 42L454.51 40.86L455.5 40.14L456.45 39.62L457.33 39.34L458.15 39.25L459.13 39.37L460.13 39.78L461.1 40.42L462.17 41.39L464.06 43.66L468.91 50.46L470.4 52.11L471.71 53.15L472.46 53.55L473.2 53.8L474.51 53.87L475.82 53.5L477.71 52.43L478.86 52.24L479.44 52.31L480.07 52.53L480.63 52.87L481.1 53.33L481.58 54.16L481.78 55.16L481.78 80.6H492.21ZM529.95 81.77Q523.41 81.77 518.39 78.65Q513.36 75.53 510.54 70.16Q507.71 64.8 507.71 58.07Q507.71 51.34 510.54 46.02Q513.36 40.71 518.39 37.63Q523.41 34.56 529.95 34.56Q536.58 34.56 541.55 37.63Q546.53 40.71 549.36 46.02Q552.19 51.34 552.19 58.07Q552.19 64.8 549.36 70.16Q546.53 75.53 541.55 78.65Q536.58 81.77 529.95 81.77ZM529.95 78.55Q535.8 78.55 538.53 72.89Q541.26 67.24 541.26 58.07Q541.26 49 538.53 43.39Q535.8 37.78 529.95 37.78Q524.09 37.78 521.36 43.39Q518.63 49 518.63 58.07Q518.63 67.24 521.36 72.89Q524.09 78.55 529.95 78.55ZM560.87 80.6Q561.55 80.6 563.5 80.5Q565.45 80.4 567.7 80.36Q569.94 80.31 571.6 80.31Q573.26 80.31 575.25 80.36Q577.25 80.4 578.91 80.5Q580.57 80.6 581.25 80.6Q582.72 80.6 582.72 78.94Q582.72 77.38 581.25 77.38Q579.11 77.38 577.84 76.36Q576.57 75.33 576.57 71.92V61.87Q576.57 60.41 577.35 59.63Q578.23 58.85 578.96 58.17Q579.69 57.48 580.38 56.9Q580.75 56.57 581.06 56.62Q581.39 56.68 581.64 57.19Q582.13 57.78 583.2 59.58Q584.28 61.38 585.64 63.73Q587.01 66.07 588.37 68.36Q589.74 70.65 590.72 72.36Q591.69 74.06 591.98 74.55Q592.76 75.63 592.42 76.5Q592.08 77.38 590.52 77.38Q589.15 77.38 589.15 78.94Q589.15 80.6 590.52 80.6Q591.59 80.6 593.98 80.45Q596.37 80.31 598.81 80.31Q601.35 80.31 604.18 80.45Q607 80.6 608.08 80.6Q609.54 80.6 609.54 78.94Q609.54 77.38 608.08 77.38Q606.22 77.38 604.86 75.82Q603.49 74.26 601.93 72.11Q601.64 71.63 600.42 69.72Q599.2 67.82 597.54 65.19Q595.88 62.55 594.18 59.77Q592.47 56.99 591.01 54.61Q589.54 52.22 588.76 50.95Q588.18 49.78 589.06 49Q590.42 47.83 591.2 47.09Q591.98 46.36 592.37 45.97Q596.27 42.07 599.45 40.51Q602.62 38.95 605.54 38.95Q606.22 38.95 606.57 38.46Q606.91 37.97 606.91 37.29Q606.91 35.73 605.54 35.73Q604.47 35.73 602.03 35.83Q599.59 35.93 597.15 35.93Q594.62 35.93 592.03 35.83Q589.45 35.73 588.37 35.73Q587.01 35.73 587.01 37.29Q587.01 37.97 587.35 38.46Q587.69 38.95 588.37 38.95Q590.81 38.95 591.3 40.85Q591.79 42.75 589.15 45.09Q587.69 46.36 584.62 49.09Q581.55 51.83 577.55 55.63Q577.25 56.02 576.91 55.92Q576.57 55.82 576.57 55.43V16.96H574.62L566.79 9.78V16.96H566.78Q566.82 17.55 566.82 18.27V72.11Q566.82 74.94 565.4 76.16Q563.99 77.38 560.87 77.38Q559.4 77.38 559.4 78.94Q559.4 80.6 560.87 80.6ZM635.97 81.77Q639.78 81.77 642.36 80.45Q644.95 79.14 646.56 77.43Q648.17 75.72 648.95 74.75Q649.44 74.16 649.78 74.21Q650.12 74.26 650.12 74.94Q650.22 75.63 650.26 76.75Q650.31 77.87 650.31 78.45Q650.41 80.6 652.65 80.6Q653.24 80.6 654.95 80.55Q656.65 80.5 658.65 80.5Q660.65 80.5 662.21 80.45Q663.77 80.4 664.07 80.4Q665.63 80.4 665.63 78.84Q665.63 77.38 664.16 77.28Q663.68 77.09 663.14 76.94Q662.6 76.8 662.02 76.7Q660.75 76.41 660.21 75.63Q659.68 74.85 659.68 72.31V42.81H657.73L649.89 35.63V42.81H649.88Q649.92 43.37 649.92 44.02V64.7Q649.92 68.99 647.53 72.21Q645.14 75.43 640.07 75.43Q636.07 75.43 633.58 73.14Q631.1 70.85 631.1 65.87V42.81H629.15L621.31 35.63V42.81H621.3Q621.34 43.37 621.34 44.02V67.43Q621.34 74.75 625.39 78.26Q629.44 81.77 635.97 81.77ZM688.94 81.77Q686.4 81.77 684.06 80.99Q681.72 80.21 680.26 78.21Q678.8 76.21 678.8 72.8V40.22Q678.8 39.44 677.92 39.44H672.16Q670.7 39.44 670.7 37.97V37.58Q670.7 36.9 671.14 36.56Q671.58 36.22 672.16 36.12Q677.53 34.37 680.36 30.41Q683.18 26.46 683.87 19.64Q683.87 18.08 685.43 18.08H686.99Q687.57 18.08 688.06 18.51Q688.55 18.95 688.55 19.64V34.85Q688.55 35.73 689.33 35.73H700.06Q700.74 35.73 701.13 36.17Q701.52 36.61 701.52 37.1V37.97Q701.52 39.44 700.06 39.44H689.33Q688.55 39.44 688.55 40.22V69.48Q688.55 74.85 694.01 74.85Q696.55 74.85 698.5 73.28Q700.45 71.72 701.52 69.68Q702.01 68.89 702.6 68.85Q703.18 68.8 703.86 69.19Q705.03 69.97 704.35 71.53Q702.79 75.43 699.04 78.6Q695.28 81.77 688.94 81.77ZM732.44 81.77Q725.91 81.77 720.88 78.65Q715.86 75.53 713.03 70.16Q710.2 64.8 710.2 58.07Q710.2 51.34 713.03 46.02Q715.86 40.71 720.88 37.63Q725.91 34.56 732.44 34.56Q739.08 34.56 744.05 37.63Q749.03 40.71 751.85 46.02Q754.68 51.34 754.68 58.07Q754.68 64.8 751.85 70.16Q749.03 75.53 744.05 78.65Q739.08 81.77 732.44 81.77ZM732.44 78.55Q738.3 78.55 741.03 72.89Q743.76 67.24 743.76 58.07Q743.76 49 741.03 43.39Q738.3 37.78 732.44 37.78Q726.59 37.78 723.86 43.39Q721.13 49 721.13 58.07Q721.13 67.24 723.86 72.89Q726.59 78.55 732.44 78.55Z%22/%3E%3C/svg%3E") left center / contain no-repeat; color: transparent; font-size: 0; }
@media (max-width: 767px) { .site-header .site-header__logo .site-header__name { width: 198px; height: 26px; } }

/* ===== 2026-11-05 TOP の入口（写真・見出し・一文 → 旅程づくり）===== */
.entries { margin-top: var(--sp-6); }
.entries__intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-4); align-items: end; padding-bottom: var(--sp-5); border-bottom: 1px solid var(--c-text); }
.entries__title { grid-column: 1 / span 6; margin: 0; font-size: clamp(1.75rem, 1.1rem + 2vw, 2.75rem); font-weight: 900; line-height: 1.35; letter-spacing: .02em; font-feature-settings: "palt" 1; }
.entries__lead { grid-column: 7 / -1; margin: 0; font-size: var(--t-md); line-height: 2; }
.entries__how { grid-column: 7 / -1; margin: 0; font-size: var(--t-meta); color: var(--c-accent); font-weight: 700; }
.entries__group { margin-top: var(--sp-6); }
.entries__group-title { margin: 0 0 var(--sp-4); font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-eyebrow); color: var(--c-accent); }
.entries__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-5) var(--sp-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.entries__group--four .entries__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.door { min-width: 0; }
.door__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.door .media { aspect-ratio: 3 / 2; margin-bottom: var(--sp-3); }
.entries__group--four .door .media { aspect-ratio: 4 / 5; }
.door .media img { transition: transform var(--dur-slow) var(--ease); }
.door__link:hover .media img { transform: scale(1.03); }
.media--pending { display: grid; place-items: center; background: var(--semantic-color-surface-champagne); border: 1px dashed var(--c-line); }
.media__pending { font-size: var(--t-sm); color: var(--c-text-weak); }
.door__title { margin: 0 0 var(--sp-2); font-size: var(--t-title); line-height: 1.5; font-weight: 700; font-feature-settings: "palt" 1; }
.entries__group--four .door__title { font-size: var(--t-md); }
.door__text { margin: 0 0 var(--sp-3); font-size: var(--t-meta); line-height: 1.85; color: var(--c-text-weak); }
.door__go { margin-top: auto; font-size: var(--t-sm); font-weight: 700; color: var(--c-accent); }
.door__go::after { content: " →"; }
.door__link:hover .door__title { text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 1023px) { .entries__group--four .entries__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .entries__intro { display: block; }
  .entries__lead { margin-top: var(--sp-3); font-size: var(--t-ui); }
  .entries__how { margin-top: var(--sp-3); }
  .entries__list, .entries__group--four .entries__list { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .door .media, .entries__group--four .door .media { aspect-ratio: 16 / 9; }
}

/* ===== 2026-11-05 入口からの質問（suggest.html?entry=…）===== */
.is-wiz .suggest-form { display: none; }
.is-wiz main > .lead { display: none; }
.wiz { margin: var(--sp-4) auto var(--sp-5); }
.wiz__entry { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-3); margin: 0 0 var(--sp-4); padding: var(--sp-3) var(--sp-4); background: var(--semantic-color-surface-champagne); border-radius: var(--radius); }
.wiz__entry span { font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-eyebrow); color: var(--c-accent); }
.wiz__entry strong { font-size: var(--t-md); }
.wiz__progress { list-style: none; margin: 0 0 var(--sp-4); padding: 0; display: flex; gap: var(--sp-2); counter-reset: s; }
.wiz__progress li { flex: 1; font-size: var(--t-xs); color: var(--c-text-weak); border-top: 3px solid var(--c-line); padding-top: var(--sp-2); }
.wiz__progress li span { display: inline-block; margin-right: 6px; font-weight: 900; }
.wiz__progress li.is-done { border-top-color: var(--c-accent); }
.wiz__progress li.is-current { border-top-color: var(--c-text); color: var(--c-text); font-weight: 700; }
.wiz__q { margin: 0 0 var(--sp-4); font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.125rem); font-weight: 900; outline: none; }
.wiz__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); }
.wiz__opts--text { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.wiz__opt { font: inherit; color: inherit; text-align: left; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius); padding: 0; cursor: pointer; overflow: hidden; display: flex; flex-direction: column; transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); }
.wiz__opt:hover { border-color: var(--c-text); transform: translateY(-2px); }
.wiz__opt.is-on { border-color: var(--c-accent); box-shadow: 0 0 0 2px var(--c-accent); }
.wiz__img { display: block; aspect-ratio: 3 / 2; background: var(--semantic-color-surface-champagne); }
.wiz__img img { width: 100%; height: 100%; object-fit: cover; }
.wiz__label { display: block; padding: var(--sp-3); font-weight: 700; font-size: var(--t-body); }
.wiz__opts--text .wiz__label { padding: var(--sp-4) var(--sp-3); text-align: center; font-size: var(--t-title); }
.wiz__nav { margin: var(--sp-4) 0 0; display: flex; gap: var(--sp-3); align-items: center; }
.wiz__summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.wiz__chips { margin: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.wiz__chips span { padding: 6px 14px; border-radius: var(--radius-pill); background: var(--c-primary); color: var(--c-on-primary); font-weight: 700; font-size: var(--t-meta); }
@media (max-width: 767px) { .wiz__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); } .wiz__progress li { font-size: 0; } .wiz__progress li span { font-size: var(--t-xs); } }
@media (prefers-reduced-motion: reduce) { .wiz__opt, .door .media img { transition: none; } }

/* ===== 2026-11-05 design-critique の反映 ===== */
.entries__group-title { font-size: var(--t-title); letter-spacing: .04em; color: var(--c-text); padding-bottom: var(--sp-2); border-bottom: 1px solid var(--c-line); }
.door__go { font-size: var(--t-sm); }
.is-wiz main > h1 { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); margin-bottom: var(--sp-3); }
@media (max-width: 767px) {
  /* スマホは群ごとに横へ送る。8枚を縦に積むと長くなりすぎるため */
  .entries__list, .entries__group--four .entries__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: var(--sp-3); margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); padding-bottom: var(--sp-2); scrollbar-width: thin; }
  .door { flex: 0 0 82%; scroll-snap-align: start; }
  .door .media, .entries__group--four .door .media { aspect-ratio: 4 / 3; }
  .entries__group { margin-top: var(--sp-5); }
}

/* ===== 2026-11-05 デザイントークンのページ（tokens.html）===== */
.tk { margin-bottom: var(--sp-6); }
.tk h1 { font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); margin: var(--sp-4) 0 var(--sp-3); }
.tk__lead { max-width: 44em; font-size: var(--t-md); }
.tk__sec { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--c-text); }
.tk__sec h3 { margin: var(--sp-4) 0 var(--sp-2); font-size: var(--t-md); }
.tk__note { color: var(--c-text-weak); font-size: var(--t-sm); }
.tk code { font-size: var(--t-xs); background: var(--c-surface); padding: 1px 6px; border-radius: var(--radius); }
.tk-colors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--sp-3); }
.tk-colors li { display: flex; flex-direction: column; gap: 2px; font-size: var(--t-sm); }
.tk-sw { display: block; height: 88px; border-radius: var(--radius); border: 1px solid var(--c-line); margin-bottom: var(--sp-2); }
.tk-colors strong { font-size: var(--t-ui); }
.tk__var { align-self: flex-start; }
.tk-type { list-style: none; margin: 0; padding: 0; }
.tk-type li { display: grid; grid-template-columns: 15em minmax(0, 1fr); gap: var(--sp-3); align-items: baseline; padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); }
.tk-type p { margin: 0; overflow-wrap: anywhere; }
.tk-type__meta { display: flex; flex-direction: column; gap: 2px; font-size: var(--t-sm); color: var(--c-text-weak); }
.tk-type__meta strong { color: var(--c-text); }
.tk-eyebrow { font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-eyebrow); color: var(--c-accent); }
.tk-space { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-2); }
.tk-space li { display: grid; grid-template-columns: 6em auto 1fr; gap: var(--sp-3); align-items: center; font-size: var(--t-sm); }
.tk-space__bar { height: 16px; background: var(--c-primary); border-radius: 2px; }
.tk-shapes { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.tk-shape { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--t-sm); }
.tk-shape span { width: 96px; height: 48px; background: var(--semantic-color-surface-champagne); border: 1px solid var(--c-primary); }
.tk-motion { transition: transform var(--dur-slow) var(--ease), background var(--dur-fast) var(--ease); }
.tk-motion:active, .tk-motion.is-moved { transform: translateX(48px); }
.tk-row { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
.tk-doors { max-width: 360px; display: block; }
.tk-opts { max-width: 560px; }
.tk-logo .site-header__name { display: block !important; width: 320px; height: 42px; font-size: 0 !important; color: transparent !important; background: inherit; }
@media (max-width: 767px) { .tk-type li { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); } .tk-doors { display: block; overflow: visible; margin: 0; padding: 0; } .tk-doors .door { flex: none; } }

/* ===== 2026-11-05 スマホのヘッダー：ロゴ・旅程・メニュー（ハンバーガー）。言語はメニューの中 ===== */
.site-nav__langs { display: none; }
@media (max-width: 767px) {
  .site-header { flex-wrap: nowrap !important; gap: var(--sp-2) !important; padding-top: 10px; padding-bottom: 10px; }
  .site-header .site-header__logo { margin-right: auto; }
  .site-header .lang-menu { display: none !important; }
  .site-header .plan-toggle { order: 2 !important; height: 40px; }
  .site-header .site-header__menu { order: 3 !important; width: 44px; height: 40px; padding: 0 !important; justify-content: center; border: 1px solid var(--c-text) !important; background: var(--c-bg); font-size: 0 !important; color: transparent !important; position: relative; }
  .site-header .site-header__menu::before { content: ""; width: 20px; height: 2px; background: var(--c-text); box-shadow: 0 -6px 0 var(--c-text), 0 6px 0 var(--c-text); transition: transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
  .site-header .site-header__menu[aria-expanded="true"]::before { box-shadow: none; transform: rotate(45deg); }
  .site-header .site-header__menu[aria-expanded="true"]::after { content: ""; position: absolute; width: 20px; height: 2px; background: var(--c-text); transform: rotate(-45deg); }
  .site-header .site-nav { display: none; }
  .site-header .site-nav.is-open { display: block; position: fixed; left: 0; right: 0; top: var(--header-h, 61px); bottom: 0; z-index: 40; overflow-y: auto; background: var(--c-bg); padding: var(--sp-3) var(--gutter) var(--sp-5); border-top: 1px solid var(--c-line); }
  .site-header .site-nav.is-open ul { flex-direction: column; gap: 0; padding: 0; }
  .site-header .site-nav.is-open > ul a { display: block; padding: 16px 0; border-bottom: 1px solid var(--c-line); font-size: var(--t-md); font-weight: 700; }
  .site-nav.is-open .site-nav__langs { display: block; margin-top: var(--sp-4); }
  .site-nav__langs-head { margin: 0 0 var(--sp-2); font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-eyebrow); color: var(--c-accent); }
  .site-header .site-nav.is-open .site-nav__langs-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
  .site-nav__langs-list .lang-menu__item { display: flex; align-items: baseline; gap: var(--sp-1); text-decoration: none; padding: 12px 14px !important; border-bottom: 1px solid var(--c-line); color: var(--c-text); font-weight: 400 !important; box-shadow: none !important; justify-content: space-between; padding: 12px 14px; border: 1px solid var(--c-line); border-radius: var(--radius); font-size: var(--t-meta) !important; }
  .site-nav__langs-list .lang-menu__item small { font-size: var(--t-2xs); color: var(--c-text-weak); }
  .site-nav__langs-list .lang-menu__item.is-current { border-color: var(--c-text) !important; background: var(--c-bg); font-weight: 700 !important; }
  html.is-menu-open, html.is-menu-open body { overflow: hidden; }
  /* 下までスクロールしてから開いても、ロゴ・旅程・閉じるボタンの帯を画面の上に出す（11/6） */
  html.is-menu-open .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 41; background: var(--c-bg); }
}

/* ===== 2026-11-05 TOPの組み直し（スマホ）：TOPを目次に。入口は2列、ツアーはタブで3件、宿は簡単なカード、実務は「旅の準備」に ===== */
.trip-tabs, .prep { display: none; }
@media (max-width: 767px) {
  .top2 > .section { margin-top: var(--sp-section-sp, 64px); margin-bottom: var(--sp-section-sp, 64px); }
  .top2 .media--hero { height: 70svh; min-height: 400px; }
  /* 入口：横スライドをやめて2列のタイル。説明の文は質問の画面で出す */
  .top2 .entries__list, .top2 .entries__group--four .entries__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3) 12px; overflow: visible; scroll-snap-type: none; margin-right: 0; padding: 0; }
  .top2 .door { flex: none; min-width: 0; }
  .top2 .door .media { aspect-ratio: 1 / 1; }
  .top2 .door__text, .top2 .door__go { display: none; }
  .top2 .door__title { font-size: var(--t-meta); line-height: 1.5; margin: var(--sp-2) 0 0; }
  .top2 .entries__group + .entries__group { margin-top: var(--sp-5); }
  /* 旅の選び方：タブで切り替え、各3件を横長の行に */
  .top2 .trip-tabs { display: flex; gap: 0; margin: var(--sp-3) 0 var(--sp-4); border-bottom: 1px solid var(--c-line); }
  .top2 .trip-tabs__btn { flex: 1; min-height: 44px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font: inherit; font-size: var(--t-ui); font-weight: 700; color: var(--c-text-weak); cursor: pointer; }
  .top2 .trip-tabs__btn[aria-selected="true"] { color: var(--c-text); border-bottom-color: var(--c-accent); }
  .top2 [data-trip-tabs]:not([data-tab="private"]) .trip--private, .top2 [data-trip-tabs][data-tab="private"] .trip--self { display: none; }
  .top2 .trip { margin: 0; padding: var(--sp-3); border: 0; display: flex; flex-direction: column; }
  .top2 .trip__head, .top2 .trip__intro { display: contents !important; }
  .top2 .trip__price { order: 1; border: 0 !important; padding: 0 !important; color: inherit !important; opacity: .8; }
  .top2 .trip__list { order: 2; }
  .top2 .trip__more { order: 3; }
  .top2 .trip__more .btn { width: 100%; }
  .top2 .trip__list > .card:first-child { border-top: 0; }
  .top2 .trip__eyebrow, .top2 .trip__name, .top2 .trip__lead, .top2 .trip__media { display: none; }
  .top2 .trip__price { margin: 0; color: var(--c-text-weak); font-size: var(--t-sm); }
  .top2 .trip__list { display: grid; grid-template-columns: 1fr; gap: 0; overflow: visible; margin: 0 0 var(--sp-3); }
  .top2 .trip__list > .card { display: block; padding: 12px 0; border: 0; border-top: 1px solid var(--c-line); min-width: 0; }
  .top2 .trip__list > .card:nth-child(n+4) { display: none; }
  .top2 .trip__list .card__link { display: grid; grid-template-columns: 112px 1fr; gap: 12px; align-items: center; }
  .top2 .trip__list .card .media { aspect-ratio: 3 / 2; margin: 0; }
  .top2 .trip__list .card__title { margin: 0; font-size: var(--t-meta); line-height: 1.5; }
  .top2 .trip__list .card > :not(.card__link) { margin-left: 124px; }
  .top2 .trip__list .card__facts, .top2 .trip__list .card__act, .top2 .trip__list .price__note, .top2 .trip__list .card__lead, .top2 .trip__list .card__badge { display: none; }
  .top2 .trip__list .card__ref { margin-top: 2px; font-size: var(--t-sm); }
  /* 写真の右にタイトルと金額をまとめて置く（金額がタイトルから離れて下に落ちないように） */
  .top2 .trip__list > .card { display: grid; grid-template-columns: 112px 1fr; column-gap: 12px; align-items: start; }
  .top2 .trip__list > .card:nth-child(n+4) { display: none; }
  .top2 .trip__list .card__link { display: contents; }
  .top2 .trip__list .card .media { grid-column: 1; grid-row: 1 / span 2; }
  .top2 .trip__list .card__title { grid-column: 2; grid-row: 1; align-self: end; }
  .top2 .trip__list .card > :not(.card__link) { margin-left: 0; grid-column: 2; }
  .top2 .trip__list .card__ref { grid-row: 2; align-self: start; margin-top: 4px; font-size: var(--t-sm); line-height: 1.5; }
  .top2 .trip__list .card__ref-label { display: inline; margin-right: 6px; font-size: var(--t-xs); }
  .top2 .trip__more { margin: 0; }
  .top2 .ways { margin-top: var(--sp-4); }
  /* 泊まる：横スライドのまま、写真・種類・めやすだけ */
  .top2 .section--stay .card-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 72%; grid-template-columns: none; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--sp-2); }
  .top2 .section--stay .card-grid > .card { scroll-snap-align: start; min-width: 0; border: 0; padding: 0; }
  .top2 .section--stay .card__title { font-size: var(--t-title); margin: var(--sp-2) 0 var(--sp-1); }
  .top2 .section--stay .card__ref { margin: var(--sp-1) 0 0; font-size: var(--t-meta); }
  .top2 .section--stay .stay-type__list { display: none; }
  .top2 .section--stay .card__lead { font-size: var(--t-sm); }
  /* 実務は「旅の準備」の3行にまとめ、元の区画はスマホでは出さない */
  .top2 .section--access-strip, .top2 .section--work, .top2 .section--audio { display: none; }
  .top2 .prep { display: block; }
  .top2 .prep__list { list-style: none; margin: var(--sp-3) 0 0; padding: 0; border-top: 1px solid var(--c-line); }
  .top2 .prep__item { display: block; position: relative; padding: var(--sp-3) 32px var(--sp-3) 0; border-bottom: 1px solid var(--c-line); text-decoration: none; color: var(--c-text); }
  .top2 .prep__item::after { content: ""; position: absolute; right: 6px; top: 50%; width: 9px; height: 9px; border-top: 2px solid var(--c-accent); border-right: 2px solid var(--c-accent); transform: translateY(-50%) rotate(45deg); }
  .top2 .prep__name { display: block; font-weight: 700; font-size: var(--t-ui); }
  .top2 .prep__text { display: block; margin-top: 2px; font-size: var(--t-sm); color: var(--c-text-weak); line-height: 1.7; }
}

/* 2026-11-05 表紙のコピーを差し替え（リードが長くなったので、PC の縦書きのリードを小さめに組み、見出しを少し小さくする） */
@media (min-width: 768px) {
  html[lang="ja"] .top2 .hero .hero__text h1 { font-size: min(clamp(2.75rem, calc((100vh - 180px) / 10.5), 5rem), 5.6vw); }
  html[lang="ja"] .top2 .hero .hero__text > p:last-child { font-size: var(--t-body); line-height: 1.9; letter-spacing: .06em; flex: none; margin: 0; }
  html[lang="ja"] .top2 .hero__kicker { font-size: var(--t-meta); }
}
/* 2026-11-05 「過ごし方から、旅程をつくる」は見出しと案内文を1列に重ね、案内文は墨の本文にする。カードのまとまりの見出しはカード名より一段大きく */
.top2 .entries__intro { display: block; }
.top2 .entries__title .ph { display: inline-block; }
.top2 .entries__how { margin-top: var(--sp-3); max-width: 40em; font-size: var(--t-body); font-weight: 400; line-height: 1.9; color: var(--c-text); }
@media (min-width: 768px) {
  .top2 .entries__group { margin-top: var(--sp-6); }
  .top2 .entries__group-title { font-size: var(--t-xl); font-weight: 700; letter-spacing: .04em; padding-bottom: var(--sp-2); margin-bottom: var(--sp-4); }
}
@media (min-width: 768px) and (max-width: 1599px) {
  html[lang="ja"] .top2 .hero .media--hero { grid-column: 1 / span 5; }
  html[lang="ja"] .top2 .hero__text { grid-column: 6 / -1; }
}
/* 2026-11-05 スマホの表紙の見出しは「八ヶ岳と／南アルプスのふもと、／北杜へ。」の3行で組む */
@media (max-width: 767px) {
  html[lang="ja"] .top2 .hero .hero__text h1 { font-size: min(2.5rem, 8.6vw); }
  html[lang="ja"] .top2 .hero .hero__text h1 .ph { display: block; white-space: nowrap; }
}
/* 2026-11-05 カードのマウスオーバーを静かにする：名前は墨のまま細い線が左から伸び、写真がゆっくり寄る。緑は「旅程をつくる →」の矢印だけ */
.door__link:hover, .card__link:hover { color: inherit; }
.door__title, .card__link .card__title { color: var(--c-text); }
.door__link .door__title, .card__link .card__title { text-decoration: underline 1px; text-decoration-color: transparent; text-underline-offset: .3em; transition: text-decoration-color var(--dur-slow) var(--ease); }
.door__link:hover .door__title, .door__link:focus-visible .door__title,
.card__link:hover .card__title, .card__link:focus-visible .card__title { color: var(--c-text); text-decoration: underline 1px; text-decoration-color: color-mix(in srgb, currentColor 60%, transparent); text-underline-offset: .3em; }
.door .media img, .card__link .media img { transition: transform var(--dur-slow) var(--ease), filter var(--dur-slow) var(--ease); }
.door__link:hover .media img, .card__link:hover .media img { transform: scale(1.03); filter: brightness(1.04); }
.door__go::after { content: "→"; display: inline-block; margin-left: .3em; transition: transform var(--dur-fast) var(--ease); }
.door__link:hover .door__go::after { transform: translateX(4px); }
.trip--private .card__link .card__title { color: inherit; }
@media (prefers-reduced-motion: reduce) {
  .door__link .door__title, .card__link .card__title, .door .media img, .card__link .media img, .door__go::after { transition: none; }
  .door__link:hover .media img, .card__link:hover .media img { transform: none; }
}
/* 2026-11-05 表紙の写真：PC は八ヶ岳と南アルプスの山並み、スマホは高原と雪山 */
.hero--mountains picture { display: contents; }
.hero--mountains img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
/* 2026-11-05 カードごとの「旅程をつくる →」は見せず、読み上げだけに残す（すること自体はセクションの案内文で一度だけ伝える） */
.door__go { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: 0; }
.door__go::after { content: none; }
.door__link { position: relative; }
/* 2026-11-05 PC の「旅の選び方」：色の箱をやめ、画面の端から端までの色の帯にする。中身は本文の幅にそろえる */
@media (min-width: 768px) {
  html:has(.top2) { overflow-x: clip; }
  .top2 .trip { margin: 0 calc(50% - 50vw + var(--sbw, 0px) / 2); padding: clamp(3.5rem, 6vw, 6rem) calc(50vw - 50% - var(--sbw, 0px) / 2); border-radius: 0; }
  .top2 .trip + .trip { margin-top: 0; }
  .top2 .trip__head { gap: 0 var(--sp-4); }
  .top2 .trip__intro { grid-column: 1 / span 5; }
  .top2 .trip__media { grid-column: 7 / -1; }
  .top2 .trip--private .trip__intro { grid-column: 8 / -1; }
  .top2 .trip--private .trip__media { grid-column: 1 / span 6; }
  .top2 .trip__name { white-space: nowrap; font-size: clamp(1.75rem, .9rem + 1.9vw, 2.75rem); }
}
/* 音声ガイドの見本はグレーの箱をやめ、上下の細い線で区切る */
.top2 .audio-sample { background: transparent; border: 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); border-radius: 0; padding: var(--sp-4) 0; }
/* 2026-11-05 フッターを整理：ロゴを上に、「このサイトについて」の列はなくし、© と規約・出典・お問合せを最下段の1行にまとめる */
.site-footer__brand { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-4); margin: 0 0 var(--sp-5); }
.site-footer__logo { display: block; width: 214px; height: 28px; font-size: 0; color: transparent; text-decoration: none; background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%228 8 746.7 72.6%22%3E%3Cpath fill=%22%23ffffff%22 d=%22M8.14 8.44H34.55L35.88 8.63L37.11 8.84L38.33 9.09L39.55 9.38L40.76 9.71L41.97 10.08L43.16 10.49L44.33 10.95L45.47 11.46L46.59 12.01L47.68 12.61L48.75 13.25L49.79 13.95L50.81 14.69L51.8 15.47L52.77 16.3L53.71 17.19L54.6 18.12L55.46 19.11L56.28 20.15L57.06 21.24L57.8 22.39L58.51 23.59L59.17 24.84L59.8 26.14L60.38 27.5L60.92 28.92L61.41 30.39L61.83 31.93L62.2 33.53L62.51 35.19L62.77 36.9L62.77 36.91L62.97 38.69L63.11 40.53L63.2 42.43L63.2 42.44L63.22 44.4L63.2 46.29L63.11 48.12L63.11 48.13L62.97 49.9L62.97 49.91L62.77 51.63L62.51 53.3L62.2 54.92L61.83 56.48L61.41 57.99L60.92 59.45L60.38 60.85L59.8 62.2L59.17 63.49L58.5 64.74L57.8 65.94L57.05 67.08L56.26 68.18L55.44 69.22L54.57 70.21L53.67 71.16L52.72 72.05L51.74 72.89L51.74 72.89L50.74 73.69L49.72 74.44L48.67 75.14L48.33 75.36L47.61 75.8L46.51 76.42L45.4 76.99L44.26 77.51L43.1 77.99L41.92 78.42L40.72 78.81L39.52 79.15L38.3 79.46L37.09 79.72L35.87 79.95L34.64 80.13L33.54 80.26H8.14ZM20.87 77.54H26.76L28.99 77.52L29.81 77.48L30.63 77.4L31.44 77.29L32.2 77.16L33.12 76.96L33.87 76.78L34.62 76.56L35.42 76.29L36.2 76L37.13 75.61L37.83 75.27L38.59 74.85L39.39 74.34L40.06 73.87L40.77 73.32L41.52 72.68L42.15 72.09L42.82 71.41L43.47 70.69L44.05 69.98L44.66 69.15L45.29 68.21L45.85 67.28L46.38 66.29L46.88 65.25L47.36 64.15L47.82 63L48.24 61.8L48.65 60.54L49.02 59.22L49.35 57.84L49.65 56.39L49.9 54.87L50.12 53.29L50.29 51.65L50.43 49.93L50.53 48.15L50.58 46.31L50.6 44.4L50.59 42.41L50.53 40.5L50.45 38.65L50.32 36.88L50.17 35.19L49.97 33.56L49.74 32L49.48 30.52L49.18 29.1L48.85 27.76L48.49 26.49L48.1 25.27L47.68 24.11L47.24 23.01L46.78 21.97L46.29 20.98L45.77 20.05L45.23 19.18L44.61 18.3L44.02 17.55L43.46 16.91L42.83 16.25L42.19 15.63L41.59 15.11L40.86 14.53L40.17 14.04L39.54 13.64L38.75 13.19L37.94 12.8L37.26 12.52L36.51 12.24L35.74 11.99L35.02 11.79L34.19 11.59L33.35 11.42L32.21 11.25L31.9 11.24H20.87Q18.67 11.24 18.67 13.44V75.34Q18.67 77.54 20.87 77.54ZM529.95 81.63Q536.54 81.63 541.48 78.53Q546.42 75.43 549.23 70.1Q552.05 64.76 552.05 58.07Q552.05 51.37 549.23 46.09Q546.42 40.8 541.48 37.75Q536.54 34.7 529.95 34.7Q523.45 34.7 518.46 37.75Q513.47 40.8 510.66 46.09Q507.85 51.37 507.85 58.07Q507.85 64.76 510.66 70.1Q513.47 75.43 518.46 78.53Q523.45 81.63 529.95 81.63ZM222.66 81.63Q229.26 81.63 234.2 78.53Q239.14 75.43 241.95 70.1Q244.76 64.76 244.76 58.07Q244.76 51.37 241.95 46.09Q239.14 40.8 234.2 37.75Q229.26 34.7 222.66 34.7Q216.17 34.7 211.18 37.75Q206.19 40.8 203.38 46.09Q200.56 51.37 200.56 58.07Q200.56 64.76 203.38 70.1Q206.19 75.43 211.18 78.53Q216.17 81.63 222.66 81.63ZM732.44 81.63Q739.04 81.63 743.98 78.53Q748.92 75.43 751.73 70.1Q754.54 64.76 754.54 58.07Q754.54 51.37 751.73 46.09Q748.92 40.8 743.98 37.75Q739.04 34.7 732.44 34.7Q725.95 34.7 720.96 37.75Q715.97 40.8 713.16 46.09Q710.34 51.37 710.34 58.07Q710.34 64.76 713.16 70.1Q715.97 75.43 720.96 78.53Q725.95 81.63 732.44 81.63ZM492.07 80.46V21.32L481.92 12.02V40.13L481.84 40.82L481.58 41.55L481.1 42.24L478.91 44.41L477.56 45.58L476.6 46.25L475.63 46.73L474.72 46.98L473.75 47.03L472.79 46.83L471.87 46.41L470.91 45.74L469.91 44.81L468.04 42.57L463.2 35.77L461.72 34.14L460.43 33.11L459.7 32.72L458.99 32.48L457.72 32.41L456.45 32.78L454.55 33.85L453.43 34.05L452.74 33.97L452.09 33.75L451.5 33.38L451.05 32.95L450.53 32.11L450.3 31.07L450.3 17.71L440.05 8.32V80.46H450.3L450.34 45.48L450.6 44.67L451.07 43.96L453.14 41.89L454.42 40.75L455.42 40.02L456.39 39.5L457.3 39.2L458.16 39.1L459.17 39.24L460.2 39.65L461.19 40.31L462.27 41.29L464.17 43.57L469.02 50.37L470.5 52L471.79 53.03L472.51 53.42L473.23 53.66L474.49 53.73L475.76 53.37L477.66 52.3L478.86 52.09L479.48 52.17L480.13 52.4L480.72 52.76L481.21 53.25L481.71 54.11L481.92 55.15L481.92 80.46H492.07ZM560.87 80.46Q561.55 80.46 563.49 80.36Q565.45 80.26 567.69 80.22Q569.94 80.17 571.6 80.17Q573.26 80.17 575.26 80.22Q577.26 80.27 578.92 80.36Q580.57 80.46 581.25 80.46Q582.58 80.46 582.58 78.94Q582.58 77.52 581.25 77.52Q579.06 77.52 577.75 76.47Q576.43 75.4 576.43 71.92V61.87Q576.43 60.35 577.25 59.53L577.26 59.53L577.26 59.52Q578.14 58.74 578.87 58.06Q579.6 57.38 580.28 56.79Q580.71 56.42 581.08 56.49Q581.48 56.56 581.76 57.11Q582.26 57.71 583.32 59.51Q584.4 61.32 585.76 63.65Q587.13 66 588.49 68.29Q589.86 70.58 590.84 72.29Q591.81 73.98 592.1 74.48Q592.92 75.61 592.55 76.55Q592.18 77.52 590.52 77.52Q589.29 77.52 589.29 78.94Q589.29 80.46 590.52 80.46Q591.59 80.46 593.97 80.31Q596.37 80.17 598.81 80.17Q601.35 80.17 604.18 80.31Q607.01 80.46 608.08 80.46Q609.4 80.46 609.4 78.94Q609.4 77.52 608.08 77.52Q606.16 77.52 604.75 75.91Q603.38 74.35 601.82 72.2L601.82 72.19L601.81 72.19Q601.52 71.7 600.3 69.8Q599.08 67.9 597.42 65.26Q595.77 62.63 594.06 59.85L590.89 54.68L588.64 51.02L588.64 51.01Q588.01 49.74 588.96 48.89Q590.33 47.72 591.11 46.99Q591.89 46.26 592.27 45.87Q596.19 41.96 599.38 40.38Q602.58 38.81 605.54 38.81Q606.15 38.81 606.45 38.38Q606.77 37.93 606.77 37.29Q606.77 35.87 605.54 35.87Q604.47 35.87 602.04 35.97Q599.59 36.07 597.15 36.07Q594.61 36.07 592.03 35.97Q589.44 35.87 588.37 35.87Q587.15 35.87 587.15 37.29Q587.15 37.93 587.46 38.38Q587.76 38.81 588.37 38.81Q590.92 38.81 591.44 40.82Q591.94 42.8 589.25 45.2Q587.78 46.47 584.71 49.2Q581.64 51.93 577.65 55.72Q577.3 56.18 576.87 56.06Q576.43 55.93 576.43 55.43V17.1H574.57L566.93 10.1V17.1H566.93Q566.96 17.64 566.96 18.27V72.11Q566.96 75.01 565.49 76.27Q564.04 77.52 560.87 77.52Q559.54 77.52 559.54 78.94Q559.54 80.46 560.87 80.46ZM328.5 81.63Q333.54 81.63 337.02 80.03Q340.51 78.44 342.88 75.97Q345.26 73.49 346.91 70.96Q347.37 70.28 347.28 69.75Q347.19 69.22 346.56 68.82Q345.3 68.01 344.31 69.18Q342.15 72.03 338.37 74.33Q334.58 76.64 329.47 76.64Q325.54 76.64 322.53 75.07Q319.51 73.48 317.88 69.68Q316.26 65.9 316.26 59.14Q316.26 57.44 317.77 57.44H345.96Q347.67 57.44 347.67 56.12Q347.67 52.73 346.46 48.99Q345.24 45.26 342.82 42.01Q340.4 38.77 336.67 36.73Q332.95 34.7 327.81 34.7Q321.22 34.7 316.18 37.99Q311.14 41.29 308.38 46.77Q305.62 52.25 305.62 58.95Q305.62 69.52 311.77 75.57Q317.92 81.63 328.5 81.63ZM635.97 81.63Q639.74 81.63 642.3 80.33Q644.86 79.02 646.46 77.33Q648.06 75.63 648.84 74.66Q649.38 74.01 649.8 74.07Q650.26 74.14 650.26 74.93Q650.36 75.62 650.4 76.74Q650.45 77.86 650.45 78.45V78.45Q650.55 80.46 652.65 80.46Q653.24 80.46 654.94 80.41Q656.65 80.36 658.65 80.36Q660.65 80.36 662.21 80.31Q663.77 80.26 664.07 80.26Q665.49 80.26 665.49 78.84Q665.49 77.51 664.15 77.42L664.13 77.42L664.11 77.41Q663.63 77.22 663.1 77.08Q662.57 76.93 662 76.84L661.99 76.84L661.99 76.83Q660.67 76.53 660.1 75.7Q659.54 74.89 659.54 72.31V42.95H657.67L650.03 35.95V42.95H650.03Q650.06 43.45 650.06 44.02V64.7Q650.06 69.04 647.65 72.29Q645.21 75.57 640.07 75.57Q636.02 75.57 633.49 73.24Q630.96 70.91 630.96 65.87V42.95H629.09L621.45 35.95V42.95H621.45Q621.48 43.45 621.48 44.02V67.43Q621.48 74.68 625.48 78.15Q629.49 81.63 635.97 81.63ZM125.02 81.63Q130.65 81.63 134.72 79.74Q138.78 77.86 141 74.62Q143.22 71.39 143.22 67.43Q143.22 62.41 141.01 59.52Q138.79 56.62 135.26 55.07Q131.71 53.52 127.73 52.69Q123.73 51.86 120.17 51.18Q116.59 50.5 114.32 49.27Q112.01 48.01 112.01 45.48Q112.01 42.59 114.59 40.4Q117.17 38.22 122.29 38.22Q126.62 38.22 130.94 40.63Q135.28 43.04 137.74 48.75L137.74 48.75L137.74 48.75Q138.08 49.62 139.14 49.4Q140.2 49.18 140.2 48.02V36.41Q140.2 35.26 139.58 35.14Q138.91 35 138.09 35.55Q137.69 35.94 137.16 36.38Q136.62 36.81 136.13 37.21Q135.61 37.63 134.63 37.63Q133.68 37.63 132.19 37.03L132.19 37.03L132.19 37.03Q129.95 36.06 126.94 35.38Q123.93 34.7 120.83 34.7Q115.4 34.7 111.82 36.54Q108.25 38.37 106.56 41.26Q104.87 44.16 104.87 47.34Q104.87 52.07 107.14 54.91Q109.41 57.76 112.94 59.35Q116.48 60.96 120.47 61.83Q124.47 62.71 128.03 63.54Q131.61 64.37 133.92 65.75Q136.28 67.16 136.28 69.87Q136.28 73.56 133.05 75.55Q129.84 77.52 125.22 77.52Q113.43 77.52 106.47 65.94Q105.93 65.05 104.91 65.23Q103.9 65.4 103.9 66.55V79.53Q103.9 80.8 104.83 81.15Q105.77 81.51 106.68 80.6Q107.57 79.52 108.56 78.83L108.56 78.83L108.56 78.82Q110.18 77.81 112.4 78.72Q114.73 79.69 118.18 80.66Q121.63 81.63 125.02 81.63ZM732.44 78.69Q726.5 78.69 723.73 72.96Q720.99 67.27 720.99 58.07Q720.99 48.96 723.73 43.33Q726.5 37.64 732.44 37.64Q738.38 37.64 741.15 43.33Q743.9 48.96 743.9 58.07Q743.9 67.27 741.15 72.96Q738.38 78.69 732.44 78.69ZM222.66 78.69Q216.72 78.69 213.95 72.96Q211.21 67.27 211.21 58.07Q211.21 48.96 213.95 43.33Q216.72 37.64 222.66 37.64Q228.6 37.64 231.37 43.33Q234.12 48.96 234.12 58.07Q234.12 67.27 231.37 72.96Q228.6 78.69 222.66 78.69ZM529.95 78.69Q524.01 78.69 521.24 72.96Q518.49 67.27 518.49 58.07Q518.49 48.96 521.24 43.33Q524.01 37.64 529.95 37.64Q535.89 37.64 538.66 43.33Q541.4 48.96 541.4 58.07Q541.4 67.27 538.66 72.96Q535.89 78.69 529.95 78.69ZM173.89 81.63Q180.1 81.63 183.87 79.45Q187.65 77.28 189.77 74.28Q191.91 71.27 192.88 68.65L192.88 68.65L192.88 68.65Q193.2 67.87 193 67.36Q192.81 66.86 192.08 66.59L192.08 66.59L192.08 66.58Q191.35 66.27 190.84 66.46Q190.34 66.66 190.02 67.39Q189.13 69.46 187.21 71.62Q185.3 73.79 182.44 75.31Q179.58 76.84 175.75 76.84Q169.83 76.84 165.93 72.3Q162.05 67.78 162.05 58.85Q162.05 51.01 164.31 46.5Q166.57 41.97 169.77 40.05Q172.98 38.13 175.94 38.13Q179.31 38.13 180.81 39.38Q182.34 40.66 181.93 41.82Q181.53 43.7 180.48 44.8Q179.49 45.83 179.49 47.63V47.63L179.49 47.64Q179.4 49.82 180.82 51.14Q182.24 52.47 184.82 52.47Q187.39 52.47 189.1 50.56Q190.82 48.65 190.82 46.17Q190.82 42.71 188.61 40.16Q186.39 37.6 182.86 36.15Q179.33 34.7 175.26 34.7Q167.79 34.7 162.45 37.95Q157.12 41.19 154.26 46.67Q151.4 52.15 151.4 58.85Q151.4 66.9 154.55 71.94Q157.7 76.98 162.83 79.3Q167.97 81.63 173.89 81.63ZM688.94 81.63Q695.23 81.63 698.95 78.49Q702.67 75.35 704.22 71.48L704.22 71.47L704.22 71.47Q704.86 70.02 703.79 69.31Q703.15 68.94 702.61 68.99Q702.09 69.03 701.64 69.74Q700.56 71.82 698.59 73.39Q696.6 74.99 694.01 74.99Q691.22 74.99 689.82 73.6Q688.41 72.22 688.41 69.48V40.22Q688.41 39.3 689.33 39.3H700.06Q701.38 39.3 701.38 37.97V37.1Q701.38 36.66 701.03 36.26Q700.68 35.87 700.06 35.87H689.33Q688.41 35.87 688.41 34.85V19.64Q688.41 19.02 687.97 18.62Q687.52 18.22 686.99 18.22H685.43Q684.01 18.22 684.01 19.64V19.64L684.01 19.65Q683.32 26.52 680.47 30.5Q677.61 34.48 672.21 36.25L672.2 36.26L672.19 36.26Q671.64 36.35 671.22 36.67Q670.84 36.97 670.84 37.58V37.97Q670.84 39.3 672.16 39.3H677.92Q678.94 39.3 678.94 40.22V72.8Q678.94 76.16 680.37 78.13Q681.81 80.09 684.11 80.86Q686.43 81.63 688.94 81.63ZM275.04 81.63Q276.46 81.63 277.1 81.12Q277.76 80.61 278.13 79.67L278.13 79.67L278.13 79.67Q278.52 78.79 279.5 76.26L281.79 70.26L284.52 63.09Q285.93 59.38 287.15 56.02Q288.37 52.65 289.25 50.36Q290.13 48.08 290.32 47.58L290.32 47.58Q291.99 42.97 294.01 40.85Q296.05 38.71 298.26 38.71Q299.48 38.71 299.48 37.19Q299.48 35.77 298.26 35.77Q297.19 35.77 295 35.92Q292.8 36.07 290.26 36.07Q287.82 36.07 285.81 35.92Q283.82 35.77 282.75 35.77Q281.43 35.77 281.43 37.19Q281.43 38.71 282.75 38.71Q285.84 38.71 287.4 40.72Q288.95 42.72 287.76 46.5L287.76 46.5Q287.56 47.19 286.68 49.44Q285.81 51.68 284.68 54.65Q283.56 57.63 282.39 60.61Q281.22 63.58 280.39 65.82Q279.56 68.06 279.27 68.75L279.27 68.76Q279.04 69.32 278.52 69.38Q277.98 69.44 277.74 68.85L277.74 68.84L277.74 68.83Q277.64 68.45 276.62 65.87Q275.6 63.29 274.23 59.68L271.45 52.31L268.96 45.78Q267.89 43 267.69 42.21L267.69 42.21Q267.28 40.77 268.11 39.74Q268.93 38.71 270.85 38.71Q272.17 38.71 272.17 37.19Q272.17 35.77 270.85 35.77Q270.17 35.77 268.22 35.82Q266.27 35.87 264.08 35.97Q261.88 36.07 260.22 36.07Q257.77 36.07 255.43 35.92Q253.09 35.77 252.02 35.77Q250.8 35.77 250.8 37.19Q250.8 38.71 252.02 38.71Q256.22 38.71 258.3 44.27L258.3 44.27L258.3 44.27Q258.59 45.14 259.66 47.82Q260.74 50.51 262.15 54.26Q263.57 58.02 265.18 62.11Q266.79 66.21 268.2 69.92L270.64 76.26Q271.66 78.88 271.86 79.58Q272.24 80.52 272.89 81.08Q273.53 81.63 275.04 81.63ZM356.49 80.46Q357.56 80.46 361.07 80.31Q364.58 80.17 368.88 80.17Q374.05 80.17 377.27 80.31Q380.49 80.46 381.46 80.46Q382.88 80.46 382.88 78.94Q382.88 77.52 381.46 77.52Q378.1 77.52 375.88 76.13Q373.62 74.73 373.62 71.24V56.6Q373.62 52.38 375.24 48.5Q376.86 44.62 379.41 42.12Q381.99 39.59 384.58 39.59Q386.13 39.59 386.61 40.55Q387.06 41.45 387.06 43.44Q387.06 45.05 388.31 46.82Q389.53 48.56 392.87 48.56Q395.92 48.56 397.39 46.52Q398.88 44.46 398.88 42.56Q398.88 39.11 396.29 36.91Q393.7 34.7 388.48 34.7Q385.3 34.7 382.65 36.1Q379.98 37.5 377.9 39.54Q375.81 41.58 374.26 43.71Q373.9 44.19 373.52 44.06Q373.13 43.93 373.13 43.53V43.05H371.85L364.21 36.05V43.05H364.2Q364.24 43.55 364.24 44.12V71.43Q364.24 74.82 362.38 76.18Q360.54 77.52 356.49 77.52Q355.26 77.52 355.26 78.94Q355.26 80.46 356.49 80.46ZM73.33 80.46Q74.01 80.46 75.95 80.36Q77.91 80.26 80.15 80.22Q82.4 80.17 84.06 80.17Q85.72 80.17 87.81 80.22Q89.91 80.27 91.72 80.36Q93.52 80.46 94.2 80.46Q95.43 80.46 95.43 79.04Q95.43 77.52 94.2 77.52Q91.11 77.52 89.99 76.05Q88.89 74.6 88.89 71.24V43.05H86.94L79.3 36.05V43.05H79.3Q79.32 43.54 79.32 44.12V71.24Q79.32 74.6 78.12 76.06Q76.9 77.52 73.33 77.52Q71.91 77.52 71.91 79.04Q71.91 79.76 72.25 80.11Q72.6 80.46 73.33 80.46ZM318.35 53.92Q317.31 53.92 316.88 53.38L316.87 53.36L316.86 53.35Q316.65 52.92 316.75 52.29Q317.93 45.92 320.53 41.9Q323.15 37.83 327.62 37.83Q331.09 37.83 333.13 39.82Q335.16 41.8 336 45.01Q336.83 48.2 336.83 52.02Q336.83 53.92 334.84 53.92ZM88.63 21.27Q89.77 19.68 89.77 17.59Q89.77 14.82 87.91 13.01Q86.05 11.19 83.37 11.19Q80.7 11.19 78.84 13.01Q76.98 14.82 76.98 17.59Q76.98 19.68 78.11 21.27H88.63Z%22/%3E%3C/svg%3E") left center / contain no-repeat; }
.site-footer__tagline { font-size: var(--t-sm); letter-spacing: .08em; opacity: .85; }
.site-footer__cols { padding-top: var(--sp-4); }
.site-footer__org { margin: 0; font-size: var(--t-sm); }
.site-footer__legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid rgba(255,255,255,.3); font-size: var(--t-xs); }
.site-footer__copy { margin: 0; }
.site-footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); list-style: none; margin: 0; padding: 0; }
.site-footer__legal-links a { text-decoration: none; }
.site-footer__legal-links a:hover { text-decoration: underline; text-underline-offset: .2em; }
@media (min-width: 1200px) { .site-footer__links { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 767px) { .site-footer__legal { flex-direction: column-reverse; align-items: flex-start; } }
/* 2026-11-05 表紙はパノラマを優先：八ヶ岳から南アルプスまでの写真を画面幅の帯で見せ、コピーはその下に横組みで置く */
html[lang="ja"] .top2 .hero { display: block; height: auto; min-height: 0; max-height: none; padding: 0; margin: 0 calc(50% - 50vw + var(--sbw, 0px) / 2); }
html[lang="ja"] .top2 .hero .media--hero { width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; margin: 0; border-radius: 0; }
html[lang="ja"] .top2 .hero .hero__text { display: block; position: static; height: auto; overflow: visible; width: var(--wrap); max-width: calc(var(--w-max) - 2 * var(--gutter)); margin: 0 auto; padding: var(--sp-4) 0 0 !important; }
html[lang="ja"] .top2 .hero .hero__text h1 { writing-mode: horizontal-tb; height: auto; margin: 0 0 var(--sp-3); line-height: 1.35; letter-spacing: .04em; }
html[lang="ja"] .top2 .hero .hero__text > p:last-child { writing-mode: horizontal-tb; height: auto; max-height: none; margin: 0; }
html[lang="ja"] .top2 .hero__kicker { position: static; margin: 0 0 var(--sp-2); }
@media (min-width: 768px) {
  html[lang="ja"] .top2 .hero .media--hero { aspect-ratio: auto; height: min(68vh, 43vw); min-height: 360px; }
  html[lang="ja"] .top2 .hero .hero__text { padding-top: var(--sp-5) !important; }
  html[lang="ja"] .top2 .hero .hero__text h1 { font-size: clamp(2.25rem, 1rem + 2.9vw, 3.5rem); }
  html[lang="ja"] .top2 .hero .hero__text h1 .ph { display: inline-block; }
  html[lang="ja"] .top2 .hero .hero__text > p:last-child { max-width: 44em; font-size: var(--t-body); line-height: 2; letter-spacing: .04em; }
}
/* 2026-11-05 「旅の選び方」は見出しから色の帯を始め、見出しと帯を1つの章として見せる（白地の見出しの下から急に帯が始まらないように） */
@media (min-width: 768px) {
  .top2 .section--choose { border-top: 0; padding-top: 0; }
  .top2 .section--choose > .section__title { margin: 0 calc(50% - 50vw + var(--sbw, 0px) / 2); padding: clamp(3.5rem, 6vw, 6rem) calc(50vw - 50% - var(--sbw, 0px) / 2) 0; background: var(--semantic-color-surface-champagne); border: 0; }
  .top2 .section--choose > .section__title::before, .top2 .section--choose::before { content: none; }
  .top2 .section--choose .trip--self { padding-top: var(--sp-5); }
}
/* 2026-11-05 文中のリンクは1種類にそろえる：墨の文字に細い下線。マウスを重ねると下線が濃くなるだけで、色は変えない（緑はボタンなど押す面だけに使う） */
a:hover { color: inherit; }
.btn--link, .ways__car a, .search__status a, .page-place .book-action__alt a, .hp__guide a, .page-place .detail__main > .card__tags .tag--link { color: inherit; }
.btn--link, .ways__car a, .search__status a, .hp__guide a, .audio-sample a, .tag--link, .page-place .book-action__alt a {
  text-decoration: underline 1px; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); text-underline-offset: .3em; transition: text-decoration-color var(--dur-fast) var(--ease); }
.btn--link:hover, .ways__car a:hover, .search__status a:hover, .hp__guide a:hover, .audio-sample a:hover, .tag--link:hover, .page-place .book-action__alt a:hover { color: inherit; background: none; text-decoration-color: currentColor; }
/* 2026-11-05 表紙の下に、第三者の認定と数字を3つだけ静かに並べる */
.facts { margin: var(--sp-5) 0 var(--sp-5); padding: var(--sp-4) 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.facts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.facts__list li { display: flex; flex-direction: column; gap: 4px; }
.facts__label { font-size: var(--t-sm); font-weight: 700; letter-spacing: .12em; color: var(--c-text-weak); }
.facts__num { font-size: clamp(1.75rem, 1.1rem + 1.6vw, 2.5rem); font-weight: 900; line-height: 1.2; letter-spacing: .02em; font-feature-settings: "palt" 1; }
.facts__num small { margin-left: .15em; font-size: .5em; font-weight: 700; }
.facts__note { font-size: var(--t-sm); color: var(--c-text-weak); line-height: 1.6; }
.facts__src { margin: var(--sp-3) 0 0; font-size: var(--t-2xs); color: var(--c-text-weak); }
@media (max-width: 767px) {
  .facts { margin: var(--sp-4) 0; padding: var(--sp-3) 0; }
  .facts__list { grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); }
  .facts__list li { display: grid; grid-template-columns: 6.5em auto; align-items: baseline; gap: 0 var(--sp-2); }
  .facts__note { grid-column: 1 / -1; }
  .facts__num { font-size: 1.75rem; }
}
/* 2026-11-05 PC は見出しを縦書きにして、パノラマ写真の右端に重ねる（右から暗くして文字を読みやすく） */
@media (min-width: 768px) {
  html[lang="ja"] .top2 .hero { position: relative; }
  html[lang="ja"] .top2 .hero .media--hero { position: relative; }
  html[lang="ja"] .top2 .hero .media--hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to left, rgba(10, 20, 18, .55), rgba(10, 20, 18, .2) 28%, transparent 45%); pointer-events: none; }
  html[lang="ja"] .top2 .hero .hero__text h1 { position: absolute; z-index: 1; top: var(--sp-5); right: max(var(--gutter), calc((100vw - var(--w-max)) / 2 + var(--gutter))); margin: 0; writing-mode: vertical-rl; height: auto; font-size: clamp(2rem, calc((min(68vh, 43vw) - 5rem) / 10.5), 4.25rem); line-height: 1.45; letter-spacing: .08em; color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
  html[lang="ja"] .top2 .hero .hero__text h1 .ph { display: block; white-space: nowrap; }
}
/* 2026-11-05 トークンの見本は形を見せるだけなので、枠と棒は墨にする（緑は押せるものだけ） */
.tk-shape span { border: 1px solid var(--c-text); background: var(--c-bg); }
.tk-space__bar { background: var(--c-text); }
/* 2026-11-05 ボタン・チップ・選んだ状態は墨にする（緑の塗りは安っぽく見えるため）。深緑は帯とフッターの面にだけ使う */
:root { --c-primary: #151515; --c-on-primary: #ffffff; }
.site-footer { background: var(--component-footer-surface, #163a57); }
.wiz__opt.is-on { border-color: var(--c-text); box-shadow: 0 0 0 2px var(--c-text); }
/* 2026-11-05 ボタン：マウスを重ねるとゆっくり色が変わる。形・色・太さは末尾の「操作部品の統一」でトークンから決める */
.btn { transition: background-color var(--dur-slow) var(--ease), color var(--dur-slow) var(--ease), border-color var(--dur-slow) var(--ease); padding-inline: 28px; display: inline-flex; align-items: center; justify-content: center; }
.btn--link { min-height: 0; padding-inline: 0; display: inline; }
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }
.wiz__opt.is-on { border-color: var(--c-text); box-shadow: inset 0 0 0 1px var(--c-text); background: var(--semantic-color-surface-champagne); }
.trip--private .trip__more .btn--primary { background: var(--c-bg); border-color: var(--c-bg); color: var(--c-deep); }
.trip--private .trip__more .btn--primary:hover { background: transparent; border-color: var(--c-bg); color: var(--c-bg); }
.trip .card__act .btn { border-color: var(--trip-line); }
/* 2026-11-05 見出しの縦書きは盆地の上（稜線より下）に置き、文字の後ろだけを少し暗くする（Takeru 決定） */
@media (min-width: 768px) {
  html[lang="ja"] .top2 .hero .media--hero::after { background: radial-gradient(ellipse 22% 60% at 82% 45%, rgba(10, 20, 18, .42), transparent 75%); }
  html[lang="ja"] .top2 .hero .hero__text h1 { right: auto; left: 76%; }   /* 11/6 甲斐駒の峰を避けて右へ */
}
@media (min-width: 768px) { html[lang="ja"] .top2 .hero .hero__text h1 { top: calc(max(360px, min(68vh, 43vw)) * .24); font-size: clamp(1.75rem, calc((min(68vh, 43vw) * .7) / 11), 3.5rem); } }
.btn { padding-block: 0; line-height: 1.4; }
/* 本文の列に揃える（11/5）：フッターのロゴ行と数字の帯 */
.site-footer__brand { margin-top: 0; }
@media (min-width: 768px) { .site-footer > .site-footer__brand { margin-left: auto; margin-right: auto; } }
.page-home .facts { width: var(--wrap); margin-left: auto; margin-right: auto; }
/* フッターのロゴ行：ロゴ（画像）と添え書きを上下中央で揃える */
.site-footer__brand { align-items: center; }
/* 数字の帯：「約」は単位と同じ小ささ。スマホは見出し→数字→説明の縦積み */
.facts__num small.facts__pre { margin: 0 .1em 0 0; }
@media (max-width: 767px) {
  .facts__list li { display: flex; flex-direction: column; gap: 2px; }
}
/* 見出しの折り返しを、読み込み前後で変えない（スマホ） */
@media (max-width: 767px) { .top2 .entries__title .ph { display: block; } }
/* 操作部品の統一（11/5）：ボタン・入力欄・タブ・チップは角丸4px、文字の太さと字間、枠線の色を component-control / component-button のトークンに揃える */
:root .btn:not(.btn--link), :root .chip, :root .tab, :root .plan-toggle, :root .site-header__menu, :root .audio-btn, :root .search__btn, :root .wiz__opt, :root .wiz__chips span, :root input:is([type=text],[type=search],[type=email],[type=tel],[type=number],[type=date],:not([type])), :root select, :root textarea, :root input.plan__title, :root .search--home input, :root .search--home button, :root .lang-switch a, :root .lang-switch button {
  border-radius: var(--component-control-radius);
}
:root .btn:not(.btn--link), :root .chip, :root .tab, :root .plan-toggle, :root .site-header__menu, :root .audio-btn, :root .search__btn {
  font-weight: var(--component-control-font-weight); letter-spacing: var(--component-control-letter-spacing);
}
:root .btn:not(.btn--link), :root .audio-btn, :root input:is([type=text],[type=search],[type=email],[type=tel],[type=number],[type=date],:not([type])), :root select { min-height: var(--component-control-height); }
:root .chip, :root .tab, :root .plan-toggle, :root .site-header__menu { min-height: var(--component-control-height-compact); }
:root .btn--primary, :root button.btn--primary { background: var(--component-button-primary-background); border-color: var(--component-button-primary-background); color: var(--component-button-primary-text); }
:root .btn--primary:hover { background: var(--component-button-primary-background-hover); border-color: var(--component-button-primary-background-hover); color: var(--component-button-primary-text); }
:root .btn--secondary, :root .btn--add, :root .audio-btn { background: transparent; border: 1px solid var(--component-button-secondary-border); color: var(--component-button-secondary-text); }
:root .btn--secondary:hover, :root .btn--add:hover, :root .audio-btn:hover { border-color: var(--component-button-secondary-border-hover); }
/* ツアーを旅程に保存したあとのボタン：主ボタン（塗り）でも、白地に枠の「✓ 旅程に保存済み」にする。塗りは「まだ押していない、いちばんの操作」だけ（11/11 Takeru） */
:root .btn.is-loaded, :root .btn.btn--primary.is-loaded { background: transparent; border: 1px solid var(--component-button-secondary-border); color: var(--component-button-secondary-text); }
:root .btn.is-loaded:hover, :root .btn.btn--primary.is-loaded:hover { background: transparent; border-color: var(--component-button-secondary-border-hover); color: var(--component-button-secondary-text); }
:root input:is([type=text],[type=search],[type=email],[type=tel],[type=number],[type=date],:not([type])), :root select, :root textarea, :root input.plan__title { border: 1px solid var(--component-control-border); background-color: #fff; color: var(--c-text); font: inherit; font-size: max(16px, 1em); }
:root .chip, :root .tab, :root .site-header__menu { border-color: var(--component-control-border); }
:root .chip[aria-pressed="true"], :root .chip.is-on, :root .tab[aria-selected="true"], :root .tab.is-on { background: var(--component-control-selected); border-color: var(--component-control-selected); color: var(--component-button-primary-text); }
:root .plan-toggle, :root .search__btn { color: var(--component-button-primary-text); }
:root .wiz__chips span { background: transparent; border: 1px solid var(--component-control-border); color: var(--c-text); font-weight: 400; }
/* 帯（深緑）の上の白いボタンも同じ形 */
:root .trip--self .trip__more .btn--primary { color: var(--component-button-primary-text); }
:root .trip .btn--primary, :root .site-footer .btn--primary { border-radius: var(--component-control-radius); }
/* 文字リンク：大きさは周りの文に合わせ、色は墨、細い下線（外部リンクも同じ） */
:root .btn--link, :root .btn--external:not(.btn--primary):not(.btn--secondary) { font-weight: 400; letter-spacing: 0; color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
:root .btn--link:hover, :root .btn--external:not(.btn--primary):not(.btn--secondary):hover { text-decoration-color: currentColor; }
/* TOP のグループ見出し：下線をやめ、余白だけで区切る（11/5） */
.top2 .entries__group-title { border-bottom: 0; padding-bottom: 0; margin-bottom: var(--sp-4); }
/* ツアーの「自分のペースで巡る／専属ガイドと巡る」：ツアーの違いを伝える大事な一文なので、緑の小さな飾り文字ではなく、墨の読める大きさにする（11/5） */
.trip__eyebrow { margin: 0 0 var(--sp-1); font-size: var(--t-lg, 1.25rem); font-weight: 500; letter-spacing: .06em; color: inherit; }
/* ヘッダーの部品（言語・旅程・メニュー・検索）は高さ44pxで揃え、言語ボタンも同じ枠と角に */
:root .lang-menu__btn { border: 1px solid var(--component-control-border); border-radius: var(--component-control-radius); font-weight: var(--component-control-font-weight); }
:root .site-header .lang-menu__btn, :root .site-header .plan-toggle, :root .site-header .site-header__menu, :root .site-header .search__btn, :root .site-header input { min-height: 44px; height: 44px; }
/* アクセスの帯：上下の余白を同じにする（下の内側余白48pxをなくす） */
.top2 .section--access-strip { padding-bottom: 0; }
/* 数字の帯：詰まって見えないよう、上下と項目の間に余白をとる（11/5） */
.page-home .facts { margin-top: var(--sp-6); margin-bottom: var(--sp-6); padding: var(--sp-5) 0; }
.page-home .facts__list { column-gap: var(--sp-6); row-gap: var(--sp-5); }
.page-home .facts__list li { gap: var(--sp-2); }
.page-home .facts__num { margin: var(--sp-1) 0; line-height: 1.1; }
.page-home .facts__note { line-height: 1.8; }
.page-home .facts__src { margin-top: var(--sp-5); line-height: 1.8; }
@media (max-width: 767px) {
  .page-home .facts { padding: var(--sp-5) 0 var(--sp-4); margin-top: var(--sp-5); margin-bottom: var(--sp-5); }
  .page-home .facts__list { row-gap: var(--sp-5); }
}
.facts__src a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-color: color-mix(in srgb, currentColor 45%, transparent); }
.facts__src a:hover { text-decoration-color: currentColor; }
/* TOP「行く場所を一つずつ選ぶ／AIに提案してもらう」：二番手のボタンと同じ形（11/5） */
:root .ways > li:not(.ways__car) > a { border: 1px solid var(--component-button-secondary-border); border-radius: var(--component-control-radius); min-height: var(--component-control-height); padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; font-weight: var(--component-control-font-weight); letter-spacing: var(--component-control-letter-spacing); color: var(--component-button-secondary-text); background: transparent; text-decoration: none; }
/* マウスを重ねたときの動きを1種類に：枠のある部品は「枠が墨になり、面がうすいシャンパン色」。墨の主ボタンだけは深緑になる。動かさない、反転しない */
:root :is(.btn--secondary, .btn--add, .audio-btn, .ways > li:not(.ways__car) > a, .chip:not([aria-pressed="true"]):not(.is-on), .tab:not([aria-selected="true"]), .lang-menu__btn, .site-header__menu, .card__act .btn, .wiz__opt:not(.is-on)) { transition: background-color var(--dur-slow) var(--ease), border-color var(--dur-slow) var(--ease); }
:root :is(.btn--secondary, .btn--add, .audio-btn, .ways > li:not(.ways__car) > a, .chip:not([aria-pressed="true"]):not(.is-on), .tab:not([aria-selected="true"]), .lang-menu__btn, .site-header__menu, .card__act .btn, .wiz__opt:not(.is-on)):hover { border-color: var(--component-button-secondary-border-hover); background: var(--semantic-color-surface-champagne); color: var(--component-button-secondary-text); transform: none; }
:root .trip .card__act .btn:hover { background: transparent; }
/* 音声ガイドの見本：再生バーが長すぎないよう、プレーヤーは640pxまで（11/5） */
.top2 .audio-sample .hp--mini { max-width: 40rem; }
/* 音声ガイドを聴ける場所の一覧：施設名は本文と同じ太さ（太字はやめる）。マウスを重ねると細い下線 */
:root .audio-places a { font-weight: 400; color: var(--c-text); text-decoration: none; }
:root .audio-places a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; }
/* 残っていた例外：セルフツアーの「旅程パネルに読み込む」も二番手と同じ枠と動き、音声の再生ボタン（墨の円）は主ボタンと同じく深緑に */
:root .trip--self .card__act .btn { border-color: var(--component-button-secondary-border); }
:root .trip--self .card__act .btn:hover { border-color: var(--component-button-secondary-border-hover); background: var(--semantic-color-surface-champagne); }
:root .hp__play { transition: background-color var(--dur-slow) var(--ease); }
:root .hp__play:hover { background: var(--component-button-primary-background-hover); }
/* ヘッダーのロゴ：下の添え書きは外し、ロゴを大きく（PC 259×34、タブレット 228×30）。11/5 */
.site-header .site-header__logo .site-header__sub { display: none !important; }
@media (min-width: 768px) { .site-header .site-header__logo .site-header__name { width: 228px; height: 30px; background-size: contain; background-repeat: no-repeat; } }
@media (min-width: 1100px) { .site-header .site-header__logo .site-header__name { width: 259px; height: 34px; } }
/* 2026-11-05 TOPの導入文を、写真と数字の帯のあいだで上下同じ余白に置く */
.page-home { --top-lead-gap: clamp(40px, 5vw, 80px); }
html[lang="ja"] .top2 .hero .hero__text { padding-top: var(--top-lead-gap) !important; }
.page-home .top2 .facts, .page-home .facts { margin-top: var(--top-lead-gap); }
/* 2026-11-05 TOPの「Hokuto, Yamanashi」を2px大きく */
html[lang="ja"] .top2 .hero .hero__kicker { font-size: calc(var(--t-xs) + 2px); }
@media (min-width: 768px) { html[lang="ja"] .top2 .hero .hero__kicker { font-size: calc(var(--t-meta) + 2px); } }
/* 2026-11-05 墨ボタンのマウスオーバーは緑にせず、墨を少し明るくするだけ */
:root .btn--primary, :root .hp__play, :root .audio-callout__button { transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
:root .audio-callout__button:hover { background: var(--component-button-primary-background-hover); }
:root .guide-card__button:hover { background: var(--semantic-color-surface-champagne); color: var(--c-text, #151515); border-color: var(--component-button-secondary-border-hover); }
/* 2026-11-05 旅程ボタン：文字が区切り線より約1px下がって見えるので上に寄せる。PCでは検索の右（いちばん右）に置く */
:root .site-header .plan-toggle { padding-bottom: 2px; }
@media (min-width: 768px) { :root .site-header .plan-toggle { order: 7; } }
:root .site-header .plan-toggle__count { position: relative; border-left-color: transparent; }
:root .site-header .plan-toggle__count::before { content: ""; position: absolute; left: -1px; top: 1.2px; bottom: -1.2px; width: 1px; background: rgba(255, 255, 255, .45); }
/* 2026-11-05 写真カードのマウスオーバー：拡大をやめ、写真をゆっくり少し沈ませ、見出しに細い下線を出す */
:root .door .media img, :root .card__link .media img { transition: filter .6s ease; }
:root .door__link:hover .media img, :root .card__link:hover .media img { transform: none; filter: brightness(.9); }
:root :is(.door__link, .card__link) :is(h2, h3, .door__title, .card__title) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em; text-decoration-color: transparent; transition: text-decoration-color .4s ease; }
:root :is(.door__link, .card__link):hover :is(h2, h3, .door__title, .card__title) { text-decoration-color: currentColor; }
/* 2026-11-05 深緑の帯の白いボタン：マウスオーバーで抜けずに、白→シャンパンへ少しだけ色を変える */
:root .trip--private .trip__more .btn--primary:hover, :root .trip--private .trip__more .btn--primary:focus-visible { background: var(--semantic-color-surface-champagne, #f8f4ec); border-color: var(--semantic-color-surface-champagne, #f8f4ec); color: var(--c-deep, #2f5c4e); }
/* 2026-11-05 白い箱のマウスオーバーはクリーム色にしない：枠が墨になるだけ。面の色は変えない */
:root :is(.btn--secondary, .btn--add, .audio-btn, .ways > li:not(.ways__car) > a, .chip:not([aria-pressed="true"]):not(.is-on), .tab:not([aria-selected="true"]), .lang-menu__btn, .site-header__menu, .card__act .btn, .wiz__opt:not(.is-on), .guide-card__button):hover { background: var(--c-bg, #fff); }
:root .trip .card__act .btn:hover, :root .trip--self .card__act .btn:hover { background: transparent; }
:root .trip--private .trip__more .btn--primary:hover, :root .trip--private .trip__more .btn--primary:focus-visible { background: rgba(255, 255, 255, .86); border-color: rgba(255, 255, 255, .86); color: var(--c-deep, #2f5c4e); }
/* スマホのメニューボタン（≡ / ×）：開いても白のまま、細い枠 */
:root .site-header .site-header__menu, :root .site-header .site-header__menu[aria-expanded="true"] { background: var(--c-bg, #fff) !important; }
/* 2026-11-05 PCヘッダー：言語の切り替えを一番右へ（検索・探す → 旅程 → 日本語）。ロゴとメニューのあいだを少し広く */
@media (min-width: 768px) { :root .site-header .lang-menu { order: 9; } }
@media (min-width: 1100px) { :root .site-header .site-nav { margin-left: var(--sp-3); } }
/* 2026-11-05 TOP「東京から約2時間」：上下の線のあいだで中身が真ん中に来るよう、上下とも48px。下にも細い線 */
.page-home .top2 .section--access-strip, .page-home .section--access-strip { padding-top: var(--sp-5, 48px); padding-bottom: var(--sp-5, 48px) !important; border-bottom: 1px solid var(--c-line); }
/* 2026-11-05 PCヘッダー右側（検索＋探す・旅程・日本語）をひとかたまりで右寄せ。間隔はすべて16px */
@media (min-width: 768px) { :root .site-header .lang-menu { margin-left: 0; } }
@media (min-width: 768px) and (max-width: 1439px) { :root .site-header .site-header__menu { margin-left: auto; } }
@media (min-width: 1440px) { :root .site-header .search--header { margin-left: auto; } }
/* 2026-11-05 TOP：探し方を3つ並べる（検索 → 一覧から選ぶ → AIに提案）。検索バーのすぐ下に置く */
.page-home .ways--find { width: var(--wrap); margin: var(--sp-3) auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
.page-home .ways--find > li { width: auto; }
.page-home .ways--find .ways__note { font-size: var(--t-meta); }
@media (max-width: 767px) { .page-home .ways--find { display: grid; grid-template-columns: minmax(0, 1fr); } .page-home .ways--find > li > a { width: 100%; padding: 0 12px; } .page-home .ways--find .ways__note { grid-column: 1 / -1; } }
/* 2026-11-05 「東京から約2時間」の下の灰色の線は外す（次の見出しの線と二重になるため） */
.page-home .top2 .section--access-strip, .page-home .section--access-strip { border-bottom: 0; padding-bottom: 0 !important; }
/* 2026-11-05 写真のマウスオーバー：ゆっくり（1.2秒）わずかに寄る（3%）＋少し暗く。速く大きく動かさない */
:root .door .media, :root .card__link .media { overflow: hidden; }
:root .door .media img, :root .card__link .media img { transition: transform 1.2s cubic-bezier(.2, .6, .2, 1), filter 1.2s cubic-bezier(.2, .6, .2, 1); }
:root .door__link:hover .media img, :root .card__link:hover .media img { transform: scale(1.03); filter: brightness(.85); }
@media (prefers-reduced-motion: reduce) { :root .door__link:hover .media img, :root .card__link:hover .media img { transform: none; } }
/* 2026-11-05 フォントがそろうまで本文を隠し、そろったら0.25秒で出す（初回だけ。2回目以降はすぐ出る） */
html.wf-wait body { opacity: 0; }
/* 2026-11-10 キービジュアルの文字は、使う字のフォントがそろうまで隠して一度に出す（字が少しずつ置きかわって「描かれていく」ように見えないように）。そろわなければ端末の文字のまま出す */
html.kv-wait .hero__text { visibility: hidden; }
html.kv-fallback .hero__text, html.kv-fallback .hero__text * { font-family: 'Hokuto Fallback', 'Hiragino Sans', 'Noto Sans JP', sans-serif; }
body { transition: opacity .25s ease; }
@media (prefers-reduced-motion: reduce) { body { transition: none; } }
/* 2026-11-05 写真のマウスオーバー（3回目）：動かさない。少し暗くなり、写真の内側に細い白の額縁が浮かぶ */
:root .door__link:hover .media img, :root .card__link:hover .media img { transform: none; filter: brightness(.82); }
:root .door .media img, :root .card__link .media img { transition: filter .8s ease; }
:root .door .media, :root .card__link .media { position: relative; }
:root .door .media::after, :root .card__link .media::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(255, 255, 255, .85); opacity: 0; transition: opacity .8s ease; pointer-events: none; }
:root .door__link:hover .media::after, :root .card__link:hover .media::after, :root .door__link:focus-visible .media::after, :root .card__link:focus-visible .media::after { opacity: 1; }
/* 2026-11-05 写真のマウスオーバー（4回目・決定）：写真は何も変えない。見出しの下に細い線が出るだけ（高級ホテルのサイトにならう） */
:root .door__link:hover .media img, :root .card__link:hover .media img { transform: none; filter: none; }
:root .door .media::after, :root .card__link .media::after { content: none; }
/* TOP 数字の帯（スマホ）: 11/6 殺風景の対策。シャンパンの帯に、数字を左・説明を右の行で並べ、細線で区切る */
@media (max-width: 767px) {
  .page-home .facts { box-sizing: border-box; width: 100%; margin: 48px 0 40px; padding: 36px var(--gutter, 16px) 28px; background: var(--semantic-color-surface-champagne, #f8f4ec); border: 0; }
  .page-home .facts__list { display: block; }
  .page-home .facts__list li { display: grid; grid-template-columns: 6.75rem minmax(0, 1fr); grid-template-areas: "num label" "num note"; align-items: center; column-gap: 16px; row-gap: 2px; padding: 20px 0; border-top: 1px solid rgba(21, 21, 21, .16); }
  .page-home .facts__list li:first-child { border-top: 0; padding-top: 0; }
  .page-home .facts__list li:last-child { padding-bottom: 0; }
  .page-home .facts__num { grid-area: num; margin: 0; font-size: 2.25rem; line-height: 1; white-space: nowrap; }
  .page-home .facts__list li:last-child .facts__num { font-size: 1.75rem; }
  .page-home .facts__label { grid-area: label; font-size: .875rem; letter-spacing: .06em; color: var(--c-text, #151515); }
  .page-home .facts__note { grid-area: note; font-size: .8125rem; line-height: 1.7; }
  .page-home .facts__src { margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(21, 21, 21, .16); font-size: .75rem; }
}

/* TOP「行く場所を探す」: 検索は1行、ほかの探し方は細い線で区切った2つのテキストリンク（タイトル＋1行説明＋矢印） */
.page-home .search--home .search__label { display: block; margin-bottom: 12px; font-size: 1.0625rem; font-weight: 700; letter-spacing: .04em; }
.page-home .finder { width: var(--wrap); margin: 24px auto 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #d6d6d6; border-bottom: 1px solid #d6d6d6; }
.page-home .finder > li { margin: 0; }
.page-home .finder > li + li { border-left: 1px solid #d6d6d6; }
.page-home .finder__link { position: relative; display: grid; gap: 4px; min-height: 48px; padding: 20px 56px 20px 24px; color: var(--c-text, #151515); text-decoration: none; }
.page-home .finder > li:first-child .finder__link { padding-left: 0; }
.page-home .finder__link::after { content: ""; position: absolute; right: 24px; top: 50%; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.page-home .finder__title { font-size: 1rem; font-weight: 700; letter-spacing: .04em; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 6px; text-decoration-thickness: 1px; transition: text-decoration-color .2s ease; }
.page-home .finder__link:hover .finder__title, .page-home .finder__link:focus-visible .finder__title { text-decoration-color: currentColor; }
.page-home .finder__note { font-size: .8125rem; line-height: 1.7; color: var(--c-text-weak, #555); }
@media (max-width: 767px) {
  .page-home .finder { grid-template-columns: 1fr; margin-top: 16px; }
  .page-home .finder > li + li { border-left: 0; border-top: 1px solid #d6d6d6; }
  .page-home .finder__link, .page-home .finder > li:first-child .finder__link { padding: 16px 40px 16px 0; }
  .page-home .finder__link::after { right: 8px; }
}
.page-home .search--home .search__hint { margin-left: 12px; font-size: .8125rem; font-weight: 400; letter-spacing: .02em; color: var(--c-text-weak, #555); }

/* エリアは4つ（白州・武川／小淵沢・長坂／清里・大泉／須玉・明野）。探すページのエリア紹介は2列×2段 */
.card-grid--zones { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 899px) { .card-grid--zones { grid-template-columns: minmax(0, 1fr); } }
.card-grid--zones .card--zone .media { aspect-ratio: 3 / 2; }

/* セルフツアーの番号: 左に専用の列を取らず、写真の左上に重ねる（Takeru 11/6） */
.stops .stop:has(.stop__img) { grid-template-columns: minmax(0, 1fr); position: relative; }
.stops .stop:has(.stop__img) > * { grid-column: 1; }
.stops .stop:has(.stop__img) > .stop__no { position: absolute; top: 10px; left: 10px; z-index: 1; width: 36px; height: 36px; font-size: var(--t-ui); font-weight: 600; box-shadow: 0 0 0 2px rgba(255,255,255,.85); }

/* セルフツアーの地図：七賢と同じ位置関係図に、旅程の順の番号を重ねる（11/6） */
.tour-map { margin: var(--sp-5) 0; }
.tour-map .tour-map__route path { fill: none; stroke: var(--c-text); stroke-width: calc(5px * var(--k, 1)); stroke-dasharray: calc(10px * var(--k, 1)) calc(9px * var(--k, 1)); stroke-linecap: round; }
.tour-map .tour-map__stop line { stroke: var(--c-text); stroke-width: calc(3px * var(--k, 1)); }
.tour-map .tour-map__dot { fill: var(--c-text); }
.tour-map .tour-map__badge { fill: var(--c-text); stroke: #fff; stroke-width: calc(5px * var(--k, 1)); }
.tour-map .tour-map__stop text { fill: #fff; font-weight: 700; }
.tour-map a.tour-map__stop:hover .tour-map__badge { fill: #3a3a3a; }
.tour-map .map__note { margin-top: var(--sp-2); font-size: var(--t-meta); color: var(--c-text-weak); }
/* 一部を拡大して映すので、文字・線・記号は拡大した分だけ小さくし、七賢の地図と同じ見た目の大きさにそろえる */
.tour-map .map__zone .map__region-label { font-size: calc(30px * var(--k, 1)); }
.tour-map .map__zone .map__region-towns { font-size: calc(19px * var(--k, 1)); }
.tour-map :is(.map__station, .map__ic) text { font-size: calc(30px * var(--k, 1)); stroke-width: calc(9px * var(--k, 1)); }
.tour-map .map__station rect { stroke-width: calc(3px * var(--k, 1)); transform: scale(calc(1.5 * var(--k, 1))); }
.tour-map .map__ic circle { stroke-width: calc(4px * var(--k, 1)); transform-box: fill-box; transform-origin: center; transform: scale(var(--k, 1)); }
.tour-map .map__hw path { stroke-width: calc(7px * var(--k, 1)); }
.tour-map .map__rail path { stroke-width: calc(3.5px * var(--k, 1)); }
.tour-map :is(.map__borders path) { stroke-width: calc(4px * var(--k, 1)); }
.tour-map .map__outline path { stroke-width: calc(2px * var(--k, 1)); }
/* セルフツアー・旅程の地図は切り抜くので、地図の外に置いた八ヶ岳南麓高原の名前は欠けてしまう。出さない */
:is(.tour-map, .plan-map) :is(.map__label-leader, .map__zone--yatsugatake .map__region-label) { display: none; }
.tour-map .map__zones path { stroke-width: calc(10px * var(--k, 1)); }
/* スマホ・タブレットのメニューの先頭に検索を置く（11/6） */
.search--menu { display: none; }
@media (max-width: 1099px) {
  .site-header .site-nav.is-open .search--menu { display: grid; gap: 0; margin: 0 0 var(--sp-3); }
  .search--menu .search__row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-1); }
  .search--menu .search__input { font-size: 1rem; min-height: 48px; }
  .search--menu .search__btn { min-height: 48px; padding-inline: var(--sp-3); }
}

/* 北杜市フォトギャラリーの写真：写真の右下に入っているクレジット（© Hokuto City）を切らないため、
   枠に合わせて切り抜くときは右下を基準にする（市の使用許諾：クレジットを加工しない） */
img[data-asset-id^="city-"] { object-position: 100% 100% !important; }

/* 削除した旅程（旅程の名前の下）。ここから復活できる */
.plan__trash { flex-basis: 100%; margin-top: var(--sp-2); font-size: var(--t-sm); }
.plan__trash > summary { cursor: pointer; width: max-content; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.plan__trash-list { list-style: none; margin: var(--sp-2) 0 0; padding: 0; border-top: 1px solid var(--c-line); }
.plan__trash-list > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sp-2); align-items: center; padding: var(--sp-2) 0; border-bottom: 1px solid var(--c-line); }
.plan__trash-name { font-weight: 700; overflow-wrap: anywhere; }
.plan__trash-meta { grid-column: 1; color: var(--c-text-weak); font-size: var(--t-xs); }
.plan__trash-btn { grid-column: 2; grid-row: 1 / span 2; }
.plan__trash .note { margin: var(--sp-1) 0 0; }

/* モデルコース（model-courses.html）：セルフ／プライベートのタブ。# private でプライベートを開く */
.mc .mc__tabs { display: flex; gap: 0; margin: var(--sp-4) 0 var(--sp-4); border-bottom: 1px solid var(--c-line); max-width: 640px; }
.mc .trip-tabs__btn { flex: 1; min-height: 48px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font: inherit; font-size: var(--t-ui); font-weight: 700; color: var(--c-text-weak); cursor: pointer; }
.mc .trip-tabs__btn[aria-selected="true"] { color: var(--c-text); border-bottom-color: var(--c-text); }
.mc:not([data-tab="private"]) .mc__panel--private, .mc[data-tab="private"] .mc__panel--self { display: none; }
.mc__note { margin: 0 0 var(--sp-4); color: var(--c-text-weak); font-size: var(--t-sm); max-width: 40em; }
.mc__all { margin: var(--sp-4) 0 0; }
.mc .tour-group:first-of-type { margin-top: 0; padding-top: 0; }

/* 旅程の名前と保存した旅程の選択欄は、どちらも幅いっぱいに縦に並べる（11/6） */
.plan__switch .plan__name-field { flex: 1 1 100%; }
.plan__switch .plan__pick-field select { width: 100%; box-sizing: border-box; }
/* 選択欄の ⌄ は、右端から少し内側に置く（ブラウザ任せだと右に寄りすぎる） */
:root select:not([multiple]) { -webkit-appearance: none; appearance: none; background-color: var(--c-bg); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23151515' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 12px 8px; padding-right: 40px !important; border: 1px solid var(--c-text); border-radius: var(--radius); color: var(--c-text); }
/* 日付の欄：iPhone の Safari は日付の欄を独自の形で描き、幅 100%・高さ 48px を守らず隣の欄に重なる。選ぶ欄と同じく独自の形を外し、日付は左寄せ（11/11 Takeru「スマホで表示が崩れてる」） */
:root input[type=date] { -webkit-appearance: none; appearance: none; text-align: left; border: 1px solid var(--c-text); border-radius: var(--radius); }
:root input[type=date]::-webkit-date-and-time-value { margin: 0; text-align: left; }
/* 旅程の地図（11/6）：右の列で画面に付いてくる。拡大・縮小のボタンは地図の右上 */
.plan-page__map { position: sticky; top: 88px; align-self: start; }
.plan-map-box .tour-map { margin: 0; }
.tour-map { position: relative; }
.tour-map svg { touch-action: pinch-zoom; cursor: grab; border: 1px solid var(--c-line); }
.tour-map svg:active { cursor: grabbing; }
.map-zoom { position: absolute; top: 8px; right: 8px; z-index: 1; display: flex; flex-direction: column; gap: 4px; }
.map-zoom button { min-width: 40px; min-height: 40px; padding: 0 6px; font: inherit; font-size: var(--t-xs); background: var(--c-bg); color: var(--c-text); border: 1px solid var(--c-text); border-radius: var(--radius); cursor: pointer; }
.map-zoom button:hover { background: var(--c-surface); }
@media (max-width: 767px) { .plan-page__map { position: static; } }
.tour-map .map__note { position: static; }
/* セルフツアーの目次（11/6。七賢のページの目次に合わせる） */
.tour-toc { margin: var(--sp-5) 0 0; padding: var(--sp-3) 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.tour-toc__title { margin: 0 0 var(--sp-2); font-size: var(--t-sm); }
.tour-toc ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--sp-4); max-width: 36rem; }
.tour-toc a { display: flex; align-items: center; min-height: 40px; color: var(--c-text); }
.tour-toc + .section, main [id^="sec-"] { scroll-margin-top: 88px; }
/* 探す・旅程（11/6 Takeru）：広い画面では、一覧や旅程を中央に広く置き、地図は右の余白へ寄せる */
@media (min-width: 1200px) {
  .plan-page, .explore__body { max-width: none; width: auto; margin-left: calc(50% - 50vw + var(--sbw, 0px) / 2); margin-right: calc(50% - 50vw + var(--sbw, 0px) / 2); padding: 0 var(--sp-5); grid-template-columns: minmax(300px, 1fr) minmax(0, 800px) minmax(300px, 1fr); column-gap: var(--sp-5); }
  .plan-page > .plan-page__list, .explore__body > [data-results] { grid-column: 2; grid-row: 1; }
  .plan-page > .plan-page__map, .explore__body > .map { grid-column: 3; grid-row: 1; }
}
/* TOP のキービジュアルが市の写真のとき（11/6）：写真の右下のクレジットを残すため、3:2 のまま全体を見せる（上の山を切らない） */
html[lang="ja"] .top2 .hero .media--hero:has(img[data-asset-id^="city-"]) { aspect-ratio: 3 / 2; height: auto; min-height: 0; max-height: none; }
@media (min-width: 768px) { html[lang="ja"] .top2 .hero .media--hero:has(img[data-asset-id^="city-"]) { aspect-ratio: 3 / 2; height: auto; max-height: calc(100vh - 72px); min-height: 0; } }
/* 旅程の操作まわり（11/6 作り込み）：ボタンは高さ 40px・墨の細枠・角 4px にそろえ、並びを揃える */
.plan-page .plan__ops, .plan-panel .plan__ops { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-top: var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--c-line); }
.plan__ops button, .plan__ops input[type="number"] { box-sizing: border-box; height: 40px; min-height: 40px; padding: 0 var(--sp-3); font: inherit; font-size: var(--t-xs); letter-spacing: .04em; color: var(--c-text); background: transparent; border: 1px solid var(--c-text); border-radius: 4px; cursor: pointer; }
.plan__ops button[data-op="up"], .plan__ops button[data-op="down"] { width: 40px; padding: 0; font-size: var(--t-sm); }
.plan__ops button:hover { background: var(--c-surface); }
.plan__ops button:disabled { opacity: .35; cursor: default; }
.plan__ops label { display: inline-flex; align-items: center; gap: var(--sp-1); font-size: var(--t-xs); color: var(--c-text); }
.plan__ops input[type="number"] { width: 5em !important; padding: 0 var(--sp-2); cursor: text; text-align: right; }
.plan__ops input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--c-text); }
.plan__ops .plan__booked { font-size: var(--t-xs); }
.plan__ops-gap { flex: 1 1 0; min-width: var(--sp-2); }
.plan__ops .plan__del { border-color: transparent; text-decoration: underline; text-underline-offset: 4px; padding: 0 var(--sp-2); color: var(--c-text-weak); }
.plan__ops .plan__del:hover { color: var(--c-text); background: transparent; }
/* 下の操作：共有・相談・印刷・AI 提案は同じ幅の格子に。AI ツールに渡すボタンも同じ幅で並べる */
.plan__actions { grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); align-items: stretch; }
.plan__actions .btn { width: 100%; justify-content: center; text-align: center; margin: 0; }
.plan__ai { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-2); margin: var(--sp-4) 0 var(--sp-2); }
.plan__ai .plan__ai-title { grid-column: 1 / -1; margin: 0; width: auto; font-size: var(--t-xs); font-weight: 700; letter-spacing: .04em; color: var(--c-text); }
.plan__ai .btn { width: 100%; margin: 0; justify-content: center; text-align: center; }
@media (max-width: 767px) { .plan__ai { grid-template-columns: repeat(2, minmax(0, 1fr)); } .plan__ops-gap { flex-basis: 100%; height: 0; } }
/* 2026-11-06 TOP「旅の選び方」：帯の写真をやめ、ツアーそのものの写真を主役にする。
   見出しは左に名前、右に金額・説明・ボタン。セルフツアーは横長のカード2×2、プライベートツアーは大きなカード2枚 */
@media (min-width: 768px) {
  .top2 .section--choose .trip__head { display: block; }
  .top2 .section--choose .trip__intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-areas: "eye price" "name lead" "name more"; column-gap: var(--sp-5); align-items: end; }
  .top2 .section--choose .trip__eyebrow { grid-area: eye; align-self: end; margin: 0; }
  .top2 .section--choose .trip__name { grid-area: name; align-self: start; margin: 0; }
  .top2 .section--choose .trip__price { grid-area: price; margin: 0 0 var(--sp-2); padding: 0; border: 0; }
  .top2 .section--choose .trip__lead { grid-area: lead; margin: 0 0 var(--sp-3); }
  .top2 .section--choose .trip__more { grid-area: more; }
  .top2 .section--choose .trip__list { margin-top: var(--sp-5); padding-top: var(--sp-5); }
  /* セルフツアー：写真と文字を横に並べたカードを2列2段 */
  .top2 .trip--self .trip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5) var(--sp-5); }
  .top2 .trip--self .card { display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); grid-template-rows: auto auto auto 1fr; column-gap: var(--sp-4); height: auto; }
  .top2 .trip--self .card__link { display: contents; }
  .top2 .trip--self .card .media { grid-column: 1; grid-row: 1 / span 4; aspect-ratio: 3 / 2; margin: 0; align-self: start; }
  .top2 .trip--self .card > :not(.card__link), .top2 .trip--self .card__link > :not(.media) { grid-column: 2; }
  .top2 .trip--self .card__title { font-size: var(--t-lead, 1.25rem); line-height: 1.5; margin: 0 0 var(--sp-2); }
  .top2 .trip--self .card__facts { margin-bottom: 6px; }
  .top2 .trip--self .card__act { align-self: end; padding-top: var(--sp-3); }
  /* プライベートツアー：2枚を大きく */
  .top2 .trip--private .trip__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5); }
  .top2 .trip--private .card .media { aspect-ratio: 3 / 2; margin-bottom: var(--sp-4); }
  .top2 .trip--private .card__title { font-size: clamp(1.375rem, 1rem + .9vw, 1.75rem); line-height: 1.4; margin-bottom: var(--sp-3); letter-spacing: .02em; }
  .top2 .trip--private .card__price { padding-top: var(--sp-3); border-top: 1px solid var(--trip-line); font-size: var(--t-lead, 1.25rem); }
  .top2 .trip--private .card__facts { margin-top: var(--sp-2); }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .top2 .trip--self .trip__list { grid-template-columns: minmax(0, 1fr); }
}
/* スマホ：プライベートツアーは2件だけなので、写真を幅いっぱいに大きく見せる */
@media (max-width: 767px) {
  .top2 .trip--private .trip__list > .card { display: block; padding: 0 0 var(--sp-4); border-top: 0; }
  .top2 .trip--private .trip__list > .card + .card { padding-top: var(--sp-4); border-top: 1px solid var(--trip-line); }
  .top2 .trip--private .trip__list .card__link { display: block; }
  .top2 .trip--private .trip__list .card .media { aspect-ratio: 3 / 2; margin: 0 0 var(--sp-3); }
  .top2 .trip--private .trip__list .card__title { font-size: var(--t-lead, 1.25rem); margin: 0 0 4px; }
  .top2 .trip--private .trip__list .card > :not(.card__link) { margin-left: 0; }
  .top2 .trip--private .trip__list .card__price { font-size: var(--t-md); }
}
/* 2026-11-06 AI提案の結果：本文の幅にそろえ、見どころの枚数に合わせて列を広げる。章の見出しの前に余白 */
.suggest-result { padding: var(--sp-5); border-radius: var(--radius); }
.suggest-result .highlights:has(> .highlight:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.suggest-result .highlights + .section__title, .suggest-result .section__title { margin-top: var(--sp-5); }
.suggest-result .highlight h3 { margin-top: var(--sp-2); }
@media (max-width: 767px) { .suggest-result { padding: var(--sp-3); } .suggest-result .highlights:has(> .highlight:nth-child(2):last-child) { grid-template-columns: minmax(0, 1fr); } }
.suggest-result > :first-child { margin-top: 0; }
/* メインカラー＝甲斐駒の蒼（11/6）：主ボタンと旅程ボタンは蒼、ホバーは濃い蒼 */
:root .trip--self .trip__more .btn--primary, :root .choose__panel--self .btn--primary, :root .site-header .plan-toggle { background: var(--component-button-primary-background); border-color: var(--component-button-primary-background); color: var(--component-button-primary-text); }
:root .trip--self .trip__more .btn--primary:hover, :root .choose__panel--self .btn--primary:hover, :root .site-header .plan-toggle:hover { background: var(--component-button-primary-background-hover); border-color: var(--component-button-primary-background-hover); }
/* 旅程の差し込み（11/10 大江さん・Takeru）：予定のあいだに「＋ ここに予定を入れる」。押すと旅程パネルが開き、保存した場所か検索から選ぶ */
.plan__cand-note { margin: var(--sp-3) 0; padding: var(--sp-2) var(--sp-3); background: var(--c-surface); border-radius: var(--radius); font-size: var(--t-xs); }
/* 旅程パネルの中：入れる位置 → 保存した場所 → 探す */
.pick-target { position: sticky; top: calc(-1 * var(--sp-3)); z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); margin: 0 calc(-1 * var(--sp-3)) var(--sp-3); padding: var(--sp-2) var(--sp-3); background: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); }
.pick-target__text { margin: 0; font-weight: 700; font-size: var(--t-sm); }
.pick-target .btn--link { color: inherit; white-space: nowrap; }
.pick-sec { margin: 0 0 var(--sp-4); }
.pick-sec h3 { margin: 0 0 var(--sp-2); font-size: var(--t-md); }
.pick__list { list-style: none; margin: 0; padding: 0; }
.pick { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--sp-2); align-items: center; padding: var(--sp-2) 0; border-bottom: 1px solid var(--c-line); }
.pick:not(:has(.plan__thumb)) { grid-template-columns: minmax(0, 1fr) auto; }
.pick .plan__thumb { width: 64px; height: 43px; object-fit: cover; border-radius: var(--radius); }
.pick__body { min-width: 0; } .pick__body .plan__meta { margin: 2px 0 0; }
.pick__body .plan__name { font-weight: 700; font-size: var(--t-xs); }
.pick__act { display: flex; align-items: center; gap: var(--sp-1); }
.pick__btn { min-height: 40px; padding: 0 var(--sp-2); font-size: var(--t-2xs); white-space: nowrap; }
.pick__done { font-size: var(--t-2xs); color: var(--c-text-weak); white-space: nowrap; }
.pick__q { width: 100%; box-sizing: border-box; min-height: 48px; padding: 0 var(--sp-3); font: inherit; border: 1px solid var(--c-text); border-radius: var(--radius); background: var(--c-bg); }
.pick__count { margin: var(--sp-2) 0 0; font-size: var(--t-2xs); color: var(--c-text-weak); }
/* ===== 旅程ページと旅程パネル（11/10 Takeru・大江さん 3回目）=====
   文字は本文 18px の段に合わせる（予定の名前 18・時刻 16・補足 15px）。中央の旅程を広く、地図は左・目次は右。
   パネルは PC では本文の横に並ぶ（重ねない）。ピン留め（既定）なら開いたまま。スマホは下から重なり、外を押すと閉じる */
.plan-page { --tcol: 4.5rem; --ease-move: cubic-bezier(.45, 0, .1, 1); --ease-in: cubic-bezier(.25, .8, .25, 1); }
.plan-toc { display: none; }
@media (min-width: 768px) {
  .plan-page { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); column-gap: var(--sp-5); }
  .plan-page > .plan-page__map { grid-column: 1; grid-row: 1; }
  .plan-page > .plan-page__list { grid-column: 2; grid-row: 1; }
}
@media (min-width: 1200px) {
  main > .plan-page { width: calc(100% - 2 * var(--sp-5)); max-width: none; margin-left: auto; margin-right: auto; padding: 0; grid-template-columns: minmax(240px, 300px) minmax(0, 920px) minmax(160px, 200px); justify-content: center; column-gap: var(--sp-5); }
  .plan-page > .plan-page__map { grid-column: 1; }
  .plan-page > .plan-page__list { grid-column: 2; }
  .plan-toc { display: block; grid-column: 3; grid-row: 1; position: sticky; top: 88px; align-self: start; }
  .plan-toc[hidden] { display: none; }
}
.plan-toc__title { margin: 0 0 var(--sp-2); font-size: var(--t-sm); font-weight: 700; letter-spacing: .04em; }
.plan-toc__list { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--c-line); }
.plan-toc__list li { padding: 0 0 0 var(--sp-3); }
.plan-toc__list a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--c-text); font-size: var(--t-sm); }
.plan-toc__n { font-size: var(--t-xs); color: var(--c-text-weak); }
.plan__day, .plan__total, .plan__actions { scroll-margin-top: 88px; }
/* 地図：枠を写真・ボタンと同じ角丸に */
.plan-page__map .map, .plan-page__map svg { border-radius: var(--radius); overflow: hidden; }
.plan-page__map .map__note, .plan-page__map figcaption, .plan-page__map p { font-size: var(--t-xs); }

/* パネル：PC はどのページでも本文の横に並べる。旅程ページは地図と旅程の2列（狭いときは地図をしまう） */
:root { --panel-w: 420px; --sbw: var(--sbw0, 0px); }
@media (min-width: 768px) {
  /* 画面いっぱいに広げる帯（探す・TOP）は --sbw で右の幅を引いている。パネルの幅もそこに足して、パネルの横で収まるようにする */
  body:has(.plan-panel:not([hidden])) { padding-right: var(--panel-w); --sbw: calc(var(--sbw0, 0px) + var(--panel-w)); }
}
.plan-panel { padding: 0 var(--sp-4) var(--sp-5); border-left: 1px solid var(--c-line); box-shadow: none; }
.plan-panel .plan__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: var(--sp-2); min-height: 72px; margin: 0 calc(-1 * var(--sp-4)); padding: 0 var(--sp-4); background: var(--c-bg); }
.plan-panel .plan__head h2 { flex: 1; margin: 0; font-size: var(--t-title); line-height: 1.4; }
.plan-panel .plan__head .plan__close { min-height: 40px; padding: 0 var(--sp-3); font-size: var(--t-sm); font-weight: 400; }
.plan-pin { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; color: var(--c-text-weak); background: transparent; border: 1px solid transparent; border-radius: var(--radius); cursor: pointer; transition: color .15s, background-color .15s; }
.plan-pin svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; transform: rotate(35deg); transition: transform .2s var(--ease-move, ease); }
.plan-pin[aria-pressed="true"] { color: var(--component-button-primary-background, var(--c-primary)); }
.plan-pin[aria-pressed="true"] svg { fill: currentColor; transform: none; }
.plan-pin:hover { background: var(--c-surface); }
.pick-target { position: sticky; top: 72px; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin: 0 calc(-1 * var(--sp-4)) var(--sp-4); padding: 12px var(--sp-4); background: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); }
.pick-target__text { margin: 0; font-weight: 700; font-size: var(--t-meta); line-height: 1.5; }
.pick-target__cancel { flex: none; min-height: 36px; padding: 0 var(--sp-3); font: inherit; font-size: var(--t-sm); color: inherit; background: transparent; border: 1px solid rgba(255, 255, 255, .7); border-radius: var(--radius); cursor: pointer; transition: background-color .15s; }
.pick-target__cancel:hover { background: rgba(255, 255, 255, .14); }
.plan-panel .pick-sec { margin: var(--sp-3) 0 var(--sp-5); }
.plan-panel .pick-sec h3 { display: flex; align-items: center; gap: var(--sp-2); margin: 0 0 var(--sp-2); font-size: var(--t-md); }
.plan-panel .plan__empty { font-size: var(--t-meta); color: var(--c-text-weak); line-height: 1.8; }
/* 件数の丸：正円（2桁は横に伸びる）、数字は真ん中 */
.wish__n { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 12px; background: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); font-size: 13px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
/* 候補の行 */
.plan-panel .pick { grid-template-columns: 72px minmax(0, 1fr) auto; gap: var(--sp-3); padding: 12px 0; }
.plan-panel .pick .plan__thumb { width: 72px; height: 48px; }
.plan-panel .pick:not(:has(.plan__thumb)) { grid-template-columns: minmax(0, 1fr) auto; }
.plan-panel .pick__body .plan__name { font-size: var(--t-ui); font-weight: 700; line-height: 1.5; color: var(--c-text); text-decoration: none; }
.plan-panel .pick__body a.plan__name:hover { text-decoration: underline; text-underline-offset: 3px; }
.plan-panel .pick__body .plan__meta { margin: 2px 0 0; font-size: var(--t-sm); color: var(--c-text-weak); }
:root .ds .plan-panel .pick__btn, .plan-panel .pick__btn { min-height: 40px; padding: 0 var(--sp-3); font-size: var(--t-sm); font-weight: 700; }
.plan-panel .pick__done { font-size: var(--t-sm); }
.plan-panel .wish__del { width: 36px; height: 36px; font-size: 18px; }
.pick.is-flash { animation: pick-flash 1.6s var(--ease-in, ease); }
@keyframes pick-flash { 0%, 35% { background: #e3ecf3; } 100% { background: transparent; } }
.plan-panel .pick__q { min-height: 48px; font-size: var(--t-ui); }
.pick-cats { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: var(--sp-2) 0 0; }
.pick-cat { min-height: 36px; padding: 0 14px; font: inherit; font-size: var(--t-sm); color: var(--c-text); background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 18px; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.pick-cat:hover { border-color: var(--c-text); }
.pick-cat[aria-pressed="true"] { background: var(--component-button-primary-background, var(--c-primary)); border-color: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); }
.plan-panel .pick__count { margin: var(--sp-3) 0 0; font-size: var(--t-sm); color: var(--c-text-weak); }
.plan-scrim { display: none; }
.fly-dot { position: fixed; z-index: 70; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--component-button-primary-background, var(--c-primary)); box-shadow: 0 0 0 3px #fff; pointer-events: none; }

/* 上：旅程の名前（書きかえられる欄だと分かるように、えんぴつと枠） */
.plan-page .plan__switch { gap: var(--sp-3); margin: 0 0 var(--sp-4); }
.plan-page .plan__name-label { font-size: var(--t-sm); font-weight: 700; color: var(--c-text); }
.plan-page .plan__name-hint { font-size: var(--t-xs); }
:root .plan-page .plan__switch .plan__title { min-height: 52px; padding: 0 48px 0 14px; font-size: var(--t-md); font-weight: 700; border: 1px solid var(--component-control-border, #767676); border-radius: var(--radius); background: var(--c-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23151515' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M4 20l1-4L16 5l3 3L8 19z M14 7l3 3'/%3E%3C/svg%3E") no-repeat right 14px center / 20px 20px; cursor: text; }
:root .plan-page .plan__switch .plan__title:hover { border-color: var(--c-text); }
.plan-page .plan__switch .plan__pick-field select { min-height: 48px; font-size: var(--t-ui); }
.plan-page .plan__cand-note { margin: var(--sp-3) 0 0; padding: 0; background: none; }
.plan-page .plan__cand-note .btn { min-height: 40px; padding: 0 var(--sp-3); font-size: var(--t-sm); }

/* 旅の条件：見出しの行は上下中央。中は 入口（電車で｜車で・駅）と、日付｜人数・言語｜移動手段の2列 */
.plan-page .plan__cond-edit { display: block; padding: 0; margin: var(--sp-4) 0 0; background: #f4f7fa; border-radius: var(--radius); font-size: var(--t-sm); }
.plan-page .plan__cond-edit > summary { display: flex; align-items: center; gap: var(--sp-2); min-height: 52px; padding: 0 var(--sp-3); font-size: var(--t-ui); font-weight: 700; cursor: pointer; list-style: none; }
.plan-page .plan__cond-edit > summary::-webkit-details-marker { display: none; }
.plan-page .plan__cond-edit > summary::before { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .2s var(--ease-move, ease); margin-right: 4px; }
.plan-page .plan__cond-edit[open] > summary::before { transform: rotate(45deg); }
.plan__cond-body { display: grid; gap: var(--sp-4); padding: var(--sp-1) var(--sp-3) var(--sp-4); }
.plan__cond-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-4); }
.plan__cond-grid label, .plan__entry-gate { display: grid; gap: 6px; align-content: start; font-size: var(--t-sm); font-weight: 700; }
.plan__cond-grid :is(input, select) { width: 100%; box-sizing: border-box; min-height: 48px; font-weight: 400; }
.plan__cond-unit { display: inline-flex; align-items: center; gap: var(--sp-2); font-weight: 400; }
.plan__cond-grid .plan__cond-people input { width: 6em; }
@media (max-width: 599px) { .plan__cond-grid { grid-template-columns: minmax(0, 1fr); } }
.plan-page .plan__entry { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--sp-2) var(--sp-4); margin: 0; padding: 0; border: 0; background: none; }
.plan-page .plan__entry legend { grid-column: 1 / -1; padding: 0; margin: 0 0 6px; font-size: var(--t-sm); font-weight: 700; }
.plan__entry-by { justify-self: start; gap: 0; display: inline-flex; border: 1px solid var(--component-control-border, #767676); border-radius: var(--radius); overflow: hidden; }
.plan__entry-by label { position: relative; display: inline-flex; align-items: center; min-height: 50px; margin: 0; padding: 0 var(--sp-4); font-size: var(--t-ui); background: var(--c-bg); cursor: pointer; transition: background-color .15s, color .15s; }
.plan__entry-by label + label { border-left: 1px solid var(--component-control-border, #767676); }
.plan__entry-by input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.plan__entry-by label:has(input:checked) { background: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); font-weight: 700; }
.plan__entry-by label:has(input:focus-visible) { outline: 2px solid var(--c-text); outline-offset: 2px; }
.plan__entry-gate select { min-height: 48px; width: 100%; font-weight: 400; }
@media (max-width: 599px) { .plan-page .plan__entry { grid-template-columns: minmax(0, 1fr); } }

/* 旅程の時間割：左に時刻、縦の線と点。予定は閉じると1行、開くと中身 */
.plan-page .plan__day h3 { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3); margin: var(--sp-5) 0 0; font-size: var(--t-title); }
.plan-page .plan__day h3 > span { margin-right: auto; }
.stops-bulk { display: flex; gap: var(--sp-3); margin: 0; font-size: var(--t-sm); font-weight: 400; }
.plan-page .plan__items { position: relative; margin: var(--sp-3) 0 var(--sp-4); padding: 0; }
.plan-page .plan__items::before { content: ""; position: absolute; left: calc(var(--tcol) + 11px); top: 22px; bottom: 22px; width: 2px; background: var(--c-line); }
.pstop { list-style: none; position: relative; }
.pstop__in { display: grid; grid-template-columns: var(--tcol) 24px minmax(0, 1fr); align-items: start; }
.pstop__time { grid-column: 1; margin: 0; padding-top: 14px; padding-right: 2px; text-align: right; font-size: var(--t-ui); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .02em; line-height: 1.5; }
.pstop__card { grid-column: 3; position: relative; min-width: 0; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius); transition: border-color .15s; }
.pstop__card::before { content: ""; position: absolute; left: -19px; top: 20px; width: 12px; height: 12px; border-radius: 50%; background: var(--component-button-primary-background, var(--c-primary)); box-shadow: 0 0 0 3px var(--c-bg); }
.pstop:not(.pstop--point) .pstop__card:hover { border-color: var(--c-text); }
.pstop__head { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: var(--sp-3); align-items: center; padding: 10px; cursor: pointer; border-radius: var(--radius); }
.pstop__head:not(:has(.pstop__thumb)) { grid-template-columns: minmax(0, 1fr) auto; padding-left: var(--sp-3); }
.pstop__thumb { width: 88px; height: 58px; object-fit: cover; border-radius: var(--radius); display: block; }
.pstop__title { min-width: 0; }
.pstop__title .plan__name { display: block; font-weight: 700; font-size: var(--t-md); line-height: 1.5; color: var(--c-text); text-decoration: none; }
.pstop__meta { margin: 2px 0 0; font-size: var(--t-meta); color: var(--c-text-weak); line-height: 1.6; }
.pstop .plan__booked-mark { display: inline-block; margin: 0 0 2px; font-size: var(--t-sm); font-weight: 700; color: var(--component-button-primary-background, var(--c-primary)); }
.pstop__toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 var(--sp-2); font: inherit; font-size: var(--t-sm); color: var(--c-text); background: transparent; border: 0; border-radius: var(--radius); cursor: pointer; white-space: nowrap; }
.pstop__toggle::after { content: ""; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .28s var(--ease-move); }
.pstop.is-open .pstop__toggle::after { transform: translateY(2px) rotate(-135deg); }
.pstop__card > .plan__warn { margin: 0 10px 10px; font-size: var(--t-sm); }
.pstop__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s var(--ease-move); }
.pstop.is-open .pstop__body { grid-template-rows: 1fr; }
.pstop__body-in { min-height: 0; overflow: hidden; padding: 0 var(--sp-4); opacity: 0; visibility: hidden; transition: opacity .15s, visibility 0s .28s; font-size: var(--t-meta); }
.pstop.is-open .pstop__body-in { opacity: 1; visibility: visible; transition: opacity .2s .08s, visibility 0s; }
.pstop__body-in::after { content: ""; display: block; height: var(--sp-4); }
.pstop__body-in > :first-child { margin-top: var(--sp-2); }
.plan-page .pstop__body-in > .itin__why, .plan-page .pstop__body-in > p { line-height: 1.8; }
.plan-page .pstop__body-in > .dos { margin: var(--sp-3) 0 0; }
.plan-page .pstop__body-in > .facts { margin: var(--sp-4) 0 0; padding: var(--sp-3) 0 0; border-top: 1px solid var(--c-line); border-bottom: 0; font-size: var(--t-sm); row-gap: 6px; }
.plan-page .pstop__body-in > .facts > div { grid-template-columns: 8em minmax(0, 1fr); }
.plan-page .pstop__body-in > .plan__infos { display: grid; gap: var(--sp-2); margin: var(--sp-3) 0 0; }
.plan-page .plan__infos > .plan__info { margin: 0; padding: 10px var(--sp-3); font-size: var(--t-sm); background: #f4f7fa; border-radius: var(--radius); }
/* 開いた予定の操作：上段＝開始・滞在・予約、下段＝並べ替え・戻す・削除 */
.pstop .plan__ops { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-3) var(--sp-4); margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--c-line); }
.plan__ops-set { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-3); }
.plan__ops-set label { display: grid; gap: 4px; font-size: var(--t-xs); font-weight: 700; color: var(--c-text); white-space: nowrap; }
.plan__ops-set .plan__booked { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: var(--t-sm); font-weight: 400; }
.plan__ops-set .plan__booked input { width: 20px; height: 20px; margin: 0; accent-color: var(--component-button-primary-background, var(--c-primary)); }
:root .pstop__sel { min-height: 44px; height: 44px; padding: 0 36px 0 12px !important; font: inherit; font-size: var(--t-ui); font-weight: 400; font-variant-numeric: tabular-nums; color: var(--c-text); border: 1px solid var(--component-control-border, #767676); border-radius: var(--radius); background-color: var(--c-bg); background-position: right 12px center; }
.plan__ops-move { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-left: auto; }
.pstop .plan__ops-move button { box-sizing: border-box; height: 44px; min-height: 44px; padding: 0 var(--sp-3); font: inherit; font-size: var(--t-sm); color: var(--c-text); background: transparent; border: 1px solid var(--c-text); border-radius: var(--radius); cursor: pointer; transition: background-color .15s; }
.pstop .plan__ops-move button[data-op="up"], .pstop .plan__ops-move button[data-op="down"] { width: 44px; padding: 0; font-size: var(--t-ui); }
.pstop .plan__ops-move button:hover { background: var(--c-surface); }
.pstop .plan__ops-move .plan__del { border-color: transparent; color: var(--c-text-weak); text-decoration: underline; text-underline-offset: 4px; }
/* 区間の移動：アイコン＋「車 約10分」が主役。切りかえと経路は小さな文字 */
.leg { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--sp-3); padding: 8px 0 8px calc(var(--tcol) + 24px); font-size: var(--t-meta); color: var(--c-text); line-height: 1; }
.leg__text { min-height: 32px; display: inline-flex; align-items: center; } /* 車 約30分・経路・切り替えを同じ文字サイズにし、行の上下中央にそろえる */
.leg__icon { width: 20px; height: 20px; flex: none; fill: none; stroke: var(--c-text-weak); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; margin-right: -6px; }
.leg__text { font-variant-numeric: tabular-nums; }
.leg__switch, .leg__route { display: inline-flex; align-items: center; gap: 2px; min-height: 32px; padding: 0 4px; font: inherit; line-height: 1; color: var(--c-text-weak); background: none; border: 0; border-radius: var(--radius); cursor: pointer; text-decoration: underline; text-decoration-color: var(--c-line); text-underline-offset: 4px; transition: color .15s, text-decoration-color .15s; }
.leg__switch:hover, .leg__route:hover { color: var(--c-text); text-decoration-color: currentColor; }
.leg__route { text-decoration: none; }
/* 出発・到着の点 */
.pstop--point .pstop__card { border: 0; background: none; padding: 10px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--sp-3); font-size: var(--t-ui); font-weight: 700; }
.pstop--point .pstop__card::before { top: 20px; background: var(--c-bg); border: 2px solid var(--component-button-primary-background, var(--c-primary)); box-sizing: border-box; box-shadow: 0 0 0 3px var(--c-bg); }
.pstop--point .pstop__time { padding-top: 12px; }
.pstop__clock { display: inline-flex; align-items: center; font-weight: 400; }
.pstop--gone .pstop__card { padding: var(--sp-2) var(--sp-3); }
/* 予定のあいだの「⊕ ここに予定を入れる」：線の上ではなく、カードの左端にそろえる */
.plan__gap { list-style: none; margin: 0; padding-left: calc(var(--tcol) + 24px); }
.plan__gap-btn { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 40px; padding: 0 var(--sp-2) 0 0; font: inherit; font-size: var(--t-sm); color: var(--c-text-weak); background: transparent; border: 0; border-radius: var(--radius); cursor: pointer; transition: color .15s; }
.plan__gap-plus { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; border: 1px solid currentColor; font-size: 14px; line-height: 1; transition: background-color .15s, border-color .15s, color .15s; }
.plan__gap-btn:hover, .plan__gap-btn:focus-visible { color: var(--component-button-primary-background, var(--c-primary)); }
.plan__gap-btn:hover .plan__gap-plus, .plan__gap-btn:focus-visible .plan__gap-plus { background: var(--component-button-primary-background, var(--c-primary)); border-color: var(--component-button-primary-background, var(--c-primary)); color: var(--c-on-primary); }
.plan__gap--empty { margin: var(--sp-2) 0; }
.plan__gap--empty .plan__gap-btn { min-height: 48px; padding: 0 var(--sp-4); color: var(--c-text); border: 1px solid var(--c-text); font-size: var(--t-ui); }
/* 新しく入った予定：高さを開きながら現れる（下の予定が一緒に下がる） */
@keyframes stop-room { from { grid-template-rows: 0fr; } to { grid-template-rows: 1fr; } }
@keyframes stop-arrive { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.pstop--new { display: grid; grid-template-rows: 1fr; animation: stop-room .4s var(--ease-move) both; }
.pstop--new > .pstop__in { min-height: 0; overflow: hidden; animation: stop-arrive .5s .12s var(--ease-in) both; }
/* 下：日を足す・目安・注意・ボタン */
.plan-page .plan__addday { margin: var(--sp-2) 0 var(--sp-5); padding-left: calc(var(--tcol) + 24px); }
.plan-page .plan__addday .btn { min-height: 48px; padding: 0 var(--sp-4); font-size: var(--t-ui); }
.plan-page .plan-page__list > .plan__meta, .plan-page .plan__day > .plan__meta { font-size: var(--t-sm); color: var(--c-text-weak); padding-left: calc(var(--tcol) + 24px); }
.plan-page .plan__warn { font-size: var(--t-sm); }
.plan-page .plan__disclaimer { margin: 0 0 var(--sp-4); padding: var(--sp-3) 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); font-size: var(--t-sm); line-height: 1.8; color: var(--c-text-weak); }
.plan-page .plan__total { font-size: var(--t-meta); line-height: 1.9; }
.plan-page .plan__total .note { font-size: var(--t-sm); }
.plan-page .plan__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-5); }
.plan-page .plan__actions .btn, .plan-page .plan__consult .btn { min-height: 52px; width: 100%; margin: 0; justify-content: center; text-align: center; white-space: nowrap; }
.plan-page .plan__consult { margin: var(--sp-3) 0 0; }
.plan-page .plan__consult .note { margin: var(--sp-2) 0 0; font-size: var(--t-sm); color: var(--c-text-weak); text-align: center; }
@media (max-width: 599px) { .plan-page .plan__actions { grid-template-columns: minmax(0, 1fr); } .plan-page .plan__actions .btn, .plan-page .plan__consult .btn { white-space: normal; } }

/* パネルの出入り：右（スマホは下）から */
@keyframes panel-in { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes sheet-in { from { transform: translateY(32px); opacity: 0; } to { transform: none; opacity: 1; } }
.plan-panel:not([hidden]) { animation: panel-in .3s var(--ease-in, cubic-bezier(.25, .8, .25, 1)); }
@media (max-width: 767px) {
  .plan-panel:not([hidden]) { animation-name: sheet-in; }
  .plan-pin { display: none; }
  .plan-panel { padding: 0 var(--sp-3) var(--sp-5); }
  .plan-panel .plan__head { min-height: 64px; margin: 0 calc(-1 * var(--sp-3)); padding: 0 var(--sp-3); }
  /* 下へなぞって閉じられることを示すつまみ */
  .plan-panel .plan__head { touch-action: none; }
  .plan-panel .plan__head::before { content: ""; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: var(--c-line); }
  .pick-target { top: 64px; margin: 0 calc(-1 * var(--sp-3)) var(--sp-3); padding: 10px var(--sp-3); }
  body:has(.plan-panel:not([hidden])) .plan-scrim { display: block; position: fixed; inset: 0; z-index: 29; background: rgba(21, 21, 21, .32); }
  .plan-page { --tcol: 3.5rem; }
  .pstop__in { grid-template-columns: var(--tcol) 20px minmax(0, 1fr); }
  .plan-page .plan__items::before { left: calc(var(--tcol) + 9px); }
  .pstop__card::before { left: -17px; }
  .pstop__time { font-size: var(--t-sm); }
  .pstop__head { grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--sp-2); padding: 8px; }
  .pstop__thumb { width: 64px; height: 44px; }
  .pstop__title .plan__name { font-size: var(--t-ui); }
  .pstop__meta { font-size: var(--t-sm); }
  .pstop__toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pstop__body-in { padding: 0 var(--sp-3); }
  .plan-page .pstop__body-in > .facts > div { grid-template-columns: 6.5em minmax(0, 1fr); }
  .plan__ops-move { margin-left: 0; }
  .leg, .plan__gap, .plan-page .plan__addday, .plan-page .plan__day > .plan__meta { padding-left: calc(var(--tcol) + 20px); }
  .leg { font-size: var(--t-sm); }
}
@media (prefers-reduced-motion: reduce) {
  .pstop__body, .pstop__body-in, .pstop__toggle::after, .plan__gap-btn, .plan__gap-plus, .pstop__card, .plan-pin svg, .pick-cat { transition: none; }
  .pstop--new, .pstop--new > .pstop__in, .plan-panel:not([hidden]), .pick.is-flash { animation: none; }
}

/* ===== 旅程 4回目（11/10 Takeru）===== */
/* 入口：「電車で」「車で」は同じ幅。駅・IC の選択は中身に合った幅 */
.plan__entry-by { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.plan__entry-by label { justify-content: center; min-width: 7.5em; }
.plan-page .plan__entry { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-3) var(--sp-4); }
.plan-page .plan__entry legend { float: left; width: 100%; }
.plan__entry-gate select, .plan__cond-grid :is(input, select) { width: auto; min-width: 10em; max-width: 100%; }
/* 旅の条件：欄は中身に合った幅で横に並べる（日付・人数・言語・移動手段） */
.plan__cond-grid { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-3) var(--sp-4); }
.plan__cond-grid input[type=date] { min-width: 11em; }
.plan__cond-grid .plan__cond-people select { min-width: 7em; }
/* 空の旅程：「＋ 予定を入れる」と下の3つを同じ大きさのマスにそろえる */
.plan__starts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); max-width: 40em; margin: var(--sp-3) 0; }
.plan__starts .btn { box-sizing: border-box; width: 100%; min-height: 52px; margin: 0; justify-content: center; text-align: center; }
@media (max-width: 599px) { .plan__starts { grid-template-columns: minmax(0, 1fr); } }
/* 地図：もう少し大きく。地図の中の文字は JS の --ls で約14px に */
@media (min-width: 768px) { .plan-page { grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); } }
@media (min-width: 1200px) { main > .plan-page { grid-template-columns: minmax(280px, 380px) minmax(0, 880px) minmax(160px, 200px); } }
.plan-map :is(.map__station, .map__ic) text { font-size: calc(30px * var(--k, 1) * var(--ls, 1)); stroke-width: calc(9px * var(--k, 1) * var(--ls, 1)); }
.plan-map .map__zone .map__region-label { font-size: calc(30px * var(--k, 1) * var(--ls, 1)); }
.plan-map .map__zone .map__region-towns { font-size: calc(19px * var(--k, 1) * var(--ls, 1)); }
.plan-map .map__station rect { transform: scale(calc(1.5 * var(--k, 1) * var(--ls, 1))); }
.plan-map .map__ic circle { transform: scale(calc(var(--k, 1) * var(--ls, 1))); }
.plan-page__map .plan-map .map__note { font-size: var(--t-sm); line-height: 1.7; }
/* パネルのピン：押しやすい大きさ */
.plan-pin { width: 44px; height: 44px; }
.plan-pin svg { width: 26px; height: 26px; stroke-width: 1.7; }
/* パネルの一番上「あなたの旅程」 */
.plan-panel .pick-plans { margin-top: var(--sp-2); }
.plans { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.plans__row { position: relative; display: grid; gap: 2px; width: 100%; min-height: 60px; box-sizing: border-box; padding: 10px var(--sp-3) 10px 18px; font: inherit; text-align: left; color: var(--c-text); background: none; border: 0; border-bottom: 1px solid var(--c-line); cursor: pointer; transition: background-color .15s; }
.plans__row::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 4px; border-radius: 2px; background: transparent; }
.plans__row.is-cur::before { background: var(--component-button-primary-background, var(--c-primary)); }
.plans__row:hover { background: #f4f7fa; }
.plans__row:focus-visible { outline: 2px solid var(--c-text); outline-offset: -2px; }
.plans__name { overflow: hidden; font-size: var(--t-ui); font-weight: 700; line-height: 1.5; white-space: nowrap; text-overflow: ellipsis; }
.plans__meta { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--t-sm); color: var(--c-text-weak); }
.plans__cur { font-size: var(--t-xs); font-weight: 700; color: var(--component-button-primary-background, var(--c-primary)); }
.plans__row.is-flash { animation: pick-flash 1.6s var(--ease-in, ease); }
.plans__all { margin: var(--sp-1) 0 0; font-size: var(--t-sm); } .plans__all .btn--link { min-height: 40px; }
.plans__acts { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: var(--sp-3) 0 0; }
.plans__acts .btn { flex: 1 1 10em; min-height: 44px; margin: 0; justify-content: center; font-size: var(--t-sm); }
.plans__acts .btn--primary { order: -1; }
/* 予定のカード：時刻と点は、閉じたカード（写真の高さ）の上下中央。開いても同じ位置 */
.pstop { --head-h: 78px; }
.pstop__head { box-sizing: border-box; min-height: var(--head-h); }
.pstop:not(.pstop--point):not(.pstop--gone) .pstop__time { padding-top: calc(1px + var(--head-h) / 2 - .75em); }
.pstop:not(.pstop--point):not(.pstop--gone) .pstop__card::before { top: calc(var(--head-h) / 2 - 6px); }
.pstop--point .pstop__card { min-height: 64px; padding: 0; box-sizing: border-box; }
.pstop--point .pstop__card::before { top: 26px; }
.pstop--point .pstop__time { padding-top: calc(32px - .75em); }
@media (max-width: 767px) { .pstop { --head-h: 60px; } }
/* 施設名＝施設のページへのリンク（名前の右に小さな矢印。矢印は字の高さの中央） */
.pstop__name { margin: 0; font-size: var(--t-md); font-weight: 700; line-height: 1.5; }
.pstop__title .pstop__name .plan__name { display: inline; font-size: inherit; line-height: inherit; color: var(--c-text); text-decoration: none; }
.pstop__name a.plan__name:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (max-width: 767px) { .pstop__name { font-size: var(--t-ui); } }
/* いまパネルで入れようとしている位置：蒼の帯と「ここに入れます」 */
.plan__gap-btn.is-target { padding: 0 var(--sp-3) 0 var(--sp-2); color: var(--c-on-primary); font-weight: 700; background: var(--component-button-primary-background, var(--c-primary)); }
.plan__gap-btn.is-target .plan__gap-plus { color: var(--component-button-primary-background, var(--c-primary)); background: var(--c-bg); border-color: var(--c-bg); }
.plan__gap-btn.is-target:hover, .plan__gap-btn.is-target:focus-visible { color: var(--c-on-primary); }
.plan__gap-btn.is-target:hover .plan__gap-plus, .plan__gap-btn.is-target:focus-visible .plan__gap-plus { color: var(--component-button-primary-background, var(--c-primary)); background: var(--c-bg); border-color: var(--c-bg); }
.plan__gap--empty .plan__gap-btn.is-target { border-color: var(--component-button-primary-background, var(--c-primary)); padding: 0 var(--sp-4); }
/* 下：共有する・印刷する、その下に自動保存の一文。AI は別の欄 */
.plan-page .plan__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plan-page .plan__save-note { margin: var(--sp-2) 0 0; font-size: var(--t-sm); line-height: 1.8; color: var(--c-text-weak); }
.plan-page .plan__ai { display: block; margin: var(--sp-5) 0 0; padding: var(--sp-4) 0 0; border-top: 1px solid var(--c-line); }
.plan-page .plan__ai .plan__ai-title { margin: 0; font-size: var(--t-title); font-weight: 700; letter-spacing: 0; color: var(--c-text); }
.plan__ai-lead { margin: var(--sp-1) 0 var(--sp-3); font-size: var(--t-sm); color: var(--c-text-weak); }
.ai-icon { flex: none; width: 22px; height: 22px; }
/* 共有のダイアログ：見出し → SNS のアイコンの列 → リンク＋コピー → 送る内容（小さく）→ 閉じる */
.dialog--share { padding: var(--sp-3); box-sizing: border-box; background: rgba(21, 21, 21, .45); }
.dialog--share .share { box-sizing: border-box; width: 100%; max-width: 540px; padding: var(--sp-4) var(--sp-5) var(--sp-4); border-radius: 8px; box-shadow: 0 24px 64px rgba(21, 21, 21, .22); }
.share__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); }
.share__head h2 { margin: 0; font-size: var(--t-title); line-height: 1.4; }
.share__x { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -12px; padding: 0; color: var(--c-text); background: none; border: 0; border-radius: var(--radius); cursor: pointer; }
.share__x:hover { background: var(--c-surface); }
.share__x svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.share__lead { margin: var(--sp-1) 0 var(--sp-4); font-size: var(--t-sm); line-height: 1.8; color: var(--c-text-weak); }
.share__apps { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(68px, 1fr)); gap: var(--sp-1); margin: 0; padding: 0; }
.share__apps [hidden] { display: none; }
.share__app { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; padding: 6px 0; font: inherit; font-size: var(--t-xs); color: var(--c-text); text-decoration: none; background: none; border: 0; border-radius: var(--radius); cursor: pointer; }
.share__app > svg, .share__disc { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; transition: transform .15s var(--ease-in, ease); }
.share__disc svg { width: 28px; height: 28px; }
.share__disc--mail, .share__disc--more { background: #5c6670; }
.share__app:hover > svg, .share__app:hover .share__disc { transform: translateY(-2px); }
.share__app:hover .share__label { text-decoration: underline; text-underline-offset: 3px; }
.share__app:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
.share__link { margin: var(--sp-4) 0 0; }
.share__link-label { display: block; margin: 0 0 6px; font-size: var(--t-sm); font-weight: 700; }
.share__row { display: flex; gap: var(--sp-2); }
.dialog__box .share__row input[type=text] { flex: 1; min-width: 0; width: auto; min-height: 48px; box-sizing: border-box; padding: 0 12px; font-size: var(--t-sm); color: var(--c-text-weak); background: #f4f7fa; border: 1px solid var(--c-line); border-radius: var(--radius); }
.share__row .btn { flex: none; min-height: 48px; margin: 0; padding: 0 var(--sp-4); }
.share__opts { display: grid; gap: 2px; margin: var(--sp-4) 0 0; padding: var(--sp-3) 0 0; border: 0; border-top: 1px solid var(--c-line); font-size: var(--t-sm); }
.share__opts legend { float: left; width: 100%; margin: 0 0 4px; padding: 0; font-weight: 700; }
.share__check { display: flex; align-items: center; gap: 10px; min-height: 40px; cursor: pointer; }
.share__check input { width: 18px; height: 18px; margin: 0; accent-color: var(--component-button-primary-background, var(--c-primary)); }
.share__lang { display: flex; align-items: center; gap: var(--sp-2); min-height: 44px; }
.share__lang select { width: auto; min-width: 9em; min-height: 40px; padding: 0 36px 0 12px; font: inherit; }
.share__warn { margin: 4px 0 0; font-size: var(--t-xs); line-height: 1.7; color: var(--c-text-weak); }
@media (max-width: 599px) {
  .dialog--share { align-items: flex-end; padding: 0; }
  .dialog--share .share { max-width: none; max-height: 92vh; padding: var(--sp-3) var(--sp-3) calc(var(--sp-4) + env(safe-area-inset-bottom)); border-radius: 12px 12px 0 0; }
  .share__apps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: var(--sp-2); }
}
@media (prefers-reduced-motion: reduce) { .plans__row.is-flash { animation: none; } .share__app > svg, .share__disc { transition: none; } }

/* 探す：よく探されるテーマのチップ（種類のタブの下。選んだテーマはテーマの選択と同じ） */
.topic-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: var(--sp-3) 0 var(--sp-4); }
.topic-chip { min-height: 40px; padding: 0 16px; font: inherit; font-size: var(--t-sm); color: var(--c-text); background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 20px; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.topic-chip:hover { border-color: var(--c-text); }
.topic-chip[aria-pressed="true"] { color: var(--c-on-primary); background: var(--component-button-primary-background, var(--c-primary)); border-color: var(--component-button-primary-background, var(--c-primary)); }
.tag--book-required { border-color: var(--c-text); font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .topic-chip { transition: none; } }
/* TOP の入口：見出しを1問目の問いにし、その下に AI 提案の質問画面と同じ形の進み具合（1 選ぶ → 4 → 旅程の案）を出す。
   ここで選ぶこと自体が質問の1問目だと伝え、カードには何も足さない（11/10） */
.top2 .entries__intro { border-bottom: 0; padding-bottom: 0; }
.entries__rail { list-style: none; margin: var(--sp-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: var(--sp-2); max-width: 640px; }
.entries__rail li { border-top: 3px solid var(--c-line); padding-top: var(--sp-2); font-size: var(--t-xs); color: var(--c-text-weak); white-space: nowrap; }
.entries__rail li span { margin-right: 6px; font-weight: 900; font-feature-settings: "tnum" 1; }
.entries__rail li.is-current { border-top-color: var(--c-text); color: var(--c-text); font-weight: 700; }
.entries__rail .entries__rail-end { border-top-color: var(--semantic-color-surface-emphasis); color: var(--semantic-color-surface-emphasis); font-weight: 700; padding-left: 0; }
.entries__rail .entries__rail-end::before { content: "✦"; margin-right: .35em; }
.top2 .entries__how { margin-top: var(--sp-3); }
.top2 .entries__intro + .entries__group { margin-top: var(--sp-5); }
@media (max-width: 767px) {
  .entries__rail { gap: 6px; }
  .entries__rail li { font-size: var(--t-2xs); }
  .entries__rail li span { margin-right: 3px; }
}

/* ===== 旅程 5回目（11/10 Takeru）===== */
/* 矢印は1つの部品：サイトの中へは細い「›」、外のサイトへは同じ線の「↗」 */
.ico { display: inline-block; flex: none; width: .72em; height: .72em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.04em; }
.ico--in, .ico--ext { margin-left: .28em; }
.plan__name .ico--in { color: var(--component-button-primary-background, var(--c-primary)); }
.leg__route .ico--ext, .access-map__stops .ico--ext { width: .8em; height: .8em; }

/* 名前と入口の駅は太字にしない */
:root .plan-page .plan__switch .plan__title { font-weight: 400; }
:root .plan-page :is(.plan__entry-gate, .plan__cond-grid) select { font-weight: 400; }

/* 小さな注意書きは、ふつうの折り返し（文節で早く折り返さない） */
.plan-page :is(.plan__save-note, .plan__disclaimer) { word-break: normal; line-break: strict; }

/* 旅程の名前の右に「…」。その下の行に「保存した旅程を開く」「＋ 新しい旅程」「ゴミ箱 N」 */
.plan-page .plan__switch { display: grid; gap: var(--sp-3); }
.plan__name-row { display: block; }
.plan__name-row .plan__name-field { min-width: 0; }
.plan__pick-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-2) var(--sp-3); }
.plan__pick-row .plan__pick-field { flex: 1 1 16em; min-width: 0; }
.plan__pick-row .plan__pick-field select { width: 100%; }
.plan-page .plan__new { min-height: 48px; margin: 0; padding: 0 var(--sp-4); font-size: var(--t-ui); white-space: nowrap; }

/* 「…」とゴミ箱：押すと小さな一覧が開く */
.menu { position: relative; }
.menu > summary { list-style: none; cursor: pointer; }
.menu > summary::-webkit-details-marker { display: none; }
.plan__tool:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
.menu__pop { position: absolute; z-index: 25; top: calc(100% + 6px); right: 0; min-width: 15em; padding: 6px; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: 0 12px 32px rgba(21, 21, 21, .14); }
.plan__tool { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 var(--sp-2); font-size: var(--t-sm); color: var(--c-text); border-radius: var(--radius); white-space: nowrap; }
.plan__tool:hover > span { text-decoration: underline; text-underline-offset: 4px; }
.plan__tool .ico--trash { width: 22px; height: 22px; stroke-width: 1.5; vertical-align: 0; }
.plan-page .plan__trash.menu { flex-basis: auto; margin: 0; }
.plan__trash .menu__pop { right: auto; left: 0; width: min(26em, calc(100vw - 32px)); padding: var(--sp-2) var(--sp-3) var(--sp-3); box-sizing: border-box; }
.plan__trash .plan__trash-list { margin: 0; border-top: 0; }
.plan__trash .note { font-size: var(--t-xs); color: var(--c-text-weak); }

/* 日の見出し：右に「すべて開く ⌄」（日ごと）と「…」（この日を消す） */
.plan-page .plan__day h3 > .plan__day-tools { display: inline-flex; align-items: center; gap: var(--sp-1); margin: 0 -8px 0 0; }
.stops-bulk { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 var(--sp-2); font: inherit; font-size: var(--t-sm); font-weight: 400; color: var(--c-text); background: none; border: 0; border-radius: var(--radius); cursor: pointer; }
.stops-bulk:hover > span { text-decoration: underline; text-underline-offset: 4px; }
.stops-bulk .ico--chev { width: 14px; height: 14px; stroke-width: 1.6; transition: transform .28s var(--ease-move, ease); }
.stops-bulk[aria-expanded="true"] .ico--chev { transform: rotate(180deg); }

/* 空の日の「＋ 予定を入れる」 */
.plan__gap--empty .plan__gap-plus { border-color: currentColor; }

/* 区間：ほかの2つの手段へ切りかえ。徒歩・自転車で1時間を超えると一言 */
.leg__switches { display: inline-flex; flex-wrap: wrap; gap: 0 var(--sp-1); }
.leg__far { flex-basis: 100%; line-height: 1.5; font-size: var(--t-sm); color: var(--c-text-weak); }

/* 宿を選ぶ：日の終わりの線の上に白抜きの点。候補は予定のカードと同じ形 */
.pstop--staypick .pstop__in { align-items: start; }
.staypick { grid-column: 3; position: relative; min-width: 0; padding: 0 0 var(--sp-3); }
.staypick::before { content: ""; position: absolute; left: -19px; top: 20px; width: 12px; height: 12px; box-sizing: border-box; border-radius: 50%; background: var(--c-bg); border: 2px solid var(--component-button-primary-background, var(--c-primary)); box-shadow: 0 0 0 3px var(--c-bg); }
.staypick__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 4px; min-height: 52px; margin: 0; padding-top: 13px; box-sizing: border-box; font-size: var(--t-ui); font-weight: 700; }
.staypick__state { font-weight: 400; color: var(--c-text-weak); }
.staypick__list { list-style: none; display: grid; gap: var(--sp-2); margin: var(--sp-1) 0 0; padding: 0; }
.staypick__item { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: var(--sp-3); align-items: center; padding: 10px; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); transition: border-color .15s; }
.staypick__item:not(:has(.pstop__thumb)) { grid-template-columns: minmax(0, 1fr) auto; padding-left: var(--sp-3); }
.staypick__item:hover { border-color: var(--c-text); }
.staypick__body { min-width: 0; }
.staypick__body .pstop__name .plan__name { color: var(--c-text); text-decoration: none; }
.staypick__body .pstop__name .plan__name:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.staypick__price { margin: 2px 0 0; font-size: var(--t-ui); font-variant-numeric: tabular-nums; }
.plan-page .staypick__btn { min-height: 40px; margin: 0; padding: 0 14px; font-size: var(--t-sm); white-space: nowrap; }
.staypick__more { display: inline-flex; align-items: center; min-height: 44px; margin-top: var(--sp-1); padding: 0; font: inherit; font-size: var(--t-sm); color: var(--c-text); background: none; border: 0; cursor: pointer; text-decoration: underline; text-decoration-color: var(--c-line); text-underline-offset: 4px; }
.staypick__more:hover { text-decoration-color: currentColor; }
@media (max-width: 767px) {
  .staypick::before { left: -17px; }
  .staypick__item { grid-template-columns: 64px minmax(0, 1fr); gap: var(--sp-2) var(--sp-3); padding: 8px; }
  .staypick__item:not(:has(.pstop__thumb)) { grid-template-columns: minmax(0, 1fr); }
  .staypick__btn { grid-column: -2; justify-self: start; }
  .staypick__body .pstop__name { font-size: var(--t-ui); }
}

/* AI ツール：共有の SNS と同じ形（丸の中にマーク、下に名前と ↗） */
.plan__ai-apps { grid-template-columns: repeat(4, minmax(72px, 112px)); justify-content: start; gap: var(--sp-2); }
.share__disc--ai { background: var(--c-bg); border: 1px solid var(--c-line); box-sizing: border-box; }
.share__disc--ai .ai-icon { width: 26px; height: 26px; }
.share__label .ico--ext { width: .75em; height: .75em; margin-left: 3px; color: var(--c-text-weak); }
.plan__ai-apps .share__app { font-size: var(--t-sm); }
@media (max-width: 599px) { .plan__ai-apps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* 共有：開く言語は中身の幅 */
.share__lang select { min-width: 0; }

/* サイドパネル：名前は文節で折り返す。「すべて見る」は ⌄ */
.plan-panel .pick__body .plan__name { word-break: auto-phrase; overflow-wrap: break-word; }
.plans__all { display: flex; justify-content: center; }
.plans__more { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 40px; padding: 0; color: var(--c-text); background: none; border: 0; border-radius: var(--radius); cursor: pointer; }
.plans__more:hover { background: #f4f7fa; }
.plans__more .ico--chev { width: 18px; height: 18px; transition: transform .28s var(--ease-move, ease); }
.plans__more[aria-expanded="true"] .ico--chev { transform: rotate(180deg); }
/* パネルを開いたまま「＋ ここに予定を入れる」：帯が上から入り、入れる位置がはっきり光る */
@keyframes target-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes target-glow { 0% { box-shadow: 0 0 0 0 rgba(29, 74, 110, .45); } 100% { box-shadow: 0 0 0 10px rgba(29, 74, 110, 0); } }
.pick-target.is-in { animation: target-in .32s var(--ease-in, ease) both; }
.plan__gap-btn.is-target { min-height: 44px; padding: 0 var(--sp-4) 0 var(--sp-2); font-size: var(--t-ui); animation: target-glow 1s .1s ease-out 2; }

/* 入口：「電車で｜車で」と駅の選択を1行に。駅のラベルは選択の左 */
.plan-page .plan__entry { align-items: center; row-gap: var(--sp-2); }
.plan-page .plan__entry legend { margin-bottom: 0; }
.plan-page .plan__entry .plan__entry-gate { display: flex; align-items: center; gap: var(--sp-2); }
.plan-page .plan__entry .plan__entry-gate select { min-width: 9em; }

/* 地図：パネルを閉じているとき 440px、開いているとき 360px まで */

@media (prefers-reduced-motion: reduce) {
  .stops-bulk .ico--chev, .plans__more .ico--chev, .staypick__item { transition: none; }
  .pick-target.is-in, .plan__gap-btn.is-target { animation: none; }
}
.share__label { white-space: nowrap; letter-spacing: 0; }
/* WeChat（パソコン）：QR コードと読み取り方 */
.share__qr { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: var(--sp-3) var(--sp-4); align-items: start; margin: var(--sp-3) 0 0; padding: var(--sp-3); background: #f4f7fa; border-radius: var(--radius); }
.share__qr[hidden] { display: none; }
.share__qr-code { padding: 8px; background: #fff; border-radius: var(--radius); }
.share__qr-code svg { display: block; width: 100%; height: auto; }
.share__qr-text p { margin: 0; font-size: var(--t-sm); line-height: 1.8; }
.share__qr-text .share__qr-title { margin: 0 0 4px; font-size: var(--t-ui); font-weight: 700; }
.share__qr-close { min-height: 40px; margin: var(--sp-2) 0 0; padding: 0 var(--sp-3); font-size: var(--t-sm); }
.share__qr-wait { grid-column: 1 / -1; margin: 0; font-size: var(--t-sm); color: var(--c-text-weak); }
/* 見出し「旅程」と地図・名前の欄のあいだを空ける（11/10 Takeru） */
main > .plan-page { margin-top: var(--sp-3); }
@media (min-width: 768px) { main > .plan-page { margin-top: var(--sp-4); } }
/* 「…」の一覧は中身の幅（右の余白を作らない） */
.menu__pop { min-width: 0; width: max-content; }
/* パネルの検索欄：選んだときの二重の線と、下の種類のボタンが近すぎないように */
.plan-panel .pick-cats { margin-top: var(--sp-3); }
/* 旅程表（印刷ページ）：画面では淡い地に白い紙を1枚置く。紙の中は 時刻｜線｜場所 の3列で、旅程ページのタイムラインと同じ読み方（11/10 Takeru「デザインを入れて」） */
main:has(> .print-sheet) { background: #f4f7fa; }
.print-sheet { max-width: 842px; margin: 0 auto; padding: var(--sp-4) var(--sp-3) var(--sp-6); }
.print-ctl { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); margin: 0 0 var(--sp-3); }
.print-ctl__opts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-4); font-size: var(--t-sm); }
.print-ctl__opts label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.print-ctl__opts input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: var(--c-primary, #1d4a6e); }
.print-ctl .btn--primary { min-height: 48px; }
.print-paper { background: #fff; border: 1px solid #dfe5eb; border-radius: 4px; padding: 56px 64px 64px; color: #151515; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.print-sheet__top { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding-bottom: 14px; border-bottom: 1px solid #151515; }
.print-brand { width: 152px !important; height: 20px !important; flex: none; }
.print-sheet__ver { margin: 0; font-size: 13px; color: var(--c-text-weak, #5a5a5a); font-variant-numeric: tabular-nums; text-align: right; }
.print-sheet__head h1 { margin: 40px 0 0; font-size: 36px; line-height: 1.35; font-weight: 700; letter-spacing: .02em; }
.print-sheet__head .print-sheet__meta { margin: 10px 0 0; font-size: 15px; font-weight: 400; }
.print-sheet__head .print-sheet__warn { display: block; margin: 24px 0 0; padding: 10px 16px; border: 0; border-radius: 4px; background: #f4f7fa; font-size: 14px; line-height: 1.6; }
.print-paper .print-sheet__note { margin: 12px 0 0; padding: 0; border: 0; font-size: 13px; color: var(--c-text-weak, #5a5a5a); }
.pr-day { margin-top: 48px; }
.pr-day__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); padding-bottom: 10px; border-bottom: 2px solid #1d4a6e; break-after: avoid; }
.pr-day__head h2 { margin: 0; font-size: 25px; line-height: 1.4; font-weight: 700; }
.pr-day__sum { margin: 0; font-size: 14px; color: var(--c-text-weak, #5a5a5a); }
.pr-list { list-style: none; margin: 20px 0 0; padding: 0; }
.pr-row, .pr-leg { position: relative; display: grid; grid-template-columns: 56px 24px minmax(0, 1fr) auto; column-gap: 12px; margin: 0; }
.pr-row::before, .pr-leg::before { content: ""; position: absolute; left: calc(56px + 12px + 11.5px); top: 0; bottom: 0; width: 1px; background: #b8c5d2; }
.pr-list > li:first-child::before { top: 14px; }
.pr-list > li:last-child::before { bottom: calc(100% - 14px); }
.pr-time { grid-column: 1; text-align: right; font-size: 17px; line-height: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pr-dot { grid-column: 2; position: relative; z-index: 1; justify-self: center; width: 11px; height: 11px; margin-top: 9px; border-radius: 50%; background: #151515; box-shadow: 0 0 0 4px #fff; }
.pr-row--end .pr-dot, .pr-row--gone .pr-dot { background: #fff; border: 2px solid #1d4a6e; width: 11px; height: 11px; box-sizing: border-box; }
.pr-body { grid-column: 3; min-width: 0; padding-bottom: 6px; }
.pr-body p { margin: 0; }
.pr-row--stop .pr-body { padding-bottom: 4px; }
.pr-row--end .pr-time, .pr-row--gone .pr-time { font-weight: 400; color: var(--c-text-weak, #5a5a5a); }
.pr-place { font-size: 16px; line-height: 28px; color: var(--c-text-weak, #5a5a5a); }
.pr-name { font-size: 20px; line-height: 28px; font-weight: 700; }
.pr-alt { font-size: 14px; color: var(--c-text-weak, #5a5a5a); }
.pr-addr { display: flex; align-items: baseline; gap: 10px; margin-top: 8px !important; font-size: 17px; line-height: 1.5; }
.pr-k { flex: none; font-size: 12px; line-height: 1; padding: 4px 6px; border: 1px solid #b8c5d2; border-radius: 2px; color: var(--c-text-weak, #5a5a5a); transform: translateY(-2px); }
.pr-do { margin-top: 8px !important; font-size: 15px; line-height: 1.7; }
.pr-facts { margin-top: 4px !important; font-size: 13px; line-height: 1.6; color: var(--c-text-weak, #5a5a5a); }
.pr-side { grid-column: 4; display: flex; align-items: flex-start; gap: 16px; padding-top: 4px; }
.pr-booked { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 12px; color: var(--c-text-weak, #5a5a5a); }
.pr-check { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 1.5px solid #151515; border-radius: 3px; font-size: 15px; font-weight: 700; color: #151515; }
.pr-leg__txt { grid-column: 3; display: block; padding: 6px 0 18px; font-size: 13px; line-height: 1.5; color: var(--c-text-weak, #5a5a5a); }
.pr-day .plan__drive-note { margin: 12px 0 0 92px; font-size: 13px; }
@media screen and (max-width: 767px) { /* 印刷には使わない（紙の幅 182mm ≒ 688px でスマホ用の縦積みになり、各ページの下が大きく空いた。11/10 Takeru）*/
  .print-sheet { padding: var(--sp-3) 0 var(--sp-5); }
  .print-ctl { padding: 0 16px; }
  .print-ctl .btn--primary { width: 100%; padding-inline: 16px; }
  .print-sheet__top { flex-direction: column; align-items: flex-start; gap: 6px; }
  .print-sheet__ver { text-align: left; }
  .pr-addr { flex-direction: column; gap: 4px; }
  .pr-k { transform: none; }
  .print-paper { border-width: 1px 0; border-radius: 0; padding: 28px 16px 40px; }
  .print-sheet__head h1 { margin-top: 28px; font-size: 28px; }
  .pr-row, .pr-leg { grid-template-columns: 44px 16px minmax(0, 1fr); column-gap: 10px; }
  .pr-row::before, .pr-leg::before { left: calc(44px + 10px + 7.5px); }
  .pr-time { font-size: 15px; }
  .pr-side { grid-column: 3; padding: 10px 0 6px; }
  .pr-booked { flex-direction: row; }
  .pr-name { font-size: 18px; }
  .pr-addr { font-size: 16px; }
  .pr-day .plan__drive-note { margin-left: 70px; }
}
@media print {
  main:has(> .print-sheet) { background: none; }
  .print-sheet { max-width: none; padding: 0; }
  .print-paper { border: 0; border-radius: 0; padding: 0; }
  .print-sheet__head h1 { margin-top: 28px; }
  .pr-row { break-inside: avoid; }
  .pr-day { margin-top: 32px; }
}
/* 複製・削除・この日を消す：「…」にしまわず、アイコンと文字で直接（11/10 Takeru） */
.plan__name-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--sp-3); margin-top: 4px; }
.plan__name-acts { display: inline-flex; gap: var(--sp-1); margin-right: -8px; }
.plan__act { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 8px; font: inherit; font-size: var(--t-sm); font-weight: 400; color: var(--c-text); background: none; border: 0; border-radius: var(--radius); cursor: pointer; white-space: nowrap; }
.plan__act:hover > span { text-decoration: underline; text-underline-offset: 4px; }
.plan__act:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
.plan__act .ico { width: 18px; height: 18px; stroke-width: 1.5; vertical-align: 0; margin: 0; }
.plan__act--danger { color: #b3261e; }
/* 注意書き：上下の線をやめて、地の色の帯で区切る（線が多すぎる。11/10 Takeru） */
.plan-page .plan__disclaimer { margin: var(--sp-4) 0; padding: var(--sp-3); border: 0; background: #f4f7fa; border-radius: var(--radius); }

.dialog--share .share { padding-bottom: var(--sp-5); }
/* 空の日の「＋ 予定を入れる」は「＋ N日目を足す」と同じボタンにそろえる（丸つき＋は旅程の途中に差しこむ小さいボタンだけ。11/10 Takeru） */
.plan__gap--empty .plan__gap-btn, .plan-page .plan__addday .btn { gap: 6px; min-width: 11em; justify-content: center; padding: 0 28px; font-weight: 400; letter-spacing: inherit; }
.plan__gap--empty .plan__gap-plus, .plan__gap--empty .plan__gap-btn:hover .plan__gap-plus, .plan__gap--empty .plan__gap-btn:focus-visible .plan__gap-plus { width: auto; height: auto; border: 0; border-radius: 0; background: none; color: inherit; font-size: inherit; }
.plan__gap--empty .plan__gap-btn:hover, .plan__gap--empty .plan__gap-btn:focus-visible { color: var(--c-text); background: var(--c-bg-alt, #f4f7fa); }
.plan__gap--empty .plan__gap-btn.is-target { padding: 0 28px; }
.plan__gap--empty .plan__gap-btn.is-target .plan__gap-plus { color: inherit; background: none; }
/* 地図と旅程の番号をそろえる：時間の線の点に、地図と同じ番号（日ごとに 1 から） */
.pstop--no .pstop__card::before { display: none; }
.pstop__no { position: absolute; left: -24px; top: calc(var(--head-h) / 2 - 11px); z-index: 1; display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; font-size: 12px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; color: #fff; background: var(--c-text); box-shadow: 0 0 0 3px var(--c-bg); }
@media (max-width: 767px) { .pstop__no { left: -22px; width: 20px; height: 20px; font-size: 11px; top: calc(var(--head-h) / 2 - 10px); } }
/* 地図の上の日の切りかえ（2日以上のとき） */
.plan-map__days { display: flex; flex-wrap: wrap; gap: var(--sp-1); margin: 0 0 var(--sp-2); }
.plan-map:has(> .plan-map__days) { display: grid; grid-template-columns: minmax(0, 1fr); }
.plan-map:has(> .plan-map__days) > svg, .plan-map > .plan-map__days { grid-column: 1; grid-row: 1; }
.plan-map > .plan-map__days { z-index: 1; align-self: end; justify-self: start; max-width: calc(100% - 16px); margin: 0 0 8px 8px; }
.plan-map__day { min-height: 36px; padding: 0 14px; font: inherit; font-size: var(--t-sm); color: var(--c-text); background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 18px; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.plan-map__day:hover { border-color: var(--c-text); }
.plan-map__day[aria-pressed="true"] { color: var(--c-on-primary); background: var(--component-button-primary-background, var(--c-primary)); border-color: var(--component-button-primary-background, var(--c-primary)); }
.plan-map__day:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .plan-map__day { transition: none; } }
/* TOP「4つの過ごし方」と「特集」：ぱっと見で何かわかるよう、写真と名前だけにする。スマホの特集は1枚目（季節）を横いっぱいに（11/10） */
@media (min-width: 768px) { .entries__group--features .entries__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.entries__group--four .door__title, .entries__group--features .door__title { font-size: var(--t-xl); line-height: 1.414; letter-spacing: .04em; margin-bottom: var(--sp-1); }
@media (max-width: 767px) {
  .top2 .entries__group--four .door__title, .top2 .entries__group--features .door__title { font-size: var(--t-md); }
  .top2 .entries__group--features .door:first-child { grid-column: 1 / -1; }
  .top2 .entries__group--features .door:first-child .media { aspect-ratio: 16 / 9; }
}
/* AI 提案の質問のあと：答えから出した「旅のタイプ」を、診断の結果のように見せてから旅程の案につなぐ（11/10） */
.wiz__type { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr); margin: 0 0 var(--sp-4); background: var(--semantic-color-surface-emphasis); color: #fff; border-radius: 4px; overflow: hidden; animation: wiz-rise .5s var(--ease) both; }
.wiz__type-img { position: relative; display: block; min-height: 100%; background: rgba(255,255,255,.08); }
.wiz__type-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.wiz__type-body { padding: var(--sp-5) var(--sp-5) var(--sp-4); display: flex; flex-direction: column; }
.wiz__type-kicker { margin: 0; font-size: var(--t-sm); letter-spacing: .12em; color: rgba(255,255,255,.78); }
.wiz__type-name { margin: var(--sp-1) 0 var(--sp-3); font-size: calc(var(--t-xl) * 1.414); font-weight: 700; line-height: 1.414; letter-spacing: .04em; color: #fff; }
.wiz__type-desc { margin: 0 0 var(--sp-4); font-size: var(--t-body); line-height: 1.8; color: rgba(255,255,255,.92); }
.wiz__type-answers { margin: 0 0 var(--sp-4); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--sp-4); border-top: 1px solid rgba(255,255,255,.22); }
.wiz__type-answers div { display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: var(--sp-2); padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.22); font-size: var(--t-sm); line-height: 1.6; }
.wiz__type-answers dt { color: rgba(255,255,255,.7); }
.wiz__type-answers dd { margin: 0; font-weight: 700; }
.wiz__type-next { margin: var(--sp-5) 0 var(--sp-3); font-size: var(--t-title); font-weight: 700; letter-spacing: .04em; }
@media (prefers-reduced-motion: reduce) { .wiz__type { animation: none; } }
@media (max-width: 767px) {
  .wiz__type { grid-template-columns: 1fr; }
  .wiz__type-img { aspect-ratio: 16 / 9; min-height: 0; }
  .wiz__type-body { padding: var(--sp-4) var(--sp-3) var(--sp-3); }
  .wiz__type-name { font-size: var(--t-xl); }
  .wiz__type-answers { grid-template-columns: 1fr; }
}
@media print { .wiz__type { background: none; color: inherit; border: 1px solid currentColor; } }
/* AI 提案の質問を画面いっぱいに：スマホは全画面、PC は周りを暗くして中央に大きく。1問ずつ下から静かに出す（11/10） */
.wiz__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); }
.wiz__top .wiz__entry { flex: 1; }
.wiz__close { display: none; flex: none; width: 48px; height: 48px; padding: 0; color: var(--c-text); background: none; border: 1px solid var(--c-line); border-radius: 4px; cursor: pointer; }
.wiz__close svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.wiz__close:hover { border-color: var(--c-text); }
.wiz__close:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
.wiz__count { display: none; margin: 0 0 var(--sp-2); font-size: var(--t-sm); font-weight: 700; letter-spacing: .08em; font-feature-settings: "tnum" 1; color: var(--semantic-color-surface-emphasis); }
.wiz__count span { color: var(--c-text-weak); font-weight: 400; }
.is-wiz-open { overflow: hidden; }
.is-wiz-open .wiz { position: fixed; inset: 0; z-index: 200; margin: 0; width: auto; max-width: none; overflow-y: auto; overscroll-behavior: contain; background: rgba(21, 21, 21, .62); display: grid; place-items: center; padding: var(--sp-5) var(--sp-4); }
.is-wiz-open .wiz__panel { width: min(960px, 100%); box-sizing: border-box; padding: var(--sp-5); background: var(--c-bg); border-radius: 4px; box-shadow: 0 24px 64px rgba(0, 0, 0, .28); }
.is-wiz-open .wiz__close, .is-wiz-open .wiz__count { display: flex; align-items: center; justify-content: center; }
.is-wiz-open .wiz__count { display: block; }
.is-wiz-open .wiz__q { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1.414; }
.wiz__stage.is-in { animation: wiz-in .42s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes wiz-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) {
  .is-wiz-open .wiz { display: block; padding: 0; background: var(--c-bg); }
  .is-wiz-open .wiz__panel { width: 100%; min-height: 100%; padding: var(--sp-3) var(--gutter, 16px) var(--sp-5); border-radius: 0; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) { .wiz__stage.is-in { animation: none; } }
/* 印刷ページ上の操作：併記・概要／詳しく・印刷ボタンを同じ高さ（48px）と文字サイズ、同じ 4px の角にそろえる（11/10 Takeru） */
.print-ctl, .print-ctl__opts, .print-ctl__opts label, .print-ctl .btn--primary, .print-ctl .view-seg button { font-size: var(--t-ui); }
.print-ctl__opts label { min-height: 48px; }
.print-ctl .view-seg { height: 48px; border-radius: 4px; }
.print-ctl .view-seg button { min-width: 6em; height: 100%; padding: 0 20px; }
.print-ctl .btn--primary { height: 48px; padding: 0 28px; white-space: nowrap; }
@media (max-width: 767px) { .print-ctl .btn--primary { padding: 0 12px; letter-spacing: .02em; } }
/* パネルから旅程へドラッグ（PC）：つかんでいるあいだ、入れられる位置（＋ ここに予定を入れる）を点線の枠で示し、上に来た位置を蒼で塗る（11/10 Takeru） */
@media (min-width: 768px) { .plan-panel .pick[draggable="true"] { cursor: grab; } .plan-panel .pick[draggable="true"]:active { cursor: grabbing; } }
body.is-dragging-place .plan__gap-btn[data-ins-at] { outline: 1.5px dashed #1d4a6e; outline-offset: 2px; color: #1d4a6e; }
body.is-dragging-place .plan__gap.is-drop .plan__gap-btn[data-ins-at] { outline-style: solid; background: #1d4a6e; color: #fff; }
body.is-dragging-place .plan__gap.is-drop .plan__gap-plus { background: #fff; color: #1d4a6e; border-color: #fff; }
/* A4縦の区切り（11/10 Takeru「いい感じに区切って」）：2日目からは新しいページ。場所の途中・区間と次の場所のあいだ・日の見出しの直後では切らない。下にページ番号 */
@media print {
  /* 名前つきのページ（page: itin）はやめる。Chrome の印刷で、旅程表の前に白紙が1枚入ることがあった（11/10 Takeru「印刷が白紙」） */
  @page { size: A4 portrait; margin: 14mm 14mm 16mm; @bottom-center { content: counter(page) " / " counter(pages); font-size: 9pt; color: #5a5a5a; } }
  .pr-day + .pr-day { break-before: page; margin-top: 0; }
  .pr-day__head, .pr-leg { break-after: avoid; }
  .pr-list > li:first-child { break-before: avoid; }
  .print-sheet__head { break-after: avoid; }
}
/* 印刷：電話は住所の下に同じ形で（概要でも出す）。詳しくのときは右に Discover Hokuto の施設ページの QR（11/10 Takeru） */
.pr-tel { margin-top: 4px !important; }
.pr-tel span:last-child { font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.pr-qr { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11px; color: var(--c-text-weak, #5a5a5a); }
.pr-qr__code { display: block; width: 64px; height: 64px; }
.pr-qr__code svg { display: block; width: 100%; height: 100%; }
[data-itin-root]:not(.is-full) .pr-qr.v-full { display: none; }
/* 選んだ入れる位置（ここに入れます）は上下の場所の枠にくっつけない（11/10 Takeru「施設のボックスに被ってしまっている」） */
.plan__gap:has(> .plan__gap-btn.is-target) { padding-top: 8px; padding-bottom: 8px; }

/* AI提案の質問（モーダル）11/10 デザイン見直し
   左：選んだ過ごし方の写真の上に、答えた条件が1行ずつ積み上がる。右：問いと選択肢。
   画面の大きさは問いが変わっても動かさない（PCは幅1040・高さ680まで、横の比は1：1.414）。 */
.wiz .vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wiz__aside { display: none; }
body:not(.is-wiz-open) .wiz__top { display: none; }
.is-wiz-open .wiz__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr); width: min(1040px, 100%); height: min(680px, calc(100dvh - 64px)); padding: 0; overflow: hidden; }
.is-wiz-open .wiz__aside { display: block; position: relative; overflow: hidden; background: #151515; color: #fff; }
.wiz__aside img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wiz__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(21, 21, 21, .86) 0, rgba(21, 21, 21, .5) 48%, rgba(21, 21, 21, .06) 100%); }
.wiz__aside-body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: var(--sp-5) var(--sp-4) var(--sp-4); }
.is-wiz-open .wiz__entry { display: block; margin: 0; padding: 0; background: none; }
.is-wiz-open .wiz__entry span { display: block; font-size: var(--t-xs); font-weight: 400; letter-spacing: .08em; color: rgba(255, 255, 255, .82); }
.is-wiz-open .wiz__entry strong { display: block; margin-top: var(--sp-1); font-size: calc(var(--t-xl) * 1.414); line-height: 1.414; font-weight: 700; letter-spacing: .04em; }
.wiz__answers { margin: var(--sp-3) 0 0; }
.wiz__answers > div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: var(--sp-2); padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .28); font-size: var(--t-sm); line-height: 1.6; }
.wiz__answers > div:last-child { animation: wiz-in .42s cubic-bezier(.2, .7, .2, 1) both; }
.wiz__answers dt { color: rgba(255, 255, 255, .78); }
.wiz__answers dd { margin: 0; font-weight: 700; }
.is-wiz-open .wiz__main { display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.is-wiz-open .wiz__top { flex: none; display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-3) 0 var(--sp-5); }
.is-wiz-open .wiz__progress { flex: 1; display: flex; gap: 6px; margin: 0; }
.is-wiz-open .wiz__progress li { flex: 1; height: 3px; padding: 0; border: 0; border-radius: 2px; background: var(--c-line); font-size: 0; transition: background-color var(--dur-fast, .2s) var(--ease, ease); }
.is-wiz-open .wiz__progress li.is-done { background: var(--semantic-color-surface-emphasis); }
.is-wiz-open .wiz__progress li.is-current { background: var(--c-text); }
.is-wiz-open .wiz__count { margin: 0; min-width: 3.5em; text-align: right; font-size: var(--t-sm); font-weight: 700; letter-spacing: .04em; font-feature-settings: "tnum" 1; color: var(--c-text); }
.is-wiz-open .wiz__stage { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--sp-4) var(--sp-5); }
.is-wiz-open .wiz__q { margin: 0 0 var(--sp-4); font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2.125rem); line-height: 1.414; }
.is-wiz-open .wiz__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.is-wiz-open .wiz__opts:has(> :nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.is-wiz-open .wiz__img { position: relative; overflow: hidden; aspect-ratio: 2 / 1; }
.is-wiz-open .wiz__img img { position: absolute; inset: 0; }
.is-wiz-open .wiz__opts:has(> :nth-child(5)) .wiz__img { aspect-ratio: 3 / 2; }
.wiz__opt--plain { justify-content: center; background: var(--semantic-color-surface-champagne); }
.wiz__opt--plain .wiz__label { text-align: center; }
.is-wiz-open .wiz__opts--text { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.is-wiz-open .wiz__opts--text .wiz__opt { min-height: 112px; justify-content: center; }
.is-wiz-open .wiz__opts--text .wiz__label { padding: var(--sp-3) var(--sp-4); text-align: left; font-size: var(--t-title); }
.wiz__label small { display: block; margin-top: 4px; font-size: var(--t-sm); font-weight: 400; color: var(--c-text-weak); }
.wiz__opt:focus-visible { outline: 2px solid var(--c-text); outline-offset: 2px; }
.is-wiz-open .wiz__nav { flex: none; margin: 0; padding: var(--sp-3) var(--sp-5); border-top: 1px solid var(--c-line); background: var(--c-bg); }
@media (max-width: 767px) {
  .is-wiz-open .wiz__panel { display: flex; flex-direction: column; width: 100%; height: 100dvh; min-height: 0; padding: 0; }
  .is-wiz-open .wiz__main { display: contents; }
  .is-wiz-open .wiz__top { order: 0; padding: var(--sp-2) var(--gutter, 16px); }
  .is-wiz-open .wiz__aside { order: 1; flex: none; height: 120px; }
  .is-wiz-open .wiz__stage { order: 2; padding: var(--sp-4) var(--gutter, 16px); }
  .is-wiz-open .wiz__nav { order: 3; padding: var(--sp-2) var(--gutter, 16px) calc(var(--sp-2) + env(safe-area-inset-bottom)); }
  .wiz__aside-body { padding: var(--sp-3) var(--gutter, 16px); }
  .is-wiz-open .wiz__entry strong { font-size: var(--t-xl); line-height: 1.3; }
  .wiz__answers { display: none; }
  .is-wiz-open .wiz__opts, .is-wiz-open .wiz__opts:has(> :nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
  .is-wiz-open .wiz__img, .is-wiz-open .wiz__opts:has(> :nth-child(5)) .wiz__img { aspect-ratio: 3 / 2; }
  .is-wiz-open .wiz__opts--text .wiz__opt { min-height: 96px; }
}
@media (prefers-reduced-motion: reduce) { .wiz__answers > div:last-child { animation: none; } }
/* 開く・閉じるの動き。開くときは背景が暗くなってから枠が少し上がり、閉じるときは同じ道を戻る */
.is-wiz-open .wiz { animation: wiz-fade .24s ease both; }
.is-wiz-open .wiz__panel { animation: wiz-rise .36s cubic-bezier(.2, .7, .2, 1) .04s both; }
.wiz.is-out { animation: wiz-fade .2s ease reverse both; }
.wiz.is-out .wiz__panel { animation: wiz-rise .2s ease reverse both; }
@keyframes wiz-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes wiz-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.wiz__summary-acts { display: inline-flex; flex-wrap: wrap; gap: var(--sp-3); }
.wiz__nav[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .is-wiz-open .wiz, .is-wiz-open .wiz__panel, .wiz.is-out, .wiz.is-out .wiz__panel { animation: none; } }
.wiz__q, .wiz__label, .wiz__lead, .wiz__type-name { word-break: auto-phrase; }
.is-wiz-open .wiz__q:has(+ .wiz__lead) { margin-bottom: var(--sp-2); }
.wiz__lead { margin: 0 0 var(--sp-4); font-size: var(--t-body); line-height: 1.8; color: var(--c-text-weak); }
:root .wiz .wiz__opt.wiz__opt--primary { background: var(--semantic-color-surface-emphasis); border-color: var(--semantic-color-surface-emphasis); color: #fff; box-shadow: none; }
:root .wiz .wiz__opt.wiz__opt--primary:is(:hover, .is-on) { background: #163a57; border-color: #163a57; color: #fff; }
.wiz__opt--primary .wiz__label small { color: rgba(255, 255, 255, .82); }
@media (max-width: 767px) {
  .is-wiz-open .wiz__opts--text { grid-template-columns: minmax(0, 1fr); }
  .is-wiz-open .wiz__opts--text .wiz__opt { min-height: 64px; }
  .is-wiz-open .wiz__opts--text .wiz__label { padding: var(--sp-2) var(--sp-3); }
}
.is-wiz-open .wiz__opts--text, .is-wiz-open .wiz__opts--text:has(> :nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.is-wiz-open .wiz__opts--text .wiz__opt { min-height: 96px; }
@media (max-width: 767px) { .is-wiz-open .wiz__opts--text, .is-wiz-open .wiz__opts--text:has(> :nth-child(5)) { grid-template-columns: minmax(0, 1fr); } .is-wiz-open .wiz__opts--text .wiz__opt { min-height: 64px; } }
/* 写真つきの選択肢が3つなら横に3つ。枠の高さが足りない画面では写真を横長にして、スクロールなしで全部見えるようにする */
.is-wiz-open .wiz__opts:not(.wiz__opts--text):has(> :nth-child(3)):not(:has(> :nth-child(4))) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.is-wiz-open .wiz__opts:not(.wiz__opts--text):has(> :nth-child(3)):not(:has(> :nth-child(4))) .wiz__img { aspect-ratio: 4 / 3; }
@media (min-width: 768px) and (max-height: 860px) { .is-wiz-open .wiz__img { aspect-ratio: 5 / 2; } .is-wiz-open .wiz__opts:has(> :nth-child(5)) .wiz__img, .is-wiz-open .wiz__opts:not(.wiz__opts--text):has(> :nth-child(3)):not(:has(> :nth-child(4))) .wiz__img { aspect-ratio: 16 / 9; } .is-wiz-open .wiz__label { padding: var(--sp-2) var(--sp-3); } }
@media (max-width: 767px) { .is-wiz-open .wiz__opts:not(.wiz__opts--text):has(> :nth-child(3)):not(:has(> :nth-child(4))) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 「こだわらない」：選べるごはんの写真を4枚並べて、どれでもよいことを見せる */
.wiz__img--mix { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 2px; background: var(--c-bg); }
.is-wiz-open .wiz__img--mix img { position: static; width: 100%; height: 100%; min-height: 0; object-fit: cover; }

/* 行く日のカレンダー（11/10 Takeru：ブラウザ標準の日付入力をやめ、問いの欄に直接置く） */
.wiz__cal { margin: 0 0 var(--sp-4); border: 1px solid var(--c-line); border-radius: var(--radius); padding: var(--sp-3) var(--sp-3) var(--sp-2); }
.wiz__cal-head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 var(--sp-2); }
.wiz__cal-month { margin: 0; font-size: var(--t-title); font-weight: 700; letter-spacing: .04em; font-feature-settings: "palt"; }
.wiz__cal-nav { display: inline-flex; gap: var(--sp-1); }
.wiz__cal-nav button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--radius); color: var(--c-text); cursor: pointer; }
.wiz__cal-nav button:hover:not(:disabled) { border-color: var(--c-text); }
.wiz__cal-nav button:disabled { opacity: .3; cursor: default; }
.wiz__cal-nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.wiz__cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); row-gap: 2px; text-align: center; }
.wiz__wd { padding: var(--sp-1) 0; font-size: var(--t-xs); color: var(--c-text-weak); letter-spacing: .08em; }
.wiz__day { position: relative; height: 38px; padding: 0; font: inherit; font-size: var(--t-body); font-variant-numeric: tabular-nums; color: var(--c-text); background: none; border: 1px solid transparent; border-radius: var(--radius); cursor: pointer; transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
.wiz__day:hover:not(:disabled) { border-color: var(--c-line); background: #f4f7fa; }
.wiz__day.is-sun:not(:disabled), .wiz__wd.is-sun { color: #9a3b32; }
.wiz__day.is-sat:not(:disabled), .wiz__wd.is-sat { color: var(--semantic-color-surface-emphasis); }
.wiz__day:disabled { color: var(--c-text-weak); opacity: .35; cursor: default; }
.wiz__day.is-today::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor; }
:root .wiz .wiz__day[aria-pressed="true"] { background: var(--semantic-color-surface-emphasis); border-color: var(--semantic-color-surface-emphasis); color: #fff; }
.wiz__day:focus-visible, .wiz__cal-nav button:focus-visible { outline: 2px solid var(--semantic-color-surface-emphasis); outline-offset: 2px; }
@media (max-width: 767px) {
  .wiz__cal { padding: var(--sp-2); }
  .wiz__day { height: 44px; }
}
.wiz__type-name .ph { display: inline-block; }
.wiz__date-acts { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.wiz__date-acts .btn { flex: 1 1 12em; }
.wiz__date-acts .btn:disabled { opacity: .45; cursor: default; }
.wiz__date-note { margin: var(--sp-2) 0 0; font-size: var(--t-sm); line-height: 1.7; color: var(--c-text-weak); }
.is-wiz-open .wiz__cal { margin-bottom: var(--sp-3); }
/* 印刷の地図：日の見出しのすぐ下に、その日の場所だけ（番号は旅程表の丸と同じ）。紙の幅の6割ほど（11/10 Takeru） */
.pr-map { margin: 16px 0 4px; break-inside: avoid; }
.pr-map .plan-map { width: 62%; max-width: 440px; margin: 0; }
.pr-map svg { display: block; width: 100%; height: auto; border: 1px solid #d5dde6; border-radius: 4px; }
.pr-map .map__note { margin-top: 6px; font-size: 11px; color: var(--c-text-weak, #5a5a5a); }
.pr-map .map-zoom { display: none; }
.pr-dot--n { width: 20px; height: 20px; margin-top: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
@media (max-width: 767px) { .pr-map .plan-map { width: 100%; } }
@media print { .pr-map .plan-map { width: 110mm; } .pr-day__head + .pr-map { break-before: avoid; } }
/* 紙の1枚目に旅程が入るように（11/10 Takeru「1枚目が地図だけで切れるのは良くない」「名前のない旅程も上に詰めて、文字も小さく」）：見出しまわりを詰め、地図を小さく */
@media print {
  .print-sheet__top { padding-bottom: 8px; }
  .print-sheet__head h1 { margin-top: 14px; font-size: 22pt; line-height: 1.3; }
  .print-sheet__head .print-sheet__meta { margin-top: 4px; font-size: 10pt; }
  .print-sheet__head + .pr-day, [data-print-body] > .pr-day:first-child { margin-top: 18px; }
  .pr-day__head { padding-bottom: 6px; }
  .pr-day__head h2 { font-size: 16pt; }
  .pr-map { margin: 10px 0 0; }
  .pr-map .plan-map { width: 78mm; }
  .pr-map .map__note { margin-top: 3px; font-size: 8pt; }
  .pr-list { margin-top: 10px; }
}
/* 「保存した旅程を開く」と「＋ 新しい旅程」の高さをそろえる（名前の欄と同じ 52px。11/10 Takeru） */
.plan-page .plan__pick-row .plan__pick-field select, .plan-page .plan__pick-row .plan__new { box-sizing: border-box; height: 52px; min-height: 52px; }
/* 番号の丸：数字を丸のまんなかに（11/10 Takeru）。Zen Kaku Gothic の数字は丸の中央より約 1px 下に出る（文字は 1px 単位で置かれる）ので、下に 2px 足して 1px 持ち上げる */
.pstop__no, .pr-dot--n { padding-bottom: 2px; box-sizing: border-box; }

/* 入口なしで開いたときの1問目「北杜で、どんな旅をしたいですか？」：TOP と同じ2つの組に分け、7つが1画面に収まるよう、写真を左に置いた横長の札で並べる（11/10 Takeru）
   ほかの問いの写真札の決まり（:has で数を見て列と写真の比を変える）より強くするため、.wiz__stage などを足して詳しさを上げている */
.wiz__group + .wiz__group { margin-top: var(--sp-5); }
.wiz__group-h { margin: 0 0 var(--sp-3); font-size: var(--t-sm); font-weight: 700; letter-spacing: .08em; color: var(--c-text-weak); }
.is-wiz-open .wiz__stage .wiz__group .wiz__opts.wiz__opts--rows { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2) var(--sp-3); }
.is-wiz-open .wiz__stage .wiz__group .wiz__opts--rows .wiz__opt { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; min-height: 72px; }
.is-wiz-open .wiz__stage .wiz__group .wiz__opts--rows .wiz__opt .wiz__img { aspect-ratio: auto; align-self: stretch; height: 100%; }
.is-wiz-open .wiz__stage .wiz__group .wiz__opts--rows .wiz__label { padding: var(--sp-2) 4px var(--sp-2) 12px; letter-spacing: 0; font-size: var(--t-body); line-height: 1.5; }
@media (max-width: 767px) {
  .is-wiz-open .wiz__stage .wiz__group .wiz__opts.wiz__opts--rows { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
  .is-wiz-open .wiz__stage .wiz__group .wiz__opts--rows .wiz__opt { grid-template-columns: 104px minmax(0, 1fr); min-height: 72px; }
}

/* AI 提案の結果ページ（11/10 Takeru「作り込んで」）：箱で囲まず、細い線と余白で区切る。題と要点 → 理由 → 見どころ → 日ごとの旅程 → 費用 → 操作 */
:root .suggest-result:has(> .sres) { border: 0; padding: 0; margin: 0 auto var(--sp-6); }
.sres { --sres-time: 5.5em; --sres-gap: 32px; position: relative; }
.sres .vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sres__head { padding: var(--sp-5) 0 var(--sp-5); border-top: 1px solid var(--c-text); }
.sres__kicker { display: flex; align-items: center; gap: var(--sp-2); margin: 0 0 var(--sp-3); font-size: var(--t-sm); font-weight: 700; letter-spacing: .08em; }
.sres__kicker .ai-label { font-weight: 400; letter-spacing: .04em; padding: 1px 8px; border-color: var(--c-line); color: var(--c-text-weak); border-radius: 2px; }
.sres__title { margin: 0 0 var(--sp-3); font-size: calc(var(--t-xl) * 1.414); line-height: 1.414; letter-spacing: .04em; font-feature-settings: "palt"; word-break: auto-phrase; }
.sres__lead { margin: 0 0 var(--sp-5); max-width: 36em; font-size: var(--t-md); line-height: 2; }
.sres__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 var(--sp-4); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.sres__facts div { padding: var(--sp-3) var(--sp-4) var(--sp-3) 0; }
.sres__facts div + div { padding-left: var(--sp-4); border-left: 1px solid var(--c-line); }
.sres__facts dt { margin: 0 0 6px; font-size: var(--t-sm); color: var(--c-text-weak); letter-spacing: .04em; }
.sres__facts dd { margin: 0; font-size: var(--t-title); font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.sres__acts { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin: 0; }
.sres__acts .btn { min-width: 12em; }
.sres__notes { list-style: none; margin: var(--sp-3) 0 0; padding: 0; font-size: var(--t-sm); line-height: 1.8; color: var(--c-text-weak); }
.sres__notes li { position: relative; padding-left: 1.2em; }
.sres__notes li::before { content: ""; position: absolute; left: 0; top: .8em; width: 6px; height: 1px; background: currentColor; }
.sres__h { margin: 0 0 var(--sp-4); font-size: var(--t-xl); line-height: 1.414; letter-spacing: .06em; }
.sres__why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.414fr); gap: var(--sp-4); padding: var(--sp-5) 0; border-top: 1px solid var(--c-line); }
.sres__why .sres__h { margin: 0; font-size: var(--t-title); }
.sres__why p { margin: 0; max-width: 40em; font-size: var(--t-body); line-height: 2; }
/* 時刻の列の右に縦の線を引き、立ち寄り先は点、移動は線の上の小さな一行にする */
.sres__costlist { margin: 0 0 var(--sp-3); border-top: 1px solid var(--c-line); max-width: 40em; }
.sres__costlist div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-3); align-items: baseline; padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-line); }
.sres__costlist dt { color: var(--c-text-weak); }
.sres__costlist dd { margin: 0; font-weight: 700; font-size: var(--t-title); font-variant-numeric: tabular-nums; text-align: right; }
.sres__costlist div:first-child dd { font-size: var(--t-xl); }
.sres__cost .note { max-width: 40em; }
.sres__foot { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--c-text); }
.sres__foot .note { margin: 0 0 var(--sp-4); }
/* 上と下の操作が見えないあいだだけ出る、画面下の帯 */
.sres__bar { position: fixed; left: 50%; bottom: var(--sp-3); z-index: 40; display: flex; align-items: center; gap: var(--sp-4); width: min(720px, calc(100% - 32px)); padding: 10px 10px 10px var(--sp-4); background: var(--c-bg); border: 1px solid var(--c-line); border-radius: 4px; box-shadow: 0 8px 32px rgba(21, 21, 21, .12); transform: translate(-50%, calc(100% + 32px)); opacity: 0; visibility: hidden; transition: transform .3s var(--ease), opacity .3s var(--ease), visibility 0s .3s; }
.sres__bar.is-on { transform: translate(-50%, 0); opacity: 1; visibility: visible; transition: transform .3s var(--ease), opacity .3s var(--ease); }
.sres__barname { flex: 1; min-width: 0; margin: 0; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sres__bar .btn { flex: none; }
@media (prefers-reduced-motion: reduce) { .sres__bar, .sres__bar.is-on { transition: none; } }
@media print { .sres__bar, .sres__acts { display: none; } }
@media (min-width: 768px) and (max-width: 1023px) {
  .sres { --sres-time: 4.5em; --sres-gap: 24px; }
}
@media (max-width: 767px) {
  .sres { --sres-time: 3.6em; --sres-gap: 20px; }
  .sres__head { padding: var(--sp-4) 0; }
  .sres__title { font-size: var(--t-xl); }
  .sres__lead { font-size: var(--t-body); margin-bottom: var(--sp-4); }
  .sres__facts { grid-template-columns: minmax(0, 1fr); }
  .sres__facts div, .sres__facts div + div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-3); padding: 12px 0; border-left: 0; }
  .sres__facts div + div { border-top: 1px solid var(--c-line); }
  .sres__facts dt { margin: 0; }
  .sres__facts dd { font-size: var(--t-body); text-align: right; }
  .sres__acts .btn { flex: 1 1 100%; min-width: 0; }
  .sres__why { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); padding: var(--sp-4) 0; }
  .sres__costlist div:first-child dd { font-size: var(--t-title); }
  .sres__bar { bottom: max(var(--sp-2), env(safe-area-inset-bottom)); padding-left: var(--sp-3); gap: var(--sp-3); }
  .sres__barname { font-size: var(--t-sm); }
}
.wiz__type-next { font-size: var(--t-body); font-weight: 400; color: var(--c-text-weak); margin: var(--sp-4) 0 var(--sp-3); }
@media (max-width: 767px) { .sres__barname { display: none; } .sres__bar { padding: 8px; } .sres__bar .btn { flex: 1 1 auto; } }
.sres__costlist div + div dd { font-size: var(--t-body); }
/* 「この答えに合わせて…」は結果カードの答えの列にそろえ、カードから下の案へ続けて読めるようにする（11/10 Takeru） */
@media (min-width: 768px) { .wiz__type-next { margin-left: calc(100% / 2.414 + var(--sp-5)); } }
.wiz__type-next { display: flex; align-items: stretch; gap: var(--sp-3); line-height: 1.8; }
.wiz__type-next::before { content: ""; flex: none; width: 1px; background: currentColor; opacity: .5; }
/* 概要／詳しくのボタンは同じ幅にそろえる（11/10 Takeru） */
.view-seg { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.view-seg button { min-width: 5.5em; text-align: center; }
.sres__title + .sres__facts { margin-top: var(--sp-5); }

/* 旅程を大きく（11/10 Takeru）：PC は旅程を最大 1200px（ページの見出しと同じ枠）。
   地図は旅程の上。幅があれば地図の右に「旅程の名前〜旅の条件」を並べる（地図の右が空かないように）。
   目次は右の余白に入るときだけ出す。幅はパネルを開いているかどうかも含めて main の幅で決める */
@media (min-width: 768px) {
  main:has(> .plan-page) { container-type: inline-size; }
  main > .plan-page { width: calc(100% - 2 * var(--sp-5)); max-width: none; margin-left: auto; margin-right: auto; padding: 0;
    grid-template-columns: [full-start] minmax(0, 1fr) [main-start] minmax(0, 1200px) [main-end] minmax(0, 1fr) [full-end]; column-gap: 0; row-gap: 0; justify-content: stretch; }
  .plan-page > .plan-page__map { display: block; grid-column: main-start / main-end; grid-row: 1; position: static; margin: 0 0 var(--sp-5); }
  .plan-page > .plan-page__list { grid-column: main-start / main-end; grid-row: 2; }
  .plan-page > .plan-toc { display: none; }
  .plan-page__map .plan-map-box { max-width: 640px; }
}
/* 地図（左）と、旅程の名前〜旅の条件（右）を左右に組む。下の日ごとの旅程は全幅 */
@container (min-width: 880px) {
  main > .plan-page { grid-template-rows: auto 1fr; grid-template-columns: [full-start] minmax(0, 1fr) [main-start] minmax(0, 592px) [side-start] minmax(0, 608px) [main-end] minmax(0, 1fr) [full-end]; }
  main > .plan-page > .plan-page__map { grid-column: main-start / side-start; grid-row: 1 / span 2; align-self: start; position: static; margin: 0 var(--sp-5) 0 0; } /* 地図・旅の条件の下は、1日目の見出しの上の余白（64px）だけにする（11/10 Takeru「余白が広すぎる」） */
  main > .plan-page .plan-page__map .plan-map-box { max-width: none; }
  main > .plan-page > .plan-page__list { display: contents; }
  main > .plan-page > .plan-page__list > * { grid-column: main-start / main-end; }
  main > .plan-page > .plan-page__list > .plan__switch { grid-column: side-start / main-end; grid-row: 1; align-self: start; margin-top: 0; }
  main > .plan-page > .plan-page__list > .plan__cond-edit { grid-column: side-start / main-end; grid-row: 2; align-self: start; margin-top: 0; margin-bottom: 0; }
}
/* 目次は右の余白に（200px と間 48px が入るときだけ）。旅程の中身は1行ずつ別の行になるので、目次の範囲は最後の日まで届くよう多めに取る（空の行は高さ 0） */
@container (min-width: 1696px) {
  main > .plan-page > .plan-toc:not([hidden]) { display: block; grid-column: main-end / full-end; grid-row: 1 / span 60; justify-self: start; width: 200px; margin-left: var(--sp-5); }
}
/* 開いた予定の「滞在の目安〜雨の日」：カードに幅があれば2列（上から下へ読む） */
.plan-page .pstop__body-in { container-type: inline-size; }
@container (min-width: 600px) {
  .plan-page .pstop__body-in > .facts { display: block; columns: 2; column-gap: var(--sp-5); }
  .plan-page .pstop__body-in > .facts > div { break-inside: avoid; margin: 0 0 6px; }
  .plan-page .pstop__body-in > .plan__infos { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--sp-5); align-items: start; }
}
/* 地図の右の「旅の条件」：入力欄を同じ幅の2列にそろえる（11/10 Takeru「配置が崩れている」）。
   1行目は来かた（電車で／車で）と駅（IC）、そのあと 日付・人数／ゲストの言語・移動手段。ラベルはすべて欄の上 */
@container (min-width: 880px) {
  .plan-page .plan__cond-edit .plan__cond-body { padding: 0 var(--sp-4) var(--sp-4); }
  .plan-page .plan__cond-edit .plan__entry { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 0 var(--sp-4); margin: 0; padding: 26px 0 0; border: 0; }
  .plan-page .plan__cond-edit .plan__entry > legend { position: absolute; top: 0; left: 0; margin: 0; padding: 0; font-size: var(--t-sm); font-weight: 700; line-height: 20px; }
  .plan-page .plan__cond-edit .plan__entry-by { grid-column: 1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; box-sizing: border-box; }
  .plan-page .plan__cond-edit .plan__entry-by label { min-width: 0; min-height: 46px; height: 46px; padding: 0 var(--sp-2); justify-content: center; }
  .plan-page .plan__cond-edit .plan__entry .plan__entry-gate { grid-column: 2; display: grid; gap: 6px; margin-top: -26px; }
  .plan-page .plan__cond-edit :is(.plan__entry-gate, .plan__cond-grid label) > span:first-child { font-size: var(--t-sm); font-weight: 700; line-height: 20px; }
  .plan-page .plan__cond-edit .plan__entry-gate select, .plan-page .plan__cond-edit .plan__cond-grid :is(input, select) { width: 100%; min-width: 0; height: 48px; min-height: 48px; box-sizing: border-box; }
  .plan-page .plan__cond-edit .plan__cond-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--sp-4); margin: 0; }
  .plan-page .plan__cond-edit .plan__cond-grid > * { min-width: 0; }
}

/* 旅のタイプのカード：蒼の面は重すぎる（11/10 Takeru「色が濃すぎない？」）→ 淡青（#e3ecf3）の面に墨の文字 */
.wiz__type { background: var(--semantic-color-surface-tint); color: var(--c-text); }
.wiz__type-img { background: var(--semantic-color-surface-muted); }
.wiz__type-kicker { color: var(--c-text-weak); }
.wiz__type-name { color: var(--c-text); }
.wiz__type-desc { color: var(--c-text); }
.wiz__type-answers, .wiz__type-answers div { border-color: var(--c-line); }
.wiz__type-answers dt { color: var(--c-text-weak); }
/* 旅程が2つ以上のとき、名前の上に「保存した旅程を開く」を小さく1行で（11/10 Takeru）。下の名前・条件より目立たせない */
.plan-page .plan__switch > .plan__pick-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); margin: 0; padding: 0 0 var(--sp-3); border-bottom: 1px solid var(--c-line); }
.plan-page .plan__switch > .plan__pick-row .plan__pick-field { display: flex; align-items: center; gap: var(--sp-2); flex: 1 1 18em; min-width: 0; }
.plan-page .plan__switch > .plan__pick-row .plan__pick-field .plan__name-label { flex: none; margin: 0; font-size: var(--t-sm); font-weight: 400; color: var(--c-text-weak); white-space: nowrap; }
.plan-page .plan__switch > .plan__pick-row .plan__pick-field select { flex: 1 1 auto; width: auto; min-width: 0; max-width: 26em; height: 40px; min-height: 40px; padding-top: 0; padding-bottom: 0; font-size: var(--t-sm); line-height: 38px; } /* 上下の余白 10px と行の高さで文字が下にずれていた（11/10 Takeru） */
.plan-page .plan__name-acts .ico--plus { stroke-width: 1.75; }
@media (max-width: 599px) { .plan-page .plan__name-acts { flex-wrap: wrap; margin-left: -8px; } } /* 折り返して左に来たとき、文字の頭を上の行にそろえる */
/* 「削除した旅程（n）」は、となりの「新しい旅程・複製する」と同じ文字の操作にそろえる（下線はポインタを乗せたときだけ。11/10） */
.plan-page .plan__switch > .plan__pick-row .plan__trash > summary { text-decoration: none; min-height: 40px; }
.plan-page .plan__switch > .plan__pick-row .plan__trash > summary:hover > span { text-decoration: underline; text-underline-offset: 4px; }
/* 1日目の見出しの右に「保存した場所」「すべて開く」「この日を消す」が並ぶと、狭い画面では入りきらない。中で折り返す */
@media (max-width: 599px) { .plan-page .plan__day h3 > .plan__day-tools { flex-wrap: wrap; margin-left: -8px; } }

/* AI 提案の結果（11/10 Takeru「旅程ページ（/plan）を踏襲して」）：旅程ページと同じ組み。
   幅があれば、地図（左）と、題・要点・保存・理由（右）を並べ、その下に日ごとの時間の線（旅程ページの読むだけの表示）を全幅で。
   狭いときは 題 → 理由 → 地図 → 旅程 の順に縦に積む。費用と操作は最後 */
.sres > .sres__page { display: block; width: auto; max-width: none; margin: 0; padding: 0; }
.sres > .sres__page > .plan-page__map { position: static; margin: 0 0 var(--sp-5); }
.sres__page .plan-map-box { max-width: 640px; }
.sres > .sres__page > .sres__why { display: block; padding: var(--sp-4) 0 var(--sp-5); border-top: 1px solid var(--c-line); }
.sres > .sres__page > .sres__why .sres__h { margin: 0 0 var(--sp-2); font-size: var(--t-ui); letter-spacing: .04em; }
.sres > .sres__page > .sres__why p { max-width: none; }
.sres__page .sres__notes { margin-top: var(--sp-3); }
.sres__page > .sres__list .plan__day:first-child h3 { margin-top: 0; padding-top: var(--sp-5); border-top: 1px solid var(--c-text); }
.sres__daysub { display: grid; gap: 2px; margin: var(--sp-2) 0 0; padding-left: calc(var(--tcol) + 24px); }
.sres__daytitle { font-size: var(--t-md); font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.sres__daylead { color: var(--c-text-weak); line-height: 1.8; }
.sres__page > .sres__cost { margin: var(--sp-5) 0 0; padding: var(--sp-5) 0 0; border-top: 1px solid var(--c-line); }
.sres__page > .sres__foot { margin-top: var(--sp-5); }
@media (min-width: 768px) { .suggest-result:has(> .sres) { container-type: inline-size; } }
@container (min-width: 880px) {
  .sres > .sres__page { display: grid; grid-template-columns: [main-start] minmax(0, 592fr) [side-start] minmax(0, 608fr) [main-end]; grid-template-rows: auto 1fr; column-gap: 0; row-gap: 0; }
  .sres > .sres__page > * { grid-column: main-start / main-end; grid-row: auto; min-width: 0; }
  .sres > .sres__page > .plan-page__map { grid-column: main-start / side-start; grid-row: 1 / span 2; align-self: start; margin: 0 var(--sp-5) var(--sp-5) 0; }
  .sres > .sres__page > .sres__head { grid-column: side-start / main-end; grid-row: 1; padding-top: 0; border-top: 0; }
  .sres > .sres__page > .sres__why { grid-column: side-start / main-end; grid-row: 2; align-self: start; margin-bottom: var(--sp-5); }
  .sres__page .plan-map-box { max-width: none; }
  .sres__page .sres__title { font-size: calc(var(--t-xl) * 1.2); }
}
@media (max-width: 767px) {
  .sres__daysub { padding-left: 0; }
}
/* 「保存した旅程を開く」を「旅程の名前」と同じ組み方に（見出しは上・太字、欄は同じ高さと文字の大きさ）。削除した旅程は見出しの行の右端（11/10 Takeru「まとまりがない」） */
.plan-page .plan__switch > .plan__pick-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--sp-3); row-gap: 4px; margin: 0 0 var(--sp-2); padding: 0; border-bottom: 0; } /* .plan__switch の行間 16px と合わせて、旅の条件と同じ 24px */
.plan-page .plan__switch > .plan__pick-row .plan__pick-field { display: contents; }
.plan-page .plan__switch > .plan__pick-row .plan__pick-field .plan__name-label { grid-column: 1; grid-row: 1; margin: 0; font-size: var(--t-sm); font-weight: 700; color: var(--c-text); white-space: nowrap; }
.plan-page .plan__switch > .plan__pick-row .plan__pick-field select { grid-column: 1 / -1; grid-row: 2; width: 100%; max-width: none; height: 52px; min-height: 52px; padding: 0 44px 0 14px; font-size: var(--t-md); line-height: 50px; }
.plan-page .plan__switch > .plan__pick-row .plan__trash { grid-column: 2; grid-row: 1; justify-self: end; margin: 0; }
.plan-page .plan__switch > .plan__pick-row .plan__trash > summary { min-height: 26px; padding: 0; gap: 6px; }
.plan-page .plan__switch > .plan__pick-row .plan__trash > summary .ico { width: 16px; height: 16px; }
.plan-page .plan__switch > .plan__pick-row .plan__trash .menu__pop { left: auto; right: 0; } /* ゴミ箱を右端に移したので、開く一覧も右端にそろえる */
/* 時間軸の縦線と右の要素（カード・移動の行・＋ ここに予定を入れる）の間を広げる（11/10 Takeru「線が近すぎる」）。
   線と点の位置は時刻の列からそのまま、レールの幅だけ 24→40px（スマホ 20→32px）にして、線の右に約28px（スマホ約22px）あける */
.plan-page { --rail: 40px; }
.plan-page .pstop__in { grid-template-columns: var(--tcol) var(--rail) minmax(0, 1fr); }
.plan-page .leg, .plan-page .plan__gap, .plan-page .plan__addday, .plan-page .plan__day > .plan__meta, .plan-page .plan-page__list > .plan__meta, .plan-page .sres__daysub { padding-left: calc(var(--tcol) + var(--rail)); }
.plan-page .pstop__card::before { left: calc(5px - var(--rail)); }
.plan-page .pstop__no { left: calc(0px - var(--rail)); }
.plan-page .pstop__time { padding-right: 10px; } /* 時刻と番号の丸のあいだも、くっつかないように */
@media (max-width: 767px) {
  .plan-page { --rail: 32px; }
  .plan-page .pstop__card::before { left: calc(3px - var(--rail)); }
  .plan-page .pstop__no { left: calc(-2px - var(--rail)); }
}

/* 共有ページ（閲覧のみ）：旅程のページと同じ組み方（11/10 Takeru「デザインが入っていない」）。
   地図の右に旅程の名前と「旅の条件」の箱。上の帯は旅の条件と同じ淡い面にして、太い枠をやめる */
.plan-page .plan__ro-title { margin: 0 0 var(--sp-4); font-size: var(--fs-h2); font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.plan-page .plan__cond-ro { margin: 0 0 var(--sp-5); padding: var(--sp-3) var(--sp-4) var(--sp-4); background: #f4f7fa; border-radius: var(--radius); }
.plan-page .plan__cond-ro-h { margin: 0 0 var(--sp-3); font-size: var(--t-ui); font-weight: 700; line-height: 1.6; }
.plan-page .plan__cond-ro .plan__cond-text { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-4); margin: 0; padding: 0; background: none; font-size: var(--t-ui); }
.plan-page .plan__cond-ro .plan__cond-text dt { margin: 0 0 2px; font-size: var(--t-sm); font-weight: 700; color: var(--c-text); }
.plan-page .plan__cond-ro .plan__cond-text dd { margin: 0; }
@container (min-width: 880px) {
  main > .plan-page > .plan-page__list > .plan__ro-title { grid-column: side-start / main-end; grid-row: 1; align-self: start; }
  main > .plan-page > .plan-page__list > .plan__cond-ro { grid-column: side-start / main-end; grid-row: 2; align-self: start; margin-bottom: 0; }
}
main > .shared-banner { margin: var(--sp-3) auto var(--sp-5); padding: var(--sp-3) var(--sp-4); background: #f4f7fa; border: 0; border-radius: var(--radius); }
main > .shared-banner > p:first-child { margin: 0; font-size: var(--t-sm); }
main > .shared-banner .btn { min-height: 48px; }
@media (min-width: 768px) { main:has(> .plan-page) > .shared-banner { width: calc(100% - 2*var(--sp-5)); max-width: 1200px; box-sizing: border-box; } }
@media (max-width: 599px) { main > .shared-banner .shared-banner__ops { display: grid; width: 100%; } main > .shared-banner .shared-banner__ops .btn { width: 100%; height: auto; padding: 10px var(--sp-3); line-height: 1.5; } }

/* 共有ページの最下段の印刷ボタン（11/10 Takeru）。上の帯と同じ幅に揃える */
main > .shared-foot { margin: var(--sp-4) auto 0; }
main > .shared-foot .btn { min-height: 48px; }
@media (min-width: 768px) { main:has(> .plan-page) > .shared-foot { width: calc(100% - 2*var(--sp-5)); max-width: 1200px; box-sizing: border-box; } }
@media (max-width: 599px) { main > .shared-foot .btn { width: 100%; } }
/* 探すの地図：位置関係図の上に場所の印（app.js drawMap） */
.map--pins { border: 0; background: none; align-self: start; height: auto; }
.map--pins .map__pin circle { fill: #fff; stroke: var(--semantic-color-text-primary); stroke-width: 3; }
.map--pins .map__pin:is(:hover, :focus-visible) circle, .map--pins .map__pin--on circle { fill: var(--semantic-color-text-primary); }
.map--pins .map__pin:focus-visible { outline: none; }
.map--pins .map__pin text { font-size: 18px; font-weight: 700; fill: #fff; }

/* パネル「場所を入れる」の一番上：いま開いている旅程（11/10 Takeru）。旅程を選ぶのは旅程一覧のページ */
.plan-panel .pick-cur { margin: var(--sp-2) 0 0; padding: var(--sp-3) var(--sp-3) var(--sp-2); background: #f4f7fa; border-radius: var(--radius); }
.pick-cur p { margin: 0; }
.pick-cur__label { font-size: var(--t-xs); color: var(--c-text-weak); }
.pick-cur__name { margin-top: 2px !important; font-size: var(--t-ui); font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.pick-cur__name a { color: inherit; text-decoration: none; }
.pick-cur__name a:hover { text-decoration: underline; text-underline-offset: .2em; }
.pick-cur__name .ico--in, .pick-cur__link .ico--in { width: 12px; height: 12px; margin-left: 4px; fill: none; stroke: currentColor; stroke-width: 1.6; vertical-align: -1px; }
.pick-cur__meta { font-size: var(--t-sm); color: var(--c-text-weak); }
.pick-cur__link a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--t-sm); font-weight: 700; color: var(--component-button-primary-background, var(--c-primary)); text-decoration: none; }
.pick-cur__link a:hover { text-decoration: underline; text-underline-offset: .2em; }
/* ヘッダーの「旅程」はページへ移るリンク（1件なら編集、2件以上なら旅程一覧） */
a.plan-toggle { display: inline-flex; align-items: center; text-decoration: none; }
/* 旅の条件の「駅」「IC」：ほかの欄と同じく見出しを欄の上に、欄は全幅（11/10 Takeru） */
.plan-page .plan__entry .plan__entry-gate { display: grid; gap: 6px; align-items: start; }
.plan-page .plan__entry .plan__entry-gate select { width: 100%; min-width: 0; height: 48px; box-sizing: border-box; }
.plan-page .plan__entry .plan__entry-gate > span:first-child { font-size: var(--t-sm); font-weight: 700; line-height: 20px; }
/* 狭い幅の「旅の条件」：来かたのボタンと駅（IC）は全幅で縦に、日付・人数／ゲストの言語・移動手段は同じ幅の2列。見出しはすべて欄の上、欄の高さ 48px、行の間はどこも同じ（11/10 Takeru「駅の配置がほかと違う」、11/11 駅と日付の間だけ広かった） */
@container (max-width: 879.98px) {
  .plan-page .plan__cond-edit .plan__cond-body { gap: var(--sp-3); }
  .plan-page .plan__cond-edit .plan__entry { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); margin: 0; padding: 0; border: 0; }
  .plan-page .plan__cond-edit .plan__entry > legend { float: none; width: auto; margin: 0 0 6px; padding: 0; font-size: var(--t-sm); font-weight: 700; line-height: 20px; }
  .plan-page .plan__cond-edit .plan__entry-by { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; box-sizing: border-box; }
  .plan-page .plan__cond-edit .plan__entry-by label { min-width: 0; height: 48px; min-height: 48px; padding: 0 var(--sp-2); justify-content: center; }
  .plan-page .plan__cond-edit .plan__cond-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--sp-3); margin: 0; }
  .plan-page .plan__cond-edit .plan__cond-grid > * { min-width: 0; }
  .plan-page .plan__cond-edit .plan__cond-grid label { line-height: 20px; }
  .plan-page .plan__cond-edit .plan__cond-grid :is(input, select) { width: 100%; min-width: 0; height: 48px; min-height: 48px; box-sizing: border-box; }
}

@media (max-width: 767px) {
  .plan-page .plan__cond-edit .plan__cond-body { gap: var(--sp-3); }
  .plan-page .plan__cond-edit .plan__entry { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); margin: 0; padding: 0; border: 0; }
  .plan-page .plan__cond-edit .plan__entry > legend { float: none; width: auto; margin: 0 0 6px; padding: 0; font-size: var(--t-sm); font-weight: 700; line-height: 20px; }
  .plan-page .plan__cond-edit .plan__entry-by { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; box-sizing: border-box; }
  .plan-page .plan__cond-edit .plan__entry-by label { min-width: 0; height: 48px; min-height: 48px; padding: 0 var(--sp-2); justify-content: center; }
  .plan-page .plan__cond-edit .plan__cond-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--sp-3); margin: 0; }
  .plan-page .plan__cond-edit .plan__cond-grid > * { min-width: 0; }
  .plan-page .plan__cond-edit .plan__cond-grid label { line-height: 20px; }
  .plan-page .plan__cond-edit .plan__cond-grid :is(input, select) { width: 100%; min-width: 0; height: 48px; min-height: 48px; box-sizing: border-box; }
}
/* パネル「場所を入れる」は白銀比の刻み（11/10 Takeru）。どのページで開いても同じ大きさ */
.ds .plan-panel { --t-2xs: var(--s-n2); --t-xs: var(--s-n2); --t-sm: var(--s-n1); --t-meta: var(--s-n1); --t-ui: var(--s-0); --t-body: var(--s-0); --t-md: var(--s-1); --t-title: var(--s-2); --t-lead: var(--s-0); --t-xl: var(--s-2); --fs-body: var(--s-0); --fs-small: var(--s-n2); --fs-h2: var(--s-2); --fs-h3: var(--s-1); }
.ds .plan-panel .wish__n, body.page-plan .wish__n { font-size: var(--s-n2); }

/* TOP の音声ガイド：説明とボタン1つ（SOUND-GUIDE のトップへ）、いま聴ける2か所の紹介（Takeru 11/10）。PC は 説明 : 紹介 = 1 : 1.414 */
.page-home .section--audio .audio-guide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr); gap: var(--sp-5); align-items: start; }
.page-home .audio-guide__lead { margin: 0 0 var(--sp-4); max-width: 28em; line-height: 2; }
.page-home .audio-guide__act { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
.page-home .audio-guide__about { color: inherit; font-size: var(--t-sm); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.page-home .audio-guide__places { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto 1fr auto; column-gap: var(--sp-3); }
.page-home .audio-guide__place { display: grid; grid-template-rows: subgrid; grid-row: span 4; min-width: 0; }
.page-home .audio-guide__photo { margin: 0 0 var(--sp-2); aspect-ratio: 1.414 / 1; border-radius: var(--radius); overflow: hidden; background: var(--c-surface); }
.page-home .audio-guide__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.page-home .audio-guide__name { margin: 0; font-size: var(--t-md); line-height: 1.5; letter-spacing: .04em; }
.page-home .audio-guide__text { margin: var(--sp-1) 0 0; font-size: var(--t-sm); line-height: 1.9; }
.page-home .audio-guide__meta { display: grid; margin: var(--sp-2) 0 0; padding-top: var(--sp-2); border-top: 1px solid var(--c-line); font-size: var(--t-xs, 13px); line-height: 1.8; color: var(--c-text-weak); }
@media (max-width: 899px) { .page-home .section--audio .audio-guide { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 479px) { .page-home .audio-guide__places { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-4); } }
/* フッターのリンク：折り返しで1〜2文字だけ次の行に残らないよう、行の長さをならす */
.site-footer__group li { text-wrap: balance; }
/* AI 提案の質問（11/10 Takeru「見た目と質問の完成度を上げたい」）：進め方の2択、いくつでも選べる質問、下の「次へ」 */
/* 進め方：残りの質問の数を、大きな数字で見せる */
.is-wiz-open .wiz__stage .wiz__opts.wiz__opts--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.is-wiz-open .wiz__stage .wiz__opts--pair .wiz__opt { min-height: 0; justify-content: flex-start; padding: var(--sp-4); }
.is-wiz-open .wiz__stage .wiz__opts--pair .wiz__label { padding: 0; font-size: var(--t-title); line-height: 1.414; letter-spacing: .04em; }
.is-wiz-open .wiz__stage .wiz__opts--pair .wiz__label small { margin-top: var(--sp-2); font-size: var(--t-sm); line-height: 1.8; letter-spacing: .02em; }
.wiz__left { display: flex; align-items: baseline; gap: 6px; margin: 0 0 var(--sp-3); padding-bottom: var(--sp-3); border-bottom: 1px solid var(--c-line); color: var(--semantic-color-surface-emphasis); line-height: 1; }
.wiz__left b { font-size: calc(var(--t-xl) * 1.414); font-weight: 700; letter-spacing: 0; font-feature-settings: "tnum" 1, "palt" 1; }
.wiz__left small { font-size: var(--t-sm); font-weight: 700; letter-spacing: .08em; }
/* いくつでも選べる質問：写真の右上に丸い印。選ぶと蒼で塗って、チェックが入る */
.wiz__opts--multi .wiz__opt { position: relative; }
.wiz__check { position: absolute; top: 12px; right: 12px; width: 28px; height: 28px; box-sizing: border-box; border-radius: 50%; background: rgba(255, 255, 255, .92); border: 1.5px solid var(--c-text); display: grid; place-items: center; transition: background-color .16s var(--ease, ease), border-color .16s var(--ease, ease); }
.wiz__check svg { width: 16px; height: 16px; fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .16s var(--ease, ease); }
.wiz__opt.is-on .wiz__check { background: var(--semantic-color-surface-emphasis); border-color: var(--semantic-color-surface-emphasis); }
.wiz__opt.is-on .wiz__check svg { opacity: 1; }
.wiz__opts--multi .wiz__opt--plain .wiz__check, .wiz__opts--multi .wiz__opt:not(:has(.wiz__img)) .wiz__check { top: 50%; transform: translateY(-50%); }
/* 下の操作：左に「ひとつ戻る」、右に「次へ」 */
.wiz__next { margin-left: auto; }
.wiz__next[hidden] { display: none; }
:root .wiz .wiz__next:disabled { background: var(--semantic-color-surface-champagne); border-color: var(--c-line); color: var(--c-text-weak); cursor: default; }
@media (max-width: 767px) {
  .is-wiz-open .wiz__stage .wiz__opts.wiz__opts--pair { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
  .is-wiz-open .wiz__stage .wiz__opts--pair .wiz__opt { padding: var(--sp-3); }
  .wiz__check { top: 8px; right: 8px; width: 24px; height: 24px; }
  .wiz__check svg { width: 14px; height: 14px; }
  .is-wiz-open .wiz__nav { gap: var(--sp-2); }
  .is-wiz-open .wiz__nav .btn { flex: 1 1 0; min-width: 0; padding-inline: var(--sp-2); }
}
@media (prefers-reduced-motion: reduce) { .wiz__check, .wiz__check svg { transition: none; } }
/* 選択肢が奇数のとき、最後のひとつ（決めていない・おまかせ）は横いっぱいにして、右下に穴をあけない */
.is-wiz-open .wiz__stage .wiz__opts--tail > :last-child:nth-child(odd) { grid-column: 1 / -1; min-height: 64px; }
/* 写真の選択肢の最後の「こだわらない」は、写真なしの横長の1行にする。宿の種類は写真を2列に並べる */
/* 宿の種類：小さな写真を左に置いた横長の札を2列に並べ、スクロールせずに全部見えるようにする（1問目の過ごし方と同じ形） */
.is-wiz-open .wiz__stage .wiz__opts.wiz__opts--thumb { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2) var(--sp-3); }
.is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__opt:not(.wiz__opt--plain) { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; min-height: 80px; }
.is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__opt .wiz__img { aspect-ratio: auto; align-self: stretch; height: 100%; }
.is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__label { padding: var(--sp-2) 48px var(--sp-2) var(--sp-3); line-height: 1.5; }
.is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__check { top: 50%; right: 12px; transform: translateY(-50%); }
@media (max-width: 767px) { .is-wiz-open .wiz__stage .wiz__opts.wiz__opts--thumb { grid-template-columns: minmax(0, 1fr); } }
.is-wiz-open .wiz__stage .wiz__opts--tail > .wiz__opt--plain { flex-direction: row; align-items: center; justify-content: flex-start; background: var(--c-bg); }
.is-wiz-open .wiz__stage .wiz__opts--tail > .wiz__opt--plain .wiz__label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--sp-3); text-align: left; padding: var(--sp-2) var(--sp-3); }
.is-wiz-open .wiz__stage .wiz__opts--tail > .wiz__opt--plain .wiz__label small { margin: 0; }
.is-wiz-open .wiz__stage .wiz__opts--multi > .wiz__opt--plain .wiz__label { padding-right: 56px; }
.wiz__check { border-color: rgba(21, 21, 21, .5); }
.wiz__answers > div { grid-template-columns: 7em minmax(0, 1fr); }
.wiz__answers.is-many > div { padding: 5px 0; }
/* 写真のない選択肢（犬と泊まれる宿・こだわらない）は、どれも横いっぱいの1行にする */
.is-wiz-open .wiz__stage .wiz__opts--tail > .wiz__opt--plain { grid-column: 1 / -1; min-height: 64px; }
@media (min-width: 768px) {
  .is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__opt:not(.wiz__opt--plain) { grid-template-columns: 80px minmax(0, 1fr); }
  .is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__opt:not(.wiz__opt--plain) .wiz__label { padding: var(--sp-2) 44px var(--sp-2) 12px; font-size: var(--t-body); letter-spacing: 0; }
  /* 選択肢が7つ以上の文字だけの問い（ご予算）は、札の高さを詰めて、スクロールせずに全部見えるようにする */
  .is-wiz-open .wiz__stage .wiz__opts--text:has(> :nth-child(7)) .wiz__opt { min-height: 72px; }
  .is-wiz-open .wiz__stage .wiz__opts--text:has(> :nth-child(7)) { gap: var(--sp-2) var(--sp-3); }
}
@media (min-width: 768px) { .is-wiz-open .wiz__stage .wiz__opts--multi.wiz__opts--tail:has(> :nth-child(5)):not(.wiz__opts--thumb) .wiz__img { aspect-ratio: 2 / 1; } }
/* 写真つきの選択肢が奇数のとき、最後のひとつ（こだわらない）は写真を左に置いた横長の札にする */
.is-wiz-open .wiz__stage .wiz__opts--tail:not(.wiz__opts--thumb):not(.wiz__opts--text) > .wiz__opt:last-child:nth-child(odd):not(.wiz__opt--plain) { display: grid; grid-template-columns: 136px minmax(0, 1fr); align-items: center; min-height: 80px; }
.is-wiz-open .wiz__stage .wiz__opts--tail:not(.wiz__opts--thumb):not(.wiz__opts--text) > .wiz__opt:last-child:nth-child(odd):not(.wiz__opt--plain) .wiz__img { aspect-ratio: auto; align-self: stretch; height: 100%; }
.is-wiz-open .wiz__stage .wiz__opts--tail:not(.wiz__opts--thumb):not(.wiz__opts--text) > .wiz__opt:last-child:nth-child(odd):not(.wiz__opt--plain) .wiz__label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--sp-3); padding: var(--sp-2) 56px var(--sp-2) var(--sp-3); }
.is-wiz-open .wiz__stage .wiz__opts--tail:not(.wiz__opts--thumb):not(.wiz__opts--text) > .wiz__opt:last-child:nth-child(odd):not(.wiz__opt--plain) .wiz__label small { margin: 0; }
.is-wiz-open .wiz__stage .wiz__opts--tail:not(.wiz__opts--thumb):not(.wiz__opts--text) > .wiz__opt:last-child:nth-child(odd):not(.wiz__opt--plain) .wiz__check { top: 50%; right: 12px; transform: translateY(-50%); }
/* 写真つきの横長の札は、ラベルを決めた位置（\u200b）だけで折り返す */
.is-wiz-open .wiz__stage .wiz__opts--thumb .wiz__label { word-break: keep-all; overflow-wrap: anywhere; }

/* 検索：入力欄と「探す」を、すき間のないひとつの箱にまとめる（11/11 Takeru）。
   ヘッダーは入力欄の右端に虫めがね（「探す」の文字はメニューの「探す」ページだけにして、役目を分ける）。
   トップや「探す」ページの大きい検索は、そのページの主役なので蒼い「探す」ボタンのまま */
:root .search .search__row { gap: 0; border-radius: var(--component-control-radius); }
:root .search .search__row > .search__input { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
:root .search .search__row > .search__btn.btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
:root .search .search__input:focus { outline: 0; }
:root .search .search__row:has(.search__input:focus) { outline: 2px solid var(--c-focus); outline-offset: 2px; }
:root .search .search__row > .search__btn--icon { display: grid; place-items: center; width: 44px; min-width: 0; padding: 0; background: #fff; border: 1px solid var(--component-control-border); border-left: 0; border-radius: 0 var(--component-control-radius) var(--component-control-radius) 0; color: var(--c-text); cursor: pointer; }
:root .search--menu .search__row > .search__btn--icon { width: 48px; }
:root .search .search__row > .search__btn--icon:hover { color: var(--component-button-primary-background); }
:root .search .search__row > .search__btn--icon:focus-visible { outline: 2px solid var(--c-focus); outline-offset: -4px; }
@container (max-width: 18rem) { /* 幅がなくてボタンが下の行に落ちるときは、別々の箱に戻す（ヘッダーは虫めがねが小さいので落とさない） */
  :root .search:not(.search--header) .search__row { row-gap: var(--sp-2); }
  :root .search:not(.search--header) .search__row > .search__input { border-right: 1px solid var(--component-control-border); border-radius: var(--component-control-radius); }
  :root .search:not(.search--header) .search__row > .search__btn.btn { border-radius: var(--component-control-radius); }
  :root .search--header .search__row { grid-template-columns: minmax(0, 1fr) auto; }
}
