/* ==========================================================
   YOGA Think About ── 共通スタイル
   全ページがこの1ファイルを読んでいます。
   色・余白・文字を変えたいときは、下の :root だけ触れば全ページ変わります。
   ========================================================== */
:root{
  --ink:#16150F;
  --ink-soft:#4A463C;
  --muted:#8B8578;
  --bone:#F7F4ED;
  --bone-2:#EFEAE0;
  --line:#DCD4C4;
  --deep:#18241E;
  --deep-2:#1E2C24;
  --sage:#7E8B6F;
  --brass:#B08D57;

  --f-serif:"Cormorant Garamond","Shippori Mincho",serif;
  --f-mincho:"Shippori Mincho",serif;
  /* 本文は端末に元から入っている書体を使う。ダウンロード0・表示が一瞬で出る。
     ブランドの明朝（Shippori Mincho）は、見出しと引用でそのまま使い続けます */
  --f-sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",
           "Noto Sans JP","Meiryo",system-ui,sans-serif;

  --pad:clamp(24px,6vw,110px);
  --sec:clamp(88px,11vw,168px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bone);color:var(--ink);font-family:var(--f-sans);font-weight:300;
  line-height:2.1;letter-spacing:.05em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--sage);color:var(--bone)}

.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--pad)}
.narrow{max-width:760px}
.section{padding-block:var(--sec)}
.tint{background:var(--bone-2)}

/* 暗い帯 */
.dark{background:var(--deep);color:var(--bone);position:relative;overflow:hidden}
.dark::before{content:"";position:absolute;inset:0;
  background:radial-gradient(85% 70% at 82% 8%,rgba(176,141,87,.14),transparent 62%)}
.dark .wrap{position:relative}
.dark .lead,.dark p{color:rgba(247,244,237,.72)}
.dark .eyebrow::after,.dark .eyebrow::before{background:rgba(247,244,237,.28)}

/* ---------- 見出し ---------- */
.eyebrow{font-family:var(--f-serif);font-size:.72rem;font-weight:400;letter-spacing:.42em;
  text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:1.1em;margin-bottom:2.2em}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line);max-width:120px}
.eyebrow.center{justify-content:center}
.eyebrow.center::before{content:"";flex:1;height:1px;background:var(--line);max-width:120px}
.eyebrow .ja{font-family:var(--f-sans);font-size:.86em;letter-spacing:.18em;color:var(--muted);
  text-transform:none;margin-left:.2em}
.dark .eyebrow .ja{color:rgba(247,244,237,.5)}

h2.ttl{font-family:var(--f-mincho);font-weight:400;font-size:clamp(1.6rem,3.4vw,2.5rem);
  line-height:1.75;letter-spacing:.14em;margin-bottom:1.4em}
h2.ttl.tight{margin-bottom:.8em}
.lead{font-family:var(--f-mincho);font-weight:400;font-size:clamp(.94rem,1.35vw,1.06rem);
  line-height:2.5;letter-spacing:.1em;color:var(--ink-soft)}

/* ---------- スクロールで浮かび上がる ---------- */
.rv{opacity:0;transform:translateY(12px);
  transition:opacity .34s cubic-bezier(.2,0,0,1),transform .4s cubic-bezier(.2,0,0,1)}
.rv.in{opacity:1;transform:none}

/* ---------- 「いま受けられるもの」：左右から交互に入る（2026-09-11 OWNER指示） ----------
   ★動きの引き金は既存の .rv → .rv.in。JSは足していません。
   ★横スクロールを出さないため、親で clip します。                       */
.offer .olist{overflow-x:hidden;overflow-x:clip}  /* clip 非対応の古い端末は hidden で受ける */
.offer .olist>li.rv{transform:translateX(-44px);
 transition:opacity .5s cubic-bezier(.2,0,0,1),transform .62s cubic-bezier(.2,0,0,1)}
.offer .olist>li.rv:nth-child(even){transform:translateX(44px)}
.offer .olist>li.rv.in{transform:none}
/* 少しずつ遅らせて、上から順に入ってくるようにする */
.offer .olist>li.rv:nth-child(2){transition-delay:.10s}
.offer .olist>li.rv:nth-child(3){transition-delay:.20s}
/* ★「視差効果を減らす」設定の端末では動かさない（上の .rv 指定より詳細度を高くしてある） */
@media (prefers-reduced-motion:reduce){
 .offer .olist>li.rv,.offer .olist>li.rv:nth-child(even){opacity:1;transform:none;transition:none}
 .offer .olist>li.rv:nth-child(2),.offer .olist>li.rv:nth-child(3){transition-delay:0s}
}

@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- ボタン・リンク ---------- */
.btn{display:inline-flex;align-items:center;gap:1em;font-family:var(--f-serif);font-size:.82rem;
  letter-spacing:.3em;text-transform:uppercase;padding:1.25em 2.6em;white-space:nowrap;
  border:1px solid var(--ink);color:var(--ink);background:transparent;
  -webkit-appearance:none;appearance:none;cursor:pointer;
  position:relative;overflow:hidden;transition:color .6s ease}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);
  transform-origin:right;transition:transform .6s cubic-bezier(.2,.7,.3,1);z-index:-1}
.btn:hover{color:var(--bone)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn span{position:relative;z-index:1}
.btn.light,.dark .btn{border-color:rgba(247,244,237,.5);color:var(--bone)}
.btn.light::before,.dark .btn::before{background:var(--bone)}
.btn.light:hover,.dark .btn:hover{color:var(--deep)}

.tlink{display:inline-block;font-family:var(--f-sans);font-size:.8rem;letter-spacing:.14em;
  white-space:nowrap;padding-bottom:.45em;
  border-bottom:1px solid var(--line);transition:border-color .5s}
.tlink:hover{border-color:var(--ink)}
.dark .tlink{border-bottom-color:rgba(247,244,237,.3)}
.dark .tlink:hover{border-bottom-color:var(--bone)}
.tlink .ar{margin-left:.55em;color:var(--muted)}
.dark .tlink .ar{color:rgba(247,244,237,.5)}

/* ---------- 写真枠・未記入枠 ---------- */
.frame{position:relative;background:var(--bone-2);border:1px solid var(--line);
  display:grid;place-items:center;overflow:hidden}
.frame img{width:100%;height:100%;object-fit:cover}
.frame img + .cap{display:none}
.frame .cap{font-family:var(--f-serif);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--muted);text-align:center;line-height:2.4;padding:1em}
.dark .frame{background:linear-gradient(155deg,#25352C,#16211B);border-color:rgba(176,141,87,.28)}
.dark .frame .cap{color:rgba(247,244,237,.34)}

.empty{display:block;font-family:var(--f-sans);font-size:.8rem;line-height:2;letter-spacing:.04em;
  color:var(--muted);border:1px dashed var(--line);padding:.9em 1.2em}
.dark .empty{border-color:rgba(176,141,87,.35);color:rgba(247,244,237,.42)}

/* ---------- ヘッダー ---------- */
header{position:sticky;top:0;z-index:100;background:rgba(247,244,237,.94);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;
  padding:1rem var(--pad);transition:background .6s ease,border-color .6s ease}
.logo{font-family:var(--f-serif);font-size:1.02rem;letter-spacing:.26em;white-space:nowrap;line-height:1.5;
  color:var(--ink);transition:color .6s ease}
.logo em{font-style:italic;color:var(--brass)}
.logo small{display:block;font-family:var(--f-sans);font-size:.56rem;letter-spacing:.2em;color:var(--muted)}
nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}
nav a{font-family:var(--f-sans);font-size:.78rem;letter-spacing:.13em;
  white-space:nowrap;color:var(--ink-soft);padding-bottom:.35em;border-bottom:1px solid transparent;
  transition:color .5s,border-color .5s}
nav a:hover{color:var(--ink)}
nav a.on{color:var(--ink);border-bottom-color:var(--brass)}
nav a .ja{display:block;font-family:var(--f-sans);font-size:.62rem;letter-spacing:.14em;
  text-transform:none;color:var(--muted);margin-top:.25em}
nav a.on .ja{color:var(--ink-soft)}
nav a.biz{border:1px solid var(--ink);padding:.75em 1.4em;color:var(--ink)}
nav a.biz.on{background:var(--ink);color:var(--bone)}
nav a.biz.on .ja{color:rgba(247,244,237,.65)}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;padding:6px;z-index:120}
.burger i{display:block;width:26px;height:1px;background:var(--ink);transition:background .5s}

/* トップだけ、ヒーローに重なる透明ヘッダー */
body.home header{position:fixed;inset:0 0 auto 0;background:transparent;backdrop-filter:none;border-color:transparent}
body.home header .logo{color:var(--bone)}
body.home header nav a{color:rgba(247,244,237,.85)}
body.home header nav a.biz{border-color:rgba(247,244,237,.45);color:var(--bone)}
body.home header nav a .ja{color:rgba(247,244,237,.55)}
body.home header .burger i{background:var(--bone)}
body.home header.solid{background:rgba(247,244,237,.94);backdrop-filter:blur(12px);border-color:var(--line)}
body.home header.solid .logo{color:var(--ink)}
body.home header.solid nav a{color:var(--ink-soft)}
body.home header.solid nav a.biz{border-color:var(--ink);color:var(--ink)}
body.home header.solid nav a .ja{color:var(--muted)}
body.home header.solid .burger i{background:var(--ink)}

/* ---------- トップのヒーロー ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;
  background:var(--deep);color:var(--bone);overflow:hidden}
.hero-media{position:absolute;inset:0;background:linear-gradient(160deg,#1E2C24 0%,#141F1A 55%,#0F1814 100%);
  display:grid;place-items:center}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media canvas.hero-gl{position:absolute;inset:0;width:100%;height:100%;display:block;
  opacity:0;transition:opacity 1.6s ease}
.hero-media canvas.hero-gl.on{opacity:1}
.hero-media::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(10,16,13,.62) 0%,rgba(10,16,13,.34) 42%,
  rgba(10,16,13,0) 72%),
  linear-gradient(180deg,rgba(10,16,13,.60) 0%,rgba(10,16,13,.30) 30%,
  rgba(10,16,13,.26) 58%,rgba(10,16,13,.52) 100%)}
.hero-media::after{content:"";position:absolute;inset:0;opacity:.14;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-media .cap{position:absolute;right:var(--pad);bottom:2.6rem;z-index:1;
  font-family:var(--f-serif);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(247,244,237,.26);text-align:right;line-height:2.2;max-width:22em}
.hero .wrap{position:relative;z-index:2;width:100%;padding-block:9rem 7rem}
.hero-sub{font-family:var(--f-serif);font-style:italic;font-size:clamp(.95rem,1.7vw,1.15rem);
  letter-spacing:.2em;color:var(--brass);margin-bottom:2.2rem}
.hero h1{font-family:var(--f-mincho);font-weight:400;font-size:clamp(1.68rem,6.2vw,4.5rem);
  line-height:1.62;letter-spacing:.1em;margin-bottom:2rem}
.hero h1 .s{display:block;font-size:.52em;letter-spacing:.2em;margin-top:.9em;color:rgba(247,244,237,.72)}
.hero p.intro{max-width:32em;color:rgba(247,244,237,.68);font-family:var(--f-mincho);line-height:2.5;
  letter-spacing:.1em;margin-bottom:3rem;font-size:clamp(.86rem,1.2vw,.97rem)}
.hero .acts{display:flex;flex-wrap:wrap;gap:1.1rem}
.scroll-cue{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--f-serif);font-size:.66rem;letter-spacing:.38em;text-transform:uppercase;
  color:rgba(247,244,237,.5);display:flex;flex-direction:column;align-items:center;gap:.9rem}
.scroll-cue::after{content:"";width:1px;height:54px;background:linear-gradient(rgba(247,244,237,.5),transparent);
  animation:cue 2.6s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleY(.55);transform-origin:top}
  50%{opacity:1;transform:scaleY(1);transform-origin:top}}

/* ---------- 下層ページの見出し帯 ---------- */
.page-head{background:var(--deep);color:var(--bone);position:relative;overflow:hidden;
  padding-block:clamp(4rem,9vw,7.5rem) clamp(3.2rem,6vw,5rem)}
.page-head::before{content:"";position:absolute;inset:0;
  background:radial-gradient(80% 70% at 85% 10%,rgba(176,141,87,.16),transparent 62%)}
.page-head .ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}
.page-head canvas.gl3d{position:absolute;inset:0;width:100%;height:100%;display:block;
  opacity:0;transition:opacity 1.6s ease}
.page-head canvas.gl3d.on{opacity:.92}
.page-head.has3d::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(12,20,16,.72) 0%,rgba(12,20,16,.42) 46%,
  rgba(12,20,16,.10) 78%),
  linear-gradient(180deg,rgba(12,20,16,.34) 0%,rgba(12,20,16,0) 34%,rgba(12,20,16,.30) 100%)}
.page-head .wrap{position:relative;z-index:1}
.page-head .crumb{font-family:var(--f-serif);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(247,244,237,.45);margin-bottom:2rem}
.page-head .crumb a:hover{color:var(--bone)}
.page-head .en{font-family:var(--f-serif);font-style:italic;font-size:clamp(.95rem,1.7vw,1.12rem);
  letter-spacing:.2em;color:var(--brass);margin-bottom:1.1rem}
.page-head h1{font-family:var(--f-mincho);font-weight:400;font-size:clamp(1.7rem,4.2vw,2.9rem);
  line-height:1.65;letter-spacing:.14em}
.page-head p.sub{margin-top:2rem;max-width:38em;font-family:var(--f-mincho);font-size:clamp(.86rem,1.2vw,.97rem);
  line-height:2.5;letter-spacing:.1em;color:rgba(247,244,237,.68)}

/* ---------- お知らせ ---------- */
.news{padding-block:clamp(3rem,6vw,5rem)}
.news .head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.news .head .eyebrow{margin-bottom:0}
.nrow{display:grid;grid-template-columns:9em 1fr auto;gap:.6rem 1.6rem;align-items:baseline;
  padding:1.15rem 0;border-top:1px solid var(--line);transition:background .4s,padding-inline .4s}
.nrow:last-of-type{border-bottom:1px solid var(--line)}
a.nrow:hover{background:var(--bone-2);padding-inline:1rem}
a.nrow:hover .x{color:var(--ink)}
.nrow .ar{font-family:var(--f-serif);font-size:.9rem;color:var(--brass);align-self:center}
.nrow .t{font-family:var(--f-serif);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sage);border:1px solid var(--line);padding:.45em 0;text-align:center}
.nrow .x{font-size:.87rem;line-height:2.1;color:var(--ink-soft)}

/* ---------- タイル ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,2rem)}
.tile{display:block}
.tile .frame{aspect-ratio:4/5;transition:opacity .5s}
.tile:hover .frame{opacity:.86}
.tile .cap-in{padding-top:1.2rem;border-top:1px solid var(--line);margin-top:1.2rem;
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.tile h3{font-family:var(--f-mincho);font-weight:500;font-size:1.02rem;letter-spacing:.14em}
.tile h3 .en{display:block;font-family:var(--f-serif);font-style:italic;font-size:.66em;
  letter-spacing:.16em;color:var(--muted);margin-top:.4em;font-weight:400}
.tile .cap-in span{font-size:.76rem;letter-spacing:.1em;color:var(--muted);text-align:right}
.tile .ar{font-family:var(--f-serif);font-size:.8rem;color:var(--muted)}

/* ---------- 法人の帯 ---------- */
.biz-band .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);align-items:start}
.biz-band ul{list-style:none;display:grid;gap:.9rem;margin-top:.4rem}
.biz-band li{position:relative;padding-left:1.5em;font-size:.85rem;line-height:2.3;color:var(--ink-soft)}
.dark.biz-band li,.dark .biz-band li{color:rgba(247,244,237,.72)}
.biz-band li::before{content:"";position:absolute;left:0;top:1.12em;width:11px;height:1px;background:var(--brass)}

/* ---------- コンセプト ---------- */
.concept{text-align:center}
.concept .inner{max-width:760px;margin:0 auto}
.concept .mark{font-family:var(--f-serif);font-style:italic;font-size:clamp(2.4rem,6vw,4rem);
  color:var(--line);line-height:1;margin-bottom:1.4rem}
.concept .lead+.lead{margin-top:2.2rem}
.concept .rule{width:1px;height:72px;background:var(--line);margin:3.4rem auto 0}

/* ---------- レッスン ---------- */
.lesson{display:grid;grid-template-columns:auto 1fr minmax(0,1.15fr);gap:clamp(1.6rem,4vw,4.5rem);
  align-items:start;padding-block:clamp(2.8rem,5vw,4.2rem);border-top:1px solid var(--line)}
.lesson:last-of-type{border-bottom:1px solid var(--line)}
.lesson .no{font-family:var(--f-serif);font-size:.85rem;letter-spacing:.2em;color:var(--brass);padding-top:.7em}
.lesson h2{font-family:var(--f-mincho);font-weight:500;font-size:clamp(1.15rem,2.1vw,1.5rem);
  letter-spacing:.13em;line-height:1.8}
.lesson h2 .en{display:block;font-family:var(--f-serif);font-style:italic;font-size:.62em;
  letter-spacing:.16em;color:var(--muted);margin-top:.5em;font-weight:400}
.lesson .body p{font-size:.9rem;line-height:2.4;color:var(--ink-soft);margin-bottom:1.6em}
.lesson ul{list-style:none}
.lesson li{position:relative;padding-left:1.5em;font-size:.85rem;line-height:2.3;color:var(--ink-soft)}
.lesson li::before{content:"";position:absolute;left:0;top:1.12em;width:11px;height:1px;background:var(--brass)}
.tag-new,.lesson h2 .new{display:inline-block;font-family:var(--f-serif);font-size:.6rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--bone);background:var(--sage);padding:.45em 1.1em;
  vertical-align:middle;margin-left:.9em;transform:translateY(-.28em)}

/* ---------- 講師 ---------- */
.message .grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(2.5rem,6vw,6rem);align-items:start}
.message .frame{aspect-ratio:3/4;position:sticky;top:100px}
.message .name{font-family:var(--f-serif);font-size:clamp(1.8rem,3.6vw,2.6rem);letter-spacing:.12em;margin-bottom:.3em}
.message .role{font-family:var(--f-mincho);font-size:.82rem;letter-spacing:.32em;color:var(--brass);margin-bottom:2.6rem}
.message p{font-family:var(--f-mincho);font-size:clamp(.86rem,1.2vw,.95rem);line-height:2.6;
  letter-spacing:.09em;margin-bottom:1.9em}
.message p.pull{font-size:clamp(1.05rem,2.1vw,1.4rem);line-height:2.1;border-left:1px solid var(--brass);
  padding-left:1.4em;margin-block:2.4em}
.dark .message p.pull,.dark p.pull{color:var(--bone)}
.creds{margin-top:3rem;padding-top:2.4rem;border-top:1px solid rgba(176,141,87,.28)}
.creds .lbl{font-family:var(--f-serif);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--brass);margin-bottom:1.8rem}
.creds dl{display:grid;gap:1.4rem}
.creds .row{display:grid;grid-template-columns:6.5em 1fr;gap:1.4rem;align-items:start}
.creds dt{font-family:var(--f-mincho);font-size:.82rem;letter-spacing:.16em;padding-top:.35em}
.dark .creds dt{color:rgba(247,244,237,.8)}
.creds dd{font-size:.85rem;line-height:2.2}
.dark .creds dd{color:rgba(247,244,237,.72)}

/* ---------- 3つの約束・流れ ---------- */
.steps{display:grid}
.steps .st{display:grid;grid-template-columns:4em 1fr;gap:1.6rem;padding-block:2rem;border-top:1px solid var(--line)}
.steps .st:last-child{border-bottom:1px solid var(--line)}
.dark .steps .st{border-color:rgba(247,244,237,.18)}
.steps .st .n{font-family:var(--f-serif);font-size:.85rem;letter-spacing:.2em;color:var(--brass);padding-top:.5em}
.steps .st h3{font-family:var(--f-mincho);font-weight:500;font-size:1.06rem;letter-spacing:.13em;margin-bottom:.5em}
.steps .st p{font-size:.87rem;line-height:2.3;color:var(--ink-soft)}
.dark .steps .st p{color:rgba(247,244,237,.72)}

/* ---------- メディア ---------- */
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.1rem}
.mbox{border:1px solid var(--line);padding:1.5rem;min-height:118px;display:grid;align-content:center;gap:.8rem}
.mbox .k{font-family:var(--f-serif);font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass)}
.books{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2rem}
.book{width:clamp(118px,13vw,168px)}
.book .frame{aspect-ratio:3/4.3}
.book .cap{font-size:.6rem;letter-spacing:.2em}

/* ---------- お客様の声 ---------- */
.voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3.4vw,3rem)}
.vc{border-top:1px solid var(--line);padding-top:2.2rem}
.vc .q{font-family:var(--f-serif);font-style:italic;font-size:2.1rem;color:var(--line);line-height:1;margin-bottom:1rem}
.vc blockquote{font-family:var(--f-mincho);font-size:.9rem;line-height:2.4;letter-spacing:.08em;
  color:var(--ink-soft);margin-bottom:1.6rem}
.vc cite{font-style:normal;font-size:.76rem;letter-spacing:.14em;color:var(--muted)}
.clients .box{border:1px solid var(--line);padding:clamp(2rem,4vw,3rem)}
.clients .names{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.6rem}
.clients .names .empty{flex:1 1 220px}

/* ---------- 料金 ---------- */
.plan{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem clamp(1.5rem,4vw,3rem);
  align-items:baseline;padding-block:clamp(2rem,3.4vw,2.7rem);border-bottom:1px solid var(--line)}
.plan:first-of-type{border-top:1px solid var(--line)}
.plan h3{font-family:var(--f-mincho);font-weight:500;font-size:clamp(1.02rem,1.8vw,1.24rem);letter-spacing:.13em}
.plan .fee{font-family:var(--f-serif);font-size:clamp(1.35rem,2.8vw,1.85rem);letter-spacing:.06em;
  white-space:nowrap;text-align:right}
.plan .fee small{font-family:var(--f-sans);font-size:.52em;letter-spacing:.16em;color:var(--muted);margin-left:.7em}
.plan .note{grid-column:1/-1;font-size:.8rem;line-height:2.2;color:var(--muted);max-width:46em;margin-top:-.4rem}
.plan .sub{grid-column:1/-1;display:grid;gap:.1rem;margin-top:.4rem}
.plan .sub div{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;
  padding:.8rem 0;border-top:1px dotted var(--line)}
.plan .sub .lb{font-size:.83rem;color:var(--ink-soft);line-height:1.9}
.plan .sub .lb::before{content:"└ ";color:var(--muted)}
.plan .sub .vl{font-family:var(--f-serif);font-size:1.02rem;letter-spacing:.05em;white-space:nowrap}
.plan .sub .vl em{font-style:normal;font-family:var(--f-sans);font-size:.66em;color:var(--muted);
  letter-spacing:.12em;margin-left:.6em}
.price .foot{margin-top:2.6rem;font-size:.79rem;line-height:2.2;color:var(--muted)}

/* ---------- よくある質問 ---------- */
.faq details{border-top:1px solid var(--line)}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;gap:1.2rem;align-items:baseline;
  padding:1.6rem 0;font-family:var(--f-mincho);font-size:.95rem;letter-spacing:.09em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--f-serif);font-size:.85rem;color:var(--brass);flex:0 0 1.2em}
.faq summary::after{content:"＋";margin-left:auto;color:var(--muted);font-size:.8rem}
.faq details[open] summary::after{content:"－"}
.faq .a{display:flex;gap:1.2rem;padding:0 0 1.8rem;font-size:.86rem;line-height:2.35;color:var(--ink-soft)}
.faq .a::before{content:"A";font-family:var(--f-serif);font-size:.85rem;color:var(--line);flex:0 0 1.2em}

/* ---------- イベント ---------- */
.ev{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr) auto;gap:clamp(1rem,3vw,2.8rem);
  align-items:center;padding-block:clamp(1.9rem,3.4vw,2.6rem);border-top:1px solid var(--line)}
.ev:last-of-type{border-bottom:1px solid var(--line)}
.ev .meta{display:flex;flex-direction:column;gap:.7rem}
.ev .cat{display:block;margin-bottom:.7rem;font-family:var(--f-sans);font-size:.7rem;
  letter-spacing:.2em;color:var(--brass)}
.ev .date{font-family:var(--f-serif);font-size:clamp(1rem,1.7vw,1.2rem);letter-spacing:.08em}
.ev h3{font-family:var(--f-mincho);font-weight:500;font-size:clamp(1rem,1.7vw,1.18rem);letter-spacing:.11em;
  margin-bottom:.7rem;line-height:1.9}
.ev p{font-size:.83rem;line-height:2.2;color:var(--ink-soft)}
.ev .fee-in{display:block;font-family:var(--f-serif);font-size:.9rem;letter-spacing:.14em;color:var(--sage);margin-top:.5rem}
.ev.past{opacity:.6}

/* ---------- フォーム ---------- */
.contact .grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,6vw,6rem)}
form{display:grid;gap:1.9rem}
.field{display:grid;gap:.7rem}
label{font-family:var(--f-serif);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
input,select,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(247,244,237,.25);
  color:var(--bone);font-family:var(--f-sans);font-weight:300;font-size:.92rem;letter-spacing:.06em;
  padding:.85em 0;transition:border-color .5s;border-radius:0}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--brass)}
select option{background:var(--deep);color:var(--bone)}
textarea{resize:vertical;min-height:110px;line-height:2}
::placeholder{color:rgba(247,244,237,.3)}
form .btn{justify-self:start;margin-top:.8rem}
button.submit{justify-self:start;margin-top:.9rem;display:inline-flex;align-items:center;
  font-family:var(--f-sans);font-weight:300;font-size:.84rem;letter-spacing:.18em;
  padding:1.15em 3.2em;border:1px solid rgba(247,244,237,.5);color:var(--bone);background:transparent;
  cursor:pointer;-webkit-appearance:none;appearance:none;transition:background .5s ease,color .5s ease}
button.submit:hover{background:var(--bone);color:var(--deep)}

/* ---------- ページ間の送り ---------- */
.next-nav{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}
.next-nav a{padding:clamp(2.2rem,4vw,3.2rem) clamp(1.2rem,3vw,2.4rem);border-right:1px solid var(--line);
  display:block;transition:background .5s}
.next-nav a:last-child{border-right:0}
.next-nav a:hover{background:var(--bone-2)}
.next-nav .k{font-family:var(--f-serif);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--brass);margin-bottom:.7rem}
.next-nav .v{font-family:var(--f-mincho);font-size:1.02rem;letter-spacing:.13em}
.next-nav .v .ar{margin-left:.6em;color:var(--muted);font-size:.8rem}

/* ---------- 表（特商法など） ---------- */
dl.tbl{display:grid;border-top:1px solid var(--line)}
dl.tbl .row{display:grid;grid-template-columns:14em 1fr;gap:1.2rem 2rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}
dl.tbl dt{font-family:var(--f-mincho);font-size:.86rem;letter-spacing:.1em;line-height:2}
dl.tbl dd{font-size:.86rem;line-height:2.2;color:var(--ink-soft)}
.alert{border:1px solid var(--brass);padding:1.5em 1.7em;margin-bottom:3.4rem;font-size:.85rem;
  line-height:2.2;color:var(--ink-soft)}
.alert strong{font-weight:500;color:var(--ink)}

/* ---------- フッター ---------- */
footer{background:#101913;color:rgba(247,244,237,.5);padding:clamp(3.5rem,7vw,5.5rem) 0 2.6rem}
footer .grid{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-end;
  padding-bottom:2.6rem;border-bottom:1px solid rgba(247,244,237,.12)}
footer .logo{color:var(--bone);font-size:1.15rem}
footer .logo small{color:rgba(247,244,237,.45)}
footer nav{gap:1.8rem;flex-wrap:wrap}
footer nav a{color:rgba(247,244,237,.55);border:0;padding:0;text-transform:none;
  font-family:var(--f-sans);font-size:.72rem;letter-spacing:.12em}
footer nav a:hover{color:var(--bone)}
/* ★BUG FIX 2026-09-07：126行目の nav a.biz{color:var(--ink)} が効いてしまい、
   フッターの「お問い合わせ」が暗い背景に黒文字（コントラスト1.02:1）で
   事実上見えなくなっていた。他のフッターリンクと同じ色に戻す */
footer nav a.biz{border:0;padding:0;color:rgba(247,244,237,.55)}
footer nav a.biz:hover{color:var(--bone)}
footer .copy{margin-top:2rem;font-family:var(--f-serif);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase}

/* ---------- レスポンシブ ---------- */
@media(max-width:1100px){
  nav a .ja{display:none}
}
@media(max-width:980px){
  .lesson{grid-template-columns:auto 1fr;gap:1rem 1.6rem}
  .lesson .body{grid-column:1/-1;margin-top:.4rem}
  .message .grid,.contact .grid{grid-template-columns:1fr}
  .message .frame{max-width:340px;position:static}
  .ev{grid-template-columns:1fr;gap:1rem}
  .ev .tlink{justify-self:start}
  .voice-grid,.tiles{grid-template-columns:1fr}
  .tile .frame{aspect-ratio:16/9}
  .next-nav{grid-template-columns:1fr}
  .next-nav a{border-right:0;border-bottom:1px solid var(--line)}
  .nrow{grid-template-columns:8em 8em 1fr}
}
@media(max-width:760px){
  header.nav-open,body.home header.nav-open{background:transparent!important;backdrop-filter:none!important;
    border-color:transparent!important}
  header.nav-open .logo{color:var(--bone)!important;position:relative;z-index:120}
  header nav{position:fixed;inset:0;z-index:115;background:#141F1A;flex-direction:column;justify-content:center;
    gap:2.2rem;transform:translateY(-100%);transition:transform .6s cubic-bezier(.25,.8,.35,1);
    overflow-y:auto;padding:4.5rem 1rem}
  header nav.open{transform:none}
  header nav a,body.home header nav a{color:rgba(247,244,237,.9)!important;font-size:.95rem;letter-spacing:.3em}
  header nav a.biz,body.home header nav a.biz{border-color:rgba(247,244,237,.45)!important;color:var(--bone)!important}
  header nav a.on{border-bottom-color:var(--brass)}
  .burger{display:flex}
  header.nav-open .burger i{background:var(--bone)!important}
  .scroll-cue{display:none}
  .hero .acts{flex-direction:column;align-items:stretch}
  .hero .acts .btn{justify-content:center}
  .hero h1 .q{white-space:nowrap}
  .plan{grid-template-columns:1fr}
  .plan .fee{text-align:left}
  .plan .sub div{flex-direction:column;align-items:flex-start;gap:.35rem}
  .plan .sub .vl em{margin-left:.45em}
  .creds .row{grid-template-columns:1fr;gap:.5rem}
  .steps .st{grid-template-columns:1fr;gap:.5rem}
  .nrow{grid-template-columns:8em 1fr;row-gap:.4rem}
  .nrow .x{grid-column:1/-1}
  dl.tbl .row{grid-template-columns:1fr;gap:.7rem}
  body{line-height:2}
}

/* ── 2026-08-19 追加：タブレット幅（761〜1000px）でヘッダーのメニューが
   ロゴに重なっていたため、この幅からハンバーガーメニューに切り替える ── */
@media(max-width:1000px){
  header.nav-open,body.home header.nav-open{background:transparent!important;backdrop-filter:none!important;
    border-color:transparent!important}
  header.nav-open .logo{color:var(--bone)!important;position:relative;z-index:120}
  header nav{position:fixed;inset:0;z-index:115;background:#141F1A;flex-direction:column;justify-content:center;
    gap:2.2rem;transform:translateY(-100%);transition:transform .6s cubic-bezier(.25,.8,.35,1);
    overflow-y:auto;padding:4.5rem 1rem}
  header nav.open{transform:none}
  header nav a,body.home header nav a{color:rgba(247,244,237,.9)!important;font-size:.95rem;letter-spacing:.3em}
  header nav a.biz,body.home header nav a.biz{border-color:rgba(247,244,237,.45)!important;color:var(--bone)!important}
  header nav a.on{border-bottom-color:var(--brass)}
  .burger{display:flex}
  header.nav-open .burger i{background:var(--bone)!important}
}

.form-note{margin-top:1.1rem;font-family:var(--f-sans);font-size:.74rem;letter-spacing:.1em;
  line-height:2;color:rgba(247,244,237,.55)}


/* ---------- 講師の写真がまだ無いとき（miho.jpg を置くと自動で消える） ---------- */
.portrait{display:grid;place-items:center;background:rgba(247,244,237,.05);
  border:1px solid rgba(176,141,87,.28)}
.portrait > img{grid-area:1/1;width:100%;height:100%;object-fit:cover}
.portrait .noimg{grid-area:1/1;align-self:center;padding:clamp(1.6rem,4vw,2.6rem);text-align:center;
  font-family:var(--f-mincho);font-size:clamp(.95rem,1.5vw,1.12rem);line-height:2.6;
  letter-spacing:.14em;color:rgba(247,244,237,.82)}
.portrait .noimg span{display:block;font-family:var(--f-serif);font-style:italic;
  font-size:.86rem;letter-spacing:.22em;color:var(--brass);margin-bottom:1.4em}
.portrait:has(img) .noimg{display:none}
.portrait:has(img){background:none;border:0}

/* ---------- はじめての方へ（持ちもの・初めての方の不安） ---------- */
.first .lead{max-width:44em}
.fcards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,2rem);
  margin-top:clamp(2.4rem,5vw,3.6rem)}
.fcard{border-top:1px solid var(--line);padding-top:1.4rem}
.fcard h3{font-family:var(--f-mincho);font-weight:500;font-size:1rem;letter-spacing:.14em;
  margin-bottom:.9rem}
.fcard p{font-size:.85rem;line-height:2.2;color:var(--ink-soft)}
.bring{margin-top:clamp(2.6rem,5vw,4rem);background:var(--bone-2);
  padding:clamp(1.6rem,4vw,2.8rem);border-left:1px solid var(--brass)}
.bring h3{font-family:var(--f-mincho);font-weight:500;font-size:1.02rem;letter-spacing:.18em;
  margin-bottom:1.4rem}
.bring ul{list-style:none}
.bring li{padding:.95rem 0;border-top:1px solid var(--line);display:grid;
  grid-template-columns:9.5em 1fr;gap:.4rem 1.4rem;align-items:baseline}
.bring li:first-of-type{border-top:0;padding-top:0}
.bring li b{font-family:var(--f-mincho);font-weight:500;font-size:.92rem;letter-spacing:.1em}
.bring li span{font-size:.83rem;line-height:2.1;color:var(--ink-soft)}
.bring .foot{margin-top:1.4rem;font-size:.78rem;line-height:2;color:var(--muted)}
@media(max-width:860px){
  .fcards{grid-template-columns:1fr;gap:0}
  .fcard{padding-block:1.4rem}
  .bring li{grid-template-columns:1fr;gap:.3rem}
}

/* ---------- イベントが0件のときの案内・写真の注記 ---------- */
.none-acts{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin-top:1.8rem}
.imgnote{margin-top:1.2rem;font-size:.76rem;letter-spacing:.08em;color:var(--muted)}

/* ---------- 日本語のボタン（何が起きるか分かるように） ---------- */
.btn.jp{font-family:var(--f-mincho);font-size:.92rem;letter-spacing:.16em;
  text-transform:none;padding:1.05em 2.2em;line-height:1.6}
.btn.jp span{display:flex;flex-direction:column;align-items:center;gap:.5em}
.btn.jp small{font-family:var(--f-serif);font-size:.66em;letter-spacing:.3em;
  text-transform:uppercase;opacity:.7}
/* いちばん押してほしいボタンは、塗りつぶして目立たせる */
.btn.light.solid{background:var(--bone);color:var(--deep);border-color:var(--bone)}
.btn.light.solid::before{background:var(--deep)}
.btn.light.solid:hover{color:var(--bone)}

/* ---------- 指で触る画面では、押せる大きさにする（44px目安） ---------- */
@media(max-width:1024px),(pointer:coarse){
  .tlink{padding-block:.8em .6em;white-space:normal}
  .tlink .ar{white-space:nowrap}
  .burger{padding:14px 6px;margin-right:-6px}
  .next-nav a{padding-block:1.25rem}
  .faq summary,details summary{padding-block:.55em}
}

/* ---------- ページ内リンクで飛んだとき、見出しがヘッダーに隠れないように ---------- */
[id]{scroll-margin-top:clamp(76px,10vh,104px)}

/* ---------- メールソフトが開かなかったときの控え ---------- */
.form-fb{margin-top:2rem;padding:clamp(1.2rem,3vw,1.8rem);background:rgba(247,244,237,.07);
  border:1px solid rgba(176,141,87,.3)}
.form-fb p{font-size:.84rem;line-height:2.1;margin-bottom:1.1rem}
.form-fb textarea{width:100%;font-family:var(--f-sans);font-size:.82rem;line-height:2;
  padding:1rem;background:rgba(0,0,0,.18);color:var(--bone);
  border:1px solid rgba(247,244,237,.22);resize:vertical;margin-bottom:1.1rem}

/* 太字は 500 を使う（600 は読み込んでいないため） */
b,strong{font-weight:500}

/* ---------- お知らせ（日付つき・1件も無いときは出ない） ---------- */
.topics{padding-bottom:0}
.topics .nrow{grid-template-columns:5.5em 1fr auto}
.topics .nrow .d{font-family:var(--f-serif);font-size:.92rem;letter-spacing:.08em;color:var(--brass)}
.topics .nrow .x b{font-weight:500;font-family:var(--f-mincho);font-size:.95rem;letter-spacing:.06em}
@media(max-width:560px){
  .topics .nrow{grid-template-columns:1fr auto}
  .topics .nrow .d{grid-column:1/-1;margin-bottom:-.3rem}
}

/* ---------- イベントの受付状態・会場・定員 ---------- */
.ev-badge{display:inline-block;margin-left:.9em;font-family:var(--f-sans);font-size:.68rem;
  letter-spacing:.14em;padding:.32em 1em;border:1px solid currentColor;vertical-align:middle;
  white-space:nowrap}
.ev-badge.open{color:var(--sage)}
.ev-badge.few{color:#B4762F}
.ev-badge.full{color:var(--muted)}
.ev-badge.off{color:#B4472F}
.ev .at{font-family:var(--f-sans);font-size:.8em;letter-spacing:.06em;color:var(--muted)}
.ev-meta{display:grid;grid-template-columns:5em 1fr;gap:.35rem 1.1rem;margin-top:1rem;
  font-size:.82rem;line-height:2}
.ev-meta dt{color:var(--muted);letter-spacing:.1em}
.ev-meta dd{color:var(--ink-soft)}
.ev-meta dd small{display:block;font-size:.92em;color:var(--muted)}
.dark .ev-meta dd,.dark .ev-meta dd small{color:rgba(247,244,237,.72)}
.ev-closed{font-size:.8rem;letter-spacing:.1em;color:var(--muted);white-space:nowrap}
@media(max-width:560px){.ev-meta{grid-template-columns:4.5em 1fr}}

/* ════════════════════════════════════════════════════════════════════════
   VISUAL UPGRADE ── Material 3 の設計思想を、YOGA Think About の世界観に適用
   2026-09-06

   M3 から借りたのは「考え方」だけです（Shape / Elevation / Type scale /
   Color role / Motion / State layer）。見た目は Google ではなく、
   これまでのこのサイトの静けさをそのまま引き継いでいます。

   ここから下は、上の style.css を上書きする層です。
   丸ごと削除すれば、元のデザインに戻ります。
   ════════════════════════════════════════════════════════════════════════ */

/* ───────── 1. デザイントークン ───────── */
:root{
  /* 面の役割（M3 Surface roles の考え方） */
  --sf:        #F7F4ED;   /* いちばん下の地 */
  --sf-low:    #F1ECE1;   /* 少し沈んだ帯 */
  --sf-high:   #FCFAF6;   /* 浮いているカード */
  --sf-dark:   #16211B;
  --sf-dark-2: #1E2C24;
  --sf-dark-3: #253429;

  --on-sf:      #16150F;
  --on-sf-var:  #46423A;
  --on-sf-dim:  #6B665A;          /* 4.5:1 以上を確保 */
  --on-dark:    #F7F4ED;
  --on-dark-var:rgba(247,244,237,.80);
  --on-dark-dim:rgba(247,244,237,.62);

  --outline:      #D8D0BF;
  --outline-soft: rgba(216,208,191,.6);
  --outline-dark: rgba(247,244,237,.18);

  --brand:        #18241E;
  --tone:         #566349;        /* セージ（本文コントラスト 5.4:1 以上） */
  --tone-c:       #E6EADD;        /* セージの器 */
  --on-tone-c:    #3A4432;
  --accent:       #7A5D2E;        /* 真鍮（本文コントラスト 5.2:1 以上） */
  --accent-soft:  #B08D57;        /* 暗い面の上でだけ使う */
  --accent-c:     #F3E9D8;
  --on-accent-c:  #5E4522;
  --danger:       #9B3F2A;
  --danger-c:     #F8E7E2;

  /* かたち（M3 Shape scale） */
  --r-xs:6px; --r-s:10px; --r-m:16px; --r-l:24px; --r-xl:34px; --r-full:999px;

  /* 奥行き ── 影を積まず、面の明るさで作る。影は最小限 */
  --e-1: 0 1px 2px rgba(22,21,15,.045), 0 2px 6px rgba(22,21,15,.03);
  --e-2: 0 2px 8px rgba(22,21,15,.055), 0 10px 24px rgba(22,21,15,.045);
  --e-3: 0 10px 34px rgba(22,21,15,.10);

  /* 動き（M3 Motion） */
  --mo-1:150ms; --mo-2:260ms; --mo-3:420ms;
  --ease:      cubic-bezier(.2,0,0,1);
  --ease-out:  cubic-bezier(.05,.7,.1,1);

  /* 文字の階層（Display → Headline → Title → Body → Label） */
  --t-display:  clamp(2.2rem, 7.6vw, 4.7rem);
  --t-headline: clamp(1.36rem, 3.2vw, 2.45rem);
  --t-title:    clamp(1.04rem, 1.5vw, 1.2rem);
  --t-body:     clamp(.95rem, 1.02vw, 1.02rem);
  --t-label:    clamp(.8rem, .9vw, .87rem);
  --t-caption:  .8rem;

  --line: var(--outline);
  --ink-soft: var(--on-sf-var);
  --muted: var(--on-sf-dim);
  --brass: var(--accent);
  --sage: var(--tone);
}

/* ───────── 2. 文字の階層をはっきりさせる ───────── */
body{font-size:var(--t-body);line-height:1.95;letter-spacing:.045em;color:var(--on-sf)}

.hero h1{font-size:var(--t-display);line-height:1.42;letter-spacing:.055em;margin-bottom:1.5rem}
.hero h1 .q{display:block}
.hero h1 .s{font-size:.42em;letter-spacing:.16em;margin-top:.7em;color:var(--on-dark-var);line-height:1.8}
.hero-sub{font-size:clamp(.8rem,1.5vw,.95rem);letter-spacing:.34em;text-transform:uppercase;
  font-style:normal;color:var(--accent-soft);margin-bottom:1.5rem}
.hero p.intro{font-size:var(--t-body);line-height:2.15;letter-spacing:.06em;
  color:var(--on-dark-var);max-width:26em;margin-bottom:2.6rem}

h2.ttl{font-size:var(--t-headline);line-height:1.55;letter-spacing:.09em;margin-bottom:1.1em}
h2.ttl.tight{margin-bottom:.7em}
.page-head h1{font-size:clamp(1.62rem,4.4vw,3rem);line-height:1.5;letter-spacing:.1em}
.page-head p.sub{font-size:var(--t-body);line-height:2.1;letter-spacing:.06em;color:var(--on-dark-var)}
.lead{font-size:var(--t-body);line-height:2.1;letter-spacing:.06em;color:var(--on-sf-var)}
.eyebrow{font-size:var(--t-caption);letter-spacing:.32em;color:var(--accent)}
.dark .eyebrow,.hero .eyebrow{color:var(--accent-soft)}
.tile h3,.ev h3,.plan h3,.steps .st h3,.fcard h3,.bring h3{font-size:var(--t-title);line-height:1.7;letter-spacing:.08em}
.tile .cap-in span,.ev p,.plan .note,.steps .st p,.fcard p,.vc blockquote{letter-spacing:.05em}
.ev p,.steps .st p,.fcard p{font-size:var(--t-label);line-height:2.05;color:var(--on-sf-var)}

/* ───────── 3. かたち（角丸）を入れる ───────── */
.frame,.portrait{border-radius:var(--r-m)}
.tile .frame{border-radius:var(--r-l)}
.page-head{border-radius:0 0 var(--r-xl) var(--r-xl)}
.bring{border-radius:var(--r-l);border-left:0}
.form-fb,.form-fb textarea{border-radius:var(--r-m)}
input,select,textarea{border-radius:var(--r-s)}

/* ───────── 4. ボタン（M3 の Filled / Tonal / Outlined / Text の考え方） ───────── */
.btn{border-radius:var(--r-full);letter-spacing:.12em;text-transform:none;
  font-family:var(--f-mincho);font-size:var(--t-label);font-weight:500;
  padding:1.05em 2.1em;gap:.6em;min-height:52px;justify-content:center;
  transition:background var(--mo-2) var(--ease),color var(--mo-2) var(--ease),
             border-color var(--mo-2) var(--ease),box-shadow var(--mo-2) var(--ease),
             transform var(--mo-1) var(--ease)}
.btn::before{border-radius:inherit;transform:none;opacity:0;background:currentColor;
  transition:opacity var(--mo-2) var(--ease);z-index:0}
.btn:hover::before{transform:none;opacity:.08}
.btn:active{transform:scale(.985)}
.btn span{z-index:1}

/* Filled ＝ いちばん押してほしいもの */
.btn.solid,.btn.light.solid{background:var(--brand);color:var(--on-dark);border-color:transparent;
  box-shadow:var(--e-1)}
.btn.solid:hover{box-shadow:var(--e-2);color:var(--on-dark)}
.btn.solid::before{background:#fff}
.btn.light.solid{background:var(--sf);color:var(--brand)}
.btn.light.solid::before{background:var(--brand)}
.btn.light.solid:hover{color:var(--brand)}
/* Outlined ＝ 二番目 */
.btn:not(.solid){border-color:var(--outline);color:var(--on-sf);background:transparent}
.btn:not(.solid):hover{border-color:var(--on-sf);color:var(--on-sf)}
.dark .btn:not(.solid),.btn.light:not(.solid){border-color:var(--outline-dark);color:var(--on-dark)}
.dark .btn:not(.solid):hover,.btn.light:not(.solid):hover{border-color:var(--on-dark);color:var(--on-dark)}
.btn.jp{font-size:var(--t-label);letter-spacing:.12em;padding:.95em 2rem}
.btn.jp span{gap:.35em}
.btn.jp small{font-size:.62em;letter-spacing:.26em;opacity:.62}

/* Text link ＝ 三番目 */
.tlink{font-size:var(--t-label);letter-spacing:.09em;border-bottom-width:1px;
  transition:border-color var(--mo-2) var(--ease),color var(--mo-2) var(--ease)}
.tlink .ar{transition:transform var(--mo-2) var(--ease);display:inline-block}
.tlink:hover .ar{transform:translateX(4px)}

/* ───────── 5. Chip（イベントの受付状態） ───────── */
.ev-badge{border-radius:var(--r-full);border:0;font-size:.72rem;font-weight:500;
  letter-spacing:.1em;padding:.42em 1em;margin-left:.7em}
.ev-badge.open{background:var(--tone-c);color:var(--on-tone-c)}
.ev-badge.few {background:var(--accent-c);color:var(--on-accent-c)}
.ev-badge.full{background:var(--sf-low);color:var(--on-sf-dim);box-shadow:inset 0 0 0 1px var(--outline)}
.ev-badge.off {background:var(--danger-c);color:var(--danger)}
.dark .ev-badge.full{background:rgba(247,244,237,.08);color:var(--on-dark-dim);box-shadow:none}

/* ───────── 6. カード（面で階層を作る。影は最小限） ───────── */
.tile{border-radius:var(--r-l);transition:transform var(--mo-3) var(--ease)}
.tile:hover{transform:translateY(-4px)}
.tile .frame{transition:opacity var(--mo-3) var(--ease),box-shadow var(--mo-3) var(--ease)}
.tile:hover .frame{opacity:1;box-shadow:var(--e-2)}

.fcards{gap:clamp(.9rem,2vw,1.4rem)}
.fcard{background:var(--sf-high);border:1px solid var(--outline-soft);border-top:1px solid var(--outline-soft);
  border-radius:var(--r-l);padding:clamp(1.5rem,3vw,1.9rem);box-shadow:var(--e-1);
  transition:box-shadow var(--mo-3) var(--ease),transform var(--mo-3) var(--ease)}
.fcard:hover{box-shadow:var(--e-2);transform:translateY(-2px)}
.fcard .ic{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-full);
  background:var(--tone-c);margin-bottom:1.1rem}
.fcard .ic svg{width:22px;height:22px;stroke:var(--on-tone-c);fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.bring{background:var(--sf-high);border:1px solid var(--outline-soft);box-shadow:var(--e-1)}

.vc{border-top:0;background:var(--sf-high);border:1px solid var(--outline-soft);
  border-radius:var(--r-l);padding:clamp(1.5rem,3vw,2rem);box-shadow:var(--e-1)}
.dark .vc{background:rgba(247,244,237,.05);border-color:var(--outline-dark);box-shadow:none}

/* ───────── 7. スケジュールカード（一目で分かるように） ───────── */
.ev{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;
  background:var(--sf-high);border:1px solid var(--outline-soft);border-radius:var(--r-l);
  padding:clamp(1.3rem,2.6vw,1.8rem);margin-bottom:1rem;gap:clamp(1rem,2.4vw,2rem);
  box-shadow:var(--e-1);transition:box-shadow var(--mo-3) var(--ease),transform var(--mo-3) var(--ease)}
.ev:hover{box-shadow:var(--e-2);transform:translateY(-2px)}
.ev:last-of-type{border-bottom:1px solid var(--outline-soft)}
.dark .ev{background:rgba(247,244,237,.055);border-color:var(--outline-dark);box-shadow:none}
.dark .ev:hover{background:rgba(247,244,237,.08)}
.tint .ev{background:var(--sf);border-color:var(--outline-soft)}

.ev .daybox{display:grid;place-items:center;gap:.1rem;min-width:74px;
  background:var(--brand);color:var(--on-dark);border-radius:var(--r-m);
  padding:.85rem .7rem 1rem;text-align:center;align-self:start}
.ev .daybox .m{font-family:var(--f-serif);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent-soft)}
.ev .daybox .d{font-family:var(--f-serif);font-size:1.85rem;line-height:1.15;letter-spacing:.02em}
.ev .daybox .w{font-size:.68rem;letter-spacing:.14em;color:var(--on-dark-dim)}
.ev.past .daybox{background:var(--sf-low);color:var(--on-sf-dim)}
.ev.past .daybox .m{color:var(--on-sf-dim)}
.ev.past .daybox .w{color:var(--on-sf-dim)}

.ev .date{font-size:var(--t-caption);letter-spacing:.12em;color:var(--on-sf-dim);
  font-family:var(--f-sans);margin-bottom:.5rem;display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:center}
.dark .ev .date{color:var(--on-dark-dim)}
.ev .cat{display:inline-block;margin:0;padding:.28em .9em;border-radius:var(--r-full);
  background:var(--sf-low);color:var(--on-sf-var);font-size:.7rem;letter-spacing:.12em}
.dark .ev .cat{background:rgba(247,244,237,.09);color:var(--on-dark-var)}
.ev h3{margin-bottom:.55rem;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}
.ev .at{font-size:.78em}
.ev-meta{margin-top:.9rem;gap:.25rem 1rem;font-size:var(--t-caption)}
.ev-apply{align-self:center}
.ev.past{opacity:.72}

/* ───────── 8. お知らせ ───────── */
.topics .nrow,.news .nrow{border-top:0;border-radius:var(--r-m);padding:1.05rem 1.1rem;
  margin-bottom:.4rem;background:var(--sf-high);border:1px solid var(--outline-soft);
  transition:box-shadow var(--mo-2) var(--ease),transform var(--mo-2) var(--ease)}
.news .nrow:last-of-type{border-bottom:1px solid var(--outline-soft)}
a.nrow:hover{background:var(--sf-high);padding-inline:1.1rem;box-shadow:var(--e-2);transform:translateY(-2px)}
.topics .nrow .d{font-size:.86rem}
.news .nrow .t{border:0;background:var(--tone-c);color:var(--on-tone-c);border-radius:var(--r-full);
  font-family:var(--f-sans);font-size:.72rem;letter-spacing:.1em;padding:.42em .2em;text-transform:none}

/* ───────── 9. FAQ（開閉に動きをつける） ───────── */
details{border-radius:var(--r-m);background:var(--sf-high);border:1px solid var(--outline-soft);
  margin-bottom:.55rem;overflow:hidden;transition:box-shadow var(--mo-2) var(--ease)}
details[open]{box-shadow:var(--e-1)}
details summary{list-style:none;cursor:pointer;padding:1.05em 3.2em 1.05em 1.2em;position:relative;
  font-family:var(--f-mincho);font-size:var(--t-label);letter-spacing:.07em;
  transition:background var(--mo-1) var(--ease)}
details summary::-webkit-details-marker{display:none}
details summary:hover{background:var(--sf-low)}
details summary::after{content:"";position:absolute;right:1.25em;top:50%;width:9px;height:9px;
  border-right:1.5px solid var(--on-sf-dim);border-bottom:1.5px solid var(--on-sf-dim);
  transform:translateY(-70%) rotate(45deg);transition:transform var(--mo-2) var(--ease)}
details[open] summary::after{transform:translateY(-25%) rotate(225deg)}
details .a{padding:0 1.2em 1.3em;font-size:var(--t-label);line-height:2.05;color:var(--on-sf-var);
  animation:acc var(--mo-3) var(--ease)}
@keyframes acc{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ───────── 10. ヘッダー・ナビ ───────── */
header{transition:background var(--mo-3) var(--ease),border-color var(--mo-3) var(--ease),
  box-shadow var(--mo-3) var(--ease)}
header:not([class*="home"]),body.home header.solid{box-shadow:var(--e-1)}
nav a.biz{border-radius:var(--r-full);padding:.6em 1.25em;min-height:40px;display:inline-flex;
  flex-direction:column;justify-content:center;transition:background var(--mo-2) var(--ease),
  color var(--mo-2) var(--ease),border-color var(--mo-2) var(--ease)}
nav a.biz:hover{background:var(--brand);color:var(--on-dark);border-color:var(--brand)}
body.home header nav a.biz:hover{background:var(--sf);color:var(--brand);border-color:var(--sf)}
.burger{border-radius:var(--r-full);transition:background var(--mo-2) var(--ease)}
.burger:hover{background:rgba(22,21,15,.06)}
body.home header .burger:hover{background:rgba(247,244,237,.12)}

/* ───────── 11. フォーム ───────── */
input,select,textarea{background:rgba(247,244,237,.06);border:1px solid var(--outline-dark);
  padding:.9em 1em;transition:border-color var(--mo-2) var(--ease),background var(--mo-2) var(--ease)}
input:focus,select:focus,textarea:focus{border-color:var(--accent-soft);background:rgba(247,244,237,.1)}
label{font-family:var(--f-sans);font-size:var(--t-caption);letter-spacing:.12em;
  text-transform:none;color:var(--on-dark-var)}
.submit{border-radius:var(--r-full)}

/* ───────── 12. フォーカス（キーボード操作で今どこにいるか分かる） ───────── */
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-xs)}
.dark a:focus-visible,.hero a:focus-visible,header a:focus-visible,
.page-head a:focus-visible,footer a:focus-visible{outline-color:var(--accent-soft)}

/* ───────── 13. ヒーロー（3Dを背景として馴染ませ、文字を主役に） ───────── */
.hero-media::before{
  background:
    radial-gradient(120% 85% at 12% 45%, rgba(8,14,11,.74) 0%, rgba(8,14,11,.30) 46%, rgba(8,14,11,0) 74%),
    linear-gradient(180deg, rgba(8,14,11,.58) 0%, rgba(8,14,11,.16) 26%,
                    rgba(8,14,11,.20) 58%, rgba(8,14,11,.72) 100%)}
.hero-media canvas.hero-gl{transition:opacity 2.2s var(--ease-out)}
.hero-media canvas.hero-gl.on{opacity:.88}
.hero .wrap{padding-block:8rem 6.5rem}
.hero .acts{gap:.8rem}
.scroll-cue{color:var(--on-dark-dim);font-size:.62rem;letter-spacing:.3em}

/* ───────── 14. セクションの面を切り替えて、奥行きを出す ───────── */
.section.tint{background:var(--sf-low)}
.section.dark{background:var(--sf-dark)}
.message{background:linear-gradient(168deg,var(--sf-dark-2) 0%,var(--sf-dark) 62%)}
.biz-band{background:linear-gradient(168deg,var(--sf-dark) 0%,var(--sf-dark-2) 100%)}

/* ───────── 15. 動きを減らす設定を尊重する ───────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero-media canvas.hero-gl{display:none}
  .scroll-cue::after{animation:none}
}

/* ───────── 16. スマホ（375〜430px を主戦場として最適化） ───────── */
@media(max-width:600px){
  .hero .wrap{padding-block:7rem 8.5rem}
  .hero h1{line-height:1.38;letter-spacing:.03em}
  .hero .acts{flex-direction:column;align-items:stretch;gap:.7rem}
  .hero .acts .btn{width:100%}
  .ev{grid-template-columns:auto minmax(0,1fr);row-gap:.9rem}
  .ev .daybox{min-width:64px;padding:.7rem .55rem .8rem}
  .ev .daybox .d{font-size:1.6rem}
  .ev-apply{grid-column:1/-1;justify-self:stretch}
  .ev-apply .tlink{display:block;text-align:center;border:1px solid var(--outline);
    border-radius:var(--r-full);padding:.85em 1em;min-height:48px}
  .dark .ev-apply .tlink{border-color:var(--outline-dark)}
  .ev-closed{display:block;text-align:center;padding:.85em 1em;background:var(--sf-low);
    border-radius:var(--r-full)}
  .page-head{border-radius:0 0 var(--r-l) var(--r-l)}
  details summary{padding-right:2.8em}
}

/* ボタンの文字は、押す前に読めるだけの大きさを確保する */
.btn{font-size:clamp(.94rem,1.1vw,1rem)}
.btn.jp{font-size:clamp(.94rem,1.1vw,1rem)}
.btn.jp small{font-size:.6em}
.tlink{font-size:clamp(.86rem,.95vw,.9rem)}

/* 日付ブロックは月と日だけ。曜日と時刻は右の行に出す */
.ev .daybox{padding:.9rem .75rem 1rem;gap:.25rem}
.ev .daybox .d{font-size:1.95rem}
@media(max-width:600px){.ev .daybox .d{font-size:1.7rem}}

/* 読み上げ用（画面には出さない） */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* スマホでは、申し込みボタンをカード幅いっぱいに（押しやすくするため） */
@media(max-width:600px){
  .ev-apply{width:100%}
  .ev-apply .tlink,.ev-apply .ev-closed{width:100%;box-sizing:border-box}
}

/* ロゴの下の小さい文字は、9px だと読めないので上げる */
.logo small{font-size:.64rem;letter-spacing:.16em;color:var(--on-sf-var)}
body.home header .logo small{color:var(--on-dark-var)}
body.home header.solid .logo small{color:var(--on-sf-var)}

/* ───────── 暗い面の上では、アクセント色を明るいほうへ切り替える ─────────
   （濃い真鍮は白い紙の上で読みやすく、暗い面の上では逆に沈むため） */
.page-head,.dark,.hero,footer,.message,.biz-band,.contact{
  --accent:#B08D57;
  --tone:#9FAE8E;
  --on-sf-dim:rgba(247,244,237,.66);
  --on-sf-var:rgba(247,244,237,.80);
  /* ★ 別名も一緒に上書きする。:root で var() をたどった値は
        子で元の変数を変えても変わらないため */
  --brass:#B08D57;
  --sage:#9FAE8E;
  --muted:rgba(247,244,237,.66);
  --ink-soft:rgba(247,244,237,.80);
  --line:rgba(247,244,237,.18);
}
.page-head .crumb{color:var(--on-dark-dim)}
.page-head .crumb a:hover{color:var(--on-dark)}

/* ---------- スマホ下部の申し込みボタン（控えめに、邪魔しないように） ---------- */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(247,244,237,.86);backdrop-filter:blur(14px);
  border-top:1px solid var(--outline-soft);
  transform:translateY(105%);opacity:0;pointer-events:none;
  transition:transform var(--mo-3) var(--ease),opacity var(--mo-2) var(--ease)}
.cta-bar.on{transform:none;opacity:1;pointer-events:auto}
.cta-bar a{display:flex;align-items:center;justify-content:center;min-height:50px;
  border-radius:var(--r-full);background:var(--brand);color:var(--on-dark);
  font-family:var(--f-mincho);font-size:.98rem;font-weight:500;letter-spacing:.1em}
@media(min-width:601px){.cta-bar{display:none}}
@media (prefers-reduced-motion:reduce){.cta-bar{transition:none}}

/* ════════════════════════════════════════════════════════════════════
   講師写真 ── 写真そのものが主役になる組み（2026-09-06）
   丸型アバターや「写真＋経歴」の型は使わず、面いっぱいの写真と
   余白で構成する。3Dは背景側にとどめ、写真と競合させない。
   ════════════════════════════════════════════════════════════════════ */

/* ── ① 面の半分を写真が占める非対称レイアウト（ホームの講師欄） ── */
.feature{padding:0;overflow:hidden}
.feature-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  align-items:stretch;min-height:min(88vh,780px)}
.feature-media{position:relative;overflow:hidden}
.feature-media picture,.feature-media img{display:block;width:100%;height:100%}
.feature-media img{object-fit:cover}
/* 写真の縁を、暗い面へなじませる（切り貼り感を消す） */
.feature-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(22,33,27,0) 62%,rgba(22,33,27,.55) 100%)}
.feature-body{display:flex;align-items:center}
.feature-body .inner{padding:clamp(3.4rem,7vw,6rem) var(--pad) clamp(3.4rem,7vw,6rem)
  clamp(1.8rem,4vw,4.2rem);max-width:660px}
.feature .name{margin-bottom:.3em}
.feature p{margin-bottom:1.3em}

/* ── ② 大きな1枚（講師ページ）── */
.pf-hero{position:relative}
.pf-hero .shot{border-radius:var(--r-xl);overflow:hidden;position:relative;
  box-shadow:var(--e-2);background:var(--sf-dark-2)}
.pf-hero .shot img{display:block;width:100%;height:auto}
/* 写真の上に重ねる小さな英字。写真の一部として読ませる */
.pf-hero .tagline{position:absolute;left:clamp(1.1rem,2.5vw,2rem);bottom:clamp(1.1rem,2.5vw,1.9rem);
  z-index:2;font-family:var(--f-serif);font-style:italic;font-size:clamp(.86rem,1.4vw,1.05rem);
  letter-spacing:.2em;color:rgba(247,244,237,.94);text-shadow:0 1px 14px rgba(10,16,13,.55)}
.pf-hero .shot::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,16,13,0) 58%,rgba(10,16,13,.42) 100%)}

/* ── ③ 横位置の落ち着いた1枚（はじめての方へ）── */
.calm-shot{margin:clamp(2.2rem,5vw,3.4rem) 0 0;border-radius:var(--r-l);overflow:hidden;
  position:relative;box-shadow:var(--e-1)}
.calm-shot img{display:block;width:100%;height:auto}
.calm-shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.4rem 1.1rem;
  font-family:var(--f-mincho);font-size:var(--t-label);letter-spacing:.1em;
  color:rgba(247,244,237,.96);
  /* ★FIX 2026-09-07：終端.62 では、明るい昼の写真の上でキャプションが
     最悪 4.11:1 まで落ちていた（AA 4.5:1 未満）。実測で .82 にすると 8.4:1。
     他の写真キャプション（.mshot）と同じ濃さに揃える */
  text-shadow:0 1px 10px rgba(10,16,13,.7);
  background:linear-gradient(180deg,rgba(10,16,13,0),rgba(10,16,13,.82))}

/* ── スマホ（375〜430px を主戦場に最適化）── */
@media(max-width:900px){
  .feature-grid{grid-template-columns:1fr;min-height:0}
  .feature-media{aspect-ratio:4/5}
  .feature-media img{object-position:50% 26%}   /* 顔を上寄りに保つ */
  .feature-media::after{background:linear-gradient(180deg,rgba(22,33,27,0) 66%,rgba(22,33,27,.9) 100%)}
  .feature-body .inner{padding:clamp(2.4rem,7vw,3.4rem) var(--pad) clamp(3rem,8vw,4rem)}
}
@media(max-width:600px){
  .feature-media{aspect-ratio:3/4}
  .pf-hero .shot{border-radius:var(--r-l)}
  .calm-shot figcaption{padding:2.2rem 1.1rem .95rem}
}

/* 「Miho Miyauchi ／ ヨガインストラクター」が1行に収まるように */
@media(max-width:600px){
  .message .role,.feature .role{font-size:.74rem;letter-spacing:.16em;line-height:2}
}

/* ════════════════════════════════════════════════════════════════════
   レッスンの風景 ── 「ここでどんな時間を過ごせるか」を伝える組み
   ギャラリーにせず、大小と余白で編集する。3Dは背景側、写真は面側。
   ════════════════════════════════════════════════════════════════════ */

/* ── HERO直下の大型帯：3Dの抽象から、実際の場所へ受け渡す ── */
.band-shot{position:relative;background:var(--sf-dark);overflow:hidden}
.band-shot img{display:block;width:100%;height:100%;object-fit:cover;
  aspect-ratio:16/9;object-position:50% 50%}
.band-shot::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,16,13,.52) 0%,rgba(10,16,13,.08) 34%,
             rgba(10,16,13,.10) 62%,rgba(10,16,13,.78) 100%)}
.band-shot .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(1.6rem,4vw,3.2rem) var(--pad) clamp(1.6rem,4vw,3rem)}
.band-shot .cap .en{font-family:var(--f-serif);font-style:italic;
  font-size:clamp(.78rem,1.3vw,.95rem);letter-spacing:.26em;color:var(--accent-soft);
  margin-bottom:.7rem}
.band-shot .cap p{font-family:var(--f-mincho);font-size:clamp(1.02rem,2.1vw,1.5rem);
  line-height:1.85;letter-spacing:.1em;color:var(--on-dark);max-width:22em;
  text-shadow:0 1px 18px rgba(10,16,13,.5)}

/* ── CLASS MOMENTS：非対称の組み ── */
.moments{background:var(--sf-low)}
.moments .head{display:flex;align-items:baseline;justify-content:space-between;
  gap:1.4rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3rem)}
.moments .head .lead{max-width:30em;margin-top:.4rem}
.mgrid{display:grid;gap:clamp(.8rem,1.8vw,1.4rem);
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  grid-template-areas:"tall wide" "tall small"}
.m-tall {grid-area:tall}
.m-wide {grid-area:wide}
.m-small{grid-area:small}
.mshot{position:relative;overflow:hidden;border-radius:var(--r-l);
  background:var(--sf-dark-2);box-shadow:var(--e-1);
  transition:box-shadow var(--mo-3) var(--ease),transform var(--mo-3) var(--ease)}
.mshot:hover{box-shadow:var(--e-2);transform:translateY(-3px)}
.mshot img{display:block;width:100%;height:100%;object-fit:cover}
.m-tall  img{aspect-ratio:4/5}
.m-wide  img{aspect-ratio:4/3}
.m-small img{aspect-ratio:1/1}
.mshot figcaption{position:absolute;left:0;right:0;bottom:0;
  padding:2.4rem clamp(.9rem,2vw,1.3rem) clamp(.8rem,1.6vw,1.1rem);
  font-family:var(--f-mincho);font-size:var(--t-caption);letter-spacing:.1em;
  line-height:1.9;color:rgba(247,244,237,.96);
  background:linear-gradient(180deg,rgba(10,16,13,0),rgba(10,16,13,.68))}
.moments .note{margin-top:1.4rem;font-size:var(--t-caption);color:var(--on-sf-dim);
  letter-spacing:.06em}

/* ── タイルの写真（レッスン／イベント）── */
.tile .frame img{object-position:50% 42%}

@media(max-width:820px){
  .mgrid{grid-template-columns:1fr 1fr;grid-template-areas:"tall tall" "wide small"}
  .m-tall img{aspect-ratio:3/4}
  .m-wide img{aspect-ratio:1/1}
}
@media(max-width:820px){
  /* スマホでは帯を縦長にして、写真と言葉が重ならない高さを確保する */
  .band-shot img{aspect-ratio:4/5;object-position:50% 42%}
  .band-shot::after{background:linear-gradient(180deg,rgba(10,16,13,.42) 0%,
    rgba(10,16,13,.05) 26%,rgba(10,16,13,.30) 58%,rgba(10,16,13,.88) 100%)}
  .band-shot .cap{padding-bottom:clamp(1.4rem,4vw,2rem)}
}
@media(max-width:520px){
  .mgrid{grid-template-columns:1fr;grid-template-areas:"tall" "wide" "small"}
  .m-wide img{aspect-ratio:4/3}
  /* ★2026-09-20：3枚目を縦長の写真（スタジオのグループレッスン）に変えたため、
     スマホでも横長にせず正方形のままにする。16/10 だと上げた手と足元が同時に切れる */
  .m-small img{aspect-ratio:1/1}
}
/* 写真の上の説明は、どんな写真でも読めるだけの下地を敷く */
.mshot figcaption{background:linear-gradient(180deg,rgba(10,16,13,0) 0%,
  rgba(10,16,13,.38) 38%,rgba(10,16,13,.88) 100%);padding-top:3.2rem;
  text-shadow:0 1px 10px rgba(10,16,13,.7)}


/* ── 3Dから本文へ受け渡す、言葉だけの帯（写真を置かない設計）────────── */
.statement{background:var(--sf-dark);color:var(--on-dark);
  padding-block:clamp(3.4rem,8vw,6rem);position:relative;overflow:hidden}
/* 濃緑の面に、ごくうすい光。3Dの余韻を面で受ける */
.statement::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(72% 120% at 12% 0%,rgba(176,141,87,.13),transparent 62%)}
.statement .wrap{position:relative;z-index:1}
.statement .en{font-family:var(--f-serif);font-style:italic;
  font-size:clamp(.78rem,1.3vw,.95rem);letter-spacing:.28em;color:var(--accent-soft);
  margin-bottom:1.4rem}
.statement .line{font-family:var(--f-mincho);font-weight:400;
  font-size:clamp(1.5rem,4vw,2.7rem);line-height:1.7;letter-spacing:.1em;
  margin-bottom:1.6rem}
.statement .sub{font-size:var(--t-body);line-height:2.15;letter-spacing:.06em;
  color:var(--on-dark-var);max-width:30em}

/* ── レッスンの風景：写真の代わりに置く言葉のカード ────────────────── */
.mnote{background:var(--sf-high);border:1px solid var(--outline-soft);
  border-radius:var(--r-l);box-shadow:var(--e-1);
  padding:clamp(1.5rem,3.4vw,2.2rem);display:flex;flex-direction:column;justify-content:center}
.mnote .q{font-family:var(--f-serif);font-style:italic;font-size:2.2rem;line-height:1;
  color:var(--outline);margin-bottom:.6rem}
.mnote p{font-family:var(--f-mincho);font-size:var(--t-label);line-height:2.15;
  letter-spacing:.08em;color:var(--on-sf)}
.mnote .by{margin-top:1.2rem;font-family:var(--f-sans);font-size:var(--t-caption);
  letter-spacing:.1em;color:var(--on-sf-dim)}
@media(max-width:520px){.mnote{padding:1.4rem}}

/* ════════════════════════════════════════════════════════════════════
   BRUSH-UP（2026-09-06）── 静かで、余白があって、少し尖っている方向へ
   足すだけでなく、削っています：
   ・フリー素材の図案タイル3枚 → 削除（導線が上と重複していたため）
   ・導線カード3枚 → 罫線と余白の一覧へ
   ════════════════════════════════════════════════════════════════════ */

/* ───────── HERO ───────── */
.hero{min-height:100svh;display:grid;
  grid-template-rows:1fr auto auto;align-items:end;padding-block:0}
/* ブランド名を、背景と本文のあいだの「層」として置く */
.hero-type{position:absolute;left:0;right:0;top:clamp(5.2rem,12vh,9rem);z-index:1;
  padding-inline:var(--pad);pointer-events:none;
  font-family:var(--f-serif);font-weight:300;line-height:.92;
  font-size:clamp(3.4rem,17vw,11rem);letter-spacing:.02em;
  color:rgba(247,244,237,.13);
  mix-blend-mode:soft-light;
  display:grid;justify-items:start}
.hero-type span{display:block}
.hero-type i{font-style:normal;color:var(--accent-soft);opacity:.55}
@supports not (mix-blend-mode:soft-light){.hero-type{color:rgba(247,244,237,.1)}}

.hero .hero-body{position:relative;z-index:2;grid-row:2;
  padding-block:0 clamp(1.4rem,3vw,2rem)}
.hero h1{font-size:clamp(1.95rem,6.4vw,4.1rem);line-height:1.46;letter-spacing:.05em;
  margin-bottom:1.1rem;max-width:15em}
.hero h1 .q{display:block}
.hero h1 .s{display:block;font-size:.56em;letter-spacing:.13em;margin-top:.62em;
  color:var(--on-dark-var);line-height:1.8}
.hero p.intro{font-size:var(--t-body);line-height:2.1;letter-spacing:.08em;
  color:var(--on-dark-var);max-width:24em;margin-bottom:2.1rem}
.hero .acts{align-items:center;gap:1.1rem 1.6rem}
.tlink.light{border-bottom-color:rgba(247,244,237,.34);color:var(--on-dark)}
.tlink.light:hover{border-bottom-color:var(--on-dark)}

/* 足元：細い線と署名だけ。Scroll の文字は消した（引き算） */
.hero-foot{position:relative;z-index:2;grid-row:3;
  display:flex;align-items:center;gap:1rem;
  padding:0 var(--pad) clamp(1.6rem,4vh,2.6rem)}
.hero-foot .cue{display:block;width:46px;height:1px;
  background:linear-gradient(90deg,rgba(247,244,237,.62),rgba(247,244,237,0));
  animation:cueline 3.4s var(--ease) infinite}
.hero-foot .sig{font-family:var(--f-serif);font-style:italic;
  font-size:clamp(.72rem,1.1vw,.86rem);letter-spacing:.26em;color:var(--on-dark-dim)}
@keyframes cueline{0%,100%{transform:scaleX(.35);opacity:.4;transform-origin:left}
  50%{transform:scaleX(1);opacity:1;transform-origin:left}}
.scroll-cue{display:none}

/* HEROの下端を、次の面へ溶かす（箱が終わって箱が始まる感じを消す） */
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:26vh;z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(22,33,27,0),rgba(22,33,27,.86) 72%,var(--sf-dark))}

/* ───────── いま受けられるもの：カードをやめ、罫線と余白で ───────── */
.offer{padding-block:clamp(3.4rem,8vw,6.5rem);background:var(--sf)}
.offer .eyebrow{margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.olist{list-style:none}
.olist li{border-top:1px solid var(--outline)}
.olist li:last-child{border-bottom:1px solid var(--outline)}
.olist a{display:grid;grid-template-columns:3.2em 1fr auto;align-items:baseline;
  gap:.4rem 1.6rem;padding:clamp(1.4rem,3vw,2rem) 0;
  transition:padding-inline var(--mo-3) var(--ease),background var(--mo-3) var(--ease)}
.olist a:hover{background:var(--sf-low);padding-inline:1.1rem}
.olist .n{font-family:var(--f-serif);font-size:.86rem;letter-spacing:.2em;color:var(--accent)}
.olist .ttl{font-family:var(--f-mincho);font-size:clamp(1.1rem,2.2vw,1.4rem);
  letter-spacing:.14em;line-height:1.5;display:flex;align-items:baseline;gap:.9em;flex-wrap:wrap}
.olist .ttl em{font-family:var(--f-serif);font-style:italic;font-size:.58em;
  letter-spacing:.2em;color:var(--on-sf-dim)}
.olist .d{grid-column:2;font-size:var(--t-label);line-height:2.05;color:var(--on-sf-var);
  margin-top:.5rem}
.olist .ar{font-family:var(--f-serif);color:var(--accent);align-self:center;
  transition:transform var(--mo-2) var(--ease)}
.olist a:hover .ar{transform:translateX(5px)}
.offer .foot{margin-top:clamp(1.8rem,4vw,2.6rem)}
@media(max-width:560px){
  .olist a{grid-template-columns:2.6em 1fr auto;gap:.3rem 1rem}
  .olist .d{font-size:var(--t-caption);line-height:1.95}
}

/* HEROのボタン：塗りは横いっぱい、テキストリンクは左揃えのまま（伸ばさない） */
@media(max-width:600px){
  .hero .acts{flex-direction:column;align-items:flex-start;gap:1.3rem}
  .hero .acts .btn{width:100%}
  .hero .acts .tlink{width:auto;align-self:flex-start;white-space:nowrap}
  .hero-type{top:clamp(4.6rem,11vh,7rem)}
  .hero .hero-body{padding-bottom:.6rem}
}

/* ───────── HERO：画面が広いときは、ブランド文字を右へ振る ─────────
   文字どうしがぶつからないよう、左＝言葉／右＝ブランド の非対称にする */
@media(min-width:901px){
  .hero-type{top:12vh;left:auto;right:0;justify-items:end;text-align:right;
    max-width:52vw;
    font-size:clamp(4rem,8vw,8.4rem);letter-spacing:.01em;
    color:rgba(247,244,237,.11)}
  /* 見出しは1行で収まる大きさに。文字を大きくするより、収まりを優先する */
  .hero h1{font-size:clamp(2.1rem,3.7vw,3.5rem);max-width:none}
  .hero h1 .s{font-size:.62em}
  /* ★BUG FIX 2026-09-07：この枠は左右の余白（--pad, 最大110px）を含む幅なので、
     画面が広いほど中身の幅が痩せ、見出しが単語の途中で折れていた（1440/1728/1920 で発生）。
     余白ぶんを見込んだ幅にする。1280〜1920 の全幅で「比べなくていい。」が1行に収まることを実測済み */
  .hero .hero-body{max-width:min(74ch,62vw)}
  .hero p.intro{max-width:24em}
}
/* 画面が高くないときは、ブランド文字を少し上げて重なりを避ける */
@media(min-width:901px) and (max-height:760px){
  .hero-type{top:9vh;font-size:clamp(3.4rem,6.6vw,6.6rem)}
}

/* ───────── セクションの繋ぎ ─────────
   「箱が終わって箱が始まる」ではなく、面が入れ替わっていくように。
   暗い面から明るい面へ移るところだけ、境目をぼかす */
.moments.light{background:var(--sf)}
.statement{position:relative}
.statement::after,.message.feature::after,.biz-band::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(40px,7vh,88px);
  pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(22,33,27,0),rgba(247,244,237,.10))}
.message.feature,.biz-band{position:relative}
/* 暗い面の上端も、前の明るい面からそっと入る */
.message.feature::before,.biz-band::before{
  content:"";position:absolute;left:0;right:0;top:0;height:clamp(30px,5vh,64px);
  pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(247,244,237,.09),rgba(22,33,27,0))}
.feature-grid,.biz-band .wrap{position:relative;z-index:2}

/* ───────── 最後のひと押し：余白・短い言葉・ボタンだけ ───────── */
.closing{background:var(--sf);padding-block:clamp(4.4rem,11vw,9rem);
  border-top:1px solid var(--outline-soft)}
.closing .en{font-family:var(--f-serif);font-style:italic;
  font-size:clamp(.78rem,1.3vw,.95rem);letter-spacing:.28em;color:var(--accent);
  margin-bottom:1.5rem}
.closing .line{font-family:var(--f-mincho);font-weight:400;
  font-size:clamp(1.6rem,4.4vw,3rem);line-height:1.66;letter-spacing:.1em;
  margin-bottom:1.5rem}
.closing .sub{font-size:var(--t-body);line-height:2.15;letter-spacing:.06em;
  color:var(--on-sf-var);max-width:32em;margin-bottom:clamp(2.2rem,5vw,3.2rem)}
.closing .acts{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.8rem}
@media(max-width:600px){
  .closing .acts{flex-direction:column;align-items:flex-start;gap:1.3rem}
  .closing .acts .btn{width:100%}
  .closing .acts .tlink{align-self:flex-start;white-space:nowrap}
}

/* ───────── 写真の出かた ─────────
   写真だけ、わずかに引きながら現れる。動かすために動かさない。 */
.mshot img,.calm-shot img,.pf-hero .shot img,.feature-media img{
  transform:scale(1.035);transition:transform .68s cubic-bezier(.2,0,0,1)}
.rv.in .mshot img,.mshot.in img,.calm-shot.in img,.pf-hero.in .shot img{transform:none}
.feature-media img{transform:none}

/* 押したときの手ごたえ（Material 3 の state layer の考え方） */
.olist a,.nrow,.ev,.mshot,.tile{-webkit-tap-highlight-color:transparent}
.olist a:active{background:var(--sf-low);transform:scale(.997)}
.btn:active{transform:scale(.985)}
.tlink:active{opacity:.7}

/* 動きを減らす設定：すべて止める（3Dも含む） */
@media (prefers-reduced-motion:reduce){
  .mshot img,.calm-shot img,.pf-hero .shot img,.feature-media img{transform:none!important}
  .hero-foot .cue{animation:none;transform:scaleX(1);opacity:.7}
}


/* ───────── 下層ページの見出し帯：下端を次の面へ溶かす ───────── */
.page-head{position:relative}
.page-head .fade{position:absolute;left:0;right:0;bottom:0;height:clamp(36px,6vh,72px);
  pointer-events:none;z-index:2;
  background:linear-gradient(180deg,rgba(22,33,27,0),rgba(247,244,237,.10))}
/* 見出し帯のタイポグラフィを、トップと同じ考え方で少し整える */
.page-head .en{letter-spacing:.3em;text-transform:uppercase;font-style:normal;
  font-size:clamp(.74rem,1.2vw,.9rem)}
.page-head h1{letter-spacing:.09em;line-height:1.45}

/* ───────── イベントの世界観：写真ではなく、番号と罫線で ───────── */
.alist{list-style:none;margin-top:clamp(1.6rem,4vw,2.4rem)}
.alist li{display:grid;grid-template-columns:3.2em 1fr;gap:.4rem 1.6rem;
  padding:clamp(1.5rem,3.2vw,2.2rem) 0;border-top:1px solid var(--outline)}
.alist li:last-child{border-bottom:1px solid var(--outline)}
.alist .n{font-family:var(--f-serif);font-size:.86rem;letter-spacing:.2em;color:var(--accent);
  padding-top:.45em}
.alist .t{font-family:var(--f-mincho);font-size:clamp(1.02rem,1.9vw,1.24rem);
  letter-spacing:.12em;line-height:1.7;display:flex;flex-wrap:wrap;align-items:baseline;gap:.9em}
.alist .t em{font-family:var(--f-serif);font-style:italic;font-size:.6em;
  letter-spacing:.2em;color:var(--on-sf-dim)}
.alist .d{grid-column:2;font-size:var(--t-label);line-height:2.05;color:var(--on-sf-var);
  margin-top:.5rem;max-width:42em}
@media(max-width:560px){
  .alist li{grid-template-columns:2.6em 1fr;gap:.3rem 1rem}
  .alist .d{font-size:var(--t-caption);line-height:1.95}
}

/* ════════════════════════════════════════════════════════════════════
   料金 ── カードをやめ、番号・罫線・大きな金額の一覧に（2026-09-06）
   金額を最初に目に入れる。読むのはそのあとでいい。
   ════════════════════════════════════════════════════════════════════ */
.ptable{margin-top:clamp(1.8rem,4vw,2.6rem)}
.prow{display:grid;grid-template-columns:1fr auto;gap:.6rem 2.4rem;
  align-items:baseline;padding:clamp(1.6rem,3.4vw,2.4rem) 0;
  border-top:1px solid var(--outline)}
.prow:last-child{border-bottom:1px solid var(--outline)}

.prow dt{display:grid;grid-template-columns:3.2em 1fr;gap:0 1.4rem;align-items:baseline}
.prow .n{font-family:var(--f-serif);font-size:.86rem;letter-spacing:.2em;color:var(--accent)}
.prow .nm{font-family:var(--f-mincho);font-size:clamp(1.04rem,1.9vw,1.28rem);
  letter-spacing:.11em;line-height:1.65}
.prow .nm em{display:block;font-family:var(--f-serif);font-style:italic;font-size:.66em;
  letter-spacing:.16em;color:var(--on-sf-dim);margin-top:.3em}

/* 金額は、このページでいちばん強い文字にする */
.prow .amt{font-family:var(--f-serif);white-space:nowrap;text-align:right;
  display:flex;align-items:baseline;justify-content:flex-end;gap:.5em}
.prow .amt b{font-weight:400;font-size:clamp(1.7rem,3.6vw,2.5rem);letter-spacing:.02em;
  line-height:1.1;color:var(--on-sf)}
.prow .amt b.est{font-family:var(--f-mincho);font-size:clamp(1rem,1.8vw,1.15rem);
  letter-spacing:.1em;color:var(--on-sf-var)}
.prow .amt span{font-family:var(--f-sans);font-size:var(--t-caption);
  letter-spacing:.1em;color:var(--on-sf-dim)}

.prow .txt{grid-column:1/-1;font-size:var(--t-label);line-height:2.05;
  color:var(--on-sf-var);max-width:46em;margin-top:.4rem}

/* 同じ枠の中の内訳（初回体験・オンラインパーソナル）は、線を細く一段下げる */
.prow.sub{padding-block:clamp(.9rem,1.8vw,1.2rem);border-top-style:dotted;
  border-top-color:var(--outline-soft)}
.prow.sub .nm{font-family:var(--f-sans);font-size:var(--t-label);letter-spacing:.06em;
  color:var(--on-sf-var)}
.prow.sub .amt b{font-size:clamp(1.05rem,2vw,1.35rem);color:var(--on-sf-var)}

/* 料金のあとに、注記と予約だけ。ボタンは1つ */
.pfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1.6rem 2.4rem;margin-top:clamp(2rem,4.5vw,3rem)}
.pfoot .note{font-size:var(--t-caption);line-height:2;color:var(--on-sf-dim);max-width:34em}

@media(max-width:640px){
  .prow{grid-template-columns:1fr;gap:.5rem}
  .prow dt{grid-template-columns:2.6em 1fr;gap:0 1rem}
  /* スマホでは金額を、名前のすぐ下・番号の位置に揃えて比較しやすくする */
  .prow .amt{justify-content:flex-start;text-align:left;padding-left:calc(2.6em + 1rem)}
  .prow .txt{padding-left:calc(2.6em + 1rem);margin-top:.6rem}
  .prow.sub .amt{padding-left:calc(2.6em + 1rem)}
  .pfoot{flex-direction:column;align-items:stretch}
  .pfoot .btn{width:100%}
}

/* 金額の「〜」だけ小さく。明朝の全角記号が大きく崩れて見えるため */
.prow .amt b .to{font-style:normal;font-family:var(--f-sans);font-size:.5em;
  padding:0 .18em;color:var(--on-sf-dim);vertical-align:.12em}
/* 「別途お見積り」は見出しではなく“答え”に見えるように */
.prow .amt b.est{font-family:var(--f-sans);font-size:var(--t-label);letter-spacing:.1em;
  color:var(--on-sf-var);border-bottom:1px solid var(--outline);padding-bottom:.25em}

/* ════════════════════════════════════════════════════════════════════
   お客様の声 ── 3枚並べるのをやめ、1件ずつ大きく読ませる（2026-09-06）
   星・顔アイコン・吹き出し・派手な引用符は使わない。
   ════════════════════════════════════════════════════════════════════ */
.vlist{max-width:960px}
.vitem{display:grid;grid-template-columns:4.4em 1fr;gap:0 clamp(1.4rem,3vw,2.6rem);
  padding-block:clamp(3rem,7vw,5.5rem);border-top:1px solid var(--outline)}
.vitem:first-child{border-top:0;padding-top:clamp(.5rem,2vw,1.5rem)}
.vitem .n{font-family:var(--f-serif);font-size:clamp(.9rem,1.5vw,1.05rem);
  letter-spacing:.2em;color:var(--accent);padding-top:.9em}
.vitem blockquote{font-family:var(--f-mincho);font-weight:400;
  font-size:clamp(1.34rem,3.4vw,2.15rem);line-height:1.9;letter-spacing:.09em;
  color:var(--on-sf);max-width:20em}
.vitem .by{margin-top:clamp(1.4rem,3vw,2rem);
  font-size:var(--t-caption);letter-spacing:.14em;color:var(--on-sf-dim);
  display:flex;flex-wrap:wrap;align-items:center;gap:.9rem}
.vitem .by::before{content:"";width:26px;height:1px;background:var(--outline);flex:0 0 auto}
.vitem .by .tag{font-family:var(--f-serif);font-style:italic;letter-spacing:.16em;
  color:var(--on-sf-var)}
.vitem .by .tag::before{content:"／ "}

@media(max-width:640px){
  .vitem{grid-template-columns:1fr;gap:.9rem}
  .vitem .n{padding-top:0}
  .vitem blockquote{max-width:none}
}

/* 講師ページ・LP の3件は、枠を外して静かな引用に（カード感を減らす） */
.vc{background:none;border:0;box-shadow:none;border-top:1px solid var(--outline);
  border-radius:0;padding:clamp(1.4rem,3vw,1.9rem) 0 0}
.dark .vc{border-top-color:var(--outline-dark);background:none}
.vc blockquote{font-family:var(--f-mincho);font-size:var(--t-label);line-height:2.2;
  letter-spacing:.07em}
.vc cite{display:block;margin-top:1rem;font-style:normal;font-size:var(--t-caption);
  letter-spacing:.12em;color:var(--on-sf-dim)}

/* ───────── CTA前：明るい地の上に、切り抜きの図を置く ─────────
   白背景の写真を multiply で重ねると、白が地の色に沈んで図だけが残る。
   透過PNGを作らずに済み、差し替えもJPEGの上書きだけで完結する。 */
.closing-grid{display:grid;grid-template-columns:1fr minmax(0,.62fr);
  gap:clamp(1.6rem,4vw,4rem);align-items:end}
.closing .ctxt{min-width:0}
.cfig{margin:0;align-self:end;justify-self:end;max-width:360px;width:100%}
.cfig img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
@supports not (mix-blend-mode:multiply){.cfig{display:none}}

@media(max-width:820px){
  .closing-grid{grid-template-columns:1fr;gap:2rem}
  /* スマホでは、言葉のあとに図を置く（先に言葉を読ませる） */
  .cfig{order:2;justify-self:center;max-width:250px;margin-top:.5rem}
  .closing .ctxt{order:1}
}

/* ───────── 行末の1文字落ち（孤立行）を防ぐ ─────────
   ★BUG FIX 2026-09-07：390px 幅で「レッスンで守っている3つのこ／と」のように
   最終行が1文字だけになる箇所があった。見出しは行数を揃え、本文は行末を整える。
   対応していないブラウザでは、これまでどおりの折り返しになるだけで崩れない */
h1, h2, h3, h4, .ttl, .sub, .pull, figcaption, .fcard h3, .st h3{
  text-wrap:balance}
p, .lead, li, dd{
  text-wrap:pretty}

/* 狭い画面では、見出しの強制改行を外して自然に折り返させる
   （375px で「大丈夫で／す。」と2文字だけ落ちていたため） */
@media(max-width:560px){ br.brw{display:none} }

/* ───────── 閉じているメニューを、キーボード・読み上げからも隠す ─────────
   ★FIX 2026-09-07：閉じたメニューは画面の外へ動かしているだけだったため、
   Tabキーの移動先や読み上げには残っていた。開いているときだけ触れるようにする */
@media(max-width:1000px){
  header nav{visibility:hidden;
    transition:transform .6s cubic-bezier(.25,.8,.35,1), visibility 0s .6s}
  header nav.open{visibility:visible;
    transition:transform .6s cubic-bezier(.25,.8,.35,1), visibility 0s 0s}
  /* 指で押す面を確保する（開いているときの各項目） */
  header nav a{min-height:44px;display:flex;align-items:center;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  header nav{transition:none}
}

/* ───────── フッターのリンクを、指で押せる大きさにする ─────────
   ★FIX 2026-09-07：高さ22pxで、WCAG 2.2 の最小サイズ（24px）に届いていなかった。
   行間ぶんを内側の余白に振り替えるので、フッター全体の高さはほぼ変わらない */
footer nav{gap:.5rem 1.8rem}
footer nav a{min-height:44px;display:inline-flex;align-items:center;padding:0}
footer nav a.biz{padding:0}

/* パンくずのリンクは文中リンク（WCAG 2.5.8 の除外対象）だが、押し面だけ広げておく。
   inline要素への上下paddingは行の高さを変えないので、見た目は変わらない */
.crumb a{padding-block:.55rem}
/* テキストリンクの押し面を44pxちょうどに（43pxだった） */
.tlink{min-height:44px;display:inline-flex;align-items:center}

/* ───────── キーボードだけで使う方のための「本文へ移動」 ─────────
   ★FIX 2026-09-07：WCAG 2.4.1（レベルA）。ふだんは見えず、
   Tabキーを最初に押したときだけ左上に出る */
.skip{position:fixed;top:.6rem;left:.6rem;z-index:400;
  transform:translateY(-160%);transition:transform .2s ease;
  background:var(--bone,#F7F4ED);color:var(--ink,#16150F);
  padding:.8rem 1.2rem;border-radius:999px;font-size:.82rem;letter-spacing:.08em;
  text-decoration:none;box-shadow:0 6px 24px rgba(10,16,13,.3)}
.skip:focus{transform:none;outline:2px solid var(--brass,#B08D57);outline-offset:2px}
#content{display:block;height:0;overflow:hidden}

/* ---------- ブログ（2026-09-11 追加）----------
   お客様の声（.vlist/.vitem）と同じ間合いに揃えています。 */
.plist{max-width:760px;margin:0 auto}
.post{padding:3.2rem 0;border-bottom:1px solid rgba(0,0,0,.10)}
.post:first-child{padding-top:0}
.post:last-child{border-bottom:0}
.pdate{font-family:"Cormorant Garamond",serif;font-size:1.5rem;letter-spacing:.08em;
 opacity:.55;margin:0 0 .6rem}
.post h2{font-size:clamp(2rem,3.4vw,2.6rem);line-height:1.5;margin:0 0 .8rem;font-weight:500}
.ptag{display:inline-block;font-size:1.3rem;letter-spacing:.06em;opacity:.7;
 border:1px solid currentColor;border-radius:999px;padding:.2em 1em;margin:0 0 1.6rem}
.ptext p{margin:0 0 1.4rem;line-height:1.95}
.ptext p:last-child{margin-bottom:0}
.pmore{margin:1.8rem 0 0}
/* トップ等に小さく出すとき */
.pcard{display:block;padding:1.6rem 0;border-bottom:1px solid rgba(0,0,0,.10);text-decoration:none}
.pcard .pdate{display:block;margin:0 0 .3rem}
.pcard .ttl{display:block;font-size:1.7rem;line-height:1.6}
@media (max-width:640px){
 .post{padding:2.4rem 0}
 .post h2{font-size:2rem}
}
