/* 1ページの試作（place-0041）。OK が出たら style.css と transform.py に移す */
/* 名前の下：音声ガイドへの導線を1行の文字のリンクに */
.page-place .detail__main > .detail__audio { grid-column: 8 / -1; grid-row: 4; margin: 0 0 var(--sp-3); font-size: 1rem; }
.page-place .detail__audio a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-accent); font-weight: 700; }
.page-place .detail__audio a::after { content: "↓"; margin-left: .4em; }
@media (max-width: 1199px) { .page-place .detail__main > .detail__audio { grid-column: 1 / -1; grid-row: auto; } }
/* こんな人には楽しみ方のポイントの下に */
.why > .for-tags { display: flex; flex-wrap: wrap; gap: 2px 1em; margin: var(--sp-3) 0 0; font-size: 15px; }
.why > .for-tags .tag { padding: 0; border: 0; background: none; font-size: 15px; color: var(--c-text); }
.why > .for-tags .for-tags__label { color: var(--c-text-weak); }
/* 営業時間の図：終わりの時刻を外したので、棒の右の余白も詰める */
.decide > .dayline .dayline__track, .decide > .dayline .dayline__scale { margin-right: 0; }
/* 詳細の区画：値の列を広げ、本文と同じ大きさ・行間に。区画の間を詰める */
@media (min-width: 768px) {
  .page-place .details > .section { margin-bottom: var(--sp-4) !important; padding-top: var(--sp-3); }
  .page-place .details > .section > .section__title { grid-column: 1 / span 2; }
  .page-place .details > .section > :not(.section__title) { grid-column: 3 / -1; }
  .page-place .details .facts > div { grid-template-columns: 9em minmax(0, 1fr); }
  .page-place .details .facts dd, .page-place .details .facts dt { font-size: 1.0625rem; line-height: 1.8; }
}
/* スマホ：図の名前が折り返さない幅に。候補リストのボタンと楽しみ方のポイントの間をあける */
@media (max-width: 767px) {
  .decide > .dayline .dayline__row { grid-template-columns: 8.5em minmax(0, 1fr); }
  .decide > .dayline .dayline__scale { margin-left: calc(8.5em + 10px); margin-right: 0; }
  .page-place .detail__main > .why { margin-top: var(--sp-5); }
}
/* リンク：帯のすぐ下に1段。ラベルの下にリンク */
.page-place .detail__main > .place-links { grid-column: 1 / -1; margin: var(--sp-4) 0 0; }
.place-links ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-5); }
.place-links li { display: grid; gap: 2px; min-width: 0; }
.place-links__label { font-size: 14px; font-weight: 700; color: var(--c-text); opacity: .72; }
.place-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; color: var(--c-text); overflow-wrap: anywhere; }
.place-links__note { margin: var(--sp-2) 0 0; font-size: 14px; color: var(--c-text-weak); }
@media (max-width: 767px) { .place-links ul { grid-template-columns: 1fr 1fr; } .page-place .detail__main > .place-links { order: 2; } .page-place .detail__main > .only-sp { order: 3; } .page-place .detail__main > .why { order: 4; } }
/* 営業時間の図は動かさない */
.dayline__bar { animation: none !important; transform: none !important; }
/* リンクは文字だけで横に並べる（ラベルとリンクの文字が同じになるため、ラベルは出さない） */
.place-links ul { display: flex; flex-wrap: wrap; gap: 0 var(--sp-5); }
/* 種類を見出しに：名前の上に、緑の太字で。町とエリアはその右に小さく */
.page-place .detail__kicker { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: 14px; color: var(--c-text-weak); }
.page-place .detail__cat { padding: 3px 10px; border-radius: var(--radius); background: var(--c-primary); color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .06em; }
/* リンクの段は帯の後ろ */
@media (min-width: 1200px) { .page-place .detail__main > .place-links { order: 1; } }
/* 種類は枠や面にせず、緑の太字の見出しに（原稿の語を札にしない：S-05） */
.page-place .detail__cat { padding: 0; background: none; color: var(--c-primary); font-size: 1rem; }
/* スマホ：候補リストのボタンは予約のすぐ後、リンクはその後 */
@media (max-width: 767px) { .page-place .detail__main > .only-sp { order: 2; } .page-place .detail__main > .place-links { order: 3; } }
/* 種類・町・エリアのタグ（押すと探すページで絞った一覧）。種類だけ緑の面で強く */
.page-place .detail__kicker { display: block; margin: 0 0 var(--sp-3); }
.detail__tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tagx { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-bg); color: var(--c-text); font-size: 15px; text-decoration: none; }
.tagx:hover { border-color: var(--c-text); }
.tagx--cat { border-color: var(--c-primary); background: var(--c-primary); color: #fff; font-weight: 700; }
.tagx--cat:hover { background: var(--c-text); border-color: var(--c-text); }
/* こんな人にのタグ：楽しみ方のポイントの下に、ラベルとタグ */
.why > .for-tags { display: block; margin: var(--sp-3) 0 0; }
.why > .for-tags .for-tags__label { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--c-text); opacity: .72; }
/* リンク（YouTube のチャンネルの形）：名前の下に代表のリンクと「他 N 件のリンク」 */
.page-place .detail__main > .place-links { display: none; }
.page-place .detail__main > .detail__links { grid-column: 8 / -1; grid-row: 4; margin: 0; }
.page-place .detail__main > .detail__audio { grid-row: 5; }
@media (max-width: 1199px) { .page-place .detail__main > .detail__links { grid-column: 1 / -1; grid-row: auto; } }
.links__open { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 .4em; min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-size: 1rem; color: var(--c-text); text-align: left; cursor: pointer; }
.links__first { font-weight: 700; color: var(--c-accent); }
.links__more { font-weight: 700; color: var(--c-text); }
.links__open:hover .links__more { text-decoration: underline; }
.links { width: min(32rem, calc(100% - 32px)); padding: 0; border: 0; border-radius: var(--radius); background: var(--c-bg); color: var(--c-text); }
.links::backdrop { background: rgba(0, 0, 0, .45); }
.links__head { display: flex; align-items: center; justify-content: space-between; padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--c-line); }
.links__head h2 { margin: 0; font-size: 1.25rem; }
.links__close { min-height: 44px; padding: 0 14px; 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; }
.links ul { list-style: none; margin: 0; padding: var(--sp-2) 0; }
.links li a { display: grid; gap: 2px; padding: 12px var(--sp-4); color: var(--c-text); text-decoration: none; }
.links li a:hover { background: var(--c-surface); }
.links__title { font-weight: 700; }
.links__url { font-size: 15px; color: var(--c-accent); overflow-wrap: anywhere; }
/* 線は YouTube の区切り線と同じ色（白地の上で黒の10%）。帯の上の太い線も含めて、すべて1px の薄い線に */
.page-place { --line-soft: rgba(0, 0, 0, .1); }
.page-place .detail__main > .decide { border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.decide > .dayline { border-top-color: var(--line-soft); }
.page-place .details > .section { border-top: 1px solid var(--line-soft); }
.page-place .detail__main > .section { border-top-color: var(--line-soft); }
.links__head { border-bottom-color: var(--line-soft); }
.tagx { border-color: var(--line-soft); }
/* リンクの一覧のアイコン（ページの中で描いた線の図。外部から読み込まない） */
.links li a { grid-template-columns: 40px minmax(0, 1fr); align-items: center; column-gap: var(--sp-3); }
.links__badge { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--c-surface); color: var(--c-text); }
.links__text { display: grid; gap: 2px; min-width: 0; }
/* 予約の区画：おまかせ相談は一番下に、一番目立たない小さな灰色で */
.page-place .details .book-action__alt--quiet { margin: var(--sp-3) 0 0; font-size: 14px; color: var(--c-text-weak); }
.page-place .details .book-action__alt--quiet a { min-height: 44px; color: var(--c-text-weak); font-weight: 400; }
.book-tel { display: block; font-weight: 700; font-variant-numeric: tabular-nums; }
.book-tel__hours { display: block; font-size: 15px; color: var(--c-text-weak); }
/* メニューと料金 */
.page-place .details .menu__head { margin: 0 0 var(--sp-2); font-size: 1rem; font-weight: 700; }
.page-place .details .facts--menu { margin-bottom: var(--sp-4); }
.page-place .details .facts--menu dt { color: var(--c-text); opacity: 1; font-weight: 700; }
.page-place .details .facts--menu > div { grid-template-columns: 12em minmax(0, 1fr); }
@media (max-width: 767px) { .page-place .details .facts--menu > div { grid-template-columns: minmax(0, 1fr); gap: 0; } }
.book-sites { display: flex; flex-wrap: wrap; gap: 0 var(--sp-4); }

/* ---------- 音声ガイドのプレーヤー（音楽配信サービスの標準の形） ---------- */
.page-place .detail__main > .audio-block { margin-top: var(--sp-6); }
.page-place .audio-block > h2 { margin: 0 0 var(--sp-4); font-size: 1.25rem; }
.hp { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--sp-5) var(--sp-6); }
.hp__head { grid-template-columns: minmax(0, 1fr); grid-template-areas: none; gap: var(--sp-4); padding: 0; background: none; border-radius: 0; }
.hp__cover { margin: 0; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--radius); background: var(--c-surface); }
.hp__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp__now { display: grid; gap: 4px; }
.hp__now .hp__count { margin: 0; font-size: 14px; font-weight: 400; color: var(--c-text-weak); }
.hp__now .hp__title { display: block; margin: 0 0 var(--sp-2); font-size: 1.375rem; font-weight: 700; line-height: 1.45; }
.hp__seek { margin: 0 0 -12px; }
.hp__seek::-webkit-slider-runnable-track { height: 4px; }
.hp__seek::-webkit-slider-thumb { width: 14px; height: 14px; margin-top: -5px; }
.hp__time { font-size: 13px; }
.hp__controls { display: flex; align-items: center; justify-content: center; gap: var(--sp-5); margin-top: var(--sp-2); }
.hp__controls .hp__step { display: grid; place-items: center; width: 48px; height: 48px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--c-text); }
.hp__controls .hp__step svg { width: 28px; height: 28px; }
.hp__controls .hp__step:disabled { color: var(--c-line); background: none; }
.hp__controls .hp__step:not(:disabled):hover { background: var(--c-surface); }
.hp__controls .hp__play { display: grid; place-items: center; width: 64px; height: 64px; min-width: 0; padding: 0; border-radius: 50%; background: var(--c-primary); color: #fff; }
.hp__controls .hp__play svg { width: 30px; height: 30px; }
.hp__play .i-pause { display: none; }
.hp[data-sg-state="playing"] .hp__play .i-pause { display: inline; }
.hp[data-sg-state="playing"] .hp__play .i-play { display: none; }
.hp[data-sg-state="playing"] .hp__play { background: var(--c-primary); }
.hp__controls .hp__play:hover { background: var(--c-text); }
.hp__now .hp__demo { text-align: center; }
/* 曲の一覧：番号・小さな画像・曲名・長さ */
.hp__list { grid-column: 2; grid-row: 1 / span 2; gap: 0; }
.hp__track { grid-template-columns: 1.5em 48px minmax(0, 1fr) auto; gap: var(--sp-3); min-height: 64px; padding: 8px var(--sp-2); border-radius: var(--radius); }
.hp__track:hover { background: var(--c-surface); }
.hp[data-sg-ready] .hp__track:hover .hp__name { text-decoration: none; }
.hp__no, .hp__track[aria-current="true"] .hp__no { font-size: 15px; font-weight: 400; color: var(--c-text-weak); text-align: center; }
.hp__thumb { width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius); background: var(--c-surface); }
.hp__name { font-weight: 400; }
.hp__track[aria-current="true"] { background: var(--c-surface); color: var(--c-primary); }
.hp__track[aria-current="true"] .hp__name { font-weight: 700; }
.hp__track[aria-current="true"] .hp__no { color: var(--c-primary); font-weight: 700; }
.hp__guide { grid-column: 1; }
@media (max-width: 767px) {
  .hp { grid-template-columns: minmax(0, 1fr); }
  .hp__cover { aspect-ratio: 4 / 3; }
  .hp__list { grid-column: 1; grid-row: auto; }
  .hp__now .hp__title { text-align: center; }
  .hp__now .hp__count { text-align: center; }
}

/* 近くの施設：各カードを薄い線の枠で区切る。写真は枠の上の端いっぱい */
.page-place .detail__main > .section:has(.card-grid) .card-grid { gap: var(--sp-4); }
.page-place .detail__main > .section:has(.card-grid) .card { display: flex; flex-direction: column; padding: 0 var(--sp-3) var(--sp-3); border: 1px solid rgba(0, 0, 0, .1); border-radius: var(--radius); overflow: hidden; }
.page-place .detail__main > .section:has(.card-grid) .card .media { margin: 0 calc(-1 * var(--sp-3)) var(--sp-3); border-radius: 0; }
.page-place .detail__main > .section:has(.card-grid) .card .btn--add { margin-top: auto; }

/* プレーヤーの崩れを直す：今の曲の画像と曲名などを縦に。一覧は番号・画像・曲名・長さの順 */
.hp__head .hp__now { grid-area: auto; }
.hp__head .hp__cover { grid-area: auto; max-width: 100%; }
.hp__track .hp__no { order: -1; }

/* 文字が浮いて見えないように：かなを詰め（palt）、行間を少し詰め、灰色の字ははっきりした灰色に */
.page-place main { font-feature-settings: "palt" 1; }
.page-place main p, .page-place main dd, .page-place main li { line-height: 1.75; }
.page-place .card p, .page-place .card dd, .page-place .card dt { line-height: 1.6; }
.page-place .facts dt, .page-place .facts > .facts__unk dt, .decide__label, .place-links__label, .why > .for-tags .for-tags__label, .decide__note { opacity: 1; color: var(--c-text-weak); }
.page-place .why .why__text { line-height: 1.75; }
/* PC：上の段に「画像｜曲名と操作」、一覧はその下の全幅 */
@media (min-width: 768px) {
  .hp { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .hp__head { grid-template-columns: 280px minmax(0, 1fr); align-items: center; gap: var(--sp-6); }
  .hp__head .hp__now { max-width: 34rem; }
  .hp__controls { justify-content: flex-start; }
  .hp__now .hp__demo { text-align: left; }
  .hp__list, .hp__guide { grid-column: 1; grid-row: auto; }
}
/* リンクの行の先頭に鎖のマーク（YouTube と同じ） */
.links__open { align-items: center; }
.links__chain { flex: none; margin-right: 2px; color: var(--c-text); }
/* 名前の下：一文の説明の次にリンクの行だけ */
.page-place .detail__main > .detail__links { grid-row: 4; }

/* 4つの事実の帯：4列を同じ幅に。列の間に薄い縦線（ほかの区切り線と同じ色） */
@media (min-width: 1024px) {
  .page-place .detail__main > .decide { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 0; }
  .decide > .decide__cell { padding: 0 var(--sp-4); border-left: 1px solid var(--line-soft, rgba(0, 0, 0, .1)); }
  .decide > .decide__cell:first-child { padding-left: 0; border-left: 0; }
  .decide > .decide__cell:nth-child(4) { padding-right: 0; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .page-place .detail__main > .decide { column-gap: 0; }
  .decide > .decide__cell { padding: 0 var(--sp-4); }
  .decide > .decide__cell:nth-child(odd) { padding-left: 0; }
  .decide > .decide__cell:nth-child(even) { border-left: 1px solid rgba(0, 0, 0, .1); }
}
@media (max-width: 767px) {
  .decide > .decide__cell + .decide__cell, .decide > .dayline + .decide__cell { padding-top: var(--sp-4); border-top: 1px solid rgba(0, 0, 0, .1); }
}
/* 定休日の下の「その他」 */
.decide__other { margin-top: var(--sp-2); font-size: 15px; line-height: 1.6; }
.decide__other-label { display: block; margin-bottom: 2px; font-size: 14px; font-weight: 700; color: var(--c-text-weak); }
@media (max-width: 767px) { .decide__cell--closed .decide__other { grid-column: 1 / -1; } }
/* メニューの説明：料金の下に、何をするものかと所要時間 */
.menu__price { display: block; }
.menu__desc { display: block; margin-top: 2px; font-size: 15px; line-height: 1.6; color: var(--c-text-weak); }

/* ---------- ここでできること：写真と文を雑誌の見開きのように。写真は左右を交互に ---------- */
.page-place .detail__main > .dos { grid-column: 1 / -1; margin: var(--sp-6) 0 0; }
.dos__head { margin: 0 0 var(--sp-5); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); letter-spacing: .02em; }
.do { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--sp-6); align-items: center; margin: 0 0 var(--sp-6); }
.do:last-child { margin-bottom: 0; }
.do__media { grid-column: 1 / span 7; grid-row: 1; margin: 0; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--radius); background: var(--c-surface); }
.do__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.do__body { grid-column: 8 / -1; grid-row: 1; min-width: 0; }
.do:nth-of-type(even) .do__media { grid-column: 6 / -1; }
.do:nth-of-type(even) .do__body { grid-column: 1 / span 5; }
.do__title { margin: 0 0 var(--sp-3); font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.5rem); font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
.do__lead { margin: 0 0 var(--sp-4); font-size: 1.125rem; line-height: 1.85; }
.do__facts { display: grid; gap: 8px; margin: 0 0 var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid rgba(0, 0, 0, .1); }
.do__facts > div { display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: var(--sp-3); }
.do__facts dt { color: var(--c-text-weak); font-size: 15px; }
.do__facts dd { margin: 0; font-size: 1rem; }
.do__facts > div:first-child dd { font-size: 1.25rem; font-weight: 700; }
.do__cta { margin: 0; }
.do__cta .btn { min-height: 48px; display: inline-flex; align-items: center; }
@media (max-width: 767px) {
  .do { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-3); margin-bottom: var(--sp-5); }
  .page-place .detail__main > .audio-block { margin-top: var(--sp-5); }
  .do__media, .do__body, .do:nth-of-type(even) .do__media, .do:nth-of-type(even) .do__body { grid-column: 1; grid-row: auto; }
  .do__title { font-size: 1.75rem; }
  .page-place .detail__main > .dos { margin-top: var(--sp-5); }
}
/* ここでできること：1品目は写真と文の2列（7：5）。偶数番目は左右を入れ替える */
.do { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--sp-6); }
.do__media, .do:nth-of-type(even) .do__body { grid-column: 1; }
.do__body, .do:nth-of-type(even) .do__media { grid-column: 2; }
.do:nth-of-type(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
@media (max-width: 767px) { .do, .do:nth-of-type(even) { grid-template-columns: minmax(0, 1fr); } .do__media, .do__body, .do:nth-of-type(even) .do__media, .do:nth-of-type(even) .do__body { grid-column: 1; } }
/* 品目ごとの楽しみ方のポイント（任意） */
.do__why { margin: 0 0 var(--sp-4); }

/* 場所：3つのエリアの図。施設のエリアを緑で塗り、位置に点 */
.place-map { margin: var(--sp-4) 0 0; max-width: 480px; }
.place-map svg { display: block; width: 100%; height: auto; }
/* 位置関係図の見た目は style.css（探すページと同じ）。ここでは「ここ」の点だけ */
/* 水エリアの緑・高速道路の橙と区別できる施設位置専用の赤紫 */
.place-map .map__here { --map-here-color: #861b52; }
.place-map .map__here circle { fill: var(--map-here-color); fill-opacity: .25; }
@media (prefers-reduced-motion: no-preference) {
  .place-map .map__here circle:not(.map__here-dot) {
    transform-box: fill-box;
    transform-origin: center;
    fill-opacity: .5;
    stroke: var(--map-here-color);
    stroke-width: 1.5;
    filter: blur(1px);
    animation: map-here-glow 2.4s ease-in-out infinite;
  }
}
@keyframes map-here-glow {
  0%, 100% { transform: scale(.75); opacity: .65; }
  50% { transform: scale(1.25); opacity: 1; }
}
.place-map .map__here .map__here-dot { fill: var(--map-here-color); fill-opacity: 1; stroke: #fff; stroke-width: 3; }
.place-map .map__here text { font-size: 28px; font-weight: 700; fill: var(--map-here-color); paint-order: stroke; stroke: #fff; stroke-width: 8px; stroke-linejoin: round; }
@media (max-width: 767px) { .place-map { max-width: none; } }
/* 品目の中の予約 */
.do__book { margin-top: var(--sp-3); }
.do__book-ways { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.do__book-ways .btn { min-height: 48px; display: inline-flex; align-items: center; }
.do__tel { font-weight: 700; font-variant-numeric: tabular-nums; }
.do__book-sites { display: flex; flex-wrap: wrap; gap: 0 var(--sp-3); margin: var(--sp-2) 0 0; font-size: 15px; }
.do__book-sites > span { color: var(--c-text-weak); }
.do__book-sites a { display: inline-flex; align-items: center; min-height: 44px; }
.do__book-terms { margin: 4px 0 0; font-size: 14px; color: var(--c-text-weak); }
.dos__consult { margin: var(--sp-5) 0 0; font-size: 14px; color: var(--c-text-weak); }
.dos__consult a { color: var(--c-text-weak); }
/* 営業時間の図：品目ごとの時間は薄い緑で、施設全体の帯と見分ける */
.dayline__row--do .dayline__bar { background: #8fb5a8; }
.dayline__name { font-weight: 400; }
.dayline__row--do:first-of-type { margin-top: 0; }
/* 帯のお問い合わせ */
.contact__ways { list-style: none; margin: var(--sp-2) 0 0; padding: 0; display: grid; gap: 0; }
.contact__ways a { display: inline-flex; align-items: center; min-height: 40px; font-size: 15px; overflow-wrap: anywhere; }
.do__book-note { margin: 0 0 var(--sp-2); font-size: 15px; font-weight: 700; }
/* PC：再生・前へ・次へは再生位置のバーの中央にそろえる */
@media (min-width: 768px) { .hp__controls { justify-content: center; } .hp__now .hp__demo { text-align: center; } }

/* ここでできること：文の段の頭を写真の上端にそろえる（真ん中にそろえると文が浮いて見える） */
.do { align-items: start; column-gap: var(--sp-5); }
.do__title { margin-top: -.2em; }

/* 近くの施設：枠で囲まず、列の間に薄い縦線。写真は列の幅いっぱい、ボタンは一番下でそろえる */
.page-place .detail__main > .section:has(.card-grid) .card-grid { gap: 0; }
.page-place .detail__main > .section:has(.card-grid) .card { padding: 0 var(--sp-4); border: 0; border-left: 1px solid rgba(0, 0, 0, .1); border-radius: 0; overflow: visible; }
.page-place .detail__main > .section:has(.card-grid) .card:first-child { padding-left: 0; border-left: 0; }
.page-place .detail__main > .section:has(.card-grid) .card:last-child { padding-right: 0; }
.page-place .detail__main > .section:has(.card-grid) .card .media { margin: 0 0 var(--sp-3); border-radius: var(--radius); }
.page-place .detail__main > .section:has(.card-grid) .card .card__tags .tag { padding: 0; border: 0; background: none; font-size: 14px; color: var(--c-text-weak); }
.page-place .detail__main > .section:has(.card-grid) .card .btn--add { margin-top: auto; }
.page-place .detail__main > .section:has(.card-grid) .card .card__facts { margin-top: var(--sp-3); }
@media (max-width: 1023px) {
  .page-place .detail__main > .section:has(.card-grid) .card:nth-child(odd) { padding-left: 0; border-left: 0; }
  .page-place .detail__main > .section:has(.card-grid) .card:nth-child(even) { padding-right: 0; }
  .page-place .detail__main > .section:has(.card-grid) .card:nth-child(n+3) { margin-top: var(--sp-5); }
}
@media (max-width: 767px) {
  .page-place .detail__main > .section:has(.card-grid) .card { padding: var(--sp-4) 0 0; border-left: 0; margin-top: var(--sp-4); border-top: 1px solid rgba(0, 0, 0, .1); }
  .page-place .detail__main > .section:has(.card-grid) .card:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
}
/* 近くの施設：列の幅を同じにし、縦線は列の間のすき間の真ん中に */
.page-place .detail__main > .section:has(.card-grid) .card-grid { column-gap: 48px; row-gap: var(--sp-5); }
.page-place .detail__main > .section:has(.card-grid) .card, .page-place .detail__main > .section:has(.card-grid) .card:first-child, .page-place .detail__main > .section:has(.card-grid) .card:last-child { position: relative; padding: 0; border: 0; margin: 0; }
@media (min-width: 768px) {
  .page-place .detail__main > .section:has(.card-grid) .card + .card::before { content: ""; position: absolute; top: 0; bottom: 0; left: -24px; border-left: 1px solid rgba(0, 0, 0, .1); }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .page-place .detail__main > .section:has(.card-grid) .card:nth-child(odd)::before { display: none; }
  .page-place .detail__main > .section:has(.card-grid) .card:nth-child(n+3) { padding-top: var(--sp-5); border-top: 1px solid rgba(0, 0, 0, .1); }
}
@media (max-width: 767px) {
  .page-place .detail__main > .section:has(.card-grid) .card + .card { padding-top: var(--sp-5); border-top: 1px solid rgba(0, 0, 0, .1); }
}

/* ---------- 2026-10-25 スマホで見た木戸さんの指摘 ---------- */
/* おまかせ相談の前の空白を詰める（最後の品目の下の余白と重なって広がっていた） */
.do:last-of-type { margin-bottom: 0; }
.dos__consult { margin-top: var(--sp-4); }
/* 楽しみ方のポイント（場所全体）は一文の説明のすぐ下。PC は右の列、スマホとタブレットは説明の次 */
@media (min-width: 1200px) {
  .page-place .detail__main > .why.why--lead { order: 0; grid-column: 8 / -1; grid-row: 4; margin: 0 0 var(--sp-3); }
  .page-place .detail__main > .detail__links { grid-row: 5; }
}
@media (max-width: 1199px) { .page-place .detail__main > .why.why--lead { margin: 0 0 var(--sp-3); } }
@media (max-width: 767px) { .page-place .detail__main > .why.why--lead { order: 0; margin: var(--sp-2) 0 var(--sp-3); } }
/* 帯は3つ（料金の目安を外した）：同じ幅の3列 */
@media (min-width: 1024px) {
  .page-place .detail__main > .decide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .decide > .decide__cell:nth-child(3) { padding-right: 0; }
}
/* 定休日の「その他」：ラベルの右に文 */
.decide__other { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; align-items: baseline; }
.decide__other-label { margin: 0; }
@media (max-width: 767px) { .decide__cell--closed .decide__other { grid-template-columns: 6.5em minmax(0, 1fr); column-gap: var(--sp-2); } }
/* 営業時間の図：PC は棒の右に時刻。スマホは図を出さず、名前と時刻の一覧 */
.dayline__time { font-variant-numeric: tabular-nums; white-space: nowrap; }
.decide > .dayline .dayline__row { grid-template-columns: 8.5em minmax(0, 1fr) 6.5em; }
.decide > .dayline .dayline__scale { margin-right: calc(6.5em + 10px); }
@media (max-width: 767px) {
  .page-place .detail__main > .decide > .decide__cell--hours { order: 1; }
  .page-place .detail__main > .decide > .dayline { order: 2; margin-top: 0; padding-top: 0; border-top: 0; }
  .page-place .detail__main > .decide > .decide__cell--closed { order: 3; }
  .page-place .detail__main > .decide > .decide__cell--contact { order: 4; }
  .decide__cell--hours .decide__value { display: none; }
  .decide > .dayline .dayline__row { grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-3); font-size: 1.0625rem; }
  .decide > .dayline .dayline__time { font-weight: 700; }
  .decide > .dayline .dayline__track, .decide > .dayline .dayline__scale { display: none; }
}
/* 品目の料金の内訳：対象と料金 */
.do__prices { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.do__prices li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .75em; }
.do__prices-who { font-size: 15px; font-weight: 400; color: var(--c-text-weak); }
.do__prices-yen { font-size: 1.125rem; font-weight: 700; color: var(--c-text); }
/* 支払い方法：使える決済の札の一覧（レジの横の表示の形） */
.pay { display: grid; gap: var(--sp-3); }
.pay__label { margin: 0 0 6px; font-size: 14px; color: var(--c-text-weak); }
.pay__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pay__mark { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; height: 40px; padding: 0 12px; border: 1px solid rgba(0, 0, 0, .18); border-radius: 6px; background: #fff; font-size: 14px; font-weight: 700; line-height: 1.2; letter-spacing: .02em; color: var(--c-text); white-space: nowrap; }
/* 音声ガイドの原稿 */
/* 読込前のLatinだけ、既存Hiraginoの字幅をブランド書体の実測値に合わせる。追加のフォント配信はしない */
@font-face {
  font-family: "Hokuto Audio Fallback";
  src: local("HiraginoSans-W4");
  font-weight: 400;
  size-adjust: 85.896%;
  unicode-range: U+0000-024F;
}
@font-face {
  font-family: "Hokuto Audio Fallback";
  src: local("HiraginoSans-W7");
  font-weight: 700;
  size-adjust: 78.621%;
  unicode-range: U+0000-024F;
}
/* 括弧付き料金値の幅が変わるとmobile viewportも動くため、同じfallback metricsを使う */
.hp,
html[lang="en"] .do__prices-yen:has(.nb) {
  font-family: var(--component-audio-font-family);
}
.hp__script { grid-column: 1; padding-top: var(--sp-4); border-top: 1px solid rgba(0, 0, 0, .1); }
.hp__script-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); margin: 0 0 var(--sp-3); }
.hp__script-title { display: grid; gap: 2px; margin: 0 auto 0 0; font-size: 1.25rem; line-height: 1.45; }
.hp__script-kicker { font-size: 14px; font-weight: 700; color: var(--c-text-weak); }
.hp__langs { display: inline-flex; border: 1px solid var(--c-text); border-radius: var(--radius); overflow: hidden; }
.hp__lang { min-height: 40px; padding: 0 14px; border: 0; background: var(--c-bg); color: var(--c-text); font: inherit; font-size: 15px; cursor: pointer; }
.hp__lang + .hp__lang { border-left: 1px solid var(--c-text); }
.hp__lang[aria-pressed="true"] { background: var(--c-text); color: var(--c-bg); font-weight: 700; }
.hp__script-body { max-width: 40rem; }
.hp__script-body p { margin: 0 0 1em; font-size: 1.0625rem; line-height: 1.9; }
.hp__script-body p:last-child { margin-bottom: 0; }
.hp__script-toggle { min-height: 44px; }
.hp__langs[hidden], .hp__script-toggle[hidden] { display: none; }
@media (min-width: 768px) { .hp__script-toggle { display: none; } }
@media (max-width: 767px) {
  .hp__script-title { flex-basis: 100%; }
  .hp__script.is-collapsed .hp__script-body { display: none; }
  .hp__script.is-collapsed .hp__script-head { margin-bottom: 0; }
}
/* 支払い方法の札は、ラベルの下の全幅に（値の列だけでは札が収まらない） */
.page-place .details .facts > div:has(> .pay) { grid-template-columns: minmax(0, 1fr); row-gap: var(--sp-2); }
.pay__mark { white-space: normal; text-align: center; }
.dos .do__prices li { padding: 0; border: 0; border-radius: 0; font-size: inherit; }   /* サイト共通の .dos li（札の形）を当てない */
/* 原稿は再生ボタンの下・曲の一覧の上。一覧との間に線 */
.hp__script { padding-top: 0; padding-bottom: var(--sp-4); border-top: 0; border-bottom: 1px solid rgba(0, 0, 0, .1); }
/* 原稿の言語の切替は題のすぐ下（PC で右端に離れると原稿との関係が分かりにくい）。切替と「読む」は同じ高さ・同じ線 */
.hp__script-title { flex-basis: 100%; margin: 0; }
.hp__script-head { gap: var(--sp-2) var(--sp-3); }
.hp__lang { min-height: 44px; }
.hp__script .hp__script-toggle { box-sizing: border-box; height: 46px; min-height: 0; padding: 0 20px; border: 1px solid var(--c-text); border-radius: var(--radius); font-size: 15px; font-weight: 700; line-height: 1; }
/* 支払い方法：札をやめ、種類ごとに「種類　ブランド名・ブランド名」の行 */
.pay { display: grid; gap: 6px; }
.pay__row { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: var(--sp-3); margin: 0; }
.pay__row .pay__label { margin: 0; font-size: 15px; color: var(--c-text-weak); }
@media (max-width: 767px) { .pay__row { grid-template-columns: minmax(0, 1fr); gap: 0; } .pay__row + .pay__row { margin-top: 6px; } }
/* 原稿の題のすぐ右に言語の切替（「原稿」の見出しは出さない） */
.hp__script-head { flex-wrap: wrap; align-items: center; }
.hp__script-title { flex-basis: auto; display: block; }
/* スマホ：曲名を1行分の段に置き、言語と「読む／閉じる」を直下の同じ操作行にまとめる */
@media (max-width: 767px) {
  .hp__script-title { flex-basis: 100%; }
}
/* PC：プレーヤーの操作の下を「原稿｜曲の一覧」の2列に（原稿の右が空かないように） */
@media (min-width: 1024px) {
  .hp { grid-template-columns: minmax(0, 1fr) minmax(0, 26rem); column-gap: var(--sp-6); row-gap: var(--sp-5); align-items: start; }
  .hp > .hp__head { grid-column: 1 / -1; }
  .hp > .hp__script { grid-column: 1; grid-row: 2; padding-bottom: 0; border-bottom: 0; }
  .hp > .hp__list { grid-column: 2; grid-row: 2; }
  .hp > :not(.hp__head):not(.hp__script):not(.hp__list) { grid-column: 1 / -1; }
}
/* リンクの一覧（開いたとき）：角丸と影のパネル。閉じるは丸い×、行の右に外へ出る印、2行目は灰色の説明。スマホは下から出るシート */
.links { width: min(28rem, calc(100% - 32px)); border-radius: 12px; box-shadow: 0 12px 40px rgba(0, 0, 0, .18); overflow: hidden; }
.links::backdrop { background: rgba(0, 0, 0, .4); }
.links__head { padding: var(--sp-3) var(--sp-3) var(--sp-2) var(--sp-4); border-bottom: 0; }
.links__head h2 { font-size: 1.125rem; }
.links__close { display: grid; place-items: center; width: 44px; height: 44px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--c-text); }
.links__close:hover { background: var(--c-surface); }
.links ul { padding: 0 0 var(--sp-2); }
.links li a { grid-template-columns: 40px minmax(0, 1fr) auto; padding: 12px var(--sp-4); }
.links__url { font-size: 14px; color: var(--c-text-weak); }
.links__ext { color: var(--c-text-weak); }
.links li a:hover .links__ext { color: var(--c-text); }
@media (max-width: 767px) {
  .links { width: 100%; max-width: none; margin: auto 0 0; border-radius: 16px 16px 0 0; padding-bottom: env(safe-area-inset-bottom); }
  .links__head::before { content: ""; position: absolute; top: 8px; left: 50%; width: 36px; height: 4px; margin-left: -18px; border-radius: 2px; background: rgba(0, 0, 0, .18); }
  .links__head { position: relative; padding-top: var(--sp-4); }
}
/* リンクの一覧：YouTube のチャンネルの「リンク」と同じ形・間隔に合わせる
   パネル 角丸12px・余白24px、見出し 20px、行は 24px の線のアイコン＋項目名（14px・中太）と青の URL（14px）、行の間 16px */
.links { width: min(35rem, calc(100% - 32px)); padding: 24px; border-radius: 12px; background: #fff; box-shadow: none; overflow: visible; }
.links::backdrop { background: rgba(0, 0, 0, .5); }
.links__head { display: flex; align-items: center; justify-content: space-between; padding: 0; margin: -8px -8px 16px 0; border: 0; }
.links__head h2 { margin: 0; font-size: 20px; font-weight: 700; line-height: 28px; letter-spacing: 0; }
.links__close { width: 40px; height: 40px; border-radius: 50%; }
.links ul { display: grid; gap: 16px; padding: 0; }
.links li a { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 16px; align-items: start; padding: 0; color: var(--c-text); text-decoration: none; }
.links li a:hover { background: none; }
.links__badge { width: 24px; height: 24px; border-radius: 0; background: none; }
.links__icon { width: 24px; height: 24px; }
.links__text { gap: 0; }
.links__title { font-size: 14px; font-weight: 500; line-height: 20px; letter-spacing: 0; }
.links__url { font-size: 14px; line-height: 20px; color: #065fd4; letter-spacing: 0; }
.links li a:hover .links__url { text-decoration: underline; }
@media (max-width: 767px) {
  .links { width: 100%; padding: 24px 16px calc(24px + env(safe-area-inset-bottom)); border-radius: 12px 12px 0 0; }
  .links__head { position: relative; padding-top: 8px; }
  .links__head::before { top: -12px; }
}
/* リンクの URL の色はサイトのリンクの色（緑）に。YouTube の青は使わない（すぐ横の「他 3 件のリンク」と同じ色に） */
.links__url { color: var(--c-accent); }
/* ---------- 最終の審査（2026-10-25）の指摘 ---------- */
/* PC：品目の写真の高さを隣の文と表の高さにそろえる（文の短い直売店で写真の下に空き、長い品目で写真の下に空きが出ていた：S-18） */
@media (min-width: 768px) {
  .do { align-items: stretch; }
  .do__media { aspect-ratio: auto; height: 100%; min-height: 280px; }
}
@media (max-width: 767px) {
  .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 > .only-sp { order: -1; }
  .page-place .detail__main > .only-sp { margin: 0 0 var(--sp-3); }
}
@media (min-width: 1200px) { .page-place .detail > .detail__side { margin-top: var(--sp-4); } }
/* 品目の楽しみ方のポイントは、冒頭の楽しみ方のポイントと同じ字の大きさ */
.do__why .why__text { font-size: 1.125rem; line-height: 1.75; }
.nb { white-space: nowrap; }
.do__prices-yen .nb { display: inline-block; max-width: 100%; white-space: normal; }
@media (min-width: 768px) {
  /* 写真の高さを行の高さ（文と表）から決める：画像そのものの高さで行を伸ばさない */
  .do__media { position: relative; }
  .do__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
}

/* Shichiken tags share a white surface and regular weight; hover keeps dark text and the existing border feedback. */
.page-place .detail__kicker .tagx { font-weight: 400; }
.page-place .detail__kicker .tagx--cat { background: var(--c-bg); color: var(--c-text); border-color: var(--line-soft); font-weight: 400; }
.page-place .detail__kicker .tagx--cat:hover { border-color: var(--c-text); }
.page-place:has(.detail__kicker .tagx--cat) .tagx:hover { color: var(--c-text); }

/* Shichiken: keep each existing tip with its speaker, separate from descriptions and tags. */
.page-place .why.why--lead, .page-place .why.do__why { padding: 0; border-left: 0; background: transparent; }
.shichiken-tip { min-width: 0; }
.shichiken-tip__bubble { position: relative; padding: var(--sp-3); border: 1px solid #eee8dd; border-radius: var(--radius); background: var(--c-surface); }
.shichiken-tip__bubble::after { content: ""; position: absolute; left: 19px; bottom: -6px; width: 10px; height: 10px; border-right: 1px solid #eee8dd; border-bottom: 1px solid #eee8dd; background: var(--c-surface); transform: rotate(45deg); }
.shichiken-tip > .why__who { margin-top: 12px; color: var(--c-text); }

/* Non-interactive labels stay neutral; green identifies actions and selection. */
.page-place .why__label { color: var(--c-text); }
.page-place .card__kicker { color: var(--c-text-weak); font-weight: 400; }
.do__prices-yen .nb { font-weight: 400; }

.guide-card { margin-top: 32px; padding: 28px 32px; border: 1px solid #eee8dd; border-radius: 12px; background: var(--c-surface); }
.guide-card h3 { margin: 0; font-size: 1.25rem; line-height: 1.5; }
.guide-card__features { display: flex; flex-wrap: wrap; gap: 20px 32px; margin: 24px 0; padding: 0; list-style: none; }
.guide-card__features li { display: flex; align-items: center; gap: 10px; }
.guide-card__features svg { flex: none; color: var(--c-text-weak); }
.guide-card__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding-top: 24px; }
.guide-card__button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--c-primary); border-radius: var(--radius); color: #fff; background: var(--c-primary); font-weight: 700; text-decoration: none; }
.guide-card__button:hover { background: #285b4e; color: #fff; }
.guide-card__button:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 4px; }
.guide-card__footer p { margin: 0; font-size: 13px; color: var(--c-text-weak); }
@media (max-width: 767px) {
  .guide-card { padding: 24px 20px; }
  .guide-card__features { flex-direction: column; gap: 16px; }
  .guide-card__footer { align-items: stretch; flex-direction: column; }
  .guide-card__button { box-sizing: border-box; width: 100%; }
}

.page-place .why__name a:hover,
.page-place .why__name a:focus-visible { text-decoration: none; color: var(--c-primary); }
.page-place .card__link:hover .card__title,
.page-place .tour-mini:hover .tour-mini__name { text-decoration: none; color: var(--c-primary); }

/* Compact photo index; uses the same image radius and surface as the site. */
.page-place .detail__main > .visit-options { grid-column: 1 / -1; margin-top: 32px; padding: 28px; background: var(--semantic-color-surface-champagne); }
.visit-options h2 { margin: 0 0 24px; font-size: 1rem; line-height: 1.7; font-weight: 700; }
.visit-options__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 28px; margin: 0; padding: 0; list-style: none; }
.visit-options__list li { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: 16px; min-width: 0; }
.visit-options__list img { display: block; width: 96px; height: 96px; object-fit: cover; border-radius: var(--radius); }
.visit-options__list span { display: block; font-size: 1rem; line-height: 1.7; }
.visit-options .visit-options__list a { min-height: 44px; font-size: 1.125rem; font-weight: 600; line-height: 1.5; }
.visit-options a { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-primary); text-decoration: none; }
.visit-options a:hover { color: #204c40; text-decoration: none; }
.visit-options a:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 3px; text-decoration: none; }
.visit-options__nav { display: flex; flex-wrap: wrap; gap: 0 28px; margin-top: 24px; font-size: 1rem; line-height: 1.7; }
.page-place .detail__main > .visit-options + .dos { margin-top: 40px; }
#shop-details, #visit-details, #tour-details, #opening-hours, #place-access, #facilities { scroll-margin-top: calc(var(--hdr-h, 100px) + 24px); }
@media (min-width: 768px) and (max-width: 1099px) {
  .visit-options__list li { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .visit-options__list img { width: 64px; height: 80px; }
}
@media (max-width: 767px) {
  .page-place .detail__main > .visit-options { padding: 24px 20px; }
  .visit-options__list { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .visit-options__list li { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; }
  .visit-options__list img { width: 72px; height: 80px; }
  .visit-options__nav { column-gap: 20px; }
  .page-place .detail__main > .visit-options + .dos { margin-top: 32px; }
}

.visit-options__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 32rem; gap: 0 20px; }
.place-toc { display: none; }
@media (min-width: 1640px) {
  .page-place.has-place-toc .detail__main > .visit-options { display: none; }
  .place-toc:not([hidden]) { display: block; position: fixed; top: calc(var(--hdr-h, 100px) + 32px); left: calc(50% + (var(--w-max) - 2 * var(--gutter)) / 2 + 44px); width: clamp(160px, calc(50vw - (var(--w-max) - 2 * var(--gutter)) / 2 - 44px - 48px), 280px); max-height: calc(100dvh - var(--hdr-h, 100px) - 64px); overflow-y: auto; z-index: 10; }
  .place-toc a { display: flex; align-items: center; position: relative; min-height: 44px; padding: 6px 0 6px 14px; font-size: 15px; line-height: 1.6; color: var(--c-text); text-decoration: none; }
  .place-toc .place-toc__top { font-weight: 700; }
  .place-toc a, .place-toc .place-toc__heading { word-break: keep-all; overflow-wrap: anywhere; }
  .place-toc .place-toc__heading { margin: 0 0 8px; padding-left: 14px; font-size: 15px; font-weight: 700; line-height: 1.6; color: var(--c-text); }
  .place-toc a + .place-toc__heading { margin-top: 24px; }
  .place-toc a[aria-current="location"] { color: var(--c-primary); font-weight: 600; }
  .place-toc a[aria-current="location"]::before { content: ""; position: absolute; left: 0; top: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
  .place-toc a:hover { color: var(--c-primary); text-decoration: none; }
  .place-toc a:focus-visible { outline: 2px solid var(--c-primary); outline-offset: -2px; }
}

@media (max-width: 767px) {
  .page-place:has(.visit-options) .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px 6px; padding: 8px var(--gutter); }
  .page-place:has(.visit-options) .site-header__logo { min-width: 0; margin: 0; grid-column: 1; grid-row: 1; }
  .page-place:has(.visit-options) .site-header__logo .site-header__name { font-size: 16px; line-height: 1.2; white-space: normal; }
  .page-place:has(.visit-options) .site-header .lang-menu { grid-column: 2; grid-row: 1; }
  .page-place:has(.visit-options) .site-header .plan-toggle { grid-column: 3; grid-row: 1; }
  .page-place:has(.visit-options) .site-header .site-header__menu { grid-column: 4; grid-row: 1; }
  .page-place:has(.visit-options) .site-header .lang-menu__btn,
  .page-place:has(.visit-options) .site-header .plan-toggle,
  .page-place:has(.visit-options) .site-header .site-header__menu { min-width: 44px; height: 44px; padding: 0 8px; font-size: 14px; justify-content: center; }
  .page-place:has(.visit-options) .site-header .site-nav,
  .page-place:has(.visit-options) .site-header .search--header { grid-column: 1 / -1; min-width: 0; }
  .page-place .details .facts > .facts__stack-mobile { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

@media (max-width: 767px) {
  .page-place .do__facts { gap: 24px; padding-top: 20px; margin-bottom: 28px; }
  .page-place .do__facts > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .page-place .do__facts dt { line-height: 1.5; }
  .page-place .do__facts dd { line-height: 1.7; }
}

@media (max-width: 767px) {
  .page-place #facilities .facts { gap: 24px; }
  .page-place #facilities .facts > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .page-place #facilities dt { line-height: 1.5; }
  .page-place #facilities dd { line-height: 1.7; }
  .do__book-sites { margin-top: 16px; gap: 0 16px; }
  .do__book-sites > span { flex-basis: 100%; }
  .do__book-terms { display: grid; gap: 6px; margin-top: 8px; }
  .do__book-separator { display: none; }
}
/* 目次（スマホ）：縦に間延びしないよう、写真は横長の小さめにし、行の間と文字を詰める（11/6） */
@media (max-width: 767px) {
  .page-place .detail__main > .visit-options { padding: 20px 16px; }
  .visit-options h2 { margin-bottom: 12px; }
  .visit-options__list { gap: 12px; }
  .visit-options__list li { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; }
  .visit-options__list img { width: 72px; height: 54px; }
  .visit-options .visit-options__list a { min-height: 0; font-size: 1rem; line-height: 1.5; }
  .visit-options__list span { font-size: .875rem; line-height: 1.6; color: var(--c-text-weak); }
  .visit-options__nav { margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--c-line); }
  .visit-options__nav a { min-height: 40px; font-size: .9375rem; }
}
/* 見どころごとの「旅程に保存」（11/6） */
.do__act { margin: var(--sp-3) 0 0; }
.do__act .btn { min-width: 12rem; }
@media (max-width: 767px) { .do__act .btn { width: 100%; } }
