/*
Theme Name: そらいろ空手クラブ
Theme URI: https://musubi-group.jp/
Author: Musubi Group
Description: 明るい・元気な雰囲気の空手道場むけテーマ。空色のグラデーションと丸文字、全幅の写真ヒーローが特徴の見本サイト用テーマ。
Version: 3.0
*/

/* =========================================================
   0. 色・書体のもと(ここを変えると全体の色が変わる)
   ========================================================= */
:root{
  --bg:#fbfdff;          /* 背景(うすい空色がかった白) */
  --bg-d:#eaf6fd;        /* 少し濃い下地 */
  --bg-d2:#e4f3fc;       /* さらに濃い下地 */
  --ink:#143c53;         /* 文字の黒 */
  --muted:#3c6b84;       /* 本文の補足 */
  --muted-l:#5c8ba3;     /* もう少し薄い補足 */
  --faint:#7fa6ba;       /* ラベル・キャプション */
  --label:#68b6dd;       /* 見出し上の英字ラベル */
  --sky:#1f86c8;         /* そらいろ(この道場の色) */
  --sky-l:#3fb0e4;       /* 明るい空色(グラデーション用) */
  --sky-p:#eaf6fd;       /* うすい空色の面 */
  --orange:#f0a52a;      /* さし色のオレンジ */
  --white:#fff;
  --round:20px;          /* カードの丸み */
  --wrap:1180px;         /* 中身の最大幅 */
  --font-round:"Zen Maru Gothic","Noto Sans JP",sans-serif; /* 見出しの丸文字 */
  --font-en:"Zen Maru Gothic","Noto Sans JP",sans-serif;    /* 英字ラベルも同じ書体で統一 */
  --font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}

/* =========================================================
   1. 土台
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:2;
  letter-spacing:.02em;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{width:min(100% - 40px,var(--wrap));margin-inline:auto;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
section[id]{scroll-margin-top:96px;}

/* 見出し */
.h-en{font-family:var(--font-en);font-weight:700;font-size:12px;letter-spacing:.3em;color:var(--label);margin:0 0 12px;}
.h-jp{font-family:var(--font-round);font-weight:700;line-height:1.5;letter-spacing:.02em;
  font-size:clamp(26px,3.4vw,40px);margin:0 0 20px;}
.h-jp mark{background:linear-gradient(transparent 60%,rgba(63,176,228,.32) 60%);color:inherit;padding:0 4px;}
.lead{font-size:clamp(15px,1.5vw,16px);line-height:2.05;margin:0 0 24px;color:var(--muted);}
.note{color:var(--faint);font-size:13.5px;}

/* ボタン(丸ピル) */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;text-decoration:none;
  font-family:var(--font-round);font-weight:700;font-size:15px;letter-spacing:.02em;
  padding:16px 34px;border-radius:999px;border:none;cursor:pointer;
  box-shadow:0 14px 28px rgba(31,134,200,.28);transition:transform .15s,box-shadow .15s;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(31,134,200,.34);}
.btn--yellow{background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;}
.btn--ghost{background:#fff;color:var(--sky);box-shadow:0 8px 20px rgba(20,60,83,.08);}
.btn--ghost:hover{color:var(--orange);transform:translateY(-2px);box-shadow:0 10px 22px rgba(20,60,83,.1);}

/* スクロールでふわっと出す */
.fade{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.fade.is-on{opacity:1;transform:none;}

/* 写真がまだ無いときの点線のわく */
.ph{
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-d);border:2px dashed #bcd9ea;color:#7fa6ba;
  font-family:var(--font-round);font-size:14px;letter-spacing:.06em;
  aspect-ratio:3/2;border-radius:18px;
}
.ph--circle{border-radius:50%;aspect-ratio:1/1;}
.ph--hero{aspect-ratio:16/7;border-radius:0;border:none;background:linear-gradient(180deg,#dceffa,#f7fbfe);min-height:380px;}

/* =========================================================
   2. ヘッダー
   ========================================================= */
.hd{
  position:fixed;top:0;left:0;right:0;z-index:9000;
  display:flex;align-items:center;gap:20px;
  padding:14px clamp(16px,3vw,32px);
  background:rgba(251,253,255,.86);backdrop-filter:blur(14px);
  box-shadow:0 2px 14px rgba(20,60,83,.05);
}
.hd__logo{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);}
.hd__mark{width:40px;height:40px;border-radius:50%;background:linear-gradient(150deg,var(--sky-l),var(--sky));
  display:grid;place-items:center;color:#fff;font-family:var(--font-round);font-weight:900;font-size:18px;}
.hd__name{font-family:var(--font-round);font-weight:700;font-size:18px;letter-spacing:.02em;line-height:1.2;}
.hd__name small{display:block;font-family:var(--font-en);font-weight:500;font-size:9.5px;letter-spacing:.2em;color:var(--faint);}
.hd__nav{margin-left:auto;display:flex;align-items:center;gap:clamp(8px,1.1vw,15px);}
.hd__nav a{text-decoration:none;font-size:13.5px;letter-spacing:.01em;white-space:nowrap;color:var(--muted);}
.hd__nav a:hover{color:var(--sky);}
.hd__cta{padding:11px 22px;font-size:13.5px;}
.hd__burger{display:none;margin-left:auto;width:44px;height:44px;border:none;border-radius:50%;
  background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;font-size:20px;cursor:pointer;}

@media(max-width:1280px){
  .hd__nav{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:22px;
    background:var(--bg);transform:translateX(100%);transition:transform .35s;}
  .hd__nav.is-open{transform:none;}
  .hd__nav a{font-size:19px;font-family:var(--font-round);color:var(--ink);}
  .hd__burger{display:block;position:relative;z-index:9100;}
}

/* =========================================================
   3. ヒーロー(全幅の写真+白がけ)
   ========================================================= */
.hero{position:relative;padding-top:76px;min-height:min(92vh,860px);display:flex;align-items:flex-end;
  background:var(--bg-d);overflow:hidden;color:var(--ink);}
.hero__bg{position:absolute;inset:0;}
.hero__bg img{width:100%;height:100%;object-fit:cover;}
/* 白がけ：文字の左余白(5vw)を起点に px でぼかす。5vw+190px までは白100%、5vw+870px で完全に透明。％でなく px なので画面幅が変わっても文字と白の位置関係が崩れない */
.hero__scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(95deg,
    #fff 0px,
    #fff calc(5vw + 190px),
    rgba(255,255,255,.93) calc(5vw + 300px),
    rgba(255,255,255,.78) calc(5vw + 410px),
    rgba(255,255,255,.55) calc(5vw + 520px),
    rgba(255,255,255,.32) calc(5vw + 630px),
    rgba(255,255,255,.13) calc(5vw + 740px),
    rgba(255,255,255,0) calc(5vw + 870px));}
.hero__fade-b{position:absolute;left:0;right:0;bottom:0;height:34%;pointer-events:none;
  background:linear-gradient(to bottom,rgba(251,253,255,0) 0%,rgba(251,253,255,.72) 55%,var(--bg) 100%);}
.hero__in{position:relative;width:100%;padding:clamp(90px,14vh,170px) clamp(20px,5vw,120px) clamp(70px,12vh,120px);}
.hero__box{max-width:600px;
  opacity:0;transform:translateY(14px);animation:heroUp .7s ease .05s forwards;}
.hero__tag{margin:0 0 18px;display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.75);
  border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--sky);}
.hero__tag i{width:7px;height:7px;border-radius:50%;background:var(--orange);display:inline-block;}
.hero__catch{margin:0;font-family:var(--font-round);font-weight:900;font-size:clamp(36px,5.2vw,68px);
  line-height:1.22;letter-spacing:.01em;color:#0f3a52;}
.hero__sub{margin:24px 0 0;font-size:clamp(15px,1.2vw,16.5px);line-height:2;color:var(--muted);max-width:520px;}
.hero__cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;}

@keyframes heroUp{to{opacity:1;transform:none;}}
@media(prefers-reduced-motion: reduce){.hero__box{animation:none;opacity:1;transform:none;}}

/* スマホは横に白場所をとれないので、上が写真・下が白になるように縦のグラデーションに切りかえる */
@media(max-width:820px){
  .hero{min-height:auto;}
  .hero__scrim{background:linear-gradient(to bottom,rgba(255,255,255,.06) 0%,rgba(255,255,255,.18) 30%,rgba(255,255,255,.9) 52%,#fff 66%);}
  .hero__fade-b{display:none;}
  .hero__in{padding:clamp(180px,34vh,300px) 20px 44px;}
  .hero__cta-row .btn{flex:1 1 auto;padding:15px 18px;font-size:14px;}
}

/* =========================================================
   4. セクション共通
   ========================================================= */
.sec{padding:clamp(60px,8vw,108px) 0;}
.sec--wash{background:linear-gradient(to bottom,var(--bg) 0%,#f2fafe 45%,var(--bg-d) 100%);}
.sec--wash2{background:linear-gradient(to bottom,var(--bg-d) 0%,#f4fbfe 60%,var(--bg) 100%);}
.sec--wash3{background:linear-gradient(to bottom,#f7fcff 0%,var(--bg-d) 55%,var(--bg-d2) 100%);}
.sec--wash4{background:linear-gradient(to bottom,var(--bg-d2) 0%,#f2fafe 55%,var(--bg) 100%);}
.sec--white{background:var(--white);}
.sec__head{text-align:center;max-width:640px;margin:0 auto clamp(36px,5vw,58px);}

/* ABOUT: 統計+写真グリッド */
.about{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:clamp(32px,5vw,68px);align-items:center;}
.about__stats{display:flex;flex-wrap:wrap;gap:28px;margin-top:34px;}
.about__stats div{min-width:80px;}
.about__stats b{display:block;font-family:var(--font-round);font-weight:900;font-size:34px;color:var(--sky);line-height:1;}
.about__stats span{display:block;margin-top:6px;font-size:12px;color:var(--faint);letter-spacing:.04em;}
.about__grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:170px 170px;gap:16px;}
.about__grid .tall{grid-row:span 2;}
.about__grid a,.about__grid div{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 16px 36px rgba(20,60,83,.1);}
.about__grid img{width:100%;height:100%;object-fit:cover;}
.about__grid .tall img{object-position:68% 40%;} /* 縦長クロップで右側の子の顔が切れないように寄せる */
@media(max-width:700px){.about__grid{grid-template-rows:140px 140px;}}

/* クラス */
.classes{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px;}
.class{background:var(--white);border-radius:26px;overflow:hidden;box-shadow:0 14px 32px rgba(20,60,83,.08);
  display:flex;flex-direction:column;transition:transform .2s;}
.class:hover{transform:translateY(-4px);}
.class__pic{position:relative;height:158px;}
.class__pic img{width:100%;height:100%;object-fit:cover;}
.class__body{padding:24px 22px 28px;display:flex;flex-direction:column;gap:11px;flex:1;}
.class__age{align-self:flex-start;background:var(--bg-d);color:var(--sky);font-size:11.5px;font-weight:700;
  letter-spacing:.06em;padding:6px 12px;border-radius:999px;}
.class__ttl{font-family:var(--font-round);font-weight:700;font-size:19px;margin:0;}
.class__body p.desc{margin:0;font-size:13.5px;line-height:1.9;color:var(--muted-l);flex:1;}
.class__row{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--faint);}
.class__fee{font-family:var(--font-round);font-weight:700;font-size:17px;color:var(--ink);margin:0;}

/* 稽古日程 */
.schedule-box{max-width:1000px;margin-inline:auto;background:var(--white);border-radius:30px;
  padding:clamp(26px,4vw,50px);box-shadow:0 20px 44px rgba(20,60,83,.08);}
.schedule-box__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:26px;}
.schedule-rows{display:flex;flex-direction:column;gap:10px;}
.schedule-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  background:linear-gradient(100deg,#f4fbfe,var(--bg));border-radius:16px;padding:15px 20px;}
.schedule-row__day{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--sky-l),var(--sky));
  color:#fff;font-family:var(--font-round);font-weight:900;font-size:17px;display:flex;align-items:center;justify-content:center;flex:none;}
.schedule-row__name{font-family:var(--font-round);font-weight:700;font-size:15px;min-width:200px;}
.schedule-row__time{font-size:13.5px;color:var(--muted-l);white-space:nowrap;}
.schedule-row__note{margin-left:auto;font-size:12px;color:var(--faint);}

/* 指導者 */
.instructor{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(30px,5vw,64px);align-items:center;}
.instructor__pic{position:relative;border-radius:28px;overflow:hidden;min-height:380px;box-shadow:0 20px 46px rgba(20,60,83,.12);}
.instructor__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.instructor__sub{margin:0 0 22px;font-size:12.5px;letter-spacing:.1em;color:var(--faint);}
.instructor__tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}
.instructor__tags span{background:rgba(255,255,255,.85);color:var(--sky);font-size:12px;font-weight:700;
  padding:9px 16px;border-radius:999px;}

/* おしらせ */
.news{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;}
.news__item{background:var(--white);border-radius:24px;overflow:hidden;box-shadow:0 14px 32px rgba(20,60,83,.07);
  display:flex;flex-direction:column;color:var(--ink);transition:transform .2s;}
.news__item:hover{transform:translateY(-4px);}
.news__pic{position:relative;height:160px;background:linear-gradient(135deg,var(--sky-l),var(--sky));}
.news__pic img{width:100%;height:100%;object-fit:cover;}
.news__pic.is-ph{display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-round);font-weight:700;font-size:14px;opacity:.85;}
.news__body{padding:20px 22px 26px;display:flex;flex-direction:column;gap:10px;}
.news__meta{display:flex;align-items:center;gap:12px;}
.news__cat{background:var(--orange);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.05em;padding:5px 11px;border-radius:999px;}
.news__date{font-family:var(--font-en);font-size:12px;color:var(--faint);}
.news__ttl{margin:0;font-family:var(--font-round);font-weight:700;font-size:16px;line-height:1.6;}
.news__excerpt{margin:0;font-size:13px;line-height:1.85;color:var(--muted-l);}
/* 体験の申し込み（左＝文字の面／右＝写真。写真を横長に切らないので全身が入る） */
.admission{position:relative;max-width:var(--wrap);width:min(100% - 40px,var(--wrap));margin:0 auto;
  border-radius:34px;overflow:hidden;min-height:380px;
  display:flex;flex-direction:row-reverse;align-items:stretch;
  background:linear-gradient(180deg,#f3faff,#fff);}
.admission__bg{position:relative;flex:0 0 48%;}
.admission__bg img{width:100%;height:100%;object-fit:cover;object-position:center center;}
.admission__scrim{display:none;}
.admission__body{position:relative;flex:1 1 auto;align-self:center;padding:clamp(30px,4.2vw,56px);max-width:none;}
.admission__body h2{margin:0 0 16px;font-family:var(--font-round);font-weight:900;font-size:clamp(24px,3vw,38px);line-height:1.4;color:var(--ink);}
.admission__body p{margin:0 0 26px;font-size:14.5px;line-height:2;color:var(--muted);}
.admission__row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.admission__tel{font-family:var(--font-round);font-weight:700;font-size:18px;color:var(--ink);}
@media(max-width:1100px){
  .admission{flex-direction:column;min-height:0;border-radius:24px;}
  .admission__bg{flex:0 0 auto;width:100%;aspect-ratio:3/2;}
  .admission__body{padding:26px 22px 32px;}
}

/* フォーム */
.form-box{max-width:720px;margin-inline:auto;background:var(--white);border-radius:26px;padding:clamp(24px,4vw,44px);box-shadow:0 16px 40px rgba(20,60,83,.08);}
.form-box input[type=text],.form-box input[type=email],.form-box input[type=tel],.form-box textarea,.form-box select{
  width:100%;padding:12px 14px;border:1px solid #d7e9f3;border-radius:12px;font-family:inherit;font-size:16px;background:var(--bg);}
.form-box .wpcf7-submit{background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;border:none;border-radius:999px;
  font-family:var(--font-round);font-weight:700;font-size:16px;padding:15px 40px;box-shadow:0 12px 26px rgba(31,134,200,.26);cursor:pointer;}
.form-box .wpcf7-submit:hover{transform:translateY(-1px);}
.f-lead{text-align:center;margin:0 0 28px;}
.f-lead p{margin:0;font-size:15px;line-height:1.9;color:var(--muted);}
.f-row{margin:0 0 20px;}
.f-row label{display:block;font-family:var(--font-round);font-size:15px;}
.f-row input,.f-row textarea,.f-row select{margin-top:8px;}
.f-need{display:inline-block;background:var(--orange);color:#fff;font-family:var(--font-body);
  font-size:11px;font-weight:700;letter-spacing:.05em;border-radius:20px;padding:2px 10px;margin-left:6px;vertical-align:2px;}
.f-submit{text-align:center;margin:32px 0 0;}
.f-note{font-size:13px;color:var(--faint);line-height:1.8;margin:20px 0 0;}
.wpcf7-not-valid-tip{color:#d24545;font-size:13px;margin-top:6px;}
.wpcf7-response-output{border-radius:14px;border-width:2px!important;padding:14px 18px!important;
  margin:24px 0 0!important;font-size:14px;}

/* アクセス */
.access{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,4vw,56px);align-items:center;}
.access dl{margin:0;display:flex;flex-direction:column;gap:18px;}
.access dl div{display:flex;gap:18px;align-items:baseline;}
.access dt{min-width:80px;font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--label);}
.access dd{margin:0;font-size:15px;line-height:1.9;color:var(--muted);}
.access iframe{width:100%;height:320px;border:0;border-radius:26px;box-shadow:0 16px 40px rgba(20,60,83,.1);}

/* =========================================================
   5. 下層ページ・記事
   ========================================================= */
.page-head{padding:calc(76px + clamp(40px,6vw,80px)) 0 clamp(30px,5vw,50px);text-align:center;background:var(--bg-d);}
.page-head h1{font-family:var(--font-round);font-weight:700;font-size:clamp(26px,4vw,38px);margin:0;color:var(--ink);}
.entry{max-width:820px;margin:0 auto;padding:clamp(40px,6vw,70px) 0;}
.entry h2{font-family:var(--font-round);font-weight:700;font-size:25px;margin:44px 0 16px;padding-left:14px;border-left:6px solid var(--sky-l);}
.entry h3{font-family:var(--font-round);font-weight:700;font-size:20px;margin:32px 0 12px;}
.entry img{border-radius:18px;margin:20px 0;}
.entry p{margin:0 0 18px;color:var(--muted);}
.entry ul,.entry ol{margin:0 0 18px;padding-left:1.3em;line-height:2;color:var(--muted);}
.entry li{margin-bottom:6px;}
.entry a{color:var(--sky);text-decoration:underline;}

/* 表 */
.sr-table-wrap{overflow-x:auto;margin:0 0 18px;}
.sr-table{width:100%;border-collapse:collapse;background:var(--white);font-size:15px;min-width:520px;border-radius:16px;overflow:hidden;}
.sr-table th,.sr-table td{border-bottom:1px solid #e3f0f8;padding:13px 16px;text-align:left;line-height:1.8;font-weight:400;vertical-align:top;}
.sr-table thead th{background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;font-family:var(--font-round);font-weight:700;letter-spacing:.02em;}
.sr-table th[scope="row"]{background:var(--sky-p);font-family:var(--font-round);font-weight:700;white-space:nowrap;}

/* カード */
.sr-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:0 0 18px;}
.sr-card{background:var(--white);border-radius:20px;padding:24px 22px;box-shadow:0 10px 26px rgba(20,60,83,.06);}
.sr-card h3{margin:0 0 6px;font-family:var(--font-round);font-weight:700;font-size:17px;}
.sr-card .sr-tag{display:inline-block;background:var(--bg-d);color:var(--sky);border-radius:20px;font-size:12px;padding:3px 12px;margin:0 0 10px;}
.sr-card p{font-size:14px;line-height:1.9;margin:0;color:var(--muted-l);}

/* 手順(STEP) */
.sr-steps{list-style:none;margin:0 0 18px;padding:0;counter-reset:srstep;}
.sr-steps li{position:relative;background:var(--white);border-radius:18px;padding:22px 24px 22px 78px;margin-bottom:14px;font-size:15px;line-height:2;color:var(--muted);}
.sr-steps li::before{counter-increment:srstep;content:"STEP " counter(srstep);position:absolute;left:0;top:0;bottom:0;width:64px;
  background:linear-gradient(140deg,var(--sky-l),var(--sky));color:#fff;font-family:var(--font-en);font-weight:600;font-size:11px;letter-spacing:.03em;
  display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.4;border-radius:18px 0 0 18px;}
.sr-steps li b{display:block;font-family:var(--font-round);font-weight:700;font-size:16px;margin-bottom:4px;color:var(--ink);}

/* よくある質問 */
.sr-faq{margin:0 0 18px;}
.sr-faq details{background:var(--white);border-radius:16px;margin-bottom:12px;overflow:hidden;box-shadow:0 8px 20px rgba(20,60,83,.05);}
.sr-faq summary{cursor:pointer;padding:20px 24px 20px 58px;position:relative;font-family:var(--font-round);font-weight:700;
  font-size:15px;line-height:1.7;list-style:none;color:var(--ink);}
.sr-faq summary::-webkit-details-marker{display:none;}
.sr-faq summary::before{content:"Q";position:absolute;left:22px;top:18px;font-family:var(--font-en);font-weight:700;font-size:17px;color:var(--sky);}
.sr-faq .sr-answer{padding:0 24px 22px 58px;position:relative;font-size:14.5px;line-height:2;color:var(--muted-l);}
.sr-faq .sr-answer::before{content:"A";position:absolute;left:22px;top:0;font-family:var(--font-en);font-weight:700;font-size:17px;color:var(--sky-l);}

/* 情報リスト */
.sr-deflist{display:grid;grid-template-columns:auto 1fr;gap:0;background:var(--white);border-radius:18px;overflow:hidden;margin:0 0 18px;}
.sr-deflist dt{background:var(--sky-p);padding:14px 18px;font-family:var(--font-round);font-weight:700;font-size:14px;border-bottom:1px solid #e3f0f8;white-space:nowrap;}
.sr-deflist dd{padding:14px 18px;margin:0;font-size:14.5px;line-height:1.9;border-bottom:1px solid #e3f0f8;color:var(--muted);}
.sr-deflist dt:last-of-type,.sr-deflist dd:last-of-type{border-bottom:none;}
@media(max-width:600px){.sr-deflist{grid-template-columns:1fr;}.sr-deflist dt{border-bottom:none;}}

/* ページ内の「詳しくはこちら」 */
.more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:var(--font-round);font-weight:700;
  font-size:14px;color:var(--sky);text-decoration:none;border-bottom:2px solid var(--sky-l);padding-bottom:2px;}
.more:hover{color:var(--orange);}

/* 稽古風景ギャラリー */
.sr-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:0 0 18px;}
.sr-gallery figure{margin:0;background:var(--white);border-radius:18px;overflow:hidden;}
.sr-gallery img{display:block;width:100%;height:200px;object-fit:cover;cursor:zoom-in;transition:transform .35s ease;border-radius:0;margin:0;}
.sr-gallery figure:hover img{transform:scale(1.06);}
.sr-gallery figcaption{padding:12px 16px;font-size:13px;color:var(--faint);}

/* 拡大表示 */
.sr-lightbox{position:fixed;inset:0;z-index:9500;background:rgba(20,60,83,.92);display:none;align-items:center;justify-content:center;padding:24px;}
.sr-lightbox.is-on{display:flex;}
.sr-lightbox img{max-width:100%;max-height:82vh;object-fit:contain;display:block;border-radius:12px;}
.sr-lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:none;background:rgba(255,255,255,.15);
  color:#fff;font-size:26px;line-height:1;cursor:pointer;border-radius:50%;}

/* =========================================================
   6. フッター
   ========================================================= */
.ft{background:linear-gradient(to bottom,var(--bg-d),#dcf0fb);padding:clamp(46px,6vw,76px) 0 30px;}
.ft__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px;align-items:flex-start;}
.ft__brand{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.ft__nav-head{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--faint);}
.ft__nav{display:flex;flex-direction:column;gap:11px;}
.ft__nav a{text-decoration:none;font-size:13.5px;color:var(--muted);}
.ft__nav a:hover{color:var(--sky);}
.ft__tel{margin:0 0 10px;font-family:var(--font-round);font-weight:700;font-size:21px;color:var(--sky);}
.ft__copy{margin-top:40px;text-align:center;font-size:11.5px;color:var(--faint);letter-spacing:.04em;}

/* ヘッダーの「無料体験」ボタンがハンバーガーに隠れる幅では、下に貼り付くボタンを出す */
.sticky-cta{display:none;}
@media(max-width:1280px){
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:9000;
    background:rgba(251,253,255,.94);padding:10px 14px;box-shadow:0 -2px 12px rgba(20,60,83,.08);}
  .sticky-cta .btn{width:100%;padding:14px;}
  body{padding-bottom:76px;}
}
