/* お役立ち情報（/guide/）: treatment guides, index and hub. */
.guide-header{max-width:900px}
.guide-header h1{margin-bottom:18px}
.guide-h1-sub{display:block;font-family:var(--sans);font-size:15px;font-weight:400;letter-spacing:.04em;color:var(--muted);line-height:1.8;margin-top:4px}
.guide-lead{font-size:16px;line-height:2;margin:0 0 6px}
.guide-en{font-family:Georgia,var(--serif);font-size:14px;letter-spacing:.08em;color:var(--muted);margin:0}

.treatment-points{background:var(--mist);border-top:3px solid #6d9384;padding:24px 28px;margin:0 0 8px}
.treatment-points dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:0}
.treatment-points dl>div{display:grid;grid-template-columns:6.5em 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.8}
.treatment-points dl>div:nth-last-child(-n+2){border-bottom:0}
.treatment-points dt{color:var(--muted)}
.treatment-points dd{margin:0}
.guide-section-nav{margin:26px 0 8px}

.guide-faq{margin:0}
.guide-faq>div{padding:20px 0;border-bottom:1px solid var(--line)}
.guide-faq>div:first-child{padding-top:4px}
.guide-faq dt{font-weight:600;line-height:1.8;margin-bottom:8px;padding-left:2em;text-indent:-2em}
.guide-faq dt:before{content:'Q.';display:inline-block;width:2em;text-indent:0;font-family:Georgia,var(--serif);color:#92784f}
.guide-faq dd{margin:0;padding-left:2em;line-height:2}

.treatment-spas{padding-top:8px}
.treatment-price-range{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;background:var(--mist);padding:16px 22px;font-size:13px;line-height:1.7}
.treatment-price-range span{color:var(--muted)}
.treatment-price-range strong{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.treatment-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.treatment-jump a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line);text-decoration:none;font-size:13px;color:var(--ink)!important}
.treatment-jump a span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.treatment-jump a:hover{border-color:var(--accent)}
.article-body .treatment-spa-group{margin:0}
.article-body .treatment-spa-group :is(h2,h3){display:flex;align-items:baseline;gap:12px;margin:36px 0 4px;padding-bottom:10px;border-bottom:1px solid var(--ink);font-family:var(--serif);font-weight:500}
.treatment-spa-group :is(h2,h3) span{font-family:var(--sans);font-size:13px;font-weight:400;color:var(--muted)}
.treatment-spa-list{list-style:none;margin:0;padding:0}
.treatment-spa{padding:16px 0;border-bottom:1px solid var(--line)}
.article-body .treatment-spa-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;margin:0 0 6px;line-height:1.7}
.treatment-spa-head a{font-weight:600;text-underline-offset:4px}
.treatment-spa-head span{font-size:12px;color:var(--muted)}
.treatment-menus{list-style:none;margin:0;padding:0;font-size:13px;line-height:1.8}
.treatment-menus li{display:flex;flex-wrap:wrap;gap:0 14px}
.treatment-menu-name:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#6d9384;margin:0 8px 2px 0}
.treatment-menu-price{color:var(--muted);font-variant-numeric:tabular-nums}
.treatment-menu-more{color:var(--muted);padding-left:14px}
.treatment-note{font-size:12px;line-height:1.9;color:var(--muted);margin-top:20px}

.treatment-link-list{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.treatment-link-list a{display:flex;flex-direction:column;gap:4px;height:100%;padding:16px 18px;border:1px solid var(--line);text-decoration:none;color:var(--ink)!important;line-height:1.7}
.treatment-link-list a:hover{border-color:var(--accent)}
.treatment-card-name{font-weight:600}
.treatment-card-lead{font-size:13px;color:var(--muted)}
.guide-related-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0}
.guide-sources{font-size:12px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:18px}
.article-body .guide-sources p{margin-bottom:8px}
.guide-sources ul{margin:0 0 12px;padding-left:1.4em}

.guide-aside{font-size:13px}
.guide-aside ul{list-style:none;margin:0 0 14px;padding:0}
.guide-aside li a{display:flex;align-items:center;min-height:36px;text-decoration:none;color:var(--ink)}
.guide-aside li a:hover{text-decoration:underline;text-underline-offset:4px}
.guide-aside li a[aria-current=page]{font-weight:600;color:var(--accent)}
.guide-aside li a[aria-current=page]:before{content:'';width:3px;height:14px;background:var(--accent);margin-right:8px}
.guide-aside-group{font-size:12px;color:var(--muted);margin:16px 0 4px;padding-top:12px;border-top:1px solid var(--line)}

.treatment-chooser{background:var(--mist);padding:30px 32px;margin:0 0 56px}
.treatment-chooser h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 18px}
.treatment-chooser ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.treatment-chooser li p{margin:0 0 6px;font-size:13px;line-height:1.8;color:var(--muted)}
.treatment-chooser .chooser-title{font-size:15px;font-weight:600;color:var(--ink)}
.chooser-links{display:flex;flex-direction:column}
.chooser-links a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);text-underline-offset:4px;font-size:14px}
.treatment-category{margin:0 0 56px}
.treatment-category h2{font-family:var(--serif);font-weight:500;font-size:26px;margin:0 0 22px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.treatment-cards,.guide-hub-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.treatment-card a,.guide-hub-card>a{display:flex;flex-direction:column;height:100%;padding:22px 24px;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:border-color 150ms var(--ease)}
.treatment-card a:hover,.guide-hub-card>a:hover{border-color:var(--accent)}
.treatment-card a:hover h3,.guide-hub-card>a:hover h2{text-decoration:underline;text-underline-offset:5px}
.treatment-card-en{font-family:Georgia,var(--serif);font-size:13px;letter-spacing:.06em;color:#92784f}
.treatment-card h3{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.6;margin:6px 0 8px}
.treatment-card p,.guide-hub-card>a p{font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 14px}
.treatment-card-count{margin-top:auto;font-size:12px;color:var(--accent)}
.guide-hub-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:40px;align-items:stretch}
.guide-hub-card{display:flex;flex-direction:column}
.guide-hub-card>a{flex:1 1 auto}
.treatment-card{display:flex;flex-direction:column}
.guide-hub-card h2{font-family:var(--serif);font-weight:500;font-size:26px;margin:8px 0 10px}
.guide-hub-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.guide-hub-chips a{display:inline-flex;align-items:center;min-height:36px;padding:4px 14px;background:var(--mist);border-radius:3px;text-decoration:none;font-size:12px}
.guide-hub-chips a:hover{text-decoration:underline}

@media(max-width:1050px){.treatment-chooser ul{grid-template-columns:repeat(3,minmax(0,1fr))}.guide-aside{display:none}}
@media(max-width:760px){.treatment-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.treatment-points dl{grid-template-columns:1fr}.treatment-points dl>div:nth-last-child(2){border-bottom:1px solid var(--line)}.treatment-chooser ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){
  .guide-h1-sub{font-size:13px}
  .guide-lead{font-size:15px}
  .treatment-points{padding:16px 18px}
  .treatment-points dl>div{grid-template-columns:5.5em 1fr;font-size:13px}
  .treatment-cards,.guide-hub-cards,.treatment-link-list{grid-template-columns:1fr}
  .treatment-chooser{padding:22px 20px}
  .treatment-chooser ul{grid-template-columns:1fr;gap:16px}
  .chooser-links{flex-direction:row;flex-wrap:wrap;gap:0 16px}
  .treatment-card a,.guide-hub-card>a{padding:18px 20px}
  .guide-faq dd{padding-left:0}
}

/* Photos: Unsplash cover per treatment; facility thumbnails reuse listing-card images. */
.article-body .guide-cover{margin:0 0 28px}
.article-body .guide-cover-image{display:block;width:100%;aspect-ratio:16/9;max-height:none;object-fit:cover;margin:0;outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px}
.guide-cover figcaption{font-size:11px;line-height:1.6;color:var(--muted);margin-top:6px;text-align:right}
.guide-cover figcaption a{color:inherit!important}
.treatment-card-image{display:block;width:calc(100% + 48px);max-width:none;margin:-22px -24px 16px;aspect-ratio:3/2;height:auto;object-fit:cover}
.treatment-spa{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:start}
.treatment-spa-thumb{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--mist);border-radius:2px}
.article-body .treatment-spa-thumb img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;margin:0}
.treatment-spa-thumb .image-placeholder{height:100%}
@media(max-width:540px){.treatment-card-image{width:calc(100% + 40px);margin:-18px -20px 14px}.treatment-spa{grid-template-columns:84px minmax(0,1fr);gap:14px}}

/* スパ用語辞典：検索・カテゴリ・五十音。用語が増えても一覧性を保つ。 */
.words-page .listing-header{margin-bottom:0}
.word-controls{position:sticky;top:0;z-index:5;background:var(--paper);padding:18px 0 14px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.word-search{display:flex;align-items:center;gap:8px;background:var(--mist);border-radius:8px;padding:6px;max-width:520px}
.word-search input{flex:1;min-width:0;border:0;background:transparent;padding:12px 16px;font-size:16px;color:var(--ink)}
.word-search input::placeholder{color:var(--muted)}
.word-search:focus-within{box-shadow:0 0 0 1px var(--accent)}
.word-clear{border:0;background:transparent;color:var(--muted);font-size:13px;min-height:44px;padding:0 14px;cursor:pointer}
.word-clear:hover{color:var(--ink);text-decoration:underline}
.word-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.word-filter{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 16px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:13px;border-radius:20px;cursor:pointer;transition:border-color 150ms var(--ease),background-color 150ms var(--ease)}
.word-filter span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.word-filter:hover{border-color:var(--accent)}
.word-filter.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.word-filter.is-active span{color:#ffffffb3}
.word-index{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:12px;font-size:13px}
.word-index a,.word-index span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.word-index a:hover{border-color:var(--accent);background:var(--mist)}
.word-index span,.word-index a.is-empty{color:#b4c0c6;border-color:#eef2f4}
.word-status{font-size:13px;color:var(--muted);margin:10px 0 0;min-height:1em}
.word-status:empty{display:none}

.word-row{margin:34px 0 0}
.word-row h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--ink)}
.word-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.word-card{border:1px solid var(--line);padding:20px 22px;display:flex;flex-direction:column}
.word-card[hidden]{display:none}
.word-card h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.5;margin:0}
.word-reading{font-family:var(--sans);font-size:12px;font-weight:400;color:var(--muted);letter-spacing:.02em}
.word-en{font-family:Georgia,var(--serif);font-size:12px;letter-spacing:.06em;color:#92784f;margin:4px 0 0}
.word-summary{font-size:14px;line-height:1.9;margin:10px 0 0}
.word-card p:not(.word-summary):not(.word-en):not(.word-meta){font-size:13px;line-height:1.95;color:var(--muted);margin:8px 0 0}
.word-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12px}
.word-category{background:var(--mist);padding:3px 10px;border-radius:3px;color:var(--muted)}
.word-guide-link{color:var(--accent);text-underline-offset:4px}
.word-related{color:var(--muted)}
.word-related a{color:var(--accent);text-underline-offset:3px}
.words-related{margin-top:48px;border-top:1px solid var(--line);padding-top:8px}
.words-related h2{font-family:var(--serif);font-weight:500;font-size:24px}
@media(max-width:760px){.word-cards{grid-template-columns:1fr}}
@media(max-width:540px){
  .word-controls{padding:12px 0 10px}
  .word-filters{gap:6px;margin-top:10px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}
  .word-filter{white-space:nowrap}
  .word-index a,.word-index span{min-width:32px;min-height:34px;font-size:12px}
  .word-card{padding:16px 18px}
  .word-card h3{font-size:18px}
}

/* ホテルブランド図鑑：系列の整理と掲載施設。 */
.brand-group-note{background:var(--mist);padding:18px 22px;margin:0 0 8px;border-left:3px solid #92784f}
.brand-group-note dl{margin:0;display:grid;gap:8px 18px}
.brand-group-note dl>div{display:grid;grid-template-columns:11em minmax(0,1fr);gap:12px;font-size:13px;line-height:1.8}
.brand-group-note dt{color:var(--muted)}
.brand-group-note dd{margin:0}
.article-body .brand-group-sources{font-size:11px;color:var(--muted);margin:10px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px}
.brand-spa-summary{font-size:13px;line-height:1.8;color:var(--muted);margin:0}
.brand-treatments{border-top:1px solid var(--line);padding-top:8px}
.brand-treatment-chips{display:flex;flex-wrap:wrap;gap:8px}
.brand-treatment-chips a{display:inline-flex;align-items:baseline;gap:8px;min-height:40px;padding:8px 16px;border:1px solid var(--line);text-decoration:none;color:var(--ink)!important;font-size:13px}
.brand-treatment-chips a span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.brand-treatment-chips a:hover{border-color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.brand-table-section{margin:0 0 48px}
.brand-table-section h2{font-family:var(--serif);font-weight:500;font-size:26px;margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.brands-index .region-comparison th:first-child{width:22%}
.brands-index .region-comparison th:last-child{width:32%}
.brands-index .region-comparison td a{text-underline-offset:3px}
.brand-group-lead{font-size:14px;line-height:1.95;color:var(--muted);margin:-8px 0 20px;max-width:760px}
@media(max-width:540px){.brand-group-note{padding:14px 16px}.brand-group-note dl>div{grid-template-columns:1fr;gap:2px}.brand-table-section h2{font-size:23px}}
.brand-minor{margin:48px 0 0}
.brand-minor h2{font-family:var(--serif);font-weight:500;font-size:26px;margin:0 0 12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.brand-minor>p{font-size:14px;line-height:1.95;color:var(--muted);margin:0 0 16px;max-width:760px}
.brand-minor th span{display:block;font-family:Georgia,var(--serif);font-size:11px;color:#92784f;font-weight:400;margin-top:2px}
.brand-minor .region-comparison th:first-child{width:22%}
.brand-minor .region-comparison th:nth-child(2){width:22%}
.brand-independent{margin:40px 0 0;background:var(--mist);padding:24px 28px}
.brand-independent h2{font-family:var(--serif);font-weight:500;font-size:22px;margin:0 0 10px}
.brand-independent p{font-size:14px;line-height:1.95;margin:0;max-width:760px}
@media(max-width:540px){.brand-minor h2{font-size:23px}.brand-independent{padding:18px 20px}}

/* 条件で探すスパ */
.condition-page .guide-body{max-width:900px}
.condition-count{font-size:14px;color:var(--muted)}
.condition-evidence{font-size:13px;line-height:1.8;margin:0 0 4px;padding-left:14px;border-left:2px solid #6d9384;color:var(--ink)}
.article-body .condition-evidence{margin:0 0 6px}
.condition-cards .treatment-card h2{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.6;margin:6px 0 8px}
@media(max-width:540px){.condition-evidence{font-size:12px}}

/* 条件ページのサイドバー（地域で絞り込む）。1050px以下では本文内の地域ナビに任せる。 */
.condition-aside .condition-aside-regions a{justify-content:space-between;gap:12px}
.condition-aside .condition-aside-regions span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.condition-aside .guide-aside-group:first-of-type{padding-top:0;border-top:0}
