@charset "UTF-8";

/* ============================================================
   伊藤バレエアカデミー 奈那class
   ------------------------------------------------------------
   カラーパレット定義（ピンクベージュ × アイボリー）

   背景         #FAF6F3   ページの地
   面           #FFFFFF   カード・表
   セクション   #F4D6D0   セクション背景
   罫線         #E6D8D2

   ゴールド     #C8A66B   線・飾り
                #80632C   文字

   文字         #594238   見出し
                #5E4A3F   本文
                #6E594B   補足

   ボタン       #9A6159
   CTA          #574438   背景 / #DFC592 見出し

   ※文字はすべてコントラスト比4.5以上（線・図形は3.0以上）を確保済み。
     色を変えるときは必ず再検証すること。
   ※ダークモードは使用しない。端末の設定に関係なくこの配色で表示する。
     （下の color-scheme: light は、ダークモードの端末でもフォーム部品を
       明るい表示に保つためのもの。消さないこと）
   ※見出しとロゴは Shippori Mincho（700）、本文は Zen Kaku Gothic New（500）。
   ============================================================ */

:root{
  color-scheme: light;

  /* ── 余白：4pxの倍数。「間（ま）」のため広めに取る ── */
  --s1:4px;   --s2:8px;   --s3:12px;  --s4:16px;
  --s5:20px;  --s6:28px;  --s7:36px;  --s8:48px;
  --s9:64px;  --s10:80px; --s11:104px; --s12:128px;

  /* ── 文字サイズ ── */
  --f-display:clamp(26px, 7.2vw, 52px);
  --f-title:clamp(23px, 4.8vw, 34px);
  --f-head:clamp(19px, 2.6vw, 24px);
  --f-sub:17px;
  --f-body:15px;
  --f-small:13px;
  --f-tiny:12px;

  --lh-tight:1.5;
  --lh-normal:1.85;
  --lh-loose:2.15;

  --rad-s:3px; --rad-m:6px; --rad-l:10px;
  --tap:44px;

  /* ── Primary ── */
  --base:#FAF6F3;
  --surface:#FFFFFF;

  /* ── Secondary（ピンクベージュ） ── */
  --nuance:#F4D6D0;
  --nuance-2:#F4D6D0;
  --line:#E6D8D2;

  /* ── Accent（ゴールド） ── */
  --gold:#C8A66B;        /* 線・飾り */
  --gold-deep:#80632C;   /* 文字 */
  --gold-line:#E8DCC4;
  --gold-on:#FFFFFF;
  --silk:linear-gradient(135deg,#9C6560 0%,#9A6159 50%,#8B5248 100%);  /* 白文字とのコントラスト4.5以上を確保（明るい端 #9C6560 で 4.73） */

  /* ── Text ── */
  --ink:#594238;
  --ink-2:#5E4A3F;
  --ink-3:#6E594B;
  --danger:#8E3F34;

  --shadow:0 1px 2px rgba(89,66,56,.05), 0 8px 28px rgba(89,66,56,.06);
  --ease:cubic-bezier(.22,.61,.36,1);

  /* ── 年齢の階段 ── */
  --r1:#FAF0EC; --r1-t:#594238;
  --r2:#F4D6D0; --r2-t:#594238;
  --r3:#F5EBE0; --r3-t:#594238;
  --r4:#E9DBC9; --r4-t:#594238;
  --r5:#8B6A54; --r5-t:#FFFFFF;
  --r6:#574438; --r6-t:#FFFFFF;

  box-sizing:border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

*,*::before,*::after{box-sizing:inherit;}
html{
  -webkit-text-size-adjust:100%;
  scroll-padding-top:calc(env(safe-area-inset-top,0px) + var(--s4));
  scroll-behavior:smooth;
}
body{
  margin:0; background:var(--base); color:var(--ink);
  font-weight:500;
  font-family:'Zen Kaku Gothic New',
              "Hiragino Kaku Gothic ProN","Hiragino Sans",
              "Yu Gothic Medium","Meiryo",system-ui,sans-serif;
  font-size:var(--f-body); line-height:var(--lh-normal);
  -webkit-font-smoothing:antialiased;
}
/* 最上部の絹のようなゴールド */
body::before{content:""; display:block; height:3px; background:var(--silk);}

/* 見出しは明朝体でエレガンスを */
h1,h2,h3,.logo,.age,.cname,.stitle{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN","Yu Mincho",
              "YuMincho","MS PMincho",serif;
  font-weight:700;
}

img{max-width:100%; display:block; height:auto;}
a{color:inherit;}
button{font:inherit;}
:focus-visible{outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:var(--rad-s);}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important; animation:none!important; scroll-behavior:auto!important;}
}

.wrap{max-width:1120px; margin:0 auto; padding-inline:var(--s5);}
@media(min-width:768px){.wrap{padding-inline:var(--s7);}}

/* ── キャンペーン帯 ──
   非実施時は、各HTMLの該当divごと削除してください */
.campaign{
  background:var(--nuance); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:0 var(--s4);
  padding:var(--s3) var(--s5); min-height:48px;
  font-size:var(--f-small); line-height:1.6; text-align:center;
  border-bottom:1px solid var(--gold-line);
}
.campaign-tag{
  flex:0 0 auto; background:var(--ink); color:var(--base);
  font-size:var(--f-tiny); letter-spacing:.16em; font-weight:500;
  padding:3px var(--s4); border-radius:2px;
}
.campaign b{font-weight:700; color:var(--gold-deep);}
/* お知らせの文章そのものが画面の中央に来るよう、3列（左：ラベル／中央：文章／右：空き）で配置 */
.campaign{display:grid; grid-template-columns:1fr auto 1fr; column-gap:var(--s4);}
.campaign-tag{justify-self:end;}
.campaign b{grid-column:2;}
@media(max-width:620px){
  .campaign{font-size:var(--f-tiny); grid-template-columns:1fr; row-gap:var(--s1); padding:var(--s3) var(--s4);}
  .campaign-tag{font-size:10px; padding:2px var(--s3); justify-self:center;}
  .campaign b{grid-column:1;}
}

/* ── ヘッダー ── */
.site-header{padding-block:var(--s5); border-bottom:1px solid var(--gold-line); background:var(--base);}
.hrow{display:flex; justify-content:space-between; align-items:center; gap:var(--s5); flex-wrap:wrap;}
@media(max-width:819px){
  .hrow{flex-wrap:nowrap; gap:var(--s3);}
  .site-header{padding-block:var(--s4);}
}
.logo{
  font-size:clamp(19px,2.2vw,24px); line-height:var(--lh-tight); text-decoration:none;
  letter-spacing:.06em; display:flex; flex-direction:column; justify-content:center;
  min-height:var(--tap);
  color:var(--ink); font-weight:700;
}
@media(max-width:819px){
  /* スマホ：ボタンの分だけ幅が減るので、折り返さない大きさに */
  .logo{font-size:16px; letter-spacing:.02em; white-space:nowrap;}
  .logo span{font-size:10px; letter-spacing:.14em;}
}
@media(max-width:360px){
  .logo{font-size:13.5px; letter-spacing:0;}
  .logo span{font-size:9px; letter-spacing:.08em;}
  .wrap{padding-inline:var(--s5);}
}
.logo span{
  display:block; font-size:clamp(10px,1.1vw,13px); font-weight:400;
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  color:var(--ink-2); letter-spacing:.22em; margin-top:var(--s2);
}
.gnav{display:flex; gap:var(--s1); flex-wrap:wrap; margin-inline:calc(var(--s3) * -1);}
.gnav a{
  display:inline-flex; align-items:center; min-height:var(--tap);
  padding-inline:var(--s3); font-size:var(--f-small); color:var(--ink-2);
  text-decoration:none; border-radius:var(--rad-s);
  transition:color .3s var(--ease);
}
.gnav a:hover{color:var(--gold-deep);}
.gnav a[aria-current="page"]{font-weight:700; color:var(--ink);}

/* ── メニューボタン：スマートフォンのみ表示 ── */
/* メニュー内のInstagram（スマートフォンのみ） */
.gnav .nav-insta{display:none;}

/* 背面の膜はスマートフォンでのみ */
.navveil{display:none;}
@media(max-width:819px){.navveil{display:block;}}

.hamb{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:var(--tap); height:var(--tap); padding:0 10px;
  background:transparent; border:0; cursor:pointer; flex:0 0 auto;
  position:relative; z-index:102;
}
.hamb span{
  display:block; height:1.5px; background:var(--ink); border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s var(--ease);
}
.hamb[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamb[aria-expanded="true"] span:nth-child(2){opacity:0;}
.hamb[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

@media(max-width:819px){
  .hrow{flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:var(--s3);}
  .site-header{position:relative; z-index:102; background:var(--base); padding-block:var(--s4);}
  .hamb{display:flex;}

  /* 右から滑り出すメニュー（背面がうっすら見える） */
  .gnav{
    position:fixed; top:0; right:0; bottom:0; left:auto; z-index:101;
    width:min(82vw, 320px);
    display:flex; flex-direction:column; justify-content:flex-start; gap:0;
    background:var(--base); margin:0;
    padding:calc(env(safe-area-inset-top, 0px) + 84px) 0
            calc(env(safe-area-inset-bottom, 0px) + var(--s7));
    box-shadow:-8px 0 28px rgba(89,66,56,.16);
    transform:translateX(100%); visibility:hidden;
    transition:transform .3s var(--ease), visibility .3s;
    overflow-y:auto;
  }
  .gnav.open{transform:none; visibility:visible;}

  /* 背面を覆う薄い膜 */
  .navveil{
    position:fixed; inset:0; z-index:100;
    background:rgba(89,66,56,.32);
    opacity:0; visibility:hidden;
    transition:opacity .3s var(--ease), visibility .3s;
  }
  .navveil.on{opacity:1; visibility:visible;}

  /* 項目は線で区切る（隙間なし） */
  .gnav a{
    display:flex; align-items:center; justify-content:space-between;
    padding:var(--s5) var(--s6); margin:0;
    font-size:16px; color:var(--ink); letter-spacing:.04em; line-height:1.5;
    background:var(--surface); border:0;
    border-bottom:1px solid var(--gold-line); border-radius:0; min-height:58px;
  }
  .gnav a:first-of-type{border-top:1px solid var(--gold-line);}
  .gnav a::after{
    content:"›"; color:var(--gold-deep); font-size:18px;
    margin-left:var(--s4); flex:0 0 auto;
  }
  .gnav a[aria-current="page"]{
    background:var(--nuance); color:var(--gold-deep); font-weight:700;
  }

  /* メニュー末尾のInstagram */
  .gnav .nav-insta{
    display:flex; align-items:center; gap:var(--s5);
    margin-top:0; padding:var(--s5) var(--s6);
    background:var(--nuance-2); border-top:1px solid var(--gold-line);
    text-decoration:none; min-height:64px;
  }
  .nav-insta::after{content:none;}
  .nav-insta img{width:34px; height:34px; flex:0 0 auto;}
  .nav-insta b{
    display:block; font-size:var(--f-body); font-weight:700;
    color:var(--ink); letter-spacing:.06em;
  }
  .nav-insta small{
    display:block; font-size:var(--f-small); color:var(--ink-2);
    margin-top:2px; line-height:1.6;
  }

  body.navopen{overflow:hidden;}

  /* ロゴはボタンの分だけ幅が減るので、折り返さない大きさに */
  .logo{font-size:16px; letter-spacing:.02em; white-space:nowrap;}
  .logo span{font-size:10px; letter-spacing:.14em;}
}
@media(max-width:360px){
  .logo{font-size:13.5px; letter-spacing:0;}
  .logo span{font-size:9px; letter-spacing:.08em;}
  .hamb{padding:0 4px; width:40px;}
}

/* ── ページ見出し ── */
.pagehead{padding-block:var(--s9) 0; margin-bottom:var(--s9);}
.pagehead h1{font-size:var(--f-title); line-height:var(--lh-tight); margin:0; letter-spacing:.02em;}
.pagehead h1 + p{margin-top:var(--s4);}
.pagehead p{margin:0; font-size:var(--f-body); color:var(--ink-2); line-height:var(--lh-loose);}

/* ── セクション ── */
section{padding-block:var(--s11);}
/* 上に余白を持つ要素の直後は、セクションの上余白を詰める */
.pagehead + section{padding-top:0;}   /* 下層ページ：見出しの直後 */
#first{padding-top:var(--s10);}        /* トップ：お知らせ帯の直後 */
.stitle{font-size:var(--f-head); margin:0 0 var(--s4); line-height:var(--lh-tight); letter-spacing:.02em;}

/* 見出しの上に添える英字ラベル（ダスティローズの線つき） */
.eyebrow{
  display:flex; align-items:center; gap:var(--s5);
  font-size:var(--f-tiny); letter-spacing:.3em; color:#8E5751;
  margin:0 0 var(--s4);
}
.eyebrow::after{content:""; height:1px; flex:0 0 clamp(40px,10vw,120px); background:#C9918C;}
/* 英字ラベルの直後が本文のときは、少し余白を空ける */
.eyebrow + .sdesc{margin-top:var(--s2);}
/* 英字ラベルを持つ見出しは、少し大きく明朝で */
.eyebrow + .stitle{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(26px,5.4vw,42px); font-weight:600;
  letter-spacing:.08em; line-height:1.4; margin-bottom:var(--s5);
}
.sdesc{font-size:var(--f-body); color:var(--ink-2); margin:0 0 var(--s8); line-height:var(--lh-loose);}

/* セクション内の小見出し */
.h3{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:var(--f-sub); font-weight:600; color:var(--ink);
  letter-spacing:.08em; margin:var(--s9) 0 var(--s5);
  padding-bottom:var(--s3); border-bottom:1px solid var(--gold-line);
}
.stitle + .h3, .sdesc + .h3{margin-top:var(--s7);}


/* ── ボタン ── */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:var(--tap); padding:var(--s4) var(--s9);
  background:var(--silk); color:var(--gold-on); text-decoration:none;
  font-size:var(--f-body); font-weight:700; border:0; cursor:pointer;
  border-radius:2px; box-shadow:var(--shadow);
  letter-spacing:.12em;
  transition:opacity .45s var(--ease), transform .3s var(--ease), box-shadow .45s var(--ease);
}
.btn:hover{opacity:.82; box-shadow:0 2px 4px rgba(61,53,46,.06), 0 10px 32px rgba(184,153,111,.22);}
.btn:active{transform:translateY(1px); opacity:.92;}
.btn-ghost{
  background:transparent; background-image:none; color:var(--ink);
  border:1px solid var(--gold); box-shadow:none;
}
.btn-ghost:hover{opacity:.7; background:var(--nuance);}
.sub{font-size:var(--f-small); color:var(--ink-3); margin-top:var(--s4); line-height:var(--lh-normal);}

/* ── 写真プレースホルダ（本番では <img> に差し替え） ── */
.ph{
  position:relative; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:var(--s5); border-radius:var(--rad-m);
  background:linear-gradient(160deg,#FBF4F2,#F4E9E6 60%,#EFE3DF); border:0;
  color:#A2938B; font-size:var(--f-tiny); letter-spacing:.1em; line-height:var(--lh-normal);
}
.ph::after{content:attr(data-label); white-space:pre-line;}

/* ── ヒーロー ── */
.hero{display:grid; grid-template-columns:1fr; padding-block:0;}
.hero-text{padding:var(--s8) var(--s5) var(--s7);}
@media(min-width:768px){.hero-text{padding-inline:var(--s7);}}
@media(min-width:1080px){
  /* 左：文章（本文の左端に揃える）／右：画面の右半分を写真で埋める */
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; min-height:560px;}
  .hero-text{
    align-self:center;
    padding-block:var(--s9);
    padding-left:max(var(--s7), calc((100vw - 1120px) / 2 + var(--s7)));
    padding-right:var(--s8);
  }
  .hero .hero-text h1{font-size:clamp(36px, 4vw, 46px);}
}
.hero h1{font-size:var(--f-display); line-height:var(--lh-tight); margin:0 0 var(--s6); letter-spacing:.01em;}
/* 見出しの折り返し：意図した位置だけで改行し、句の途中では折り返さない */
.nw{display:block; white-space:nowrap;}
/* 幅が足りないときは自然に折り返す（リード文の3行） */
@media(max-width:420px){
  .lede .nw{white-space:normal; display:inline;}
}
@media(max-width:360px){
  /* 極端に狭い画面では、はみ出すより折り返す方を優先 */
  .nw{white-space:normal;}
}
.lede{font-size:var(--f-body); line-height:var(--lh-loose); color:var(--ink-2); margin:0 0 var(--s5); max-width:32em;}
/* 教室の所在地と歴史：1行で収める */
.lede-sub{
  font-size:clamp(11px,1.25vw,14px); line-height:var(--lh-normal); color:var(--ink-2);
  margin:0 0 var(--s8); white-space:nowrap; letter-spacing:.01em;
}
@media(max-width:820px){
  /* 1カラムになる幅では画面いっぱい使えるので余裕がある */
  .lede-sub{font-size:clamp(12px,3.2vw,15px);}
}
@media(max-width:540px){.lede-sub{white-space:normal; font-size:var(--f-small);}}
/* メイン写真（スライドショー）
   スマホ：文章の下に横長で表示／パソコン：右半分を埋める */
.heroslides{
  position:relative; overflow:hidden;
  width:calc(100% - 2 * var(--s5)); margin:0 var(--s5) var(--s8);
  aspect-ratio:4/3; border-radius:var(--rad-m); background:#3a3340;
}
@media(min-width:768px){.heroslides{width:calc(100% - 2 * var(--s7)); margin-inline:var(--s7);}}
.heroslides img{
  position:absolute; inset:0; width:100%; height:100%; max-width:none;
  object-fit:cover; object-position:var(--pos-sp, 50% 50%);
  opacity:0; transition:opacity 2s ease;
  transform-origin:50% 60%;
  animation:heroZoom 10s linear forwards; animation-play-state:paused;
}
.heroslides img.is-on{opacity:1; animation-play-state:running;}
.heroslides img.is-leaving{animation-play-state:running;}
@keyframes heroZoom{from{transform:scale(1);} to{transform:scale(1.06);}}
@media(prefers-reduced-motion: reduce){
  .heroslides img{animation:none; transition:none;}
}
@media(min-width:1080px){
  .heroslides{width:100%; height:100%; margin:0; aspect-ratio:auto; border-radius:0;}
  .heroslides img{object-position:var(--pos-pc, 50% 50%);}
}

/* ── 年齢の階段 ── */
.ladder{display:grid; gap:0; border-radius:var(--rad-m); overflow:hidden; border:1px solid var(--gold-line);}
.rung{
  display:grid; grid-template-columns:112px 1fr; align-items:center;
  gap:var(--s5); padding:var(--s6) var(--s5);
  border-bottom:1px solid var(--gold-line);
}
.rung:last-child{border-bottom:0;}
@media(max-width:420px){.rung{grid-template-columns:84px 1fr; gap:var(--s3); padding:var(--s5) var(--s4);}}
.age{font-size:var(--f-sub); line-height:var(--lh-tight); letter-spacing:.02em;}
.age small{display:block; font-size:var(--f-tiny); font-family:system-ui,sans-serif; font-weight:400; opacity:.72; margin-top:var(--s1);}
.cname{font-size:var(--f-body); font-weight:600;}
.cnote{font-size:var(--f-small); margin-top:var(--s1); line-height:var(--lh-normal); opacity:.85; font-family:system-ui,sans-serif;}
.r1{background:var(--r1); color:var(--r1-t);}
.r2{background:var(--r2); color:var(--r2-t);}
.r3{background:var(--r3); color:var(--r3-t);}
.r4{background:var(--r4); color:var(--r4-t);}
.r5{background:var(--r5); color:var(--r5-t);}
.r6{background:var(--r6); color:var(--r6-t);}
.r5 .cnote,.r6 .cnote{opacity:.95;}

.branch{
  margin-top:var(--s6); padding:var(--s6);
  background:var(--surface); border:1px solid var(--line);
  border-left:2px solid var(--gold); border-radius:var(--rad-m);
}
.branch b{font-size:var(--f-sub);}
.branch p{margin:var(--s2) 0 0; font-size:var(--f-small); color:var(--ink-2); line-height:var(--lh-normal);}
.note{
  margin-top:var(--s6); font-size:var(--f-body); background:var(--nuance); color:var(--ink);
  padding:var(--s6); line-height:var(--lh-normal); border-radius:var(--rad-m);
  border-left:2px solid var(--gold);
}
/* 枠で囲まない補足（階段のすぐ下など） */
.lead-note{
  margin:var(--s5) 0 0; font-size:var(--f-small); color:var(--ink-2);
  line-height:var(--lh-normal);
}

/* ── 3カラム ── */
.three{display:grid; gap:var(--s8); grid-template-columns:1fr;}
@media(min-width:780px){
  /* 区切り線は余白の中央に描き、3枚の幅を完全に揃える */
  .three{grid-template-columns:repeat(3,1fr); gap:var(--s9);}
  .three > .fcard{position:relative;}
  .three > .fcard + .fcard::before{
    content:""; position:absolute; top:0; bottom:0;
    left:calc(var(--s9) / -2); width:1px; background:var(--gold-line);
  }
}
.three h3{
  margin:0 0 var(--s4); line-height:var(--lh-tight);
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(18px,2.6vw,22px); font-weight:600; letter-spacing:.04em; color:var(--ink);
}
.three p{margin:0; font-size:var(--f-small); line-height:var(--lh-loose); color:var(--ink-2);}
.bar{width:56px; height:1px; background:var(--gold); margin-bottom:var(--s5);}

/* はじめての方へ：アイコン付きカード */
.fcard{display:flex; flex-direction:column;}

/* スマホ：アイコンと見出しを横に並べる */
@media(max-width:779px){
  .fcard{display:grid; grid-template-columns:auto 1fr; column-gap:var(--s5); align-items:center;}
  .fcard .ficon{grid-column:1; grid-row:1; margin:0; width:56px; height:56px;}
  .fcard h3{grid-column:2; grid-row:1; margin:0;}
  .fcard p{grid-column:1 / 3; grid-row:2; margin-top:var(--s4);}
  .fcard .fph{grid-column:1 / 3; grid-row:3;}
}
@media(max-width:360px){
  .fcard .ficon{width:48px; height:48px;}
  .fcard h3{font-size:17px;}
}
.ficon{
  display:block; width:72px; height:72px; border-radius:50%;
  margin:0 0 var(--s5); object-fit:cover;
}
/* 説明文の長さが違っても、写真の上端が揃うようにする */
.fcard p{flex:1 0 auto;}
/* 写真は3枚とも同じ大きさに固定 */
.fph{
  aspect-ratio:16/10; border-radius:6px; border:0;
  margin-top:var(--s6); width:100%; flex:0 0 auto;
}

/* ── 2カラム ── */
.duo{display:grid; gap:var(--s8); grid-template-columns:1fr;}
@media(min-width:820px){.duo{grid-template-columns:1fr 1.2fr; gap:var(--s10); align-items:start;}}
.duo-even{display:grid; gap:var(--s7); grid-template-columns:1fr;}
@media(min-width:820px){.duo-even{grid-template-columns:1fr 1fr; gap:var(--s9);}}

/* ── 表 ── */
.tbl{width:100%; border-collapse:collapse; font-size:var(--f-body);}
.tbl th,.tbl td{border-bottom:1px solid var(--gold-line); padding:var(--s5) var(--s2); text-align:left; vertical-align:top;}
.tbl th{font-weight:700; width:44%; color:var(--ink);}
.tbl td{color:var(--ink-2);}
.tbl caption{
  text-align:left; font-size:var(--f-sub); color:var(--ink);
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif; font-weight:600;
  padding:0 0 var(--s4) var(--s4); border-left:2px solid var(--gold); margin-bottom:var(--s3);
}
.scroller{overflow-x:auto; -webkit-overflow-scrolling:touch;}
.scroller .tbl{min-width:640px;}

/* ── 行リスト ── */
.rowlist{border-top:1px solid var(--gold-line);}
.rowlist>div{
  display:flex; justify-content:space-between; gap:var(--s5);
  padding:var(--s5) var(--s1); border-bottom:1px solid var(--gold-line);
  font-size:var(--f-body); min-height:var(--tap); align-items:center;
}
.rowlist>div b{font-weight:500; color:var(--ink);}
/* 長い項目名を1行で見せたいとき */
.rowlist>div b.nw1{white-space:nowrap;}
@media(max-width:560px){
  .rowlist>div b.nw1{font-size:var(--f-small);}
}
@media(max-width:400px){
  .rowlist>div b.nw1{white-space:normal;}
}
.rowlist>div span{color:var(--ink-2); text-align:right; font-size:var(--f-small);}

/* ── 体験レッスンの帯 ── */
.trial{
  background:var(--nuance); padding-block:var(--s11);
  border-top:1px solid var(--gold-line); border-bottom:1px solid var(--gold-line);
}
.bring{margin-top:var(--s7); font-size:var(--f-small); line-height:var(--lh-loose); color:var(--ink-2);}
.bring b{display:block; color:var(--ink); font-size:var(--f-sub); margin-bottom:var(--s3);
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;}

/* ── 講師 ── */
.teachimg{aspect-ratio:3/4; object-fit:cover; width:100%; height:auto; border-radius:3px;}
@media(max-width:819px){.teachimg{aspect-ratio:4/3; max-height:320px;}}
/* 講師セクション：左に小さめの写真、右に名前 */
#teacher .duo{align-items:center;}
@media(min-width:820px){
  #teacher .duo{grid-template-columns:260px 1fr; gap:var(--s9);}
}
@media(min-width:820px) and (max-width:1000px){
  #teacher .duo{grid-template-columns:210px 1fr; gap:var(--s8);}
}
@media(max-width:819px){
  #teacher .teachimg{max-width:320px;}
}
.prof{border-top:1px solid var(--gold-line); padding-top:var(--s8); margin-top:var(--s8);}
.prof h3{margin:0 0 var(--s1); font-size:var(--f-sub);}
.prof .en{font-size:var(--f-tiny); color:var(--ink-3); letter-spacing:.2em; margin:0 0 var(--s5); font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;}
.prof ul{margin:0; padding-left:var(--s5); font-size:var(--f-small); color:var(--ink-2); line-height:var(--lh-loose);}
.prof ul li{margin-bottom:var(--s1);}
details.more{margin-top:var(--s5);}
details.more summary{
  cursor:pointer; font-size:var(--f-small); color:var(--gold-deep); font-weight:700;
  min-height:var(--tap); display:flex; align-items:center;
  transition:opacity .3s var(--ease);
}
details.more summary:hover{opacity:.7;}
details.more[open] summary{margin-bottom:var(--s4);}


/* トップページの講師名 */
.tnames{display:flex; flex-direction:column; justify-content:center; height:100%;}
.tnames ul{list-style:none; margin:0 0 var(--s8); padding:0;}
.tnames li{
  display:flex; align-items:baseline; gap:var(--s5); flex-wrap:wrap;
  padding:var(--s5) 0; border-bottom:1px solid var(--gold-line);
}
.tnames li:first-child{border-top:1px solid var(--gold-line);}
.tnames b{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(19px,2.8vw,24px); font-weight:600; color:var(--ink); letter-spacing:.14em;
}
.tnames span{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif; font-size:var(--f-tiny); color:var(--ink-3); letter-spacing:.2em;
}


/* 講師の役職ラベル（英字＋日本語） */
.rolelabel{
  display:flex; align-items:center; gap:var(--s5);
  font-size:var(--f-small); letter-spacing:.14em; color:#8E5751;
  margin:0 0 var(--s6);
}
.rolelabel::after{content:""; height:1px; flex:1 1 auto; max-width:200px; background:#C9918C;}


/* ── 特別クラス A / B ── */
.spgrid{display:grid; gap:var(--s5); grid-template-columns:1fr;}
@media(min-width:720px){.spgrid{grid-template-columns:1fr 1fr; gap:var(--s6);}}
.spcard{
  background:var(--surface); border:1px solid var(--gold-line);
  border-radius:4px; overflow:hidden;
}
.spcard-ph{aspect-ratio:16/10; border:0; border-radius:0;}
img.spcard-ph{display:block; width:100%; height:auto; object-fit:cover;}
.spcard-txt{padding:var(--s6);}
.spcard b{
  display:block; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(17px,2.6vw,21px); font-weight:600; color:var(--ink);
  letter-spacing:.08em; margin:var(--s3) 0 var(--s1);
}
.sptarget{display:block; font-size:var(--f-small); color:var(--ink-2); margin-bottom:var(--s5);}
.spcard-txt .splabel{margin-bottom:var(--s3);}
.splabel{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  background:var(--ink); color:var(--base); margin:0;
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:19px; font-weight:600; letter-spacing:0;
}
.splabel.wide{
  width:auto; height:auto; border-radius:2px; padding:5px var(--s5);
  font-size:var(--f-small); letter-spacing:.14em;
}
.spboth{
  margin-top:var(--s6); background:var(--nuance);
  border-radius:4px; padding:var(--s7) var(--s6);
}

/* A・B 合同クラス（写真付き） */
.spboth-cols{display:grid; gap:var(--s5); grid-template-columns:1fr; margin-top:var(--s6);}
@media(min-width:620px){.spboth-cols{grid-template-columns:1fr 1fr; gap:var(--s6);}}
.spitem{background:var(--surface); border:1px solid var(--gold-line); border-radius:4px; overflow:hidden;}
.spitem-ph{aspect-ratio:16/10; border:0; border-radius:0;}
.spitem-txt{padding:var(--s5) var(--s6) var(--s6);}
.spitem-day{
  display:flex; align-items:center; gap:var(--s3); margin:0 0 var(--s3);
  font-size:var(--f-small); color:var(--ink-2);
}
.spitem b{
  display:block; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:var(--f-sub); font-weight:600; color:var(--ink); letter-spacing:.06em;
}
.spitem small{
  display:block; font-size:var(--f-small); color:var(--ink-2);
  margin-top:var(--s2); line-height:1.9;
}

.spboth .rowlist{margin-top:var(--s5); border-top-color:var(--gold-line);}
.spboth .rowlist > div{border-bottom-color:var(--gold-line);}

/* ── アクセス ── */
/* Googleマップ */
.mapwrap{
  position:relative; aspect-ratio:16/10; border-radius:4px; overflow:hidden;
  background:var(--nuance); border:1px solid var(--gold-line);
}
.mapwrap iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0; display:block;
}
@media(max-width:700px){.mapwrap{aspect-ratio:4/3;}}
.adr{font-size:var(--f-body); line-height:var(--lh-loose); color:var(--ink-2);}
.adr strong{color:var(--ink);}
.tip{
  margin-top:var(--s6); padding:var(--s5) var(--s6); background:var(--surface);
  border:1px solid var(--line); border-radius:var(--rad-m);
  font-size:var(--f-small); line-height:var(--lh-normal);
}


/* ── お申し込み前の注意事項（表形式） ── */
.notice{
  border:1px solid var(--gold-line); border-radius:4px; overflow:hidden;
  background:var(--surface); margin-bottom:var(--s8);
}
.notice-row{
  display:grid; grid-template-columns:200px 1fr; align-items:stretch;
  border-bottom:1px solid var(--gold-line);
}
.notice-row:last-child{border-bottom:0;}
.notice-key{
  background:var(--nuance); padding:var(--s6) var(--s5);
  display:flex; align-items:center;
  font-size:var(--f-body); color:var(--ink); letter-spacing:.04em;
}
.notice-val{padding:var(--s6); font-size:var(--f-body); color:var(--ink); line-height:1.9;}
.notice-val b{display:block; font-weight:700; margin-bottom:var(--s2);}
.notice-val small{display:block; font-size:var(--f-small); color:var(--ink-2); margin-top:var(--s1);}
.notice-val .fee{display:flex; justify-content:space-between; gap:var(--s5); max-width:28em; padding:var(--s1) 0;}
@media(max-width:700px){
  .notice-row{grid-template-columns:1fr;}
  .notice-key{padding:var(--s4) var(--s5); font-size:var(--f-small); font-weight:700;}
  .notice-val{padding:var(--s5);}
}

/* 持ち物のアイコン3つ */
.bring3{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s5);}
.bring3 > div{display:flex; align-items:center; gap:var(--s4); position:relative;}
.bring3 > div + div::before{
  content:""; position:absolute; top:0; bottom:0;
  left:calc(var(--s5) / -2); width:1px; background:var(--gold-line);
}
@media(max-width:620px){
  .bring3{gap:var(--s4);}
  .bring3 > div{flex-direction:column; text-align:center; gap:var(--s3);}
  .bring3 img{width:44px; height:44px;}
  .bring3 b{font-size:var(--f-tiny);}
  .bring3 small{font-size:10px;}
}
.bring3 img{width:54px; height:54px; border-radius:50%; flex:0 0 auto; display:block;}
.bring3 > div > span{display:block;}
.bring3 b{display:block; font-size:var(--f-small); font-weight:700; color:var(--ink); line-height:1.6;}
.bring3 small{display:block; font-size:var(--f-tiny); color:var(--ink-2); margin-top:2px; line-height:1.6;}


/* ============================================================
   料金
   ============================================================ */
.price{--p-amt:#9B3340; --p-line:#E8D9CD;}

/* 項目名（左）＋内容（右） */
.price-row{display:grid; gap:var(--s4); grid-template-columns:1fr; margin-bottom:var(--s8);}
@media(min-width:820px){
  .price-row{grid-template-columns:200px 1fr; gap:var(--s6); align-items:center;}
}
.price-ttl{margin:0;}
.price-ttl b{
  display:block; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(18px,2.8vw,23px); font-weight:600; color:var(--ink); letter-spacing:.08em;
}
.price-ttl small{
  display:block; font-size:var(--f-tiny); color:var(--ink-3);
  letter-spacing:.2em; margin-top:2px;
}

/* 入会金・維持費・ピラティス：ラベル＋金額のペア */
.pbox{display:grid; gap:var(--s4); grid-template-columns:1fr;}
@media(min-width:560px){.pbox{grid-template-columns:1fr 1fr;}}
.pbox > div{
  display:grid; grid-template-columns:148px 1fr; align-items:stretch;
  border:1px solid var(--p-line); border-radius:3px; overflow:hidden;
  min-height:62px;
}
@media(max-width:430px){
  .pbox > div{grid-template-columns:136px 1fr;}
  .pbox dt{padding-inline:var(--s4); font-size:var(--f-tiny);}
}
.pbox dt{
  margin:0; padding:0 var(--s6); background:var(--nuance);
  font-size:var(--f-small); color:var(--ink); white-space:nowrap;
  display:flex; align-items:center;
}
.pbox dd{
  margin:0; padding:0 var(--s6); background:var(--surface);
  display:flex; align-items:center; justify-content:flex-end; gap:var(--s3);
  flex-wrap:wrap; row-gap:2px;
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(19px,2.8vw,24px); font-weight:600; color:var(--p-amt);
  line-height:1.2;
}
.pbox dd small{font-size:var(--f-small); margin-left:1px;}
.pbox dd .per{
  font-family:'Zen Kaku Gothic New',system-ui,sans-serif;
  font-size:var(--f-tiny); color:var(--ink-3); font-weight:400;
}

/* 月謝の表（狭い画面は横スクロール） */
.ptable-wrap{overflow:visible;}
.ptable{
  border:1px solid var(--p-line); border-radius:3px; overflow:hidden;
  background:var(--surface);
}
.pt-head,.pt-row{display:grid; grid-template-columns:minmax(0,2fr) .75fr 1.1fr 1.1fr 1.1fr; align-items:center;}
.pt-head{background:#F6E7E9; font-size:var(--f-small); color:var(--ink);}
.pt-head span{padding:var(--s5) var(--s4); text-align:center;}
.pt-head span:first-child{text-align:left; padding-left:var(--s6);}
.pt-row{border-top:1px solid var(--p-line);}
.pt-row span{
  padding:var(--s5) var(--s4); text-align:center; white-space:nowrap;
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(19px,2.8vw,24px); color:var(--p-amt); font-weight:600;
}
.pt-row span small{font-size:var(--f-small); margin-left:1px;}
.pt-row .pt-name,.pt-row .pt-min{
  font-family:'Zen Kaku Gothic New',system-ui,sans-serif;
  font-size:var(--f-body); color:var(--ink); font-weight:400;
}
.pt-row .pt-name{text-align:left; padding-left:var(--s6); white-space:nowrap; letter-spacing:0;}
.pt-row .pt-x{color:var(--ink-3); opacity:.55; font-size:var(--f-body);}
/* ── スマートフォン：表をクラスごとのカードに組み替える ── */
@media(max-width:860px){
  .pt-head{display:none;}
  .pt-row{
    display:block; padding:var(--s5) var(--s6);
    border-top:1px solid var(--p-line);
  }
  .pt-row:first-of-type{border-top:0;}
  /* クラス名と時間を1行に */
  .pt-row .pt-name{
    display:inline; text-align:left; padding:0;
    font-size:var(--f-body); font-weight:700; color:var(--ink);
  }
  .pt-row .pt-min{
    display:inline; text-align:left; padding:0 0 0 var(--s4);
    font-size:var(--f-small); color:var(--ink-3);
  }
  /* 金額はラベル付きの行に */
  .pt-row span[data-label]{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:var(--s3) 0 0; text-align:right;
    border-top:1px dotted var(--p-line); margin-top:var(--s3);
    font-size:clamp(18px,5vw,22px);
  }
  .pt-row span[data-label]::before{
    content:attr(data-label);
    font-family:'Zen Kaku Gothic New',system-ui,sans-serif;
    font-size:var(--f-small); font-weight:500; color:var(--ink-2);
    letter-spacing:.04em;
  }
  /* 該当なしの行は出さない */
  .pt-row span.pt-x{display:none;}
}


.price-note{
  margin:var(--s7) 0 0; padding:var(--s6); background:var(--nuance-2);
  border-radius:3px; font-size:var(--f-small); color:var(--ink-2); line-height:2;
}


/* お申し込みの前にお読みください（表の中のリスト） */
.notice-list{margin:0; padding:0; list-style:none;}
.notice-list li{
  position:relative; padding-left:var(--s5); margin-bottom:var(--s3);
  font-size:var(--f-small); color:var(--ink-2); line-height:1.9;
}
.notice-list li:last-child{margin-bottom:0;}
.notice-list li::before{
  content:""; position:absolute; left:0; top:.78em;
  width:4px; height:4px; border-radius:50%; background:var(--gold);
}
/* 2行になるラベルも上下中央に */
.notice-key{line-height:1.6;}

/* ── フォーム ── */
.form{display:grid; gap:var(--s7); max-width:640px;}
.field label{display:block; font-size:var(--f-small); font-weight:700; margin-bottom:var(--s3);}
.field label .req{
  font-size:var(--f-tiny); background:var(--danger); color:#FFFDF9;
  padding:2px var(--s2); margin-left:var(--s2); font-weight:500;
  vertical-align:2px; border-radius:var(--rad-s);
}
.field input[type=text],.field input[type=email],.field input[type=tel],
.field input[type=date],.field select,.field textarea{
  width:100%; min-height:var(--tap); padding:var(--s4);
  font:inherit; font-size:16px;  /* iOSの自動ズーム防止 */
  border:1px solid #998178; background:var(--surface); color:var(--ink);  /* 入力欄の枠：背景とのコントラスト3以上 */
  border-radius:var(--rad-m);
  transition:border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.field textarea{min-height:152px; resize:vertical; line-height:var(--lh-normal);}
.field input[type=date]{
  -webkit-appearance:none; appearance:none;
  min-height:var(--tap); line-height:normal;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--gold-deep); box-shadow:0 0 0 3px rgba(197,168,128,.24);
}
/* 入力に不備があるとき：色だけに頼らず、太い枠と「!」マークでも知らせる（色覚の違いへの配慮）
   :user-invalid は、入力や送信をしたあとにだけ反応する（開いた直後は赤くならない） */
.field input:user-invalid{
  border-color:var(--danger); border-width:2px;
  padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='%238E3F34'/%3E%3Crect x='9' y='4.5' width='2' height='7.5' rx='1' fill='white'/%3E%3Ccircle cx='10' cy='14.8' r='1.2' fill='white'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:18px 18px;
}
.field .hint{font-size:var(--f-small); color:var(--ink-3); margin-top:var(--s3); line-height:var(--lh-normal);}
.radios{display:flex; gap:var(--s3); flex-wrap:wrap;}
.radios label{
  display:flex; align-items:center; gap:var(--s2); font-weight:400;
  min-height:var(--tap); padding:var(--s2) var(--s5); margin-bottom:0;
  border:1px solid var(--line); border-radius:var(--rad-m); background:var(--surface);
  cursor:pointer; font-size:var(--f-body);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.radios label:has(input:checked){border-color:var(--gold-deep); box-shadow:inset 0 0 0 1px var(--gold-deep);}
.radios input{width:20px; height:20px; accent-color:var(--gold-deep);}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* ── 本文 ── */
.prose p{font-size:var(--f-body); line-height:var(--lh-loose); color:var(--ink-2); margin:0 0 var(--s6);}
.prose h2{font-size:var(--f-sub); margin:var(--s9) 0 var(--s4); color:var(--ink);}
.prose ul{font-size:var(--f-body); line-height:var(--lh-loose); color:var(--ink-2); padding-left:var(--s5);}
.prose ul > li + li{margin-top:var(--s3);}
.prose ol{margin:var(--s2) 0 0; padding-left:var(--s6); list-style:decimal;}
.prose ol li{margin-top:var(--s1);}

/* ── CTA（左に誘導／右にお問い合わせ） ── */
.cta{
  background:var(--r6); color:var(--r6-t); padding-block:var(--s11);
  border-top:1px solid var(--gold);
}
.cta .eyebrow{color:#D9BFAF; margin-bottom:var(--s4);}
.cta .eyebrow::after{background:#B08D57;}
.cta h2{
  margin:0 0 var(--s5); font-size:clamp(24px,4.6vw,34px); color:var(--gold);
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif; font-weight:600; letter-spacing:.06em;
}
.cta .lead{font-size:var(--f-body); line-height:var(--lh-loose); margin:0 0 var(--s7); opacity:.88;}

/* 左右の高さを揃える */
.cta-grid{display:grid; gap:var(--s7); grid-template-columns:1fr;}
@media(min-width:860px){
  .cta-grid{grid-template-columns:1.1fr 1fr; gap:var(--s9); align-items:stretch;}
}
.cta-left{display:flex; flex-direction:column; justify-content:center;}
.cta-left .btn{align-self:flex-start;}
.cta-box{
  background:rgba(255,255,255,.08); border-radius:4px; padding:var(--s7);
  display:flex; flex-direction:column; justify-content:center;
}
.cta-box h3{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:var(--f-sub); font-weight:600; margin:0 0 var(--s5); color:#E6CF9E;  /* 濃い茶色の背景とのコントラスト 4.79 */
  letter-spacing:.08em;
}
/* 連絡先リスト（アイコン付き） */
.cta-list{list-style:none; margin:0; padding:0;}
.cta-list li{
  display:flex; align-items:center; gap:var(--s5);
  padding:var(--s5) 0; border-bottom:1px solid rgba(255,255,255,.2);
}
.cta-list li:first-child{border-top:1px solid rgba(255,255,255,.2);}
.cta-list img{width:30px; height:30px; flex:0 0 auto;}
.cta-list small{
  display:block; font-size:var(--f-tiny); opacity:.72;
  letter-spacing:.14em; margin-bottom:2px;
}
.cta-list a{
  color:inherit; font-size:var(--f-body); text-decoration:none;
  word-break:break-all;
}
.cta-list a:hover{text-decoration:underline;}
.cta-note{margin:var(--s5) 0 0; font-size:var(--f-tiny); opacity:.7; line-height:1.9;}

/* ── フッター ── */
.site-footer{
  padding-block:var(--s9) var(--s10); font-size:var(--f-small);
  color:var(--ink-3); line-height:var(--lh-loose);
  border-top:1px solid var(--gold-line); margin-top:var(--s5);
}
.site-footer .fnav{display:flex; gap:var(--s1); flex-wrap:wrap; margin:0 calc(var(--s3)*-1) var(--s5);}
.site-footer .fnav a{
  display:inline-flex; align-items:center; min-height:var(--tap);
  padding-inline:var(--s3); text-decoration:none; border-radius:var(--rad-s);
  transition:color .3s var(--ease);
}
.site-footer .fnav a:hover{color:var(--gold-deep);}


/* ── 実績の数字 ── */
.stats{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--gold-line);
  border:1px solid var(--gold-line); border-radius:var(--rad-m); overflow:hidden;}
@media(min-width:720px){.stats{grid-template-columns:repeat(4,1fr);}}
.stats>div{background:var(--surface); padding:var(--s6) var(--s4); text-align:center;}
.stats b{
  display:block; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(30px,6vw,42px); line-height:1.1; color:var(--gold-deep); font-weight:600;
}
.stats span{display:block; font-size:var(--f-small); color:var(--ink-2); margin-top:var(--s2);}

/* ── コンクール受賞記録 ── */
.cq{border-top:1px solid var(--gold-line);}
.cq-name{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif; font-weight:600;
  font-size:var(--f-sub); color:var(--ink);
  padding:var(--s6) 0 var(--s3); border-bottom:1px solid var(--gold-line);
}
.cq-row{
  display:flex; justify-content:space-between; gap:var(--s4); align-items:baseline;
  padding:var(--s3) 0; border-bottom:1px solid var(--line); font-size:var(--f-small);
}
.cq-c{color:var(--ink-2); flex:1;}
.cq-r{color:var(--ink); white-space:nowrap; font-weight:500;}
.cq-mark{color:var(--gold-deep); font-size:var(--f-tiny);}
.cq-award{display:block; margin-top:2px; font-size:var(--f-tiny); color:var(--gold-deep); line-height:1.6;}

/* ── 空の状態 ── */
.empty{
  text-align:center; padding:var(--s10) var(--s5);
  border:1px solid var(--line); border-radius:var(--rad-m);
  background:var(--surface);
  color:var(--ink-3); font-size:var(--f-small); line-height:var(--lh-loose);
}
.empty b{display:block; color:var(--ink-2); font-size:var(--f-body); margin-bottom:var(--s3);
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;}


/* ============================================================
   レッスンスケジュール
   色は教室の配布資料（B5 スケジュール表）から採取しています。
   クラスの色を変えるときは、下の --c-* を編集してください。
   ============================================================ */

.stitle + .sch, .eyebrow + .sch{margin-top:var(--s5);}
.sch{
  --c-pre:#E0C3D3;   /* プレバレエ */
  --c-baby:#E0C3D3;  /* ベビー科 */
  --c-sho:#E5C1BC;   /* 初等科 */
  --c-ko:#CCE0C0;    /* 高等科 */
  --c-jr:#B8CEE3;    /* ジュニア */
  --c-biyo:#D5E5F2;  /* 美容バレエ・一般 */
  --c-pila:#D6D6D6;  /* ピラティス */
  --c-sp:#F2E6CC;    /* 特別クラス */
  --c-txt:#594639;   /* 配布資料の文字色 */
  margin-top:var(--s7);
}

.sch-title{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(22px,4vw,30px); letter-spacing:.18em; color:var(--gold-deep);
  margin:0 0 var(--s6); font-weight:600;
}

/* ── 曜日別の表：広い画面はテキスト、狭い画面は画像 ── */
.sch-scroll{display:none;}
.sch-img{display:block; width:100%; height:auto; border-radius:3px;}
.sch-imgwrap{display:block; cursor:zoom-in;}
.sch-imgnote{
  margin:var(--s3) 0 0; font-size:var(--f-tiny); color:var(--ink-3);
  text-align:center; letter-spacing:.04em;
}
@media(min-width:900px){
  .sch-scroll{display:block;}
  .sch-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; align-items:start;}
  .sch-imgwrap,.sch-imgnote{display:none;}
}

/* 画像を拡大表示 */
.sch-modal{
  position:fixed; inset:0; z-index:200; background:rgba(44,34,28,.92);
  display:none; align-items:center; justify-content:center; padding:var(--s4);
}
.sch-modal.on{display:flex;}
.sch-modal img{max-width:100%; max-height:92vh; object-fit:contain; background:#fff; border-radius:3px;}
.sch-modal button{
  position:absolute; top:calc(env(safe-area-inset-top,0px) + 12px); right:12px;
  background:rgba(255,255,255,.18); color:#fff; border:0; border-radius:4px;
  padding:10px 16px; font-size:13px; cursor:pointer; font-family:inherit; min-height:44px;
}
.sch-day{display:flex; flex-direction:column; gap:6px;}
.sch-dayname{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  text-align:center; font-size:var(--f-small); letter-spacing:.14em;
  color:var(--ink-2); padding-bottom:var(--s3);
  border-bottom:1px solid var(--gold-line); margin-bottom:var(--s2);
}
.sch-cell{
  border-radius:3px; padding:var(--s4) var(--s2); text-align:center;
  color:var(--c-txt); line-height:1.65; min-height:72px;
  display:flex; flex-direction:column; justify-content:center;
}
.sch-cell .t{font-size:var(--f-small); letter-spacing:.02em;}
.sch-cell .n{font-size:var(--f-body); font-weight:700; margin-top:2px;}
.sch-cell .m{font-size:var(--f-tiny); opacity:.75; margin-top:var(--s2); line-height:1.7;}
.sch-empty{min-height:72px;}



/* クラスごとの色 */
.b-pre{background:var(--c-pre);}
.b-baby{background:var(--c-baby);}
.b-sho{background:var(--c-sho);}
.b-ko{background:var(--c-ko);}
.b-jr{background:var(--c-jr);}
.b-biyo{background:var(--c-biyo);}
.b-pila{background:var(--c-pila);}
.b-sp{background:var(--c-sp);}

.sch-note{
  margin-top:var(--s5); font-size:var(--f-small);
  color:var(--ink-3); line-height:var(--lh-normal);
}


/* ── クラス詳細（写真＋説明） ── */
.cdetail{
  display:grid; gap:var(--s5); grid-template-columns:1fr;
  border-top:1px solid var(--gold-line); padding-top:var(--s8); margin-top:var(--s8);
}
@media(min-width:720px){
  .cdetail{grid-template-columns:260px 1fr; gap:var(--s8); align-items:start;}
}
.cdetail-ph{aspect-ratio:4/3; border-radius:3px; border:0; color:#594639;}
@media(min-width:720px){.cdetail-ph{aspect-ratio:1/1;}}
.cdetail h3{margin:0 0 var(--s1); font-size:var(--f-head);}
.cdetail .en{font-size:var(--f-small); color:var(--ink-3); letter-spacing:.06em; margin:0 0 var(--s4);}


/* ── ゲスト教師（写真＋経歴） ── */
.gteach{
  display:grid; gap:var(--s5); grid-template-columns:1fr;
  border-top:1px solid var(--gold-line); padding-top:var(--s8); margin-top:var(--s8);
}
@media(min-width:720px){
  .gteach{grid-template-columns:200px 1fr; gap:var(--s7); align-items:start;}
}
.gteach-ph{aspect-ratio:3/4; border-radius:3px; object-fit:cover; width:100%; height:auto;}
@media(max-width:719px){.gteach-ph{max-width:220px;}}
.gteach h3{margin:0 0 var(--s1); font-size:var(--f-sub);}
.gteach .en{font-size:var(--f-tiny); color:var(--ink-3); letter-spacing:.1em; margin:0 0 var(--s4);}
.gteach ul{margin:0; padding-left:var(--s5); font-size:var(--f-small); color:var(--ink-2); line-height:var(--lh-loose);}
.gteach ul li{margin-bottom:var(--s1);}


/* ============================================================
   クラスのご案内
   年齢・クラス名・曜日バッジ・時間の4要素で構成
   ============================================================ */
.clist{
  --cl-ink:#594538;        /* 見出し・本文 */
  --cl-sub:#8E5751;        /* 補助文字 */
  --cl-rose:#C9918C;       /* 罫線・飾り */
  --cl-line:#E8D9CD;       /* 境界線 */
  --cl-age-a:#F2EADF;      /* 年齢ブロック（ベージュ） */
  --cl-age-b:#F4D6D0;      /* 年齢ブロック（ピンク） */
  --cl-body:#FBF8F4;       /* 行の地 */
  --cl-badge:#F6E7E4;      /* 曜日バッジ */
}

/* 見出し */
.clist-head{margin-bottom:var(--s8);}
.clist-title{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(26px,5.4vw,42px); font-weight:600; color:var(--cl-ink);
  letter-spacing:.08em; margin:0 0 var(--s5); line-height:1.4;
}
.clist-lead{font-size:var(--f-body); color:var(--cl-ink); line-height:2.1; margin:0;}

/* 行 */
.clist-rows{display:grid; gap:10px;}
.cl-row{
  display:grid; grid-template-columns:196px 1fr 376px; align-items:stretch;
  border-radius:4px; overflow:hidden; background:var(--cl-body);
}
@media(min-width:861px) and (max-width:1120px){
  .cl-row{grid-template-columns:168px 1fr 332px;}
}

.cl-age{
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  gap:var(--s2); padding:var(--s6) var(--s3); text-align:center;
}
.cl-row.a .cl-age{background:var(--cl-age-a);}
.cl-row.b .cl-age{background:var(--cl-age-b);}
.cl-age b{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(17px,2.4vw,21px); font-weight:600; color:var(--cl-ink); letter-spacing:.1em;
}
.cl-age small{font-size:var(--f-small); color:var(--cl-sub); letter-spacing:.04em;}

.cl-name{padding:var(--s6); display:flex; flex-direction:column; justify-content:center;}
.cl-name b{
  display:block; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(17px,2.4vw,20px); font-weight:600; color:var(--cl-ink); letter-spacing:.08em;
}
.cl-name span{display:block; font-size:var(--f-small); color:var(--cl-ink); margin-top:var(--s3); line-height:1.95; opacity:.82;}

.cl-time{
  padding:var(--s6); border-left:1px solid var(--cl-line);
  display:flex; align-items:center; gap:var(--s4);
}
/* 枠が2つある場合（通常クラス＋合同クラス） */
.cl-time.stack{flex-direction:column; align-items:stretch; gap:var(--s3); justify-content:center;}
.cl-slot{display:flex; align-items:center; gap:var(--s4);}
.cl-slot .cl-hours{font-size:var(--f-small);}
/* 追加の枠も、文字とバッジは通常と同じ大きさに揃える */
.cl-days{display:flex; gap:6px; flex:0 0 auto;}
.cl-day{
  width:30px; height:30px; border-radius:50%; background:var(--cl-badge);
  display:flex; align-items:center; justify-content:center;
  font-size:var(--f-small); color:var(--cl-ink); font-weight:500;
}
.cl-hours{font-size:var(--f-small); color:var(--cl-ink); line-height:1.9;}
.cl-hours small{display:block; font-size:var(--f-tiny); opacity:.8;}

/* スマートフォン */
@media(max-width:860px){
  .cl-row{grid-template-columns:104px 1fr;}
  .cl-age{grid-row:1 / 3;}
  .cl-name{padding:var(--s5) var(--s5) var(--s3);}
  .cl-time{
    grid-column:2 / 3; border-left:0; padding:0 var(--s5) var(--s5);
    flex-wrap:wrap; gap:var(--s3);
  }
  .cl-age b{font-size:var(--f-sub);}
}



/* 写真付きの行（クラス紹介ページ） */
.cl-row.withph{grid-template-columns:168px 168px 1fr 344px;}
@media(min-width:861px) and (max-width:1200px){
  .cl-row.withph{grid-template-columns:140px 148px 1fr 310px;}
}
.cl-ph{
  align-self:stretch; border:0; border-radius:0; min-height:150px;
  font-size:var(--f-tiny); color:#8E7A68;
}
/* 写真が入った枠（<img class="cl-ph">）。どこを見せるかは各imgの object-position で調整 */
img.cl-ph{display:block; width:100%; height:100%; object-fit:cover;}
@media(max-width:860px){
  .cl-row.withph{grid-template-columns:104px 1fr;}
  .cl-row.withph .cl-ph{grid-column:1 / 3; min-height:0; aspect-ratio:16/9;}
  .cl-row.withph img.cl-ph{height:auto;}
  .cl-row.withph .cl-age{grid-row:2 / 4;}
  .cl-row.withph .cl-name{padding-top:var(--s5);}
}

/* 写真を載せない行（ピラティス）：写真の欄を名前の欄に広げて、他の行と列をそろえる */
@media(min-width:861px){
  .cl-row.withph.nophoto .cl-age{grid-column:1 / 3;}
}
@media(max-width:860px){
  .cl-row.withph.nophoto .cl-age{grid-row:auto;}
}

/* 特別クラス（通常クラスに加えて受講する＋αの枠） */
.cl-row.plus{
  border:1px solid var(--cl-line); background:transparent; margin-top:var(--s5);
}
.cl-row.plus + .cl-row.plus{margin-top:0;}
.cl-row.plus .cl-age{background:transparent;}
.cl-row.plus .cl-age b{font-size:var(--f-body); letter-spacing:.14em;}
.cl-row.plus .cl-age .plusmark{
  display:block; font-family:'Shippori Mincho',serif; font-size:22px;
  color:#9A6159; line-height:1; margin-bottom:var(--s2);
}
@media(min-width:861px){
  .cl-row.plus .cl-time{border-left:1px solid var(--cl-line);}
}
.cl-cond{
  display:inline-block; margin-top:var(--s3); padding:3px var(--s3);
  background:var(--cl-badge); color:var(--cl-ink);
  font-size:var(--f-tiny); border-radius:2px; letter-spacing:.04em;
}


/* ============================================================
   体験レッスンについて（左に写真／右に料金）
   ============================================================ */
.trial2{--t-ink:#594538; --t-sub:#8E5751; --t-rose:#C9918C; --t-line:#E8D9CD;}
.trial2-title{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(26px,5.4vw,42px); font-weight:600; color:var(--t-ink);
  letter-spacing:.08em; margin:0 0 var(--s5); line-height:1.4;
}

/* 上段：写真＋料金 */
.trial2-main{display:grid; gap:var(--s6); grid-template-columns:1fr;}
@media(min-width:800px){
  .trial2-main{grid-template-columns:260px 1fr; gap:var(--s8); align-items:start;}
}
@media(min-width:800px) and (max-width:980px){
  .trial2-main{grid-template-columns:200px 1fr; gap:var(--s7);}
}
.trial2-ph{aspect-ratio:3/4; border:0; border-radius:6px;}
img.trial2-ph{display:block; width:100%; height:auto; object-fit:cover;}
@media(max-width:799px){.trial2-ph{aspect-ratio:1/1; max-width:420px;}}

.trial2-fee h3{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(17px,2.6vw,21px); font-weight:600; color:var(--t-ink);
  letter-spacing:.08em; margin:0 0 var(--s4);
}
.fee-rows{border:1px solid var(--t-line); border-radius:4px; overflow:hidden; background:var(--surface);}
.fee-row{
  display:grid; grid-template-columns:1fr auto; align-items:center;
  padding:var(--s5) var(--s5); border-bottom:1px solid var(--t-line);
  font-size:var(--f-body); color:var(--t-ink);
}
.fee-row:last-child{border-bottom:0;}
.fee-row .fee-amt{font-weight:500; white-space:nowrap; padding-left:var(--s5);}
.trial2-fee .btn{
  display:flex; width:100%; margin-top:var(--s5);
  background:#7A5C44; background-image:none; color:#fff; border-radius:3px;
  letter-spacing:.14em;
}
.trial2-fee .btn:hover{background:#684D38; opacity:1;}
.trial2-fee .btn::after{content:"→"; margin-left:var(--s5); font-weight:400;}
.trial2-note{
  margin:0 0 var(--s8);
  font-size:var(--f-body); color:var(--ink-2); line-height:var(--lh-loose);
}

/* 下段：ご用意いただくもの */
.trial2-bring{margin-top:var(--s9); padding-top:var(--s8); border-top:1px solid var(--t-line);}
.trial2-bring h3{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(16px,2.4vw,19px); font-weight:600; color:var(--t-ink);
  letter-spacing:.14em; margin:0 0 var(--s7); text-align:center;
}
/* 3つ横並び。区切り線は余白の中央に描き、幅を揃える */
.bring-items{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s5);}
.bring-items > div{text-align:center; position:relative;}
.bring-items > div + div::before{
  content:""; position:absolute; top:0; bottom:0;
  left:calc(var(--s5) / -2); width:1px; background:var(--t-line);
}
.bring-items img{width:64px; height:64px; margin:0 auto var(--s4); display:block;}
.bring-items b{display:block; font-size:var(--f-body); font-weight:700; color:var(--t-ink); line-height:1.6;}
.bring-items small{display:block; font-size:var(--f-small); color:var(--ink-2); margin-top:var(--s2); line-height:1.7;}
@media(max-width:560px){
  .bring-items{gap:var(--s4);}
  .bring-items img{width:48px; height:48px; margin-bottom:var(--s3);}
  .bring-items b{font-size:var(--f-small);}
  .bring-items small{font-size:var(--f-tiny);}
}

/* 締めの帯（写真＋CTA） */
.clband{
  position:relative; margin-top:var(--s10); border-radius:4px; overflow:hidden;
  display:grid; grid-template-columns:1fr; align-items:center;
  background:linear-gradient(100deg,#FAF3EC 0%,#FAF3EC 46%,#F3E6DC 100%);
  min-height:300px;
}
@media(min-width:900px){.clband{grid-template-columns:1fr 1fr;}}
.clband-text{padding:var(--s9) var(--s8); position:relative; z-index:2;}
.clband-text h3{
  font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif;
  font-size:clamp(20px,3.4vw,27px); font-weight:600; color:var(--cl-ink);
  line-height:1.9; letter-spacing:.08em; margin:0 0 var(--s5);
}
.clband-text p{font-size:var(--f-small); color:var(--cl-ink); line-height:2.1; margin:0 0 var(--s7); opacity:.85;}
.clband-ph{align-self:stretch; min-height:220px; border:0; border-radius:0;}
.clband .btn{
  background:#6B4F3A; background-image:none; color:#fff; border-radius:2px;
  letter-spacing:.14em; padding-inline:var(--s9);
}
.clband .btn:hover{background:#5B4230; opacity:1;}
.clband .btn::after{content:"→"; margin-left:var(--s5); font-weight:400;}


/* ============================================================
   配色 A：ピンクベージュ × アイボリー
   ============================================================ */
.site-header{background:#FAF6F3; border-bottom:1px solid #E6D8D2;}
.campaign{background:#F4D6D0; color:#594238; border-bottom:1px solid #E6D8D2;}
.campaign-tag{background:#594238; color:#FAF6F3;}
.campaign b{color:#7A4640;}  /* 背景 #F4D6D0 とのコントラスト 5.54 */
.cl-row{background:#FFFFFF;}
.cl-row.plus{border:1px solid #DFCEC7; background:transparent;}
.cl-day{background:#F4D6D0; color:#594238;}
.cl-cond{background:#F4D6D0; color:#594238;}
.splabel{background:#594238; color:#FAF6F3;}
.price{--p-amt:#9A6159; --p-line:#E6D8D2;}
.pt-head{background:#F4D6D0;}
.pbox dt,.notice-key{background:#F4D6D0;}
.trial{background:#F4D6D0; border-color:#E6D8D2;}
.trial2-fee .btn,.trial2-cta .btn{background:#9A6159;}
.trial2-fee .btn:hover,.trial2-cta .btn:hover{background:#8B5248;}
.ficon,.bring-items img{filter:sepia(.18) saturate(.9);}
.cta{background:#574438;}
.cta h2,.cta .eyebrow{color:#DFC592;}
.ph{background:linear-gradient(160deg,#F8EFEC,#F1E3DE 60%,#EADAD3); border:0; color:#9E8C83;}
.stats>div{background:#FFFFFF;}
.stats b{color:#9A6159;}


/* ── 印刷 ── */
@media print{
  .campaign,.gnav,.site-footer .fnav,.btn{display:none;}
  body{background:#fff; color:#2C2621; font-size:11pt;}
  .cta{background:#fff; color:#2C2621; border-top:1px solid #C5A880;}
}


/* ── Instagram（教室の日々）──
   SnapWidget のコードは index.html の .insta-feed の中に貼る。
   貼るまでは .insta-card（Instagramへのリンク）を表示しておく */
.insta-feed{width:100%;}
.insta-feed iframe{display:block; width:100%; border:0;}
.insta-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s3);
  padding:var(--s9) var(--s5); text-align:center; text-decoration:none;
  background:#FFFFFF; border:1px solid #E6D8D2; border-radius:var(--rad-m);
  color:#594238; transition:background .2s;
}
.insta-card:hover{background:#F4D6D0;}
.insta-card img{width:48px; height:48px;}
.insta-card b{font-size:var(--f-lead, 18px); letter-spacing:.04em;}
.insta-card span{font-size:var(--f-small); color:#6E594B;}

/* 体験レッスンの案内バナー */
.banner{
  display:flex; flex-direction:column; align-items:flex-start; gap:var(--s6);
  margin:var(--s9) 0; padding:var(--s8) var(--s7);
  background:linear-gradient(120deg,#9C6560 0%,#8E5650 55%,#7E4A44 100%);
  color:#FFFFFF; border-radius:var(--rad-m); position:relative; overflow:hidden;
}
.banner::after{  /* 右上に大きな円の飾り */
  content:""; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%;
  border:1px solid rgba(255,255,255,.28); pointer-events:none;
}
.banner-in{position:relative; z-index:1;}
.banner-kicker{margin:0 0 var(--s3); font-size:var(--f-tiny); letter-spacing:.3em; color:#FFFFFF;}
.banner-msg{
  margin:0; font-family:'Shippori Mincho',"Hiragino Mincho ProN",serif; font-weight:700;
  font-size:clamp(20px,3vw,28px); line-height:1.5; color:#FFFFFF; word-break:auto-phrase;
}
.banner-sub{margin:var(--s3) 0 0; font-size:var(--f-small); line-height:1.8; color:#FFFFFF;}
.banner-btn{
  position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center;
  min-height:var(--tap); padding:var(--s4) var(--s7); border-radius:var(--rad-s);
  background:#FAF6F3; color:#7E4A44; font-weight:700; letter-spacing:.08em; text-decoration:none;
  font-size:var(--f-small); white-space:nowrap;
}
.banner-btn:hover{background:#FFFFFF;}
@media(min-width:860px){
  .banner{flex-direction:row; align-items:center; justify-content:space-between; padding:var(--s8) var(--s9);}
}
@media print{.banner{display:none;}}

/* ── 実績ページのギャラリー（写真は 800×1000 の縦長でそろえる） ── */
.gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s3);}
@media(min-width:720px){.gallery{grid-template-columns:repeat(3,1fr); gap:var(--s4);}}
.gallery img{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--rad-m);}

/* ============================================================
   視認性アップ（全体的に色が薄く見えたため、文字を濃く・少し大きく）
   文字色はすべて背景とのコントラスト7前後を目安に強めている
   ============================================================ */
:root{
  --ink:#3F2D25;      /* 見出し（旧 #594238） */
  --ink-2:#45332A;    /* 本文（旧 #5E4A3F） */
  --ink-3:#584538;    /* 補足（旧 #6E594B） */
  --line:#D8C5BC;     /* 罫線（旧 #E6D8D2） */
  --gold-line:#D6C39E;/* 金の罫線（旧 #E8DCC4） */
  --gold-deep:#6E5424;
  --f-body:16px;      /* 本文（旧 15px） */
  --f-small:14px;     /* 小さめの文字（旧 13px） */
  --f-tiny:13px;      /* いちばん小さい文字（旧 12px） */
}
.clist{--cl-ink:#3F2D25; --cl-sub:#7A4640;}
.trial2{--t-ink:#3F2D25; --t-sub:#7A4640;}

/* 文字を薄くしていた透明度を解除 */
.age small,.cnote,.cta .lead,.cta-list small,.cta-note,.sch-cell .m,
.cl-name span,.cl-hours small,.clband-text p{opacity:1;}
.cta .lead,.cta-list a{color:#FFFFFF;}
.cta-list small,.cta-note{color:#F1E4DA;}

/* 英字ラベルを少し濃く */
.eyebrow{color:#7A4640;}
.eyebrow::after{background:#B98A84;}

/* お知らせの帯・ヘッダー */
.campaign{color:#45332A; border-bottom-color:#D8C5BC;}
.site-header{border-bottom-color:#D8C5BC;}
.gnav a{color:#3F2D25;}

/* 表や枠の線 */
.price{--p-line:#D8C5BC;}
.cl-row.plus{border-color:#CDB7AE;}

/* アイコンのくすみを取る */
.ficon,.bring-items img{filter:none;}

/* ── グローバルメニュー（パソコン）：項目の区切りをはっきりさせる ── */
@media(min-width:820px){
  .gnav{align-items:center; gap:0;}
  .gnav a{position:relative; padding-inline:var(--s3);}
  /* 項目と項目の間に縦線 */
  .gnav a:not(.nav-insta) + a:not(.nav-insta):not(.nav-cta)::before{
    content:""; position:absolute; left:0; top:50%; width:1px; height:10px;
    transform:translateY(-50%); background:#B9A196;
  }
  /* 今いるページ・マウスを乗せた項目には下線 */
  .gnav a:not(.nav-cta)::after{
    content:""; position:absolute; left:var(--s3); right:var(--s3); bottom:8px; height:2px;
    background:#9A6159; transform:scaleX(0); transition:transform .25s var(--ease);
  }
  .gnav a:not(.nav-cta):hover::after,.gnav a[aria-current="page"]:not(.nav-cta)::after{transform:scaleX(1);}
  /* 体験レッスンの申し込みは、ボタンの形にして他の項目と区別 */
  .gnav a.nav-cta{
    margin-left:var(--s2); min-height:38px; padding-inline:var(--s4);
    background:#9A6159; color:#FFFFFF; border-radius:999px; font-weight:700;
  }
  .gnav a.nav-cta:hover{background:#8B5248; color:#FFFFFF;}
  .gnav a.nav-cta[aria-current="page"]{color:#FFFFFF;}
}
@media(min-width:1100px){
  .hrow{flex-wrap:nowrap;}
  .gnav{flex-wrap:nowrap; white-space:nowrap;}
}
@media(min-width:1100px){
  .logo{white-space:nowrap; font-size:clamp(19px,1.9vw,23px);}
}
/* パソコン：メニューの文字を、ロゴの英字（2行目）の文字の下端（ベースライン）にそろえる
   書体や環境が変わっても、ずれないように「文字の基準線」でそろえている */
@media(min-width:1100px){
  .hrow{align-items:last baseline;}
  .gnav{align-items:last baseline;}
}

/* ── パソコン（1100px以上）：メイン写真の左端を、メニュー「教室について」の文字の左端にそろえる ──
   --nav-x はメニューの位置から自動で計算される（index.html の末尾のスクリプト） */
@media(min-width:1100px){
  .hero{grid-template-columns:var(--nav-x, 50vw) minmax(0,1fr);}
  .hero .hero-text h1{
    font-size:clamp(28px, calc((var(--nav-x, 50vw) - max(36px, (100vw - 1120px) / 2 + 36px) - 48px) / 10.6), 46px);
  }
  .hero .lede{font-size:15px;}
  .hero .lede-sub{white-space:normal;}
}

/* ── 一部だけ元の淡い色に戻す（体験レッスンのご案内／特別クラス・ピラティス） ── */
.trial{background:#F8EFEC;}
.cl-row.plus .cl-cond{background:#F3E5E1;}
.spboth{background:#F3E5E1;}
/* 曜日の丸は、特別クラス・ピラティスも含めてすべて濃いピンク */
.cl-day{background:#F4D6D0;}

/* 枠線のボタン（クラスの詳細を見る など）：カーソルを当てると枠と同じゴールドで塗る
   文字は濃い茶色のまま（ゴールドとのコントラスト 5.65） */
.btn-ghost{transition:background-color .25s var(--ease), color .25s var(--ease);}
.btn-ghost:hover,.btn-ghost:focus-visible{opacity:1; background:#C8A66B; color:#3F2D25; border-color:#C8A66B;}
/* 料金ページの注意書き（姉妹・親子割引など）は淡いピンク */
.price-note{background:#F8EFEC;}

/* 会則ページ：項目の見出し（お月謝について など）に帯と左の線を付けて目立たせる */
.rules h2{
  background:#F8EFEC; color:#3F2D25;
  border-left:4px solid #9A6159; border-radius:0 var(--rad-s) var(--rad-s) 0;
  padding:var(--s3) var(--s5); margin:var(--s9) 0 var(--s5);
  font-size:var(--f-sub); letter-spacing:.06em;
}
.rules h2:first-child{margin-top:0;}

/* 特別クラス：コンテンポラリーはA・Bの写真を2枚並べる */
.spitem-duo{display:grid; grid-template-columns:1fr 1fr; gap:2px; background:#FFFFFF;}
.spitem-duo figure{margin:0; position:relative;}
.spitem-duo img{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover;}
.spitem-duo figcaption{
  position:absolute; left:8px; bottom:8px; padding:2px 10px; border-radius:999px;
  background:#3F2D25; color:#FFFFFF; font-size:var(--f-tiny); font-weight:700; letter-spacing:.06em;
}
.sptag{
  margin-left:auto; padding:1px 10px; border-radius:999px; border:1px solid #9A6159;
  color:#7A4640; font-size:var(--f-tiny); font-weight:700; white-space:nowrap;
}
.splabel,.spitem-day{word-break:auto-phrase;}

img.spitem-ph{display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;}

/* 特別クラスの説明と条件をひとまとまりに */
.spintro{margin:0 0 var(--s8);}
.spintro p{margin:0; font-size:var(--f-body); line-height:var(--lh-loose); color:var(--ink-2);}
.spintro .spintro-note{margin-top:var(--s3); font-size:var(--f-small); color:#7A4640; font-weight:700;}

/* ── 余白の調整：セクション間の空きが広すぎたため詰める ──
   以前は上下 104px ずつ（区切りで約 210px の空き）→ パソコン 72px・スマホ 52px ずつに */
section{padding-block:clamp(52px, 6vw, 72px);}
.trial{padding-block:clamp(52px, 6vw, 72px);}
.hero{padding-block:0;}
.banner{margin:var(--s7) 0;}

/* 申し込みページ：体験レッスンの欄は背景の切り替え・上下の線をなくし、見出しから続けて表示 */
.trial#contact{background:transparent; border-top:0; border-bottom:0; padding-top:0;}

/* 体験レッスンの写真（複数枚をふわっと切り替え） */
.trialslides{position:relative; overflow:hidden; display:block; background:#EFE3DF;}
.trialslides img{
  position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover;
  object-position:var(--pos-sp, 50% 50%); opacity:0; transition:opacity 1.5s ease;
}
.trialslides img.is-on{opacity:1;}
@media(min-width:800px){.trialslides img{object-position:var(--pos-pc, 50% 50%);}}
@media(prefers-reduced-motion: reduce){.trialslides img{transition:none;}}

/* 講師の舞台写真：枠が小さくなっても切れずに全体を表示する（元の縦横比のまま縮小） */
.teachimg{aspect-ratio:auto; object-fit:contain; height:auto;}
@media(max-width:819px){.teachimg{aspect-ratio:auto; max-height:none; width:100%; max-width:300px;}}

/* 古いスマホ（aspect-ratio 非対応）でも体験レッスンの写真が重なって1枚ずつ表示されるようにする */
@supports not (aspect-ratio: 1 / 1){
  .trialslides{height:0; padding-top:133.33%;}
  @media(max-width:799px){.trialslides{padding-top:100%;}}
}
/* 古いブラウザ向け：inset が効かない場合も重ねて表示 */
.trialslides img,.heroslides img{top:0; right:0; bottom:0; left:0;}

/* 体験レッスンの写真：スマホでは1枚目だけを表示（切り替えなし） */
@media(max-width:799px){
  .trialslides img{display:none;}
  .trialslides img:first-child{display:block; opacity:1;}
}

/* クラス写真：スマホで少し引いて見せたい写真（sp-43 を付けたもの）は、横長の帯を 4:3 に */
@media(max-width:860px){
  .cl-row.withph img.cl-ph.sp-43{aspect-ratio:4/3;}
}

/* 公開前チェックでの調整 */
.cta-list a{display:inline-flex; align-items:center; min-height:44px;}   /* 連絡先リンクの押しやすさ */
.thanks-links a, .prose a[href^="tel:"], .prose a[href^="mailto:"]{display:inline-block; padding-block:10px;}
@media(max-width:819px){ .logo span{font-size:12px; letter-spacing:.12em;} }   /* 最小12px */
.campaign-tag{font-size:12px;}

/* ── 余白の再調整（ページ末尾とCTA・フッターまわり、下層ページの見出し上） ── */
.cta{padding-block:clamp(56px, 7vw, 80px);}
.prose > :last-child, .prose ul:last-child, .prose ol:last-child{margin-bottom:0;}
.pagehead{padding-top:clamp(36px, 5vw, 64px);}

/* アクセスページ：はじめてお越しの方へ（私道の入口・駐車場の写真） */
.visitgrid{display:grid; grid-template-columns:1fr; gap:var(--s5);}
@media(min-width:720px){.visitgrid{grid-template-columns:repeat(3,1fr);}}
.visitgrid figure{margin:0;}
.visitgrid img{display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--rad-m);}
.visitgrid figcaption{margin-top:var(--s2); font-size:var(--f-small); color:var(--ink-3);}
@media(max-width:719px){.visitgrid{max-width:480px;}}
/* メニュー項目が増えたため（アクセスを追加）、パソコンでは項目の間隔と文字を少し詰めて1行に収める */
@media(min-width:1100px){
  .gnav a{padding-inline:8px; font-size:13.5px;}
  .gnav a:not(.nav-cta)::after{left:8px; right:8px;}
  .gnav a.nav-cta{padding-inline:var(--s4); margin-left:6px;}
}
@media(min-width:1100px) and (max-width:1199px){
  .gnav a{padding-inline:7px; font-size:13px;}
  .gnav a:not(.nav-cta)::after{left:7px; right:7px;}
  .logo{font-size:19px;}
}

/* 申し込み完了ページ：うさぎのロゴ */
.thanks-head{display:flex; align-items:center; gap:var(--s5);}
.thanks-bunny{display:block; flex:0 0 auto; width:64px; height:auto; margin:0;}
@media(max-width:719px){.thanks-head{gap:var(--s4);} .thanks-head h1{font-size:clamp(20px,6.2vw,26px); word-break:keep-all;}}
@media(min-width:720px){.thanks-head{gap:var(--s7);} .thanks-bunny{width:130px;}}
