/* ==========================================================================
   BOOTY FITNESS 共通スタイル（TOP + 下層ページ）
   トンマナ: ホワイト + 淡いピンク基調 / Serif見出し × Sans本文
   ========================================================================== */
:root{
  --pink-bg:#FBF3F5;
  --pink-soft:#F6E3E9;
  --pink-200:#EFC6D2;
  --pink-300:#E8A0B8;
  --rose:#C86A82;
  /* 2026-08-03: 文字に使うローズ。#C86A82 は白地で 3.60:1 と、読みやすさの基準（4.5:1）に届かない。
     既存の --rose-deep と同値で、新しい色を増やさずに基準を満たす。
     背景・枠線・アイコンの --rose はブランドの見た目を保つためそのまま。 */
  --rose-text:#B44B68;
  --rose-deep:#B85570;
  --cta:#CE6E88;
  --cta-hover:#BD5A76;
  --ink:#453A3E;
  --ink-light:#6C5B62;
  --white:#FFFFFF;
  /* 2026-07-18: 見出しは 365DAYS BODY と同じ Cormorant Garamond を第一候補に（欧文=Cormorant / 和文=Noto Serif JP が受ける・ユーザー指示） */
  --serif-jp:"Cormorant Garamond","Noto Serif JP",serif;
  --serif-en:"Cormorant Garamond",serif;
  --sans:"Zen Kaku Gothic New","Noto Sans JP","Inter",sans-serif;
  --en:"Inter",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--white);font-weight:400;line-height:1.9;font-size:15.5px;letter-spacing:.01em;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;transition:opacity .25s;}
a:hover{opacity:.75;}
/* 2026-08-02: 本文の折返しに余裕を持たせるためコンテンツ幅を 1200 → 1260 へ拡大 */
.wrap{max-width:1260px;margin:0 auto;padding:0 40px;}

/* ===== ユーティリティ ===== */
.nowrap{white-space:nowrap;}
.sp-only{display:none;}
@media (max-width:767px){.sp-only{display:inline;}}

/* ===== Header ===== */
header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid rgba(200,106,130,.08);}
.header-inner{max-width:1360px;margin:0 auto;padding:0 28px;height:72px;display:flex;align-items:center;gap:28px;}
.logo{font-family:var(--serif-en);font-size:22px;letter-spacing:.14em;color:var(--rose-text);font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:10px;}
/* 公式ロゴ: 丸ロゴ + ワードマーク。高さ基準で置き、SP は一段小さくする（2026-07-23 サイズ拡大） */
.logo img{display:block;width:auto;}
.logo-mark{height:40px;}
.logo-type{height:34px;}
@media(max-width:900px){
  .logo{gap:7px;}
  .logo-mark{height:30px;}
  .logo-type{height:25px;}
}
nav{margin-left:auto;}
nav ul{display:flex;gap:26px;list-style:none;}
nav a{font-family:var(--en);font-size:12px;letter-spacing:.12em;font-weight:500;color:var(--ink);}
nav a.current{color:var(--rose-text);}
.header-cta{background:var(--cta);color:#fff;font-size:12px;letter-spacing:.06em;padding:11px 20px;border-radius:3px;white-space:nowrap;font-weight:500;}
.header-cta:hover{opacity:1;background:var(--cta-hover);}
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;width:44px;height:44px;padding:0;border:1px solid rgba(200,106,130,.28);border-radius:8px;background:rgba(200,106,130,.08);flex-shrink:0;}
.hamburger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--rose);transition:transform .25s ease,opacity .2s ease;}
body.nav-open .hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.nav-open .hamburger span:nth-child(2){opacity:0;}
body.nav-open .hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.nav-cta{display:none;}
/* 2026-08-03: 日本語ラベルとドロワー限定項目は SP のメニューを開いた時だけ出す（PC ヘッダーは英語5項目のまま） */
.nav-ja{display:none;}
.nav-sp-only{display:none;}
/* SP 固定の予約バー（PC では出さない） */
.sp-book-bar{display:none;}

/* 写真の色調統一（BEFORE写真のグレースケールは維持） */
.hero-photo,.founder-photo,.studio-photo,.diagnosis-photo,.tone-photo,.ba-photos img:not(.before-img){
  filter:sepia(.24) hue-rotate(-18deg) saturate(1.14) brightness(1.05);}

/* ===== Hero（TOP） ===== */
.hero{position:relative;background:linear-gradient(105deg,#FDF6F8 0%,#F9EBF0 45%,#F4DDE5 100%);overflow:hidden;}
.hero-photo{position:absolute;top:0;right:0;width:62%;height:100%;object-fit:cover;object-position:center 30%;opacity:.9;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.55) 22%,#000 45%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.55) 22%,#000 45%);}
.hero-inner{position:relative;max-width:1200px;margin:0 auto;padding:110px 40px 190px;z-index:2;}
/* 2026-08-03: 参考イメージに合わせたローズ文字＋細い罫。
   PC は「― 年齢を重ねるほど、美しく。 ―」と一文の両側、
   SP は改行して「― 美しく。―」の両側に罫が入る（参考イメージ自体が PC / SP で異なる）。 */
.hero-lead{display:inline-flex;align-items:center;font-size:15px;font-weight:500;letter-spacing:.14em;line-height:2.2;color:var(--rose-text);margin-bottom:20px;}
/* gap ではなく個別 margin にしているのは、gap だと文中の <br class="br-sp"> の位置にも
   余白が入り、PC で「年齢を重ねるほど、」と「美しく。」の間が開いてしまうため */
.hero-lead::before,.hero-lead::after{content:"";width:26px;height:1px;background:var(--pink-300);flex-shrink:0;}
.hero-lead::before{margin-right:16px;}
.hero-lead::after{margin-left:16px;}
.hero h1{font-family:var(--serif-jp);font-size:58px;font-weight:700;line-height:1.55;letter-spacing:.08em;margin-bottom:30px;}
.hero h1 .accent{color:var(--rose-text);}
/* ピン#14: リッチテキスト画像版の見出し（altでテキスト保持） */
.hero h1.hero-copy{margin:0 0 30px -14px;}
.hero h1.hero-copy img{display:block;width:min(560px,100%);height:auto;}
.hero-desc{font-size:15px;font-weight:500;line-height:2.2;letter-spacing:.05em;color:#57484E;margin-bottom:40px;}
.hero-sub-link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;font-size:13px;letter-spacing:.12em;padding-left:16px;border-left:1px solid var(--pink-300);color:var(--ink);}
.hero-sub-link .arrow{color:var(--rose-text);font-family:var(--en);}
.hero-veil{position:absolute;top:0;right:0;width:62%;height:100%;background:linear-gradient(120deg,rgba(232,160,184,.22),rgba(206,110,136,.16));pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.55) 22%,#000 45%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.55) 22%,#000 45%);}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--cta);color:#fff;font-size:14px;letter-spacing:.1em;padding:17px 34px;border-radius:3px;font-weight:500;box-shadow:0 8px 24px rgba(206,110,136,.35);}
.btn-submit{font-size:15px;padding:19px 64px;}
.btn:hover{opacity:1;background:var(--cta-hover);}
.btn .arrow{font-family:var(--en);}
.btn-outline{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--pink-200);color:var(--ink);font-size:13px;letter-spacing:.1em;padding:13px 28px;border-radius:999px;background:#fff;white-space:nowrap;}
.btn-outline .arrow{color:var(--rose-text);font-family:var(--en);}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.1em;}
.link-arrow .arrow{color:var(--rose-text);font-family:var(--en);}

/* ===== Hero エンブレム（実績3項目） ===== */
/* 2026-08-03: 旧 .kpi（半透明バー・4項目・写真右下へ absolute）を撤去し、
   参考イメージの月桂樹エンブレム3連へ置き換えた。Founder セクションの .laurel を流用している。 */
/* 文字は月桂樹の輪の内側に収める。輪より文字が大きいと葉に重なって読めなくなるため、
   輪を大きめ・文字を小さめに取り、説明文は <br> で2行に固定している。 */
.hero-emblems{display:flex;gap:8px;margin:34px 0 30px;max-width:640px;}
.laurel-kpi{width:auto;flex:1 1 0;min-width:0;padding:20px 0;gap:0;}
/* Founder の月桂樹は opacity:.9 だが、FV は輪の中に4行入るぶん葉と文字が干渉する。
   輪を薄くして、重なっても文字が読める状態にしている（参考イメージも輪は淡い） */
.laurel-kpi .laurel-pair-bg{width:186px;height:186px;opacity:.5;}
.laurel-icon{position:relative;z-index:1;width:19px;height:19px;color:var(--rose-text);margin-bottom:2px;}
.laurel-num{position:relative;z-index:1;font-family:var(--serif-en);font-size:27px;line-height:1.15;color:var(--rose-text);letter-spacing:.01em;}
.laurel-num .plus{font-size:18px;}
.laurel-num--sm{font-family:var(--en);font-size:15px;font-weight:600;letter-spacing:.02em;}
.laurel-unit{position:relative;z-index:1;font-family:var(--en);font-size:12px;letter-spacing:.1em;color:var(--ink);}
.laurel-unit--em{font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--rose-text);letter-spacing:.06em;}
.laurel-kpi .sub{margin-top:4px;font-size:9.5px;line-height:1.5;color:var(--ink-light);letter-spacing:0;}

/* ===== Hero CTA（2本） ===== */
/* 参考イメージ準拠。1本目＝診断LP（主導線）／2本目＝店舗一覧。
   無料体験予約は FV から外れ、下部の共通 CTA と各店舗ページが受け持つ。 */
.hero-actions{display:flex;flex-direction:column;gap:12px;max-width:560px;}
.hero-cta{display:flex;align-items:center;gap:14px;padding:14px 20px;border-radius:6px;transition:opacity .2s;}
.hero-cta:hover{opacity:.88;}
.hero-cta-badge{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;}
.hero-cta-badge svg{width:24px;height:24px;}
/* 既存の PNG アイコンを流用する枠（自作 SVG では 24px で潰れたため） */
.hero-cta-badge img{width:29px;height:29px;object-fit:contain;}
.hero-cta-text{flex:1;font-size:17px;font-weight:700;letter-spacing:.04em;line-height:1.35;}
.hero-cta-text small{display:block;font-size:12px;font-weight:500;letter-spacing:.06em;opacity:.92;}
.hero-cta-arrow{font-family:var(--en);font-size:24px;line-height:1;opacity:.8;}
.hero-cta--primary{background:var(--cta);color:#fff;box-shadow:0 8px 24px rgba(206,110,136,.35);}
.hero-cta--primary .hero-cta-badge{background:#fff;color:var(--cta);}
.hero-cta--secondary{background:#fff;color:var(--ink);border:1px solid var(--pink-200);}
.hero-cta--secondary .hero-cta-badge{color:var(--rose-text);}

/* ===== Section common ===== */
section{padding:96px 0;}
.script{font-family:var(--serif-en);font-style:italic;font-size:26px;color:var(--pink-300);letter-spacing:.06em;margin-bottom:10px;}
/* リッチ見出し画像（ChatGPT 生成・2026-07-17）: script-allura テキストの差し替え先 */
.script-img{margin-bottom:10px;line-height:0;}
.script-img img{height:78px;width:auto;display:inline-block;}
@media(max-width:720px){.script-img img{height:56px;}}
/* 2026-07-18: 筆記体アクセント（About us / History / Numbers 等）を 365DAYS BODY の kicker と同じ
   Cormorant Garamond へ統一（ユーザー指示）。Allura 手書き体は廃止 */
.script-allura{font-family:var(--serif-en);font-style:normal;font-size:26px;font-weight:500;color:var(--rose-text);letter-spacing:.14em;margin-bottom:8px;}
h2.title{font-family:var(--serif-jp);font-size:32px;font-weight:600;letter-spacing:.1em;line-height:1.7;}
.bg-pink{background:var(--pink-bg);}
/* 背景写真メリハリ（2026-07-17・Unsplash 仮素材）: ピンク/白交互の単調さ回避に一部セクションへ薄敷き */
.bg-photo-season{background:linear-gradient(rgba(251,243,245,.92),rgba(251,243,245,.94)),url(../images/bg/bg-season.jpg) center/cover no-repeat;}
.bg-photo-program{background:linear-gradient(rgba(255,255,255,.93),rgba(255,255,255,.95)),url(../images/bg/bg-program.jpg) center/cover no-repeat;}
.bg-photo-flow{background:linear-gradient(rgba(251,243,245,.92),rgba(251,243,245,.94)),url(../images/bg/bg-flow.jpg) center 35%/cover no-repeat;}
.bg-photo-compare{background:linear-gradient(rgba(255,255,255,.93),rgba(255,255,255,.95)),url(../images/bg/bg-compare.jpg) center/cover no-repeat;}
.bg-photo-promise{background:linear-gradient(rgba(255,255,255,.92),rgba(255,255,255,.94)),url(../images/bg/bg-promise.jpg) center/cover no-repeat;}
.bg-photo-vm{background:linear-gradient(rgba(255,255,255,.92),rgba(255,255,255,.94)),url(../images/bg/bg-vm.jpg) center/cover no-repeat;}
.section-head{text-align:center;margin-bottom:56px;}
.section-head .lead{font-size:14.5px;color:var(--ink-light);letter-spacing:.05em;margin-top:16px;}

/* ===== 下層ページ共通: page-hero ===== */
/* 2026-07-18: ピンクグラデの裏に写真を薄敷き（他の写真背景セクションと同じリッチ化・Unsplash 仮素材） */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(105deg,rgba(253,246,248,.93) 0%,rgba(249,235,240,.91) 45%,rgba(244,221,229,.89) 100%),url(../images/bg/bg-season.jpg) center 40%/cover no-repeat;padding:74px 0 58px;}
.hero-sparkle{position:absolute;width:180px;opacity:.35;pointer-events:none;}
.hero-sparkle-l{left:4%;top:18px;}
.hero-sparkle-r{right:4%;bottom:14px;transform:scaleX(-1);}
@media(max-width:720px){.hero-sparkle{width:110px;opacity:.25;}.hero-sparkle-l{left:1%;top:8px;}.hero-sparkle-r{right:1%;bottom:8px;}}
.page-hero .script-allura{font-size:32px;margin-bottom:6px;}
.page-hero .hero-script-img img{height:122px;}
@media(max-width:720px){.page-hero .hero-script-img img{height:78px;}}
.page-hero h1{font-family:var(--serif-jp);font-size:38px;font-weight:600;letter-spacing:.12em;line-height:1.6;}
/* リードの幅制限は撤廃（改行ルール: まず1行、折るなら excerpt 側の明示改行で制御） */
.page-hero .lead{font-size:14.5px;color:var(--ink-light);letter-spacing:.05em;margin-top:18px;}
.breadcrumb{font-family:var(--en);font-size:11px;letter-spacing:.1em;color:var(--ink-light);margin-bottom:26px;display:flex;gap:10px;flex-wrap:wrap;}
.breadcrumb a{color:var(--rose-text);}
.breadcrumb .sep{color:var(--pink-300);}

/* ===== 写真プレースホルダ ===== */
.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--pink-soft);border:1.5px dashed rgba(200,106,130,.45);color:var(--rose-text);font-size:13px;letter-spacing:.12em;text-align:center;line-height:1.8;}
.photo-placeholder small{font-size:11px;color:var(--ink-light);letter-spacing:.06em;}
.temp-note{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.85);color:var(--ink-light);font-size:10px;letter-spacing:.06em;padding:3px 10px;border-radius:2px;}
.store-visual{position:relative;}

/* ===== セクション区切り（2026-08-04 新設） =====
   ウェディング枠と診断エリアの境目が分からないというクライアント指摘への対応。
   既存のローズ系だけで組み、新しい色は増やさない。 */
.section-divider{display:flex;align-items:center;justify-content:center;max-width:1120px;margin:52px auto 46px;padding:0 40px;}
.section-divider::before,.section-divider::after{content:"";flex:1;height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,85,112,.42));}
.section-divider::after{background:linear-gradient(90deg,rgba(184,85,112,.42),transparent);}
.section-divider-mark{width:9px;height:9px;margin:0 16px;flex:none;transform:rotate(45deg);
  border:1px solid rgba(184,85,112,.62);background:rgba(184,85,112,.2);}

/* ===== Diagnosis（TOP・お尻タイプ診断） ===== */
.diagnosis{background:var(--pink-bg);padding:0 40px;}
.diagnosis-card{display:grid;grid-template-columns:32% 1fr;gap:0;max-width:1120px;margin:0 auto;}
.diagnosis-photo-wrap{position:relative;height:100%;min-height:440px;}
.diagnosis-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:sepia(.35) hue-rotate(-18deg) saturate(1.3) brightness(1.06)!important;}
/* 2026-08-04: 文字入りバナーを入れる枠。
   ①ピンク寄せフィルタは文字色が濁るため無効化。
   ②正方形バナーを縦長カラムに cover で入れると左右が切れて見出しが欠けるため、
     写真列そのものを正方形にして全体を見せる。
     列幅は 32% のまま（38% に広げると右側の見出し「あなたのお尻タイプを診断」が nowrap のまま
     はみ出して 1440px で横スクロールが発生する。実測済み）。 */
.diagnosis-photo--flat{filter:none!important;object-position:center center;}
.diagnosis-card--banner{align-items:center;}
.diagnosis-photo-wrap--banner{height:auto;min-height:0;aspect-ratio:1/1;align-self:center;}
.diagnosis-body{padding:70px 60px;display:grid;grid-template-columns:1fr 340px;gap:50px;align-items:center;}
.diagnosis h2{margin-bottom:18px;font-size:28px;white-space:nowrap;}
.diagnosis p{font-size:14.5px;color:var(--ink-light);letter-spacing:.04em;margin-bottom:34px;}
.diagnosis p.script-allura{margin-bottom:4px;font-size:28px;color:var(--rose-text);}
/* ピン#19: 円を拡大しジグザグ配置で視線導線を作る */
.types{display:grid;grid-template-columns:repeat(2,132px);gap:18px 24px;justify-content:center;padding-bottom:34px;}
.types .type:nth-child(even){transform:translateY(34px);}
.type{text-align:center;width:94px;}
.type-circle{width:118px;height:118px;border-radius:50%;background:#fff;box-shadow:0 6px 20px rgba(184,85,112,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;overflow:hidden;}
.type-circle svg{width:76px;height:76px;}
.type-circle img{width:88px;height:88px;object-fit:contain;}
/* violin だけ元素材の縦横比が 3:2 で表示が縮む → CSS で個別に scale up して他3枚と体感サイズを揃える（画像自体は色を変えないため他と同じ薄いピンク／グレー基調のまま） */
.type-circle img[src*="hip-type-violin"]{transform:scale(1.55);transform-origin:center;}
.type-label{font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--rose-text);white-space:nowrap;}

/* ===== Bridal（TOP・FV直下／参考イメージ 02_FV理想イメージ_SP用.png 準拠） =====
   2026-08-03 新設。CTA 2本とピンク帯の間に入る、ウェディング LP への入口。
   写真はカード右端まで抜き、左へ向けてフェードさせて文字の下敷きにする。 */
.bridal{padding:0;margin:34px 0 0;--gold:#B08D4F;--gold-deep:#9C7C3C;}
.bridal-card{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(120deg,#FFFDFB 0%,#FCF6F1 52%,#F7EDE4 100%);box-shadow:0 10px 34px rgba(160,130,90,.14);}
.bridal-photo{position:absolute;top:0;right:0;height:100%;width:46%;object-fit:cover;object-position:52% 22%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 26%,#000 62%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 26%,#000 62%);}
.bridal-body{position:relative;z-index:2;padding:44px 46px 40px;max-width:640px;}
/* 見出しはレタリング画像。金の粒子が文字の外へはみ出す絵柄なので、
   左端の粒子ぶんだけ引いて文字の頭を本文の左揃えに合わせる */
.bridal-heading{margin:-6px 0 14px -3.2%;}
.bridal-heading img{display:block;width:100%;max-width:560px;height:auto;}
.bridal-lead{font-size:13.5px;line-height:1.95;color:var(--ink-light);letter-spacing:.03em;margin:0 0 26px;}
.bridal-points{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:0 0 26px;max-width:470px;}
.bridal-points li{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:0 8px;
  font-size:12.5px;line-height:1.6;letter-spacing:.02em;color:var(--ink);}
.bridal-points li + li{border-left:1px solid rgba(184,85,112,.22);}
.bridal-icon{width:31px;height:31px;color:var(--rose-text);}
.bridal-cta{display:flex;align-items:center;justify-content:center;gap:10px;max-width:470px;
  background:var(--gold);color:#fff;font-size:15px;font-weight:600;letter-spacing:.06em;
  padding:17px 22px;border-radius:5px;box-shadow:0 6px 18px rgba(160,130,90,.3);}
.bridal-cta:hover{background:var(--gold-deep);opacity:1;}
.bridal-cta .arrow{font-family:var(--en);font-size:19px;line-height:1;margin-left:auto;}

/* ===== Results（TOP + 下層） ===== */
.results .head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:52px;gap:30px;}
.results h2.title{font-size:28px;}
.results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
/* カードは flex 縦組み + stats を下端揃えにして、受講行の行数差があっても全カード同じ高さ・同じ位置に揃える（ピン#12） */
.result-card{background:#fff;display:flex;flex-direction:column;}
.ba-labels{display:grid;grid-template-columns:1fr 1fr;text-align:center;font-family:var(--en);font-size:11px;letter-spacing:.18em;margin-bottom:10px;}
.ba-labels .before{color:var(--ink-light);}
.ba-labels .after{color:var(--rose-text);}
.ba-photos{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.ba-photos img{width:100%;aspect-ratio:1/2;object-fit:cover;object-position:center top;}
.ba-photos img.before-img{filter:grayscale(.75) brightness(1.02);}
.ba-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--rose-text);display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 2px 10px rgba(0,0,0,.12);font-family:var(--en);}
.result-meta{text-align:center;padding:16px 4px 0;display:flex;flex-direction:column;flex:1;}
.result-person{font-size:14px;font-weight:500;letter-spacing:.08em;display:flex;flex-direction:column;gap:2px;}
.result-person .result-name{font-weight:700;color:var(--ink);font-size:15px;}
.result-person .result-attr{font-size:11.5px;color:var(--ink-light);letter-spacing:.04em;font-weight:400;}
.result-person .result-height{font-size:11px;color:var(--ink-light);letter-spacing:.04em;font-family:var(--en);}
.result-worry{font-size:11.5px;color:var(--rose-text);letter-spacing:.03em;margin-top:8px;padding:4px 12px;background:var(--pink-bg);border-radius:999px;display:inline-block;align-self:center;}
.result-term{font-size:12px;color:var(--ink-light);margin-top:6px;line-height:1.7;}
.result-stats{display:flex;justify-content:center;gap:8px 12px;margin-top:auto;padding-top:10px;align-items:baseline;flex-wrap:wrap;}
.stat-kg{font-family:var(--en);font-size:25px;font-weight:700;color:var(--ink);}
.stat-pink{font-family:var(--en);font-size:14px;font-weight:700;color:var(--rose-text);white-space:nowrap;}
.result-stats .stat-pink:last-child{flex-basis:100%;text-align:center;}
.results-more{text-align:center;margin-top:52px;}
.results-swipe-hint{display:none;font-size:11px;letter-spacing:.06em;color:var(--ink-light);margin-bottom:12px;text-align:right;}

/* ===== Founder（TOP + about） ===== */
/* 2026-07-17: Founder は野田さんの写真を主役にするため背景写真なし（ユーザー指示） */
.founder{background:linear-gradient(120deg,#FBF1F4 0%,#F7E6EC 100%);overflow:hidden;}
/* 2026-08-02: 代表紹介の本文を1文=1行で収めるため、このセクションだけ .wrap の制限を超えて広げる（ユーザー指示） */
.founder .wrap{max-width:1320px;}
.founder-inner{display:grid;grid-template-columns:36% 1fr;gap:44px;align-items:center;position:relative;}
.founder-photo-wrap{position:relative;}
.founder-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;}
/* 2026-07-17: テキスト → リッチ見出し画像へ差替（写真に少し重なる装飾配置は維持） */
.founder-script{position:absolute;left:-20px;top:-58px;z-index:2;line-height:0;}
.founder-script img{width:min(360px,60vw);height:auto;opacity:.92;}
.founder-label{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--rose-text);margin-bottom:14px;}
.founder-name{font-family:var(--serif-jp);font-size:40px;font-weight:600;letter-spacing:.14em;margin-bottom:6px;}
.founder-name-en{font-family:var(--en);font-size:11px;letter-spacing:.34em;color:var(--rose-text);margin-bottom:28px;}
/* ピン#25: 幅制限を撤廃し wrap 右端（ヘッダーCTA右端）まで使う */
/* 2026-08-02: 1文を1行に収めるため 1101px 以上でのみ 14.5→13px（それ以下は下部のメディアクエリで戻す） */
.founder-bio{font-size:13px;line-height:2.3;letter-spacing:.04em;color:var(--ink-light);margin-bottom:34px;}
/* 1100px 以下は1行化が不可能な幅なので、読みやすさ優先で元のサイズに戻す */
@media(max-width:1100px){.founder-bio{font-size:14.5px;letter-spacing:.05em;}}
.founder-flex{display:flex;gap:44px;align-items:center;flex-wrap:wrap;}
/* ===== 代表紹介の本文内ステージ写真（ABOUT・2026-08-05） =====
   クライアント指定の配置図に合わせ、紹介文の段落間へ2枚を挿入する。
   2026-08-04 の横スクロールギャラリー（.founder-stage・6枚）はこの指示で撤去した。
   縦長（2:3）と正方形（1:1）が混ざるので、幅を揃えて高さは成り行きにする（切り抜かない）。
   PC は本文カラムが 800px 前後あり、幅いっぱいに置くと縦長写真が 1200px 級になって
   左のポートレートと釣り合わないため、max-width で抑えて中央寄せにする。 */
/* ===== 代表紹介の構成（ABOUT・2026-08-05 v3: ユーザー提示の仮組みに合わせて枠つきカードへ） =====
   モックの造形言語:
     - コンテンツを**細いローズの枠**で囲み、四隅に L 字のコーナー飾りを置く
     - 見出しは EN の左右に細い罫線、和文見出しの下に小さな菱形の飾り罫
     - 代表は 写真=左 / ラベル→名前→EN→**キャッチ**→本文 =右
     - 実績は**2枚並びのカード**（写真=左 / キャプション+本文=右）
     - 受賞リストは丸チェック + 点線区切り
   写真が3枚しかないので、枠と飾りで密度を作り、写真を大きく見せる方針。

   ⚠️ 以前の造り（.founder-inner の2カラム / .founder-story-row の1列縦積み）は
   このカード構成に置き換えた。.founder-inner・.founder-name-row・.laurel は
   TOP の Founder が今も使っているので消さないこと。 */

/* --- 共通の飾り罫（線 — 菱形 — 線） --- */
.orn-rule{display:flex;align-items:center;gap:14px;}
.orn-rule span{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(200,106,130,.42),transparent);}
.orn-rule i{width:7px;height:7px;flex-shrink:0;border:1px solid var(--rose);transform:rotate(45deg);opacity:.65;}
.orn-rule--head{max-width:132px;margin:16px auto 0;}

/* 見出しの EN を細い罫線で挟む（モックの作法） */
.section-head--orn .script-allura{display:flex;align-items:center;justify-content:center;gap:20px;}
.section-head--orn .script-allura::before,
.section-head--orn .script-allura::after{content:'';width:54px;height:1px;flex-shrink:0;
  background:linear-gradient(90deg,transparent,rgba(200,106,130,.55));}
.section-head--orn .script-allura::after{background:linear-gradient(90deg,rgba(200,106,130,.55),transparent);}

/* --- ① 代表プロフィールのカード --- */
.founder-card{position:relative;border:1px solid rgba(200,106,130,.24);
  background:rgba(255,255,255,.55);padding:54px 56px;}
/* 四隅の L 字飾り。カードに2つ、内側ラッパに2つの疑似要素で4隅を作る。
   ⚠️ .founder-card-inner に position を付けないこと（付けると座標の基準がずれる） */
.founder-card::before,.founder-card::after,
.founder-card-inner::before,.founder-card-inner::after{content:'';position:absolute;
  width:16px;height:16px;border:1px solid var(--rose);opacity:.55;pointer-events:none;}
.founder-card::before{top:9px;left:9px;border-width:1px 0 0 1px;}
.founder-card::after{top:9px;right:9px;border-width:1px 1px 0 0;}
.founder-card-inner::before{bottom:9px;left:9px;border-width:0 0 1px 1px;}
.founder-card-inner::after{bottom:9px;right:9px;border-width:0 1px 1px 0;}

.founder-card-inner{display:grid;grid-template-columns:36% 1fr;gap:56px;align-items:center;}

/* 月桂樹エンブレムは「シールを貼った」見せ方にする（2026-08-05 ユーザー指示）。
   ⚠️ position:absolute で浮かせること。フローに戻すと SP でバッジ用の縦の空間を
   確保しなければならず、自動レイアウトで組んだときに崩れの原因になる。
   貼り付け位置は幅で変える（2026-08-05 ユーザー指示）:
     PC（901px 以上） … カードの**右上**。名前の右に空く帯へ置く
     SP（900px 以下） … **写真の右下**から少しはみ出させる
   傾きは外向き（右まわり）。左まわりだと内側へ倒れて見える。
   ⚠️ .laurel の定義がこのブロックより後ろにあり position:relative を持つため、
   セレクタは必ず `.founder-card .founder-seal` と2段にして詳細度で勝たせること。
   `.founder-seal` 単体だと position が relative に戻り、フローに入ってカードの高さが伸びる
   （2026-08-05 に実際に 635px → 785px へ膨らんだ）。
   なお layout-qa の text-overlap がシール内で2件出るが、これは rotate による
   軸並行バウンディングボックスの膨張が原因の誤検知（実表示では重なっていない）。 */
.founder-card .founder-seal{position:absolute;right:-38px;bottom:-26px;z-index:2;
  width:168px;height:168px;padding:0;gap:1px;border-radius:50%;
  background:rgba(255,255,255,.93);box-shadow:0 8px 24px rgba(160,110,125,.22);
  transform:rotate(7deg);}
/* PC はカードの右上に貼る。位置の基準を写真ではなくカードにしたいので、
   この幅だけ .founder-photo-wrap の position:relative を外す（中身は写真とシールだけ） */
@media(min-width:901px){
  .founder-card .founder-photo-wrap{position:static;}
  .founder-card .founder-seal{top:52px;right:44px;bottom:auto;}
}
.founder-card .founder-seal .laurel-pair-bg{width:150px;height:150px;opacity:.85;}
.founder-card .founder-seal .en{font-size:9.5px;letter-spacing:.16em;}
.founder-card .founder-seal .jp{font-size:9.5px;line-height:1.5;}
.founder-card .founder-seal .em{font-size:12.5px;line-height:1.35;}
.founder-card .founder-seal .sub{font-size:9.5px;line-height:1.4;}
.founder-card-body .founder-label{margin-bottom:12px;}
.founder-card-body .founder-name{font-size:44px;margin-bottom:8px;}
.founder-card-body .founder-name-en{margin-bottom:30px;}
/* キャッチは新しく書いた宣伝文ではなく、旧エンブレムと本文にある事実を1行にしたもの */
.founder-catch{font-family:var(--serif-jp);font-size:29px;font-weight:600;line-height:1.75;
  letter-spacing:.07em;color:var(--rose-text);margin-bottom:30px;}
.founder-card-body .founder-bio{font-size:14px;line-height:2.2;margin-bottom:0;}
.founder-bio p{margin:0;}
.founder-bio p + p{margin-top:1.5em;}
.founder-card-body .orn-rule{margin-top:34px;}

/* --- ② 実績パート: 2枚並びのカード --- */
.founder-story-head{margin-top:96px;}
.founder-story{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
/* テキストは写真に対して天地中央に置く。モックは横長写真で高さが低いため上寄せだが、
   こちらは縦長写真なので上寄せにすると右下だけが大きく空いて重心がずれる */
.founder-story-card{position:relative;display:grid;grid-template-columns:45% 1fr;gap:26px;
  align-items:center;border:1px solid rgba(200,106,130,.24);background:rgba(255,255,255,.55);padding:20px;}
.founder-story-photo{margin:0;}
/* 縦長（2:3）と正方形（1:1）が混ざるので 3:4 に切り揃える。
   人物が画面中央よりやや上にいるため object-position は上寄せにする */
.founder-story-photo img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;
  object-position:center 22%;border-radius:2px;}
.founder-story-text{max-width:none;}
.founder-story-text p{font-size:13.5px;line-height:2.1;letter-spacing:.04em;color:var(--ink-light);margin:0;}
.founder-story-cap{margin-bottom:18px !important;}
.founder-story-cap .en{display:block;font-family:var(--serif-en);font-size:19px;
  letter-spacing:.06em;color:var(--rose-text);line-height:1.45;}
.founder-story-cap .jp{display:block;font-family:var(--serif-jp);font-size:13px;
  letter-spacing:.1em;color:var(--ink-light);line-height:1.8;margin-top:5px;}

/* 中間幅: 実績カードを2枚並べると1枚あたり 500px 前後になり、中の2カラムが破綻する。
   カードは縦積みにして、中は写真=左のまま固定幅に切り替える */
@media(min-width:901px) and (max-width:1100px){
  .founder-card{padding:40px 34px;}
  .founder-card-inner{gap:34px;grid-template-columns:38% 1fr;}
  .founder-card-body .founder-name{font-size:36px;}
  .founder-catch{font-size:23px;}
  .founder-story{grid-template-columns:1fr;gap:20px;}
  .founder-story-card{grid-template-columns:240px 1fr;gap:24px;}
  /* 位置は上の min-width:901px ブロックで決めるので、ここではサイズだけを変える。
     right / bottom をここで書くと後勝ちで PC の右上配置を打ち消す（2026-08-05 に発生） */
  .founder-card .founder-seal{width:146px;height:146px;}
  .founder-card .founder-seal .laurel-pair-bg{width:130px;height:130px;}
  .founder-card .founder-seal .em{font-size:11.5px;}
}
@media(max-width:900px){
  .founder-card{padding:30px 22px;}
  .founder-card-inner{grid-template-columns:1fr;gap:28px;}
  /* 写真は幅いっぱいに広げない。縦長なので 768px 幅では 800px 級の高さになってしまう */
  .founder-card .founder-photo-wrap{max-width:340px;margin:0 auto;width:100%;}
  /* シールは絶対配置のままなので、SP でもバッジ用の余白は要らない。
     カードの内側に収まるよう、はみ出し量だけ詰める */
  .founder-card .founder-seal{width:122px;height:122px;right:-12px;bottom:-14px;}
  .founder-card .founder-seal .laurel-pair-bg{width:110px;height:110px;}
  .founder-card .founder-seal .en{font-size:8px;letter-spacing:.12em;}
  .founder-card .founder-seal .jp{font-size:8px;}
  .founder-card .founder-seal .em{font-size:10px;line-height:1.3;}
  .founder-card .founder-seal .sub{font-size:8px;}
  .founder-card-body{text-align:center;}
  .founder-card-body .founder-name{font-size:32px;}
  .founder-card-body .founder-name-en{margin-bottom:22px;}
  .founder-catch{font-size:21px;margin-bottom:22px;}
  .founder-card-body .founder-bio{font-size:14px;text-align:left;}
  .founder-story-head{margin-top:56px;}
  .founder-story{grid-template-columns:1fr;gap:18px;}
  .founder-story-card{grid-template-columns:1fr;gap:18px;}
  .founder-story-photo img{max-width:340px;margin:0 auto;}
  .founder-story-cap{margin-bottom:14px !important;}
  .founder-story-cap .en{font-size:17px;}
}
/* 480px 以下ではキャッチの2行目が入りきらず「へ。」だけが3行目にぶら下がる。
   1〜2文字のぶら下がりを避けるため、この幅だけ一段小さくする */
@media(max-width:480px){
  .founder-catch{font-size:18px;letter-spacing:.04em;}
}
@media(max-width:360px){
  .founder-catch{font-size:16px;}
  /* 本文の nowrap は「1文=1行」を PC で成立させるためのもの。320px では
     「トレーナー育成を監修しています。」だけで 233px あり、カードを 3px 押し広げる。
     この幅では1行に収めること自体が無理なので解除する（固有名詞のキャッチは維持） */
  .founder-card-body .founder-bio .nowrap{white-space:normal;}
}
/* 受賞歴・メディア掲載（about・本番 ownerprofile から抽出）
   2026-08-05: 白カード2枚 → **枠1本のボックス内に2列**へ。仮組みの下段リストに合わせ、
   項目は丸チェック + 点線区切りにする。 */
.founder-achievements{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;
  border:1px solid rgba(200,106,130,.24);background:rgba(255,255,255,.55);padding:34px 40px;}
.founder-achievements .ach-col{background:none;border-radius:0;padding:0;box-shadow:none;}
.founder-achievements h3{font-family:var(--serif-en);font-size:18px;color:var(--rose-text);letter-spacing:.06em;margin-bottom:16px;}
.founder-achievements ul{list-style:none;display:flex;flex-direction:column;gap:0;}
.founder-achievements li{font-size:13px;line-height:1.8;color:var(--ink);letter-spacing:.03em;
  padding:8px 0 8px 26px;position:relative;border-bottom:1px dotted rgba(200,106,130,.32);}
.founder-achievements li:last-child{border-bottom:none;}
/* 丸チェック。✓ は文字として置く（絵文字化しない字形） */
.founder-achievements li::before{content:'✓';position:absolute;left:0;top:.85em;
  width:15px;height:15px;border-radius:50%;border:1px solid var(--rose);background:none;
  display:flex;align-items:center;justify-content:center;font-size:8.5px;line-height:1;color:var(--rose-text);}
@media(max-width:900px){
  .founder-achievements{grid-template-columns:1fr;gap:26px;padding:26px 22px;}
}

/* ピン#20: 月桂樹バッジを名前の横に配置する行 */
.founder-name-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-bottom:20px;}
.founder-name-row .founder-name{margin-bottom:6px;}
.founder-name-row .founder-name-en{margin-bottom:0;}
.founder-name-row .laurel{width:190px;padding:10px 30px;}
.founder-name-row .laurel .laurel-pair-bg{width:168px;height:168px;}
.laurel{flex-shrink:0;width:216px;padding:12px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;position:relative;}
.laurel .branch{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:121px;}
.laurel .branch-l{left:2px;transform:translateY(-50%) scaleX(-1);}
.laurel .branch-r{right:2px;}
/* 生成イラスト版の月桂樹（1枚絵をテキスト背後に敷く） */
.laurel .laurel-pair-bg{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:190px;height:190px;object-fit:contain;opacity:.9;pointer-events:none;}
.laurel .en,.laurel .jp,.laurel .em,.laurel .sub{position:relative;z-index:1;}
.laurel .en{font-family:var(--en);font-size:11px;letter-spacing:.2em;color:var(--rose-text);}
.laurel .jp{font-size:11px;color:var(--ink);line-height:1.7;}
/* 2026-08-02: 「のステージへ」が月桂樹の枝に接触するため 15→14px に微調整 */
.laurel .em{font-family:var(--serif-en);font-size:14px;color:var(--ink);line-height:1.4;}
/* 2026-08-01 追加: エンブレム内の補足行（ABOUT の「BIKINI MS 7位」） */
.laurel .sub{font-size:11px;color:var(--ink);letter-spacing:.02em;line-height:1.5;}

/* ===== Features（FV 直下の帯） ===== */
/* 2026-08-03: 参考イメージ準拠で全面的に作り替えた。
   旧デザインは「アイコン76px＋見出し＋説明文」の大きなグリッドで Founder の後ろに置いていたが、
   薄ピンクの帯に白いアイコンとラベルを4つ並べる形にして FV の直下へ移した。
   旧 `--fg-cols` の可変列は使わなくなった。他テンプレートからの参照がないことは機械確認済み。 */
.features{padding:0;background:linear-gradient(180deg,#F3C2D2 0%,#EFB4C8 100%);}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:0 auto;}
.feature{display:flex;flex-direction:column;align-items:center;gap:9px;padding:20px 8px 22px;text-align:center;position:relative;}
.feature+.feature::before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:rgba(255,255,255,.42);}
.feature-icon{width:36px;height:36px;color:#fff;stroke-width:1.4;}
/* PNG 版アイコンは帯の白に合わせて反転する（線も塗りも白一色になる） */
.feature-icon--img{object-fit:contain;filter:brightness(0) invert(1);}
/* 参考イメージから起こした白抜きアイコンはそのまま置く（反転不要） */
.feature-icon--plain{object-fit:contain;}
.feature-label{font-size:13px;font-weight:600;line-height:1.5;letter-spacing:.04em;color:#fff;}

/* ===== Studios（TOP + 一覧） ===== */
.studios{background:var(--pink-bg);}
.studios .head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:50px;}
/* ピン#27→2026-07-17 リッチ見出し画像化（フォント統一の上位互換） */
.studios h2.studios-title-img{line-height:0;}
.studios h2.studios-title-img img{height:92px;width:auto;}
@media(max-width:720px){.studios h2.studios-title-img img{height:64px;}}
.studios-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
/* 2026-07-18 リッチ化: 金→ピンクのヘアライン・角丸・写真ズーム・金の飾り罫（派手すぎない範囲で世界観を寄せる） */
.studio-card{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 10px 34px rgba(184,85,112,.09);border:1px solid rgba(200,106,130,.14);transition:box-shadow .35s ease,transform .35s ease;}
.studio-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pink-300),#D9B36A);z-index:1;}
.studio-card:hover{box-shadow:0 18px 44px rgba(184,85,112,.16);transform:translateY(-3px);}
.studio-top{padding:24px 22px 16px;}
.studio-tag{display:inline-block;background:transparent;border:1px solid var(--pink-200);color:var(--rose-text);font-size:10.5px;letter-spacing:.12em;padding:3px 12px;border-radius:999px;margin-bottom:12px;}
.studio-name{font-family:var(--serif-en);font-size:23px;line-height:1.3;letter-spacing:.08em;font-weight:500;position:relative;padding-bottom:12px;}
.studio-name::after{content:"";position:absolute;left:1px;bottom:0;width:30px;height:1.5px;background:linear-gradient(90deg,#D9B36A,var(--pink-300));}
.studio-photo{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s ease;}
.studio-card:hover .studio-photo{transform:scale(1.04);}
.studio-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;background:linear-gradient(180deg,#fff 0%,#FDF6F8 100%);margin-top:auto;}
.studio-foot span:first-child{font-size:13.5px;letter-spacing:.08em;line-height:1.7;}
.studio-arrow{width:32px;height:32px;flex-shrink:0;border-radius:50%;border:1px solid var(--pink-200);color:var(--rose-text);display:flex;align-items:center;justify-content:center;font-size:13px;font-family:var(--en);transition:background .3s ease,color .3s ease;}
.studio-card:hover .studio-arrow{background:var(--rose);border-color:var(--rose-text);color:#fff;}

/* ===== 料金プラン ===== */
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch;}
.plan-card{background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:6px;padding:40px 32px 36px;text-align:center;position:relative;display:flex;flex-direction:column;box-shadow:0 8px 30px rgba(184,85,112,.06);}
.plan-card.featured{border:1.5px solid var(--rose);box-shadow:0 14px 40px rgba(184,85,112,.14);}
.plan-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--rose);color:#fff;font-size:11px;letter-spacing:.14em;padding:5px 18px;border-radius:999px;white-space:nowrap;}
.plan-name{font-family:var(--en);font-size:13px;letter-spacing:.26em;color:var(--rose-text);margin-bottom:6px;}
.plan-name-jp{font-family:var(--serif-jp);font-size:21px;font-weight:600;letter-spacing:.1em;margin-bottom:20px;}
.plan-price{font-family:var(--en);font-size:36px;font-weight:600;line-height:1.2;}
.plan-price .yen{font-size:18px;margin-right:2px;}
.plan-price .tax{font-size:11.5px;color:var(--ink-light);font-weight:400;margin-left:4px;}
.plan-per{font-size:12px;color:var(--ink-light);margin-top:4px;margin-bottom:24px;}
.plan-features{list-style:none;text-align:left;margin:0 auto 28px;font-size:13px;color:var(--ink-light);display:flex;flex-direction:column;gap:8px;flex-grow:1;}
.plan-features li{padding-left:22px;position:relative;letter-spacing:.03em;}
.plan-features li::before{content:"✓";position:absolute;left:0;color:var(--rose-text);font-family:var(--en);}
.price-note{font-size:12px;color:var(--ink-light);letter-spacing:.04em;margin-top:28px;line-height:2;}
.price-note .em{color:var(--rose-text);}

/* ===== テーブル ===== */
.spec-table{width:100%;border-collapse:collapse;font-size:14px;}
.spec-table th,.spec-table td{padding:16px 20px;border-bottom:1px solid rgba(200,106,130,.14);text-align:left;vertical-align:top;letter-spacing:.04em;}
.spec-table th{width:180px;font-weight:500;color:var(--rose-text);white-space:nowrap;font-size:13px;}
.compare-table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;}
.compare-table th,.compare-table td{padding:14px 16px;border:1px solid rgba(200,106,130,.14);text-align:center;letter-spacing:.03em;}
.compare-table thead th{background:var(--pink-soft);color:var(--rose-text);font-weight:600;font-size:12.5px;letter-spacing:.08em;}
.compare-table tbody th{background:#FDF8FA;font-weight:500;text-align:left;white-space:nowrap;}

/* ===== FAQ ===== */
.faq-group{margin-bottom:56px;}
.faq-group-title{font-family:var(--serif-jp);font-size:20px;font-weight:600;letter-spacing:.1em;color:var(--rose-text);margin-bottom:22px;padding-left:14px;border-left:2px solid var(--pink-300);}
.faq-item{background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:4px;margin-bottom:12px;overflow:hidden;}
.faq-item summary{list-style:none;cursor:pointer;display:flex;gap:14px;align-items:baseline;padding:18px 22px;font-size:14.5px;font-weight:500;letter-spacing:.04em;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .q{font-family:var(--en);color:var(--rose-text);font-weight:600;flex-shrink:0;}
.faq-item summary::after{content:"+";margin-left:auto;color:var(--rose-text);font-family:var(--en);font-size:18px;flex-shrink:0;}
.faq-item[open] summary::after{content:"−";}
.faq-a{display:flex;gap:14px;align-items:baseline;padding:0 22px 20px;font-size:13.5px;color:var(--ink-light);letter-spacing:.04em;}
.faq-a .a{font-family:var(--en);color:var(--pink-300);font-weight:600;flex-shrink:0;}

/* ===== MAGAZINE ===== */
.articles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px;}
.article-card{background:#fff;display:block;}
.article-thumb{aspect-ratio:16/10;width:100%;object-fit:cover;}
.article-thumb.photo-placeholder{aspect-ratio:16/10;}
.article-body{padding:18px 6px 0;}
.article-tag{display:inline-block;background:var(--pink-soft);color:var(--rose-text);font-size:10.5px;letter-spacing:.1em;padding:2px 10px;border-radius:2px;margin-bottom:10px;}
.article-title{font-size:14.5px;font-weight:500;line-height:1.8;letter-spacing:.04em;}
.article-date{font-family:var(--en);font-size:11px;letter-spacing:.1em;color:var(--ink-light);margin-top:8px;}
.cat-tags{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:50px;}
.cat-tag{border:1px solid var(--pink-200);color:var(--rose-text);font-size:12px;letter-spacing:.08em;padding:8px 20px;border-radius:999px;background:#fff;}
.cat-tag.active{background:var(--rose);color:#fff;border-color:var(--rose-text);}

/* ===== トレーナー ===== */
.trainers-grid{display:grid;grid-template-columns:repeat(var(--trainer-cols,4),1fr);gap:26px;}
.trainer-card{text-align:center;}
.trainer-photo{aspect-ratio:4/5;width:100%;object-fit:cover;object-position:center top;margin-bottom:14px;}
.trainer-name{font-size:15px;font-weight:600;letter-spacing:.1em;}
.trainer-name-en{font-family:var(--en);font-size:10.5px;letter-spacing:.22em;color:var(--rose-text);margin-top:2px;}
.trainer-note{font-size:12px;color:var(--ink-light);margin-top:8px;line-height:1.8;}

/* ===== METHOD ステップ ===== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:step;}
.step{background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:6px;padding:34px 26px;position:relative;}
.step-num{font-family:var(--serif-en);font-size:44px;color:var(--pink-300);line-height:1;margin-bottom:14px;}
.step h3{font-size:16px;font-weight:700;letter-spacing:.08em;margin-bottom:10px;}
.step p{font-size:13px;color:var(--ink-light);line-height:1.9;letter-spacing:.03em;}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.pillar{background:#fff;border-radius:6px;padding:40px 32px;box-shadow:0 8px 30px rgba(184,85,112,.06);text-align:center;}
.pillar .en{font-family:var(--serif-en);font-style:italic;font-size:15px;color:var(--pink-300);letter-spacing:.1em;}
.pillar h3{font-family:var(--serif-jp);font-size:20px;font-weight:600;letter-spacing:.1em;margin:8px 0 16px;}
.pillar p{font-size:13.5px;color:var(--ink-light);text-align:left;letter-spacing:.03em;}

/* ===== フォーム ===== */
.form-card{background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:6px;padding:52px 56px;max-width:760px;margin:0 auto;}
.form-row{margin-bottom:26px;}
.form-label{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;letter-spacing:.06em;margin-bottom:10px;}
.req{background:var(--rose-text);color:#fff;font-size:10px;letter-spacing:.08em;padding:2px 8px;border-radius:2px;}
.opt{background:#8C6E77;color:#fff;font-size:10px;letter-spacing:.08em;padding:2px 8px;border-radius:2px;}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;border:1px solid rgba(200,106,130,.22);border-radius:4px;padding:13px 16px;font-family:var(--sans);font-size:14px;color:var(--ink);background:#FDFAFB;outline:none;}
input:focus,select:focus,textarea:focus{border-color:var(--rose-text);}
textarea{min-height:130px;resize:vertical;}
.radio-row{display:flex;gap:22px;flex-wrap:wrap;font-size:13.5px;}
.radio-row label{display:flex;align-items:center;gap:7px;cursor:pointer;}
.form-submit{text-align:center;margin-top:36px;}
.form-note{font-size:12px;color:var(--ink-light);text-align:center;margin-top:18px;letter-spacing:.04em;}
/* 2026-08-03: フォームを実際に送信できるようにしたのに伴い追加 */
.form-intro{font-size:13.5px;color:var(--ink-light);line-height:1.9;margin-bottom:34px;}
.form-error{color:#B4342A;font-size:12.5px;margin-top:7px;line-height:1.7;}
.form-error--top{background:#FDF2F1;border:1px solid rgba(180,52,42,.28);border-radius:5px;padding:12px 16px;margin:0 0 26px;font-size:13px;}
/* 迷惑送信よけの欄。目にも読み上げにも触れさせない */
.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
/* 送信ボタンは a から button になったため、見た目を合わせる */
button.btn-submit{border:none;cursor:pointer;font-family:inherit;}
button.btn-submit:hover{background:var(--cta-hover);}

/* 送信完了ページ */
.thanks-card{background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:6px;padding:56px 48px;text-align:center;}
.thanks-icon{width:46px;height:46px;color:var(--rose-text);margin:0 auto 20px;display:block;}
.thanks-title{font-size:22px;letter-spacing:.04em;color:var(--ink);margin:0 0 18px;font-weight:600;}
.thanks-lead{font-size:14px;line-height:2;color:var(--ink);margin:0 0 22px;}
.thanks-note{font-size:12.5px;line-height:1.95;color:var(--ink-light);margin:0 0 34px;}
.thanks-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ===== CTA ===== */
/* 2026-07-17: 写真を夕景ヨガ（ローカル配置・Unsplash 仮素材）へ差替え、ベールを少し軽くしてゴージャス寄りに */
.cta-section{position:relative;background:
  linear-gradient(120deg,rgba(198,90,120,.82) 0%,rgba(164,66,94,.88) 100%),
  url(../images/bg/bg-cta.jpg) center 62%/cover no-repeat;
  text-align:center;color:#fff;padding:110px 0;}
.cta-section h2{font-family:var(--serif-jp);font-size:30px;font-weight:600;letter-spacing:.12em;line-height:2;margin-bottom:44px;}
.cta-main{display:inline-flex;align-items:center;gap:14px;background:#fff;color:var(--rose-deep);font-size:16px;font-weight:700;letter-spacing:.1em;padding:22px 66px;border-radius:4px;box-shadow:0 14px 40px rgba(0,0,0,.18);}
.cta-subs{margin-top:26px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.cta-ghost{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.6);color:#fff;font-size:13px;letter-spacing:.08em;padding:13px 30px;border-radius:4px;}

/* ===== Footer ===== */
footer{background:#9E4560;color:rgba(255,255,255,.85);padding:64px 0 30px;}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;}
.footer-logo{font-family:var(--serif-en);font-size:24px;letter-spacing:.16em;color:#fff;font-weight:600;margin-bottom:14px;}
.footer-lead{font-size:12px;line-height:2;letter-spacing:.05em;color:rgba(255,255,255,.82);}
.footer-head{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:rgba(255,255,255,.82);margin-bottom:14px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.footer-col li,.footer-col a{font-size:12.5px;letter-spacing:.05em;color:rgba(255,255,255,.88);}
/* 2026-08-03: 実測コントラスト 2.97:1（WCAG AA の 4.5:1 未満）かつ 10.5px で、
   電話番号が最も読みにくい要素になっていたため引き上げた（UI/UXレビュー指摘） */
.footer-col small{display:block;font-size:12px;color:rgba(255,255,255,.88);margin-top:3px;line-height:1.7;}
.footer-nav{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;}
.footer-nav a{font-family:var(--en);font-size:11px;letter-spacing:.14em;}
/* footer-sns は 2026-07-17 廃止（SNS は各店舗詳細ページの店舗情報テーブルに掲載） */
.footer-bottom{max-width:1200px;margin:44px auto 0;padding:26px 40px 0;border-top:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.copyright{font-family:var(--en);font-size:10.5px;letter-spacing:.1em;color:rgba(255,255,255,.82);}

/* SP 専用改行（PC では改行しない・折返し位置の制御用） */
.br-sp{display:none;}

/* ===== Responsive ===== */
@media(max-width:1100px){
  .header-inner{gap:16px;}
  nav ul{gap:13px;}
  nav a{font-size:10.5px;letter-spacing:.06em;}
  .header-cta{font-size:11px;padding:10px 14px;}
  .results-grid,.studios-grid,.trainers-grid{grid-template-columns:repeat(2,1fr);}
  /* 2026-08-03: features は帯になったので、タブレット幅でも4列のまま維持する */
  .diagnosis-body{grid-template-columns:1fr;padding:50px 40px;gap:36px;}
  .plans-grid,.pillars,.steps{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto;}
  .plans-grid{gap:34px;}
  .articles-grid{grid-template-columns:repeat(2,1fr);}
  .bridal-body{padding:38px 34px 34px;}
  .bridal-heading img{max-width:500px;}
  .bridal-photo{width:42%;}
}
@media(max-width:720px){
  nav{display:none;}
  .hamburger{display:flex;}
  .header-inner{justify-content:space-between;padding:0 20px;}
  /* ハンバーガー開時のドロワー（body.nav-open は common.js が付与） */
  body.nav-open{overflow:hidden;}
  /* header の backdrop-filter が fixed の containing block になるため、header 基準の absolute で全画面化する */
  body.nav-open nav{display:block;position:absolute;top:100%;left:0;right:0;height:calc(100vh - 72px);height:calc(100dvh - 72px);margin-left:0;background:linear-gradient(180deg,#FDF6F8 0%,#F9EBF0 100%);z-index:99;padding:22px 24px 40px;overflow-y:auto;}
  body.nav-open nav ul{flex-direction:column;gap:0;}
  body.nav-open nav ul li{border-bottom:1px solid rgba(200,106,130,.16);}
  body.nav-open nav ul li.nav-cta{border-bottom:none;}
  body.nav-open nav a{display:block;padding:18px 4px;font-size:14px;letter-spacing:.18em;}
  .nav-cta{display:block;margin-top:28px;}
  body.nav-open nav .nav-cta a{background:var(--cta);color:#fff;text-align:center;padding:16px;border-radius:4px;font-size:13px;letter-spacing:.1em;}
  body.nav-open .nav-sp-only{display:block;}
  /* 英語ラベルの下に日本語を添える。英語だけだと料金・問い合わせの当たりが付きにくい */
  body.nav-open .nav-ja{display:block;font-size:11px;letter-spacing:.08em;color:var(--ink-light);margin-top:4px;font-family:var(--jp,inherit);}
  body.nav-open nav a.current .nav-ja{color:var(--rose-text);}

  /* ===== SP 固定の予約バー ===== */
  .sp-book-bar{display:grid;grid-template-columns:36% 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:98;
    padding:9px 12px;padding-bottom:calc(9px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);box-shadow:0 -3px 16px rgba(184,85,112,.18);}
  .sp-book-bar a{display:flex;align-items:center;justify-content:center;gap:5px;border-radius:6px;
    font-size:12.5px;font-weight:600;letter-spacing:.02em;padding:13px 6px;white-space:nowrap;}
  .sp-book-tel{color:var(--rose-text);background:#fff;border:1px solid rgba(200,106,130,.45);}
  .sp-book-main{background:var(--cta);color:#fff;box-shadow:0 4px 12px rgba(206,110,136,.3);}
  /* バーがフッター末尾に被らないよう、下に同じ高さの余白を確保する */
  body{padding-bottom:66px;}
  /* ドロワー展開中はバーを隠す（メニュー内に予約ボタンがあるため二重になる） */
  body.nav-open .sp-book-bar{display:none;}
  .diagnosis{padding:0 22px;}
  .diagnosis-card{grid-template-columns:1fr;}
  .diagnosis-photo{min-height:300px;width:100%;}
  /* SP は横幅いっぱいの1枚になるため、バナー全体が入る高さを確保する（文字の見切れ防止） */
  .diagnosis-card--banner{grid-template-columns:1fr;}
  .diagnosis-photo-wrap--banner{min-height:0;aspect-ratio:1/1;}
  .diagnosis-photo--flat{min-height:0;}
  .section-divider{margin:38px auto 32px;padding:0 22px;}
  /* ドレス写真は右44%だけを切り出すため、背中側が入る位置へ寄せる */
  .bridal-photo--back{object-position:50% 16%;}
  .wrap{padding:0 22px;}
  /* ===== SP の FV（2026-08-03 参考イメージ準拠に組み直し） =====
     従来は .hero-photo を relative に戻していたため、写真とテキストが上下に分離していた。
     クライアント指摘の「写真の上に文字が乗る」を満たすため absolute のまま重ねる。 */
  .hero-inner{padding:36px 20px 42px;}
  .hero h1{font-size:34px;}
  /* SP は2行に折るため、罫は .hero-lead ではなく2行目の「美しく。」側へ付け替える。
     flex コンテナの中では <br> が改行にならないので display も block に戻す。 */
  .hero-lead{display:block;font-size:12.5px;letter-spacing:.1em;line-height:1.9;margin-bottom:14px;}
  .hero-lead::before,.hero-lead::after{display:none;}
  .hero-lead-em{display:inline-flex;align-items:center;gap:10px;}
  .hero-lead-em::before,.hero-lead-em::after{content:"";width:18px;height:1px;background:var(--pink-300);}
  .hero h1.hero-copy{margin:0 0 22px -4px;}
  .hero h1.hero-copy img{width:min(300px,88%);}
  .hero-desc{font-size:12.5px;line-height:2;margin-bottom:0;}
  .hero-emblems{gap:4px;margin:24px 0 22px;}
  .laurel-kpi{padding:16px 0;}
  .laurel-kpi .laurel-pair-bg{width:124px;height:124px;}
  .laurel-icon{width:15px;height:15px;margin-bottom:1px;}
  .laurel-num{font-size:19px;}
  .laurel-num .plus{font-size:13px;}
  .laurel-num--sm{font-size:11px;}
  .laurel-unit{font-size:9.5px;letter-spacing:.06em;}
  .laurel-unit--em{font-size:11px;}
  .laurel-kpi .sub{font-size:8px;line-height:1.45;margin-top:3px;}
  .hero-actions{max-width:none;gap:10px;}
  .hero-cta{padding:12px 14px;gap:11px;}
  .hero-cta-badge{width:38px;height:38px;}
  .hero-cta-badge svg{width:21px;height:21px;}
  .hero-cta-badge img{width:26px;height:26px;}
  .hero-cta-text{font-size:15px;}
  .hero-cta-text small{font-size:11px;}
  .results .head,.studios .head{flex-direction:column;align-items:flex-start;gap:18px;}
  .results h2.title{font-size:20px;}
  .diagnosis h2{white-space:normal;font-size:22px;}
  .diagnosis-body{padding:44px 22px;}
  /* 写真は右上に置き、左下へ向けて背景のピンクへ溶かす（テキストの可読性を確保しつつ重ねる） */
  .hero-photo{width:62%;height:46%;object-position:72% 20%;
    -webkit-mask-image:linear-gradient(198deg,#000 22%,rgba(0,0,0,.34) 56%,transparent 80%);
    mask-image:linear-gradient(198deg,#000 22%,rgba(0,0,0,.34) 56%,transparent 80%);}
  .hero-veil{width:62%;height:46%;
    -webkit-mask-image:linear-gradient(198deg,#000 22%,rgba(0,0,0,.34) 56%,transparent 80%);
    mask-image:linear-gradient(198deg,#000 22%,rgba(0,0,0,.34) 56%,transparent 80%);}
  .founder-inner{grid-template-columns:1fr;gap:44px;}
  /* SP は1行化が物理的に不可能なため、読みやすさ優先で元のサイズに戻す（2026-08-02） */
  .founder .wrap{max-width:1260px;}
  .founder-bio{font-size:14.5px;letter-spacing:.05em;}
  .results-grid,.studios-grid,.articles-grid,.trainers-grid{grid-template-columns:1fr;}
  /* 2026-08-03: TOP のビフォーアフターは SP で縦一列になり、4件見るのに延々スクロールが要った（ユーザー指摘）。
     横スライドに変え、次のカードを少し覗かせて「横に続きがある」ことを見せる。
     下層の RESULTS 一覧は全件を見比べるページなので縦積みのまま残す。 */
  .home .results-grid{display:flex;grid-template-columns:none;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:14px;
    /* wrap の左右余白ぶんを打ち消し、端のカードが画面端まで流れるようにする */
    margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;scroll-padding-left:20px;}
  .home .results-grid .result-card{flex:0 0 74%;scroll-snap-align:center;}
  /* キーボードで入ったことが分かるように輪郭を出す */
  .home .results-grid:focus-visible,.trainers-grid:focus-visible{outline:2px solid var(--rose);outline-offset:3px;}
  .home .results-swipe-hint{display:block;}
  /* 帯は SP でも4列のまま（参考イメージ準拠）。文字とアイコンだけ縮める */
  .feature{padding:16px 3px 18px;gap:7px;}
  .feature-icon{width:27px;height:27px;}
  .feature-label{font-size:10px;letter-spacing:0;line-height:1.45;}
  .br-sp{display:inline;}
  /* SP は参考イメージどおり、写真を右に薄く敷いて文字を左に置く */
  .bridal{margin-top:26px;}
  .bridal-card{border-radius:12px;}
  .bridal-photo{width:44%;object-position:62% 14%;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.30) 30%,rgba(0,0,0,.95) 74%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.30) 30%,rgba(0,0,0,.95) 74%);}
  /* SP は横幅が足りず、見出し・本文とも写真の上まで伸びる。
     左から地色を被せて文字の下敷きを作り、写真は右側だけを見せる。
     下半分は3項目と CTA が乗るので、さらに強めに覆う。 */
  .bridal-card::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(100deg,rgba(252,246,240,.97) 0%,rgba(251,244,237,.9) 40%,rgba(250,242,235,.5) 66%,rgba(250,242,235,0) 88%);}
  .bridal-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(250,242,235,0) 0%,rgba(250,242,235,.8) 40%,rgba(249,240,232,.95) 100%);}
  .bridal-body{padding:26px 20px 24px;max-width:none;}
  .bridal-kicker{font-size:15.5px;letter-spacing:.12em;gap:7px;margin-bottom:11px;}
  .bridal-ring{width:21px;height:21px;}
  .bridal-heading{margin:-4px 0 11px -3.2%;}
  .bridal-heading img{max-width:none;}
  .bridal-lead{font-size:12px;line-height:1.85;margin-bottom:20px;}
  .bridal-points{max-width:none;margin-bottom:20px;}
  .bridal-points li{font-size:11px;gap:7px;padding:0 4px;}
  .bridal-icon{width:26px;height:26px;}
  .bridal-cta{max-width:none;font-size:13.5px;padding:15px 16px;letter-spacing:.03em;}
  .cta-section h2{font-size:18px;letter-spacing:.03em;}
  .faq-group-title{font-size:16px;letter-spacing:.03em;}
  section{padding:64px 0;}
  /* 2026-07-23: 見出しは語中で折り返さず1行に収めることを優先し、SP は一段小さく・字間も詰める */
  h2.title{font-size:21px;letter-spacing:.04em;}
  .header-cta{display:none;}
  .page-hero{padding:54px 0 44px;}
  .page-hero h1{font-size:21px;letter-spacing:.05em;}
  .btn{white-space:nowrap;font-size:13px;}
  .pillar h3{font-size:18px;}
  .compare-table a[href^="tel:"]{white-space:nowrap;}
  .form-card{padding:36px 24px;}
  .form-intro{font-size:12.5px;margin-bottom:26px;}
  .thanks-card{padding:38px 22px;}
  .thanks-title{font-size:18px;}
  .thanks-lead{font-size:13px;}
  .thanks-actions{flex-direction:column;}
  .spec-table th{width:110px;padding:13px 12px;}
  .spec-table td{padding:13px 12px;}
  .compare-table{font-size:11.5px;}
  .compare-table th,.compare-table td{padding:10px 8px;}
  /* 2026-08-03: 3列テーブルは 375px で営業時間が1〜2文字ずつ折り返して崩れていた（ユーザー指摘）。
     SP だけ行をカードに積み替える。thead を隠すぶん、値の意味は data-label で各セルに持たせる */
  .studio-contact-table,.studio-contact-table tbody,.studio-contact-table tr,
  .studio-contact-table thead th,.studio-contact-table tbody th,.studio-contact-table td{display:block;width:auto;}
  .studio-contact-table thead{display:none;}
  .studio-contact-table{border-collapse:separate;font-size:12.5px;}
  .studio-contact-table tr{background:#fff;border:1px solid rgba(200,106,130,.18);border-radius:8px;overflow:hidden;margin-bottom:12px;}
  .studio-contact-table tr:last-child{margin-bottom:0;}
  .studio-contact-table tbody th{background:#FDF8FA;border:none;padding:11px 14px;font-size:13px;font-weight:600;text-align:left;white-space:normal;}
  .studio-contact-table td{border:none;text-align:left;padding:11px 14px 0;line-height:1.75;}
  .studio-contact-table tr td:last-child{padding-bottom:13px;}
  .studio-contact-table td::before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.08em;color:var(--rose-text);margin-bottom:3px;}
  .studio-contact-table td a[href^="tel:"]{font-family:var(--en);font-size:18px;font-weight:700;letter-spacing:.03em;}
}
@media(max-width:900px){
  .footer-inner{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .footer-inner{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
}

/* ===== METHOD統合（PROGRAMページ内） ===== */
.method-visual{display:grid;grid-template-columns:38% 1fr;gap:56px;align-items:center;}
@media(max-width:1100px){.method-visual{grid-template-columns:1fr;gap:30px;}}

/* ===== ベンチマーク反映パーツ（2026-07-14） ===== */
/* プランカード「こんな人におすすめ！」 */
.plan-fit{background:var(--pink-bg);border-radius:4px;padding:14px 18px;margin-bottom:20px;text-align:left;}
.plan-fit .fit-head{font-size:11px;color:var(--rose-text);font-weight:700;letter-spacing:.08em;display:block;margin-bottom:4px;}
.plan-fit ul{list-style:none;font-size:12px;color:var(--ink-light);line-height:1.9;}
.plan-fit li{padding-left:1em;text-indent:-1em;}
.plan-fit li::before{content:"・";color:var(--rose-text);}
/* 実績カードのタグ（タイプ別×年代別） */
.result-tags{display:flex;gap:6px;justify-content:center;margin-top:7px;flex-wrap:wrap;}
.result-tags span{background:var(--pink-soft);color:var(--rose-text);font-size:10px;letter-spacing:.04em;padding:2px 9px;border-radius:999px;}
/* KPI脚注（バーの外・右下に絶対配置。flex子にするとバー幅が広がるため） */
.kpi-foot{position:absolute;top:calc(100% + 7px);right:2px;font-size:9.5px;color:var(--ink-light);letter-spacing:.04em;white-space:nowrap;}
/* リスクフリー明示 */
.risk-free{font-size:11.5px;color:var(--ink-light);letter-spacing:.06em;margin-top:14px;}
.risk-free .ok{color:var(--rose-text);font-family:var(--en);margin-right:2px;}
.cta-risk{margin-top:16px;font-size:12px;color:rgba(255,255,255,.85);letter-spacing:.06em;}
/* BOOTYの約束 */
.promise-list{display:flex;flex-direction:column;gap:14px;}
.promise{display:flex;gap:22px;align-items:flex-start;background:#fff;border:1px solid rgba(200,106,130,.14);border-radius:6px;padding:24px 28px;}
.promise .num{font-family:var(--serif-en);font-size:28px;color:var(--pink-300);line-height:1.1;flex-shrink:0;}
.promise h3{font-size:15.5px;font-weight:700;letter-spacing:.06em;margin-bottom:4px;}
.promise p{font-size:13px;color:var(--ink-light);letter-spacing:.03em;}
@media(max-width:720px){.promise{padding:18px 18px;gap:14px;}}

/* スクロール連動フェードイン */
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.is-visible{opacity:1;transform:none;}
}

/* ============ About セクション（リード＋本文＋写真） ============ */
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.about-intro .lead-copy{font-family:var(--serif-jp);font-size:26px;font-weight:600;letter-spacing:.08em;line-height:1.9;margin-bottom:24px;}
.about-intro .body-text{font-size:14.5px;line-height:2.4;color:var(--ink-light);letter-spacing:.05em;}
.about-intro .body-text+.body-text{margin-top:18px;}
@media(max-width:1100px){.about-intro{grid-template-columns:1fr;gap:44px;}.about-intro .lead-copy{font-size:22px;}}

/* ============ History セクション（沿革タイムライン・2列テーブル） ============ */
/* PC は列方向流し込み（左列=前半・右列=後半）。DOM は時系列順を維持し SP で自然に縦積みする */
.history-grid{display:flex;flex-direction:column;gap:0;background:#fff;border-radius:8px;padding:24px 48px;box-shadow:0 8px 30px rgba(184,85,112,.06);max-width:820px;margin:0 auto;}
.history-item{display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:baseline;padding:18px 0;border-bottom:1px solid rgba(200,106,130,.14);}
.history-item:last-child{border-bottom:none;}
.history-item .year{font-family:var(--serif-en);font-size:22px;color:var(--rose-text);letter-spacing:.04em;}
.history-item .event{font-size:14px;line-height:1.75;color:var(--ink);letter-spacing:.03em;}
.history-item.future .year{color:var(--rose-text);font-style:italic;}
@media(max-width:900px){.history-grid{padding:20px 22px;}.history-item{grid-template-columns:80px 1fr;gap:14px;padding:14px 0;}.history-item .year{font-size:19px;}.history-item .event{font-size:13.5px;}}

/* ============ Vision & Mission セクション（2カード） ============ */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.vm-card{background:#fff;border-radius:8px;padding:44px 40px;box-shadow:0 8px 30px rgba(184,85,112,.06);}
.vm-card .label{font-family:var(--serif-en);font-size:26px;color:var(--rose-text);letter-spacing:.06em;margin-bottom:16px;}
.vm-card .text{font-size:15px;line-height:2;color:var(--ink);letter-spacing:.04em;}
@media(max-width:900px){.vm-grid{grid-template-columns:1fr;gap:18px;}.vm-card{padding:32px 26px;}}

/* ============ 365DAYS BODY セクション（4カード：季節） ============ */
.season-head{text-align:center;margin-bottom:40px;}
.season-head .kicker{font-family:var(--serif-en);font-size:22px;letter-spacing:.14em;color:var(--rose-text);}
.season-head .sub{font-size:14px;color:var(--ink-light);letter-spacing:.06em;margin-top:8px;}
.season-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.season-card{position:relative;aspect-ratio:3/4;border-radius:8px;overflow:hidden;box-shadow:0 8px 30px rgba(184,85,112,.08);}
.season-card img{width:100%;height:100%;object-fit:cover;display:block;}
.season-card .cap{position:absolute;left:16px;bottom:16px;color:#fff;font-family:var(--serif-en);font-style:italic;font-size:24px;letter-spacing:.06em;text-shadow:0 2px 6px rgba(0,0,0,.35);}
.season-cta{text-align:center;margin-top:34px;}
@media(max-width:900px){.season-grid{grid-template-columns:repeat(2,1fr);gap:14px;}}

/* ============ Method 6アイコンセクション（Programページ） ============ */
.method-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;margin-bottom:56px;}
.method-intro .lead-copy{font-family:var(--serif-jp);font-size:22px;font-weight:600;letter-spacing:.08em;line-height:1.9;margin-bottom:22px;}
.method-intro .body-text{font-size:14px;line-height:2.2;color:var(--ink-light);letter-spacing:.04em;}
.method-intro .visual{aspect-ratio:4/3;border-radius:6px;overflow:hidden;position:relative;}
.method-intro .visual img{width:100%;height:100%;object-fit:cover;}
/* ピン#30: アイコン列を廃止し、番号つきリッチカード（3x2）へ */
.method-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.method-card{position:relative;background:#fff;border-radius:8px;padding:34px 24px 28px;text-align:center;box-shadow:0 12px 36px rgba(184,85,112,.09);border:1px solid rgba(200,106,130,.12);overflow:hidden;}
.method-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pink-300),#D9B36A);}
.method-card .num{font-family:var(--serif-en);font-size:28px;line-height:1;color:var(--pink-300);letter-spacing:.08em;display:block;margin-bottom:14px;}
.method-card h3{font-size:16.5px;font-weight:700;letter-spacing:.06em;margin-bottom:10px;}
.method-card p{font-size:12.5px;line-height:1.9;color:var(--ink-light);letter-spacing:.02em;}
@media(max-width:1100px){.method-intro{grid-template-columns:1fr;gap:30px;}.method-cards{grid-template-columns:repeat(3,1fr);gap:14px;}}
@media(max-width:600px){.method-cards{grid-template-columns:repeat(2,1fr);gap:12px;}.method-card{padding:24px 14px 20px;}.method-card h3{font-size:15px;}}

/* ===== 料金プラン（プログラム別グループ・2026-07-21 追加） ===== */
.price-program{margin-top:56px;padding:32px 34px;background:#fff;border-radius:10px;box-shadow:0 12px 36px rgba(184,85,112,.06);border:1px solid rgba(200,106,130,.10);}
.price-program:first-of-type{margin-top:40px;}
.price-program-head{display:flex;gap:22px;align-items:flex-start;margin-bottom:26px;padding-bottom:20px;border-bottom:1px dashed rgba(200,106,130,.20);}
.price-program-icon{flex-shrink:0;width:66px;height:66px;background:var(--pink-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;}
.price-program-icon img{width:44px;height:44px;object-fit:contain;}
.price-program-title{flex:1;min-width:0;}
.price-program-title h3{font-size:19px;font-weight:700;letter-spacing:.06em;color:var(--rose-text);margin-bottom:6px;line-height:1.4;}
.price-program-title p{font-size:12.5px;line-height:1.9;color:var(--ink-light);letter-spacing:.02em;}

.price-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.price-card{position:relative;background:#FDF8FA;border:1px solid rgba(200,106,130,.14);border-radius:8px;padding:26px 22px 22px;text-align:center;transition:transform .3s ease,box-shadow .3s ease;}
.price-card--platinum{background:linear-gradient(180deg,#FDF3F5 0%,#FCEEF2 100%);}
.price-card--silver{background:#F7F5F5;}
.price-card.is-recommended{background:linear-gradient(180deg,#FFF9EA 0%,#FEF3D5 100%);border-color:#D9B36A;box-shadow:0 12px 30px rgba(217,179,106,.18);transform:translateY(-4px);}
.price-card-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#D9B36A;color:#fff;font-size:11px;font-weight:700;letter-spacing:.14em;padding:5px 20px;border-radius:999px;white-space:nowrap;}
.price-card-crown{display:block;font-size:17px;line-height:1;color:#B85570;margin-bottom:6px;}
.price-card-rank{font-family:var(--en);font-size:14px;font-weight:700;letter-spacing:.24em;color:var(--rose-text);margin-bottom:12px;}
.price-card-desc{font-size:12px;color:var(--ink);letter-spacing:.03em;line-height:1.7;margin:-6px 0 12px;}
.price-card-features{list-style:none;margin:0 auto 14px;padding:0;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--ink-light);text-align:left;max-width:190px;}
.price-card-features li{padding-left:20px;position:relative;letter-spacing:.02em;}
.price-card-features li::before{content:"✓";position:absolute;left:0;color:var(--rose-text);font-family:var(--en);font-weight:700;}
.price-card--platinum .price-card-rank{color:#B85570;}
.price-card.is-recommended .price-card-rank{color:#B08A3D;}
.price-card--silver .price-card-rank{color:#8B8B8B;}
.price-card-count{font-size:13px;color:var(--ink-light);letter-spacing:.04em;margin-bottom:16px;}
.price-card-yen{font-family:var(--en);font-size:24px;font-weight:700;line-height:1.2;color:var(--ink);}
.price-card-yen .price-card-tax{font-size:11px;color:var(--ink-light);font-weight:400;margin-left:4px;letter-spacing:.02em;}
.price-card-unit{font-size:11.5px;color:var(--ink-light);margin-top:6px;letter-spacing:.02em;}

.price-single-note{margin-top:14px;text-align:center;font-size:12px;color:var(--ink-light);letter-spacing:.04em;}

.price-footer{margin-top:44px;display:flex;justify-content:center;gap:32px;flex-wrap:wrap;padding:22px 26px;background:var(--pink-bg);border-radius:8px;}
.price-footer-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:180px;}
.price-footer-item .label{font-size:11px;color:var(--rose-text);font-weight:700;letter-spacing:.12em;}
.price-footer-item .value{font-family:var(--en);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:.04em;}

@media(max-width:900px){
  .price-program{padding:26px 20px;}
  .price-program-head{flex-direction:row;gap:14px;margin-bottom:20px;padding-bottom:16px;}
  .price-program-icon{width:46px;height:46px;}
  .price-program-icon img{width:26px;height:26px;}
  .price-program-title h3{font-size:16.5px;}
  .price-cards{grid-template-columns:1fr;gap:14px;}
  .price-card{padding:22px 20px 18px;}
  .price-card.is-recommended{transform:none;}
  .price-footer{gap:18px;padding:18px 20px;}
  .price-footer-item{min-width:140px;}
}

/* ========================================================================
 * Price Plans (店舗詳細ページ・2026-07-21 添付モック準拠デザイン v2)
 * 構造: .pp-hero(1160px整列) > .pp-body(.pp-row = 左サイド+3カード) > .pp-footer
 * カードは head(色帯) + body の2層構造。負マージンハックなし。
 * ======================================================================== */
.pp-section{background:linear-gradient(180deg,#fff 0%,#fdf5f7 100%);padding:0 0 80px;}

/* --- ヒーロー（本文と同じ1160px整列） --- */
.pp-hero{background:linear-gradient(90deg,#fff9fb 0%,#fce9ee 100%);border-bottom:1px solid rgba(200,106,130,.14);}
.pp-hero-inner{max-width:1160px;margin:0 auto;padding:0 32px;display:block;min-height:auto;}
.pp-hero-text{padding:52px 0 44px;display:flex;flex-direction:column;justify-content:center;}
.pp-hero-kicker{font-family:var(--serif-en);font-size:14px;letter-spacing:.28em;color:var(--rose-text);margin-bottom:14px;}
.pp-hero-title{font-family:var(--serif-jp);font-size:34px;font-weight:500;letter-spacing:.05em;color:var(--ink);margin:0 0 12px;}
.pp-hero-store{font-size:14px;color:var(--rose-text);letter-spacing:.08em;font-weight:600;margin:0 0 20px;}
.pp-hero-divider{border:none;border-top:1px solid rgba(200,106,130,.24);margin:0 0 20px;max-width:280px;}
.pp-hero-lead{font-size:13.5px;color:var(--ink-light);letter-spacing:.03em;line-height:1.8;}

/* --- プログラム行 --- */
.pp-body{max-width:1160px;margin:0 auto;padding:52px 32px 0;display:flex;flex-direction:column;gap:28px;}
.pp-row{display:grid;grid-template-columns:216px 1fr;gap:28px;align-items:center;background:#fff;border-radius:12px;padding:28px;box-shadow:0 8px 30px rgba(184,85,112,.08);}
.pp-side{display:flex;flex-direction:column;align-items:flex-start;}
.pp-icon{width:72px;height:72px;border-radius:50%;background:#fbeff2;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.pp-icon img{width:50px;height:50px;object-fit:contain;}
.pp-name{font-family:var(--serif-jp);font-size:19px;font-weight:600;color:var(--rose-text);letter-spacing:.04em;margin:0 0 8px;line-height:1.45;}
.pp-lead{font-size:12.5px;color:var(--ink-light);letter-spacing:.02em;line-height:1.75;margin:0;}

/* --- カード（head色帯 + body の2層・重なりなし） --- */
.pp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:stretch;}
/* 2026-07-23: 32回プラン新設で4段構成のプログラムが発生。4枚時は1列あたりが狭くなるため
   カラム数をプラン数に合わせ、価格・特典のサイズを一段落として1行に収める */
/* 縮小指定は PC/タブレットのみに閉じる。SP（900px以下）は横長カードの縦積みで
   別スケールのため、ここで上書きすると価格が大きくなり 320px で横はみ出しする */
@media(min-width:901px){
  .pp-cards--4{grid-template-columns:repeat(4,1fr);gap:10px;}
  .pp-cards--4 .pp-card-body{padding:13px 11px 16px;}
  .pp-cards--4 .pp-card-price{font-size:19px;}
  .pp-cards--4 .pp-card-desc{font-size:11px;}
  .pp-cards--4 .pp-card-features{padding:0 2px;}
  .pp-cards--4 .pp-card-features li{font-size:11px;padding-left:15px;}
}
@media(min-width:901px) and (max-width:1100px){.pp-cards--4{grid-template-columns:repeat(2,1fr);gap:12px;}}
.pp-card{position:relative;background:#fff;border:1px solid #f0dde3;border-radius:10px;display:flex;flex-direction:column;overflow:visible;isolation:isolate;transition:transform .2s,box-shadow .2s;}
.pp-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(184,85,112,.14);}
.pp-card.is-popular{border-color:#d9b862;box-shadow:0 4px 16px rgba(212,164,65,.18);}

.pp-card-head{padding:12px 10px;text-align:center;border-radius:10px 10px 0 0;}
.pp-card--platinum .pp-card-head{background:linear-gradient(90deg,#f2a5c0 0%,#c44a75 100%);}
.pp-card--gold .pp-card-head{background:linear-gradient(90deg,#e2bd68 0%,#b8912e 100%);}
.pp-card--silver .pp-card-head{background:linear-gradient(90deg,#e9e9e9 0%,#d6d6d6 100%);}
/* Starter は水色系（爽やか）でランクの独立感を出す */
.pp-card--starter .pp-card-head{background:linear-gradient(90deg,#8dd0ec 0%,#3a9fd0 100%);}
/* ランク名を持たないカード（コンテストサポート）。割引率を淡いピンク帯で見せる */
.pp-card--plain .pp-card-head{background:linear-gradient(90deg,#fbe6ec 0%,#f3ccd8 100%);}
.pp-card--plain .pp-rank{color:#b0567c;}
.pp-card--plain .pp-card-session .num,
.pp-card--plain .pp-card-price{color:#b0567c;}
.pp-card--plain .pp-card-features li::before{color:#b0567c;}
.pp-rank{font-family:var(--serif-en);font-size:17px;letter-spacing:.16em;font-weight:600;color:#fff;line-height:1;}
.pp-card--silver .pp-rank{color:#6a6a6a;}
.pp-crown{font-size:15px;margin-right:3px;vertical-align:-1px;}

/* 人気No.1: カードの完全に外側（上端の上）に浮くピル型バッジ。
   カードヘッダー帯と重ならないよう bottom:100%+margin で押し上げ、
   z-index 依存を無くして GOLD 色帯に埋もれる問題を根絶。 */
.pp-badge{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;background:linear-gradient(90deg,#e07a99 0%,#c44a75 100%);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.14em;padding:5px 16px;border-radius:999px;line-height:1.3;z-index:3;box-shadow:0 3px 10px rgba(196,74,117,.35);white-space:nowrap;}

.pp-card-body{display:flex;flex-direction:column;flex:1;padding:14px 16px 18px;text-align:center;}
.pp-card-desc{font-size:11.5px;color:var(--ink-light);letter-spacing:.02em;line-height:1.6;margin:0 0 10px;min-height:37px;display:flex;align-items:center;justify-content:center;}
.pp-card-session{font-size:14px;color:var(--ink);letter-spacing:.02em;margin-bottom:10px;}
.pp-card-session .num{font-family:var(--serif-en);font-size:23px;color:var(--rose-text);font-weight:600;margin-right:2px;}
.pp-card--gold .pp-card-session .num{color:#917224;}
.pp-card--silver .pp-card-session .num{color:#6a6a6a;}
.pp-card--starter .pp-card-session .num{color:#287DA7;}
.pp-card-session .slash{color:#c9c9c9;margin:0 4px;}

.pp-card-features{list-style:none;padding:0 6px;margin:0 0 12px;display:flex;flex-direction:column;gap:4px;text-align:left;min-height:58px;}
.pp-card-features li{font-size:11.5px;color:var(--ink);letter-spacing:.02em;padding-left:17px;position:relative;line-height:1.5;}
.pp-card-features li::before{content:"✓";position:absolute;left:0;top:0;color:#c44a75;font-size:11px;font-weight:700;}
.pp-card--gold .pp-card-features li::before{color:#917224;}
.pp-card--silver .pp-card-features li::before{color:#a0a0a0;}
.pp-card--starter .pp-card-features li::before{color:#287DA7;}

.pp-card-price{font-family:var(--serif-en);font-size:22px;font-weight:600;letter-spacing:.02em;margin-top:auto;line-height:1.1;}
.pp-card--platinum .pp-card-price{color:#c44a75;}
.pp-card--gold .pp-card-price{color:#917224;}
.pp-card--silver .pp-card-price{color:#5a5a5a;}
.pp-card--starter .pp-card-price{color:#287DA7;}
.pp-card-price .tax{font-size:11px;color:var(--ink-light);font-family:var(--sans);font-weight:400;margin-left:4px;}
.pp-card-per{font-size:11px;color:var(--ink-light);letter-spacing:.02em;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(200,106,130,.18);}
/* 2026-07-23: 単発1回料金（赤坂店のみ設定あり）。カード群の下に1行で添える */
.pp-single{grid-column:1/-1;margin:12px 0 0;text-align:right;font-size:12px;color:var(--ink-light);letter-spacing:.02em;}
.pp-single b{font-family:var(--serif-en);font-size:15px;color:var(--rose-text);font-weight:600;margin-left:6px;}
/* プログラム単位の注記（例: ウェディングプランは全店舗共通料金） */
.pp-prog-note{grid-column:1/-1;margin:10px 0 0;font-size:11.5px;color:var(--ink-light);letter-spacing:.02em;line-height:1.7;}

/* --- フッター帯・注記 --- */
.pp-footer{max-width:1160px;margin:32px auto 0;padding:22px 28px;background:#fbeff2;border-radius:10px;display:flex;align-items:center;gap:36px;flex-wrap:wrap;box-sizing:border-box;}
@media(min-width:901px){.pp-footer{width:calc(100% - 64px);}}
.pp-footer-item{display:flex;align-items:center;gap:12px;}
.pp-footer-icon{font-size:22px;opacity:.6;}
.pp-footer-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.06em;margin-bottom:2px;}
.pp-footer-value{display:block;font-family:var(--serif-en);font-size:16px;color:var(--rose-text);letter-spacing:.02em;font-weight:600;}
.pp-footer-brand{margin-left:auto;font-family:var(--serif-en);font-size:14px;letter-spacing:.24em;color:var(--rose-text);}
.pp-note{max-width:1160px;margin:18px auto 0;padding:0 32px;font-size:11.5px;color:var(--ink-light);letter-spacing:.02em;line-height:1.8;}

/* --- SP（モック06準拠: 横長カード縦積み） --- */
@media(max-width:900px){
  /* ドロワー展開中は header の兄弟要素（ページ本文全体）を隠して、
     料金カードのラベル帯やバッジ、影がドロワーの前面に浮き出ることを完全防止 */
  body.nav-open > *:not(header){visibility:hidden;}
  /* トレーナー: 縦積みは冗長 → 横スクロールカルーセル（scroll-snap 付き） */
  .trainers-grid{display:flex;grid-template-columns:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:12px;padding:4px 20px 12px;margin:0 -20px;scrollbar-width:thin;}
  .trainers-grid .trainer-card{flex:0 0 62%;max-width:220px;scroll-snap-align:start;}
  .trainers-grid .trainer-photo{aspect-ratio:4/5;}
  /* 料金ヒーロー: 写真を廃止したので単カラム縦組み */
  .pp-hero-inner{padding:0 22px;}
  .pp-hero-text{padding:26px 0 24px;}
  .pp-hero-title{font-size:23px;}
  .pp-hero-store{margin-bottom:14px;}
  .pp-hero-divider{margin-bottom:14px;}
  .pp-hero-lead{font-size:12px;}
  .pp-body{padding:32px 16px 0;gap:20px;}
  .pp-row{grid-template-columns:1fr;gap:16px;padding:20px 16px;}
  .pp-side{display:grid;grid-template-columns:60px 1fr;column-gap:14px;align-items:center;}
  .pp-icon{width:60px;height:60px;margin-bottom:0;grid-row:1 / span 2;}
  .pp-icon img{width:42px;height:42px;}
  .pp-name{font-size:16.5px;margin-bottom:2px;}
  .pp-lead{font-size:11.5px;line-height:1.6;}
  .pp-cards{grid-template-columns:1fr;gap:12px;}
  /* 2026-08-02: スマホは料金プランをアコーディオン化（is-accordion は JS が付与） */
  .pp-row.is-accordion .pp-cards{display:none;}
  .pp-row.is-accordion.is-open .pp-cards{display:grid;}
  .pp-row.is-accordion .pp-side{cursor:pointer;padding-right:26px;position:relative;}
  .pp-row.is-accordion .pp-side::after{content:'';position:absolute;right:6px;top:50%;width:9px;height:9px;border-right:2px solid #c86a82;border-bottom:2px solid #c86a82;transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;}
  .pp-row.is-accordion.is-open .pp-side::after{transform:translateY(-25%) rotate(-135deg);}
  .pp-card{display:grid;grid-template-columns:104px 1fr auto;gap:12px;align-items:center;padding:12px 14px;overflow:visible;border-radius:8px;}
  .pp-card-head{grid-column:1;grid-row:1;padding:0;height:54px;border-radius:6px;display:flex;align-items:center;justify-content:center;}
  .pp-rank{font-size:13.5px;letter-spacing:.1em;}
  .pp-crown{font-size:12px;}
  .pp-card-body{display:contents;}
  .pp-card-desc{display:none;}
  .pp-card-features{display:none;}
  .pp-card-session{grid-column:2;grid-row:1;margin-bottom:0;font-size:13px;text-align:left;}
  .pp-card-session .num{font-size:20px;}
  .pp-card-price{grid-column:3;grid-row:1;margin-top:0;font-size:18px;text-align:right;}
  .pp-card-price .tax{font-size:10px;display:block;text-align:right;margin-left:0;}
  .pp-card-per{display:none;}
  .pp-badge{position:absolute;bottom:100%;left:8px;top:auto;transform:none;margin-bottom:4px;font-size:9px;padding:2px 10px;border-radius:999px;background:linear-gradient(90deg,#e07a99 0%,#c44a75 100%);letter-spacing:.08em;z-index:3;box-shadow:0 2px 6px rgba(196,74,117,.35);}
  .pp-footer{margin:24px 16px 0;padding:16px 18px;gap:16px;width:auto;}
  .pp-footer-brand{width:100%;margin-left:0;text-align:center;padding-top:10px;border-top:1px solid rgba(200,106,130,.14);}
  .pp-note{padding:0 16px;}
}

/* ===== 極小幅（〜400px）の是正 =====
   2026-08-03: 320px で横スクロールが出ていた（scrollWidth=354）。
   原因は診断セクションの .types が `repeat(2,132px)` の固定幅で、
   132*2 + gap24 = 288px が .diagnosis-body（232px）に収まらなかったこと。
   2026-08-02 時点では「診断エリアはB案で作り直すので未対応」と判断していたが、
   B案はクライアントが辞退したため作り直されない。ここで直しておく。 */
@media(max-width:400px){
  .diagnosis{padding:0 12px;}
  .diagnosis-body{padding:36px 14px;}
  .types{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;padding-bottom:28px;}
  .types .type:nth-child(even){transform:translateY(26px);}
  .type{width:auto;}
  .type-circle{width:88px;height:88px;}
  .type-circle img{width:64px;height:64px;}
  .type-label{font-size:11px;letter-spacing:.02em;}
}

/* ===== 2026-08-03 追加分（クライアント指摘の取りこぼし対応） ===== */
/* 2026-08-03: 帯の説明文（.feature-desc）は一度入れたが、375px で4列 × 説明文だと
   1列93px しかなく「ヒップデザインに特/化した」のように語中で分断されるため撤去した。
   クライアントの文言差し替え指示（B-2）は、後から届いた参考イメージ（説明文なしの帯）で
   上書きされたと判断している。次回連絡でその旨を伝えること。 */
/* ヘッダーの診断ボタン。PC は予約ボタンと2本並べる */
.header-cta--diagnosis{background:#fff;color:var(--rose-text);border:1px solid rgba(255,255,255,.9);box-shadow:0 4px 14px rgba(184,85,112,.18);display:inline-flex;align-items:center;gap:8px;}
.header-cta--diagnosis .arrow{font-family:var(--en);font-size:16px;line-height:1;}
/* ウェディングLPへの導線（料金表の注記内・プログラム紹介カード内） */
.pp-prog-note a,.program-card-link{color:var(--rose-text);text-decoration:underline;text-underline-offset:3px;}
.program-card-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:600;text-decoration:none;}
@media(max-width:1100px){
  .header-cta--diagnosis{font-size:10.5px;padding:9px 12px;}
}
.hc-short{display:none;}
@media(max-width:720px){
  /* SP は参考イメージどおり診断ボタンのみをヘッダーに出す（予約ボタンは PC 専用のまま） */
  .header-cta--diagnosis{display:inline-flex;font-size:10.5px;padding:9px 12px;letter-spacing:.02em;white-space:nowrap;}
  .header-cta--diagnosis .arrow{display:none;}
}
@media(max-width:400px){
  /* 2026-08-03: 320px では長文ラベルのボタンが nowrap のまま画面外へ出ていた（お問い合わせの
     送信ボタンで実測 31px 溢れ）。字間とパディングを詰めて1行のまま収める。 */
  .btn{font-size:11.5px;letter-spacing:.02em;padding:15px 18px;gap:8px;}
  .sp-book-bar{grid-template-columns:38% 1fr;gap:6px;padding-left:10px;padding-right:10px;}
  .sp-book-bar a{font-size:11px;padding:12px 4px;gap:4px;}
  .bridal-points li{font-size:10px;}
  .bridal-cta{font-size:12px;padding:14px 10px;}
  .btn-submit{font-size:11.5px;padding:16px 18px;}
  /* 320px ではロゴ＋フル文言＋ハンバーガーが物理的に収まらない（実測 6px 溢れ）。
     文言を短縮版へ差し替えて解消する */
  .hc-full{display:none;}
  .hc-short{display:inline;}
  .header-cta--diagnosis{font-size:10px;padding:8px 10px;}
  .header-inner{padding:0 14px;}
}
