/*
Theme Name: ACE Sports Club
Theme URI: https://www.ace-sp1.com/
Author: ACE Sports Club
Description: エーススポーツクラブ公式サイト用オリジナルテーマ。お知らせはカスタム投稿タイプ「news」で管理します。
Version: 1.2.0
Text Domain: ace-sports-club
*/

/* =========================================================
   style.css の役割
   ・テーマの基本（カラー変数・リセット・共通アニメーション）
   ・各ページ独自のセクションCSS（下に「◯◯ページ」ごとにまとめています）
   ・全ページ共通の“部品”は common.css に分けています。
   ========================================================= */

/* ===== 基本：カラー変数 ===== */
:root{
  --c-ink:#14243a; --c-ink-soft:#5b6b7d;
  --c-brand:#0b4da2; --c-brand-dark:#083a7d; --c-accent:#1a8fd6;
  --c-red:#e3211a; --c-red-dark:#b81812;
  --c-bg-soft:#eef4fb; --c-line:#e2e8f0; --c-yellow:#ffe944;
}

/* ===== 基本：リセット ===== */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:#fff;font-family:'Noto Sans JP',sans-serif;color:var(--c-ink);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;}

/* アンカーリンクの上余白（固定ヘッダー分） */
#program,#features,#voice,#flow,#faq,#access,#access-section,#trial,#gym,#pool,#golf,#studio,#facilities,#ganjuu,#price,#course,#courses,#swimming,#gakudo,#bus,#programming{scroll-margin-top:90px;}

/* 共通アニメーション */
@keyframes revealUp{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
@keyframes heroIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}


/* #########################################################
   TOP ページ（front-page.php）
   各セクションごとに区切っています。
   ######################################################### */

/* ===== TOP / HERO（メインビジュアル） ===== */
.top-hero{position:relative;background:linear-gradient(165deg,#ffffff 0%,var(--c-bg-soft) 48%,#e3edf9 100%);overflow:hidden;}
.top-hero__glow-a{position:absolute;top:-140px;right:-90px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,var(--c-accent),transparent 68%);opacity:.13;pointer-events:none;}
.top-hero__glow-b{position:absolute;bottom:-170px;left:-130px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,var(--c-brand),transparent 70%);opacity:.08;pointer-events:none;}
.top-hero__watermark{position:absolute;top:8%;left:-8%;height:calc(92% - 70px);width:44%;max-width:600px;object-fit:contain;object-position:center top;opacity:.05;filter:brightness(0);pointer-events:none;z-index:0;}
.top-hero__inner{position:relative;max-width:1160px;margin:0 auto;padding:70px 28px 78px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:56px;align-items:center;z-index:1;}
.top-hero__copy{animation:heroIn .7s .05s both;container-type:inline-size;}
.top-hero__badges{display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;}
.top-hero__since{background:var(--c-red);color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:12px;letter-spacing:.06em;padding:4px 12px;border-radius:5px;}
.top-hero__cat{font-weight:700;font-size:13px;color:var(--c-brand);letter-spacing:.04em;}
.top-hero__title{font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:clamp(18px,7.2cqw,42px);line-height:1.34;letter-spacing:.01em;margin:0 0 22px;color:var(--c-ink);white-space:nowrap;}
.top-hero__title .is-red{color:var(--c-red);}
.top-hero__title .is-brand{color:var(--c-brand);}
.top-hero__lead{font-size:16px;color:var(--c-ink-soft);line-height:2;margin:0 0 34px;max-width:460px;}
.top-hero__actions{display:flex;gap:14px;flex-wrap:wrap;}
.top-hero__media{animation:heroIn .7s .16s both;position:relative;}
.top-hero__slider{position:relative;width:100%;aspect-ratio:5/6;border-radius:18px;overflow:hidden;border:1px solid var(--c-line);}
.top-hero__dots{position:absolute;bottom:14px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:2;}
.top-hero__stat{position:absolute;bottom:18px;left:-18px;background:var(--c-red);color:#fff;padding:14px 20px;border-radius:12px;box-shadow:0 10px 24px rgba(227,33,26,0.28);text-align:center;}
.top-hero__stat b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:26px;line-height:1;display:block;}
.top-hero__stat b span{font-size:15px;}
.top-hero__stat small{font-size:11px;font-weight:700;margin-top:3px;display:block;}
.top-hero__wave{line-height:0;}
.top-hero__wave svg{width:100%;height:52px;display:block;}

/* ===== TOP / NEWS（お知らせバー） ===== */
.top-news{background:#fff;padding:8px 28px 40px;}
.top-news__bar{max-width:1160px;margin:0 auto;background:var(--c-yellow);border-radius:14px;padding:20px 26px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;}
.top-news__label{display:flex;align-items:center;gap:12px;}
.top-news__label b{font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:18px;color:var(--c-brand-dark);letter-spacing:.04em;}
.top-news__label span{font-weight:900;font-size:14px;color:var(--c-ink);white-space:nowrap;}
.top-news__item{display:flex;align-items:center;gap:16px;min-width:0;}
.top-news__date{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;color:var(--c-ink-soft);white-space:nowrap;}
.top-news__cat{color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;white-space:nowrap;} /* 背景色はカテゴリごとに動的指定 */
.top-news__title{font-size:14px;font-weight:500;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;}
.top-news__more{text-decoration:none;font-size:13px;color:var(--c-brand-dark);font-weight:800;white-space:nowrap;display:inline-flex;align-items:center;}
@media(max-width:640px){
  .top-news__bar{grid-template-columns:1fr;gap:12px;}
  .top-news__title{white-space:normal;}
}

/* ===== TOP / PROGRAM（コース・プログラム） ===== */
.top-program{background:#fff;padding:78px 28px 90px;}
.top-program__tabs{display:flex;max-width:400px;margin:0 auto 42px;background:var(--c-bg-soft);border-radius:11px;padding:5px;gap:5px;}
.top-tab{flex:1;padding:13px;border:none;border-radius:8px;font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:900;cursor:pointer;transition:all .18s;}
.top-program__grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:26px;}
.top-card{background:#fff;border:1px solid var(--c-line);border-radius:14px;overflow:hidden;}
.top-card__img{height:172px;background-position:center;background-size:cover;position:relative;}
.top-card__badge{position:absolute;top:12px;left:12px;color:#fff;font-size:11px;font-weight:700;padding:4px 11px;border-radius:5px;} /* 背景色はカードごとに動的指定 */
.top-card__body{padding:22px;}
.top-card__title{font-family:'Zen Maru Gothic',sans-serif;font-size:19px;font-weight:900;color:var(--c-ink);margin:0 0 8px;}
.top-card__title small{font-size:12px;font-weight:700;color:var(--c-ink-soft);}
.top-card__desc{font-size:13.5px;color:var(--c-ink-soft);line-height:1.85;margin:0 0 14px;}
.top-card__price{font-size:13px;color:var(--c-ink);font-weight:700;}
.top-card__price b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:20px;color:var(--c-red);}
.top-card__price small{font-size:11px;color:var(--c-ink-soft);font-weight:500;}
.top-program__cta{text-align:center;margin-top:42px;}

/* ===== TOP / REASON（選ばれる理由） ===== */
.top-features{position:relative;background:linear-gradient(135deg,var(--c-brand-dark) 0%,var(--c-brand) 100%);padding:96px 28px;overflow:hidden;}
.top-features__skew{position:absolute;top:0;right:10%;width:70px;height:100%;background:var(--c-red);opacity:.14;transform:skewX(-18deg);pointer-events:none;}
.top-features__head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:56px;}
.top-features__lead{font-size:14px;color:rgba(255,255,255,0.72);max-width:340px;line-height:1.85;margin:0;}
.top-features__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));}
.top-features__grid .acesc-feature-col{padding:0 30px;}
.top-features__grid .acesc-feature-col:first-child{padding-left:0;}
.top-features__grid .acesc-feature-col:last-child{padding-right:0;}
.top-features__grid .acesc-feature-col:not(:last-child){border-right:1px solid rgba(255,255,255,0.14);}
.top-feature__num{font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:15px;color:#ffe944;margin-bottom:16px;}
.top-feature__title{font-family:'Zen Maru Gothic',sans-serif;font-size:19px;font-weight:900;color:#fff;margin:0 0 12px;}
.top-feature__body{font-size:13.5px;color:rgba(255,255,255,0.72);line-height:1.9;margin:0;}

/* ===== TOP / GALLERY（施設・レッスン風景） ===== */
.top-gallery{background:#fff;padding:88px 28px;}
.top-gallery__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:140px;gap:12px;}
.top-gallery__item{border-radius:12px;cursor:pointer;background-position:center;background-size:cover;} /* 背景画像は動的指定 */
.top-gallery__item--span{grid-row:span 2;}

/* ===== TOP / VOICE（利用者様の声） ===== */
/* 本体は common.css の .acesc-voice-section / .acesc-voice-* を使用。
   TOP限定の背景透かしロゴのみ下記。 */
.top-voice__watermark{position:absolute;top:-18%;left:-14%;height:160%;width:auto;max-width:760px;object-fit:contain;object-position:left top;opacity:.12;pointer-events:none;z-index:0;}

/* ===== TOP / FLOW（入会までの流れ） ===== */
/* 本体は common.css の .acesc-flow-section / .acesc-step-* を使用。 */

/* ===== TOP / FAQ（よくある質問） ===== */
.top-faq{background:var(--c-bg-soft);padding:88px 28px;}
.top-faq__inner{max-width:860px;margin:0 auto;}
.top-faq__list{display:flex;flex-direction:column;gap:12px;margin-bottom:34px;}
.top-faq__q{display:flex;align-items:center;gap:14px;padding:20px 24px;cursor:pointer;}
.top-faq__qmark{background:var(--c-brand);color:#fff;width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;flex-shrink:0;}
.top-faq__qtext{flex:1;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:16px;color:var(--c-ink);}
.top-faq__sign{width:26px;height:26px;border-radius:50%;background:var(--c-bg-soft);color:var(--c-brand);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;flex-shrink:0;}
.top-faq__a{padding:0 24px 20px 66px;font-size:13.5px;color:var(--c-ink-soft);line-height:1.85;}
.top-faq__cta{text-align:center;}

/* ===== TOP / ACCESS（アクセス） ===== */
/* 本体は common.css の .acesc-access-section / .acesc-access-* を使用。 */


/* #########################################################
   KIDS ページ（page-kids.php）
   ヒーロー/声/流れ/アクセスは common.css の共通クラスを使用。
   下記は子供コース固有のセクションのみ。
   ######################################################### */

/* ===== KIDS / 3つの子供コース（カード） ===== */
.kids-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:24px;}
.kids-course-card{display:block;text-decoration:none;background:#fff;border:1.5px solid var(--c-line);border-radius:18px;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.kids-course-card:hover{box-shadow:0 8px 24px rgba(15,40,70,0.1);transform:translateY(-3px);}
.kids-course-card__img{height:160px;background-position:center;background-size:cover;}
.kids-course-card__body{padding:22px;}
.kids-course-card__title{font-family:'Zen Maru Gothic',sans-serif;font-size:17px;font-weight:900;color:var(--c-ink);margin-bottom:8px;}
.kids-course-card__ext{font-size:10px;background:#3a7d1e;color:#fff;padding:2px 7px;border-radius:3px;vertical-align:middle;}
.kids-course-card__desc{font-size:13px;color:var(--c-ink-soft);line-height:1.85;margin-bottom:14px;}
.kids-course-card__link{display:inline-block;background:var(--c-brand);color:#fff;padding:8px 18px;border-radius:18px;font-size:12px;font-weight:700;}
.kids-course-card__link--green{background:#3a7d1e;}

/* ===== KIDS / 2カラム共通（画像＋テキスト） ===== */
.kids-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:48px;align-items:start;}
.kids-photo{border-radius:18px;overflow:hidden;aspect-ratio:4/3;background-position:center;background-size:cover;}
.kids-lead-title{font-family:'Zen Maru Gothic',sans-serif;font-size:18px;font-weight:900;color:var(--c-ink);margin:0 0 10px;padding-bottom:10px;border-bottom:3px solid var(--c-brand);}
.kids-body{font-size:13.5px;color:var(--c-ink-soft);line-height:1.9;margin:0 0 18px;}

/* ===== KIDS / SWIMMING（タグ・クラス表） ===== */
.kids-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;}
.kids-tag{background:var(--c-brand);color:#fff;font-size:11.5px;font-weight:700;padding:5px 14px;border-radius:20px;}
.kids-class-table{width:100%;border-collapse:collapse;font-size:13px;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(15,40,70,0.08);}
.kids-class-table th{background:var(--c-brand);color:#fff;padding:10px 14px;text-align:left;}
.kids-class-table td{padding:10px 14px;background:#fff;color:var(--c-ink-soft);border-bottom:1px solid var(--c-line);}
.kids-class-table td:first-child{font-weight:700;color:var(--c-ink);}
.kids-class-table tr:last-child td{border-bottom:none;}

/* ===== KIDS / スイミングが選ばれる理由（特徴：画像＋番号＋見出し＋本文の交互レイアウト） ===== */
.kids-feats{display:flex;flex-direction:column;gap:56px;margin-top:8px;}
.kids-feat{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.kids-feat__img{aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:#dde4ed center/cover no-repeat;box-shadow:0 10px 30px rgba(15,40,70,0.14);}
.kids-feat__body{min-width:0;}
.kids-feat__label{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.kids-feat__no{font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:44px;line-height:1;color:var(--c-brand);}
.kids-feat__no::after{content:'';display:block;width:44px;height:4px;border-radius:2px;background:var(--c-red);margin-top:8px;}
.kids-feat__title{font-family:'Zen Maru Gothic',sans-serif;font-size:24px;font-weight:900;color:var(--c-ink);margin:0;}
.kids-feat__text{font-size:14px;color:var(--c-ink-soft);line-height:2;margin:0;}
/* 偶数行は画像を右側に */
.kids-feat:nth-child(even) .kids-feat__img{order:2;}
@media(max-width:768px){
  .kids-feat{grid-template-columns:1fr;gap:20px;}
  .kids-feat:nth-child(even) .kids-feat__img{order:0;}
  .kids-feat__no{font-size:36px;}
  .kids-feat__title{font-size:21px;}
}

/* ===== KIDS / 団体スイミング（チェックリスト） ===== */
.kids-check{list-style:none;padding:0;margin:0;}
.kids-check li{display:flex;align-items:start;gap:12px;padding:12px 0;border-bottom:1px dashed var(--c-line);font-size:13.5px;color:var(--c-ink);}
.kids-check__mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--c-brand);color:#fff;font-size:11px;font-weight:900;flex-shrink:0;margin-top:1px;}

/* ===== KIDS / PROGRAMMING（プログラミング教室カード） ===== */
.kids-prog-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 24px rgba(15,40,70,0.08);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));align-items:stretch;}
.kids-prog-card__img{min-height:300px;background-position:center;background-size:cover;}
.kids-prog-card__body{padding:clamp(28px,4vw,48px);}
.kids-prog-card__badge{display:inline-block;background:#3a7d1e;color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:12px;letter-spacing:.06em;padding:6px 14px;border-radius:7px;margin-bottom:18px;}
.kids-prog-card__title{font-family:'Zen Maru Gothic',sans-serif;font-size:22px;font-weight:900;color:var(--c-ink);margin:0 0 14px;}
.kids-prog-card__desc{font-size:14px;color:var(--c-ink-soft);line-height:1.95;margin:0 0 24px;}
.kids-prog-card__note{font-size:12.5px;color:var(--c-brand);font-weight:700;margin:22px 0 0;}

/* ===== KIDS / PRICE（料金・月謝一覧） ===== */
.kids-price-wrap{overflow-x:auto;}
.kids-price{width:100%;border-collapse:collapse;font-size:14px;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(15,40,70,0.1);}
.kids-price th{background:var(--c-brand);color:#fff;padding:14px 18px;text-align:center;}
.kids-price th:first-child{text-align:left;}
.kids-price td{padding:13px 18px;border-bottom:1px solid var(--c-line);text-align:center;color:var(--c-ink-soft);}
.kids-price td:first-child{text-align:left;font-weight:700;color:var(--c-ink);}
.kids-price td.is-price{font-weight:900;color:var(--c-red);}
.kids-price td.is-note{text-align:left;}
.kids-price tbody tr:nth-child(even) td{background:var(--c-bg-soft);}
.kids-price tbody tr:nth-child(odd) td{background:#fff;}
.kids-price tbody tr:last-child td{border-bottom:none;}
.kids-price__note{font-size:11.5px;color:#8593a3;line-height:1.85;margin-top:14px;}

/* ===== KIDS / BUS ROUTE（送迎バスルート） ===== */
.kids-bus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:40px;align-items:start;}
.kids-bus-photo{border-radius:18px;overflow:hidden;background:#fff center/cover no-repeat;box-shadow:0 4px 24px rgba(15,40,70,0.08);aspect-ratio:4/3;}
.kids-bus-h{font-family:'Zen Maru Gothic',sans-serif;font-size:18px;font-weight:900;color:var(--c-ink);margin:0 0 16px;padding-bottom:10px;border-bottom:3px solid var(--c-brand);}
.kids-bus-h--mt{margin-top:26px;}
.kids-bus-row{font-size:13.5px;line-height:1.9;padding:10px 0;border-bottom:1px dashed var(--c-line);}
.kids-bus-row:last-child{border-bottom:none;}
.kids-bus-row strong{color:var(--c-ink);}
.kids-bus-row span{color:var(--c-ink-soft);}

/* ===== KIDS / セクション余白ユーティリティ ===== */
.kids-sec{padding:88px 28px;}
.kids-sec--soft{background:var(--c-bg-soft);}
.kids-sec--course{padding:80px 28px;}


/* #########################################################
   ADULT ページ（page-adult.php）
   ヒーロー/声/流れ/アクセスは common.css の共通クラスを使用。
   下記は大人コース固有のセクションのみ。
   ######################################################### */

/* ===== ADULT / セクション余白・アクセント文脈 ===== */
.adlt-sec{padding:84px 28px;}
.adlt-sec--soft{background:var(--c-bg-soft);}
.adlt-sec--dark{background:var(--c-ink);}
.adlt-sec--intro{background:#fff;padding:44px 28px 8px;}
.adlt-golf{--acc:#3a7d1e;--acc-dark:#2c611a;}     /* ゴルフ=緑 */
.adlt-senior{--acc:#e8942a;--acc-dark:#c9781c;}   /* シニア=オレンジ */

/* ===== ADULT / セクション英字バッジ（塗り） ===== */
.adlt-badge{display:inline-block;font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:13px;letter-spacing:.08em;line-height:1;padding:7px 16px;border-radius:7px;margin-bottom:14px;color:#fff;background:var(--c-brand-dark);}
.adlt-badge--navy{background:var(--c-brand-dark);}
.adlt-badge--red{background:var(--c-red);}
.adlt-badge--acc{background:var(--acc);}

/* ===== ADULT / INTRO ===== */
.adlt-intro{max-width:900px;margin:0 auto;text-align:center;}
.adlt-intro__lead{font-size:15px;color:var(--c-ink-soft);line-height:2;margin:0 0 22px;}
.adlt-intro__badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.adlt-tag{font-size:12.5px;font-weight:700;padding:8px 18px;border-radius:7px;color:#fff;}
.adlt-tag--navy{background:var(--c-brand-dark);}
.adlt-tag--blue{background:var(--c-brand);}
.adlt-tag--red{background:var(--c-red);}

/* ===== ADULT / 3つの大人コース（カード） ===== */
.adlt-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:24px;}
.adlt-course{display:block;text-decoration:none;background:#fff;border:1px solid var(--c-line);border-left:4px solid var(--acc,var(--c-brand));border-radius:14px;overflow:hidden;box-shadow:0 3px 16px rgba(15,40,70,0.06);}
.adlt-course--golf{--acc:#3a7d1e;}
.adlt-course__img{position:relative;height:180px;background-position:center;background-size:cover;}
.adlt-course__no{position:absolute;bottom:6px;right:16px;font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:56px;color:#fff;opacity:.9;text-shadow:0 2px 10px rgba(0,0,0,.25);}
.adlt-course__body{padding:22px;}
.adlt-course__en{font-family:'Montserrat',sans-serif;font-weight:800;font-style:italic;font-size:12px;letter-spacing:.08em;color:var(--acc,var(--c-brand));margin-bottom:8px;}
.adlt-course__title{font-family:'Zen Maru Gothic',sans-serif;font-size:18px;font-weight:900;color:var(--c-ink);margin:0 0 8px;}
.adlt-course__desc{font-size:13px;color:var(--c-ink-soft);line-height:1.85;margin:0 0 16px;}
.adlt-course__more{display:block;border-top:1px solid var(--c-line);padding-top:14px;font-size:13px;font-weight:800;color:var(--acc,var(--c-brand));}

/* ===== ADULT / サービス2カラム（GYM/POOL/GOLF/FACILITIES/SENIOR共通） ===== */
.adlt-svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:48px;align-items:center;}
.adlt-photo{width:100%;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#dde4ed center/cover no-repeat;box-shadow:0 6px 28px rgba(15,40,70,0.12);position:relative;}
.adlt-photo__cap{position:absolute;left:16px;bottom:14px;color:#fff;font-size:13px;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.5);}
.adlt-svc-title{font-family:'Zen Maru Gothic',sans-serif;font-size:20px;font-weight:900;color:var(--c-ink);margin:0 0 14px;padding-bottom:14px;border-bottom:3px solid var(--c-brand);}
.adlt-svc-title--acc{border-bottom-color:var(--acc);}
.adlt-svc-title--light{color:#fff;border-bottom-color:var(--c-yellow);}
.adlt-svc-body{font-size:14px;color:var(--c-ink-soft);line-height:1.95;margin:0 0 20px;}
.adlt-svc-body--light{color:rgba(255,255,255,0.78);}
.adlt-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;}
.adlt-chip{font-size:11.5px;font-weight:700;padding:6px 15px;border-radius:6px;color:#fff;background:var(--c-brand-dark);}
.adlt-chip--alt{background:var(--c-accent);}
.adlt-chip--acc{background:var(--acc);}
.adlt-chip--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.4);}
.adlt-chip--yellow{background:var(--c-yellow);color:var(--c-ink);font-weight:800;}
.adlt-eq{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:0 24px;padding:0;margin:0;}
.adlt-eq--1col{grid-template-columns:1fr;}
.adlt-eq li{font-size:13px;color:var(--c-ink-soft);padding:9px 0;border-bottom:1px dashed var(--c-line);}
.adlt-note-strong{font-family:'Zen Maru Gothic',sans-serif;font-size:14px;font-weight:900;color:var(--c-ink);margin:0 0 6px;}

/* ===== ADULT / SENIOR 月会費表示 ===== */
.adlt-price-line{font-size:14px;color:var(--c-ink);font-weight:700;}
.adlt-price-line b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:24px;color:var(--c-red);}
.adlt-price-line small{font-size:12px;color:var(--c-ink-soft);font-weight:500;}

/* ===== ADULT / PRICE（会員プラン＋料金表） ===== */
.adlt-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:18px;margin-bottom:26px;}
.adlt-plan{background:#fff;border:1px solid var(--c-line);border-radius:12px;overflow:hidden;box-shadow:0 3px 14px rgba(15,40,70,0.06);}
.adlt-plan__head{background:var(--c-brand);color:#fff;padding:14px 20px;font-family:'Zen Maru Gothic',sans-serif;font-size:14px;font-weight:900;}
.adlt-plan__body{padding:22px;}
.adlt-plan__price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:28px;color:var(--c-ink);line-height:1;}
.adlt-plan__price span{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--c-ink-soft);font-weight:500;}
.adlt-plan__hr{border:none;border-top:1px dashed var(--c-line);margin:14px 0;}
.adlt-plan__detail{font-size:12.5px;color:var(--c-ink-soft);line-height:1.9;}
.adlt-ptable{width:100%;border-collapse:collapse;font-size:13.5px;border-radius:10px;overflow:hidden;box-shadow:0 2px 12px rgba(15,40,70,0.08);}
.adlt-ptable th{background:var(--c-brand-dark);color:#fff;padding:12px 18px;text-align:left;}
.adlt-ptable td{padding:12px 18px;border-bottom:1px solid var(--c-line);color:var(--c-ink-soft);}
.adlt-ptable td:first-child{font-weight:700;color:var(--c-ink);}
.adlt-ptable td.is-price{font-weight:800;color:var(--c-red);}
.adlt-ptable tbody tr:nth-child(even) td{background:var(--c-bg-soft);}
.adlt-ptable tbody tr:nth-child(odd) td{background:#fff;}
.adlt-ptable tbody tr:last-child td{border-bottom:none;}
.adlt-pnote{font-size:11.5px;color:#8593a3;line-height:1.85;margin-top:16px;}

/* ===== ADULT / ヒーロー画像（単体） ===== */
.adlt-hero-photo{width:100%;aspect-ratio:5/4;border-radius:16px;overflow:hidden;background-position:center;background-size:cover;box-shadow:0 12px 40px rgba(0,0,0,0.22);}


/* #########################################################
   COMPANY ページ（page-company.php）
   ヘッダーは common.css の .acesc-pagehead を使用。
   ######################################################### */
/* ===== COMPANY / 会社情報 ===== */
.company-sec{background:#fff;padding:80px 28px;}
.company-inner{max-width:900px;margin:0 auto;}
.company-head{margin-bottom:32px;}
.company-h2{font-family:'Zen Maru Gothic',sans-serif;font-size:26px;font-weight:900;color:var(--c-ink);margin:0;}
.company-table{width:100%;border-collapse:collapse;font-size:14px;}
.company-table tr{border-bottom:1px solid var(--c-line);}
.company-table th{background:var(--c-bg-soft);padding:18px 20px;text-align:left;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;color:var(--c-ink);width:150px;white-space:nowrap;vertical-align:top;}
.company-table td{padding:18px 20px;color:var(--c-ink);line-height:1.85;}
/* ===== COMPANY / ACCESS（中央地図） ===== */
.company-access{background:var(--c-bg-soft);padding:84px 28px;}
.company-access__inner{max-width:900px;margin:0 auto;}
.company-map{border-radius:16px;overflow:hidden;box-shadow:0 4px 24px rgba(15,40,70,0.1);}
.company-map iframe{width:100%;height:420px;border:0;display:block;}
.company-note{font-size:11.5px;color:#8593a3;line-height:1.85;margin-top:16px;}


/* #########################################################
   FAQ ページ（page-faq.php）
   ヘッダーは .acesc-pagehead、アコーディオンは .acesc-faq-* を使用。
   ######################################################### */
.faq-sec{background:#fff;padding:72px 28px 88px;}
.faq-inner{max-width:920px;margin:0 auto;}
.faq-tabs{background:#fff;border:1px solid var(--c-line);border-radius:16px;box-shadow:0 3px 16px rgba(15,40,70,0.06);padding:14px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px;}
/* タブの枠線色・文字色はカテゴリごとに動的指定（PHP/JS） */
.faq-tab{font-family:'Zen Maru Gothic',sans-serif;font-size:14px;font-weight:900;padding:11px 22px;border-radius:30px;cursor:pointer;transition:all .18s;background:#fff;}
.faq-panel{display:none;flex-direction:column;gap:12px;}
.faq-panel.is-active{display:flex;}
.faq-q{display:flex;align-items:center;gap:14px;padding:20px 24px;cursor:pointer;}
.faq-qmark{color:#fff;width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:800;flex-shrink:0;} /* 背景色はカテゴリ色（動的） */
.faq-qtext{flex:1;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:16px;color:var(--c-ink);}
.faq-sign{width:26px;height:26px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;flex-shrink:0;} /* 文字色はカテゴリ色（動的） */
.faq-a{padding:0 24px 20px 66px;font-size:13.5px;color:var(--c-ink-soft);line-height:1.9;}


/* #########################################################
   NEWS ページ（archive-news.php / お知らせ一覧）
   ヘッダーは .acesc-pagehead を使用。
   ######################################################### */
.news-sec{background:#fff;padding:72px 28px 88px;}
.news-inner{max-width:900px;margin:0 auto;}
.news-list{border-top:1px solid var(--c-line);}
.acesc-news-row{display:flex;align-items:center;gap:20px;padding:22px 8px;border-bottom:1px solid var(--c-line);text-decoration:none;transition:background .15s;}
.acesc-news-row:hover{background:var(--c-bg-soft);}
.news-date{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;color:var(--c-ink-soft);white-space:nowrap;}
.news-cat{color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:5px;white-space:nowrap;flex-shrink:0;} /* 背景色はカテゴリ色（動的） */
.news-title{flex:1;min-width:0;font-size:14.5px;color:var(--c-ink);line-height:1.7;}
.acesc-news-row:hover .news-title{color:var(--c-brand);}
.news-empty{color:var(--c-ink-soft);text-align:center;padding:40px 0;}
.news-pager{margin-top:36px;text-align:center;}

/* ===== NEWS / 詳細（single-news.php） ===== */
.news-single-inner{max-width:820px;margin:0 auto;position:relative;z-index:1;}
.news-single-cat{display:inline-block;color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;} /* 背景色はカテゴリ色（動的） */
.news-single-title{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(22px,3.6vw,32px);font-weight:900;color:#fff;margin-top:14px;}
.news-single-date{font-size:13px;color:rgba(255,255,255,0.7);margin-top:8px;}
.news-single-sec{background:#fff;padding:70px 28px;}
.news-single-body{max-width:820px;margin:0 auto;font-size:15px;color:var(--c-ink);line-height:2;}
.news-back{max-width:820px;margin:40px auto 0;}
.news-back a{text-decoration:none;color:var(--c-brand);font-weight:700;font-size:14px;}

/* KIDS / 特長ブロックの上余白 */
.kids-feats-block{margin-top:64px;}


/* #########################################################
   KIDS ページ・遊びデザイン（body.kids-playful でのみ適用）
   ・セクションを「重なる角丸パネル」にして区切りを明確化
   ・ラベルはまるいバッジ、見出し下に手書き風の波線
   ・水玉/バブルの装飾、カードのふわっと動く演出
   ・TOPや他ページには影響しません（.kids-playful 配下のみ）
   ######################################################### */

/* --- セクションを重なる角丸パネルに（区切りを明確に） --- */
.kids-playful .kids-sec{background:#fff;}
.kids-playful .kids-sec--soft{background:var(--c-bg-soft);} /* soft背景を維持（白上書き防止） */
.kids-playful #course,
.kids-playful .kids-sec,
.kids-playful .acesc-access-section,
.kids-playful .acesc-voice-section,
.kids-playful .acesc-flow-section{
  position:relative;
  z-index:1;
  border-top-left-radius:44px;
  border-top-right-radius:44px;
  margin-top:-34px;
  overflow:hidden;
}
/* 最初のセクションはヒーロー波線と重なるので少しだけ */
.kids-playful #course{margin-top:-24px;}

/* --- ラベル（英字）をまるい破線バッジに --- */
.kids-playful .acesc-eyebrow-text{
  display:inline-block;background:#fff;color:var(--c-red);
  border:2px dashed var(--c-red);border-radius:999px;
  padding:5px 18px 6px;box-shadow:0 3px 0 rgba(227,33,26,.12);
}
.kids-playful .acesc-eyebrow-text--yellow{
  background:rgba(255,255,255,.12);color:var(--c-yellow);border-color:var(--c-yellow);box-shadow:none;
}

/* --- 装飾バブル（各セクションにふわっと丸） --- */
.kids-playful .kids-sec::before,
.kids-playful .acesc-flow-section::before{
  content:'';position:absolute;top:-50px;right:-40px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle,rgba(26,143,214,.16),transparent 70%);pointer-events:none;z-index:0;
}
.kids-playful .kids-sec--soft::after{
  content:'';position:absolute;bottom:-60px;left:-50px;width:230px;height:230px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,233,68,.22),transparent 70%);pointer-events:none;z-index:0;
}
/* 中身はバブルより前面に */
.kids-playful .kids-sec > .acesc-container,
.kids-playful .acesc-flow-section > .acesc-container{position:relative;z-index:1;}

/* --- ヒーローにも泡っぽい丸 --- */
.kids-playful .acesc-subhero::before{
  content:'';position:absolute;top:12%;left:6%;width:120px;height:120px;border-radius:50%;
  background:rgba(255,255,255,.08);pointer-events:none;
}
.kids-playful .acesc-subhero::after{
  content:'';position:absolute;bottom:24%;left:2%;width:56px;height:56px;border-radius:50%;
  background:rgba(255,233,68,.18);pointer-events:none;
}

/* --- 3コースカード：まるく、ホバーでぴょこん --- */
.kids-playful .kids-course-card{border-radius:24px;transition:box-shadow .2s,transform .2s;}
.kids-playful .kids-course-card:hover{transform:translateY(-6px) rotate(-1.2deg);}
.kids-playful .kids-course-card__link{border-radius:999px;}
.kids-playful .kids-course-card__img{border-radius:20px 20px 0 0;}

/* --- 特徴：画像を少し傾け、ホバーで動く --- */
.kids-playful .kids-feat__img{transition:transform .25s;box-shadow:0 12px 34px rgba(15,40,70,0.16);}
.kids-playful .kids-feat:hover .kids-feat__img{transform:rotate(1.5deg) scale(1.02);}
.kids-playful .kids-feat__no{color:var(--c-accent);}
.kids-playful .kids-feat__no::after{background:var(--c-yellow);}

/* --- タグ・チェックはまるく元気に --- */
.kids-playful .kids-tag{border-radius:999px;}
.kids-playful .kids-lead-title,
.kids-playful .kids-bus-h{border-bottom-style:dashed;}

/* --- スマホでは重なりを控えめに --- */
@media(max-width:600px){
  .kids-playful #course,
  .kids-playful .kids-sec,
  .kids-playful .acesc-access-section,
  .kids-playful .acesc-voice-section,
  .kids-playful .acesc-flow-section{border-top-left-radius:28px;border-top-right-radius:28px;margin-top:-22px;}
}


/* ===== TOP / HERO スマホ：ラベル→画像→見出し→本文→ボタン、1画面に収める ===== */
@media(max-width:760px){
  .top-hero__inner{display:flex;flex-direction:column;gap:0;padding:40px 20px 40px;}
  .top-hero__copy{display:contents;}
  .top-hero__badges{order:1;margin-bottom:12px;}
  .top-hero__badges{order:1;flex-wrap:wrap;margin-bottom:12px;}
  .top-hero__media{order:2;margin:0 0 18px;width:100%;}
  .top-hero__title{order:3;font-size:clamp(22px,6.4vw,30px);line-height:1.4;margin-bottom:12px;white-space:normal;}
  .top-hero__lead{order:4;font-size:14px;line-height:1.85;margin-bottom:20px;}
  .top-hero__actions{order:5;}
  /* 画像（スライダー）は明示的な高さで潰れ防止 */
  .top-hero__slider{aspect-ratio:auto;width:100%;height:210px;}
  .top-hero__stat{padding:9px 14px;bottom:-10px;left:-4px;}
  .top-hero__stat b{font-size:19px;}
}


/* ===== KIDS / PRICE スマホ最適化（カード型） ===== */
@media(max-width:600px){
  .kids-price-wrap{overflow:visible;}
  .kids-price{box-shadow:none;border-radius:0;font-size:14px;}
  .kids-price thead{display:none;}
  .kids-price tbody,.kids-price tr,.kids-price td{display:block;width:100%;}
  .kids-price tr{background:#fff!important;border:1px solid var(--c-line);border-radius:16px;margin-bottom:14px;overflow:hidden;box-shadow:0 4px 16px rgba(15,40,70,0.07);}
  /* 1列目以外は白背景に統一（PCのストライプ色を打ち消す） */
  .kids-price tbody tr td:not(:first-child){background:#fff!important;}
  /* コース名を見出しバーに（青地・白文字） */
  .kids-price td:first-child{background:var(--c-brand)!important;color:#fff!important;font-weight:900;font-size:15px;padding:14px 18px!important;text-align:left!important;border-top:none!important;}
  /* それ以外はラベル：値の2カラム */
  .kids-price td:not(:first-child){display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:right!important;padding:12px 18px!important;border-top:1px solid var(--c-line);}
  .kids-price td[data-label]::before{content:attr(data-label);font-size:12px;font-weight:700;color:var(--c-ink-soft);text-align:left;}
  .kids-price td.is-price{color:var(--c-red);font-weight:900;}
  /* プログラミング行（注記）は通常表示 */
  .kids-price td.is-note{display:block;text-align:left!important;padding:14px 18px!important;color:var(--c-ink-soft);}
  .kids-price td.is-note::before{content:none;}
}

/* スマホ：kidsヒーローの装飾バブルは非表示（コンテンツと重なるため） */
@media(max-width:600px){
  .kids-playful .acesc-subhero::before,
  .kids-playful .acesc-subhero::after{display:none;}
}
