/* ==========================================================================
   富加ゴルフ 公式サイト  site.css
   色は tokens.css の semantic 変数だけを参照する（hex直書き禁止）。
   スマホ優先。900px以上でPCレイアウトに切り替える。
   ========================================================================== */

/* tokens.css に無い semantic を1つだけ追加（薄い青の面） */
:root{ --tg-accent-wash: var(--tg-b050); --tg-on-ground-muted: var(--tg-b100);
  --tg-on-ground: #FFFFFF; /* 濃紺の地（--tg-ground）の上の文字。ダークモードでも地が濃紺のままなので白で固定 */ }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--tg-bg); color:var(--tg-text);
  font-family:var(--tg-font-body); font-size:var(--tg-fs-body); line-height:1.8;
}
/* 2026-10-07 改善案：本文は1文字単位で折り返す（文節で折ると右側がガタガタに空くため）。見出しだけ文節で折る */
p,li,dt,dd,figcaption{ word-break:normal; line-break:strict; overflow-wrap:anywhere; }
h1,h2,h3{ word-break:auto-phrase; overflow-wrap:anywhere; }
img{ display:block; max-width:100%; height:auto; }
a{ color:var(--tg-accent); }
a:hover{ color:var(--tg-accent-hover); }
:focus-visible{ outline:3px solid var(--tg-accent); outline-offset:2px; }
button, summary{ min-height:var(--tg-tap); }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:absolute; left:8px; top:-100px; background:var(--tg-surface); padding:8px 12px; z-index:100; }
.skip:focus{ top:8px; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:1240px; margin:0 auto; padding:0 20px; }
.section{ padding-top:56px; }
.section.band{ margin-top:56px; padding:48px 0; background:var(--tg-surface); }
.section.band.wash{ background:var(--tg-accent-wash); }
.grid{ display:grid; gap:24px; }
@media (min-width:900px){
  .wrap{ padding:0 24px; }
  .section{ padding-top:96px; }
  .section.band{ margin-top:96px; padding:80px 0; }
  .grid.c2{ grid-template-columns:1fr 1fr; gap:48px; }
  .grid.c3{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
  .grid.c4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .grid.c57{ grid-template-columns:5fr 7fr; gap:56px; }
  .grid.c75{ grid-template-columns:7fr 5fr; gap:56px; }
  .grid.middle{ align-items:center; }
  .pc-flip > :first-child{ order:2; }
}

/* ---------- type ---------- */
.label{ font-family:var(--tg-font-num); font-weight:700; letter-spacing:.16em; font-size:var(--tg-fs-micro); color:var(--tg-accent); text-transform:uppercase; }
.h1{ margin:8px 0 0; font-size:30px; font-weight:900; line-height:1.35; }
.h2{ margin:8px 0 0; font-size:28px; font-weight:900; line-height:1.4; }
.h3{ margin:0; font-size:20px; font-weight:900; line-height:1.5; }
.lead{ margin:12px 0 0; font-size:17px; color:var(--tg-text-muted); }
.text{ margin:10px 0 0; color:var(--tg-text-muted); }
.note{ margin:8px 0 0; font-size:var(--tg-fs-note); color:var(--tg-text-faint); line-height:1.7; }
.num{ font-family:var(--tg-font-num); font-weight:700; font-variant-numeric:tabular-nums; }
.todo{ color:var(--tg-text-faint); font-size:var(--tg-fs-note); }
@media (min-width:900px){
  .label{ font-size:16px; }
  .h1{ font-size:44px; }
  .h2{ font-size:40px; }
  .h3{ font-size:22px; }
  .lead{ font-size:18px; }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:52px; padding:0 24px; border-radius:10px; border:2px solid var(--tg-accent);
  font-weight:700; text-decoration:none; background:var(--tg-accent); color:var(--tg-text-on-accent);
}
.btn:hover{ background:var(--tg-accent-hover); border-color:var(--tg-accent-hover); color:var(--tg-text-on-accent); }
.btn.ghost{ background:transparent; color:var(--tg-accent); }
.btn.ghost:hover{ background:var(--tg-accent-wash); color:var(--tg-accent); }
.btn.block{ display:flex; width:100%; }
.btns{ display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.btns.stack .btn{ flex:1 1 220px; }
.textlink{ display:inline-flex; align-items:center; min-height:44px; font-weight:700; }

/* ---------- header ---------- */
.site-header{ background:var(--tg-accent); color:var(--tg-text-on-accent); position:sticky; top:0; z-index:50; }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; }
.logo{ color:var(--tg-text-on-accent); text-decoration:none; display:flex; align-items:baseline; gap:10px; }
.logo:hover{ color:var(--tg-text-on-accent); }
.logo b{ font-size:19px; font-weight:900; }
.logo span{ display:none; font-family:var(--tg-font-num); font-weight:600; font-size:14px; letter-spacing:.12em; color:var(--tg-text-on-accent); opacity:.85; }
.gnav{ display:none; }
.head-actions{ display:flex; align-items:center; gap:4px; }
.pill{ background:var(--tg-surface); color:var(--tg-accent); text-decoration:none; font-weight:700; font-size:14px; padding:0 14px; min-height:36px; border-radius:999px; display:inline-flex; align-items:center; }
.pill:hover{ color:var(--tg-accent); background:var(--tg-accent-wash); }
.menu-btn{ width:44px; height:44px; border:0; background:transparent; color:var(--tg-text-on-accent); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.drawer{ display:none; background:var(--tg-surface); border-bottom:1px solid var(--tg-border); }
.drawer.open{ display:block; }
.drawer ul{ list-style:none; margin:0; padding:8px 20px 16px; }
.drawer a{ display:flex; align-items:center; min-height:48px; border-bottom:1px solid var(--tg-border); color:var(--tg-text); font-weight:700; text-decoration:none; }
/* PCメニューは1240px以上だけ横並び。それより狭い画面（小さめのノートPC・タブレット）は早めにメニューボタンにまとめる */
@media (min-width:1240px){
  .site-header .wrap{ min-height:68px; }
  .logo b{ font-size:22px; }
  .logo span{ display:inline; }
  .gnav{ display:flex; gap:24px; align-items:center; font-weight:700; }
  .gnav a{ color:var(--tg-text-on-accent); text-decoration:none; padding:10px 0; }
  .gnav a[aria-current="page"]{ text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:2px; }
  .gnav a:hover{ color:var(--tg-text-on-accent); text-decoration:underline; text-underline-offset:8px; }
  .menu-btn, .drawer{ display:none !important; }
  .pill{ min-height:44px; padding:0 18px; font-size:15px; }
}
.crumb{ padding-top:12px; font-size:13px; color:var(--tg-text-faint); }
.crumb a{ color:var(--tg-text-faint); }

/* ---------- cards / rows ---------- */
.card{ background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:14px; padding:20px; }
@media (min-width:900px){ .card{ padding:28px; } }
.row{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--tg-border); }
.row:last-child{ border-bottom:0; }
.row .k{ font-weight:700; }
.row .s{ display:block; font-size:var(--tg-fs-note); color:var(--tg-text-faint); font-weight:400; margin-top:2px; }
.row .v{ font-family:var(--tg-font-num); font-weight:700; font-variant-numeric:tabular-nums; font-size:26px; white-space:nowrap; }
.box{ margin-top:16px; padding:14px 16px; background:var(--tg-accent-wash); border-radius:12px; }
.box b{ display:block; font-weight:900; }
.check{ display:flex; gap:12px; align-items:flex-start; padding:16px 18px; background:var(--tg-surface); border:2px solid var(--tg-accent); border-radius:12px; margin-top:20px; }
.check svg{ flex-shrink:0; margin-top:3px; color:var(--tg-accent); }
.check p{ margin:0; }
.tags{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.tags li{ background:var(--tg-accent-wash); color:var(--tg-accent); font-weight:700; font-size:14px; padding:4px 12px; border-radius:999px; }
.ph{ aspect-ratio:4/3; background:var(--tg-surface-2); border-radius:12px; display:flex; align-items:center; justify-content:center; text-align:center; padding:16px; font-size:var(--tg-fs-note); color:var(--tg-text-faint); }
.photo{ border-radius:12px; width:100%; object-fit:cover; }
.r43{ aspect-ratio:4/3; } .r169{ aspect-ratio:16/10; } .r45{ aspect-ratio:4/5; } .r11{ aspect-ratio:1/1; }

/* ---------- top page ---------- */
.hero{ padding-top:20px; }
.hero .catch{ margin:6px 0 0; font-size:34px; font-weight:900; line-height:1.35; }
.hero .en{ font-family:var(--tg-font-num); font-weight:700; letter-spacing:.06em; color:var(--tg-accent); font-size:18px; }
.hero .facts{ margin:14px 0 0; font-size:19px; font-weight:900; }
.hero figure{ margin:24px 0 0; }
@media (min-width:900px){
  .hero{ padding-top:56px; }
  .hero .catch{ font-size:60px; }
  .hero .en{ font-size:26px; }
  .hero .facts{ font-size:22px; }
  .hero figure{ margin:0; }
}
.today{ margin-top:32px; }
.today .card{ display:grid; gap:20px; }
.today .t-label{ font-weight:700; color:var(--tg-text-muted); font-size:14px; }
.today .t-val{ font-family:var(--tg-font-num); font-weight:700; font-variant-numeric:tabular-nums; font-size:30px; line-height:1.2; }
@media (min-width:900px){ .today .card{ grid-template-columns:1.1fr 1.4fr 1.3fr; align-items:center; gap:32px; } .today .t-val{ font-size:36px; } }

.feature .big{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-accent); font-size:48px; line-height:1; margin-top:6px; }
.feature .big small{ font-size:22px; }
.feature .label{ margin-top:16px; }
.feature h3{ margin-top:6px; }

.steps{ list-style:none; margin:24px 0 0; padding:0; display:grid; gap:12px; counter-reset:s; }
.steps li{ background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; padding:16px 18px; }
.steps .no{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-accent); font-size:14px; letter-spacing:.12em; }
@media (min-width:900px){ .steps{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; } }

.digital ul{ margin:16px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:6px; }

.since .year{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-accent); }
.timeline{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:8px; }
.timeline li{ display:flex; gap:12px; align-items:baseline; background:var(--tg-surface); border-radius:10px; padding:12px 14px; }
.timeline .year{ font-size:20px; min-width:44px; }
@media (min-width:900px){ .timeline{ grid-template-columns:1fr 1fr; } }

.recruit-band{ background:var(--tg-ground); color:var(--tg-on-ground); border-radius:16px; overflow:hidden; display:grid; }
.recruit-band .body{ padding:24px 20px 28px; }
.recruit-band .label{ color:var(--tg-on-ground-muted); }
.recruit-band h2{ margin:6px 0 0; font-size:26px; font-weight:900; line-height:1.4; }
.recruit-band p{ margin:10px 0 0; color:var(--tg-on-ground-muted); }
.recruit-band .nums{ display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; font-weight:700; }
.recruit-band .nums .num{ font-size:28px; }
.recruit-band .btn{ background:var(--tg-surface); color:var(--tg-accent); border-color:var(--tg-surface); margin-top:20px; }
.recruit-band .btn:hover{ background:var(--tg-accent-wash); }
.recruit-band img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
@media (min-width:900px){ .recruit-band{ grid-template-columns:1fr 1fr; } .recruit-band .body{ padding:48px; } .recruit-band h2{ font-size:34px; } .recruit-band img{ aspect-ratio:auto; } }

.news-list{ list-style:none; margin:16px 0 0; padding:0; border-top:1px solid var(--tg-border); }
.news-list a{ display:block; padding:14px 0; border-bottom:1px solid var(--tg-border); color:var(--tg-text); text-decoration:none; }
.news-list a:hover .t{ text-decoration:underline; }
.news-list .meta{ display:flex; gap:10px; align-items:center; font-size:13px; }
.news-list .d{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-text-faint); font-size:15px; }
.news-list .c{ background:var(--tg-surface-2); padding:2px 8px; border-radius:4px; font-weight:700; color:var(--tg-text-muted); }
.news-list .t{ display:block; margin-top:4px; font-weight:700; font-size:17px; }
@media (min-width:900px){ .news-list a{ display:grid; grid-template-columns:120px 140px 1fr; align-items:center; gap:16px; padding:18px 0; } .news-list .meta{ display:contents; } .news-list .t{ margin:0; } }

.map{ width:100%; aspect-ratio:4/3; border:0; border-radius:12px; background:var(--tg-surface-2); }
.courses{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:8px; }
.courses li{ background:var(--tg-surface); border-radius:10px; padding:12px 14px; font-weight:700; }

/* ---------- footer / action bar ---------- */
.site-footer{ margin-top:64px; background:var(--tg-ground); color:var(--tg-on-ground-muted); padding:40px 0 120px; font-size:14px; }
.site-footer .name{ color:var(--tg-on-ground); font-weight:900; font-size:18px; }
.site-footer a{ color:var(--tg-on-ground-muted); }
.site-footer a:hover{ color:var(--tg-on-ground); }
.foot-nav{ display:grid; grid-template-columns:1fr 1fr; margin-top:20px; }
.foot-nav a{ display:flex; align-items:center; min-height:44px; }
@media (min-width:900px){ .site-footer{ margin-top:96px; padding:56px 0; } .foot-nav{ display:flex; flex-wrap:wrap; gap:4px 28px; } }
.actionbar{ position:fixed; left:0; right:0; bottom:0; z-index:40; background:var(--tg-surface); border-top:1px solid var(--tg-border); padding:8px 12px calc(8px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.actionbar a{ min-height:48px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-weight:700; text-decoration:none; border:2px solid var(--tg-accent); color:var(--tg-accent); }
.actionbar a.main{ background:var(--tg-accent); color:var(--tg-text-on-accent); }
@media (min-width:900px){ .actionbar{ display:none; } }
.cta-strip{ background:var(--tg-surface); border-top:1px solid var(--tg-border); }
.cta-strip .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding-top:32px; padding-bottom:32px; }
.cta-strip .t{ font-weight:900; font-size:20px; }
.cta-strip .btns{ margin:0; }
@media (max-width:899px){ .cta-strip{ display:none; } }
@media (min-width:1240px){ .head-actions{ display:none; } }
.gnav a.pill, .gnav a.pill:hover{ color:var(--tg-accent); text-decoration:none; padding:0 18px; }
.hero-photo{ aspect-ratio:16/10; }
@media (min-width:900px){ .hero-photo{ aspect-ratio:4/5; } }

/* ---------- 2026-10-02 セクションの境目をはっきりさせる ---------- */
.section{ padding-top:64px; }
.section > .wrap > .label:first-child, .section .wrap > div > .label:first-child{ display:flex; align-items:center; gap:10px; }
.section > .wrap > .label:first-child::before, .section .wrap > div > .label:first-child::before{ content:""; width:28px; height:3px; background:var(--tg-accent); border-radius:2px; }
.section.band{ margin-top:64px; padding:56px 0; border-top:1px solid var(--tg-border); border-bottom:1px solid var(--tg-border); }
.section.band:not(.wash){ background:var(--tg-surface); }
.section.band:not(.wash) .card{ background:var(--tg-bg); }
.section.band + .section{ padding-top:64px; }
@media (min-width:900px){ .section{ padding-top:104px; } .section.band{ margin-top:104px; padding:88px 0; } }

/* ---------- フェードイン（スクロールで1回だけ。動きを減らす設定では無効） ---------- */
.js-fade .fade{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.js-fade .fade.in{ opacity:1; transform:none; }
.js-fade .fade.d1{ transition-delay:.08s; } .js-fade .fade.d2{ transition-delay:.16s; } .js-fade .fade.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){ .js-fade .fade{ opacity:1; transform:none; transition:none; } }

/* ---------- SINCE 1989 の一行帯 ---------- */
.since-strip{ margin-top:24px; display:flex; flex-wrap:wrap; gap:4px 14px; align-items:baseline; padding:14px 16px; border-top:1px solid var(--tg-border); border-bottom:1px solid var(--tg-border); color:var(--tg-text-muted); }
.since-strip .num{ color:var(--tg-accent); font-size:20px; letter-spacing:.06em; }

/* ---------- 写真は読み込みが終わってからふわっと出す（パッと出るのを防ぐ） ---------- */
/* 写真の読み込み中は薄い青の枠を出しておく（真っ白な空白にしない）。
   以前は読み込み完了まで写真を透明にしてからふわっと出していたが、通信が遅いと長く空白に見えるためやめた。
   写真は「プログレッシブJPEG」なので、届いた分から粗い→細かいの順に描かれる */
.photo, .recruit-band img{ background:var(--tg-accent-wash); }

/* ==================== 下層ページ共通 ==================== */
.page-head{ padding-top:20px; }
@media (min-width:900px){ .page-head{ padding-top:40px; } }
.facts4{ list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.facts4 li{ background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; padding:12px 14px; }
.facts4 b{ display:block; font-size:17px; font-weight:900; }
.facts4 span{ font-size:14px; color:var(--tg-text-muted); }
@media (min-width:900px){ .facts4{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; } .facts4 li{ padding:18px 20px; } }

.flow{ list-style:none; margin:24px 0 0; padding:0; display:grid; gap:32px; }
.flow .no{ font-family:var(--tg-font-num); font-weight:700; font-size:30px; color:var(--tg-accent); line-height:1; }
.flow .head{ display:flex; gap:12px; align-items:baseline; margin-top:12px; }
@media (min-width:900px){ .flow{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 40px; } }

.dl{ margin:16px 0 0; display:grid; gap:16px; }
.dl dt{ font-weight:900; font-size:18px; }
.dl dd{ margin:4px 0 0; color:var(--tg-text-muted); }

.faq{ margin-top:16px; border-top:1px solid var(--tg-border); }
.faq details{ border-bottom:1px solid var(--tg-border); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:12px; align-items:center; padding:14px 0; font-weight:700; font-size:17px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"＋"; color:var(--tg-accent); font-size:22px; line-height:1; flex-shrink:0; }
.faq details[open] summary::after{ content:"−"; }
.faq p{ margin:0 0 16px; color:var(--tg-text-muted); }

.figs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; }
.figs figure{ margin:0; }
.figs figcaption{ margin-top:6px; font-weight:700; font-size:15px; }
@media (min-width:900px){ .figs.c3{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; } }

.list{ margin:14px 0 0; padding-left:22px; display:grid; gap:6px; color:var(--tg-text-muted); }
.next{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.next .h3{ font-size:22px; }

.rules{ list-style:none; margin:14px 0 0; padding:0; border-top:1px solid var(--tg-border); }
.rules li{ display:flex; gap:14px; padding:14px 0; border-bottom:1px solid var(--tg-border); }
.rules .num{ font-size:26px; color:var(--tg-accent); line-height:1.1; min-width:20px; }
.rules b{ display:block; font-size:18px; font-weight:900; }
.rules span.s{ color:var(--tg-text-muted); font-size:15px; }

.news-filter{ display:flex; gap:8px; overflow-x:auto; margin-top:16px; padding-bottom:4px; }
.news-filter button{ flex-shrink:0; padding:0 16px; border-radius:999px; font:inherit; font-weight:700; font-size:15px; cursor:pointer; background:var(--tg-surface); color:var(--tg-accent); border:1px solid var(--tg-border); }
.news-filter button[aria-pressed="true"]{ background:var(--tg-accent); color:var(--tg-text-on-accent); border-color:var(--tg-accent); }
@media (min-width:900px){ .figs .pc-auto{ grid-column:auto !important; } }

/* ==================== 採用ページ ==================== */
.rc{ background:var(--tg-surface); }
.rc .nw{ white-space:nowrap; }
.rc-hero{ padding-top:24px; }
.rc-h1{ margin:0; font-size:33px; font-weight:900; line-height:1.3; }
.rc-sub{ margin:10px 0 0; font-size:19px; font-weight:900; }
.rc-en{ margin-top:14px; font-family:var(--tg-font-num); font-weight:700; text-transform:uppercase; color:var(--tg-accent); font-size:20px; letter-spacing:.02em; }
.rc-nums{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:24px; }
.rc-nums > div{ border-top:2px solid var(--tg-text); padding-top:10px; }
.rc-nums .num{ font-size:36px; color:var(--tg-accent); line-height:1; }
.rc-nums b{ margin-left:4px; }
.rc-nums span:not(.num){ display:block; font-weight:700; font-size:14px; margin-top:4px; }
.rc-portraits{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:28px; }
.rc-portraits figure{ margin:0; }
.rc-portraits figcaption{ margin-top:8px; font-weight:700; font-size:14px; }
.rc-portraits .label{ font-size:12px; }
.marquee{ margin-top:48px; background:var(--tg-accent); color:var(--tg-text-on-accent); overflow:hidden; white-space:nowrap; }
.marquee .track{ display:inline-flex; animation:rcMarquee 28s linear infinite; }
.marquee span{ font-family:var(--tg-font-num); font-weight:700; letter-spacing:.06em; padding-right:48px; font-size:26px; line-height:52px; }
@keyframes rcMarquee{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee .track{ animation:none; } }
.rc-head{ display:flex; flex-direction:column; }
.rc-big{ font-family:var(--tg-font-num); font-weight:700; text-transform:uppercase; color:var(--tg-accent); font-size:20px; letter-spacing:.12em; line-height:1; }
.rc-quote{ margin:0; font-size:22px; font-weight:900; line-height:1.6; }
.rc-item{ border-top:2px solid var(--tg-text); padding-top:16px; }
.rc-promise{ margin-top:32px; background:var(--tg-ground); color:var(--tg-on-ground); padding:28px 22px; border-radius:4px; }
.rc-promise .label{ color:var(--tg-on-ground-muted); }
.rc-promise b{ display:block; font-size:21px; font-weight:900; margin-top:6px; line-height:1.5; }
.rc-promise p{ margin:12px 0 0; color:var(--tg-on-ground-muted); }
.rc-actions{ list-style:none; margin:20px 0 0; padding:0; border-top:2px solid var(--tg-text); }
.rc-actions li{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--tg-border); }
.rc-actions svg{ flex-shrink:0; color:var(--tg-accent); margin-top:4px; }
.rc-actions b{ display:block; font-size:19px; font-weight:900; line-height:1.5; }
.rc-actions span{ color:var(--tg-text-muted); }
.rc-person{ display:grid; grid-template-columns:2fr 3fr; gap:10px; margin-top:36px; align-items:end; }
.rc-person > div{ grid-column:1 / -1; }
.rc-name{ display:flex; gap:12px; align-items:baseline; }
.rc-initial{ font-family:var(--tg-font-num); font-weight:700; font-size:48px; line-height:1; }
.rc-name b{ font-size:20px; font-weight:900; }
.rc-shots{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:24px; }
.rc-shots figure{ margin:0; } .rc-shots figcaption{ margin-top:6px; font-weight:700; font-size:15px; }
.rc-job{ border-left:4px solid var(--tg-accent); padding-left:14px; margin-top:16px; }
.rc-job b{ display:block; font-size:18px; font-weight:900; } .rc-job span{ color:var(--tg-text-muted); }
.rc-day{ list-style:none; margin:24px 0 0; padding:0; border-left:2px solid var(--tg-accent); }
.rc-day li{ position:relative; padding:0 0 18px 22px; display:flex; flex-direction:column; }
.rc-day li::before{ content:""; position:absolute; left:-7px; top:9px; width:12px; height:12px; border-radius:50%; background:var(--tg-accent); }
.rc-day .num{ font-size:20px; }
.rc-cats{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:24px; align-items:start; }
.rc-cats img:first-child{ grid-column:1 / -1; aspect-ratio:4/3; }
.rc-cats img:not(:first-child){ aspect-ratio:3/4; }
.rc-list{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:10px; }
.rc-list li{ display:flex; gap:12px; font-size:17px; font-weight:700; }
.rc-list li span{ color:var(--tg-accent); } .rc-list.muted li span{ color:var(--tg-text-faint); }
.rc-terms{ margin:20px 0 0; border-top:2px solid var(--tg-text); }
.rc-terms > div{ display:grid; grid-template-columns:96px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--tg-border); }
.rc-terms dt{ font-weight:900; } .rc-terms dd{ margin:0; color:var(--tg-text-muted); }
.rc-entry{ margin-top:80px; background:var(--tg-accent); color:var(--tg-text-on-accent); padding:64px 0; }
.rc-entry .rc-big{ color:var(--tg-text-on-accent); font-size:80px; letter-spacing:.01em; }
.rc-entry-lead{ margin:16px 0 0; font-size:21px; font-weight:900; line-height:1.5; }
.rc-flow{ list-style:none; margin:32px 0 0; padding:0; display:grid; gap:20px; }
.rc-flow li{ border-top:1px solid var(--tg-on-ground-muted); padding-top:14px; }
.rc-flow span{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-on-ground-muted); font-size:20px; letter-spacing:.06em; }
.rc-flow b{ display:block; font-size:20px; font-weight:900; margin-top:4px; }
.rc-flow p{ margin:6px 0 0; color:var(--tg-on-ground-muted); }
.rc-entry .btn.rc-white{ background:var(--tg-surface); color:var(--tg-accent); border-color:var(--tg-surface); }
.rc-entry .btn.rc-line{ background:transparent; color:var(--tg-text-on-accent); border-color:var(--tg-text-on-accent); }
.rc-small{ margin:20px 0 0; color:var(--tg-on-ground-muted); font-size:14px; }
@media (min-width:900px){
  .rc-hero{ padding-top:56px; }
  .rc-h1{ font-size:68px; }
  .rc-sub{ font-size:24px; }
  .rc-en{ font-size:30px; }
  .rc-nums{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:40px; }
  .rc-nums .num{ font-size:56px; }
  .rc-portraits{ gap:24px; margin-top:48px; }
  .rc-portraits figcaption{ font-size:16px; }
  .marquee{ margin-top:80px; } .marquee span{ font-size:40px; line-height:72px; }
  .rc-head{ flex-direction:row; align-items:baseline; gap:20px; flex-wrap:wrap; }
  .rc-big{ font-size:80px; letter-spacing:.01em; color:var(--tg-text); }
  .rc-head .h2{ font-size:28px; color:var(--tg-accent); }
  .rc-quote{ font-size:30px; }
  .rc-promise{ padding:48px 56px; } .rc-promise b{ font-size:28px; }
  .rc-actions b{ font-size:23px; }
  .rc-person{ grid-template-columns:3fr 4fr 5fr; gap:32px; margin-top:56px; }
  .rc-person > div{ grid-column:auto; }
  .rc-person.flip > div{ order:-1; }
  .rc-initial{ font-size:72px; } .rc-name b{ font-size:22px; }
  .rc-shots{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
  .rc-cats{ grid-template-columns:5fr 3fr 4fr; gap:16px; }
  .rc-cats img:first-child{ grid-column:auto; }
  .rc-terms > div{ grid-template-columns:160px 1fr; }
  .rc-entry{ margin-top:120px; padding:120px 0; }
  .rc-entry .rc-big{ font-size:200px; line-height:.9; }
  .rc-entry-lead{ font-size:28px; }
  .rc-flow{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:56px; }
}

/* ==================== 2026-10-02 レビュー反映 ==================== */
/* 判断に必要な補足は16px以上 */
.row .s{ font-size:var(--tg-fs-body); color:var(--tg-text-muted); }
.facts4 span{ font-size:var(--tg-fs-body); }
/* スマホの打席状況ボタンも44px以上 */
.pill{ min-height:var(--tg-tap); }
/* スマホのメニューは画面が低くてもスクロールできる */
.drawer{ max-height:calc(100vh - 56px); overflow-y:auto; }

/* トップ：スマホは「説明 → いまの営業状況 → 写真」、PCは「説明｜写真」の下に営業状況 */
.hero-grid{ display:grid; gap:24px; grid-template-areas:"text" "today" "fig"; }
.hero-text{ grid-area:text; } .hero-fig{ grid-area:fig; margin:0; } .hero-grid .today{ grid-area:today; margin:0; }
@media (min-width:900px){ .hero-grid{ grid-template-columns:7fr 5fr; gap:32px 56px; align-items:center; grid-template-areas:"text fig" "today today"; } }
.status{ margin-top:4px; font-weight:900; font-size:22px; line-height:1.4; display:flex; align-items:center; gap:8px; }
.status::before{ content:""; width:10px; height:10px; border-radius:50%; background:var(--tg-text-faint); flex-shrink:0; }
.status.is-open::before{ background:var(--tg-accent); }
.status.is-temporary_closure, .status.is-emergency_closure, .status.is-error{ font-size:19px; }
.hours-mini{ margin:4px 0 0; color:var(--tg-text-muted); }
.hours-mini .num{ color:var(--tg-text); font-size:19px; }

/* お知らせの絞り込み：スマホは2列で全部見せる */
@media (max-width:899px){ .news-filter{ display:grid; grid-template-columns:1fr 1fr; overflow:visible; } }

/* 濃い青の帯はダークモードでも濃い青のまま（淡い青に変わって文字が読みにくくなるのを防ぐ） */
:root{ --tg-band: var(--tg-b700); }
.marquee, .rc-entry{ background:var(--tg-band); color:var(--tg-on-ground); }
.rc-entry .rc-big{ color:var(--tg-on-ground); }
.rc-entry .btn.rc-white{ background:var(--tg-on-ground); color:var(--tg-band); border-color:var(--tg-on-ground); }
.rc-entry .btn.rc-line{ color:var(--tg-on-ground); border-color:var(--tg-on-ground); }

/* 採用：ページ内リンク・免許の条件・応募フォーム */
.rc-jump{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.rc-jump a{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--tg-border); background:var(--tg-surface); font-weight:700; text-decoration:none; }
.rc-license{ margin-top:16px; padding:12px 14px; background:var(--tg-accent-wash); border-radius:10px; font-weight:700; }
.apply{ margin-top:32px; background:var(--tg-surface); color:var(--tg-text); border-radius:14px; padding:24px 20px; }
.apply h3{ margin:0; font-size:22px; font-weight:900; }
.apply .field{ margin-top:16px; display:grid; gap:6px; }
.apply label{ font-weight:700; }
.apply .req{ font-size:13px; color:var(--tg-accent); margin-left:6px; }
.apply input[type=text], .apply input[type=tel], .apply input[type=email], .apply textarea{ width:100%; min-height:48px; padding:10px 12px; border:1px solid var(--tg-border-strong); border-radius:8px; font:inherit; background:var(--tg-surface); color:var(--tg-text); }
.apply textarea{ min-height:96px; }
.apply .check-row{ display:flex; gap:10px; align-items:flex-start; margin-top:14px; }
.apply .check-row input{ width:22px; height:22px; margin-top:4px; flex-shrink:0; }
.apply .hint{ font-size:15px; color:var(--tg-text-muted); }
.apply button{ margin-top:20px; width:100%; min-height:56px; border:0; border-radius:10px; background:var(--tg-band); color:var(--tg-on-ground); font:inherit; font-weight:900; font-size:18px; cursor:pointer; }
.apply .done{ margin-top:14px; padding:12px 14px; background:var(--tg-accent-wash); border-radius:10px; font-weight:700; }
@media (min-width:900px){ .apply{ padding:40px; } }

/* 採用ページでは、スマホ下部の固定ボタンを応募用にする */
.actionbar.two{ grid-template-columns:1fr 1fr; }

/* レッスン：予約のしかた */
.howto{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:12px; }
.howto li{ background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; padding:16px 18px; }
.howto b{ display:block; font-size:18px; font-weight:900; }
@media (min-width:900px){ .howto{ grid-template-columns:1fr 1fr; } }

/* お支払い方法：Airペイの案内画像と、文字の一覧 */
.paylogo{ margin:16px 0 0; background:var(--tg-on-ground); border-radius:12px; padding:10px; border:1px solid var(--tg-border); }
.paylogo img{ width:100%; height:auto; }
.paylist{ margin:14px 0 0; display:grid; gap:10px; }
.paylist dt{ font-weight:900; }
.paylist dd{ margin:2px 0 0; color:var(--tg-text-muted); }

/* ---------- 導線の整理（採用情報ボタン・空き打席数） ---------- */
.pill[aria-current="page"]{ box-shadow:inset 0 0 0 2px var(--tg-accent); }
.drawer a[aria-current="page"]{ color:var(--tg-accent); }
.drawer .ext{ margin-left:auto; font-size:13px; font-weight:700; color:var(--tg-text-muted); }
@media (min-width:1240px) and (max-width:1360px){ .gnav{ gap:18px; } }
@media (min-width:1240px) and (max-width:1279px){ .logo span{ display:none !important; } }
.gnav a{ white-space:nowrap; }
.seat-count{ margin-top:4px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; min-height:44px; }
.seat-count .seat-num{ display:inline-flex; align-items:baseline; }
.seat-count .num{ font-family:var(--tg-font-num); font-variant-numeric:tabular-nums; font-weight:700; font-size:44px; line-height:1; }
.seat-count .of{ font-weight:700; font-size:17px; color:var(--tg-text-muted); margin-left:4px; }
.seat-count .seat-word{ font-weight:900; font-size:16px; padding:4px 12px; border-radius:999px; border:1px solid; }
.seat-count.is-open .num{ color:var(--tg-open); }
.seat-count.is-open .seat-word{ color:var(--tg-open); background:var(--tg-open-tint); border-color:var(--tg-open-line); }
.seat-count.is-busy .num{ color:var(--tg-busy); }
.seat-count.is-busy .seat-word{ color:var(--tg-busy); background:var(--tg-busy-tint); border-color:var(--tg-busy-line); }
.seat-count.is-full .num{ color:var(--tg-full); }
.seat-count.is-full .seat-word{ color:var(--tg-full); background:var(--tg-full-tint); border-color:var(--tg-full-line); }
.seat-count .seat-msg{ font-weight:700; font-size:17px; line-height:1.5; align-self:center; }
.seat-count.is-off .seat-msg{ color:var(--tg-text-muted); }

/* ---------- 応募フォーム（現行フォームの項目を移植） ---------- */
.apply fieldset.field{ border:0; padding:0; margin:16px 0 0; min-width:0; }
.apply legend{ font-weight:700; padding:0; margin-bottom:6px; }
.apply .opt{ font-size:13px; font-weight:700; color:var(--tg-text-muted); margin-left:6px; }
.apply .fnote{ margin:0; font-size:15px; color:var(--tg-text-muted); line-height:1.6; }
.apply .opts{ display:grid; gap:8px; }
.apply .opts.days{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.apply .opt-item{ display:flex; align-items:center; gap:10px; min-height:48px; padding:0 14px; border:1px solid var(--tg-border-strong); border-radius:8px; cursor:pointer; font-weight:700; }
.apply .opt-item input{ width:22px; height:22px; margin:0; flex-shrink:0; accent-color:var(--tg-accent); }
.apply .opt-item:has(input:checked){ border-color:var(--tg-accent); background:var(--tg-accent-wash); }
.apply .opt-item:has(input:focus-visible){ outline:2px solid var(--tg-accent); outline-offset:2px; }
.apply .apply-sub{ margin:32px 0 0; padding-top:20px; border-top:1px solid var(--tg-border); font-size:18px; font-weight:900; }
.apply [aria-invalid="true"]{ border-color:var(--tg-accent) !important; box-shadow:0 0 0 2px var(--tg-accent); }
.apply .check-row.consent{ margin-top:24px; }
@media (min-width:900px){ .apply .opts:not(.days){ grid-template-columns:repeat(3,minmax(0,1fr)); } .apply .opts.days{ grid-template-columns:repeat(8,minmax(0,1fr)); } .apply .opts.days .opt-item{ justify-content:center; padding:0 8px; } }

/* ---------- プライバシーポリシー ---------- */
.legal{ max-width:760px; padding-top:8px; }
.legal h2{ font-size:20px; font-weight:900; margin:40px 0 0; padding-top:24px; border-top:1px solid var(--tg-border); }
.legal h2:first-child{ margin-top:24px; }
.legal p, .legal li{ font-size:16px; line-height:1.85; }
.legal p{ margin:12px 0 0; }
.legal ul{ margin:12px 0 0; padding-left:1.4em; }
.legal li + li{ margin-top:6px; }
.legal-dl{ display:grid; grid-template-columns:7em 1fr; gap:10px 16px; margin:16px 0 0; }
.legal-dl dt{ font-weight:700; color:var(--tg-text-muted); }
.legal-dl dd{ margin:0; }
.legal-date{ margin-top:40px !important; color:var(--tg-text-muted); }
/* 公開前に決める箇所（試作のあいだだけ目立たせる） */
.todo{ padding:10px 14px; border:2px dashed var(--tg-accent); border-radius:8px; background:var(--tg-accent-wash); font-weight:700; }
.todo-inline{ background:var(--tg-accent-wash); outline:2px dashed var(--tg-accent); outline-offset:1px; border-radius:4px; padding:0 4px; font-weight:700; }

/* ---------- トップ：ネットのない全景を大きく ---------- */
.hero.hero-pano-wrap{ padding-top:0; }
.hero-pano{ position:relative; margin:0 !important; }
.hero-pano img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:50% 55%; }
.hero-pano figcaption{ position:absolute; left:0; right:0; bottom:0; padding:48px 20px 16px; background:linear-gradient(to top, rgba(10,20,30,.78), rgba(10,20,30,0)); color:var(--tg-on-ground); }
.hero-pano .en{ display:block; color:var(--tg-on-ground) !important; font-size:15px !important; letter-spacing:.12em; }
.hero-pano .cap{ display:block; margin-top:4px; font-weight:900; font-size:19px; line-height:1.45; text-shadow:0 1px 3px rgba(0,0,0,.45); }
.hero-pano-wrap .hero-grid{ grid-template-areas:"text" "today"; padding-top:24px; }
br.sp{ display:inline; }
.turf-mini{ margin-top:20px; color:var(--tg-text-muted); }
@media (min-width:900px){
  .hero-pano img{ aspect-ratio:auto; height:min(72vh, 720px); min-height:440px; object-position:50% 60%; }
  .hero-pano figcaption{ padding:96px 0 32px; }
  .hero-pano figcaption > *{ max-width:1240px; margin-left:auto; margin-right:auto; padding:0 20px; }
  .hero-pano .en{ font-size:18px !important; }
  .hero-pano .cap{ font-size:30px; }
  br.sp{ display:none; }
  .hero-pano-wrap .hero-grid{ grid-template-columns:1fr; grid-template-areas:"text" "today"; padding-top:48px; }
}

/* ---------- 料金ページ：ページ内リンク・時間限定の表示 ---------- */
.jump{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.jump a{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1px solid var(--tg-border-strong); border-radius:999px; background:var(--tg-surface); color:var(--tg-accent); font-weight:700; text-decoration:none; }
.jump a:hover{ background:var(--tg-accent-wash); }
[id]{ scroll-margin-top:84px; }
.row .tag{ display:inline-block; margin-left:8px; padding:2px 10px; border-radius:999px; border:1px solid var(--tg-border-strong); color:var(--tg-text-muted); font-size:13px; font-weight:700; vertical-align:middle; }

/* ---------- ジュニア応援：ルールを強く ---------- */
.jr-rules{ display:grid; gap:32px; }
.jr-rules .rules{ margin-top:20px; }
.jr-warn{ margin-top:20px; padding:18px 20px; border:3px solid var(--tg-accent); border-radius:12px; background:var(--tg-surface); }
.jr-warn b{ display:block; font-size:19px; font-weight:900; line-height:1.5; color:var(--tg-accent); }
.jr-warn p{ margin:8px 0 0; font-size:16px; line-height:1.7; }
.jr-poster{ margin:0; }
/* 掲示の画像は上の4ルールと同じ内容なので、小さなサムネイル＋リンクにする（2026-10-03） */
.jr-poster a{ display:flex; align-items:center; gap:14px; min-height:44px; padding:10px; border:1px solid var(--tg-border); border-radius:12px; background:var(--tg-surface); text-decoration:none; }
.jr-poster img{ display:block; width:72px; flex-shrink:0; border-radius:6px; }
.jr-poster-cap{ font-weight:700; color:var(--tg-accent); }
.jr-poster-cap .s{ display:block; font-weight:400; font-size:14px; color:var(--tg-text-muted); }
.jr-summary{ margin:0; display:grid; gap:0; border-top:1px solid var(--tg-border); }
.jr-summary > div{ display:grid; grid-template-columns:7.5em 1fr; gap:12px; padding:14px 0; border-bottom:1px solid var(--tg-border); }
.jr-summary dt{ font-weight:900; color:var(--tg-accent); }
.jr-summary dd{ margin:0; font-weight:700; }
.jr-summary dd .s{ display:block; margin-top:4px; font-weight:400; color:var(--tg-text-muted); }
@media (min-width:900px){ .jr-rules{ grid-template-columns:7fr 5fr; gap:56px; align-items:start; } .jr-warn b{ font-size:21px; } }

/* ---------- レッスン（LP） ---------- */
.ls-hero{ padding-top:24px; }
.ls-hero-grid{ display:grid; gap:24px; }
.ls-catch{ margin:6px 0 0; font-size:32px; font-weight:900; line-height:1.4; }
.ls-chips{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.ls-chips li{ padding:6px 14px; border-radius:999px; background:var(--tg-accent-wash); color:var(--tg-accent); font-weight:700; font-size:15px; }
.ls-stats{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--tg-border); border-bottom:1px solid var(--tg-border); }
.ls-stats li{ padding:16px 8px; text-align:center; }
.ls-stats li + li{ border-left:1px solid var(--tg-border); }
.ls-stats b{ display:block; font-family:var(--tg-font-num); font-size:28px; line-height:1.1; color:var(--tg-accent); }
.ls-stats small{ font-size:14px; margin-left:2px; }
.ls-stats span{ display:block; margin-top:4px; font-size:14px; font-weight:700; color:var(--tg-text-muted); line-height:1.4; }
.ls-narrow{ max-width:860px; }
.ls-worries{ list-style:none; margin:20px 0 0; padding:0; display:grid; gap:10px; }
.ls-worries li{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:10px; font-weight:700; line-height:1.6; }
.ls-worries svg{ flex-shrink:0; margin-top:2px; color:var(--tg-accent); }
.ls-answer{ margin:24px 0 0; font-size:22px; font-weight:900; line-height:1.5; color:var(--tg-accent); }
.ls-reason h3{ margin:0; }
.ls-road{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.ls-road li{ padding:16px 18px; background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; }
.ls-road .step{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-accent); letter-spacing:.06em; }
.ls-road b{ display:block; font-size:18px; font-weight:900; margin-top:2px; }
.ls-road p{ margin:6px 0 0; line-height:1.7; }
.ls-road .loop-note, .ls-road .perk-mini{ font-weight:700; color:var(--tg-accent); }
.ls-menu{ display:grid; gap:14px; margin-top:24px; }
.ls-plan{ position:relative; padding:22px 20px; background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:14px; }
.ls-plan.rec{ border:2px solid var(--tg-accent); }
.ls-rec{ position:absolute; top:-12px; left:16px; padding:2px 12px; border-radius:999px; background:var(--tg-accent); color:var(--tg-text-on-accent); font-size:14px; font-weight:700; }
.ls-plan h3{ margin:0; font-size:19px; font-weight:900; }
.ls-plan .price{ margin-top:6px; font-size:40px; line-height:1.1; color:var(--tg-accent); }
.ls-plan .ball{ display:inline-block; margin-top:8px; padding:3px 12px; border-radius:6px; background:var(--tg-accent-wash); color:var(--tg-accent); font-weight:900; font-size:15px; }
.ls-plan .ball.sep{ background:var(--tg-surface); color:var(--tg-text); border:2px solid var(--tg-text); }
.ls-plan p{ margin:10px 0 0; line-height:1.7; }
.ls-notes{ margin:18px 0 0; padding-left:1.3em; color:var(--tg-text-muted); }
.ls-notes li{ line-height:1.8; }
.ls-perk{ margin-top:20px; padding:18px 20px; border-radius:12px; background:var(--tg-surface); border:2px dashed var(--tg-accent); }
.ls-perk > b{ display:block; font-weight:900; font-size:18px; }
.ls-perk-rows{ display:flex; flex-wrap:wrap; gap:6px 24px; margin-top:6px; font-weight:700; }
.ls-perk-rows .num{ font-size:24px; color:var(--tg-accent); }
.ls-voice{ margin:0; padding:22px 24px; background:var(--tg-surface); border-left:4px solid var(--tg-accent); border-radius:0 12px 12px 0; font-size:19px; font-weight:700; line-height:1.7; box-shadow:0 1px 0 var(--tg-border); }
.ls-flow{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.ls-flow li{ display:flex; gap:14px; padding:16px 18px; background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; }
.ls-flow .no{ flex-shrink:0; width:36px; height:36px; border-radius:50%; background:var(--tg-accent); color:var(--tg-text-on-accent); display:flex; align-items:center; justify-content:center; font-size:18px; }
.ls-flow b{ display:block; font-size:18px; font-weight:900; }
.ls-flow p{ margin:4px 0 0; line-height:1.7; }
.ls-final{ background:var(--tg-band); color:var(--tg-on-ground); border-radius:16px; padding:36px 22px; text-align:center; }
.ls-final h2{ margin:0; font-size:26px; font-weight:900; line-height:1.45; color:var(--tg-on-ground); }
.ls-final p{ margin:12px 0 0; color:var(--tg-on-ground); }
.ls-final .btns{ justify-content:center; }
.ls-final .small{ font-size:14px; opacity:.9; }
.btn.ghost-on{ background:transparent; color:var(--tg-on-ground); border:2px solid var(--tg-on-ground); }
@media (min-width:900px){
  .ls-hero{ padding-top:56px; }
  .ls-hero-grid{ grid-template-columns:6fr 5fr; gap:56px; align-items:center; }
  .ls-catch{ font-size:50px; }
  .ls-stats b{ font-size:40px; }
  .ls-stats span{ font-size:15px; }
  .ls-menu{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
  .ls-final{ padding:56px 40px; }
  .ls-final h2{ font-size:34px; }
}
.ls-final .btn.rc-white{ background:var(--tg-on-ground); color:var(--tg-band); border-color:var(--tg-on-ground); }
.ls-final .btn.ghost-on:hover{ background:rgba(255,255,255,.12); color:var(--tg-on-ground); border-color:var(--tg-on-ground); }
.cal-ph{ aspect-ratio:1/1; margin-top:16px; }
@media (min-width:900px){ .hero-pano-wrap .hero-text{ max-width:820px; } }
.ls-stats b{ font-size:24px; white-space:nowrap; } @media (min-width:900px){ .ls-stats b{ font-size:40px; } }


/* ---------- トップの全景：写真の入り方でインパクトを出す ----------
   0.0s  ロゴの青の画面が、中央から左右に割れるように開いて写真が現れる（視界が開ける・0.7秒）
   同時   写真は大きく寄った・ぼけた状態から、一気に引いてピントが合い、全景が広がる
   1.1s  光が写真の上をさっと横切る
   1.3s  「NO NET」「210 YD」が下から現れ、数字が0から数え上がる
   以降   写真はごくゆっくり寄り引きを続ける
   動きを減らす設定の端末では、すべて止めて最初から完成形を出す */
.hero-pano{ overflow:hidden; isolation:isolate; background:var(--tg-accent); }
.pano-media{ position:relative; transform-origin:50% 55%; animation:pano-open .7s cubic-bezier(.7,0,.2,1) both, pano-in 1.3s cubic-bezier(.12,.82,.2,1) both, pano-drift 24s ease-in-out 1.3s infinite alternate; will-change:transform; }
.hero-pano .pano-media img{ object-position:50% 55%; }
@keyframes pano-open{ 0%{ clip-path:inset(0 50% 0 50%); } 100%{ clip-path:inset(0 0 0 0); } }
@keyframes pano-in{ 0%{ transform:scale(1.35); opacity:.6; } 60%{ opacity:1; } 100%{ transform:scale(1); opacity:1; } }
@keyframes pano-drift{ from{ transform:scale(1) translateX(0); } to{ transform:scale(1.08) translateX(-2%); } }
/* 光が横切る */
.hero-pano::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(105deg, transparent 30%, rgba(255,255,255,.3) 48%, transparent 62%); transform:translateX(-120%); animation:sweep 1s ease-out .55s both; }
@keyframes sweep{ to{ transform:translateX(120%); } }
/* 文字：大きな 210 YD */
.hero-pano figcaption{ padding-top:96px; background:linear-gradient(to top, rgba(6,20,40,.82), rgba(6,20,40,.35) 55%, rgba(6,20,40,0)); }
.hero-pano .big{ display:flex; align-items:baseline; gap:6px; font-family:var(--tg-font-num); font-weight:700; font-size:64px; line-height:.95; color:var(--tg-on-ground); letter-spacing:.01em; text-shadow:0 2px 12px rgba(0,0,0,.35); }
.hero-pano .big small{ font-size:26px; letter-spacing:.08em; }
.hero-pano [data-count]{ font-variant-numeric:tabular-nums; display:inline-block; min-width:3ch; }
.hero-pano figcaption .en, .hero-pano figcaption .big, .hero-pano figcaption .cap{ animation:cap-up .55s cubic-bezier(.2,.8,.2,1) both; }
.hero-pano figcaption .en{ animation-delay:.45s; }
.hero-pano figcaption .big{ animation-delay:.55s; }
.hero-pano figcaption .cap{ animation-delay:.75s; }
@keyframes cap-up{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@media (min-width:900px){
  .hero-pano .big{ font-size:128px; }
  .hero-pano .big small{ font-size:42px; }
}
@media (prefers-reduced-motion: reduce){
  .pano-media, .hero-pano figcaption .en, .hero-pano figcaption .big, .hero-pano figcaption .cap{ animation:none; }
  .hero-pano::after{ display:none; }
}

/* ---------- スマホとPCの間（タブレット〜小さめのノートPC）で写真が切れすぎないように ---------- */
.recruit-band img{ object-position:82% 40%; }   /* 右端のスタッフが切れないように */
@media (min-width:640px) and (max-width:899px){
  .grid.c3{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .hero-pano img{ aspect-ratio:16/10; }
  .hero-pano .big{ font-size:96px; } .hero-pano .big small{ font-size:34px; } .hero-pano .cap{ font-size:22px; }
}
@media (min-width:900px) and (max-width:1099px){
  .hero-pano img{ height:auto; min-height:0; aspect-ratio:16/9; }
}

/* ---------- トップ：最終入場・混雑予想 ---------- */
.last-entry{ display:inline-block; margin-top:4px; font-size:15px; font-weight:700; color:var(--tg-text); }
.fc-mini{ margin-top:12px; padding-top:12px; border-top:1px solid var(--tg-border); }
.fc-mini ul{ list-style:none; margin:6px 0 0; padding:0; display:grid; gap:6px; }
.fc-mini li{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; }
.fc-tag{ display:inline-block; padding:2px 10px; border-radius:999px; border:1px solid; font-size:14px; font-weight:700; }
.fc-tag.busy{ color:var(--tg-busy); background:var(--tg-busy-tint); border-color:var(--tg-busy-line); }
.fc-tag.calm{ color:var(--tg-open); background:var(--tg-open-tint); border-color:var(--tg-open-line); }
.fc-val{ font-size:18px; font-weight:700; }
.fc-fail{ font-size:16px; color:var(--tg-text-muted); }
.courses li:has(a){ padding:0; }
.courses li a{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:10px 14px; color:var(--tg-text); text-decoration:none; border-radius:10px; }
.courses li a:hover{ background:var(--tg-accent-wash); }
.courses .go{ flex-shrink:0; font-size:14px; color:var(--tg-accent); text-decoration:underline; text-underline-offset:3px; }

/* ---------- トップの採用枠（集客の流れの最後に、小さめに） ---------- */
.recruit-band.compact img{ aspect-ratio:16/9; }
@media (min-width:900px){ .recruit-band.compact{ grid-template-columns:3fr 2fr; align-items:stretch; } .recruit-band.compact .body{ padding:32px 40px; } .recruit-band.compact h2{ font-size:26px; } .recruit-band.compact img{ aspect-ratio:auto; height:0; min-height:100%; } }
/* 明るい表示に固定（ダークモードは使わない） */
:root{ color-scheme:light; }
/* 料金：支払い方法は要点を先に、一覧は開いて見る */
.pay-sum{ margin:10px 0 0; font-size:17px; line-height:1.7; }
.pay-more{ margin-top:12px; border:1px solid var(--tg-border); border-radius:10px; background:var(--tg-surface); }
.pay-more summary{ min-height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; font-weight:700; color:var(--tg-accent); cursor:pointer; list-style:none; }
.pay-more summary::-webkit-details-marker{ display:none; }
.pay-more summary::after{ content:"＋"; font-size:20px; }
.pay-more[open] summary::after{ content:"−"; }
.pay-more > :not(summary){ margin-left:16px; margin-right:16px; }
.pay-more .paylist{ margin-bottom:16px; }
.cal-text{ margin-top:20px; }
.cal-list{ list-style:none; margin:8px 0 0; padding:0; border-top:1px solid var(--tg-border); }
.cal-list li{ display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--tg-border); }
.cal-list .num{ min-width:6.5em; }

/* ---------- 2回目レビューの反映 ---------- */
/* 来店・予約の判断に関わる条件は本文サイズ（16px以上）で */
.text.cond{ font-size:16px; color:var(--tg-text-muted); }
/* トップ写真の所在地ラベル */
.hero-pano .where{ display:block; font-size:14px; font-weight:700; color:var(--tg-on-ground); opacity:.92; margin-bottom:6px; animation:cap-up .55s cubic-bezier(.2,.8,.2,1) .35s both; }
@media (min-width:900px){ .hero-pano .where{ font-size:16px; } }
@media (prefers-reduced-motion: reduce){ .hero-pano .where{ animation:none; } }
/* 混雑予想の注意書き */
.fc-note{ margin:6px 0 0; font-size:14px; color:var(--tg-text-muted); }
/* レッスン冒頭：おすすめの20分を先頭で目立たせる */
.ls-chips .lead-chip{ background:var(--tg-accent); color:var(--tg-text-on-accent); }
/* 年表：年が途中で改行しないように */
.timeline .year{ flex-shrink:0; white-space:nowrap; }
.timeline li > span:last-child{ min-width:0; }

/* レッスン：冒頭のページ内リンク（料金・講師・予約の流れへ飛ぶ） 2026-10-03 */
.ls-jump{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.ls-jump a{ display:inline-flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid var(--tg-border-strong); border-radius:999px; background:var(--tg-surface); font-weight:700; text-decoration:none; }
.ls-jump a::after{ content:"↓"; margin-left:6px; }
/* レッスン：「詳しい進め方」は開いたときだけ読む */
.ls-more{ margin-top:12px; border:1px solid var(--tg-border); border-radius:12px; background:var(--tg-surface); }
.ls-more summary{ display:flex; align-items:center; padding:0 16px; font-weight:700; color:var(--tg-accent); cursor:pointer; }
.ls-more .list{ margin:0; padding:0 16px 14px 34px; }
/* ページ内リンクで飛んだとき、見出しがヘッダーに隠れないように */
#menu, #coach, #booking{ scroll-margin-top:72px; }

/* 料金：60歳以上・女性の延長を表で見せる 2026-10-03 */
.ext-table{ width:100%; margin-top:10px; border-collapse:collapse; background:var(--tg-surface); border-radius:8px; overflow:hidden; }
.ext-table th, .ext-table td{ padding:10px 8px; text-align:left; border-bottom:1px solid var(--tg-border); font-size:16px; }
.ext-table thead th{ font-size:14px; color:var(--tg-text-muted); font-weight:700; }
.ext-table tbody tr:last-child th, .ext-table tbody tr:last-child td{ border-bottom:0; }
.ext-table tbody th{ font-weight:700; }
.ext-table td b{ color:var(--tg-accent); font-weight:900; font-size:18px; }
.ls-more .timeline{ margin:0; padding:0 12px 12px; }
.ls-more .more-rows{ padding:0 16px 4px; }

/* 2026-10-03 大事な条件（ボール代・支払い方法・左利き用・取得できないときの連絡先）は本文と同じ16pxに。
   出典・更新時刻・予想の但し書きなどは小さいままでよい */
.ls-plan .ball{ font-size:16px; }
.ls-final .small{ font-size:16px; }
.figs figcaption{ font-size:16px; }
.today .is-error ~ .note, .today [data-status-note], .seats [data-seat-time]{ font-size:16px; }

/* レッスン：時間帯の目安（予約ボタンの近く） 2026-10-04 */
.ls-times{ margin-top:14px; padding:12px 16px; border:1px solid var(--tg-border); border-radius:12px; background:var(--tg-surface); }
.ls-times b{ display:block; font-weight:900; }
.ls-times p{ margin:4px 0 0; font-size:16px; line-height:1.7; color:var(--tg-text-muted); }
@media (max-width:899px){ .figs.sp-one{ grid-template-columns:1fr; gap:16px; } }  /* アクセスの看板：スマホでは1枚ずつ大きく（看板の文字が読めるように） */

/* ---------- トップの全景：メリットを写真の上にまとめる（2026-10-06） ----------
   スクロールしなくても「本物に近い・ネットなし210yd・コースボール・予約不要・手ぶらOK」が一目で分かるように。
   文字が写真の上に乗るので、下側を濃い紺のグラデーションで沈めて白文字を読みやすくする */
.hero-pano img{ aspect-ratio:4/5; }
.hero-pano figcaption{ padding:120px 20px 20px; background:linear-gradient(to top, rgba(6,20,40,.92) 0%, rgba(6,20,40,.78) 45%, rgba(6,20,40,.25) 80%, rgba(6,20,40,0)); }
.hero-pano .hero-catch{ margin:0; font-size:26px; font-weight:900; line-height:1.4; color:var(--tg-on-ground); text-shadow:0 2px 10px rgba(0,0,0,.45); animation:cap-up .55s cubic-bezier(.2,.8,.2,1) .45s both; }
.hero-pano .big{ margin-top:10px; align-items:flex-end; }
.hero-pano .nonet{ display:flex; flex-direction:column; justify-content:flex-end; margin-right:8px; padding-bottom:6px; font-family:var(--tg-font-num); font-size:15px; letter-spacing:.12em; line-height:1.2; }
.hero-pano .nonet b{ font-family:var(--tg-font-body); font-size:17px; font-weight:900; letter-spacing:0; }
.hero-pano .merits{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; animation:cap-up .55s cubic-bezier(.2,.8,.2,1) .8s both; }
.hero-pano .merits li{ display:inline-flex; align-items:center; gap:6px; padding:7px 12px; border:1px solid rgba(255,255,255,.55); border-radius:999px; background:rgba(6,20,40,.55); color:var(--tg-on-ground); font-size:16px; font-weight:900; line-height:1.3; }
.hero-pano .merits svg{ flex-shrink:0; }
@media (min-width:640px) and (max-width:899px){
  .hero-pano img{ aspect-ratio:4/3; }
  .hero-pano .hero-catch{ font-size:32px; }
}
@media (min-width:900px){
  .hero-pano figcaption{ padding:160px 0 40px; }
  .hero-pano .hero-catch{ font-size:46px; }
  .hero-pano .big{ font-size:112px; margin-top:6px; }
  .hero-pano .nonet{ font-size:20px; padding-bottom:16px; margin-right:14px; }
  .hero-pano .nonet b{ font-size:24px; }
  .hero-pano .merits{ gap:12px; margin-top:20px; }
  .hero-pano .merits li{ font-size:20px; padding:10px 18px; }
}
@media (min-width:900px) and (max-width:1099px){ .hero-pano img{ aspect-ratio:auto; height:min(80vh, 680px); min-height:520px; } }
@media (prefers-reduced-motion: reduce){ .hero-pano .hero-catch, .hero-pano .merits{ animation:none; } }
/* 写真の上の文字が増えたので、写真を「背景」として敷き、文字の量に合わせて高さが伸びるようにする（狭いスマホではみ出さないため） */
.hero-pano{ display:flex; flex-direction:column; justify-content:flex-end; min-height:125vw; }
.hero-pano .pano-media{ position:absolute; inset:0; }
.hero-pano .pano-media img, .hero-pano img{ width:100%; height:100%; aspect-ratio:auto; min-height:0; object-fit:cover; }
.hero-pano figcaption{ position:relative; }
@media (min-width:640px) and (max-width:899px){ .hero-pano{ min-height:62.5vw; } .hero-pano img{ aspect-ratio:auto; } }
@media (min-width:900px){ .hero-pano{ min-height:max(520px, min(76vh, 720px)); } .hero-pano img{ height:100%; } }
@media (min-width:900px) and (max-width:1099px){ .hero-pano img{ height:100%; min-height:0; } }
/* 数字と「ネットなし」は途中で改行させない／PCでは左右の余白をほかの段とそろえる */
.hero-pano .big, .hero-pano .nonet{ white-space:nowrap; overflow-wrap:normal; word-break:keep-all; }
.hero-pano .hero-catch{ margin:0 auto 0; }
.hero-pano .merits{ margin-left:auto; margin-right:auto; }
@media (max-width:359px){ .hero-pano .big{ font-size:52px; } .hero-pano .big small{ font-size:22px; } .hero-pano .hero-catch{ font-size:23px; } .hero-pano .merits li{ font-size:15px; } }
@media (min-width:900px){ .hero-pano figcaption > .merits{ max-width:1240px; padding:0 20px; } }

/* 2026-10-06 2回目：主役はキャッチ。210ヤード・ネットなしは写真で伝わるので、大きな数字はやめてメリットの1つにした。
   文字のかたまりを写真の下の方にまとめ、写真の上半分（空・森・芝の奥行き）を広く見せる */
.hero-pano{ min-height:118vw; }
.hero-pano figcaption{ padding:96px 20px 18px; background:linear-gradient(to top, rgba(6,20,40,.9) 0%, rgba(6,20,40,.7) 40%, rgba(6,20,40,0) 100%); }
.hero-pano .where{ font-size:13px; margin-bottom:8px; }
.hero-pano .hero-catch{ font-size:30px; line-height:1.35; letter-spacing:.01em; }
.hero-pano .merits{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px 10px; margin-top:14px; }
.hero-pano .merits li{ padding:0; border:0; border-radius:0; background:none; font-size:15px; font-weight:700; align-items:flex-start; gap:5px; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.hero-pano .merits svg{ width:16px; height:16px; margin-top:3px; color:var(--tg-on-ground); }
.hero-pano .merits .num{ font-family:var(--tg-font-num); font-size:17px; font-weight:700; min-width:0; }
@media (max-width:359px){ .hero-pano .hero-catch{ font-size:25px; } .hero-pano .merits li{ font-size:14px; } }
@media (min-width:640px) and (max-width:899px){ .hero-pano{ min-height:62.5vw; } .hero-pano .hero-catch{ font-size:38px; } .hero-pano .merits{ grid-template-columns:repeat(4, auto); justify-content:start; gap:6px 22px; } }
@media (min-width:900px){
  .hero-pano figcaption{ padding:160px 0 44px; }
  .hero-pano .where{ font-size:16px; }
  .hero-pano .hero-catch{ font-size:58px; line-height:1.3; }
  .hero-pano .merits{ display:flex; gap:10px 28px; margin-top:22px; }
  .hero-pano .merits li{ font-size:19px; }
  .hero-pano .merits svg{ width:20px; height:20px; margin-top:4px; }
  .hero-pano .merits .num{ font-size:22px; }
}
@media (min-width:900px){ .hero-pano{ min-height:max(520px, min(76vh, 720px)); } }
/* スマホではメリットを1列に（2列だと「210 ／ヤード先まで」のように途中で折れて読みにくいため） */
.hero-pano .merits{ grid-template-columns:1fr; gap:5px; }
.hero-pano .merits li > span{ white-space:nowrap; }
@media (min-width:640px) and (max-width:899px){ .hero-pano .merits{ display:flex; flex-wrap:wrap; gap:6px 22px; } }

/* 2026-10-06 トップの写真の上に料金を出す。平日を大きく、土日祝は小さく必ず並べる */
.hero-pano .hero-price{ margin:14px 0 0; display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 12px; color:var(--tg-on-ground); text-shadow:0 1px 6px rgba(0,0,0,.45); animation:cap-up .55s cubic-bezier(.2,.8,.2,1) .65s both; }
.hero-pano .hero-price .lbl{ align-self:center; padding:3px 10px; border:1px solid rgba(255,255,255,.7); border-radius:6px; font-size:14px; font-weight:900; text-shadow:none; }
.hero-pano .hero-price .main{ font-size:20px; font-weight:900; white-space:nowrap; }
.hero-pano .hero-price .main b{ font-family:var(--tg-font-num); font-size:40px; font-weight:700; line-height:1; margin-left:2px; }
.hero-pano .hero-price .sub{ flex-basis:100%; font-size:15px; font-weight:700; }
.hero-pano .hero-price .sub b{ font-family:var(--tg-font-num); font-size:18px; font-weight:700; }
.hero-pano .merits{ margin-top:12px; }
@media (max-width:359px){ .hero-pano .hero-price .main{ font-size:18px; } .hero-pano .hero-price .main b{ font-size:34px; } }
@media (min-width:900px){
  .hero-pano .hero-price{ margin-top:18px; gap:4px 16px; }
  .hero-pano .hero-price .lbl{ font-size:17px; padding:4px 12px; }
  .hero-pano .hero-price .main{ font-size:28px; }
  .hero-pano .hero-price .main b{ font-size:60px; }
  .hero-pano .hero-price .sub{ flex-basis:auto; font-size:19px; }
  .hero-pano .hero-price .sub b{ font-size:24px; }
  .hero-pano figcaption > .hero-price{ max-width:1240px; padding:0 20px; margin-left:auto; margin-right:auto; }
}
@media (prefers-reduced-motion: reduce){ .hero-pano .hero-price{ animation:none; } }
.hero-pano .hero-price .lbl{ display:inline-block; vertical-align:middle; margin-right:8px; position:relative; top:-4px; }
@media (max-width:359px){ .hero-pano .hero-price .lbl{ font-size:12px; padding:2px 7px; margin-right:6px; } }
@media (max-width:359px){ .hero-pano .hero-price .main{ font-size:16px; } .hero-pano .hero-price .main b{ font-size:30px; } }
@media (min-width:360px) and (max-width:399px){ .hero-pano .hero-price .main{ font-size:18px; } .hero-pano .hero-price .main b{ font-size:34px; } }

/* 2026-10-06 一部の方だけに関わる注意（キャリー270yd以上のボール交換・300yd近くのドライバーのお断り）。
   全員向けの条件と同じ重さに見えないよう小さく。ただし50〜70代も読めるよう14pxより下げない */
.small-note{ margin:8px 0 0; padding-left:1.2em; text-indent:-1.2em; font-size:14px; line-height:1.7; color:var(--tg-text-muted); }
.small-note::before{ content:"※"; display:inline-block; width:1.2em; text-indent:0; }

/* 2026-10-06 トップ：ボタン下の一言／レッスンの入口 */
.hero-note{ margin:10px 0 0; font-size:16px; font-weight:700; color:var(--tg-text); }
.lesson-door{ margin-top:20px; padding:16px 18px; border:1px solid var(--tg-border); border-radius:12px; background:var(--tg-surface); }
.lesson-door b{ display:block; font-size:18px; font-weight:900; }
.lesson-door p{ margin:6px 0 12px; line-height:1.7; }
.lesson-door .num{ font-weight:700; font-size:18px; }
/* はじめての方へ：2人で来たとき */
.pair-guide{ margin-top:24px; padding:18px; border:2px solid var(--tg-accent); border-radius:12px; background:var(--tg-surface); }
.pair-guide .h3{ margin:0; }
.pair-opts{ display:grid; gap:12px; margin-top:12px; }
.pair-opt{ padding:14px 16px; border-radius:10px; background:var(--tg-accent-wash); }
.pair-opt b{ display:block; font-size:17px; font-weight:900; }
.pair-opt .plan{ display:inline-block; margin-top:6px; padding:2px 10px; border-radius:999px; background:var(--tg-accent); color:var(--tg-text-on-accent); font-size:14px; font-weight:900; }
.pair-opt p{ margin:8px 0 0; line-height:1.7; }
.pair-opt .num{ font-weight:700; }
@media (min-width:900px){ .pair-opts{ grid-template-columns:1fr 1fr; } }
/* スマホでは「打ち放題・1人」を料金の上の行に置く（横に並べると狭い画面ではみ出すため） */
@media (max-width:639px){ .hero-pano .hero-price .lbl{ display:table; top:0; margin:0 0 6px; } }

/* ===== 2026-10-07 改善案 ===== */
/* 営業状況：1つの小さな枠に「いま行けるか」だけ */
.today-bar{ background:var(--tg-surface); border:1px solid var(--tg-border); border-radius:12px; padding:14px 16px 6px; }
.today-bar .tb-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.today-bar .tb-cell{ min-width:0; }
.today-bar .status{ font-size:18px; }
.today-bar .status.is-temporary_closure, .today-bar .status.is-emergency_closure, .today-bar .status.is-error{ font-size:16px; }
.today-bar .seat-count{ min-height:0; gap:2px 8px; }
.today-bar .seat-count .num{ font-size:30px; }
.today-bar .seat-count .of{ font-size:15px; }
.today-bar .seat-count .seat-word{ font-size:14px; padding:2px 10px; }
.today-bar .seat-count .seat-msg{ font-size:16px; }
.today-bar .tb-hours{ margin:10px 0 0; padding-top:10px; border-top:1px solid var(--tg-border); font-size:15px; color:var(--tg-text-muted); line-height:1.7; }
.today-bar .tb-hours [data-hours-label]{ font-weight:700; color:var(--tg-text); }
.today-bar .tb-hours .num{ color:var(--tg-text); }
.today-bar .tb-note{ margin:2px 0 0; font-size:14px; }
.today-bar .tb-note:empty{ display:none; }
@media (min-width:900px){
  .today-bar{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto; align-items:center; gap:4px 32px; padding:16px 24px; }
  .today-bar .tb-hours{ margin:0; padding:0; border:0; }
  .today-bar .tb-note{ grid-column:1/-1; }
}

/* 写真いっぱいに数字を載せる段 */
.wrap-wide{ max-width:1240px; margin:24px auto 0; }
@media (min-width:640px){ .wrap-wide{ padding:0 24px; } }
.feat-wide{ position:relative; margin:0; overflow:hidden; }
@media (min-width:640px){ .feat-wide{ border-radius:16px; } }
.feat-wide img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (min-width:900px){ .feat-wide img{ aspect-ratio:21/9; } }
.feat-wide figcaption{ position:absolute; left:0; right:0; bottom:0; padding:48px 20px 18px; background:linear-gradient(to top, rgba(4,20,48,.78), rgba(4,20,48,0)); color:#fff; display:flex; flex-direction:column; gap:4px; }
.feat-wide .big{ font-family:var(--tg-font-num); font-weight:700; font-size:72px; line-height:.9; letter-spacing:.01em; white-space:nowrap; }
.feat-wide .big small{ font-size:26px; letter-spacing:.08em; }
.feat-wide .cap{ font-size:18px; font-weight:900; line-height:1.5; }
@media (min-width:900px){ .feat-wide figcaption{ padding:80px 40px 32px; } .feat-wide .big{ font-size:120px; } .feat-wide .big small{ font-size:40px; } .feat-wide .cap{ font-size:26px; } }

/* 写真と文の横並び（PCは左右交互） */
.feat-row{ display:grid; gap:14px; margin-top:40px; }
.feat-row .h3{ margin-top:0; }
@media (min-width:760px){ .feat-row{ grid-template-columns:1fr 1fr; gap:40px; align-items:center; } .feat-row.rev > img{ order:2; } }

/* 料金表のような一覧（事実を1行ずつ） */
.menu-rows{ list-style:none; margin:14px 0 0; padding:0; border-top:1px solid var(--tg-border); }
.menu-rows li{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:2px 12px; padding:11px 0; border-bottom:1px solid var(--tg-border); }
.menu-rows .k{ font-weight:700; }
.menu-rows .v{ font-weight:700; white-space:nowrap; margin-left:auto; }
.menu-rows .v.num{ font-family:var(--tg-font-num); font-size:20px; color:var(--tg-accent); }
.menu-rows .s{ flex-basis:100%; font-size:14px; color:var(--tg-text-muted); line-height:1.6; }

/* 大きな年号 */
.since-big{ display:flex; align-items:center; gap:16px; margin-top:44px; padding:18px 0; border-top:1px solid var(--tg-border); border-bottom:1px solid var(--tg-border); }
.since-big .num{ font-family:var(--tg-font-num); font-weight:700; font-size:56px; line-height:1; color:var(--tg-accent); letter-spacing:.02em; }
.since-big p{ margin:0; color:var(--tg-text-muted); line-height:1.7; }
@media (min-width:900px){ .since-big .num{ font-size:80px; } .since-big p{ font-size:18px; } }

/* 太字の事実を1行ずつ */
.facts{ list-style:none; margin:18px 0 20px; padding:0; display:grid; gap:12px; }
.facts li{ display:flex; gap:10px; align-items:flex-start; }
.facts svg{ flex-shrink:0; margin-top:4px; color:var(--tg-accent); }
.facts b{ display:block; font-size:17px; line-height:1.5; }
.facts small{ display:block; font-size:15px; color:var(--tg-text-muted); line-height:1.6; margin-top:2px; }
.band.wash .lesson-door{ margin-top:0; }
@media (max-width:899px){ .band.wash .lesson-door{ margin-top:8px; } }

/* レッスン：料金の直後の予約ボタン */
.ls-menu-cta{ margin-top:24px; }
.feature > .photo + *{ margin-top:14px; }
/* 短い強調の行は、文節で折る（1文字だけ次の行に残らないように） */
.hero-note, .facts b, .feat-wide .cap, .since-big p, .lesson-door p, .menu-rows .k{ word-break:auto-phrase; }
/* スマホの営業状況：「見出し｜中身」を1行ずつ */
@media (max-width:899px){
  .today-bar .tb-row{ grid-template-columns:1fr; gap:6px; }
  .today-bar .tb-cell{ display:grid; grid-template-columns:7.5em minmax(0,1fr); align-items:center; gap:8px; }
  .today-bar .status{ margin-top:0; }
  .today-bar .seat-count{ margin-top:0; }
}
@media (min-width:900px){
  .today-bar{ grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) auto; }
  .today-bar > .textlink{ grid-column:3; grid-row:1; }
  .today-bar .tb-note{ grid-column:1; grid-row:2; }
}
@media (max-width:359px){ .rc-h1{ font-size:28px; } .today-bar .tb-cell{ grid-template-columns:6.5em minmax(0,1fr); } }
/* 料金の行：補足は料金の下に、横幅いっぱいで（狭い列に押し込まない） */
.row{ flex-wrap:wrap; }
.row > .s{ flex-basis:100%; margin-top:-2px; line-height:1.7; }
/* 2人で来たときの料金は、1行に1つ */
.pair-prices{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:2px; font-weight:700; }
.pair-prices .num{ font-size:18px; }
/* 行の終わりに1〜2文字だけ残らないように（対応ブラウザのみ。非対応でも表示は崩れない） */
p, dd, li, .s{ text-wrap:pretty; }
.facts4 span{ word-break:auto-phrase; }
.nw{ white-space:nowrap; }
.clubs-cap{ font-weight:400 !important; line-height:1.8; } .clubs-cap b{ font-weight:700; }
.figs .clubs-cap{ font-size:16px; }
/* 2人以上で来たとき：OK（1球打ち）と、ご遠慮（打ち放題のシェア）を色で分ける */
.pair-lead{ margin:8px 0 0; line-height:1.7; font-weight:700; }
.pair-opt .plan + b{ margin-top:8px; }
.pair-opt.ng{ background:var(--tg-surface); border:2px solid var(--tg-busy-line, #f0b37a); }
.pair-opt.ng .plan{ background:var(--tg-busy, #b45309); }
.pair-ex{ margin:14px 0 0; line-height:1.8; font-size:15px; color:var(--tg-text-muted); }
.pair-ex b{ color:var(--tg-text); }
.pair-lead, .pair-opt b, .pair-opt p, .pair-ex{ word-break:auto-phrase; }
.pair-ex ul{ margin:4px 0 0; padding-left:1.2em; } .pair-ex li{ margin:2px 0; }
.pair-ex li{ word-break:auto-phrase; }
/* お知らせページ：記事は本文つきで、その場で読める形に */
.news-list .news-item{ padding:16px 0; border-bottom:1px solid var(--tg-border); }
.news-list .news-item .text{ margin-top:8px; }
.cal-list b{ white-space:nowrap; }

/* ===== 2026-10-07 お知らせ管理 ===== */
/* 重要なお知らせの帯（ヘッダーのすぐ下・全ページ） */
.tg-notice[hidden]{ display:none; }
.tg-notice{ background:var(--tg-surface); border-bottom:1px solid var(--tg-border); padding:8px 0; }
.tg-notice .wrap{ display:grid; gap:6px; }
.tgn{ display:flex; align-items:center; gap:10px; min-height:48px; padding:8px 14px; border-radius:10px; color:#fff; text-decoration:none; font-weight:700; line-height:1.5; }
.tgn.t-closed{ background:#C62828; }
.tgn.t-hours{ background:#B45309; }
.tgn.t-other{ background:var(--tg-accent); }
.tgn .tag{ flex-shrink:0; font-size:13px; font-weight:900; padding:2px 8px; border-radius:6px; background:rgba(255,255,255,.22); white-space:nowrap; }
.tgn .txt{ flex:1; font-size:16px; word-break:auto-phrase; }
.tgn .go{ flex-shrink:0; font-size:14px; text-decoration:underline; white-space:nowrap; }
.tgn:hover .txt{ text-decoration:underline; }
.tgn-more{ font-size:14px; font-weight:700; justify-self:end; }
@media (min-width:900px){ .tgn{ padding:10px 18px; } .tgn .txt{ font-size:17px; } }
/* お知らせ一覧の写真つき */
.news-list a.has-thumb{ position:relative; padding-right:92px; min-height:96px; }
.news-list .news-thumb{ position:absolute; right:0; top:50%; transform:translateY(-50%); width:80px; height:64px; object-fit:cover; border-radius:8px; }
.news-list .news-empty{ padding:16px 0; color:var(--tg-text-muted); border-bottom:1px solid var(--tg-border); }
@media (min-width:900px){ .news-list a.has-thumb{ grid-template-columns:120px 140px 1fr 96px; padding-right:0; } .news-list .news-thumb{ position:static; transform:none; grid-column:4; grid-row:1; width:96px; height:72px; } }
/* お知らせの記事ページ */
.news-narrow{ max-width:760px; }
.news-head{ padding-bottom:8px; }
.news-meta{ display:flex; gap:10px; align-items:center; }
.news-meta .d{ font-family:var(--tg-font-num); font-weight:700; color:var(--tg-text-faint); font-size:16px; }
.news-meta .c{ background:var(--tg-surface-2); padding:2px 8px; border-radius:4px; font-weight:700; font-size:13px; color:var(--tg-text-muted); }
.news-title{ margin-top:8px; font-size:26px; line-height:1.45; word-break:auto-phrase; }
@media (min-width:900px){ .news-title{ font-size:34px; } }
.news-body-sec{ padding-top:8px; }
.news-imp{ display:inline-block; margin:0 0 16px; padding:4px 12px; border-radius:6px; color:#fff; font-size:14px; }
.news-imp.t-closed{ background:#C62828; } .news-imp.t-hours{ background:#B45309; } .news-imp.t-other{ background:var(--tg-accent); }
.news-photo{ margin:0 0 12px; }
.news-photo img{ display:block; width:100%; height:auto; border-radius:12px; }
.news-photo:not(.main){ display:inline-block; width:calc(50% - 6px); vertical-align:top; }
.news-photo:not(.main):nth-of-type(even){ margin-right:8px; }
.news-text{ margin-top:8px; font-size:17px; line-height:1.9; }
.news-text p{ margin:0 0 1.1em; }
.news-text a{ overflow-wrap:anywhere; }
.news-back{ margin-top:32px; }
.preview-note{ background:#FFF7E6; border-bottom:2px solid #F3D9A4; padding:12px 16px; font-weight:700; text-align:center; }
/* 2026-10-08 帯の文字が、押した後・一度開いた後に青くならないように（全体の a:hover / a:visited より強く白にする） */
.tg-notice a.tgn, .tg-notice a.tgn:link, .tg-notice a.tgn:visited, .tg-notice a.tgn:hover, .tg-notice a.tgn:active, .tg-notice a.tgn:focus{ color:#fff; }
.tg-notice a.tgn:focus-visible{ outline:3px solid #fff; outline-offset:2px; box-shadow:0 0 0 5px var(--tg-text); }
.tg-notice a.tgn-more, .tg-notice a.tgn-more:visited{ color:var(--tg-accent); }
/* 2026-10-08 帯にカーソルを置いた・押したときは、文字は白のまま、背景を少し暗くする */
.tgn{ transition:background-color .15s ease; }
.tg-notice a.tgn.t-closed:hover, .tg-notice a.tgn.t-closed:focus-visible, .tg-notice a.tgn.t-closed:active{ background:#9E1F1F; }
.tg-notice a.tgn.t-hours:hover, .tg-notice a.tgn.t-hours:focus-visible, .tg-notice a.tgn.t-hours:active{ background:#8A3F07; }
.tg-notice a.tgn.t-other:hover, .tg-notice a.tgn.t-other:focus-visible, .tg-notice a.tgn.t-other:active{ background:#003580; }
.tgn:hover .txt{ text-decoration:none; }
@media (prefers-reduced-motion: reduce){ .tgn{ transition:none; } }
