/* 料金表・店舗入り口・付属品（src/lib/pricing-html.ts が出す .pr-* 部品） */
.pr-entrance { margin: 24px auto 32px; max-width: 900px; padding: 0 16px; }
.pr-entrance-h { font-size: 1.25rem; text-align: center; margin: 0 0 8px; }
.pr-entrance-note { text-align: center; color: #555; font-size: .92rem; margin: 0 0 16px; }
.pr-entrance-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.pr-entrance-card { display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 16px; border: 2px solid #d9cfcc; border-radius: 12px; background: #fff; color: #2b2523; text-decoration: none; position: relative; transition: border-color .15s; }
.pr-entrance-card:hover { border-color: #806d6d; }
.pr-entrance-name { font-size: 1.15rem; font-weight: 700; }
.pr-entrance-access { font-size: .86rem; color: #666; }
.pr-entrance-btn { margin-top: 8px; display: inline-block; padding: 10px 14px; border-radius: 8px; background: #806d6d; color: #fff; font-weight: 700; text-align: center; font-size: .95rem; }
.pr-entrance-last { position: absolute; top: -10px; right: 12px; background: #c0392b; color: #fff; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }

.pr-table-wrap { margin: 16px 0 20px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pr-table { width: 100%; border-collapse: collapse; background: #fff; font-size: .95rem; }
.pr-table th, .pr-table td { border: 1px solid #e3dcda; padding: 9px 10px; text-align: left; vertical-align: middle; }
.pr-table thead th { background: #f3efee; font-weight: 700; text-align: center; }
.pr-table tbody th { background: #faf8f7; font-weight: 600; white-space: nowrap; }
.pr-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pr-th-default, .pr-td-default { background: #fbf4f2 !important; }
.pr-th-nights { display: block; font-size: 1rem; }
.pr-th-note { display: block; font-size: .72rem; color: #7d7370; font-weight: 400; }
.pr-badge { display: inline-block; font-size: .68rem; font-weight: 700; color: #fff; background: #3f8fc4; border-radius: 999px; padding: 1px 8px; margin-bottom: 3px; }
.pr-badge-rec { background: #c0392b; }
.pr-row-ext th, .pr-row-ext td { color: #666; font-size: .86rem; }
.pr-caption { caption-side: top; text-align: left; font-weight: 700; padding: 0 0 6px; }
.pr-notes { margin: 8px 0 0; padding-left: 1.2em; font-size: .84rem; color: #555; }
.pr-compact .pr-table { font-size: .88rem; }
.pr-compact .pr-badge, .pr-compact .pr-th-note { display: none; }

.pr-note { margin: 12px 0 24px; }
.pr-h3 { font-size: 1.05rem; margin: 18px 0 8px; padding-left: 10px; border-left: 4px solid #b89590; }
.pr-includes { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0; font-size: .92rem; }
.pr-includes dt { font-weight: 700; }
.pr-includes dd { margin: 0; }
.pr-plan-note { display: block; color: #7d7370; font-size: .84rem; }
.pr-opt-group h4 { font-size: .95rem; margin: 10px 0 6px; }
.pr-opts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.pr-opts li { background: #fff; border: 1px solid #e3dcda; border-radius: 8px; padding: 8px 10px; font-size: .9rem; display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.pr-opt-name small { color: #7d7370; font-size: .78rem; }
.pr-opt-price { margin-left: auto; font-weight: 700; color: #806d6d; }
.pr-opt-note { flex-basis: 100%; font-size: .78rem; color: #7d7370; }
.pr-rules { margin: 0; padding-left: 1.2em; font-size: .92rem; line-height: 1.8; }
.pr-comp-list { padding-left: 1.2em; }
@media (max-width: 600px) {
  /* 料金表を横スクロールなしで収める（横浜は泊数3列＋プラン列）。行見出しは折り返す */
  .pr-table { font-size: .82rem; }
  .pr-table th, .pr-table td { padding: 7px 5px; }
  .pr-table tbody th { white-space: normal; line-height: 1.35; word-break: keep-all; } /* 「レディース 基本プラン」は空白で折り返す */
  .pr-th-nights { font-size: .88rem; }
  .pr-row-ext th, .pr-row-ext td { font-size: .78rem; }
  .pr-includes { grid-template-columns: 1fr; gap: 2px; }
  .pr-includes dd { margin-bottom: 8px; }
}

/* 店舗ページ: 料金表→プラン一覧へのリンク */
.pr-more { display: block; width: fit-content; margin: 0 auto 28px; padding: 10px 18px; border: 1px solid #806d6d; border-radius: 8px; color: #806d6d; font-weight: 700; font-size: .95rem; text-decoration: none; }
.pr-more:hover { background: #806d6d; color: #fff; }

/* プラン一覧（入り口・店舗別） */
.pr-h2 { font-size: 1.15rem; margin: 28px 0 12px; padding-left: 10px; border-left: 4px solid #b89590; }
.pr-store-lead { margin: 8px 0 12px; font-size: .95rem; color: #444; }
.pr-switch { text-align: center; margin: 8px 0 24px; font-size: .9rem; }
.pr-switch a { color: #806d6d; text-decoration: underline; }
.pr-home-plan-note { text-align: center; font-size: .88rem; color: #555; margin: -6px 0 14px; }
.pr-home-plan-note a { color: #806d6d; text-decoration: underline; }
.pr-plan-lineup { max-width: 900px; margin: 8px auto 32px; padding: 0 16px; font-size: .95rem; }
.pr-plan-lineup ul { padding-left: 1.2em; line-height: 1.9; }
.pr-plan-lineup-note { color: #555; font-size: .9rem; }
.mv_from { font-size: .6em; margin-left: 2px; }

/* 店舗別一覧・入り口: プランカードのグリッド（.sub-plan-container）の外に置く */
.pr-store-head { max-width: 1000px; margin: 0 auto; padding: 8px 16px 0; }
.pr-plan-entrance .pr-store-head { padding-bottom: 24px; }

/* プラン詳細: 画像の下の泊数別料金表 */
.pr-plan-nights { max-width: 720px; margin: 8px auto 20px; padding: 0 16px; }
.pr-nights th[scope="row"] { font-weight: 700; white-space: normal; }
.pr-nights th[scope="row"] .pr-badge { margin-left: 8px; }
.pr-nights th[scope="row"] .pr-th-note { display: block; }
.pr-tr-default td, .pr-tr-default th { background: #fbf4f2; }
.pr-nights-note { font-size: .82rem; color: #555; margin: 8px 0 0; }
.pr-store-foot { margin-top: 24px; }
.pr-shirt { display: block; font-size: .72rem; font-weight: 700; color: #3f8fc4; white-space: nowrap; }
