/* 貸切の特設ページだけの見た目（店舗サイト共通の style.css に足す形。style.css は変えない） */

.page-header{ text-align:left; padding-top:24px; }
.pv-page{ padding:0 24px 96px; margin:0 auto; }
.pv-page .detail-title{ font-size:clamp(34px,7vw,52px); margin:8px 0 10px; }

.pv-kicker{ text-align:center; font-size:13px; color:var(--brand1); font-weight:var(--fw-bold); margin:12px 0 0; letter-spacing:.12em; }
.pv-catch{ text-align:center; font-weight:var(--fw-bold); font-size:16px; margin:0 0 24px; }
.pv-hero{ max-width:480px; margin:0 auto 24px; border-radius:16px; overflow:hidden; }
.pv-hero img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }

/* 写真のギャラリー（管理画面の「特設ページの写真」）。写真の向きがまちまちでも切れないよう、枠の中に収める */
.pv-gallery{ max-width:480px; margin:0 auto 24px; }
.pv-gallery-main{ position:relative; }
.pv-gallery-track{ position:relative; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; list-style:none; margin:0; padding:0; border-radius:16px; scrollbar-width:none; overscroll-behavior-x:contain; }
.pv-gallery-track::-webkit-scrollbar{ display:none; }
.pv-gallery-track:focus-visible{ outline:3px solid var(--brand2); outline-offset:2px; }
.pv-gallery-slide{ flex:0 0 100%; scroll-snap-align:center; scroll-snap-stop:always; }
.pv-gallery-slide figure{ position:relative; margin:0; }
.pv-gallery-slide img{ display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:contain; background:#fff7fb; border-radius:16px; }
/* 説明は写真の下に2行まで（説明のある写真が1枚でもあれば、全部の写真に同じ高さの欄を取って、切り替えても高さが変わらないように） */
.pv-gallery-slide figcaption{ height:calc(1.5em * 2 + 8px); padding:8px 8px 0; font-size:13px; line-height:1.5; color:var(--ink-soft); text-align:center; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.pv-gallery-nav{ position:absolute; top:50%; width:40px; height:40px; margin-top:-20px; border:none; border-radius:50%; background:rgba(255,255,255,.9); color:var(--brand1); font-size:28px; line-height:1; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.18); display:none; }
.pv-gallery.is-ready .pv-gallery-nav{ display:flex; align-items:center; justify-content:center; padding:0 0 4px; }
.has-captions .pv-gallery-nav{ margin-top:-44px; }  /* 写真の真ん中（下の説明の欄 約47px の半分だけ上へ） */
.pv-gallery-nav.is-prev{ left:10px; } .pv-gallery-nav.is-next{ right:10px; }
.pv-gallery-count{ position:absolute; top:10px; right:10px; margin:0; padding:2px 10px; border-radius:999px; background:rgba(0,0,0,.45); color:#fff; font-size:12px; }
.pv-gallery-thumbs{ position:relative; display:flex; gap:8px; overflow-x:auto; padding:8px 2px 4px; scrollbar-width:thin; }
.pv-gallery-thumbs button{ flex:0 0 60px; height:60px; padding:0; border:2px solid transparent; border-radius:10px; overflow:hidden; background:#fff; cursor:pointer; opacity:.55; transition:opacity .15s ease, border-color .15s ease; }
.pv-gallery-thumbs button[aria-current="true"]{ border-color:var(--brand1); opacity:1; }
.pv-gallery-thumbs button:hover{ opacity:1; }
.pv-gallery-thumbs img{ display:block; width:100%; height:100%; object-fit:cover; }
@media (prefers-reduced-motion:reduce){ .pv-gallery-thumbs button{ transition:none; } }
.pv-lede{ margin-bottom:12px; }
.pv-from{ text-align:center; font-size:15px; margin:0 0 28px; }
.pv-from strong{ color:var(--brand1); font-size:24px; font-weight:var(--fw-bold); }

/* お知らせ */
.pv-notice{
  background:#fff7fb; border:2px solid var(--brand1); border-radius:16px;
  padding:16px 20px; margin:0 0 32px; font-size:14px;
}
.pv-notice p{ margin:0; }
.pv-notice-label{ font-family:var(--font-heading); color:var(--brand1); font-size:14px; margin-bottom:4px !important; }
.pv-notice-link{ margin-top:8px !important; }
.pv-notice-link a{ color:var(--brand1); font-weight:var(--fw-bold); border-bottom:1px solid var(--brand1); }

/* ページ内の目次 */
.pv-toc{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 0 8px; }
.pv-toc a{ font-size:13px; padding:6px 14px; border:1px solid var(--brand2); border-radius:999px; color:var(--brand1); background:#fff; }

/* 区切り */
.pv-sec{ padding:48px 0 0; margin:0; max-width:none; scroll-margin-top:16px; }
.pv-page .section-label{ font-size:22px; margin-bottom:16px; }
.pv-h3{ font-size:15px; font-weight:var(--fw-bold); margin:24px 0 8px; }
.pv-text{ font-size:14px; color:var(--ink-soft); margin:0 0 16px; }
.pv-small{ font-size:13px; }
.pv-table-wrap + .rule-list{ margin-top:14px; }
.pv-note{ font-size:12.5px; color:var(--ink-soft); margin:12px 0 0; }
.pv-link{ color:var(--brand1); border-bottom:1px solid var(--brand2); }

/* 用途のタイル */
.pv-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:640px){ .pv-tiles{ grid-template-columns:1fr 1fr; gap:10px; } }
.pv-tile{ display:block; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; transition:transform .15s ease, box-shadow .15s ease; }
.pv-tile:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(228,0,127,.15); }
.pv-tile img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.pv-tile-name{ display:block; font-weight:var(--fw-bold); font-size:14px; line-height:1.5; padding:10px 12px 0; }
.pv-tile-price{ display:block; font-size:12.5px; color:var(--brand1); padding:2px 12px 12px; }

/* 料金表 */
.pv-table-wrap{ overflow-x:auto; }
.pv-table{ width:100%; border-collapse:collapse; font-size:14px; min-width:320px; }
.pv-table th, .pv-table td{ border-bottom:1px solid var(--line); padding:10px 6px; text-align:center; }
.pv-table thead th{ font-size:12.5px; line-height:1.5; background:#fff7fb; }
.pv-table thead th small{ display:block; color:var(--ink-soft); font-size:11px; font-weight:var(--fw-regular); }
.pv-table tbody th{ text-align:left; white-space:nowrap; font-size:13px; }
.pv-table td{ font-weight:var(--fw-bold); white-space:nowrap; }

.pv-prices{ list-style:none; margin:0; padding:0; font-size:14px; }
.pv-prices li{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); }
.pv-prices li span:last-child{ white-space:nowrap; font-weight:var(--fw-bold); }
.pv-estimate{ background:#fff7fb; border:1px solid var(--brand2); border-radius:16px; padding:8px 18px; margin-bottom:16px; }
.pv-estimate .pv-prices li:last-child{ border-bottom:none; }
.pv-total{ font-size:16px; }
.pv-total span:last-child{ color:var(--brand1); font-size:20px; }
.pv-days{ margin-bottom:4px; }

/* 当日の流れ */
.pv-timeline{ list-style:none; margin:0 0 24px; padding:0; border-left:3px solid var(--brand2); }
.pv-timeline li{ position:relative; display:flex; gap:14px; padding:0 0 14px 18px; font-size:14px; }
.pv-timeline li::before{ content:""; position:absolute; left:-8px; top:7px; width:13px; height:13px; border-radius:50%; background:var(--brand1); border:2px solid #fff; }
.pv-time{ font-weight:var(--fw-bold); color:var(--brand1); white-space:nowrap; min-width:3.2em; }

/* 飲食 */
.pv-food{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
@media (max-width:640px){ .pv-food{ grid-template-columns:1fr; } }
.pv-food-item{ border:1px solid var(--line); border-radius:16px; padding:14px 16px; font-size:13.5px; color:var(--ink-soft); }
.pv-food-item p{ margin:0; }
.pv-food-name{ font-weight:var(--fw-bold); color:var(--ink); font-size:15px; }
.pv-food-fee{ font-size:12.5px; color:var(--brand1); font-weight:var(--fw-bold); margin-bottom:6px !important; }

/* ご利用の流れ */
.pv-flow{ list-style:none; margin:0; padding:0; }
.pv-flow li{ display:flex; gap:14px; margin-bottom:16px; font-size:14px; color:var(--ink-soft); }
.pv-flow li p{ margin:0; }
.pv-flow-no{ flex:0 0 32px; height:32px; border-radius:50%; background:var(--brand1); color:#fff; font-weight:var(--fw-bold); display:flex; align-items:center; justify-content:center; }
.pv-flow-title{ color:var(--ink); font-weight:var(--fw-bold); }

/* よくある質問 */
.pv-faq details{ border-bottom:1px solid var(--line); }
.pv-faq summary{ cursor:pointer; list-style:none; padding:14px 28px 14px 0; font-weight:var(--fw-bold); font-size:14px; position:relative; }
.pv-faq summary::-webkit-details-marker{ display:none; }
.pv-faq summary::before{ content:"Q. "; color:var(--brand1); }
.pv-faq summary::after{ content:"+"; position:absolute; right:4px; top:12px; color:var(--brand1); font-size:18px; }
.pv-faq details[open] summary::after{ content:"−"; }
.pv-faq details p{ margin:0 0 14px; font-size:14px; color:var(--ink-soft); }

/* お店の情報 */
.pv-dl{ margin:0; font-size:14px; }
.pv-dl dt{ font-weight:var(--fw-bold); margin-top:12px; }
.pv-dl dd{ margin:2px 0 0; color:var(--ink-soft); }

/* 予約ボタン */
.pv-cta{ margin:56px 0 0; }
.big-cta.is-disabled{ background:#ccc; box-shadow:none; cursor:default; }
.pv-cta-sub{ text-align:center; font-size:13px; line-height:2.2; margin:18px 0 0; }
.pv-cta-sub a{ color:var(--ink-soft); border-bottom:1px solid var(--line); padding-bottom:1px; }

/* ほかの使い方 */
.pv-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.pv-chips a{ font-size:13px; padding:8px 14px; border-radius:999px; background:#fff7fb; border:1px solid var(--brand2); }

/* 見出しのフォント（Dela Gothic One）には太字が無い。h1・h2 のままだとブラウザが無理に太らせて、
   黒フチと重なって字が潰れるので、店舗トップと同じ太さに戻す */
.heading-outline, .section-label{ font-weight:400; font-synthesis:none; }
