/* ALBA GOLF CLUB サイト共通スタイル。
   alba_index.html（TOP）と各独立ページ（facilities/pricing/instructors/
   school/access/news/booking/status.html）で共通利用する。
   /lesson/ 配下（個人レッスン予約アプリ）の alba-theme.css とは別管理。 */
:root{
  --green-900:#0e2b1f;
  --green-800:#163c2b;
  --green-700:#1b4332;
  --green-600:#2d6a4f;
  --green-500:#40916c;
  --green-100:#e7f4ec;
  --gold:#c9a227;
  --gold-light:#e9cf6b;
  --navy:#0d3b73;
  --navy-light:#e8eef7;
  --cream:#faf8f2;
  --ink:#1c231f;
  --ink-soft:#4c564f;
  --line:#dfe6e0;
  --radius:16px;
  --shadow:0 10px 30px rgba(14,43,31,.10);
  --shadow-lg:0 20px 50px rgba(14,43,31,.16);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;letter-spacing:.14em;font-weight:700;color:var(--green-600);
  text-transform:uppercase;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);display:inline-block}
h2.section-title{
  font-size:clamp(1.6rem,3vw,2.3rem);
  font-weight:800;color:var(--green-800);margin:10px 0 8px;letter-spacing:.02em;
}
.section-lead{color:var(--ink-soft);max-width:640px;margin-bottom:40px;font-size:.98rem}
section{padding:88px 0}
section.alt{background:#fff}

/* ---------- Dev notice ---------- */
.dev-banner{
  background:#b45309;color:#fff;text-align:center;
  font-size:.8rem;font-weight:700;letter-spacing:.02em;
  padding:8px 16px;
}

/* ---------- Header ---------- */
header.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(250,248,242,.97);
  border-bottom:1px solid var(--line);
}
header .wrap{display:flex;align-items:center;justify-content:space-between;padding:6px 24px;flex-wrap:wrap;row-gap:6px}
.logo-block{display:flex;flex-direction:column;gap:1px;flex:none}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--green-800);font-size:1.15rem;letter-spacing:.02em}
.logo img{height:32px;width:auto;flex:none;display:block}
.logo-transit{font-size:.62rem;line-height:1.15;color:var(--ink-soft);white-space:nowrap;letter-spacing:0}
nav.main-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
nav.main-nav a{font-size:.76rem;font-weight:600;line-height:1.3;color:var(--ink);position:relative;padding:5px 0;white-space:nowrap}
nav.main-nav a.current{color:var(--green-700)}
nav.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .25s ease}
nav.main-nav a:hover::after,nav.main-nav a.current::after{transform:scaleX(1)}
nav.main-nav a:not(:last-child)::before{content:"/";position:static;margin-left:12px;color:var(--line);font-weight:400}
nav.main-nav a:first-child::before{content:none}
.nav-tel{font-weight:800;color:var(--green-700)}
.nav-tel::after{display:none !important}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;border-radius:999px;font-weight:700;font-size:.9rem;
  border:1px solid transparent;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.btn-primary{background:var(--green-700);color:#fff;box-shadow:var(--shadow)}
.btn-primary:hover{background:var(--green-800);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-gold{background:var(--gold);color:var(--green-900)}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:#124a8f;transform:translateY(-2px)}
.btn-outline{border-color:var(--green-700);color:var(--green-700);background:transparent}
.btn-outline:hover{background:var(--green-700);color:#fff}
.header-cta{display:none}
.header-cta .btn-primary{padding:10px 18px;font-size:.85rem;white-space:nowrap}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.hamburger span{width:24px;height:2px;background:var(--green-800)}

/* ---------- Page title band (sub-pages, not TOP) ---------- */
.page-title-band{background:var(--green-900);color:#fff;padding:44px 0}
.page-title-band .crumb{font-size:.78rem;color:#9fc0ab}
.page-title-band .crumb a:hover{color:#fff}
.page-title-band h1{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin-top:8px}
.page-title-band p{color:#cfe4d7;margin-top:10px;font-size:.92rem;max-width:640px}

/* ---------- TOP Hero (full-bleed photo + overlay tagline) ---------- */
.hero{background:var(--cream);padding:0}
.hero-media{position:relative;width:100%;height:clamp(320px,48vw,520px);overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{
  position:absolute;inset:0;display:flex;align-items:flex-end;
  background:linear-gradient(0deg,rgba(14,43,31,.80) 0%,rgba(14,43,31,.40) 45%,rgba(14,43,31,.05) 80%);
}
.hero-overlay .wrap{padding-top:24px;padding-bottom:28px}
.hero-overlay h1{color:#fff;font-size:clamp(1.7rem,3.2vw,2.6rem);font-weight:800;line-height:1.32;letter-spacing:.02em;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hero-overlay p{color:#eaf3ec;margin-top:10px;max-width:520px;font-size:.92rem;line-height:1.6}
.hero-info-wrap{display:none;padding:28px 0 0}
.hero-info-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);display:flex}
.hero-info-item{flex:1;padding:20px 22px;border-left:1px solid var(--line)}
.hero-info-item:first-child{border-left:none}
.hero-info-item .num{display:block;color:var(--gold);font-size:.78rem;font-weight:800;margin-bottom:10px}
.hero-info-item .row{display:flex;align-items:flex-start;gap:10px}
.hero-info-item .icon{flex:none;color:var(--green-700);margin-top:1px}
.hero-info-item p{margin:0;color:var(--ink);font-size:.82rem;font-weight:600;line-height:1.5}

/* ---------- Desktop: fit header + full hero into the first screen without scrolling ---------- */
@media(min-width:921px){
  .first-view{display:flex;flex-direction:column;min-height:100vh}
  .first-view>.dev-banner,.first-view>header.site-header{flex:none}
  .first-view>.hero{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
  .first-view>.hero>.hero-media{flex:1 1 0;min-height:360px;height:auto}
}

/* ---------- Quick panel (bay status / lesson booking / checks) — desktop ---------- */
.quick-panel{background:var(--cream);padding:56px 0}
.quick-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:stretch}
.quick-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.quick-card-head{display:flex;align-items:center;gap:10px;padding:18px 26px;font-weight:800;font-size:1.05rem;color:#fff}
.quick-card-head svg{flex:none}
.quick-card-head::after{content:"›";margin-left:auto;font-size:1.2rem}
.status-head{background:var(--navy)}
.lesson-head{background:var(--gold);color:var(--green-900)}
.quick-card-body{padding:22px 26px 26px;flex:1;display:flex;flex-direction:column}
.quick-status-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem;color:var(--ink-soft);margin-bottom:10px;flex-wrap:wrap;gap:6px}
.quick-status-row .label{font-weight:700;color:var(--green-800)}
.bay-status-list{margin-bottom:14px}
.bay-status-list li{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:.88rem;border-bottom:1px dashed var(--line)}
.bay-status-list li:last-child{border-bottom:none}
.bay-status-list .floor{flex:none;width:28px;font-weight:800;color:var(--green-800)}
.bay-status-list .avail b{color:var(--navy);font-size:1.05rem}
.bay-status-list .inuse b{color:#c0392b;font-size:1.05rem}
.bay-status-list .sep{color:var(--line)}
.btn-status-detail{
  margin-top:auto;background:#fff;color:var(--navy);border:1px solid var(--navy);
  font-weight:700;font-size:.82rem;padding:9px 18px;border-radius:999px;justify-content:center;
}
.quick-lesson-buttons{display:flex;flex-direction:column;gap:12px;justify-content:center;height:100%}
.quick-lesson-btn{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:border-color .2s ease,box-shadow .2s ease}
.quick-lesson-btn:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.quick-lesson-btn svg{flex:none;color:var(--gold)}
.quick-lesson-btn .txt{flex:1;min-width:0}
.quick-lesson-btn b{display:block;color:var(--green-800);font-size:.95rem;margin-bottom:4px}
.quick-lesson-btn small{display:block;color:var(--ink-soft);font-size:.76rem;line-height:1.5}
.quick-lesson-btn .arrow{flex:none;color:var(--ink-soft);font-size:1.1rem}

/* ---------- Mobile-only CTA stack (bay-status button -> 1F/2F cards -> lesson button) ---------- */
.mobile-cta-stack{display:none}
.mobile-cta-btn{
  display:flex;align-items:center;gap:14px;border-radius:14px;padding:16px 18px;color:#fff;box-shadow:var(--shadow);
}
.mobile-cta-btn .ic{flex:none;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.mobile-cta-btn .txt{flex:1;min-width:0}
.mobile-cta-btn b{display:block;font-size:1rem;font-weight:800}
.mobile-cta-btn small{display:block;font-size:.76rem;opacity:.85;margin-top:2px}
.mobile-cta-btn .arrow{flex:none;font-size:1.3rem}
.mobile-cta-btn.navy{background:var(--navy)}
.mobile-cta-btn.green{background:var(--green-700)}
.mobile-bay-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.mobile-bay-card{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:16px;text-align:center}
.mobile-bay-card .floor{font-size:1.2rem;font-weight:800;color:var(--green-800)}
.mobile-bay-card .count{font-size:.82rem;color:var(--ink-soft);margin-top:6px}
.mobile-bay-card .count b{color:var(--navy);font-size:1.15rem}
.mobile-bay-card .mini-link{display:block;margin-top:10px;font-size:.76rem;font-weight:700;color:var(--green-700);border:1px solid var(--line);border-radius:999px;padding:7px 0}
.bay-updated-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--ink-soft);margin-bottom:4px}

/* ---------- TOP middle flow: order differs between desktop (news->status->features->facility)
   and mobile (status->news->features->facility) — see .top-flow order rules below ---------- */
.top-flow{display:flex;flex-direction:column}
.top-flow>.news-preview{order:1}
.top-flow>.quick-panel{order:2}
.top-flow>.features-section{order:3}
.top-flow>.facility-section{order:4}

.wrap-wide{max-width:1400px;margin:0 auto;padding:0 24px}

/* ---------- News preview (compact, 2 items) ---------- */
.news-preview{padding:48px 0 8px}
.col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.col-head h3{font-size:1.2rem;font-weight:800;color:var(--green-800)}
.see-all{font-size:.78rem;font-weight:700;color:var(--ink-soft)}
.see-all:hover{color:var(--green-700)}
.news-list-detailed{max-width:760px}
.news-list-detailed li{display:flex;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.news-list-detailed li:first-child{padding-top:0}
.news-list-detailed li:last-child{border-bottom:none}
.news-list-detailed .date{flex:none;color:var(--ink-soft);font-size:.8rem}
.news-list-detailed .text{color:var(--ink);flex:1}
.news-list-detailed .tag-new{flex:none;background:var(--gold);color:var(--green-900);font-size:.66rem;font-weight:800;padding:2px 8px;border-radius:999px}

/* ---------- Facility photo section (施設案内, full-width) ---------- */
.facility-section{padding:48px 0 88px}
.facility-quad{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.facility-quad figure{border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.facility-quad img{width:100%;height:180px;object-fit:cover}
.facility-quad figcaption{padding:14px 16px 18px;font-size:.86rem;font-weight:700;color:var(--green-800);background:#fff}
.facility-quad figcaption small{display:block;margin-top:6px;font-size:.74rem;font-weight:400;color:var(--ink-soft);line-height:1.5}

/* ---------- "ALBA GOLF CLUBの魅力" 4-icon strip (full-width, both breakpoints) ---------- */
.features-section{padding:8px 0 48px}
.mini-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.mini-feature-grid li{text-align:center;display:flex;flex-direction:column;align-items:center}
.mini-feature-grid .ic{
  width:64px;height:64px;border-radius:50%;background:var(--green-100);color:var(--green-700);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;
}
.mini-feature-grid .ic svg{width:28px;height:28px}
.mini-feature-grid b{display:block;font-size:.95rem;color:var(--green-800)}
.mini-feature-grid span{display:block;font-size:.8rem;color:var(--ink-soft);margin-top:5px;line-height:1.5}

/* ---------- Access (TOP summary block) ---------- */
.access-top{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:56px}
.access-top-col{display:flex;gap:20px;align-items:stretch}
.access-top-text{flex:0 0 240px;display:flex;flex-direction:column}
.access-top-text h3{font-size:1.15rem;font-weight:800;color:var(--green-800);margin-bottom:12px}
.access-top-text p{font-size:.85rem;color:var(--ink-soft);margin-bottom:8px;line-height:1.6}
.access-top-text p.tel a{font-size:1.15rem;font-weight:800;color:var(--green-700)}
.access-top-lines{margin-bottom:16px}
.access-top-lines li{font-size:.8rem;color:var(--ink-soft);padding:3px 0;line-height:1.5}
.access-detail-btn{margin-top:auto;align-self:flex-start;padding:10px 20px;font-size:.82rem}
.access-top-photo{flex:1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);min-width:0}
.access-top-photo img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block}

/* ---------- Restored detail sections (facilities / gallery / pricing / pros / school / access / senior) ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.feature-card .icon{width:52px;height:52px;border-radius:14px;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.feature-card h3{font-size:1.05rem;font-weight:800;color:var(--green-800);margin-bottom:8px}
.feature-card p{font-size:.88rem;color:var(--ink-soft)}

.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:16px}
.gallery-item{position:relative;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);margin:0}
.gallery-item.span-2{grid-column:span 2;grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-size:.76rem;font-weight:700;color:#fff;background:linear-gradient(0deg,rgba(14,43,31,.82),transparent)}

.price-tabs{display:flex;gap:12px;margin-bottom:30px;flex-wrap:wrap}
.price-tabs button{border:1px solid var(--line);background:#fff;padding:10px 20px;border-radius:999px;font-weight:700;font-size:.85rem;cursor:pointer;color:var(--ink-soft);transition:all .2s ease}
.price-tabs button.active{background:var(--green-700);border-color:var(--green-700);color:#fff}
.price-panel{display:none}
.price-panel.active{display:block}
.price-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.price-table th,.price-table td{padding:14px 18px;text-align:center;font-size:.9rem;border-bottom:1px solid var(--line)}
.price-table thead th{background:var(--green-700);color:#fff;font-weight:700;font-size:.82rem;letter-spacing:.03em}
.price-table tbody tr:last-child td{border-bottom:none}
.price-table tbody tr:nth-child(even){background:#f8faf8}
.price-table td.label{text-align:left;font-weight:700;color:var(--green-800)}
.price-note{margin-top:18px;font-size:.82rem;color:var(--ink-soft);display:flex;gap:8px;align-items:flex-start}
.price-note::before{content:"※";flex:none;color:var(--gold)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.mini-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.mini-card h4{color:var(--green-800);font-weight:800;margin-bottom:12px;font-size:1rem}
.mini-card ul li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line);font-size:.88rem}
.mini-card ul li:last-child{border-bottom:none}
.mini-card ul li b{color:var(--gold);font-weight:800}
.card-promo{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-bottom:20px;box-shadow:var(--shadow)}
.card-promo img{width:110px;height:78px;object-fit:cover;border-radius:10px;flex:none}
.card-promo p{font-size:.86rem;color:var(--ink-soft)}

.pro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pro-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease}
.pro-card:hover{transform:translateY(-6px)}
.pro-photo{aspect-ratio:1/1;background:linear-gradient(135deg,var(--green-600),var(--green-800));position:relative;overflow:hidden}
.pro-photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
.pro-photo .badge{position:absolute;top:14px;right:14px;background:var(--gold);color:var(--green-900);font-size:.68rem;font-weight:800;padding:4px 10px;border-radius:999px;z-index:1}
.pro-body{padding:22px 24px}
.pro-body h3{color:var(--green-800);font-size:1.1rem;font-weight:800;margin-bottom:4px}
.pro-body .meta{font-size:.85rem;color:var(--ink);margin-bottom:12px}
.pro-body .meta span{display:inline-block;margin-right:10px}
.pro-body p{font-size:1.08rem;color:var(--ink);line-height:1.75}
.pro-recruit{margin-top:26px;border:2px dashed var(--gold);border-radius:var(--radius);padding:22px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;background:#fffdf6}
.pro-recruit b{color:var(--green-800);font-size:1rem}

.school-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.school-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--line)}
.school-card .head{padding:22px 26px;background:var(--green-700);color:#fff}
.school-card .head span{font-size:.72rem;letter-spacing:.1em;color:var(--gold-light);font-weight:700}
.school-card .head h3{font-size:1.2rem;font-weight:800;margin-top:4px}
.school-card .body{padding:24px 26px}
.school-card .price{font-size:1.6rem;font-weight:800;color:var(--green-800)}
.school-card .price small{font-size:.85rem;font-weight:600;color:var(--ink-soft)}
.school-card ul{margin-top:14px}
.school-card ul li{font-size:.85rem;color:var(--ink-soft);padding:5px 0;padding-left:20px;position:relative}
.school-card ul li::before{content:"✓";position:absolute;left:0;color:var(--green-600);font-weight:800}
.lesson-single{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px}
.timetable-note{margin-top:30px;background:var(--green-100);border-radius:var(--radius);padding:22px 26px;display:flex;gap:16px;align-items:flex-start;font-size:.88rem;color:var(--green-800)}

.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}
.access-info{display:flex;flex-direction:column;gap:22px}
.info-row{display:flex;gap:16px;align-items:flex-start}
.info-row .icon{width:42px;height:42px;border-radius:12px;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;flex:none}
.info-row h4{font-size:.78rem;color:var(--ink-soft);letter-spacing:.08em;margin-bottom:4px}
.info-row p{font-size:.98rem;color:var(--ink);font-weight:600}
.info-row p.tel{font-size:1.4rem;color:var(--green-700);font-weight:800}
.map-box{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--line);min-height:340px}
.map-box iframe{width:100%;height:100%;min-height:340px;border:0}

.senior-band{background:linear-gradient(135deg,var(--green-800),var(--green-900));color:#fff;border-radius:24px;padding:44px 48px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.senior-band h3{font-size:1.4rem;font-weight:800}
.senior-band p{color:#cfe4d7;margin-top:8px;max-width:520px;font-size:.9rem}
.senior-band .perk{display:flex;gap:22px;margin-top:18px;flex-wrap:wrap}
.senior-band .perk div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:12px 18px;font-size:.82rem}
.senior-band .perk b{display:block;color:var(--gold-light);font-size:1.1rem}

/* ---------- Booking / status page helpers ---------- */
.booking-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:820px;margin:0 auto}
.booking-choice-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:36px 30px;text-align:center;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}
.booking-choice-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.booking-choice-card .ic{width:64px;height:64px;border-radius:50%;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.booking-choice-card h3{font-size:1.15rem;font-weight:800;color:var(--green-800);margin-bottom:8px}
.booking-choice-card p{font-size:.86rem;color:var(--ink-soft);margin-bottom:20px}
.status-note{background:var(--green-100);border-radius:var(--radius);padding:22px 26px;font-size:.88rem;color:var(--green-800);margin-top:32px}

/* ---------- Footer ---------- */
footer{background:var(--green-900);color:#cfe4d7;padding:22px 0}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-logo{color:#fff;flex:none}
.footer-logo img{filter:brightness(0) invert(1)}
.footer-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.footer-nav a{font-size:.8rem;font-weight:600;color:#dfeee6;white-space:nowrap}
.footer-nav a:hover{color:#fff}
.footer-nav a:not(:last-child)::after{content:"/";margin-left:8px;color:#4c6a5a}
.footer-contact{text-align:right;font-size:.78rem;color:#9fc0ab;flex:none}
.footer-contact a{display:block;font-weight:800;font-size:1.05rem;color:#fff;margin-bottom:2px}
.footer-contact .copyright{display:block;margin-top:2px;font-size:.72rem;color:#7fa08d}

/* ---------- Mobile bottom sticky action bar (TOP page only) ---------- */
.mobile-bottom-bar{display:none}

/* ---------- Mobile ---------- */
@media(max-width:920px){
  header .wrap{padding:14px 24px;row-gap:10px}
  .logo img{height:36px}
  .logo-transit{display:none}
  .nav-tel{display:none}
  .header-cta{display:flex;align-items:center;gap:12px;flex:none}

  .hero-media{height:clamp(260px,72vw,380px)}
  .hero-overlay .wrap{padding-top:24px;padding-bottom:24px}
  .hero-overlay h1{font-size:clamp(1.4rem,6vw,1.9rem)}
  .hero-overlay p{font-size:.82rem}
  .hero-info-wrap{display:block;padding-top:16px}
  .hero-info-card{flex-direction:row}
  .hero-info-item{padding:12px 8px;text-align:center}
  .hero-info-item .num{display:none}
  .hero-info-item .row{flex-direction:column;align-items:center;gap:4px}
  .hero-info-item p{font-size:.68rem;line-height:1.4}

  .quick-panel{padding:12px 0 40px}
  .quick-panel-grid{display:none}
  .mobile-cta-stack{display:block}

  /* mobile order: 打席状況/レッスン予約(cta-stack, inside quick-panel) -> お知らせ -> 魅力 -> 施設案内 */
  .top-flow>.quick-panel{order:1}
  .top-flow>.news-preview{order:2}
  .top-flow>.features-section{order:3}
  .top-flow>.facility-section{order:4}

  .footer-row{flex-direction:column;text-align:center}
  .footer-contact{text-align:center}
  .footer-nav{justify-content:center}
  .news-preview{padding:32px 0 8px}
  .facility-section{padding:8px 0 56px}
  .facility-quad{grid-template-columns:repeat(2,1fr);gap:14px}
  .facility-quad img{height:110px}
  .facility-quad figcaption{padding:8px 10px 12px;font-size:.72rem}
  .facility-quad figcaption small{font-size:.66rem}
  .features-section{padding:32px 0 8px}
  .access-top{grid-template-columns:1fr;gap:40px}
  .access-top-col{flex-direction:column}
  .access-top-text{flex:none}
  .access-top-photo img{min-height:200px}

  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .gallery-item.span-2{grid-column:span 2;grid-row:span 1}
  .card-promo{flex-direction:column;align-items:flex-start}
  .card-promo img{width:100%;height:140px}
  .pro-grid{grid-template-columns:1fr}
  .school-grid,.lesson-single,.two-col,.access-grid,.booking-choice-grid{grid-template-columns:1fr}
  .mini-feature-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .mini-feature-grid .ic{width:48px;height:48px;margin-bottom:10px}
  .mini-feature-grid .ic svg{width:22px;height:22px}
  .mini-feature-grid b{font-size:.78rem}
  .mini-feature-grid span{font-size:.68rem;margin-top:3px}

  nav.main-nav{position:fixed;inset:64px 0 0 0;background:var(--cream);flex-direction:column;padding:30px 24px;gap:22px;
    transform:translateX(100%);transition:transform .3s ease;overflow-y:auto}
  nav.main-nav.open{transform:translateX(0)}
  nav.main-nav a{font-size:1.1rem}
  nav.main-nav a:not(:last-child)::before{content:none}
  .hamburger{display:flex}

  body.has-mobile-bar{padding-bottom:64px}
  .mobile-bottom-bar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:99;background:var(--green-900);
    box-shadow:0 -4px 20px rgba(0,0,0,.2);
  }
  .mobile-bottom-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;color:#dfeee6;font-size:.62rem;font-weight:700}
  .mobile-bottom-bar a svg{flex:none}
  .mobile-bottom-bar a.active{background:var(--navy);color:#fff}
}
@media(max-width:600px){
  section{padding:64px 0}
  .senior-band{padding:32px 26px}
}
