/* 白銀比（1 : 1.414）の刻み。七賢・宿場esoto・見本のページだけに読み込む（Takeru, 11/9）。
   大きさはすべて 本文 18px × √2 の n/2 乗 から選ぶ：9・11・13・15・18・21・25・30・36・51・72・102。
   行間は 1 + 1/√2（本文）と 1 + 1/2（見出し）。ボタンの高さ 48px、ヘッダーとフッターは対象外。 */
.page-place main {
  --s-n4: 9px; --s-n3: 10.7px; --s-n2: 12.73px; --s-n1: 15.14px; --s-0: 18px; --s-1: 21.4px; --s-2: 25.46px;
  --s-4: 36px; --s-6: 50.91px; --s-8: 72px; --s-10: 101.82px;
  --lh-body: 1.707; --lh-head: 1.5;
  --ds-h2: var(--s-4); --ds-h3: var(--s-1);
  --sp-1: var(--s-n4); --sp-2: var(--s-n2); --sp-3: var(--s-0); --sp-4: var(--s-1); --sp-5: var(--s-4); --sp-6: var(--s-10);
}
@media (max-width: 767px) { .page-place main { --sp-6: var(--s-8); --ds-h2: var(--s-2); } }

/* 文字 */
.page-place main p, .page-place main li, .page-place main dd, .page-place .why .why__text, .page-place .do__lead, .page-place .detail__lead { font-size: var(--s-0); line-height: var(--lh-body); }
.page-place .detail__main > h1 { font-size: var(--s-6); line-height: var(--lh-head); }
.page-place main h2 { font-size: var(--ds-h2); }
html:root body.ds.page-place main h2, html:root body.ds.page-place .dos__head { line-height: var(--lh-head); margin-block: 0 var(--s-4); }
html:root body.ds.page-place main h3, html:root body.ds.page-place .do__title { font-size: var(--ds-h3); line-height: var(--lh-head); margin-top: 0; margin-bottom: var(--s-0); }
.page-place .tagx, .page-place .do__facts dt, .page-place .why__label, .page-place .why__name, .page-place .detail__kicker { font-size: var(--s-n1); }
.page-place main .crumbs li, .page-place main .crumbs a { font-size: var(--s-n1); line-height: var(--lh-head); }
.page-place main .note { font-size: var(--s-n2); line-height: var(--lh-body); }
@media (max-width: 767px) {
  .page-place .detail__main > h1 { font-size: var(--s-4); }
  html:root body.ds.page-place main h2, html:root body.ds.page-place .dos__head { margin-block: 0 var(--s-1); }
}

/* 部品 */
.page-place .tagx { min-height: 0; padding: var(--s-n3) var(--s-n1); line-height: var(--lh-head); }
.page-place .detail__kicker { gap: var(--s-n3); }
.page-place .why__text { margin-top: var(--s-n2); }
.page-place .shichiken-tip__bubble { padding: var(--s-1); }
/* 項目名の列は 72px から、いちばん長い項目名の幅まで広がる（宿場esoto の「スタンダードプラン」が1字ずつ折れないように） */
.page-place .do__facts { grid-template-columns: minmax(var(--s-8), max-content) minmax(0, 1fr); gap: var(--s-n2) var(--s-0); padding-top: var(--s-0); margin-bottom: var(--s-1); }
.page-place main .do__note { margin: calc(var(--s-n2) - var(--s-1)) 0 var(--s-1); padding-top: var(--s-n2); border-top: 1px solid rgba(0, 0, 0, .1); font-size: var(--s-n1); line-height: var(--lh-body); color: var(--c-text-weak); }
.page-place .do__facts > div { grid-column: 1 / -1; grid-template-columns: subgrid; gap: var(--s-0); }
.page-place .do__facts > div:first-child dd { font-size: var(--s-1); }
.page-place .do__facts--plain > div:first-child dd { font-size: 1rem; font-weight: 400; }
.page-place .do__prices--stack { gap: var(--s-n2); }
.page-place .do__prices--stack li { display: grid; }
.page-place .detail__main > h1, .page-place .detail__main > .detail__lead { margin-bottom: var(--s-0); }
.page-place .detail__main > .section:has(.card-grid) .card-grid { gap: var(--s-1); }
.page-place main .btn { padding-left: var(--s-1); padding-right: var(--s-1); }
.page-place .do__book-ways, .page-place .do__act { gap: var(--s-n2); }
.page-place .visit-options { padding: var(--s-1); }
.page-place .do { column-gap: var(--s-4); margin-bottom: var(--s-10); }

/* 写真：スマホ・カードは 1.414 : 1 */
.page-place .detail__main > .media:first-child, .page-place .do__media, .page-place .tour-mini img { aspect-ratio: 1.414 / 1; height: auto; }
.page-place .detail__main > .section:has(.card-grid) .card .media { aspect-ratio: 1.414 / 1; }
.page-place .card .media img { aspect-ratio: 1.414 / 1; height: 100%; object-fit: cover; }

/* PC：写真と文の幅は 1.414 : 1。写真の高さは文の列に合わせ、横の白銀比 1.414 : 1 から縦の白銀比 1 : 1.414 のあいだに収める。
   幅は container の幅（cqw）から計算する：写真の幅 = (列の幅 − 間) × 1.414 / 2.414 */
@media (min-width: 768px) {
  .page-place .dos { container-type: inline-size; }
  .page-place .do { grid-template-columns: minmax(0, 1.414fr) minmax(0, 1fr); align-items: start; }
  .page-place .do:nth-of-type(even) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr); }
  .page-place .do__media { aspect-ratio: auto; align-self: stretch; height: auto; min-height: calc((100cqw - var(--s-4)) / 2.414); max-height: calc((100cqw - var(--s-4)) * 2 / 2.414); }
}
@media (min-width: 1200px) {
  .page-place .detail { container-type: inline-size; column-gap: var(--s-4); grid-template-columns: repeat(7, minmax(0, 0.9837fr)) repeat(5, minmax(0, 1fr)); }
  .page-place .detail__main > .media:first-child { position: relative; aspect-ratio: auto; align-self: stretch; height: auto; min-height: calc((100cqw - var(--s-4)) / 2.414); max-height: calc((100cqw - var(--s-4)) * 2 / 2.414); }
  .page-place .detail__main > .media:first-child img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
}

/* 音声ガイドのボタンは他の主ボタンと同じ蒼。設備・対応の表は支払い方法と同じく上下の線を引かない */
.page-place .audio-callout__button { background: var(--component-button-primary-background); }
.page-place .details .facts { border-block: 0; }

/* 営業時間の図：名前の列は一番長い名前に合わせ、名前は語の切れ目（空白）でだけ折り返す */
@media (min-width: 768px) {
  .page-place .decide > .dayline { grid-template-columns: fit-content(16em) minmax(0, 1fr) 6.5em; column-gap: var(--sp-3); }
  .page-place .decide > .dayline .dayline__row { grid-column: 1 / -1; grid-template-columns: subgrid; }
  .page-place .decide > .dayline .dayline__name { word-break: keep-all; overflow-wrap: normal; }
  .page-place .decide > .dayline .dayline__scale { grid-column: 2; margin: 0; }
}

/* 詳細の段（場所・アクセス／支払い方法／設備・対応）：上の線から文字までを 36px にし、表はすべて支払い方法の形（名前 15px・薄字、値 18px、同じ列）にそろえる */
.page-place main .details > .section { padding-top: var(--s-4); }
.page-place main .details .facts { margin: 0; padding: 0; row-gap: var(--s-n4); }
.page-place main .details .pay { gap: var(--s-n4); }
.page-place main .details .facts > div:first-child dt { align-self: baseline; }
.page-place main .details .facts > div, .page-place main .details .pay__row { grid-template-columns: calc(var(--s-0) * 9) minmax(0, 1fr); column-gap: var(--s-0); align-items: baseline; padding: 0; border: 0; }
.page-place main .details .facts dt, .page-place main .details .pay__row .pay__label { font-size: var(--s-n1); line-height: var(--lh-body); color: var(--c-text-weak); }
.page-place main .details .facts dd, .page-place main .details .facts > .facts__unk dd, .page-place main .details .pay__row .pay__names { font-size: var(--s-0); line-height: var(--lh-body); }
@media (max-width: 767px) {
  .page-place main .details .facts > div, .page-place main .details .pay__row { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .page-place main .details .pay__row + .pay__row { margin-top: 0; }
  .page-place main #facilities.section .facts { gap: var(--s-n4); }
  .page-place main #facilities.section .facts > div { gap: 0; }
  .page-place main #facilities.section .facts dt { line-height: var(--lh-body); }
  .page-place main #facilities.section .facts dd { line-height: var(--lh-body); }
}

/* 見どころの体験・見学：「旅程に保存」の隣に SOUND-GUIDE への「音声ガイドを聴く」 */
.page-place .do__act { display: flex; flex-wrap: wrap; }
.page-place .do__act .btn--audio { gap: var(--s-n3); }

/* 七賢が営む施設（七賢と宿場esotoのページで、互いを紹介する。Takeru, 11/9） */
.page-place .detail__main > .family { grid-column: 1 / -1; margin: var(--sp-5) 0 0; }
.page-place main .family__head { margin: 0 0 var(--s-n2); font-size: var(--s-n1); line-height: var(--lh-head); color: var(--c-text-weak); }
.family__list { display: flex; flex-wrap: wrap; gap: var(--s-n2) var(--s-4); margin: 0; padding: 0; list-style: none; }
.family__item { display: flex; align-items: center; gap: var(--s-n1); color: var(--c-text); text-decoration: none; }
.family__item img { width: 72px; height: 72px; object-fit: cover; border-radius: 4px; background: var(--c-surface); }
.page-place main .family__kind { display: block; font-size: var(--s-n1); line-height: var(--lh-head); color: var(--c-text-weak); }
.page-place main .family__name { display: block; font-size: var(--s-0); font-weight: 700; line-height: var(--lh-head); }
.family__item:hover .family__name { text-decoration: underline; text-underline-offset: 3px; }

/* Every 七賢 family page shows its category tag like 七賢's 「飲む」: white, regular weight. The filled tag read as broken (Takeru, 11/10). */
.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 { background: var(--c-bg); border-color: var(--c-text); }
.page-place .detail__kicker .tagx:hover { color: var(--c-text); }

/* A link to a related page with its photo and what it covers (esoto → 七賢, Takeru 11/10). Photo stays still on hover; the name is underlined. */
.linkcard { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr); gap: var(--s-0); align-items: center; margin-top: var(--s-1); padding: var(--s-n2); border: 1px solid var(--c-line); border-radius: 4px; color: var(--c-text); text-decoration: none; }
.linkcard img { width: 100%; height: auto; aspect-ratio: 1.414 / 1; object-fit: cover; border-radius: 4px; background: var(--c-surface); }
.linkcard__body { display: grid; gap: var(--s-n4); }
.page-place main .linkcard__kind { font-size: var(--s-n1); line-height: var(--lh-head); color: var(--c-text-weak); }
.page-place main .linkcard__name { font-size: var(--s-0); font-weight: 700; line-height: var(--lh-head); }
.page-place main .linkcard__text { font-size: var(--s-n1); line-height: var(--lh-body); }
.page-place main .linkcard__more { font-size: var(--s-n1); font-weight: 700; color: var(--c-accent, var(--c-text)); }
.linkcard__more { display: inline-flex; align-items: center; gap: var(--s-n4); }
/* Japanese glyphs sit low in their line box; nudge the chevron so its ink centres on the text's ink. */
.linkcard__more svg { flex: none; transform: translateY(0.09em); }
.linkcard:hover .linkcard__name { text-decoration: underline; text-underline-offset: 3px; }
.linkcard:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
@media (max-width: 480px) { .linkcard { grid-template-columns: 1fr; } }

/* A highlight without a photo (a facility that has sent none yet): its text takes the reading width, and its contents entry the whole cell. */
.page-place main .do.do--text { width: 100%; grid-template-columns: minmax(0, 45rem); }
.page-place main .do.do--text .do__body { grid-column: 1; }
.page-place main .visit-options__list .visit-options__text { grid-template-columns: minmax(0, 1fr); }

/* 「場所・アクセス」 follows the hours block, which already ends in a rule: no second rule above it (Takeru, 11/10). */
.page-place .detail__main > .decide + .details > .section:first-child { border-top: 0; padding-top: 0; }
/* 帯に時間の図だけがあるとき：帯の上の線と図の上の線が二重にならないようにする */
.page-place .detail__main > .decide > .dayline:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
