/* ==========================================================================
   PLAYGRAND - JIYUGAOKA GYM
   PSDトークン準拠
   ========================================================================== */

   :root{
    --c-yellow: #fcce59;
    --c-yellow-bright: #ffd927;
    --c-line: #00b34f;
    --c-green-dark: #0d401d;
    --c-green-mid: #18601d;
    --c-green-deep: #085d3e;
    --c-green-btn: #1b5e20;
    --c-green-bright: #398d2b;
    --c-green-fresh: #42c700;
    --c-paper: #fffde3;
    --c-card-edge: #81b85d;
    --c-text: #4b4b4b;
    --c-text-dark: #000000;
    --c-dot: #252a37;
    --c-purple-shadow: #cebddb;
    --c-bg: #f4f4f2;
    --c-white: #ffffff;
    --c-text-sub: #595959;
  
    --shadow-card: 0 8px 22px rgba(0,0,0,0.08);
    --shadow-soft: 0 4px 14px var(--c-purple-shadow);
  
    --font-sans: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    --font-serif: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
    --font-en: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  
    --maxw: 1180px;
    --gutter: 24px;
  }
  
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:clip;} /* 装飾葉のはみ出しでモバイルがズームアウト（右余白）するのを防止 */
  body{
    margin:0;
    font-family:var(--font-sans);
    font-weight:500;
    font-size:18px;
    color:var(--c-text);
    background:var(--c-bg);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  
  /* ----- Fade-up scroll animation -------------------------------- */
  .fade-up{
    opacity:0;
    transform:translateY(40px);
    transition:opacity 1s cubic-bezier(0.22,0.61,0.36,1),
               transform 1s cubic-bezier(0.22,0.61,0.36,1);
    will-change:opacity,transform;
  }
  .fade-up.is-visible{
    opacity:1;
    transform:translateY(0);
  }
  .fade-up-stagger > *{
    opacity:0;
    transform:translateY(40px);
    transition:opacity .9s cubic-bezier(0.22,0.61,0.36,1),
               transform .9s cubic-bezier(0.22,0.61,0.36,1);
    will-change:opacity,transform;
  }
  .fade-up-stagger.is-visible > *{
    opacity:1;
    transform:translateY(0);
  }
  .fade-up-stagger.is-visible > *:nth-child(1){transition-delay:0s;}
  .fade-up-stagger.is-visible > *:nth-child(2){transition-delay:.12s;}
  .fade-up-stagger.is-visible > *:nth-child(3){transition-delay:.24s;}
  .fade-up-stagger.is-visible > *:nth-child(4){transition-delay:.36s;}
  .fade-up-stagger.is-visible > *:nth-child(5){transition-delay:.48s;}
  .fade-up-stagger.is-visible > *:nth-child(6){transition-delay:.6s;}
  .fade-up-stagger.is-visible > *:nth-child(7){transition-delay:.72s;}
  .fade-up-stagger.is-visible > *:nth-child(8){transition-delay:.84s;}
  @media (prefers-reduced-motion: reduce){
    .fade-up,.fade-up-stagger > *{
      opacity:1;transform:none;transition:none;
    }
  }
  img{max-width:100%;height:auto;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;margin:0;padding:0;}
  
  .container{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 var(--gutter);
    position:relative;
  }
  
  /* ----- Header --------------------------------------------------- */
  .site-header{
    position:fixed;
    inset:0 0 auto 0;
    z-index:100;
    background:rgba(255,255,255,0.96);
    box-shadow:0 2px 8px rgba(0,0,0,0.04);
    height:64px;
  }
  .header-inner{
    max-width:1400px;
    margin:0 auto;
    padding:8px 20px;
    height:64px;
    display:flex;
    align-items:center;
    gap:20px;
  }
  .logo img{height:42px;}
  .gnav{flex:1;}
  .gnav ul{display:flex;justify-content:flex-end;gap:18px;}
  .gnav a{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-weight:800;
    font-size:18px;
    color:#000;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0;
    transition:color .2s;
  }
  .gnav a:hover{color:var(--c-green-bright);}
  .gnav a span{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:14px;
    color:var(--c-dot);
    font-weight:500;
  }
  .kenten{
    -webkit-text-emphasis: dot;
    text-emphasis: dot;
    -webkit-text-emphasis-position: over;
    text-emphasis-position: over;
  }
  .header-cta{display:flex;gap:10px;}
  .header-cta .btn{
    padding:10px 22px;
    font-size:18px;
    font-weight:700;
    border-radius:999px;
    border:none;
    outline:none;
    gap:0;
  }
  .header-cta .btn .arrow{display:none;}
  .hamburger{
    display:none;
    width:38px;height:38px;
    border:none;background:transparent;
    cursor:pointer;flex-direction:column;
    justify-content:center;gap:5px;padding:0;
  }
  .hamburger span{
    display:block;width:24px;height:2px;background:var(--c-green-mid);
    margin:0 auto;transition:transform .3s,opacity .3s;
  }
  .hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.is-open span:nth-child(2){opacity:0;}
  .hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  
  /* ----- Buttons (PSD: 白二重縁取り + 矢印付き白丸) -------------- */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:14px 32px 14px 28px;
    border-radius:6px;
    font-family:var(--font-sans);
    font-size:18px;
    font-weight:700;
    background:var(--c-yellow);
    color:#000;
    border:1px solid #fff;
    outline:1px solid #fff;
    outline-offset:-5px;
    box-shadow:none;
    position:relative;
    transition:transform .15s,opacity .15s;
    text-align:center;
    line-height:1.4;
  }
  .btn:hover{opacity:0.9;}
  .btn .arrow{
    width:20px; height:20px; border-radius:50%;
    background:#fff; color:#000;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:0; font-weight:700;
    line-height:1;
    flex-shrink:0;
    transition:transform .2s;
  }
  .btn .arrow::before{
    content:"\203A"; font-size:18px; font-weight:700; line-height:1;
    transform:translate(0px,-3px);
  }
  .btn:hover .arrow{transform:translateX(3px);}
  .btn-yellow{background:var(--c-yellow);color:#000 !important;}
  .btn-line{background:var(--c-line);color:#fff !important;}
  .btn-green-dark{background:var(--c-green-mid);color:#fff;}
  .btn-green-bright{background:var(--c-green-bright);color:#fff;}
  .btn.big{
    padding:22px 48px;
    font-size:18px;
    min-width:340px;
    gap:0;
    border-radius:999px;
    border:none;
    outline:none;
  }
  .btn.big .arrow{display:none;}
  
  /* ----- Section CTA button (pill + extending line) --------------- */
  .btn-section{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--c-green-btn);
    color:#fff;
    border:none;
    outline:none;
    border-radius:999px;
    padding:18px 80px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;
    font-weight:700;
    position:relative;
    box-shadow:none;
    min-width:480px;
    text-align:center;
    line-height:1.4;
    transition:opacity .2s;
  }
  .btn-section:hover{opacity:0.9;}
  .btn-section .arrow{display:none;}
  .btn-section::after{
    content:"";
    position:absolute;
    right:0px;
    top:50%;
    width:45px;
    height:1.5px;
    background:#fff;
    transform:translateY(-50%);
    pointer-events:none;
  }
  .btn-section::before{
    content:"";
    position:absolute;
    left:100%;
    top:50%;
    width:30px;
    height:1.5px;
    background:var(--c-green-btn);
    transform:translateY(-50%);
    pointer-events:none;
  }
  .sec03 .btn-section{background:#18601d;}
  .sec03 .btn-section::before{background:#18601d;}
  .btn-section-wrap{
    display:flex;
    justify-content:center;
    margin-top:50px;
    overflow:hidden;
    position:relative;
  }
  
  .btn-wrap{
    display:flex;justify-content:center;
    margin-top:50px;
  }
  
  /* ----- Hero ----------------------------------------------------- */
  .hero{
    padding-top:64px;
    background:var(--c-bg);
    padding-bottom:0px;
    height:100vh;          /* 画面（ビューポート）に収める */
    height:100dvh;         /* モバイルのアドレスバー対応 */
  }
  .hero-img{
    width:100%;
    height:100%;           /* ヘッダー分を除いた残り全体 */
    margin:0;
    padding:0;
    overflow:hidden; /* 下のvideoの+2pxはみ出しをクリップし、下端の継ぎ目(黒線)を隠す */
  }
  .hero-img img,
  .hero-img video{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
  }
  /* object-fit:cover動画は端に1pxのサブピクセル継ぎ目(黒線)が出る(Windowsは上下左右全周・
     非整数DPR環境で顕著)。scale(1.02)で全周を大きめにはみ出させ、.hero-imgの
     overflow:hiddenで切り落とす。pxブリードと違いDPRの丸めに影響されない。
     さらにWindowsではスクロール中に動画のハードウェアオーバーレイ(hole punch)の
     黒縁が明滅する→filterを付けるとオーバーレイ昇格が無効になり通常合成に落ちて根絶。
     brightness(1.001)は視覚的に無変化 */
  .hero-img video{transform:scale(1.02);filter:brightness(1.001);}
  
  /* ----- Section common ------------------------------------------- */
  section{padding:100px 0;position:relative;}
  .sec-head{text-align:center;margin-bottom:21px;position:relative;}
  .sec-head-center{text-align:center;}
  
  .en-label{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:500;
    color:#000;
    margin:0 0 18px;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
  }
  .en-label .bar{
    display:block;
    width:1px;height:30px;
    background:#000;
    margin:0 auto;
  }
  .h2{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(20px,2.4vw,34px);
    font-weight:700;
    color:#000;
    line-height:1.7;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    width:100%;
    max-width:100%;
  }
  .h2 .line{display:inline-block;max-width:100%;}
  .sp-br{display:none;} /* ≤600pxのみ改行する見出し用 */
  .boten{
    -webkit-text-emphasis: filled dot #000;
    text-emphasis: filled dot #000;
    -webkit-text-emphasis-position: over;
    text-emphasis-position: over;
  }
  .h2 .dots{display:flex;gap:8px;margin-bottom:4px;}
  .h2 .dots i{
    width:4px;height:4px;border-radius:50%;
    background:#000;display:block;
  }
  .brand{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-weight:700;
    color:#000;
  }
  .hl-band{
    padding:0px 8px;
    display:inline-block;
    font-weight:700;
    line-height:1.55;
  }
  .hl-yellow{background:var(--c-yellow);color:#000;}
  .hl-green{background:#398d2b;color:#fff;}
  .hl-blue{background:#b9e5ed;color:#000;}
  .hl-gray{background:#dedede;color:#000;}

  /* ハイライト帯：スクロールで左から横ワイプ表示（main.jsが .hl-anim を付与）
     ※ JS未実行時は .hl-anim が付かず通常表示（=非表示固定にならない）
     ※ トリガーは祖先(.sec-head/.h2 等)の .is-visible。バンド自身を clip-path で
        隠すと IntersectionObserver が交差を検知できなくなるため、自己監視はしない。 */
  .hl-band.hl-anim{
    clip-path:inset(0 100% 0 0);
    -webkit-clip-path:inset(0 100% 0 0);
    transition:clip-path .7s cubic-bezier(0.22,0.61,0.36,1),
               -webkit-clip-path .7s cubic-bezier(0.22,0.61,0.36,1);
    transition-delay:.15s;
  }
  .is-visible .hl-band.hl-anim{
    clip-path:inset(0 0 0 0);
    -webkit-clip-path:inset(0 0 0 0);
  }
  @media (prefers-reduced-motion: reduce){
    .hl-band.hl-anim{clip-path:none;-webkit-clip-path:none;transition:none;}
  }
  /* CTA共通見出し：ブランド名とハイライト帯の間に余白 */
  .sec-counseling .hl-band{margin-left:6px;}
  .h2 .line-band{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:6px 6px;
    width:100%;
  }
  .h2 .line-band .conj{margin:0 6px;font-weight:700;}
  .lead{
    font-size:18px;
    color:#000;
    max-width:685px;
    margin:24px auto 0;
    text-align:left;
  }
  .vision-lead,
  .lead.light{text-align:center;}
  .lead.light{color:rgba(255,255,255,0.92);}
  .sec-head.light .en-label,
  .sec-head.light .h2,
  .sec-head.light .lead{color:var(--c-white);}
  .sec-head.light .en-label{color:#fff;}
  .sec-head.light .en-label .bar{background:#fff;}
  .sec-head.light .h2{color:var(--c-white);}
  .sec-head.light .h2 .dots i{background:var(--c-white);}
  
  /* ----- Sec01 - Reason ------------------------------------------- */
  .sec01{
    background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);
    position:relative;
    padding-bottom:50px;
  }
  .leaf{position:absolute;pointer-events:none;z-index:0;}
  .leaf img{width:100%;display:block;}
  .sec01 .leaf-l{top:30px;left:-38px;width:480px;transform:rotate(-8deg);overflow:hidden;}
  .sec01 .leaf-l img{clip-path:inset(80px 0 0 0);}
  .sec01 .leaf-r{top:80px;right:-160px;width:480px;transform:rotate(8deg);}
  .sec01 .container{z-index:1;}
  .sec01 .h2 .line:first-child{font-size:1.8em;}
  .sec01 .h2 .line-band{font-size:0.88em;}
  .reason-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px 28px;
    margin-top:50px;
  }
  .reason-card{
    text-align:center;
    padding:0;
  }
  .reason-card .card-img{
    background:#fffde3;
    border:none;
    border-radius:15px;
    overflow:hidden;
    aspect-ratio:3/2;
    margin-bottom:18px;
    box-shadow:none;
  }
  .reason-card .card-img img{
    width:100%;height:100%;object-fit:cover;
  }
  .reason-card h3{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:25px;
    font-weight:bold;
    color:var(--c-green-bright);
    margin:0 0 10px;
    background:transparent;
    display:block;
    padding:0;
    border-radius:0;
    line-height:1.45;
    text-align:left;
  }
  .reason-card p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:500;
    color:#000;
    margin:0;
    text-align:left;
    line-height:1.6;
  }
  
  /* ----- Sec02 - Strengths ---------------------------------------- */
  .sec02{
    background:#fff;
    position:relative;
    padding-top:150px;
  }
  .sec02-wave{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:140px;
    z-index:1;
    pointer-events:none;
    display:block;
  }
  .sec02::before{
    content:"";
    position:absolute;
    top:-60px;left:-180px;
    width:560px;height:460px;
    background:url('../images/leaf_sec02_l.webp') no-repeat center/contain;
    transform:rotate(-5deg);
    pointer-events:none;
    z-index:2;
  }
  .sec02::after{
    content:"";
    position:absolute;
    top:40px;right:-180px;
    width:520px;height:520px;
    background:url('../images/leaf_sec02_r1.webp') no-repeat center/contain;
    transform:rotate(8deg);
    pointer-events:none;
    z-index:2;
  }
  .sec02 .container{position:relative;z-index:1;}
  .strength-list{display:flex;flex-direction:column;gap:80px;margin-top:60px;}
  .strength-item{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    align-items:center;
  }
  .strength-item.reverse .strength-img{order:1;}
  .strength-item.reverse .strength-text{order:2;}
  .strength-head{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:18px;
  }
  .num-en{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    writing-mode:vertical-rl;
    text-orientation:upright;
    font-size:18px;
    color:var(--c-green-bright);
    font-weight:700;
    display:inline-block;
    margin:0;
    line-height:1;
    align-self:stretch;
    text-align:center;
  }
  .num-en-img{
    width:auto;
    height:100px;
    align-self:center;
    display:block;
    flex-shrink:0;
  }
  .num{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:85px;
    font-weight:700;
    color:var(--c-green-bright);
    line-height:1;
    flex-shrink:0;
  }
  .strength-head h3{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;
    font-weight:700;
    color:#000;
    margin:0;
    line-height:1.43;
  }
  .strength-text > p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    line-height:1.6;
    color:#000;
    margin:0;
  }
  .strength-img img{
    border-radius:10px;
    box-shadow:var(--shadow-card);
    width:100%;
    aspect-ratio:3/2;
    object-fit:cover;
  }
  .sec02 .strength-img img{aspect-ratio:3/2;}
  
  /* ----- Sec03 - Success Stories ---------------------------------- */
  .sec03{
    background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);
    padding-top:100px;
    padding-bottom:100px;
    position:relative;
  }
  .sec03-wave{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:140px;
    z-index:2;
    pointer-events:none;
    display:block;
  }
  .sec03-bigtitle-wrap{
    position:absolute;
    top:30px;
    left:0;
    right:0;
    z-index:3;
    margin:0;
    padding:0;
    overflow:hidden;
  }
  .sec03-bigtitle{
    display:block;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(48px,9.5vw,100px);
    font-weight:900;
    color:#ffffff;
    text-align:left;
    margin:0;
    line-height:0.95;
    white-space:nowrap;
    padding:34px 0 0 0;
  }
  .sec03 .container{position:relative;z-index:3;margin-top:140px;}
  .sec03 .sec-head{z-index:11;}
  .sec03 .lead{max-width:820px;}
  .sec03 .leaf-l,
  .sec03 .leaf-r{position:absolute;pointer-events:none;}
  .sec03 .leaf-l{top:540px;left:-90px;width:580px;transform:rotate(10deg);z-index:1;}
  .sec03 .leaf-r{top:-85px;right:-12px;width:620px;transform:rotate(-5deg);z-index:10;}
  .success-list{display:flex;flex-direction:column;gap:60px;margin-top:80px;}
  .success-card{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:42% 1fr;
    gap:0;
    align-items:stretch;
    background:#050505;
    border:none;
    border-radius:0;
    border-bottom:6px solid var(--c-green-bright);
    padding:0;
    position:relative;
    overflow:visible;
  }
  .success-card.reverse{grid-template-columns:1fr 42%;}
  .success-card.reverse .success-img{order:2;}
  .success-card.reverse .success-body{order:1;}
  .success-img{
    background:#050505;
    margin-top:0;
    align-self:stretch;
    position:relative;
    overflow:visible;
    min-width:0;
  }
  .success-img img{
    position:absolute;
    bottom:0;
    left:0;
    width:100%;
    border-radius:0;
    display:block;
  }
  .success-body{
    background:#fff;
    padding:0px 44px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:var(--body-h, auto);
  }
  .success-lead{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin:0 0 22px;
    padding:0;
    background:transparent;
    border:none;
    font-size:0;
  }
  .success-lead span{
    display:inline-block;
    background:#333;
    color:#fff;
    padding:2px 18px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-weight:700;
    font-size:24px;
    line-height:1.5;
  }
  .success-text{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    line-height:1.6;
    color:#000;
    margin:0;
  }
  .ba-block{
    display:grid;
    grid-template-columns:1fr 50px 1fr;
    gap:18px;
    align-items:center;
    background:transparent;
    padding:0;
    border-radius:0;
    margin-top:6px;
  }
  .ba{padding:0;}
  .ba-label{
    display:inline-block;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    background:transparent;
    color:#000;
    border:1.5px solid #000;
    padding:4px 18px;
    border-radius:0;
    margin-bottom:12px;
  }
  .ba.after .ba-label{
    background:transparent;
    color:var(--c-green-bright);
    border-color:var(--c-green-bright);
  }
  .ba-row{
    display:flex;justify-content:space-between;align-items:baseline;
    border-bottom:1.5px solid #000;
    padding:6px 0;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .ba-row:last-child{border-bottom:1.5px solid #000;}
  .ba-key{
    color:#000;
    font-size:18px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-weight:700;
  }
  .ba-val{
    font-weight:900;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:39px;
    color:#000;
    line-height:1;
  }
  .ba-val .unit{font-size:18px;font-weight:700;margin-left:2px;}
  .ba.after .ba-row{border-bottom-color:var(--c-green-bright);}
  .ba.after .ba-row:last-child{border-bottom-color:var(--c-green-bright);}
  .ba.after .ba-val{color:var(--c-green-bright);}
  .ba-arrow{
    display:flex;align-items:center;justify-content:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .ba-arrow::after{
    content:">";
    font-size:54px;
    font-weight:300;
    color:var(--c-green-bright);
    line-height:1;
  }
  .ba-arrow span{display:none;}
  
  /* ----- Sec04 - Trainer Message ---------------------------------- */
  .sec04{background:#fff;position:relative;padding-bottom:50px;}
  .sec04-profile{
    margin:0 0 50px;
  }
  .sec04-profile img{
    width:100%;
    height:auto;
    display:block;
  }
  .sec04-bottom{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:center;
    margin-bottom:40px;
  }
  .sec04-timeline img,
  .sec04-certificate img{
    width:100%;
    height:auto;
    display:block;
  }
  @media (max-width:768px){
    .sec04-bottom{grid-template-columns:1fr;gap:30px;}
  }
  .sec04 .leaf-l{position:absolute;top:-237px;left:-66px;width:520px;transform:rotate(-8deg);z-index:0;pointer-events:none;}
  .sec04 .leaf-r{position:absolute;top:-213px;right:-180px;width:480px;transform:rotate(10deg);z-index:0;pointer-events:none;}
  .sec04 .container{position:relative;z-index:1;}
  .profile-block{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:0;
    align-items:center;
    margin-bottom:80px;
  }
  .vert-name-big{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(48px,7vw,92px);
    font-weight:700;
    color:#000;
    margin:0 0 28px;
    line-height:0.95;
  }
  .vert-name-big span{display:block;}
  .profile-subtitle{margin:0;}
  .profile-jp-name{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    color:#000;
    margin:0 0 6px;
  }
  .profile-role-en{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:500;
    color:#000;
    margin:0;
  }
  .profile-photo{
    position:relative;
    background:transparent;
    border-radius:0;
    overflow:visible;
    min-height:auto;
  }
  .profile-photo img{
    width:100%;
    display:block;
    height:auto;
    object-fit:cover;
    position:relative;
    inset:auto;
  }
  .vert-name{
    position:absolute;
    top:28px;left:24px;
    color:var(--c-white);
    font-family:var(--font-en);
    font-size:36px;
    font-weight:700;
    line-height:1.05;
    margin:0;
    z-index:2;
    display:flex;
    flex-direction:column;
  }
  .vert-name span{display:block;}
  .vert-sub{
    position:absolute;
    bottom:24px;left:24px;
    color:var(--c-white);
    font-family:var(--font-sans);
    font-size:18px;
    margin:0;
    z-index:2;
    border-top:1px solid rgba(255,255,255,0.5);
    padding-top:8px;
  }
  .profile-role{
    font-family:var(--font-en);
    font-size:18px;
    color:var(--c-green-deep);
    margin:0 0 6px;
    font-weight:700;
  }
  .profile-name{
    font-family:var(--font-serif);
    font-size:30px;
    font-weight:700;
    color:var(--c-text-dark);
    margin:0 0 20px;
    display:flex;align-items:baseline;gap:16px;
    flex-wrap:wrap;
  }
  .profile-name span{
    font-family:var(--font-en);
    font-size:18px;
    color:var(--c-text-sub);
    font-weight:600;
  }
  .profile-bio p{font-size:18px;line-height:1.95;margin:0 0 14px;}
  .message-bottom{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:start;
    margin-bottom:50px;
  }
  .certificate-area{
    display:flex;align-items:flex-start;justify-content:center;
  }
  .certificate-area img{
    width:100%;
    max-width:520px;
    height:auto;
    display:block;
    border-radius:0;
    box-shadow:0 2px 12px rgba(0,0,0,0.08);
  }
  .timeline{
    background:transparent;
    border-radius:0;
    padding:0;
    box-shadow:none;
    position:relative;
  }
  .timeline ul{
    display:flex;
    flex-direction:column;
    gap:0;
    position:relative;
    padding:0;
  }
  .timeline ul::before{
    content:"";
    position:absolute;
    left:55px;
    top:24px;
    bottom:24px;
    border-left:1.5px dashed var(--c-green-bright);
    z-index:0;
  }
  .timeline li{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:20px;
    align-items:center;
    padding:10px 0;
    border-bottom:none;
    position:relative;
    z-index:1;
  }
  .t-year{
    background:#333;
    color:#fff;
    border-radius:999px;
    padding:6px 14px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    text-align:center;
    display:inline-block;
    width:100%;
    box-sizing:border-box;
  }
  .t-year-empty{
    background:transparent;
    color:transparent;
  }
  .t-year-empty::after{
    content:"";
    display:block;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#333;
    margin:0 auto;
    position:relative;
    top:-2px;
  }
  .t-text{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    color:#000;
    font-weight:500;
    line-height:1.6;
    padding-bottom:18px;
    border-bottom:none;
    position:relative;
  }
  .t-text::after{
    content:"";
    position:absolute;
    left:-30px;
    bottom:0;
    width:calc(100% + 30px);
    height:48px;
    border-bottom:1.5px dashed var(--c-green-bright);
    border-left:1.5px dashed var(--c-green-bright);
    border-bottom-left-radius:24px;
    pointer-events:none;
  }
  .timeline li:last-child .t-text::after{display:none;}
  
  /* ----- Sec05 - Flow --------------------------------------------- */
  .sec05{
    background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);
    position:relative;
    padding-top:150px;
    padding-bottom:100px;
  }
  .sec05-wave{
    position:absolute;
    top:0;left:0;
    width:100%;height:140px;
    z-index:1;
    pointer-events:none;
    display:block;
  }
  .sec05-wave-front{
    position:absolute;
    top:0;left:0;
    width:100%;height:140px;
    z-index:3;
    pointer-events:none;
    display:block;
  }
  .sec05-watermark{
    position:absolute;
    top:-14px;
    right:-6px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(48px,8vw,110px);
    font-weight:900;
    color:#ececec;
    line-height:1;
    pointer-events:none;
    z-index:2;
    white-space:nowrap;
  }
  .sec05 .leaf-l{position:absolute;top:80px;left:-160px;width:460px;transform:rotate(-8deg);z-index:4;pointer-events:none;}
  .sec05 .leaf-r{position:absolute;bottom:-450px;right:-180px;width:520px;transform:rotate(8deg);z-index:4;pointer-events:none;}
  .sec05 .container{position:relative;z-index:5;}
  .big-num{
    font-size:1.5em;
    color:#fff;
    font-weight:700;
    vertical-align:-0.1em;
    padding:0 4px;
    line-height:1;
  }
  .step-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    margin-top:60px;
    padding-top:50px;
  }
  .step-card{
    position:relative;
    text-align:left;
    background:#fff;
    padding:0 0 20px;
    border-radius:0;
    box-shadow:0 4px 14px rgba(0,0,0,0.06);
  }
  .step-num{
    position:absolute;
    top:-71px;
    left:-15px;
    background:#2c2a29;
    color:#fff;
    width:145px;
    height:140px;
    border-radius:50%;
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:4px;
    padding-top:28px;
    z-index:0;
  }
  .step-label{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:20px;
    color:#fff;
    font-weight:700;
    line-height:1;
  }
  .step-no{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:42px;
    font-weight:700;
    line-height:1;
    color:#fff;
  }
  .step-img{
    width:100%;
    aspect-ratio:3/2;
    overflow:hidden;
    border-radius:0;
    border:none;
    box-shadow:none;
    position:relative;
    z-index:1;
  }
  .step-img img{width:100%;height:100%;object-fit:cover;display:block;}
  .step-body{
    padding:14px 28px 0;
  }
  .step-card h3{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:25px;font-weight:700;
    color:var(--c-green-bright);
    margin:0 0 12px;
    background:transparent;
    display:block;
    padding:0;
    border-radius:0;
    text-align:center;
  }
  .step-card p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    color:#000;
    margin:0;
    line-height:1.6;
    text-align:left;
  }
  
  /* ----- Sec05-2 - Plan ------------------------------------------- */
  .sec05-2{
    background:#fff;
    padding-top:100px;
    padding-bottom:100px;
    position:relative;
  }
  .sec05-2 .leaf-l,
  .sec05-2 .leaf-r{display:none;}
  .sec05-2 .container{position:relative;z-index:1;}
  .plan-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
    margin-top:50px;
    max-width:980px;
    margin-left:auto;
    margin-right:auto;
  }
  .plan-card{
    background:transparent;
    border:none;
    border-radius:0;
    padding:0;
    text-align:center;
    position:relative;
    box-shadow:none;
  }
  .plan-card.popular{
    border:none;
  }
  .plan-card.popular::before{display:none;}
  .plan-tag{
    display:inline-block;
    background:#2c2a29;
    color:#fff;
    padding:0px 12px;
    border-radius:999px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    margin:0 0 14px;
  }
  .plan-card h3{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:31px;
    font-weight:700;
    color:#000;
    margin:0 0 24px;
    line-height:1.2;
  }
  .plan-card h3 small{
    display:inline-block;
    font-size:18px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    color:#000;
    font-weight:700;
    margin-left:2px;
  }
  .plan-icon{
    width:140px;
    margin:0 auto 24px;
    display:flex;
    align-items:center;
    justify-content:center;
    height:140px;
  }
  .plan-icon img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
  }
  .plan-price-box{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:0;
    border:1.5px solid #000;
    border-radius:3px;
    margin:0 auto 22px;
    align-items:stretch;
    max-width:360px;
    overflow:hidden;
  }
  .price-period{
    padding:12px 14px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    color:#000;
    border:none;
    border-right:1.5px solid #000;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
  }
  .price-amount{
    padding:12px 14px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;
    font-weight:900;
    color:#000;
    display:flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
  }
  .price-amount small{
    font-size:18px;
    font-weight:500;
    margin-left:1px;
  }
  .price-amount .price-yen{
    font-size:0.8em;    /* 漢字は字面が大きいので数字と見た目を揃えるため少し縮小 */
    font-weight:900;    /* 太さは数字と同じ */
  }
  .price-amount .price-unit{
    font-size:18px;
    font-weight:700;
  }
  .plan-desc{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    text-align:left;
    color:#000;
    line-height:1.6;
    margin:0;
    min-height:auto;
  }
  .plan-card.no-price .plan-desc{margin-top:0;}
  .plan-card.no-price h3{margin-top:45px;}
  /* タグ無しカード：上部タグ分を空けて料金ボックスを他カードと揃える */
  .plan-card.no-tag h3{margin-top:45px;}
  .plan-price{display:none;}
  .price-row{
    display:inline-block;
    font-size:18px;color:var(--c-text-sub);
    border-right:1px solid #ccc;
    padding-right:10px;
  }
  .price-main{
    font-family:var(--font-en);
    font-size:26px;
    font-weight:700;
    color:var(--c-text-dark);
    line-height:1.1;
  }
  .price-main small{font-size:18px;font-weight:500;color:var(--c-text-sub);font-family:var(--font-sans);margin-left:2px;}
  
  /* ----- Sec06 - Vision ------------------------------------------- */
  .sec06{
    background-color:#2c2a29;
    background-size:cover;
    background-position:center;
    color:var(--c-white);
    position:relative;
    padding:100px 0;
  }
  .sec06-overlay{
    position:absolute;inset:0;
    background:rgba(44,42,41,0.85);
    z-index:0;
  }
  .sec06 .container{position:relative;z-index:2;}
  .sec06 .h2{color:var(--c-white);}
  .sec06 .leaf-l{
    position:absolute;
    top:-60px;left:-180px;
    width:520px;
    transform:rotate(-8deg);
    z-index:1;
    opacity:0.95;
    pointer-events:none;
  }
  .sec06 .leaf-r{
    position:absolute;
    top:-60px;right:-180px;
    width:480px;
    transform:rotate(8deg);
    z-index:1;
    opacity:0.95;
    pointer-events:none;
  }
  .sec06 .boten{
    -webkit-text-emphasis: filled dot #fff;
    text-emphasis: filled dot #fff;
  }
  .vision-lead{
    text-align:center;
    font-size:22px;
    line-height:2;
    color:#fff;
    max-width:none;
    letter-spacing:0.3rem;
  }
  .vision-lead.fade-up.is-visible{line-height:2;}
  .vision-lead .text-green{
    color:#81b85d;
    font-weight:800;
  }
  .vision-icons{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin:50px auto 40px;
    max-width:980px;
    flex-wrap:nowrap;
  }
  .vision-item{
    background:#fff;
    border-radius:8px;
    padding:10px 10px;
    display:flex;
    align-items:center;
    gap:18px;
    justify-content:center;
    text-align:left;
    color:#000;
  }
  .vi-icon{
    width:64px;height:64px;
    background:transparent;
    border-radius:0;
    display:flex;align-items:center;justify-content:center;
    margin:0;
    overflow:visible;
    flex-shrink:0;
  }
  .vi-icon img{
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    object-fit:contain;
    filter:none;
  }
  .vision-icons .vision-item:nth-child(1) .vi-icon img{transform:scale(1.25);}
  .vision-item p{
    margin:0;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;
    font-weight:700;
    color:var(--c-green-bright);
  }
  
  /* ----- Sec-counseling (FREE COUNSELING) ------------------------- */
  .sec-counseling{
    background:#f4f4f2;
    padding:100px 0 100px;
    position:relative;
  }
  .counseling-lead{
    text-align:center;
    margin-top:18px;
    max-width:none;
  }
  .counseling-buttons{
    display:flex;
    flex-direction:column;
    gap:18px;
    align-items:stretch;
    margin:40px auto 32px;
    max-width:680px;
  }
  .btn-counseling{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    width:80%;
    margin:0 auto;
    padding:20px 32px;
    white-space:nowrap;
    border-radius:999px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;
    font-weight:700;
    color:#fff;
    text-decoration:none;
    transition:opacity .2s;
  }
  .btn-counseling:hover{opacity:0.9;}
  .btn-counseling .btn-icon{
    width:26px;
    height:26px;
    min-width:26px;
    flex-shrink:0;
  }
  .btn-counseling span{
    flex:0 0 15em;
    text-align:left;
    white-space:nowrap;
  }
  .btn-counseling-line{background:var(--c-line);}
  .btn-counseling-mail{background:var(--c-green-btn);}
  .counseling-features{
    display:grid;
    grid-template-columns:auto auto;
    justify-content:center;
    gap:18px 60px;
    list-style:none;
    padding:0;
    margin:0 auto;
  }
  .counseling-features li{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    color:#000;
    line-height:1.6;
    position:relative;
    padding-left:24px;
  }
  .counseling-features li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:#000;
    font-weight:700;
  }
  @media (max-width:600px){
    .sec-counseling{padding:50px 0 80px 0;} /* 下80px(ユーザDevTools指定2026-06-26)。全頁CTA共通 */
    .counseling-buttons{max-width:100%;}
    /* SPはボタンを全幅・1行に。LINEの長い文言を1行に収めるため、このCTAのみ16px
       （18px下限の例外・ユーザー承認済 2026-06-22）。旧 width:80%だと2行に折れていた */
    .btn-counseling{width:100%;font-size:16px;padding:16px 10px;gap:6px;white-space:nowrap;margin:0;}
    .btn-counseling .btn-icon{width:20px;height:20px;min-width:20px;}
    /* チェック項目はSPで1列に積む（カンプ準拠・ユーザー指定 2026-06-22）。
       base が display:grid の auto-auto 2列なので grid-template-columns で明示的に1列化
       （旧 flex-direction:column は grid に効かず2列のままだった） */
    .counseling-features{grid-template-columns:1fr;gap:12px;}
  }

  /* ----- Footer --------------------------------------------------- */
  .site-footer{background:var(--c-white);color:#000;}
  .map{width:100%;line-height:0;}
  .map img{width:100%;display:block;}
  .map iframe{width:100%;height:450px;display:block;border:0;}
  .footer-inner{
    max-width:1400px;
    margin:0 auto;
    padding:60px var(--gutter) 10px;
    display:grid;
    grid-template-columns:260px 1fr;
    gap:30px;
    align-items:start;
  }
  .footer-info{
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .footer-logo{
    display:inline-block;
    width:fit-content;
    line-height:0;
  }
  .footer-logo img{height:60px;width:auto;display:block;}
  .address{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    line-height:1.85;
    margin:0;
    color:#000;
  }
  .address strong{display:block;font-weight:500;font-size:18px;}
  .address small{display:block;font-size:18px;color:#000;margin-top:8px;line-height:1.6;}
  .address-note{font-size:12px;}
  .footer-cols{
    display:flex;
    justify-content:flex-end;
    gap:28px;
    flex-wrap:nowrap;
  }
  .footer-col h4{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    margin:0 0 0px;
    color:#000;
    font-weight:700;
  }
  .footer-col li{margin-bottom:0px;}
  .footer-col a{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:16px;
    color:#000;
    font-weight:500;
    transition:opacity .2s;
  }
  .footer-col a::before{
    content:"ー ";
    display:inline-block;
  }
  .footer-col a:hover{opacity:0.6;}
  .footer-cta{
    max-width:1400px;
    margin:0 auto;
    padding:0 var(--gutter) 40px;
    display:flex;
    justify-content:flex-end;
    gap:18px;
    flex-wrap:wrap;
  }
  .copyright-bar{
    background:var(--c-green-mid);
    padding:14px var(--gutter);
  }
  .copyright{
    text-align:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    margin:0;
    color:var(--c-white);
  }
  
  /* ==========================================================================
     Responsive - Tablet
     ========================================================================== */
  @media (max-width:980px){
    .sec-head{margin-bottom:54px;}
    .gnav{display:none;position:fixed;top:64px;left:0;right:0;background:#fff;flex-direction:column;padding:20px;box-shadow:var(--shadow-card);max-height:calc(100vh - 64px);overflow:auto;}
    .gnav.is-open{display:flex;}
    .gnav ul{flex-direction:column;gap:14px;}
    .header-cta{display:none;}
    .hamburger{display:flex;margin-left:auto;} /* gnav非表示時に右端へ寄せる（カンプ準拠） */
    .hamburger span{background:#111;}           /* カンプ準拠で黒 */
  
    .reason-grid{grid-template-columns:repeat(2,1fr);}
    .strength-item,
    .strength-item.reverse{
      grid-template-columns:100px 1fr;
      grid-template-rows:auto auto;
      gap:24px;
    }
    .strength-item .strength-img,
    .strength-item.reverse .strength-img{
      grid-column:1 / -1;
      order:3;
    }
    .strength-item.reverse .strength-num{
      order:1;
      border:none;
      border-left:3px solid var(--c-green-bright);
      padding-left:18px;padding-right:0;
      align-items:flex-start;
    }
    .strength-item.reverse .strength-body{order:2;}
    .num{font-size:61px;letter-spacing:-2.6px;} /* SP: strength番号サイズ */
  
    .profile-block{grid-template-columns:1fr;}
    .profile-photo{max-width:420px;margin:0 auto;min-height:auto;aspect-ratio:3/2;}
    .timeline ul{grid-template-columns:1fr;}
  
    .step-list{grid-template-columns:1fr;gap:60px;max-width:420px;margin-left:auto;margin-right:auto;}
    .plan-list{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto;}
    .plan-desc{min-height:0;}
    .plan-card h3{
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:24px;
      font-weight:700;
      color:#000;
      margin:0 0 24px;
      line-height:1.2;
    }
  
    .footer-cols{display:grid;grid-template-columns:repeat(2,1fr);justify-content:initial;}
  
    .sec03-bigtitle{font-size:clamp(36px,9vw,68px);}
  }
  
  /* ==========================================================================
     Responsive - Mobile
     ========================================================================== */
  @media (max-width:600px){
    :root{--gutter:18px;}
    section{padding:44px 0;}
    .pc-br{display:none;} /* PCのみ改行をSPでは無効化 */
    .content h3,h3{padding-right:0.05rem;} /* 親テーマ padding:.3em 1em をSPで調整 */
    .fade-up.is-visible{line-height:1.6;}

    .h2 .line:not(.line-band){
      display:block;
      word-break:break-word;
      line-height:1.9;
    }
    .h2 .sp-br,.message-catch .sp-br{display:inline;} /* sp-brは.h2に加えmessage-catch(h2だがクラス違い)でも有効化 */
    .h2 .line-band{
      flex-direction:column;
      gap:8px;
    }
    .h2 .line-band .conj{display:none;}
    .h2 .line .hl-band{
      margin:0;
    }
    .hl-band{padding:3px 8px;font-size:0.94em;display:inline-block;}
  
    .header-inner{padding:8px 14px;height:60px;}
    .site-header{height:60px;}
    .gnav{top:60px;max-height:calc(100vh - 60px);} /* ヘッダー60px化に追随（64pxのままだと4px隙間） */
    .logo img{height:36px;}
    /* SP: 100vh×coverだと人物の脚しか映らないため、高さを抑え人物全体を見せる（カンプ準拠） */
    .hero{height:auto;padding-top:60px;}
    .hero-img{height:auto;}
    .hero-img img{height:auto;aspect-ratio:4/3;object-position:center;}
    .hero-img video{width:100%;height:auto;margin:0;transform:none;object-position:center;} /* SP:動画は16:9ネイティブ表示（PCの全周scaleブリードは打ち消す） */

    /* 装飾葉: モバイルでは小さく端からのぞかせる（per-sectionの480〜620px指定に勝つ詳細度で上書き。
       巨大化＆右はみ出し＝ズームアウト/右余白を防止、カンプ準拠） */
    .leaf-l{width:120px;left:-50px;top:30px;opacity:0.6;}
    .leaf-r{width:100px;right:-40px;top:200px;opacity:0.6;}
    .sec01 .leaf-l,.sec03 .leaf-l,.sec04 .leaf-l,.sec05 .leaf-l,.sec06 .leaf-l,
    .sec01 .leaf-r,.sec03 .leaf-r,.sec04 .leaf-r,.sec05 .leaf-r,.sec06 .leaf-r{
      width:152px;height:auto;opacity:1;z-index:2;   /* カンプ準拠: 不透明・やや大きめ */
    }
    .sec01 .leaf-l,.sec03 .leaf-l,.sec04 .leaf-l,.sec05 .leaf-l,.sec06 .leaf-l{left:-30px;right:auto;}
    .sec01 .leaf-r,.sec03 .leaf-r,.sec04 .leaf-r,.sec05 .leaf-r,.sec06 .leaf-r{right:-94px;left:auto;}
    .sec01 .leaf-l img{clip-path:none;}
    /* REASON: ヒーロー下端に重ねる（ユーザDevTools指定） */
    .sec01 .leaf-l{top:-109px;}
    .sec01 .leaf-r{top:-78px;}
    /* sec04/05/06 の葉は desktop の top/bottom 値だと画面外に消えるので上端に出す（#45対応） */
    .sec04 .leaf-l,.sec04 .leaf-r,
    .sec05 .leaf-l,.sec05 .leaf-r,
    .sec06 .leaf-l,.sec06 .leaf-r{top:-18px;bottom:auto;}
    /* MESSAGE(sec04)の葉を左右それぞれ独立に動かせるよう専用ルールに分離（ユーザー指定 2026-06-22・SPのみ）。
       初期値は現状の見た目どおり（上のグループ指定と同値）。左葉はtop/left、右葉はtop/rightを編集すれば個別に移動可。
       グループ指定より後に置くことで同詳細度でも勝つ＝他セクションの葉には影響しない */
    .sec04 .leaf-l{top:-35px;left:-30px;width:152px;}
    .sec04 .leaf-r{top:54px;right:-82px;width:152px;}
    /* FLOW(sec05)の葉も左右それぞれ独立に動かせるよう専用ルールに分離（SPのみ）。初期値は現状の見た目どおり。
       左葉=top/left、右葉=top/rightを編集すれば個別に移動可（ユーザーが値指定予定 2026-06-22） */
    .sec05 .leaf-l{top:30px;left:-30px;width:152px;z-index:4;}
    .sec05 .leaf-r{top:2034px;right:-66px;width:152px;z-index:4;}
    /* VISION(sec06)の葉も専用ルールで独立指定（SPのみ・ユーザー指定 2026-06-22）。
       グループ指定は他セクション用に残し、sec06だけ上書き */
    .sec06 .leaf-l{top:-85px;left:-36px;width:152px;}
    .sec06 .leaf-r{top:-85px;right:-28px;width:152px;}
    /* STRENGTHS(sec02)の葉は ::before/::after 背景画像(560×460/520×520)。モバイルで巨大→小さく端へ（カンプ#29準拠） */
    .sec02::before{width:152px;height:125px;top:6px;left:-30px;}
    .sec02::after{width:142px;height:142px;top:14px;right:-30px;}
    /* MESSAGE(sec04)のプロフィール画像はカンプ通り画面幅いっぱい(左右余白ゼロ)に。
       container左右padding(--gutter)を負marginで打ち消してフルブリード（ローカルにはあったがライブ版に欠けていた） */
    .sec04-profile{margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);margin-bottom:30px;}
    /* STRENGTHS見出し/リストの間隔・番号サイズをSPで調整（ユーザDevTools指定） */
    .strength-head{gap:0px;margin-bottom:18px;} /* ユーザ指摘38-41: 番号と見出しをさらに近づける */
    .strength-head h3{font-size:21px;/* letter-spacing: -0.04em; */padding-left:2vw;} /* SP: 全ページ共通 */
    .num-en-img{width:auto;height:50px;align-self:flex-end;display:block;flex-shrink:0;}
    .strength-head .num{align-self:flex-end;} /* STRENGTHS画像下端と01下端を揃える */
    .strength-list{gap:50px;margin-top:60px;}
  
    .en-label{font-size:18px;}
    .h2{font-size:24px;} /* SPレビュー#1: 見出しは26px */
    .step-card h3{font-size:26px;} /* ユーザ指摘: STEP見出しが25pxになっている→26pxに統一 */
    .hl-yellow-text{font-size:1em;}
    .lead{font-size:16px;}
    .sec-head{margin-bottom:36px;padding:0;}
  
    .sec01{padding-bottom:25px;} /* REASON下余白(ユーザDevTools指定) */
    .sec01 .h2 .line:first-child{font-size:1.18em;}
    .sec01 .h2 .line-band{font-size:0.84em;}
    /* 波(sec02-wave)の上下余白を均等化(ユーザ要望)。SP実測: 波上(緑ボタン→波)85px / 波下(波→STRENGTHS)100px と下が広かった→
       sec02 padding-topを150→135で波下も≈85pxに揃える(SPのみ。波140px+container z-index:1で見出しは前面なので干渉なし) */
    .sec02{padding-top:135px;}
    /* カンプ準拠: SPでも2カラム（1カラム大画像だと縦に伸びすぎるため） */
    .reason-grid{grid-template-columns:repeat(2,1fr);gap:22px 14px;}
    .reason-card{max-width:none;margin:0;}
    .reason-card h3{font-size:19px;}
    .reason-card p{text-align:center;font-size:15px;line-height:1.65;}
  
    .strength-item,
    .strength-item.reverse{
      grid-template-columns:1fr;
      text-align:center;
    }
    .strength-num,
    .strength-item.reverse .strength-num{
      flex-direction:row;align-items:baseline;gap:10px;
      border:none !important;
      padding:0 !important;
      justify-content:center;
    }
    .strength-body h3{font-size:18px;}
    /* STRENGTHS(sec02)の本文段落はSPでも左寄せ。ユーザー指定 2026-06-22。
       ※元の .strength-body p はmarkup未使用で死んでいた→実クラス .strength-text に修正 */
    .sec02 .strength-text p{text-align:left;}
    /* 見出し(01 ペアトレーニングだから楽しく続けられる 等)も中央揃え→左寄せに変更(ユーザ指摘 2026-07-02、
       partner/reason/menu/omoiと同様)。改行位置(既存の<br>)は既に単語境界で綺麗なため変更不要 */
    .sec02 .strength-head h3{text-align:left;}
    .sec02 .strength-head .num{font-size:61px;letter-spacing:-2.6px;} /* SP: 全ページ共通の番号サイズ */

    /* カンプ#58: PCと同じ「頭出し」方式。黒い画像枠の高さを抑え、背の高い切り抜き画像を
       bottom:0 で下揃え→上端(頭)が枠からはみ出す。本文は白＋緑下線。 */
    .success-card,
    .success-card.reverse{grid-template-columns:1fr;padding:0;height:auto;background:#fff;overflow:visible;}
    .success-card.reverse .success-img,
    .success-card.reverse .success-body{order:initial;}
    /* カンプ#58/PC同等の「頭出し」: カードをblock化し、切り抜き画像(頭だけ透過)を負marginで
       上にずらして頭を前セクション(灰)の上にはみ出させる。透過の頭まわりから灰がのぞき白地に立つ表現。 */
    .success-card,
    .success-card.reverse{display:block;}
    .success-list{gap:64px;margin-top:60px;}  /* カード間/上に灰スペース→頭がそこへはみ出す */
    /* transformで画像を上へずらす「頭出し」。下の空きはmargin-bottomで同量詰める（margin collapse回避）。
       ずらし量は画像ごとに .success-card の inline で --img-ty を指定可（例 style="...;--img-ty:-60px;"）。
       未指定なら -44px。transformとmargin-bottomを同じ--img-tyに連動させ、隙間が出ないようにしている */
    .success-img{position:relative;overflow:visible;background:transparent;aspect-ratio:auto;height:auto;line-height:0;margin-bottom:var(--img-ty,-44px);}
    .success-img img{position:static;display:block;width:100%;height:auto;object-fit:initial;transform:translateY(var(--img-ty,-44px));}
    /* SUCCESS各カードのSP個別調整（ユーザーDevTools指定 2026-06-22）。PC(inline)値は維持しSPのみ上書き。
       --body-h は .success-body の min-height(=inline値)を上書きするため !important。
       ※ --img-overflow/--img-x/--img-y は var() 未参照(未使用)のため対象外 */
    .success-list .success-card:nth-child(1){--body-h:267px!important;--img-ty:-30px;}
    .success-list .success-card:nth-child(2){--body-h:223px!important;--img-ty:-50px;}
    .success-list .success-card:nth-child(3){--body-h:285px!important;--img-ty:-38px;}
    .success-body{padding:22px 16px 24px;position:relative;z-index:1;background:#fff;}
    .success-lead{gap:6px;margin-bottom:16px;}
    .success-lead span{font-size:17px;padding:3px 12px;} /* SPレビュー#8,10: 帯内テキストを必ず1行に収めるため19px→17px */
    .success-text{font-size:16px;}
    /* Before/After は左右並び（カンプ準拠、縦積みにしない） */
    .ba-block{grid-template-columns:1fr auto 1fr;gap:10px;padding:14px 6px 16px;}
    .ba-arrow span{transform:none;margin:0;}
    .ba-label{font-size:15px;padding:3px 10px;margin-bottom:8px;}
    .ba-val{font-size:22px;}
    .ba-val .unit{font-size:14px;}
    .ba-key{font-size:14px;}
    .ba-row{padding:5px 0;}
  
    .vert-name{font-size:24px;top:18px;left:16px;}
    .vert-sub{font-size:18px;}
    .profile-name{font-size:22px;}
    .timeline{padding:24px 18px;}
    .t-year{flex:0 0 72px;font-size:18px;}
  
    /* STEPカード(sec05): フル幅画像＋左上の大きな丸番号（カンプ準拠）。
       旧 .step-img-wrap(200px角サムネ) 用のSP上書きが残っていて崩れていたため作り直し */
    .step-img{width:100%;aspect-ratio:3/2;}
    .step-num{width:120px;height:116px;top:-58px;left:-8px;padding-top:24px;}
    .step-list{gap:85px;} /* SPレビュー#16,17: STEPバッジと前カードが接近しすぎ→余白を追加 */
    .step-label{font-size:18px;}
    .step-no{font-size:36px;}
    .step-body{padding:14px 16px 0;}
  
    /* VISION 3カード(sec06): SPはアイコン上＋ラベル下の縦並びを3列で（カンプ準拠）。
       旧 横並び(icon左78px・ラベル右)だと列幅が画面を超えて3枚目がはみ出し、ラベルが縦書きに折れて崩れていた */
    .vision-icons{gap:10px;margin:32px 0 36px;}
    .vision-item{flex-direction:column;gap:10px;padding:16px 6px;}
    .vi-icon{width:58px;height:58px;}
    .vision-item p{font-size:18px;text-align:center;line-height:1.3;}
    .vision-item p .sp-br{display:inline;} /* SPレビュー#22: 「ライフ／スタイル」で改行を固定 */
    .vision-lead .sp-br{display:inline;} /* SPレビュー#21: 「だから、身体を元気にする／場所を作りたい」で改行を固定 */
  
    /* フッターを1カラム積み上げに（260px+1frのままだとリンク列が画面外にはみ出す） */
    .footer-inner{grid-template-columns:1fr;gap:10px;}
    /* フッターのリンク列はSP2列（ユーザ指摘: 3列だとリンク文言(ー 代表メッセージ 等)が単語途中で折返るため2列に変更し幅を確保） */
    .footer-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 12px;justify-content:initial;}
    .footer-col h4{font-size:16px;letter-spacing:-0.02em;white-space:nowrap;} /* 2列化で幅に余裕ができたため18px→16pxまで戻す(18px下限の明示的例外、既存のfooter-col a同様) */
    .footer-col a{font-size:16px;} /* ユーザDevTools指定(2026-06-25)。18px下限の明示的例外 */
    .footer-info{flex-direction:column;align-items:flex-start;gap:14px;padding:24px 0;}
    .address small{margin-top:16px;} /* ユーザ提示のカンプ準拠: 郵便番号↔住所は詰め、住所↔営業時間はブロックとして区切る余白を残す */
    .footer-cta{flex-direction:column;align-items:stretch;}
    .footer-cta .btn{width:100%;min-width:0;}
    .btn.big{min-width:0;width:100%;padding:16px 22px;font-size:18px;}
  
    .btn{padding:12px 20px;font-size:18px;}
    .btn-wrap{margin-top:36px;}

    /* セクションCTAピル(min-width:480px)は全幅に。装飾線は非表示。
       SPはpadding狭く::after(白線 right:0)がボタン文字に重なるため、::before/::after両方を非表示にする */
    .btn-section{min-width:0;width:85%;font-size:18px;padding:16px 24px;}
    .btn-section::before,.btn-section::after{display:none;}
    .btn-section .sp-br{display:inline;} /* SPレビュー#11: 「トレーニングの成果を」の後で改行を固定 */
    .btn-section-wrap{margin-top:24px;}  /* SPは上余白を詰める（ユーザー指定 2026-06-22） */
  
    .sec03-bigtitle{font-size:68px;white-space:normal;line-height:1.02;}  /* カンプ#38: SUCCESS / STORIES の2行・大きく */
    .sec03-bigtitle-wrap{padding:20px 0 24px;margin-bottom:50px;}
    /* SUCCESS STORIES(sec03)の葉（ユーザDevTools指定、sec03右葉だけ右端寄りに） */
    .sec03 .leaf-l{top:-45px;}
    .sec03 .leaf-r{top:-18px;right:-12px;}
  }
  
  @media (max-width:380px){
    .h2{font-size:24px;} /* SPレビュー#1: 375px幅でも見出しは26px（旧18px） */
    .hl-band{padding:3px 10px;}
  }


/* ==========================================================================
   PROGRAM PAGE (program.html)
   ※ index.html のトンマナ（.h2 / .en-label / .leaf / .hl-band 等）を継承し、
      PROGRAM 専用パターン（hero flag / method circle / point card / stage card）を追加。
   ========================================================================== */

  .page-program{background:var(--c-bg);overflow-x:hidden;}
  /* PROGRAMページでは葉装飾を一切表示しない */
  .page-program .leaf{display:none;}
  .page-program .sec02::before,
  .page-program .sec02::after{display:none;content:none;}
  .page-program .gnav a.is-current{color:var(--c-green-bright);}
  .page-program .gnav a.is-current::after{display:none;}

  /* ----- Page Hero (PSDと同じ右上がり波) ---------------------------- */
  .pg-hero{
    position:relative;
    margin-top:64px;
    padding:90px 0 180px;
    background:var(--c-green-dark);
    color:#fff;
    overflow:hidden;
  }
  .pg-hero-inner{
    max-width:1180px;
    margin:0 auto;
    padding:0 24px;
    position:relative;
    z-index:2;
  }
  .pg-hero-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(48px,7vw,84px);
    font-weight:900;
    line-height:1;
    margin:0;
    color:#fff;
  }
  .pg-hero-sub{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    margin:14px 0 0;
    color:#fff;
    font-weight:500;
  }
  .pg-hero-wave{
    position:absolute;
    left:0;right:0;bottom:-1px;
    width:100%;
    height:200px;
    display:block;
    z-index:1;
    pointer-events:none;
  }

  /* ----- Section base (page) --------------------------------------- */
  .page-program .pg-method,
  .page-program .pg-learning,
  .page-program .pg-eating,
  .page-program .pg-hybrid{
    padding:100px 0;
    position:relative;
  }
  .page-program .pg-method{background:#fff;padding-top:0;padding-bottom:0;}
  .page-program .pg-learning{background:var(--c-bg);padding-top:150px;}
  .page-program .pg-eating{background:#fff;padding-top:100px;}
  .page-program .pg-hybrid{
    background:var(--c-bg);
    padding-top:150px;
    padding-bottom:100px;
  }
  /* EATING / HYBRID は上の境目を直線に(波を非表示、波用の余白も解除) */
  .page-program .sec03-wave,
  .page-program .sec05-wave{display:none;}
  .page-program .pg-eating .container{margin-top:0;}
  .page-program .pg-eating{padding-top:64px;}
  .page-program .pg-hybrid{padding-top:64px;}
  /* RESET×STRAT×PLAY マーカー: 上余白が大きいので上下を均等に */
  .page-program .line-band .hl-band{
    line-height:1;
    padding-top:4px;
    padding-bottom:8px;
  }
  /* METHODリード文を1行に収める(折返し防止) */
  .page-program .pg-method .lead{max-width:730px;}

  /* ----- METHOD : rectangular photo + colored disc + serif letter --- */
  .method-grid{
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr;
    align-items:start;
    gap:30px 18px;
    max-width:1080px;
    margin:60px auto 0;
  }
  .method-card{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    text-align:left;
  }
  .method-circle{
    position:relative;
    width:100%;
    margin:0 0 22px;
  }
  .method-circle::before{
    content:"";
    position:absolute;
    top:20px;left:-23px;
    width:160px;height:160px;
    border-radius:50%;
    z-index:0;
  }
  .method-card:nth-child(1) .method-circle::before{background:#b9e5ed;}
  .method-card:nth-child(3) .method-circle::before{background:#dedede;}
  .method-card:nth-child(5) .method-circle::before{background:var(--c-yellow);}
  .method-photo{
    position:relative;
    width:100%;
    margin:90px 0 0 0;
    aspect-ratio:3/2;
    overflow:hidden;
    z-index:1;
    background:#000;
    border-radius:0;
    box-shadow:none;
  }
  .method-photo img{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
  }
  .method-letter{
    position:absolute;
    top:48px;left:0;
    z-index:2;
    width:auto;height:auto;
    background:transparent;
    box-shadow:none;
    border-radius:0;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:42px;
    font-weight:700;
    color:#000;
    line-height:1;
    text-align:left;
  }
  .method-letter small{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:30px;
    font-weight:700;
    margin-left:2px;
    vertical-align:baseline;
    text-transform:uppercase;
  }
  .method-sep{
    align-self:center;
    margin-top:-40px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:42px;
    font-weight:300;
    color:#000;
    line-height:1;
    user-select:none;
  }
  .method-desc{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:16px;
    line-height:1.6;
    color:#000;
    text-align:left;
    margin:0;
  }

  /* ----- Intro block (photo + text) --------------------------------- */
  .pg-intro{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:48px;
    align-items:center;
    max-width:1080px;
    margin:60px auto 70px;
  }
  .pg-intro-photo-right .pg-intro-body{order:1;}
  .pg-intro-photo-right .pg-intro-photo{order:2;}
  .pg-intro-photo img{
    width:100%;
    border-radius:0;
    box-shadow:var(--shadow-card);
    display:block;
    aspect-ratio:3/2;
    object-fit:cover;
  }
  /* ---- PSD準拠: イントロ画像を画面端に密着・左右等幅のフルブリード ---- */
  .page-program .pg-intro{
    max-width:none;
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    grid-template-columns:1fr 1fr;
    gap:0;
    align-items:stretch;
  }
  /* 画像セルは隣コンテンツの高さに合わせ、画像は絶対配置でcover */
  .page-program .pg-intro-photo{position:relative;overflow:hidden;min-height:100%;}
  .page-program .pg-intro-photo img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    box-shadow:none;
    object-fit:cover;
  }
  /* 画像左(LEARNING/HYBRID): テキストは右カラム、右端はコンテナ枠に揃える */
  .page-program .pg-intro-photo-left .pg-intro-body{
    padding:10px max(24px,calc(50vw - 590px)) 10px 64px;
  }
  /* 画像右(EATING): テキストは左カラム */
  .page-program .pg-intro-photo-right .pg-intro-body{
    padding:10px 64px 10px max(24px,calc(50vw - 590px));
  }
  .pg-intro-lead{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    line-height:1.6;
    color:#000;
    margin:0;
  }
  .pg-intro-list{
    margin:24px 0 0;
    padding:0;
    list-style:none;
    column-count:2;
    column-gap:24px;
  }
  .pg-intro-list li{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:16px;
    color:#000;
    line-height:1.6;
    margin:0;
    padding:0;
    break-inside:avoid;
  }
  .pg-intro-list li::before{
    content:"・";
    margin-right:2px;
  }

  /* ----- POINT cards (PSD忠実: 黒丸バッジ＋長方形写真) --------------- */
  .point-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    max-width:1080px;
    margin:120px auto 0;
  }
  .point-card{
    position:relative;
    background:#fff;
    border-radius:10px;
    box-shadow:0 6px 20px rgba(0,0,0,0.10);
    padding:0 0 30px;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .point-badge{
    position:absolute;
    top:-71px;
    left:-15px;
    background:#2c2a29;
    color:#fff;
    width:145px;
    height:140px;
    border-radius:50%;
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:4px;
    padding-top:28px;
    z-index:0;
  }
  .point-label{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:20px;
    color:#ececea;
    font-weight:300;
    line-height:1;
    letter-spacing:0;
  }
  .point-no{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:42px;
    font-weight:300;
    line-height:1;
    color:#ececea;
    letter-spacing:-0.03em;
  }
  .point-thumb{
    width:100%;
    height:220px;
    border-radius:10px 10px 0 0;
    overflow:hidden;
    margin:0 0 22px;
    box-shadow:none;
    position:relative;
    z-index:1;
  }
  .point-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .point-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:19px;
    font-weight:700;
    line-height:1.55;
    color:var(--c-green-bright);
    margin:0 0 18px;
    padding:0 26px;
    border-bottom:none;
    width:100%;
    text-align:center;
    box-sizing:border-box;
  }
  .point-desc{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:17px;
    line-height:1.6;
    color:#000;
    text-align:left;
    margin:0;
    padding:0 26px;
    box-sizing:border-box;
  }

  /* ----- Stage cards (4-col: meal stages / training phases) -------- */
  .stage-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    max-width:1080px;
    margin:0 auto 50px;
  }
  .stage-card{
    background:#fff;
    border-radius:0;
    box-shadow:0 4px 14px rgba(0,0,0,0.06);
    padding:30px 22px 24px;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    min-height:300px;
  }
  .stage-num{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:normal;
    font-size:38px;
    font-weight:700;
    color:var(--c-green-bright);
    line-height:1;
    margin:0 auto 18px;
    text-align:center;
  }
  .stage-icon{
    width:80px;height:80px;
    margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
  }
  .stage-icon img{
    max-width:100%;max-height:100%;
    width:auto;height:auto;
    object-fit:contain;
  }
  .stage-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:1.55;
    color:#000;
    margin:0 0 20px;
    text-align:center;
  }
  .stage-tags{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:6px;
    margin:auto 0 0;
    padding:0;
    list-style:none;
  }
  .stage-tags li{
    background:var(--c-green-bright);
    color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:13px;
    font-weight:700;
    line-height:1;
    padding:7px 12px;
    border-radius:4px;
    white-space:nowrap;
  }
  .stage-tags li.wide{padding:7px 14px;}

  /* Compact variant: intro-body 内に4枚並べる時の縮小版 */
  .stage-grid--compact{
    gap:14px;
    margin:26px 0 22px;
    max-width:none;
  }
  /* リード文が連続したときの間隔 */
  .pg-intro-body .pg-intro-lead + .stage-grid--compact + .pg-intro-lead{
    margin-top:0;
  }
  .stage-grid--compact .stage-card{
    background:#fff;
    padding:22px 7px 16px;
    min-height:auto;
    border-radius:6px;
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
    align-items:center;
    position:relative;
    overflow:visible;
  }
  /* カード間を結ぶ細い横線 */
  .stage-grid--compact .stage-card:not(:last-child)::after{
    content:"";
    position:absolute;
    top:50%;
    right:-14px;
    width:14px;
    height:1px;
    background:#2c2a29;
    transform:translateY(-50%);
    pointer-events:none;
  }
  .stage-grid--compact .stage-num{
    position:absolute;
    top:-18px;
    left:0;right:0;
    text-align:center;
    margin:0;
    font-size:22px;
    line-height:1;
    color:#1b5e20;
  }
  .stage-grid--compact .stage-icon{
    width:48px;height:48px;
    margin:0 auto 8px;
  }
  /* eating_icon_04 は素材の中身が小さく余白多めなので拡大して他と揃える */
  .page-program .pg-eating .stage-card:nth-child(4) .stage-icon img{transform:scale(1.35);}
  .stage-grid--compact .stage-title{
    font-size:12px;
    line-height:1.5;
    margin:0 0 10px;
    text-align:center;
  }
  .stage-grid--compact .stage-tags{
    gap:4px;
    justify-content:center;
    width:100%;
  }
  .stage-grid--compact .stage-tags li{
    background:#f2f2f2;
    color:#000637;
    font-size:9px;
    font-weight:500;
    padding:3px 6px;
    border-radius:999px;
  }
  .stage-grid--compact .stage-tags li.wide{padding:4px 11px;}

  /* ----- Tablet ---------------------------------------------------- */
  @media (max-width:980px){
    .pg-hero{padding:70px 0 140px;}
    .pg-hero-title{font-size:56px;}
    .pg-hero-wave{height:160px;}

    .method-grid{
      grid-template-columns:1fr;
      gap:48px;
      max-width:420px;
    }
    .method-sep{display:none;}

    .pg-intro,
    .page-program .pg-intro{
      grid-template-columns:1fr;
      gap:28px;
      margin:40px auto 50px;
      width:auto;
      margin-left:auto;
      margin-right:auto;
    }
    .pg-intro-photo-right .pg-intro-body,
    .pg-intro-photo-right .pg-intro-photo{order:initial;}
    /* フルブリード解除(モバイルは積み上げ) */
    .page-program .pg-intro-photo-left .pg-intro-body,
    .page-program .pg-intro-photo-right .pg-intro-body{padding:0;}
    .page-program .pg-intro-photo{position:static;overflow:visible;min-height:0;}
    .page-program .pg-intro-photo img{position:static;aspect-ratio:3/2;height:auto;min-height:0;}

    .point-list{
      grid-template-columns:1fr;
      gap:50px;
      max-width:380px;
    }

    .stage-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  }

  /* ----- Mobile ---------------------------------------------------- */
  @media (max-width:600px){
    .pg-hero{padding:50px 0 90px;}
    .pg-hero-inner{padding:0 18px;}
    .pg-hero-title{font-size:44px;}
    .pg-hero-sub{font-size:14px;}
    .pg-hero-wave{height:110px;}

    /* ★セクション毎にpaddingを個別指定(SPのみ)。各セクションの padding-top / padding-bottom を
       直接編集すれば、そのセクションだけ単独で余白を変えられる(他セクションに影響しない)。
       現在値: トップSP標準44px。pg-learningだけ波(METHOD→LEARNING)用に上165px(ユーザ指定)。 */
    .page-program .pg-method  {padding-top:44px;  padding-bottom:44px;}
    .page-program .pg-learning{padding-top:165px; padding-bottom:80px;}
    .page-program .pg-eating  {padding-top:65px;  padding-bottom:80px;}
    .page-program .pg-hybrid  {padding-top:65px;  padding-bottom:80px;}
    /* margin-top:95px=POINTバッジ(top:-71で上に大きくはみ出す)が直前のイントロ文に被らないよう確保(95-71≈24px視認余白)。
       gap:95px=カード間も同様にバッジが上カードに被らない間隔。旧54pxではバッジがイントロ文に食い込んでいた(ユーザ指摘) */
    .page-program .point-list{margin-top:95px;gap:95px;}
    /* イントロ箇条書きはSPで1カラム(1行ずつ)に(ユーザ要望)。base column-count:2を上書き */
    .page-program .pg-intro-list{column-count:1;}
    /* 折返した行を「・」の右(テキスト先頭)に揃える＝ぶら下げインデント(ユーザ要望)。
       「・」=全角16px＋margin-right2px≒18px。padding-left:18px＋text-indent:-18pxで2行目以降が揃う */
    .page-program .pg-intro-list li{padding-left:18px;text-indent:-18px;}
    /* LEARNINGの見出し(en-label/縦線/h2)を波(sec02-wave z-index:1)の前面へ。
       サブページにある .container{z-index:2} がprogramに無く、白波が見出しを覆って隠していた(ユーザ指摘・TOP/他頁と統一) */
    .page-program .pg-learning .container{position:relative;z-index:2;}

    /* METHOD(RESET/STRAT/PLAY)カードをPOINTカードと同じ「丸＋下にカラム」体裁に統一(SP、2026-06-25)。
       ユーザ要望「ここ(POINT)みたいに丸の下にカラムにして」: 丸の下に画像→本文を白い角丸カードのカラムで(.point-cardに倣う) */
    .page-program .method-grid{margin-top:56px;gap:30px;}
    /* ★丸を白カードの【背面】に(ユーザ要望「白背景の背面」)。白背景は::afterに逃がし、
       丸(method-circle::before)を z-index:-1 でその後ろへ。写真・本文は z-index:1 で前面。
       →白カードが手前、丸はカード左上角の後ろからのぞく。 */
    .page-program .method-card{
      position:relative;
      z-index:0;
      background:transparent;
      box-shadow:none;
      padding:0 0 12px;           /* 下の余白を詰める(ユーザ要望) */
      margin-top:56px;            /* 丸が上にはみ出す分の余白 */
      overflow:visible;
    }
    .page-program .method-card::after{
      content:"";position:absolute;inset:0;background:#fff;border-radius:10px;
      box-shadow:0 6px 20px rgba(0,0,0,0.10);z-index:0;
    }
    .page-program .method-circle{margin:0;}
    .page-program .method-photo{margin-top:0;border-radius:10px 10px 0 0;position:relative;z-index:1;}
    /* 丸は白カードの背面(z-index:-1)＝白::after(0)・写真(1)より後ろ。カード左上角からのぞく。 */
    .page-program .method-circle::before{top:-58px;left:-12px;width:126px;height:126px;z-index:-1;}
    /* 頭文字は写真より【上】(top:-46)＝カード上端より上の丸に乗せ、z-index:2で前面=常に読める。 */
    .page-program .method-letter{top:-46px;left:2px;font-size:42px;z-index:2;}
    .method-letter small{font-size:18px;}
    .page-program .method-desc{padding:0 22px;margin-top:12px;position:relative;z-index:1;}

    /* METHOD見出しのRESET×STRAT×PLAYをSPでもPC同様に横並び＋×表示に(ユーザ要望 2026-06-25)。
       グローバルSPの .line-band 縦積み(flex-direction:column)/conj非表示を pg-method スコープで上書き。
       390px幅に1行で収めるためバッジ/×を0.8em(=20px,18px下限内)に縮小 */
    .page-program .pg-method .h2 .line-band{flex-direction:row;flex-wrap:nowrap;gap:5px;}
    .page-program .pg-method .h2 .line-band .conj{display:inline-block;margin:0 1px;font-size:0.8em;}
    .page-program .pg-method .h2 .line-band .hl-band{font-size:0.8em;}

    /* SP用 .point-card padding上書きは削除(ユーザDevTools指定「これにして」2026-06-25)。
       →base `.point-card{padding:0 0 30px}` に戻り左右padding無し=画像フルブリード・下30px。 */
    .point-title{font-size:18px;}
    .point-desc{font-size:14px;}
    /* ★丸(バッジ)を白カードの【背面】に回す(ユーザ要望「白背景の背面にしたい」)。
       白背景を ::after に逃がし、badgeを z-index:-1 でその後ろへ。中身は z-index:1 で前面。
       →白カードが手前、丸は背後でカード左上角からのぞく。 */
    .page-program .point-card{position:relative;z-index:0;background:transparent;box-shadow:none;overflow:visible;}
    .page-program .point-card::after{
      content:"";position:absolute;inset:0;background:#fff;border-radius:10px;
      box-shadow:0 6px 20px rgba(0,0,0,0.10);z-index:0;
    }
    .page-program .point-badge{z-index:-1;}
    .page-program .point-thumb,
    .page-program .point-title,
    .page-program .point-desc{position:relative;z-index:1;}

    .stage-title{font-size:14px;min-height:auto;}
    .stage-tags li{font-size:11px;padding:5px 8px;}

    .pg-callout{font-size:16px;padding:14px 16px;}
  }
  @media (max-width:380px){
    .pg-hero-title{font-size:36px;}
    .stage-grid{grid-template-columns:1fr;gap:14px;}
  }

  /* ============================================================
     私たちの想い (page-omoi / OUR PASSION) — TOP/PROGRAMトンマナ準拠
     ============================================================ */
  .page-omoi{background:#fff;}
  .page-omoi .omoi-sec{padding:100px 0;position:relative;}
  .page-omoi .omoi-intro{background:#fff;padding-top:0;padding-bottom:0;}
  .page-omoi .omoi-value{background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);padding-top:150px;padding-bottom:50px;}
  .page-omoi .omoi-promise{background:#fff;padding-top:150px;padding-bottom:100px;}
  /* セクション境目を波に(他ページと同じsec02-wave形状)。波ありセクションはpadding-top:150でクリア */
  .page-omoi .omoi-value .sec02-wave,
  .page-omoi .omoi-promise .sec02-wave{z-index:1;}
  .page-omoi .omoi-value .container,
  .page-omoi .omoi-promise .container{position:relative;z-index:2;}

  /* イントロ大見出し「人生は、もっと遊べる。」 */
  .page-omoi .omoi-catch{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:44px;
    font-weight:600;color:#000;text-align:center;
    margin:0 0 40px;line-height:1.45;
    padding:0; /* Diver親テーマのh2デフォルトpadding(.5em 1em)を打消し(この見出しは.h2クラス未使用のため未対策だった) */
  }
  .page-omoi .omoi-hero-img{margin:0 auto 15px;overflow:hidden;aspect-ratio:2/1;max-width:1000px;}
  /* sec-headの下余白を縮小(OMOIのみ。.sec-headは共通クラスなのでスコープ必須) */
  .page-omoi .sec-head{margin-bottom:20px;}
  .page-omoi .omoi-hero-img img{width:100%;height:100%;display:block;border-radius:6px;object-fit:cover;object-position:center 5%;}

  /* 中央寄せリード(2行で綺麗に均等折返し) */
  .page-omoi .lead-center{text-align:center;margin:0 auto 0;max-width:1000px;text-wrap:balance;}

  /* マーカー帯と前の文字の間隔(PROGRAM準拠の余白) */
  .page-omoi .omoi-sec .sec-head .h2 .hl-band{margin-left:8px;}
  /* マーカー帯の上下余白をPROGRAMと統一(line-height:1 + pt4/pb8)。CTA(sec-counseling=TOP)は除外 */
  .page-omoi .omoi-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下中央に短い縦線(PROGRAMの.en-label .barと同寸 1px×30px) */
  .page-omoi .omoi-sec .sec-head .h2::after{
    content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;
  }

  /* イントロ2カラム: 画像影なし軽い角丸 + 高さをテキスト側に合わせる(絶対配置cover) */
  .page-omoi .omoi-intro .pg-intro{align-items:center;}
  .page-omoi .omoi-intro .pg-intro-photo{position:relative;overflow:hidden;border-radius:6px;}
  .page-omoi .omoi-intro .pg-intro-photo img{position:static;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;box-shadow:none;border-radius:6px;}

  /* 3つのお約束(point-card流用・badge無し) */
  .page-omoi .point-list{margin-top:46px;}
  .page-omoi .point-card{padding-bottom:26px;}
  .page-omoi .point-thumb{border-radius:10px 10px 0 0;margin-bottom:20px;}
  .page-omoi .point-title{margin-bottom:12px;}
  /* CTAはTOPの sec-counseling 共通部品をそのまま使用(別途CSSなし) */

  @media (max-width:980px){
    .page-omoi .omoi-sec{padding:44px 0;}
    .page-omoi .omoi-value,
    .page-omoi .omoi-promise{padding-top:64px;}
    .page-omoi .omoi-catch{font-size:30px;}
    .page-omoi .omoi-hero-img{margin-bottom:40px;aspect-ratio:auto;overflow:visible;}
    .page-omoi .omoi-hero-img img{height:auto;object-fit:initial;object-position:initial;}
    .page-omoi .omoi-intro .pg-intro-photo{position:static;overflow:visible;}
    .page-omoi .omoi-intro .pg-intro-photo img{position:static;aspect-ratio:3/2;height:auto;}
  }

  @media (max-width:600px){
    /* ★passion(omoi)もセクション毎にpadding個別指定(SPのみ)。各 padding-top/padding-bottom を
       直接編集すれば、そのセクションだけ単独で余白を変えられる(他に影響しない)。現状値を維持。 */
    .page-omoi .omoi-intro  {padding-top:44px;  padding-bottom:0px;}
    .page-omoi .omoi-value  {padding-top:160px; padding-bottom:50px;}
    .page-omoi .omoi-promise{padding-top:160px; padding-bottom:80px;}
    .page-omoi .omoi-catch{
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:28px;
      font-weight:600;
      color:#000;
      text-align:center;
      margin:0 0 20px;
      line-height:1.45;
      padding:0;
    }
    /* 本文を16pxに(ユーザDevTools指定。18px下限の明示的例外) */
    .page-omoi .pg-intro-lead{font-size:16px;}
    .page-omoi .strength-text > p{font-size:16px;}
    /* STRENGTHS見出し(01/02のh3)がグローバルの.strength-item{text-align:center}(≤600)を
       継承して中央揃えになる(ユーザ指摘、partner/reason/menuと同様)。左寄せに */
    .page-omoi .strength-head h3{text-align:left;}
    /* h3/omoi-catchの折返しが単語の途中(トレーニン|グ 等)で割れる(ユーザ指摘)。
       sp-brで自然な区切りに改行を追加(通常は.h2/.message-catchのみ有効のため個別に有効化) */
    .page-omoi .strength-head .sp-br,
    .page-omoi .omoi-catch .sp-br{display:inline;}
  }

  /* ============================================================
     メニュー (page-menu / MENU) — TOP/PROGRAMトンマナ準拠
     ============================================================ */
  .page-menu{background:#fff;overflow-x:hidden;}
  .page-menu .menu-sec{padding:100px 0;position:relative;}
  /* セクション背景(カンプ準拠): intro+compareで1セクション白 / strength灰 / eating白 / faq白 / cta灰 */
  .page-menu .menu-intro{background:#fff;padding-top:0;padding-bottom:0;}
  .page-menu .menu-compare{background:#fff;padding-top:0;padding-bottom:50px;}
  .page-menu .menu-strength{background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);padding-top:150px;padding-bottom:50px;}
  .page-menu .menu-strength .sec02-wave{z-index:1;}
  .page-menu .menu-strength .container{position:relative;z-index:2;}
  .page-menu .menu-eating{background:#fff;padding-top:150px;}
  .page-menu .menu-eating .sec02-wave{z-index:1;}
  .page-menu .menu-eating .container{position:relative;z-index:2;}
  .page-menu .menu-faq{background:#fff;}
  .page-menu .sec-head{margin-bottom:0px;}
  /* PC: en-label は非表示(menu.html 従来の見た目を維持)。SP版で program.html トンマナに合わせて表示。 */
  .page-menu .en-label{display:none;}
  .page-menu .menu-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}
  .page-menu .lead-center{text-align:center;margin:21px auto 70px;max-width:940px;}
  .page-menu .sec-head .h2 .hl-band{margin-left:6px;line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-menu .strength-head h3 .pc-nowrap{white-space:nowrap;}

  /* --- 図版（三位一体図・比較表を画像化） --- */
  .page-menu .menu-fig{max-width:1000px;margin:40px auto 0;}
  .page-menu .menu-fig img{width:100%;height:auto;display:block;}
  .page-menu .menu-fig-tri{margin-bottom:75px;}
  .page-menu .menu-fig-table{max-width:1040px;}

  /* --- 三位一体 3サークル --- */
  .page-menu .menu-tri-label{max-width:980px;margin:30px auto 0;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;font-size:18px;color:#000;text-align:left;}
  .page-menu .menu-tri{display:flex;justify-content:center;align-items:flex-start;gap:0;max-width:980px;margin:22px auto 0;}
  .page-menu .menu-tri-item{flex:1 1 0;min-width:0;text-align:center;padding:0 8px;}
  .page-menu .menu-tri-sep{align-self:flex-start;margin-top:70px;font-size:30px;color:#cfcfcf;font-weight:300;padding:0 6px;}
  .page-menu .menu-circle{width:168px;height:168px;border-radius:50%;margin:0 auto 16px;overflow:hidden;border:7px solid var(--ring);background:#fff;display:flex;align-items:center;justify-content:center;}
  .page-menu .menu-circle img{width:auto;height:auto;max-width:58%;max-height:58%;object-fit:contain;display:block;}
  .page-menu .menu-tri-en{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:12px;letter-spacing:.18em;color:var(--ring);font-weight:600;display:block;}
  .page-menu .menu-tri-jp{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:23px;font-weight:700;color:var(--ring);margin:2px 0 16px;line-height:1.2;}
  .page-menu .menu-tri-tag{display:block;font-size:15px;font-weight:700;color:#000;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;padding:9px 0;margin:0 8px 16px;}
  .page-menu .menu-tri-desc{font-size:14px;line-height:1.75;color:#000;text-align:center;}
  .page-menu .tri-pink{--ring:#e95ea0;}
  .page-menu .tri-blue{--ring:#28b3c2;}
  .page-menu .tri-green{--ring:var(--c-green-bright);}

  /* --- 比較テーブル --- */
  .page-menu .menu-table{max-width:1040px;margin:50px auto 0;display:grid;grid-template-columns:110px 1fr 1fr 1fr;gap:8px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;}
  .page-menu .mt-cell{padding:18px 16px;font-size:14px;line-height:1.65;color:#000;}
  .page-menu .mt-corner{background:transparent;}
  .page-menu .mt-rowlabel{background:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#444;border:1px solid #e6e6e6;}
  .page-menu .mt-head{color:#fff;font-weight:700;text-align:center;font-size:16px;border-radius:6px 6px 0 0;padding:14px 8px;}
  .page-menu .mt-head small{display:block;font-size:11px;font-weight:500;opacity:.9;}
  .page-menu .mt-pink{background:#e95ea0;} .page-menu .mt-pink-l{background:#fbe7f1;}
  .page-menu .mt-blue{background:#28b3c2;} .page-menu .mt-blue-l{background:#e1f4f6;}
  .page-menu .mt-green{background:var(--c-green-bright);} .page-menu .mt-green-l{background:#e6f1e3;}
  .page-menu .mt-img{padding:18px 10px;display:flex;align-items:center;justify-content:center;}
  .page-menu .mt-img img{width:auto;max-width:80%;height:110px;object-fit:contain;display:block;}

  /* --- 比較表の締め「動かす・整える・ほぐす、一つにつながる。」 --- */
  .page-menu .menu-flow{text-align:center;margin-top:54px;}
  .page-menu .menu-flow-arrow{color:#9e9e9e;font-size:39px;line-height:1.2;margin-bottom:19px;}
  .page-menu .menu-flow-text{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:30px;font-weight:700;color:#000;margin:0;}

  /* --- 三位一体タグ(色付きアウトライン枠・× 区切り) --- */
  .page-menu .menu-compare-lead{text-align:left;text-wrap:normal;max-width:1043px;}
  .page-menu .menu-conj-row{display:flex;justify-content:center;align-items:stretch;gap:0;/* flex-wrap:wrap; */}
  .page-menu .menu-conj-tag{display:flex;flex-direction:column;justify-content:center;align-items:center;border:2px solid var(--tagc);color:var(--tagc);font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;font-size:26px;line-height:1.3;padding:16px 44px;min-width:236px;}
  .page-menu .menu-conj-tag .sub{font-size:14px;font-weight:700;}
  .page-menu .tag-pink{--tagc:#e95ea0;}
  .page-menu .tag-blue{--tagc:#28b3c2;}
  .page-menu .tag-green{--tagc:var(--c-green-bright);}
  .page-menu .menu-conj-row .x{display:flex;align-items:center;justify-content:center;font-weight:300;font-size:46px;line-height:1;position:relative;z-index:3;}

  /* --- STRENGTHS: 複数段落 + 画像をテキスト高さに合わせる --- */
  .page-menu .menu-strength .strength-text > p + p{margin-top:18px;}
  .page-menu .menu-strength .strength-item{align-items:center;}
  .page-menu .menu-strength .strength-img{position:relative;overflow:hidden;border-radius:10px;}
  .page-menu .menu-strength .strength-img img{position:static;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}

  /* --- 食習慣(画像上→本文→ステップ の縦並び) --- */
  .page-menu .menu-eat-img{max-width:980px;margin:4px auto 32px;border-radius:10px;overflow:hidden;}
  .page-menu .menu-eat-img img{width:100%;height:auto;/* aspect-ratio: 3 / 2; */object-fit:cover;display:block;}
  .page-menu .menu-eat-lead2{text-align:left;max-width:987px;}
  .page-menu .menu-eating .stage-grid--compact{max-width:1040px;margin:40px auto 0;}
  .page-menu .menu-eat-stages .stage-card{background:#f2f2f2;box-shadow:none;border-radius:8px;}
  .page-menu .menu-eat-stages .stage-num{color:var(--c-green-btn);}
  .page-menu .menu-eat-stages .stage-icon{width:60px;height:60px;}
  .page-menu .menu-eat-stages .stage-icon img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}
  .page-menu .menu-eat-stages .stage-note{display:block;font-size:11px;font-weight:500;color:#666;margin-top:5px;}
  .page-menu .menu-eat-foot{margin-top:30px;text-align:left;max-width:1040px;}
  @media (max-width:980px){
    .page-menu .menu-strength .strength-item{align-items:start;}
    .page-menu .menu-strength .strength-img{position:static;}
    .page-menu .menu-strength .strength-img img{position:static;aspect-ratio:3/2;height:auto;}
  }

  /* ---- SP版だけ program.html トンマナ（en-label 表示）に準拠 ----
     PCは従来どおり .h2::after 縦線。SPは en-label(英語+縦棒)を表示し
     h2::after 縦線は二重表示を避けて非表示。program/index と同じ見出し構造になる。 */
  @media (max-width:600px){
    .page-menu .sec-head .en-label{display:inline-flex;}
    .page-menu .sec-head .h2::after{display:none;}
    /* en-label 下の余白が .h2 のマージンと重複しないよう調整 */
    .page-menu .sec-head .h2{margin-top:0;}
    .page-menu .menu-intro .h2{padding:0;} /* 見出し2行目が崩れて見える(改行不揃い)のを修正するため、隠れたDiver親h2paddingを解除 */
    /* 三位一体タグ(マッサージ×ピラティス×筋トレ): SPはmin-width:236pxが折返し×が浮いて崩れる
       →縦積み＋×を各タグの間に(2026-06-26) */
    .page-menu .menu-conj-row{flex-direction:column;align-items:center;gap:0;}
    .page-menu .menu-conj-tag{min-width:0;width:80%;max-width:280px;font-size:20px;padding:12px 18px;}
    .page-menu .menu-conj-row .x{margin:8px 0;font-size:30px;}
  }

  /* --- FAQ --- */
  .page-menu .faq-list{max-width:900px;margin:46px auto 0;}
  .page-menu .faq-item{margin-bottom:14px;border:1px solid #e6e6e6;border-radius:0;overflow:hidden;background:#fff;}
  .page-menu .faq-q{background:var(--c-green-bright);color:#fff;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;font-size:22px;padding:16px 52px 16px 22px;margin:0;position:relative;cursor:pointer;list-style:none;}
  .page-menu .faq-q::-webkit-details-marker{display:none;}
  .page-menu .faq-q::before{content:"Q";font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;margin-right:12px;font-weight:700;font-size:30px;vertical-align:middle;}
  .page-menu .faq-q::after{display:none;}
  .page-menu .menu-strength .strength-img img{background:#fff;}
  .page-menu .faq-item .faq-q .plus{display:none;}
  .page-menu .faq-a{padding:20px 22px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;background:#f4f4f2;}
  .page-menu .faq-a .a-head{font-weight:700;font-size:18px;color:#000;margin:0 0 8px;text-indent:-33px;}
  .page-menu .faq-a .a-head::before{content:"A";font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;color:var(--c-green-bright);margin-right:12px;font-weight:700;font-size:30px;vertical-align:middle;line-height:1;}
  .page-menu .faq-a p{font-size:18px;line-height:1.75;color:#000;margin:0;padding-left:33px;}
  .page-menu .faq-a p + p{margin-top:1em;}
  .page-menu .faq-cta{text-align:center;margin-top:44px;}

  @media (max-width:980px){
    .page-menu .menu-sec{padding:44px 0;}
    .page-menu .menu-tri{flex-wrap:wrap;gap:30px 0;}
    .page-menu .menu-tri-item{flex:1 1 100%;}
    .page-menu .menu-tri-sep{display:none;}
    .page-menu .lead-center{margin:25px auto;}
    .page-menu .menu-fig-tri{margin-bottom:0;}
    .page-menu .menu-compare-lead{max-width:900px;}
    .page-menu .menu-eat-lead2{max-width:1040px;}
    /* 比較表: 1列化すると「全見出し→全画像→全説明」とバラけて分かりにくい(ユーザ指摘)。
       order で色(=列)ごとにグルーピングし、各列を「色付き見出し＋画像＋説明2つ」の縦カードにまとめる。
       gap:0で列内を密着させ、列ブロック間だけ余白(2列目以降の見出し上margin)で区切る。 */
    .page-menu .menu-table{grid-template-columns:1fr;gap:0;}
    .page-menu .mt-rowlabel,
    .page-menu .mt-corner{display:none;}
    .page-menu .mt-pink,.page-menu .mt-pink-l{order:1;}
    .page-menu .mt-blue,.page-menu .mt-blue-l{order:2;}
    .page-menu .mt-green,.page-menu .mt-green-l{order:3;}
    .page-menu .mt-head.mt-blue,
    .page-menu .mt-head.mt-green{margin-top:28px;}
    /* 食事グリッドの接続線(4列横並び用の::after横線)は2列化すると右へはみ出すので非表示 */
    .page-menu .menu-eat-stages .stage-card::after{display:none;}
  }

  @media (max-width:600px){
    /* ★セクション毎padding個別指定(SP)。programと規格統一:
       先頭(hero後)=44/44(program pg-method) / 波境界(sec02-wave)=165/80(pg-learning) / 直線境界=65/80(pg-eating,hybrid)。
       各値を直接編集すればそのセクションだけ単独で変わる。 */
    .page-menu .menu-intro   {padding-top:44px;  padding-bottom:20px;} /* 先頭(hero後) */
    .page-menu .menu-compare {padding-top:30px;  padding-bottom:30px;} /* 直線(白→白)。SPレビュー#54で余白を半分程度に縮小 */
    .page-menu .menu-strength{padding-top:165px; padding-bottom:80px;} /* 波(sec02-wave) */
    .page-menu .menu-eating  {padding-top:165px; padding-bottom:20px;} /* 波(sec02-wave)。SPレビュー#60でさらに半分に再縮小 */
    .page-menu .menu-faq     {padding-top:15px;  padding-bottom:80px;} /* 直線。SPレビュー#60でさらに半分に再縮小 */
    /* 見出し(01 理想の体型づくりを支える筋力トレーニング 等)がグローバルの
       .strength-item{text-align:center}(≤600)を継承して中央揃えになる(ユーザ指摘、partner/reasonと同様)。左寄せに */
    .page-menu .strength-head h3{text-align:left;}
    .page-menu .strength-head h3 .pc-nowrap{white-space:normal;}
    /* h3内の<br>はSPで狭幅のため2行目冒頭が中途半端に折返る(ユーザ指摘)。
       sp-brで自然な区切り位置に改行を追加(.strength-head配下では未有効化のため個別に有効化) */
    .page-menu .strength-head .sp-br{display:inline;}
    /* CTA緑帯: 他頁同様、menu見出し用の上書きを除外し1行表示 */
    .page-menu .sec-counseling .sec-head .h2 .hl-band{
      line-height:1.55;
      padding:3px 8px;
      margin:0;
      white-space:nowrap;
    }
  }

  /* ============== REASON（選ばれる理由）ページ ============== */
  .page-reason .reason-sec{padding:100px 0;position:relative;}
  .page-reason .reason-intro{background:#fff;padding-top:0;padding-bottom:0;}
  .page-reason .reason-why{background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);padding-top:150px;padding-bottom:50px;}
  .page-reason .reason-choice{background:#fff;padding-top:150px;padding-bottom:100px;}

  /* セクション境目の波（他ページの sec02-wave を流用：reason-why上=白, reason-choice上=灰） */
  .page-reason .reason-why .sec02-wave,
  .page-reason .reason-choice .sec02-wave{z-index:1;}
  .page-reason .reason-why .container,
  .page-reason .reason-choice .container{position:relative;z-index:2;}

  /* イントロ大見出し（omoi-catch準拠） */
  .page-reason .reason-catch{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:44px;font-weight:600;color:#000;text-align:center;
    margin:0 0 40px;line-height:1.45;
    padding:0; /* Diver親テーマのh2デフォルトpadding(.5em 1em)を打消し */
  }

  /* 導入：1枚のワイド画像 + 左寄せリード（手動改行なしで自然折返し） */
  .page-reason .reason-intro-img{max-width:1000px;margin:0 auto;overflow:hidden;aspect-ratio:2/1;}
  .page-reason .reason-intro-img img{width:100%;height:100%;display:block;border-radius:8px;object-fit:cover;object-position:center 40%;}
  .page-reason .reason-intro-lead{text-align:left;max-width:1000px;margin:28px auto 0;line-height:1.9;}
  .page-reason .reason-why-lead{text-align:center;margin-left:60px;}

  /* sec-head（omoi準拠：下余白・帯余白・見出し下の縦線） */
  .page-reason .sec-head{margin-bottom:20px;}
  .page-reason .reason-sec .sec-head .h2 .hl-band{margin-left:8px;line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-reason .reason-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  .page-reason .lead-center{text-align:center;margin:0 auto 0;max-width:1000px;text-wrap:balance;}

  /* 6つの理由リスト（番号付き交互＝.strength-item を流用。ラベルはトップと同じ num-en-img 画像） */
  .page-reason .reason-list{margin-top:60px;}
  /* 各理由の本文（複数段落）の段落間余白 */
  .page-reason .reason-list .strength-text > p + p{margin-top:1.4em;}
  /* PC: 「筋力トレーニングで身体を鍛える」が折り返さないよう固定 */
  .page-reason .reason-list .strength-item:nth-child(3) .strength-head h3{white-space:nowrap;}

  /* 最適な選択を：締めの写真 */
  .page-reason .reason-choice-img{max-width:1000px;margin:40px auto 0;}
  .page-reason .reason-choice-img img{width:100%;display:block;border-radius:8px;aspect-ratio:3/2;object-fit:cover;}

  @media (max-width:768px){
    .page-reason .reason-sec{padding:44px 0;}
    .page-reason .reason-why,
    .page-reason .reason-choice{padding-top:64px;}
    .page-reason .reason-catch{font-size:28px;margin-bottom:20px;} /* SPレビュー#36: 見出し下の余白が空きすぎ→半分程度に(他頁と揃える) */
    .page-reason .reason-list{margin-top:40px;}
    .page-reason .reason-intro-img{aspect-ratio:auto;overflow:visible;}
    .page-reason .reason-intro-img img{height:auto;object-fit:initial;object-position:initial;}
    .page-reason .reason-why-lead{text-align:left;margin-left:0;}
    .page-reason .reason-list .strength-item:nth-child(3) .strength-head h3{white-space:normal;}
  }

  @media (max-width:600px){
    /* ★セクション毎padding個別指定(SP)。programと規格統一:
       先頭(hero後)=44/44(pg-method) / 波境界(sec02-wave)=165/80(pg-learning) / 直線境界=65/80。
       reason判定: intro=先頭, why=波, choice=波(直線セクションは無し)。各値を直接編集すればそのセクションだけ変わる。 */
    .page-reason .reason-intro {padding-top:44px;  padding-bottom:44px;} /* 先頭(hero後) */
    .page-reason .reason-why   {padding-top:165px; padding-bottom:80px;} /* 波(sec02-wave) */
    .page-reason .reason-choice{padding-top:165px; padding-bottom:80px;} /* 波(sec02-wave) */
    /* 見出し(01 楽しいトレーニング体験 等)がグローバルの.strength-item{text-align:center}(≤600)を
       継承して中央揃えになる(ユーザ指摘、partnerと同様)。左寄せに */
    .page-reason .strength-head h3{text-align:left;}
    .page-reason .strength-head h3 .sp-br{display:inline;} /* SPレビュー#42,43: カード見出しの改行位置を固定 */
    .page-reason .reason-catch .sp-br{display:inline;}
    .page-reason .strength-head .num{font-size:61px;letter-spacing:-2.6px;} /* SP: 全ページ共通の番号サイズ */
  }

  /* ============== MESSAGE（代表メッセージ）ページ ============== */
  .page-message .message-sec{background:#fff;padding:0 0 100px;position:relative;}

  /* キャッチ見出し＋ワイド写真（ヒーロー直後） */
  .page-message .message-catch{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(24px,3.4vw,34px);font-weight:700;color:#000;text-align:center;
    margin:0 0 36px;line-height:1.6;
    padding:0; /* Diver親テーマのh2デフォルトpadding(.5em 1em)を打消し */
  }
  .page-message .message-hero-img{max-width:1000px;margin:0 auto 56px;overflow:hidden;/* aspect-ratio:1000 / 524; */}
  .page-message .message-hero-img img{width:100%;height:100%;display:block;border-radius:12px;object-fit:cover;object-position:center top;}

  /* 導入リード */
  .page-message .message-intro{
    text-align:left;
    max-width:1000px;
    margin:0 auto 56px;
    font-size:18px;
    line-height:2;
    color:#000;
    text-wrap:balance;
  }

  /* 本文（左）＋写真（右）の2カラム：高さを揃える（写真がテキスト高に追従） */
  .page-message .message-body{
    display:grid;
    grid-template-columns:1.25fr 1fr;
    gap:30px;
    align-items:start;
    max-width:1000px;
    margin:0 auto;
  }
  .page-message .message-text > p{
    font-size:18px;
    line-height:1.95;
    color:#000;
    margin:0;
    text-align:left;
  }
  .page-message .message-text > p + p{margin-top:1.5em;}
  .page-message .message-photo{height:auto;}
  .page-message .message-photo img{
    width:100%;
    height:auto;
    aspect-ratio:636/822;
    object-fit:cover;
    display:block;
    border-radius:8px;
  }

  @media (max-width:768px){
    .page-message .message-sec{padding:50px 0 70px;}
    .page-message .message-hero-img{margin-bottom:36px;/* aspect-ratio:899 / 472; */overflow:hidden;}
    .page-message .message-hero-img img{height:100%;object-fit:cover;object-position:center top;}
    .page-message .message-intro{font-size:16px;line-height:1.9;margin-bottom:36px;text-wrap:wrap;} /* SP: balanceだと字足らず行が出るため解除(実機指摘2026-08-03) */
    .page-message .message-text > p{font-size:16px;}
    .page-message .message-body{grid-template-columns:1fr;gap:28px;align-items:start;}
    .page-message .message-photo{height:auto;}
    .page-message .message-photo img{height:auto;aspect-ratio:289/230;}
  }

  /* ==========================================================================
     ペアトレーニング (page-partner / PARTNER TRAINING)
     ── TOP/OMOI/MENU のトンマナ準拠。pg-hero / sec-head / strength-list /
        pg-intro 等の共通部品をそのまま継承し、ページ固有の調整のみ記述。
     ========================================================================== */
  .page-partner{background:#fff;}
  .page-partner .gnav a.is-current{color:var(--c-green-bright);}
  .page-partner .gnav a.is-current::after{display:none;}

  .page-partner .pt-sec{padding:100px 0;position:relative;}
  .page-partner .pt-intro{padding-top:0;padding-bottom:70px;}
  .page-partner .pt-features{background:linear-gradient(0deg,#ebebeb 0%,#e1e1e1 50%,#e5e5e5 100%);padding-top:150px;padding-bottom:50px;}
  .page-partner .pt-lifestyle{background:#fff;padding-top:150px;padding-bottom:100px;}

  /* 上の境目を波でつなぐ（omoi/menu と同じ手法） */
  .page-partner .pt-features .sec02-wave,
  .page-partner .pt-lifestyle .sec02-wave{z-index:1;}
  .page-partner .pt-features .container,
  .page-partner .pt-lifestyle .container{position:relative;z-index:2;}

  .page-partner .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-partner .pt-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason ページと同一） */
  .page-partner .pt-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- Intro : 大見出し＋リード＋ワイド画像 ----------------------- */
  .page-partner .pt-intro .sec-head{margin-bottom:20px;}
  .page-partner .pt-intro-img{max-width:1000px;margin:48px auto 0;overflow:hidden;}
  .page-partner .pt-intro-img img{
    width:100%;
    height:100%;
    display:block;
    border-radius:6px;
    aspect-ratio:5/2;
    object-fit:cover;
    object-position:top;
  }

  /* ----- Features : strength-list を継承。英語ラベルは縦書き POINT ---- */
  .page-partner .pt-features .sec-head{margin-bottom:13px;}
  .page-partner .pt-features .strength-list{margin-top:54px;gap:72px;}
  .page-partner .pt-features .num-en{
    font-size:15px;
    letter-spacing:0.06em;
    align-self:center;
  }
  .page-partner .pt-features .strength-img img{aspect-ratio:3/2;}

  /* ----- Lifestyle : 画像左＋テキスト右（pg-intro 継承） ------------- */
  .page-partner .pt-lifestyle .sec-head{margin-bottom:30px;}
  .page-partner .pt-lifestyle .h2 .sp-only{display:none;}
  .page-partner .pt-lifestyle .h2 .pc-only{display:inline;}
  .page-partner .pt-lifestyle .pg-intro{margin:48px auto 0;align-items:start;}
  .page-partner .pt-lifestyle .pg-intro-photo img{
    border-radius:6px;
    box-shadow:none;
    aspect-ratio:3/2;
  }
  .page-partner .pt-lifestyle .pg-intro-lead + .pg-intro-lead{margin-top:1.4em;}

  @media (max-width:980px){
    .page-partner .pt-sec{padding:44px 0;}
    .page-partner .pt-features,
    .page-partner .pt-lifestyle{padding-top:64px;}
    .page-partner .pt-intro-img{margin-top:30px;overflow:visible;}
    .page-partner .pt-intro-img img{height:auto;aspect-ratio:3/2;object-position:initial;}
    .page-partner .lead-center{max-width:1000px;}
    .page-partner .pt-features .sec-head{margin-bottom:54px;}
    /* Features: 1カラムに積み上げ（テキスト→画像）。
       中間幅で共通の 100px/1fr ルールが .strength-text を潰すのを上書きで防ぐ */
    .page-partner .pt-features .strength-list{gap:48px;}
    .page-partner .pt-features .strength-item,
    .page-partner .pt-features .strength-item.reverse{
      grid-template-columns:1fr;
      gap:24px;
    }
    .page-partner .pt-features .strength-item .strength-text,
    .page-partner .pt-features .strength-item.reverse .strength-text{order:1;}
    .page-partner .pt-features .strength-item .strength-img,
    .page-partner .pt-features .strength-item.reverse .strength-img{grid-column:1 / -1;order:2;}
    /* Lifestyle: 画像→テキストの縦積み */
    .page-partner .pt-lifestyle .pg-intro{grid-template-columns:1fr;gap:28px;}
  }

  @media (max-width:600px){
    /* Features見出し(01 一人じゃないから、楽しく続けられる 等)がグローバルの
       .strength-item{text-align:center}(≤600)を継承して中央揃えになる(ユーザ指摘)。
       partnerのh3は<br>で改行済のため中央だと行によって余白がバラつく→左寄せに */
    .page-partner .strength-head h3{text-align:left;}
    .page-partner .strength-head .sp-br{display:inline;}
    .page-partner .strength-head .num{font-size:61px;letter-spacing:-2.6px;} /* SP: 全ページ共通の番号サイズ */
  }

  @media (max-width:600px){
    /* ★セクション毎padding個別指定(SP)。program規格統一:
       先頭(hero後)=44/44(pg-method) / 波境界(sec02-wave)=165/80(pg-learning) / 直線境界=65/80。
       partner判定: intro=先頭, features=波, lifestyle=波(直線セクションは無し)。各値を直接編集すればそのセクションだけ変わる。 */
    .page-partner .pt-intro    {padding-top:44px;  padding-bottom:44px;} /* 先頭(hero後) */
    /* intro画像: PC版と同じ切り取り（5/2 cover top）に揃える */
    .page-partner .pt-intro-img{overflow:hidden;}
    .page-partner .pt-intro-img img{
      height:100%;
      aspect-ratio:4/2;
      object-fit:cover;
      object-position:top;
    }
    /* intro見出し: 「変化を」の直後でSP改行（1行目の途中折り返しは防ぐ） */
    .page-partner .pt-intro .sec-head .h2 .line{white-space:nowrap;}
    .page-partner .pt-features {padding-top:165px; padding-bottom:80px;} /* 波(sec02-wave) */
    .page-partner .pt-lifestyle{padding-top:165px; padding-bottom:80px;} /* 波(sec02-wave) */
    .page-partner .pt-features .sec-head{margin-bottom:36px;}
    /* lifestyle見出し「新しいライフスタイル」: SPでも改行せず同じ行に */
    .page-partner .pt-lifestyle .sec-head .h2 .line:last-child{white-space:nowrap;}
    .page-partner .pt-lifestyle .h2 .sp-only{display:none;}
    .page-partner .pt-lifestyle .h2 .pc-only{display:none;}
    .page-partner .pt-lifestyle .h2 .line:last-child .pc-only{display:inline;}
  }

  /* ==========================================================================
     料金プラン (page-pricing / PRICING)
     ── TOP/OMOI/MENU/PARTNER のトンマナ準拠。pg-hero / sec-head / lead /
        pg-intro 等の共通部品を継承し、比較カード・各種料金表のみ新規定義。
     ========================================================================== */
  .page-pricing{background:#fff;}

  .page-pricing .pr-sec{padding:100px 0;position:relative;}
  /* 4大セクション構成: グレー→白→グレー→白→グレー(CTA)で交互 */
  .page-pricing .pr-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;}
  /* 波の上にくるセクションの下余白は omoi 同様 50px（波が視覚的余白を担うため） */
  .page-pricing .pr-plans{background:#fff;padding-top:150px;padding-bottom:50px;}
  .page-pricing .pr-option{background:var(--c-bg);padding-top:150px;padding-bottom:100px;}
  /* 注意事項は上の境界を波にしない(直線境界)。上下を均等に */
  .page-pricing .pr-notes{background:#fff;padding-top:100px;padding-bottom:100px;}
  /* CTA(共通sec-counseling)はデフォルトの#f4f4f2(灰)。直前のnotesが白なので被らない */

  /* 上の境目を波でつなぐ（omoi/menu/partner と同じ手法） */
  .page-pricing .pr-sec .sec02-wave{z-index:1;}
  .page-pricing .pr-sec .container{position:relative;z-index:2;}

  .page-pricing .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-pricing .pr-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason/partner と同一） */
  .page-pricing .pr-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}
  /* セクション内2つ目の見出し（比較表 / その他オプション）= 料金詳細(.fee-title)と同体裁 */
  .page-pricing .pr-subhead{
    text-align:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:28px;font-weight:700;color:#000;margin:96px 0 28px;
  }

  /* ----- 4プラン比較カード ----------------------------------------- */
  .page-pricing .price-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:24px;
    max-width:1080px;margin:0 auto;
  }
  .page-pricing .price-card{
    border:1px solid #d8d8d2;background:#fff;
    display:flex;flex-direction:column;
  }
  .page-pricing .price-card-head{
    background:var(--c-green-bright);color:#fff;
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:15px 22px;
  }
  .page-pricing .price-card-head h3{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;font-weight:700;letter-spacing:.04em;margin:0;
  }
  .page-pricing .price-card-link{
    flex-shrink:0;border:1px solid rgba(255,255,255,.85);color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:500;padding:7px 16px;white-space:nowrap;
    transition:background .2s,color .2s;
  }
  .page-pricing .price-card-link:hover{background:#fff;color:var(--c-green-bright);}
  .page-pricing .price-card-desc{
    padding:24px 22px;text-align:left;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.75;color:#000;border-bottom:1px solid #e3e3df;margin:0;
  }
  .page-pricing .price-card-rec{
    list-style:none;margin:0;padding:22px;text-align:left;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.95;color:#000;
  }
  .page-pricing .price-card-rec li{margin:0;}

  /* ----- プラン詳細ブロック（pg-intro 継承）＋価格見出し ----------- */
  .page-pricing .plan-block{max-width:1080px;margin:0 auto;}
  .page-pricing .plan-block + .plan-block{margin-top:90px;}
  .page-pricing .plan-block .pg-intro{margin:56px auto 0;align-items:start;}
  .page-pricing .plan-block .pg-intro-photo img{border-radius:6px;box-shadow:none;aspect-ratio:3/2;}
  .page-pricing .plan-block .pg-intro-lead + .pg-intro-lead{margin-top:1.2em;}
  .page-pricing .price-head{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:23px;font-weight:700;color:#000;margin:0 0 22px;line-height:1.45;
    padding-left:0;/* Diver親テーマのh3 padding(.2em 1em)で■が右へズレるのを打ち消し、文頭を本文左端に揃える(AUN#40) */
  }
  /* MONTHLY PLANの写真を左右反転（被写体をテキスト側へ向ける AUN#41） */
  .page-pricing #plan-monthly .pg-intro-photo img{transform:scaleX(-1);}

  /* ----- スペック表（期待される成果 / プランの内容） --------------- */
  .page-pricing .spec-table{
    max-width:1080px;margin:32px auto 0;border:1px solid #cfcfca;border-bottom:none;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-pricing .spec-row{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid #cfcfca;}
  .page-pricing .spec-th{
    padding:24px 16px;display:flex;align-items:center;justify-content:center;text-align:center;
    font-weight:700;font-size:18px;color:#000;border-right:1px solid #cfcfca;background:#fff;
  }
  .page-pricing .spec-td{padding:22px 26px;font-size:18px;line-height:1.85;color:#000;}

  /* ----- 料金詳細表（ストライプ） ---------------------------------- */
  .page-pricing .fee-wrap{max-width:1080px;margin:64px auto 0;}
  .page-pricing .fee-title{
    text-align:center;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:28px;font-weight:700;color:#000;margin:0 0 28px;
  }
  .page-pricing .fee-table{
    width:100%;border-collapse:collapse;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-pricing .fee-table tbody tr:nth-child(even){background:#fff;}
  .page-pricing .fee-table th,
  .page-pricing .fee-table td{border:1px solid #dcdcdc;padding:17px 14px;text-align:center;font-size:18px;color:#000;}
  .page-pricing .fee-table thead th{background:#fff;font-weight:700;}
  .page-pricing .fee-table tbody tr:nth-child(odd){background:#ece9e2;}
  .page-pricing .tax{font-size:18px;color:#666;white-space:nowrap;}
  .page-pricing .fee-note{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;color:#555;margin:14px 0 0;
  }

  /* ----- オプション（内容 / おすすめ 2列ボックス） ----------------- */
  .page-pricing .opt-cols{
    max-width:1080px;margin:40px auto 0;display:grid;grid-template-columns:1fr 1fr;border:1px solid #333;background:#fff;
  }
  .page-pricing .opt-col{
    padding:26px;text-align:left;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:18px;line-height:2;color:#000;
  }
  .page-pricing .opt-col + .opt-col{border-left:1px solid #333;}
  .page-pricing .opt-col ul{list-style:none;margin:0;padding:0;}

  /* ----- その他オプション表 ---------------------------------------- */
  .page-pricing .opt-label{
    max-width:1080px;margin:0 auto 8px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;font-size:18px;color:#000;
  }
  .page-pricing .opt-table{
    width:100%;max-width:1080px;margin:0 auto;border-collapse:collapse;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-pricing .opt-table td{border:1px solid #dcdcdc;padding:18px 20px;font-size:18px;color:#000;text-align:center;}
  .page-pricing .opt-table td:first-child{text-align:left;padding-left:204px;}
  .page-pricing .opt-table td:last-child{width:38%;}
  .page-pricing .opt-table tbody tr:nth-child(even){background:#ece9e2;}
  .page-pricing .opt-table-gap{margin-top:36px;}

  /* ----- 注意事項 -------------------------------------------------- */
  .page-pricing .notes-img{max-width:1080px;margin:0 auto 40px;overflow:hidden;}
  .page-pricing .notes-img img{width:100%;height:100%;display:block;border-radius:6px;aspect-ratio:2/1;object-fit:cover;object-position:center center;}
  .page-pricing .notes-body{max-width:1080px;margin:0 auto;}
  .page-pricing .notes-body p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.6;color:#000;margin:0 0 1.4em;
  }
  .page-pricing .notes-body p:last-child{margin-bottom:0;}

  @media (max-width:980px){
    .page-pricing .notes-body p{line-height:1.95;}
    .page-pricing .pr-sec{padding:44px 0;}
    .page-pricing .pr-plans,
    .page-pricing .pr-option{padding-top:64px;}
    .page-pricing .pr-notes{padding-top:60px;}
    .page-pricing .pr-subhead{margin-top:60px;}
    /* 比較カードは1列 */
    .page-pricing .price-grid{grid-template-columns:1fr;gap:20px;}
    /* プラン詳細は画像→テキストの縦積み */
    .page-pricing .plan-block .pg-intro{grid-template-columns:1fr;gap:7px;}
    .page-pricing .plan-block .pg-intro-photo{order:-1;}
    .page-pricing .plan-block .pg-intro-body{order:0;}
    .page-pricing #plan-60days .pg-intro-body{display:contents;}
    .page-pricing #plan-60days .price-head{order:-2;}
    .page-pricing #plan-60days .pg-intro-photo{order:-1;}
    .page-pricing #plan-pair .pg-intro-body,
    .page-pricing #plan-monthly .pg-intro-body,
    .page-pricing #plan-ticket .pg-intro-body,
    .page-pricing #plan-fasting .pg-intro-body{display:contents;}
    .page-pricing #plan-pair .price-head,
    .page-pricing #plan-monthly .price-head,
    .page-pricing #plan-ticket .price-head,
    .page-pricing #plan-fasting .price-head{order:-2;}
    .page-pricing #plan-pair .pg-intro-photo,
    .page-pricing #plan-monthly .pg-intro-photo,
    .page-pricing #plan-ticket .pg-intro-photo,
    .page-pricing #plan-fasting .pg-intro-photo{order:-1;}
    .page-pricing .price-head{
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:23px;
      font-weight:700;
      color:#000;
      margin:0 0 12px;
      line-height:1.45;
      padding-left:1em;
      text-indent:-1em;
    }
    .page-pricing .price-head .price-head-tax{font-size:.6em;}
    .page-pricing .price-head .sp-br{display:inline;} /* SPレビュー#75-81: 各プラン見出しの改行位置を固定 */
    /* スペック表ラベル列を圧縮（フォントは18px維持） */
    .page-pricing .spec-row{grid-template-columns:120px 1fr;}
    .page-pricing .spec-th{padding:18px 10px;}
    .page-pricing .spec-td{padding:18px 16px;}
    /* 料金表は18px維持のまま横スクロール（狭幅でも潰さない） */
    .page-pricing .fee-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .page-pricing .fee-table{min-width:600px;}
    .page-pricing .opt-table td{padding:14px 12px;}
    .page-pricing .opt-table td:first-child{text-align:center;padding-left:12px;}
    /* オプション2列→1列。箇条書きの中央揃えは読みにくい(ユーザ指摘)ため左寄せに */
    .page-pricing .opt-cols{grid-template-columns:1fr;}
    .page-pricing .opt-col{text-align:left;}
    .page-pricing .opt-col + .opt-col{border-left:none;border-top:1px solid #333;}
    .page-pricing .notes-img{overflow:visible;}
    .page-pricing .notes-img img{height:auto;aspect-ratio:3/2;object-position:initial;}
  }

  /* ==========================================================================
     トレーナー紹介 (page-trainers / TRAINERS)
     ── TOP/OMOI/MENU/PARTNER/PRICING のトンマナ準拠。pg-hero / sec-head / lead /
        pg-intro / スペック表の共通体裁を継承し、プロフィール部品のみ新規定義。
     ========================================================================== */
  .page-trainers{background:#fff;}

  .page-trainers .tr-sec{padding:100px 0;position:relative;}
  /* 3大セクション構成: グレー→白→グレー。直前が灰のためCTAは白で交互を維持 */
  .page-trainers .tr-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;} /* 波の上のイントロ下余白はpricing/omoiと同じ70px */
  /* 波の上にくるセクションの下余白は omoi/pricing 同様 50px（波が視覚的余白を担う） */
  .page-trainers .tr-list{background:#fff;padding-top:150px;padding-bottom:50px;}
  .page-trainers .tr-rank{background:var(--c-bg);padding-top:150px;padding-bottom:100px;}
  .page-trainers .sec-counseling{background:#fff;}

  /* 上の境目を波でつなぐ（omoi/menu/partner/pricing と同じ手法） */
  .page-trainers .tr-sec .sec02-wave{z-index:1;}
  .page-trainers .tr-sec .container{position:relative;z-index:2;}

  .page-trainers .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-trainers .lead-center + .lead-center{margin-top:1.4em;}
  .page-trainers .tr-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason/partner/pricing と同一） */
  .page-trainers .tr-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- イントロのワイド画像 -------------------------------------- */
  .page-trainers .tr-wide-img{max-width:1080px;margin:56px auto 0;}
  .page-trainers .tr-wide-img img{width:100%;height:auto;display:block;border-radius:6px;} /* AUN#45: alltrainers.png/sp-alltrainers.pngは既に適切な比率で書き出し済のためaspect-ratio強制なし */

  /* ----- トレーナープロフィール（pg-intro 継承） -------------------- */
  .page-trainers .trainer-block{max-width:1080px;margin:0 auto;}
  .page-trainers .trainer-block + .trainer-block{margin-top:90px;}
  .page-trainers .trainer-block .pg-intro{margin:56px auto 0;align-items:start;grid-template-columns:1.55fr 1fr;}
  .page-trainers .trainer-name{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;font-weight:700;color:#000;margin:0 0 22px;line-height:1.5;
  }
  .page-trainers .trainer-role{display:block;font-size:18px;font-weight:700;margin-bottom:4px;}
  .page-trainers .trainer-quote{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;font-weight:700;color:#000;margin:0 0 22px;line-height:1.7;
  }
  .page-trainers .trainer-block .pg-intro-lead + .pg-intro-lead{margin-top:1.2em;}
  .page-trainers .trainer-photos{display:flex;flex-direction:column;gap:28px;}
  .page-trainers .trainer-photos img{width:100%;display:block;border-radius:6px;box-shadow:none;}
  /* 成田の認定証（2枚目）：写真が横長で短くなった分、賞を上に詰めて左文章と下ラインを合わせる（AUN#46） */
  .page-trainers .trainer-photos img + img{max-width:88%;margin-left:auto;margin-right:auto;}
  .page-trainers .trainer-photos .portrait{aspect-ratio:3 / 3;object-fit:cover;}

  /* ----- スペック表（資格 / 得意分野 / メッセージ。pricing と同体裁） - */
  .page-trainers .spec-table{
    max-width:1080px;margin:32px auto 0;border:1px solid #cfcfca;border-bottom:none;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-trainers .spec-row{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid #cfcfca;}
  .page-trainers .spec-th{
    padding:24px 16px;display:flex;align-items:center;justify-content:center;text-align:center;
    font-weight:700;font-size:18px;color:#000;border-right:1px solid #cfcfca;background:#fff;
  }
  .page-trainers .spec-td{padding:22px 26px;font-size:18px;line-height:1.85;color:#000;}

  /* ----- トレーナーランク制度図版（灰セクション上は白箱で浮かせる） -- */
  .page-trainers .rank-img{
    max-width:1080px;margin:48px auto 0;background:#fff;border:1px solid #cfcfca;padding:36px;
  }
  .page-trainers .rank-img img{width:100%;display:block;}

  @media (max-width:980px){
    .page-trainers .tr-sec{padding:44px 0;}
    .page-trainers .tr-list,
    .page-trainers .tr-rank{padding-top:64px;}
    /* プロフィールは画像→テキストの縦積み */
    .page-trainers .trainer-block .pg-intro{grid-template-columns:1fr;gap:24px;}
    .page-trainers .trainer-block .pg-intro-photo{order:-1;}
    .page-trainers .trainer-block .pg-intro-body{order:0;}
    /* AUN#88: 成田ブロックのみ、CSCS認定証だけを本文の下へ（ポートレートは上のまま）。
       display:contents で .trainer-photos の子を pg-intro グリッドの直接アイテムに昇格させ order で並べ替える */
    .page-trainers #trainer-narita .pg-intro > .trainer-photos{display:contents;}
    .page-trainers #trainer-narita .trainer-photos .portrait{order:-1;}
    .page-trainers #trainer-narita .trainer-photos img + img{order:1;margin-top:4px;}
    .page-trainers .trainer-name{font-size:21px;}
    /* スペック表ラベル列を圧縮（フォントは18px維持） */
    .page-trainers .spec-row{grid-template-columns:120px 1fr;}
    .page-trainers .spec-th{padding:18px 10px;}
    .page-trainers .spec-td{padding:18px 16px;}
    .page-trainers .rank-img{padding:20px;}
  }

  /* ==========================================================================
     アクセス (page-access / ACCESS)
     ── TOP/OMOI/MENU/PARTNER/PRICING/TRAINERS のトンマナ準拠。pg-hero / sec-head /
        lead の共通体裁を継承し、店舗情報表・道順グリッド・ギャラリーのみ新規定義。
     ========================================================================== */
  .page-access{background:#fff;}

  .page-access .ac-sec{padding:100px 0;position:relative;}
  /* 3大セクション構成: 白→グレー→白→グレー(CTA)。CTAはデフォルト灰のまま */
  .page-access .ac-intro{background:#fff;padding-top:0;padding-bottom:70px;} /* 波の上のイントロ下余白はpricing/omoiと同じ70px */
  /* 波の上にくるセクションの下余白は omoi/pricing 同様 50px（波が視覚的余白を担う） */
  .page-access .ac-route{background:var(--c-bg);padding-top:150px;padding-bottom:50px;}
  .page-access .ac-gallery{background:#fff;padding-top:150px;padding-bottom:100px;}

  /* 上の境目を波でつなぐ（omoi/menu/partner/pricing/trainers と同じ手法） */
  .page-access .ac-sec .sec02-wave{z-index:1;}
  .page-access .ac-sec .container{position:relative;z-index:2;}

  .page-access .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-access .ac-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason/partner/pricing/trainers と同一） */
  .page-access .ac-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- 店舗情報表（緑ヘッダ。price-card-head と同じ緑） -------------- */
  .page-access .ac-table{
    width:100%;max-width:1080px;margin:56px auto 0;border-collapse:collapse;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-access .ac-table th,
  .page-access .ac-table td{border:1px solid #dcdcdc;padding:17px 14px;text-align:center;font-size:18px;color:#000;}
  .page-access .ac-table thead th{background:var(--c-green-bright);color:#fff;font-weight:700;border-color:var(--c-green-bright);}
  .page-access .ac-table thead th + th{border-left-color:#fff;}
  .page-access .ac-table td:first-child{width:30%;}

  /* ----- 地図 -------------------------------------------------------- */
  .page-access .ac-map{max-width:1080px;margin:64px auto 0;border-radius:6px;overflow:hidden;}
  .page-access .ac-map iframe{display:block;width:100%;height:480px;}

  /* ----- 道順グリッド（4ステップ＋外観ワイド） ----------------------- */
  .page-access .route-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
    margin:56px auto 0;
    counter-reset:route-step;
  }
  .page-access .route-item{margin:0;position:relative;counter-increment:route-step;}
  .page-access .route-item::before{
    content:counter(route-step);
    position:absolute;top:10px;left:10px;z-index:1;
    width:36px;height:36px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--c-green-bright);box-shadow:var(--shadow-card);
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;line-height:1;color:#fff;
  }
  .page-access .route-item img{width:100%;display:block;border-radius:6px;aspect-ratio:3/2;object-fit:cover;}
  .page-access .route-item figcaption{
    margin-top:12px;text-align:left;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.6;color:#000;
  }
  .page-access .route-exterior{margin:80px auto 0;}
  .page-access .route-exterior img{width:100%;display:block;border-radius:6px;aspect-ratio:16/9;object-fit:cover;}
  .page-access .route-exterior figcaption{
    margin-top:16px;text-align:left;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.8;color:#000;
  }

  /* ----- スタジオギャラリー（3×2） ----------------------------------- */
  .page-access .gallery-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px;
    margin:56px auto 0;
  }
  .page-access .gallery-item{margin:0;}
  .page-access .gallery-item img{width:100%;display:block;border-radius:6px;aspect-ratio:3/2;object-fit:cover;}
  .page-access .gallery-item figcaption{
    margin-top:12px;text-align:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;color:#000;
  }

  @media (max-width:980px){
    .page-access .ac-sec{padding:44px 0;}
    .page-access .ac-route,
    .page-access .ac-gallery{padding-top:64px;}
    /* 「駐車スペース」(6文字)が折り返さない幅を確保。余白は詰めて18px維持 */
    .page-access .ac-table th,
    .page-access .ac-table td{padding:10px 8px;} /* SPレビュー#93: セル余白を狭く */
    .page-access .ac-table td:first-child{width:30%;} /* SPレビュー#95: 内容列の横幅を大きく */
    .page-access .ac-table .sp-br{display:inline;} /* SPレビュー#94,96-99: 各セルの改行位置を固定 */
    /* 内容列(住所・アクセス等)が2行に折返すと中央揃えでは読みにくい(ユーザ指摘)ため左寄せに */
    .page-access .ac-table td:last-child{text-align:left;}
    .page-access .ac-table td:first-child{text-align:left;}
    .page-access .ac-map iframe{height:360px;}
    /* 道順は2列・ギャラリーは1列 */
    .page-access .route-grid{grid-template-columns:1fr 1fr;gap:20px;max-width:1080px;}
    .page-access .route-item::before{
      content:counter(route-step);
      position:absolute;
      top:6px;
      left:6px;
      z-index:1;
      width:29px;
      height:29px;
      border-radius:50%;
      display:flex;
      align-items:center;
      justify-content:center;
      background:var(--c-green-bright);
      box-shadow:var(--shadow-card);
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:20px;
      font-weight:700;
      line-height:1;
      color:#fff;
    }
    .page-access .gallery-grid{grid-template-columns:1fr;gap:28px;max-width:1080px;}
    .page-access .gallery-item{display:flex;flex-direction:column-reverse;} /* SPレビュー#102: 写真と文字の順を反転(上文字/下写真) */
    .page-access .gallery-item figcaption{margin-top:0;margin-bottom:12px;}
    .page-access .route-exterior{max-width:920px;margin-top:60px;}
  }

  /* ==========================================================================
     よくある質問 (page-faq / FAQ)
     ── TOP/下層各頁のトンマナ準拠。pg-hero / sec-head / lead を継承し、
        カテゴリナビのみ新規。Q&AアコーディオンはMENU頁のfaq部品と同体裁。
     ========================================================================== */
  .page-faq{background:#fff;}

  .page-faq .fq-sec{padding:100px 0;position:relative;}
  /* 灰→白→灰(CTA)。イントロ下余白は他頁同様70px */
  .page-faq .fq-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;}
  .page-faq .fq-body{background:#fff;padding-top:150px;padding-bottom:100px;}

  .page-faq .fq-sec .sec02-wave{z-index:1;}
  .page-faq .fq-sec .container{position:relative;z-index:2;}

  .page-faq .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-faq .fq-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-faq .fq-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- カテゴリナビ（灰背景上の白カード） ------------------------- */
  .page-faq .faq-nav{
    display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
    max-width:1080px;margin:56px auto 0;
  }
  .page-faq .faq-nav a{
    display:flex;align-items:center;justify-content:center;
    background:#fff;border:1px solid #d8d8d2;padding:22px 12px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;color:#000;text-align:center;line-height:1.5;
    transition:background .2s,color .2s,border-color .2s;
  }
  .page-faq .faq-nav a:hover{background:var(--c-green-bright);border-color:var(--c-green-bright);color:#fff;}

  /* ----- カテゴリ見出し＋Q&Aグループ -------------------------------- */
  .page-faq .fq-group + .fq-group{margin-top:90px;}
  .page-faq .fq-cat{
    text-align:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:28px;font-weight:700;color:#000;margin:0;
  }

  /* ----- Q&Aアコーディオン（MENU頁faq部品と同体裁） ------------------ */
  .page-faq .faq-list{max-width:900px;margin:36px auto 0;}
  .page-faq .faq-item{margin-bottom:14px;border:1px solid #e6e6e6;border-radius:0;overflow:hidden;background:#fff;}
  .page-faq .faq-q{background:var(--c-green-bright);color:#fff;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;font-size:22px;padding:16px 52px 16px 22px;margin:0;position:relative;cursor:default;list-style:none;pointer-events:none;}
  .page-faq .faq-q::-webkit-details-marker{display:none;}
  .page-faq .faq-q::before{content:"Q";font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;margin-right:12px;font-weight:700;font-size:30px;vertical-align:middle;}
  .page-faq .faq-q::after{display:none;}
  .page-faq .faq-item .faq-q .plus{display:none;}
  .page-faq .faq-a{padding:20px 22px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;background:#f4f4f2;}
  .page-faq .faq-a .a-head{font-weight:700;font-size:18px;color:#000;margin:0 0 8px;text-indent:-33px;}
  .page-faq .faq-a .a-head::before{content:"A";font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;color:var(--c-green-bright);margin-right:12px;font-weight:700;font-size:30px;vertical-align:middle;line-height:1;}
  .page-faq .faq-a p{font-size:18px;line-height:1.75;color:#000;margin:0;padding-left:33px;}
  .page-faq .faq-a p + p{margin-top:1em;}

  @media (max-width:980px){
    .page-faq .fq-sec{padding:44px 0;}
    .page-faq .fq-body{padding-top:64px;}
    /* カテゴリナビは1列 */
    .page-faq .faq-nav{grid-template-columns:1fr;gap:14px;}
    .page-faq .faq-nav a{padding:18px 12px;font-size:18px;}
    .page-faq .fq-group + .fq-group{margin-top:60px;}
    .page-faq .fq-cat{font-size:20px;} /* SPレビュー#104,105: 長いカテゴリ見出しを1行に収める */
    .page-faq .faq-q{font-size:18px;padding:14px 5px 14px 16px;}
  }

  /* ==========================================================================
     実践事例 (page-results / RESULTS)
     ── TOP/下層各頁のトンマナ準拠。pg-hero / sec-head / lead を継承し、
        事例ブロック（ダーク帯＋お客様の声＋Before/After＋BDコメント＋CTA）を新規定義。
     ========================================================================== */
  .page-results{background:#fff;}

  .page-results .rs-sec{padding:100px 0;position:relative;}
  /* 灰→白→灰(CTA)。イントロ下余白は他頁同様70px */
  .page-results .rs-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;}
  .page-results .rs-list{background:#fff;padding-top:150px;padding-bottom:100px;}

  .page-results .rs-sec .sec02-wave{z-index:1;}
  .page-results .rs-sec .container{position:relative;z-index:2;}

  .page-results .lead-center{text-align:center;margin:0 auto;max-width:1024px;text-wrap:balance;}
  .page-results .rs-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-results .rs-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- 事例ブロック ---------------------------------------------- */
  .page-results .result-case{max-width:1080px;margin:0 auto;}
  .page-results .result-case + .result-case{margin-top:80px;}

  /* ダーク帯見出し（お名前＋期間。ヒーローと同じ深緑で統一） */
  .page-results .case-bar{
    background:var(--c-green-dark);color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    padding:15px 26px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 18px;
  }
  .page-results .case-name{font-size:20px;font-weight:700;letter-spacing:.04em;}
  .page-results .case-period{font-size:18px;font-weight:500;opacity:.92;}

  /* お客様の声（灰背景：プロフィール写真＋タイトル＋本文） */
  .page-results .case-voice{
    background:var(--c-bg);padding:36px;
    display:grid;grid-template-columns:170px 1fr;gap:34px;align-items:start;
  }
  .page-results .case-voice-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;display:block;}
  .page-results .case-voice-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;font-weight:700;color:#000;margin:0 0 20px;padding:0;line-height:1.6; /* Diver h4 padding打消し */
  }
  .page-results .case-voice-title::before{content:none;display:none;}
  .page-results .case-voice-body p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.9;color:#000;margin:0;
  }
  .page-results .case-voice-body p + p{margin-top:1em;}
  /* お客様の声：長文を「続きを読む」で開閉（AUN#109 カンプ準拠、FAQと同じネイティブdetails/summaryで実装） */
  .page-results .case-voice-more{margin-top:1em;}
  .page-results .case-voice-more > p:first-of-type{margin-top:.8em;}
  .page-results .case-voice-more summary{
    cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;color:var(--c-green-bright);
  }
  .page-results .case-voice-more summary::-webkit-details-marker{display:none;}
  .page-results .case-voice-more summary::after{content:"\2304";font-size:14px;transition:transform .2s;}
  .page-results .case-voice-more[open] summary::after{transform:rotate(180deg);}
  .page-results .case-voice-more[open] summary{margin-bottom:.8em;}

  /* Before/After（左：3×3写真グリッド、右：BDコメント＋お客様コメント＋CTA） */
  .page-results .case-result{
    display:grid;grid-template-columns:53% 1fr;gap:40px;align-items:start;margin-top:34px;
  }

  /* ----- 写真グリッド（front/beside/back の3行、各行はBefore→1ヶ月後→2ヶ月後Finishの合成写真1枚） --- */
  .page-results .rsba-grid{display:flex;flex-direction:column;gap:16px;}
  .page-results .rsba-photo{margin:0;}
  .page-results .rsba-photo img{width:100%;display:block;border-radius:8px;background:#ececec;}

  /* ----- 右側コメント（緑葉アイコン付き2ボックス＝角丸カード） --------- */
  .page-results .cm-box{
    border:1px solid #e2e2dd;border-radius:16px;background:#fff;padding:15px 30px;
  }
  .page-results .cm-box + .cm-box{margin-top:24px;}
  .page-results .cm-head{
    display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:0; /* Diver h4{padding:.2em 1em}を打消し本文と左端を揃える */
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:21px;font-weight:700;color:#3f8a36;line-height:1.4;
  }
  .page-results .cm-head::before{content:none;display:none;} /* Diverの菱形::before保険 */
  .page-results .cm-icon{
    flex:0 0 auto;width:42px;height:42px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
  }
  .page-results .cm-icon-olive{background:#9aab2e;}   /* ボディーデザイナーより：オリーブ */
  .page-results .cm-icon-green{background:#5a9039;}   /* お客様からのコメント：グリーン */
  .page-results .cm-icon svg{width:24px;height:24px;display:block;}
  @media (max-width:600px){
    /* SPレビュー#110: 「ボディーデザイナーより」等の見出しが折返る→cm-box余白を詰めて1行に収める */
    .page-results .cm-box{padding:15px 18px;}
    .page-results .cm-head{white-space:nowrap;}
  }
  /* 結果テキスト：1行目リードはオリーブ、以降はグリーン、下に緑の区切り線 */
  .page-results .case-bd-result{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;color:#3f8a36;line-height:1.85;margin:0;
    padding-bottom:18px;border-bottom:2px solid #8cae3f;
  }
  .page-results .bd-lead{color:#000;} /* SPレビュー#113-121: オリーブ色→黒に変更(全6件) */
  .page-results .case-body p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.9;color:#333;margin:0;
  }
  .page-results .case-body p + p{margin-top:1em;}

  /* 各事例内の申込CTA */
  .page-results .case-cta{margin-top:36px;text-align:center;}
  .page-results .case-cta-text{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;color:#000;margin:0 0 18px;line-height:1.7;
  }
  .page-results .case-cta .btn{min-width:300px;}

  @media (max-width:980px){
    .page-results .rs-sec{padding:44px 0;}
    .page-results .rs-list{padding-top:64px;}
    .page-results .result-case + .result-case{margin-top:60px;}
    .page-results .case-bar{padding:13px 18px;}
    .page-results .case-name{font-size:18px;}
    /* お客様の声：写真→本文の縦積み */
    .page-results .case-voice{grid-template-columns:1fr;gap:22px;padding:24px;}
    .page-results .case-voice-title{font-size:20px;}
    /* Before/After：写真グリッド→コメントの縦積み */
    .page-results .case-result{grid-template-columns:1fr;gap:28px;}
    .page-results .rsba-grid{gap:10px;}
    .page-results .case-bd-result{font-size:19px;}
    .page-results .case-cta .btn{min-width:0;width:100%;}
  }

  /* ==========================================================================
     採用情報 (page-careers / CAREERS)
     ── TOP/OMOI/MENU/PARTNER/PRICING/TRAINERS/ACCESS のトンマナ準拠。
        pg-hero / sec-head / lead / strength-list（交互）/ sec-counseling / footer
        を継承し、キャリアパス表・キャリアラダー図・募集要項表のみ新規定義。
     ========================================================================== */
  .page-careers{background:#fff;}

  .page-careers .cr-sec{padding:100px 0;position:relative;}
  /* 4大セクション構成: 灰→白→灰→白→灰(CTA)。波で境界をつなぐ */
  .page-careers .cr-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;}   /* 波上イントロ下70px */
  .page-careers .cr-merit{background:#fff;padding-top:150px;padding-bottom:50px;}
  .page-careers .cr-career{background:var(--c-bg);padding-top:150px;padding-bottom:50px;}
  .page-careers .cr-recruit{background:#fff;padding-top:150px;padding-bottom:100px;}   /* CTA前100px */
  .page-careers .sec-counseling{background:var(--c-bg);}

  /* 上の境目を波でつなぐ（omoi/menu/partner/pricing/trainers/access と同じ手法） */
  .page-careers .cr-sec .sec02-wave{z-index:1;}
  .page-careers .cr-sec .container{position:relative;z-index:2;}

  .page-careers .lead-center{text-align:center;margin:0 auto;max-width:1000px;}
  .page-careers .cr-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason/partner/pricing/trainers/access と同一） */
  .page-careers .cr-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- イントロのワイド画像（trainers の tr-wide-img と同体裁） ------- */
  .page-careers .cr-wide-img{max-width:1080px;margin:56px auto 0;}
  .page-careers .cr-wide-img img{width:100%;display:block;border-radius:6px;object-fit:cover;}

  /* ----- 働くメリット（strength-list 交互レイアウトを継承） ------------ */
  .page-careers .cr-merit-list{margin-top:46px;}
  .page-careers .cr-merit-list .strength-item{align-items:center;}
  .page-careers .cr-merit-list .strength-head{align-items:flex-start;gap:14px;margin-bottom:16px;}
  .page-careers .cr-merit-list .strength-head .num{font-size:64px;line-height:.9;}
  .page-careers .cr-merit-list .strength-head h3{font-size:23px;padding-top:6px;}
  .page-careers .cr-merit-list .strength-text > p + p{margin-top:18px;}
  .page-careers .cr-merit-list .strength-img img{aspect-ratio:3/2;}

  /* ----- キャリアパス表（縦3段・bordered） ---------------------------- */
  .page-careers .cr-path-table{
    width:100%;margin:50px auto 0;border-collapse:collapse;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-careers .cr-path-stage{
    width:34%;border:1px solid #c8c8c2;padding:28px 22px;text-align:center;vertical-align:middle;
    font-size:19px;font-weight:700;color:#000;line-height:1.7;background:#fafafa;
  }
  .page-careers .cr-stage-year{display:block;color:var(--c-green-bright);margin-bottom:6px;}
  .page-careers .cr-path-desc{
    border:1px solid #c8c8c2;padding:26px 22px;text-align:left;vertical-align:middle;
    font-size:18px;line-height:1.85;color:#000;
  }
  .page-careers .cr-path-desc p{margin:0;}
  .page-careers .cr-path-desc p + p{margin-top:16px;}

  /* ----- キャリアラダー図（WF「作図」＝参照pc_sec02_img01に準拠した虹色昇順バー） -
     ── 役職ボックス＋業務箇条書き＋給与＋下部フェーズ帯。横幅が要るので
        overflow-x:auto で横スクロール（[[feedback_min_font_18px]]＝縮めず横スクロール）。*/
  .page-careers .cr-ladder-wrap{max-width:1120px;margin:60px auto 0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;}
  /* キャリアパス図を画像化（parts.png=PC / parts_sp.png=SP、<picture>でmedia切替 AUN#73,74） */
  .page-careers .cr-ladder-fig{display:block;max-width:1120px;margin:0 auto;}
  .page-careers .cr-ladder-fig img{width:100%;height:auto;display:block;}
  .page-careers .cr-ladder{display:flex;align-items:flex-end;gap:8px;min-width:1060px;}
  .page-careers .cr-step{
    flex:1 1 0;min-width:0;border-radius:10px 10px 0 0;padding:16px 12px 18px;
    color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;position:relative;
  }
  /* 昇順の高さ */
  .page-careers .cr-step-1{min-height:266px;}
  .page-careers .cr-step-2{min-height:300px;}
  .page-careers .cr-step-3{min-height:334px;}
  .page-careers .cr-step-4{min-height:368px;}
  .page-careers .cr-step-5{min-height:402px;}
  .page-careers .cr-step-6{min-height:436px;}
  /* 虹色（参照画像の赤→橙→黄→緑→青→マゼンタ） */
  .page-careers .cr-step-1{background:#e8404a;}
  .page-careers .cr-step-2{background:#f0792e;}
  .page-careers .cr-step-3{background:#f2b400;}
  .page-careers .cr-step-4{background:#6cb43f;}
  .page-careers .cr-step-5{background:#2a9fd6;}
  .page-careers .cr-step-6{background:#e6398a;}
  /* 役職ボックス（白角丸・文字はバー色） */
  .page-careers .cr-step-label{
    background:#fff;border-radius:8px;padding:9px 6px;margin:0 0 12px;width:100%;
    font-weight:700;font-size:18px;line-height:1.3;
  }
  .page-careers .cr-step-1 .cr-step-label{color:#e8404a;}
  .page-careers .cr-step-2 .cr-step-label{color:#e2691c;}
  .page-careers .cr-step-3 .cr-step-label{color:#d89b00;}
  .page-careers .cr-step-4 .cr-step-label{color:#5aa033;}
  .page-careers .cr-step-5 .cr-step-label{color:#2a9fd6;}
  .page-careers .cr-step-6 .cr-step-label{color:#e6398a;}
  /* 業務箇条書き（白文字・左寄せ・18px維持） */
  .page-careers .cr-step-bullets{list-style:none;margin:0;padding:0;width:100%;text-align:left;}
  .page-careers .cr-step-bullets li{position:relative;padding-left:14px;font-size:18px;line-height:1.5;margin-bottom:6px;font-weight:500;}
  .page-careers .cr-step-bullets li::before{content:"・";position:absolute;left:0;top:0;}
  /* 給与（バー下部に固定） */
  .page-careers .cr-step-salary{margin:auto 0 0;font-size:20px;font-weight:700;line-height:1.2;padding-top:14px;}
  /* +α バッジ */
  .page-careers .cr-step-plus{
    position:absolute;right:10px;bottom:54px;width:34px;height:34px;border-radius:50%;
    background:#fff;display:flex;align-items:center;justify-content:center;
    font-size:15px;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.18);
  }
  .page-careers .cr-step-2 .cr-step-plus{color:#e2691c;}
  .page-careers .cr-step-3 .cr-step-plus{color:#d89b00;}
  .page-careers .cr-step-4 .cr-step-plus{color:#5aa033;}
  .page-careers .cr-step-5 .cr-step-plus{color:#2a9fd6;}
  /* 下部フェーズ帯（右向き矢羽。参照のトレーナー/店舗運営/マネジメント） */
  .page-careers .cr-phases{display:flex;gap:0;min-width:1060px;margin-top:10px;}
  .page-careers .cr-phase{
    flex:1 1 0;color:#fff;font-weight:700;font-size:18px;text-align:center;padding:13px 8px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;position:relative;margin-right:-14px;
    clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%, 16px 50%);
  }
  .page-careers .cr-phase:first-child{clip-path:polygon(0 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 0 100%);}
  .page-careers .cr-phase:last-child{margin-right:0;}
  .page-careers .cr-phase-1{background:#1f4e79;}
  .page-careers .cr-phase-2{background:#2e75b6;}
  .page-careers .cr-phase-3{background:#4aa3df;}
  .page-careers .cr-ladder-note{/* max-width:1080px; */margin:5px auto 0;text-align:end;font-size:12px;color:#555;line-height:1.7;}
  .page-careers .cr-path-photos{
    display:grid;grid-template-columns:repeat(3,1fr);gap:25px;
    margin:40px 0 0;
  }
  .page-careers .cr-path-photos img{
    width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:8px;
  }
  /* SP(≤600)専用フェーズ見出し。PC/タブレットでは非表示（下部cr-phasesがPC相当の役割を担う） */
  .page-careers .cr-phase-tag{display:none;}

  /* ----- 募集要項表（緑ヘッダ。access の ac-table と同体裁） ----------- */
  .page-careers .cr-table{
    width:100%;max-width:1080px;margin:50px auto 0;border-collapse:collapse;background:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-careers .cr-table th,
  .page-careers .cr-table td{border:1px solid #dcdcdc;padding:18px 16px;text-align:center;font-size:18px;line-height:1.8;color:#000;}
  .page-careers .cr-table thead th{background:var(--c-green-bright);color:#fff;font-weight:700;border-color:var(--c-green-bright);}
  .page-careers .cr-table thead th + th{border-left-color:#fff;}
  .page-careers .cr-table tbody td:first-child{width:28%;font-weight:700;}
  .page-careers .cr-table tbody td:last-child{text-align:left;}

  .page-careers .cr-apply-btn{text-align:center;margin-top:44px;}
  .page-careers .cr-apply-msg{font-size:22px;margin:48px auto 0;}

  @media (max-width:980px){
    .page-careers .cr-sec{padding:44px 0;}
    .page-careers .cr-merit,
    .page-careers .cr-career,
    .page-careers .cr-recruit{padding-top:64px;}
    /* メリットは1カラム縦積み（テキスト上→画像下）。グローバル 100px 1fr を上書き */
    .page-careers .cr-merit-list .strength-item,
    .page-careers .cr-merit-list .strength-item.reverse{
      grid-template-columns:1fr;grid-template-rows:auto auto;text-align:left;gap:22px;
    }
    .page-careers .cr-merit-list .strength-text{display:contents;order:-1;}
    .page-careers .cr-merit-list .strength-head{order:-1;}
    .page-careers .cr-merit-list .strength-img{grid-column:1 / -1;order:0;}
    .page-careers .cr-merit-list .strength-text > p{order:1;}
    .page-careers .cr-merit-list .strength-head{justify-content:flex-start;align-items:flex-start;gap:14px;margin-bottom:0px;}
    .page-careers .cr-merit-list .strength-head .num{font-size:61px;letter-spacing:-2.6px;}
    .page-careers .cr-merit-list .strength-head h3{font-size:21px;padding-top:0;text-align:left;} /* SPレビュー#137-140: 左寄せ */
    /* キャリアパス表は縦積み（ラベル上→説明下） */
    .page-careers .cr-path-table,
    .page-careers .cr-path-table tbody,
    .page-careers .cr-path-table tr{display:block;width:100%;}
    .page-careers .cr-path-stage,
    .page-careers .cr-path-desc{display:block;width:100%;}
    .page-careers .cr-path-desc{border-top:none;}
    .page-careers .cr-path-table tr + tr .cr-path-stage{border-top:none;} /* SPレビュー#143: 行間の余白を無くし1つのボックスに(交互配色は維持) */
    /* ラダーは横スクロールで全体維持（縮めず＝18px下限ルール）。バー幅は確保 */
    .page-careers .cr-ladder,
    .page-careers .cr-phases{min-width:780px;}
    .page-careers .cr-step{padding:14px 9px 16px;}
    .page-careers .cr-step-label{font-size:18px;}
    /* 募集要項表：余白を詰めて18px維持 */
    .page-careers .cr-table th,
    .page-careers .cr-table td{padding:14px 10px;}
    .page-careers .cr-table td:first-child{width:34%;}
  }

  /* ===== careers SP(≤600) 追調整 ===== */
  @media (max-width:600px){
    /* ① キャリアラダー: 2列グリッド(6枚が同じ大きさのタイルに見え「昇順」の意味が消える)をやめ、
       PCの「昇順バーが階段状に伸びる」見た目を縦方向に翻訳。上から下へトレーナー→…→
       エリアマネージャーの順で1列に積み、カード幅を段階的に広げて中央寄せ＝登っていく階段に見せる。
       各段の間は色付き矢印でつなぎ、一本道のキャリアパスであることを示す */
    .page-careers .cr-ladder-wrap{overflow-x:visible;padding-bottom:0;margin-top:40px;}
    .page-careers .cr-ladder{display:flex;flex-direction:column;min-width:0;gap:26px;}
    .page-careers .cr-step{
      flex:0 0 auto;min-height:0;width:100%;margin:0 auto;border-radius:14px;padding:18px 16px 20px;
    }
    .page-careers .cr-step-1{width:62%;}
    .page-careers .cr-step-2{width:72%;}
    .page-careers .cr-step-3{width:81%;}
    .page-careers .cr-step-4{width:90%;}
    .page-careers .cr-step-5{width:100%;}
    .page-careers .cr-step-6{width:100%;}
    .page-careers .cr-step-salary{margin-top:14px;padding-top:0;}
    .page-careers .cr-step-plus{top:16px;right:14px;bottom:auto;width:30px;height:30px;font-size:14px;}
    .page-careers .cr-step:not(:last-child)::after{
      content:"";position:absolute;left:50%;bottom:-20px;transform:translateX(-50%);
      width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;
    }
    .page-careers .cr-step-1::after{border-top:11px solid #e8404a;}
    .page-careers .cr-step-2::after{border-top:11px solid #f0792e;}
    .page-careers .cr-step-3::after{border-top:11px solid #f2b400;}
    .page-careers .cr-step-4::after{border-top:11px solid #6cb43f;}
    .page-careers .cr-step-5::after{border-top:11px solid #2a9fd6;}
    /* 下部の横並びフェーズ帯は縦積みだと役職と対応しないので非表示にし、
       代わりに該当ステップの直前に見出し(cr-phase-tag)を挟んで階層をPCと同じ意味で示す */
    .page-careers .cr-phases{display:none;}
    .page-careers .cr-phase-tag{
      display:block;width:100%;color:#fff;font-weight:700;font-size:18px;text-align:center;
      padding:10px 8px;border-radius:6px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    }
    .page-careers .cr-phase-tag-1{background:#1f4e79;}
    .page-careers .cr-phase-tag-2{background:#2e75b6;}
    .page-careers .cr-phase-tag-3{background:#4aa3df;}
    .page-careers .cr-ladder-note{margin:11px auto 0;text-align:center;font-size:12px;}
    .page-careers .cr-apply-msg{font-size:18px;}
    .page-careers .cr-path-photos{grid-template-columns:1fr;gap:16px;margin-top:28px;}

    /* ② 募集要項テーブル: 中央寄せ2列で縦長・読みづらい → 縦積みカード化
       (項目=グレー見出し / 内容=全幅・左寄せ)。折返しが減り可読性UP */
    .page-careers .cr-table{border:none;}
    .page-careers .cr-table thead{display:none;}
    .page-careers .cr-table tbody,
    .page-careers .cr-table tr,
    .page-careers .cr-table td{display:block;width:100%;}
    .page-careers .cr-table tr{border:1px solid #dcdcdc;border-radius:6px;overflow:hidden;}
    .page-careers .cr-table tr + tr{margin-top:12px;}
    .page-careers .cr-table td{border:none;text-align:left;padding:12px 16px;font-size:15px;}
    .page-careers .cr-table tbody td:first-child{width:100%;font-weight:700;padding-bottom:4px;font-size:17px;} /* SPレビュー#143: ラベルと内容を同じ箱に統合(背景色・下線を除去) */
  }

  /* ==========================================================================
     インタビュー一覧 (page-interview / INTERVIEW)
     ── index の SUCCESS STORIES（黒バナー＋Before/After）デザインを踏襲しつつ、
        黒地に白見出し＋白→金のBefore/After＋写真右の体裁で再構成。
        グローバル .ba-* / .success-* との衝突回避のため全て iv-* 接頭辞＋.page-interview スコープ。
     ========================================================================== */
  .page-interview{background:#fff;}

  .page-interview .iv-sec{padding:100px 0;position:relative;}
  /* 灰→白(一覧)→灰(CTA)。波で境界をつなぐ */
  .page-interview .iv-intro{background:#ededec;padding-top:0;padding-bottom:50px;}   /* 他下層ページと同じ70px */
  .page-interview .iv-list{background:#ededec;padding-bottom:100px;padding-top:1px;}       /* CTA前100px。波を挟みテキスト→波(A)と波→見出し(B)を本番実測で対称化(各≒135px) */
  .page-interview .sec-counseling{background:#ededec;}

  .page-interview .iv-sec .sec02-wave{z-index:1;}
  .page-interview .iv-sec .container{position:relative;z-index:2;}
  .page-interview .lead-center{text-align:center;margin:0 auto;max-width:1024px;}
  .page-interview .iv-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-interview .iv-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- インタビューカード（白カード・黒見出しバー・緑Before/After・画像左右交互） ----- */
  /* カード間ギャップは頭のはみ出し量(最大56px)+余裕。頭が上カードの緑下線に被らないように */
  .page-interview .iv-list-grid{display:flex;flex-direction:column;gap:80px;max-width:1080px;margin:56px auto 0;}
  .page-interview .iv-card{
    display:flex;align-items:stretch;
    background:#fff;overflow:visible;border-bottom:8px solid #81b85d;
  }
  .page-interview .iv-card:nth-child(even){flex-direction:row-reverse;}
  /* 画像=カード下端固定・自然高で頭がカード上端からはみ出す。
     PNGは黒ボックス境界でトリミング済(左右下=ボックス端、上=頭の余白)。
     .iv-imgのaspect-ratio=各PNGのボックス比 → カラム高さ=ボックス高さ=カード高さとなり
     ボックスがカードの左右上下にぴったり接する(頭のみ上へはみ出す)。幅・高さともカンプ実測の個別指定 */
  .page-interview .iv-img{position:relative;min-width:0;align-self:stretch;}
  /* 画像=カラム全高＋頭のはみ出し分(--head)を下端固定coverで敷き詰め。
     ボックスがカードの左右上下に必ず密着し、本文高さが多少揺れても隙間が出ない */
  .page-interview .iv-img img{
    position:absolute;bottom:0;left:0;width:100%;height:calc(100% + var(--head,44px));
    object-fit:cover;object-position:center bottom;display:block;
  }
  .page-interview .iv-card:nth-child(1) .iv-img{flex:0 0 39.3%;aspect-ratio:1.4485;--head:36px;}
  .page-interview .iv-card:nth-child(2) .iv-img{flex:0 0 39.7%;aspect-ratio:1.7189;--head:56px;}
  .page-interview .iv-card:nth-child(3) .iv-img{flex:0 0 34.8%;aspect-ratio:1.1806;--head:41px;}
  .page-interview .iv-card:nth-child(4) .iv-img{flex:0 0 35.1%;aspect-ratio:1.1905;--head:53px;}
  .page-interview .iv-card:nth-child(5) .iv-img{flex:0 0 34.8%;aspect-ratio:1.1806;--head:46px;}
  .page-interview .iv-card:nth-child(6) .iv-img{flex:0 0 35.1%;aspect-ratio:1.1905;--head:49px;}
  .page-interview .iv-card:nth-child(7) .iv-img{flex:0 0 34.8%;aspect-ratio:1.1806;--head:42px;}
  .page-interview .iv-body{flex:1 1 auto;min-width:0;padding:20px 40px;display:flex;flex-direction:column;justify-content:center;}

  .page-interview .iv-lead{margin:0;}
  .page-interview .iv-lead .bar{
    display:inline;-webkit-box-decoration-break:clone;box-decoration-break:clone;
    background:#2b2b2b;color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:25px;font-weight:700;line-height:2.1;padding:4px 18px;
    margin-left:0;
  }
  .page-interview .iv-text{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.95;color:#222;margin:18px 0 0;
  }

  /* ----- Before / After（白地・緑） ------------------------------- */
  .page-interview .iv-stats{display:grid;grid-template-columns:1fr 46px 1fr;gap:22px;align-items:center;margin-top:20px;max-width:600px;}
  .page-interview .iv-ba-label{
    display:inline-block;border:2px solid #2b2b2b;color:#1a1a1a;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:17px;font-weight:700;letter-spacing:.1em;padding:3px 20px;margin:0 0 10px;line-height:1.25;
  }
  .page-interview .iv-after .iv-ba-label{border-color:var(--c-green-bright);color:var(--c-green-bright);}
  .page-interview .iv-ba-row{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    border-bottom:1px solid #e3e3e3;padding:7px 2px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-interview .iv-ba-key{font-size:16px;font-weight:700;color:#333;letter-spacing:.02em;}
  .page-interview .iv-ba-val{font-size:34px;font-weight:900;color:#1a1a1a;line-height:1;}
  .page-interview .iv-after .iv-ba-val{color:var(--c-green-bright);}
  .page-interview .iv-ba-val .unit{font-size:16px;font-weight:700;margin-left:1px;}
  .page-interview .iv-ba-arrow{display:flex;align-items:center;justify-content:center;}
  .page-interview .iv-ba-arrow::after{content:">";font-size:46px;font-weight:300;color:#c4c4c4;line-height:1;}

  @media (max-width:980px){
    .page-interview .iv-sec{padding:44px 0;}
    .page-interview .iv-list{padding-top:64px;}
    .page-interview .iv-card,
    .page-interview .iv-card:nth-child(even){flex-direction:column;align-items:stretch;}
    .page-interview .iv-card .iv-img{flex:none;aspect-ratio:auto;line-height:0;}
    .page-interview .iv-lead .bar{font-size:20px;line-height:1.95;padding:2px 7px;margin-left:0;}
    .page-interview .iv-lead .sp-br{display:inline;}
    .page-interview .iv-text{font-size:16px;}
    .page-interview .iv-stats{max-width:none;grid-template-columns:1fr 40px 1fr;gap:12px;}
    .page-interview .iv-ba-val{font-size:30px;}
    .page-interview .iv-ba-arrow::after{font-size:38px;}
  }

  @media (max-width:820px){
    .page-interview .iv-img img{position:absolute;width:100%;height:auto;object-fit:initial;}
  }

  @media (max-width:600px){
    .page-interview .iv-body{padding:20px 14px;}
    .page-interview .iv-lead .sp-br{display:inline;}
    .page-interview .iv-ba-row{flex-direction:column;align-items:flex-start;gap:2px;padding:8px 0;}
    .page-interview .iv-ba-key{font-size:15px;letter-spacing:.02em;}
    .page-interview .iv-ba-val{font-size:30px;}
    .page-interview .iv-ba-label{font-size:15px;padding:2px 14px;}
  }

  /* ==========================================================================
     SP(≤600px) 微調整: 中央寄せの長い本文を左寄せにして可読性UP（見出し/短いCTA文は中央のまま）
     ── ユーザ要望(2026-06-18 SP一括調整)。各 .page-* .lead-center を上書き。
     ========================================================================== */
  @media (max-width:600px){
    .page-omoi .lead-center,
    .page-menu .lead-center,
    .page-reason .lead-center,
    .page-partner .lead-center,
    .page-pricing .lead-center,
    .page-trainers .lead-center,
    .page-access .lead-center,
    .page-faq .lead-center,
    .page-results .lead-center,
    .page-interview .lead-center,
    .page-careers .lead-center{
      text-align:left;
      text-wrap:pretty;
    }
  }

  /* ==========================================================================
     下層7ページ セクションpadding個別指定(SP) — program規格に統一(2026-06-29)
     規格: 先頭(hero後)=44/44 / 波(sec02-wave)=165/80 / 直線=65/80。
     各 padding-top/padding-bottom を直接編集すればそのセクションだけ単独調整可。
     ファイル末尾＝既存の≤768/≤980 .X-sec{44px 0} 等に source order で勝つ。SP(≤600)のみ。
     index(program)/menu/reason/partner は各ページ領域内で対応済。
     ========================================================================== */
  @media (max-width:600px){
    /* 料金プラン pricing */
    .page-pricing .pr-intro {padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-pricing .pr-plans {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-pricing .pr-option{padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-pricing .pr-notes {padding-top:65px;  padding-bottom:80px;} /* 直線 */
    .page-pricing .pr-subhead{margin-top:60px;line-height:1.5;font-size:24px;}
    .page-pricing .pr-subhead .sp-br{display:inline;}
    .page-pricing .fee-title{
      text-align:center;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:28px;
      font-weight:700;
      color:#000;
      margin:0;
    }
    .page-pricing .price-card-head h3{
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:22px;
      font-weight:700;
      letter-spacing:.04em;
      margin:0;
      line-height:1.3;
    }
    /* トレーナー紹介 trainers */
    .page-trainers .tr-intro{padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-trainers .tr-list {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-trainers .tr-rank {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-trainers .rank-img{padding:0;}
    .page-trainers .tr-wide-img{margin:16px auto 0;}
    /* アクセス access */
    .page-access .ac-intro  {padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-access .ac-route  {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-access .ac-route .sec-head .h2 .line{white-space:nowrap;} /* 「自由が丘駅からのアクセス」を1行に */
    .page-access .ac-gallery{padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-access .ac-catch-keep{
      display:inline-flex;
      align-items:baseline;
      flex-wrap:nowrap;
      white-space:nowrap;
      word-break:keep-all;
      max-width:100%;
    } /* 「心躍るフィットネス体験を。」を1行に */
    .page-access .ac-table td{
      border:1px solid #dcdcdc;
      padding:17px 14px;
      text-align:center;
      font-size:15px;
      color:#000;
    }
    .page-access .route-item figcaption{
      margin-top:12px;
      text-align:left;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:15px;
      line-height:1.6;
      color:#000;
    }
    .page-access .route-exterior figcaption{
      margin-top:16px;
      text-align:left;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:15px;
      line-height:1.8;
      color:#000;
    }
    /* よくある質問 faq */
    .page-faq .fq-intro     {padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-faq .fq-body      {padding-top:165px; padding-bottom:80px;} /* 波 */
    /* 実践事例 results */
    .page-results .rs-intro {padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-results .rs-list  {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-results .rs-catch-keep{
      display:inline-flex;
      align-items:baseline;
      flex-wrap:nowrap;
      white-space:nowrap;
      word-break:keep-all;
      max-width:100%;
    } /* 「新しい自分と出会う喜びを」を1行に */
    /* インタビュー interview */
    .page-interview .iv-intro{padding-top:44px;  padding-bottom:10px;} /* 先頭。SPレビュー#123でさらに半分に再縮小 */
    .page-interview .iv-list {padding-top:1px;  padding-bottom:80px;} /* 波。SPレビュー#123でさらに半分に再縮小 */
    .page-interview .iv-catch-keep{white-space:nowrap;word-break:keep-all;}
    .page-interview .iv-catch-keep .sp-br{display:none;}
    /* 採用情報 careers */
    .page-careers .cr-intro  {padding-top:44px;  padding-bottom:44px;} /* 先頭 */
    .page-careers .cr-merit  {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-careers .cr-career {padding-top:165px; padding-bottom:80px;} /* 波 */
    .page-careers .cr-recruit{padding-top:165px; padding-bottom:80px;} /* 波 */
  }

  /* ==========================================================================
     SP(≤600px): 見出し以外のセンター寄せ本文を左寄せに(ユーザ要望 2026-06-29)
     左寄せ=読み物の本文/リード/カード説明。
     中央のまま=見出し(.h2)/英字eyebrow/大見出し(omoi-catch,reason-catch,message-catch,vision-lead)/
     カード見出し(point-title等)/ボタン/表セル/番号/アイコン下の短いラベル(vision-item,stage-title)/図(career ladder)/写真キャプション/copyright。
     ファイル末尾＝source orderで既存の中央寄せに勝つ。
     ========================================================================== */
  @media (max-width:600px){
    .counseling-lead{text-align:left;}               /* 全頁CTAリード */
    .reason-card p{text-align:left;}                 /* TOP 選ばれる理由カード説明 */
    .plan-desc{text-align:left;}                     /* TOP 料金プランカード説明 */
    .strength-text > p{text-align:left;}             /* STRENGTHS/reason/partner/menu/careers 番号項目の本文(見出しstrength-headは中央のまま) */
    .page-menu .menu-tri-desc{text-align:left;}      /* menu 3サークル説明 */
    .page-message .message-intro{text-align:left;}   /* message 導入リード */
    .page-pricing .price-card-desc{text-align:left;} /* pricing カード説明 */
    /* price-card-recの「・」箇条書きが折返すと2行目が左端(・の下)に来て不揃い(ユーザ指摘)。
       ぶら下げ揃え(text-indentで1行目だけ戻す)で折返し行を「・」の右の文字位置に揃える */
    .page-pricing .price-card-rec{
      list-style:none;margin:0;padding:15px;text-align:left;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:15px;line-height:1.95;color:#000;
    }
    .page-pricing .price-card-rec li{padding-left:1em;text-indent:-1em;}
    /* VISION文章: font22px＋letter-spacing0.3rem(4.8px)で長い文がSPで溢れ「ん。」「い——」が孤立(ユーザ指摘)。
       縮小して各<br>区切りの文が1行に収まるように(中央寄せは維持) */
    .vision-lead{font-size:16px;letter-spacing:0.02em;line-height:1.9;}
  }

  @media (max-width:600px){
    /* FAQのQ見出し(menu): SP指定どおり */
    .page-menu .faq-q{
      background:var(--c-green-bright);
      color:#fff;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-weight:700;
      font-size:16px;
      padding:16px 9px 16px 52px;
      margin:0;
      position:relative;
      cursor:pointer;
      list-style:none;
      text-indent:-1px;
      line-height:1.7;
    }
    .page-menu .faq-q::before{
      line-height:1;
      position:absolute;
      left:16px;
      top:50%;
      transform:translateY(-50%);
      margin-right:0;
    }
    .page-menu .faq-q .sp-br{display:inline;}
    .page-menu .faq-a{
      padding:20px 16px 22px;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      background:#f4f4f2;
    }
    /* FAQのQ見出し(faq): 全質問のQバッジを緑背景の上下中央に（page-faq/faq-list内すべて共通） */
    .page-faq summary.faq-q,
    .page-faq .faq-q{
      display:block;
      position:relative;
      font-size:16px;
      line-height:1.7;
      padding:14px 7px 14px 50px;
      text-indent:1px;
    }
    .page-menu .faq-q::before{line-height:1;}
    .page-faq summary.faq-q::before,
    .page-faq .faq-q::before{
      line-height:1;
      position:absolute;
      left:16px;
      top:50%;
      transform:translateY(-50%);
      margin-right:0;
    }
    /* A(回答)もQと同様に: Aバッジ(::before 30px)が1行目の行高を膨らませない(line-height:1)＋
       回答文(a-head＋本文p)をAの右にぶら下げ揃え＋行間均等(ユーザ要望) */
    .page-menu .faq-a p,
    .page-faq .faq-a p{padding-left:33px;line-height:1.7;}
    .page-menu .faq-a .a-head,
    .page-faq .faq-a .a-head{text-indent:-32px;margin-bottom:0;}
    .page-menu .faq-a .a-head::before,
    .page-faq .faq-a .a-head::before{line-height:1;}
    /* a-head→本文の間隔が詰まって見える(ユーザ指摘)ため、p+pと同じ1emの余白を入れる */
    .page-menu .faq-a .a-head + p,
    .page-faq .faq-a .a-head + p{margin-top:1em;}
  }

  @media (max-width:600px){
    /* pricing スペック表(.spec-table): SPでラベル120px+内容だと内容列が狭く縦長で読みにくい(ユーザ指摘)。
       →1カラムに積み、ラベルを上(薄色ヘッダ・左寄せ)、内容を全幅に。 */
    .page-pricing .spec-row{grid-template-columns:1fr;}
    .page-pricing .spec-th{justify-content:flex-start;text-align:left;border-right:none;border-bottom:1px solid #e3e3df;background:#f4f4f2;padding:11px 16px;font-size:18px;}
    .page-pricing .spec-td{padding:22px 26px;font-size:15px;line-height:1.85;color:#000;}
    .page-pricing .opt-col{
      padding:26px;
      text-align:left;
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:15px;
      line-height:2;
      color:#000;
    }
    .page-pricing .opt-table td{
      border:1px solid #dcdcdc;
      padding:18px 20px;
      font-size:15px;
      color:#000;
      text-align:center;
    }

    /* trainers スペック表(.spec-table): 資格/メッセージ等の内容が長く、ラベル120px+内容だと
       縦に間延びして見にくい(ユーザ指摘)。pricingと同じく1カラムに積み、ラベルを上(薄色ヘッダ・左寄せ)に。 */
    .page-trainers .spec-row{grid-template-columns:1fr;}
    .page-trainers .spec-th{justify-content:flex-start;text-align:left;border-right:none;border-bottom:1px solid #e3e3df;background:#f4f4f2;padding:11px 16px;font-size:18px;}
    .page-trainers .spec-td{padding:22px 11px;font-size:15px;line-height:1.85;color:#000;}

    /* trainer-role「JIYUGAOKA GYM PLAYGRAND トレーナー」がSP幅で「ー」だけ孤立して折返る(ユーザ指摘)。
       sp-brは.h2/.message-catchのみ有効化されているため、trainer-role用に個別で有効化 */
    .page-trainers .trainer-role .sp-br{display:inline;}
    .page-trainers .trainer-quote{
      font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
      font-size:24px !important;
      font-weight:700;
      color:#000;
      margin:0 0 22px;
      line-height:1.5;
    }
    .page-trainers .trainer-quote .sp-br{display:inline;}
  }

  /* ==========================================================================
     コラム一覧 (page-column / COLUMN)
     ── WP投稿(post)一覧。TOP/下層各頁のトンマナ準拠。pg-hero / sec-head / lead /
        sec02-wave / sec-counseling を継承し、カテゴリ絞り込みナビ＋記事カード
        グリッド＋ページネーションのみ新規。接頭辞は col-（.page-columnスコープ厳守）。
     ========================================================================== */
  .page-column{background:#fff;}

  .page-column .col-sec{padding:100px 0;position:relative;}
  /* イントロ廃止。ヒーロー波を白fillにして白の一覧セクションへ直結（波の二重回避）。CTAは灰。 */
  .page-column .col-body{background:#fff;padding-top:70px;padding-bottom:100px;}

  .page-column .col-sec .container{position:relative;z-index:2;}

  .page-column .lead-center{text-align:center;margin:0 auto;max-width:1000px;text-wrap:balance;}
  .page-column .col-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-column .col-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- カテゴリ絞り込みナビ（灰背景上の白ピル） --------------------- */
  .page-column .col-nav{
    display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
    max-width:1080px;margin:52px auto 0;
  }
  .page-column .col-nav a{
    display:inline-flex;align-items:center;justify-content:center;
    background:#fff;border:1px solid #d8d8d2;padding:12px 26px;border-radius:999px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;color:#000;text-align:center;line-height:1.4;
    transition:background .2s,color .2s,border-color .2s;
  }
  .page-column .col-nav a:hover{background:var(--c-green-bright);border-color:var(--c-green-bright);color:#fff;}
  .page-column .col-nav a.is-current{background:var(--c-green-bright);border-color:var(--c-green-bright);color:#fff;}

  /* ----- 記事カードグリッド ----------------------------------------- */
  .page-column .col-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:44px 36px;
    max-width:1120px;margin:56px auto 0;
  }
  .page-column .col-card{
    display:flex;flex-direction:column;background:#fff;
    border:1px solid #e6e6e6;overflow:hidden;
    transition:transform .3s ease,box-shadow .3s ease;
  }
  .page-column a.col-card{color:inherit;}
  .page-column .col-card:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(13,64,29,.12);}

  .page-column .col-thumb{position:relative;overflow:hidden;background:#ececec;aspect-ratio:16/10;}
  .page-column .col-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
  .page-column .col-card:hover .col-thumb img{transform:scale(1.05);}
  /* 画像未設定時のプレースホルダ(緑地にロゴ風) */
  .page-column .col-thumb.is-noimg{display:flex;align-items:center;justify-content:center;background:var(--c-green-dark);}
  .page-column .col-thumb.is-noimg span{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:22px;letter-spacing:.12em;color:rgba(255,255,255,.7);}

  .page-column .col-cat{
    position:absolute;left:0;top:14px;
    background:var(--c-green-bright);color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:15px;font-weight:700;line-height:1;letter-spacing:.02em;
    padding:8px 16px;
  }

  .page-column .col-info{display:flex;flex-direction:column;flex:1 1 auto;padding:22px 22px 24px;}
  .page-column .col-date{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:15px;font-weight:500;letter-spacing:.06em;color:var(--c-green-bright);margin:0 0 10px;
  }
  .page-column .col-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;line-height:1.55;color:#000;margin:0;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  }
  .page-column .col-excerpt{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.75;color:var(--c-text);margin:12px 0 0;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
  }
  .page-column .col-more{
    margin-top:auto;padding-top:18px;
    display:inline-flex;align-items:center;gap:8px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:16px;font-weight:600;letter-spacing:.04em;color:var(--c-green-btn);
  }
  .page-column .col-more::after{content:"\203A";font-size:20px;line-height:1;transition:transform .2s ease;}
  .page-column .col-card:hover .col-more::after{transform:translateX(4px);}

  /* ----- 記事なし ---------------------------------------------------- */
  .page-column .col-empty{
    text-align:center;font-size:18px;color:var(--c-text);
    margin:56px auto 0;max-width:600px;
  }

  /* ----- ページネーション ------------------------------------------- */
  .page-column .col-pager{
    display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;
    margin:64px auto 0;
  }
  .page-column .col-pager .page-numbers{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:48px;height:48px;padding:0 8px;
    border:1px solid #d8d8d2;background:#fff;color:#000;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:18px;font-weight:600;
    transition:background .2s,color .2s,border-color .2s;
  }
  .page-column .col-pager a.page-numbers:hover{background:var(--c-green-bright);border-color:var(--c-green-bright);color:#fff;}
  .page-column .col-pager .page-numbers.current{background:var(--c-green-dark);border-color:var(--c-green-dark);color:#fff;}
  .page-column .col-pager .page-numbers.dots{border:none;background:transparent;min-width:auto;}

  /* ----- タブレット ------------------------------------------------- */
  @media (max-width:900px){
    .page-column .col-grid{grid-template-columns:repeat(2,1fr);gap:36px 28px;}
  }

  /* ----- スマホ ----------------------------------------------------- */
  @media (max-width:600px){
    .page-column .col-sec{padding:44px 0;}
    .page-column .col-body{padding-top:64px;}
    .page-column .col-nav{gap:10px;margin-top:36px;}
    .page-column .col-nav a{padding:11px 18px;font-size:18px;}
    .page-column .col-grid{grid-template-columns:1fr;gap:32px;margin-top:40px;max-width:460px;}
    .page-column .col-title{font-size:19px;}
    .page-column .col-pager{margin-top:44px;}
    .page-column .col-pager .page-numbers{min-width:44px;height:44px;font-size:18px;}
  }

  /* ==========================================================================
     実践事例 個別ページ (page-case / CASE01〜)
     ── body は page-results + page-case の2クラス。cm-box/case-body/btn-section
        等は流用し、DATA表・Q&Aブロック・白カード（トレーニング/食事）のみ新規定義。
        構成は旧サイト playgrand.jp/beforeafter/caseNN/ 準拠。bc-* 接頭辞。
     ========================================================================== */
  .page-case .bc-sec{padding:100px 0;position:relative;}
  /* 灰(タイトル画像)→白(DATA)→灰(インタビュー)→白(CTA)。波で境界をつなぐ */
  .page-case .bc-intro{background:var(--c-bg);padding-top:0;padding-bottom:70px;}
  .page-case .bc-data{background:#fff;padding-top:150px;padding-bottom:50px;}
  .page-case .bc-qa{background:var(--c-bg);padding-top:150px;padding-bottom:100px;}
  .page-case .sec-counseling{background:#fff;}

  .page-case .bc-sec .sec02-wave{z-index:1;}
  .page-case .bc-sec .container{position:relative;z-index:2;}

  .page-case .bc-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  /* 見出し下の縦線（menu/reason/partner/pricing/trainers/access と同一） */
  .page-case .bc-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* ----- タイトルビジュアル（旧サイト支給の黒バナー） ----------------- */
  .page-case .bc-title-img{max-width:1080px;margin:0 auto;}
  .page-case .bc-title-img img{width:100%;height:auto;display:block;border-radius:6px;}

  /* ----- DATA ------------------------------------------------------- */
  .page-case .bc-data-grid{
    max-width:1080px;margin:56px auto 0;
    display:grid;grid-template-columns:420px 1fr;gap:48px;align-items:start;
  }
  .page-case .bc-before-photo{margin:0;}
  .page-case .bc-before-photo img{width:100%;height:auto;display:block;border-radius:6px;}
  .page-case .bc-data-name{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;font-weight:700;color:#000;margin:0 0 26px;line-height:1.5;
  }
  .page-case .bc-data-rows{margin:0;}
  .page-case .bc-data-row{display:flex;align-items:center;gap:18px;}
  .page-case .bc-data-row + .bc-data-row{margin-top:14px;}
  .page-case .bc-data-label{
    flex:0 0 110px;text-align:center;background:#000;color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:600;letter-spacing:.06em;padding:6px 0;
  }
  .page-case .bc-data-label-after{background:#3f8a36;}
  .page-case .bc-data-vals{
    margin:0;display:flex;gap:24px;flex-wrap:wrap;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;color:#000;
  }
  .page-case .bc-data-vals-after{color:#3f8a36;}
  .page-case .bc-goal{border:2px solid #3f8a36;border-radius:6px;padding:24px 26px;margin-top:30px;background:#fff;}
  .page-case .bc-goal-label{
    display:inline-block;background:#3f8a36;color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;letter-spacing:.1em;padding:4px 22px;margin:0 0 14px;
  }
  .page-case .bc-goal-text{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;line-height:1.9;color:#000;margin:0;
  }

  /* ----- Q&A ブロック ------------------------------------------------ */
  .page-case .bc-q-block{max-width:1080px;margin:64px auto 0;}
  .page-case .bc-q-block:first-of-type{margin-top:56px;}
  /* Q見出し：resultsの.case-barと同じ緑バー体裁 */
  .page-case .bc-q-bar{
    background:#3f8a36;color:#fff;border-radius:4px;padding:14px 24px;margin:0 0 26px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;line-height:1.6;
  }
  /* A見出し：case-bd-result と同じ緑文字＋緑下線 */
  .page-case .bc-a-head{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;color:#3f8a36;line-height:1.85;
    margin:0 0 18px;padding-bottom:16px;border-bottom:2px solid #8cae3f;
  }
  .page-case .bc-a-body p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.9;color:#333;margin:0;
  }
  .page-case .bc-a-body p + p{margin-top:1em;}

  /* ----- 白カード（ある日のトレーニングメニュー／ある日の食事） ------ */
  .page-case .bc-card{
    max-width:1080px;margin:48px auto 0;background:#fff;
    border:1px solid #cfcfca;border-radius:6px;padding:40px 36px;
  }
  .page-case .bc-card-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;font-weight:700;color:#000;text-align:center;margin:0 0 30px;
  }
  .page-case .bc-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .page-case .bc-card-item{margin:0;}
  .page-case .bc-card-item img{width:100%;height:auto;aspect-ratio:340/250;object-fit:cover;display:block;border-radius:6px;}
  .page-case .bc-card-item figcaption{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.7;color:#333;margin-top:12px;
  }

  /* カード枚数バリエーション（旧サイトの掲載枚数に合わせる: 1/2/4枚） */
  .page-case .bc-card-grid-1{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
  .page-case .bc-card-grid-2{grid-template-columns:repeat(2,1fr);max-width:760px;margin:0 auto;}
  .page-case .bc-card-grid-4{grid-template-columns:repeat(2,1fr);}

  /* ----- トレーナーからのコメント（resultsのcm-box流用＋幅だけ調整） -- */
  .page-case .bc-trainer-comment{max-width:1080px;margin:64px auto 0;}

  /* ----- 一覧に戻る -------------------------------------------------- */
  .page-case .bc-back{margin-top:64px;}

  @media (max-width:980px){
    .page-case .bc-sec{padding:44px 0;}
    .page-case .bc-data,
    .page-case .bc-qa{padding-top:64px;}
    .page-case .bc-data-grid{grid-template-columns:1fr;gap:28px;max-width:460px;}
    .page-case .bc-data-name{font-size:21px;}
    .page-case .bc-q-block{margin:48px auto 0;}
    .page-case .bc-q-bar{padding:13px 18px;font-size:19px;}
    .page-case .bc-a-head{font-size:19px;}
    .page-case .bc-card{padding:28px 20px;}
    .page-case .bc-card-grid{grid-template-columns:1fr;gap:26px;max-width:460px;margin:0 auto;}
    .page-case .bc-trainer-comment{margin-top:48px;}
    .page-case .bc-back{margin-top:48px;}
  }
  @media (max-width:600px){
    /* SPは支給の縦長バナー(980x1400)に切替（picture）。角丸のみ維持 */
    .page-case .bc-intro{padding-bottom:44px;}
    .page-case .bc-data{padding-top:165px;} /* 波 */
    .page-case .bc-qa{padding-top:165px;padding-bottom:80px;} /* 波 */
    .page-case .bc-data-vals{gap:16px;font-size:19px;}
  }

  /* ==========================================================================
     ペアトレーニング事例 個別ページ (page-pair / PAIR01・02)
     ── body は page-results + page-case + page-pair。case頁の bc-*（Q&A/戻るボタン/
        cm-box）を共有し、CONCEPT/BACK GROUND/60DAYS の物語セクションと REAL VOICE
        ヒーロー（fullbg 上に証言オーバーレイ）だけを pv-* で新規定義。旧サイト
        playgrand.jp/pair-training01・02/ の構成準拠。
     ========================================================================== */
  .page-pair .pv-narr{padding:100px 0;position:relative;}
  /* CONCEPT(灰)→BACK GROUND(白)→60DAYS(灰)→REAL VOICE(白)→CTA(灰) の交互 */
  .page-pair .pv-concept{background:var(--c-bg);padding-top:0;padding-bottom:70px;}
  .page-pair .pv-bg{background:#fff;padding-top:150px;padding-bottom:50px;}
  .page-pair .pv-prog{background:var(--c-bg);padding-top:150px;padding-bottom:50px;}
  .page-pair .pv-voice{background:#fff;padding-top:150px;padding-bottom:100px;position:relative;}
  .page-pair .sec-counseling{background:var(--c-bg);}

  .page-pair .pv-narr .sec02-wave,
  .page-pair .pv-voice .sec02-wave{z-index:1;}
  .page-pair .pv-narr .container,
  .page-pair .pv-voice .container{position:relative;z-index:2;}

  .page-pair .bc-sec .sec-head .h2 .hl-band{line-height:1;padding-top:4px;padding-bottom:8px;}
  .page-pair .bc-sec .sec-head .h2::after{content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;}

  /* CONCEPT のサブタイトル（詩的タイトル｜ペア名） */
  .page-pair .pv-concept-sub{
    text-align:center;margin:18px 0 0;line-height:1.5;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .page-pair .pv-concept-ja{display:block;font-size:22px;font-weight:700;color:#000;}
  .page-pair .pv-concept-en{
    display:inline-block;margin-top:4px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-style:italic;font-size:20px;color:#3f8a36;letter-spacing:.02em;
  }
  .page-pair .pv-concept-pair{display:inline-block;margin-left:8px;font-size:18px;color:#555;}

  /* 物語本文 */
  .page-pair .pv-lead{max-width:900px;margin:44px auto 0;text-wrap:balance;}
  .page-pair .pv-lead p{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:2;color:#333;margin:0;text-align:center;
  }
  .page-pair .pv-lead p + p{margin-top:1.3em;}

  /* 画像ギャラリー（各セクション） */
  .page-pair .pv-gallery{max-width:1080px;margin:44px auto 0;display:grid;gap:24px;}
  .page-pair .pv-gallery-1{grid-template-columns:1fr;max-width:760px;}
  .page-pair .pv-gallery-2{grid-template-columns:repeat(2,1fr);}
  .page-pair .pv-gallery-3{grid-template-columns:repeat(3,1fr);}
  .page-pair .pv-shot{margin:0;}
  .page-pair .pv-shot img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:6px;}

  /* REAL VOICE ヒーロー（fullbg 上に証言オーバーレイ） */
  .page-pair .pv-hero{
    max-width:1080px;margin:44px auto 0;border-radius:6px;overflow:hidden;
    background-color:#000;background-size:cover;background-position:top right;
    min-height:420px;display:flex;align-items:center;
  }
  .page-pair .pv-hero-inner{
    padding:48px 56px;max-width:560px;
    /* 左に黒スクリム（fullbgは左が黒なので文字が乗る） */
  }
  .page-pair .pv-hero-pair{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:500;letter-spacing:.12em;color:#fff;margin:0 0 16px;
  }
  .page-pair .pv-hero-head{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:28px;font-weight:700;line-height:1.5;color:#fff;margin:0 0 18px;
  }
  .page-pair .pv-hero-lead{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:500;line-height:1.9;color:#f0f0f0;margin:0;
  }

  /* REAL VOICE 内 Q&A は case頁の bc-q-block を共有。先頭だけ間隔調整 */
  .page-pair .pv-voice .bc-q-block:first-of-type{margin-top:56px;}
  /* Q&A に付随する写真 */
  .page-pair .pv-qa-gallery{max-width:1080px;margin:24px auto 0;display:grid;gap:20px;}
  .page-pair .pv-qa-gallery-1{grid-template-columns:1fr;max-width:460px;margin-left:0;}
  .page-pair .pv-qa-gallery-2{grid-template-columns:repeat(2,1fr);}
  .page-pair .pv-qa-gallery-3{grid-template-columns:repeat(3,1fr);}
  .page-pair .pv-qa-gallery .pv-shot img{aspect-ratio:3/2;border-radius:6px;}

  @media (max-width:980px){
    .page-pair .pv-narr{padding:44px 0;}
    .page-pair .pv-bg,
    .page-pair .pv-prog,
    .page-pair .pv-voice{padding-top:64px;}
    .page-pair .pv-concept-ja{font-size:20px;}
    .page-pair .pv-lead p{font-size:18px;line-height:1.95;text-align:left;}
    .page-pair .pv-gallery{gap:16px;}
    .page-pair .pv-hero{min-height:0;}
    .page-pair .pv-hero-inner{padding:32px 24px;max-width:none;background:rgba(0,0,0,.55);width:100%;}
    .page-pair .pv-hero-head{font-size:23px;}
  }
  @media (max-width:600px){
    .page-pair .pv-bg,
    .page-pair .pv-prog,
    .page-pair .pv-voice{padding-top:165px;}
    /* SPは3枚並びを縦積みに（2枚は維持で横並び可） */
    .page-pair .pv-gallery-3{grid-template-columns:1fr;max-width:460px;}
    .page-pair .pv-qa-gallery-3{grid-template-columns:1fr;max-width:460px;}
    /* ヒーローは縦積みで写真が隠れないよう高さ確保＋下部に文字 */
    .page-pair .pv-hero{min-height:520px;background-position:top center;align-items:flex-end;}
    .page-pair .pv-hero-inner{background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.15));}
  }

  /* ==========================================================================
     再適用ブロック(2026-07-24): 大内さん更新CSSを土台に、以下2点のみ追記
     ========================================================================== */
  /* 料金表のSP版画像（PCはHTML表 .fee-table、SPは縦カード画像 table01/02.png に差替） */
  .page-pricing .fee-table-sp{display:none;}
  @media (max-width:600px){
    .page-pricing .fee-table{display:none;}
    .page-pricing .fee-wrap{overflow-x:visible;}
    .page-pricing .fee-table-sp{display:block;width:100%;height:auto;margin:0 auto;}
  }

  /* interview一覧カードを詳細ページへのリンク化（article→a）。下線除去＋ホバー浮き */
  .page-interview a.iv-card{text-decoration:none;color:inherit;transition:box-shadow .2s ease,transform .2s ease;}
  .page-interview a.iv-card:hover{box-shadow:0 10px 26px rgba(0,0,0,.13);transform:translateY(-3px);}

  /* ============================================================
     CONTACT（無料カウンセリング申込・お問い合わせ / page-contact.php）
     フォーム本体は Contact Form 7（フォームID: ffe16fc）
     ============================================================ */
  .page-contact .ct-sec{padding:100px 0;position:relative;}
  /* イントロ節はユーザ指示で削除(2026-07-28)。ヒーロー波(白fill)から直結するので上余白は70px */
  .page-contact .ct-body{background:#fff;padding-top:70px;padding-bottom:100px;}
  .page-contact .ct-body .container{z-index:2;}

  /* ----- フォーム外枠 ----- */
  .page-contact .ct-form-wrap{max-width:900px;margin:0 auto;}
  .page-contact .ct-form-wrap .wpcf7{margin:0;}
  .page-contact .ct-form{
    background:var(--c-bg);
    border-radius:18px;
    padding:44px 40px;
  }

  /* ----- 各項目（dl/dt/dd） ----- */
  .page-contact .ct-row{
    margin:0 0 28px;
    padding:0 0 28px;
    border-bottom:1px dashed #cfcfc9;
  }
  .page-contact .ct-row:last-of-type{margin-bottom:0;padding-bottom:0;border-bottom:none;}
  .page-contact .ct-row dt{
    font-size:18px;
    font-weight:700;
    color:#000;
    line-height:1.7;
    margin:0 0 12px;
    padding:0;
    border:none;
    background:none;
  }
  .page-contact .ct-row dd{margin:0;padding:0;}
  .page-contact .ct-badge{
    display:inline-block;
    margin-right:10px;
    padding:1px 12px;
    border-radius:4px;
    background:#e2e2da;
    color:#4b4b4b;
    font-size:18px;
    font-weight:700;
    line-height:1.6;
    vertical-align:2px;
    white-space:nowrap;
  }
  .page-contact .ct-badge-req{background:#c0392b;color:#fff;}

  /* ----- ブロック見出し（お問い合わせ／カウンセリング） ----- */
  .page-contact .ct-block-head{
    margin:44px 0 24px;
    padding:14px 20px;
    background:var(--c-green-dark);
    color:#fff;
    border:none;
    border-radius:8px;
    font-family:var(--font-sans);
    font-size:20px;
    font-weight:700;
    line-height:1.6;
  }

  /* ----- 注意書き ----- */
  .page-contact .ct-alert{
    margin:0 0 24px;
    padding:16px 20px;
    background:#fff6f5;
    border:1px solid #e6c3be;
    border-radius:8px;
    color:#b03a2e;
    font-size:18px;
    line-height:1.75;
  }
  .page-contact .ct-note-sub{
    margin:0;
    font-size:18px;
    line-height:1.75;
    color:var(--c-text-sub);
  }

  /* ----- 希望日時（第一希望／第二希望） ----- */
  .page-contact .ct-wish-grid{display:flex;gap:24px;flex-wrap:wrap;}
  .page-contact .ct-wish{
    flex:1 1 300px;
    background:#fff;
    border:1.5px solid #dcdcd4;
    border-radius:12px;
    padding:20px 20px 24px;
  }
  .page-contact .ct-wish-label{
    margin:16px 0 6px;
    font-size:18px;
    font-weight:700;
    line-height:1.6;
    color:#000;
  }
  .page-contact .ct-wish select{width:100%;max-width:100%;}

  /* ----- 入力コントロール（Diver親テーマのフォーム装飾を上書き） ----- */
  .page-contact .ct-form input[type="text"],
  .page-contact .ct-form input[type="email"],
  .page-contact .ct-form input[type="tel"],
  .page-contact .ct-form select,
  .page-contact .ct-form textarea{
    width:100%;
    max-width:520px;
    margin:0;
    padding:14px 16px;
    font-family:var(--font-sans);
    font-size:18px;
    font-weight:500;
    line-height:1.6;
    color:var(--c-text-dark);
    background:#fff;
    border:1.5px solid #c9c9c2;
    border-radius:8px;
    box-shadow:none;
    -webkit-appearance:none;
    appearance:none;
  }
  .page-contact .ct-form textarea{max-width:100%;min-height:170px;resize:vertical;display:block;}
  .page-contact .ct-form select{
    max-width:340px;
    padding-right:42px;
    cursor:pointer;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%234b4b4b' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 16px center;
    background-size:12px 8px;
  }
  .page-contact .ct-form input::placeholder,
  .page-contact .ct-form textarea::placeholder{color:#a2a29a;opacity:1;}
  .page-contact .ct-form input:focus,
  .page-contact .ct-form select:focus,
  .page-contact .ct-form textarea:focus{
    outline:none;
    border-color:var(--c-green-bright);
    box-shadow:0 0 0 3px rgba(57,141,43,.16);
  }
  .page-contact .ct-form .wpcf7-form-control-wrap{display:block;}

  /* ----- 送信ボタン ----- */
  .page-contact .ct-submit{margin:40px 0 0;text-align:center;}
  .page-contact .ct-form .ct-submit-btn{
    display:inline-block;
    width:auto;
    min-width:340px;
    padding:22px 56px;
    font-family:var(--font-sans);
    font-size:18px;
    font-weight:700;
    line-height:1.4;
    color:#000;
    background:var(--c-yellow);
    border:none;
    border-radius:999px;
    cursor:pointer;
    box-shadow:var(--shadow-card);
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    -webkit-appearance:none;
    appearance:none;
  }
  .page-contact .ct-form .ct-submit-btn:hover{
    background:var(--c-yellow-bright);
    transform:translateY(-2px);
    box-shadow:0 12px 26px rgba(0,0,0,.14);
  }
  .page-contact .ct-form .ct-submit-btn:disabled{opacity:.6;cursor:default;transform:none;}

  /* ----- CF7 のエラー・完了メッセージ ----- */
  .page-contact .wpcf7-spinner{margin:0 0 0 14px;}
  .page-contact .wpcf7-not-valid-tip{
    display:block;
    margin-top:8px;
    font-size:18px;
    font-weight:700;
    line-height:1.6;
    color:#c0392b;
  }
  .page-contact .ct-form .wpcf7-not-valid{border-color:#c0392b;background:#fff8f7;}
  .page-contact .wpcf7-response-output{
    margin:28px 0 0;
    padding:18px 20px;
    border:2px solid var(--c-green-bright);
    border-radius:8px;
    background:#f2fbef;
    color:var(--c-green-dark);
    font-size:18px;
    font-weight:700;
    line-height:1.75;
  }
  .page-contact .wpcf7 form.invalid .wpcf7-response-output,
  .page-contact .wpcf7 form.unaccepted .wpcf7-response-output,
  .page-contact .wpcf7 form.payment-required .wpcf7-response-output{
    border-color:#e0a800;background:#fffbef;color:#7a5a00;
  }
  .page-contact .wpcf7 form.failed .wpcf7-response-output,
  .page-contact .wpcf7 form.aborted .wpcf7-response-output{
    border-color:#c0392b;background:#fff6f5;color:#a5281b;
  }

  @media (max-width:980px){
    .page-contact .ct-form{padding:36px 28px;}
  }

  @media (max-width:600px){
    .page-contact .ct-sec{padding:70px 0;}
    .page-contact .ct-body{padding-top:56px;padding-bottom:80px;}
    .page-contact .ct-form-wrap{margin-top:0;}
    .page-contact .ct-form{padding:26px 16px;border-radius:12px;}
    .page-contact .ct-row{margin-bottom:22px;padding-bottom:22px;}
    .page-contact .ct-block-head{margin:32px 0 20px;padding:12px 14px;font-size:18px;}
    .page-contact .ct-alert{padding:14px 16px;}
    .page-contact .ct-wish-grid{gap:16px;}
    .page-contact .ct-wish{flex:1 1 100%;padding:18px 16px 20px;}
    .page-contact .ct-form input[type="text"],
    .page-contact .ct-form input[type="email"],
    .page-contact .ct-form input[type="tel"],
    .page-contact .ct-form select,
    .page-contact .ct-form textarea{max-width:100%;}
    .page-contact .ct-submit{margin-top:32px;}
    .page-contact .ct-form .ct-submit-btn{min-width:0;width:100%;padding:20px 20px;}
  }

  /* ==========================================================================
     COLUMN 詳細（投稿 single.php）
     一覧(.page-column)と同じトンマナ＝灰/白交互・波境界・緑アクセント・18px下限。
     関連記事は一覧の .col-grid / .col-card を流用（body_class に page-column も付与）。
     固有部品の接頭辞は cs-（.page-column-single スコープ厳守）。
     ========================================================================== */
  .page-column-single .cs-sec{padding:100px 0;position:relative;}
  /* 灰(記事本体)→白(関連コラム)→灰(CTA)の交互配色 */
  /* ヒーロー無し（ユーザ指示 2026-07-27）。固定ヘッダー64pxの下に直接始まるので margin-top で受ける */
  .page-column-single .cs-body{background:var(--c-bg);margin-top:64px;padding-top:56px;padding-bottom:100px;}
  .page-column-single .cs-related{background:#fff;padding-top:150px;padding-bottom:100px;}
  .page-column-single .cs-sec .container{position:relative;z-index:2;}

  /* ----- パンくず ---------------------------------------------------- */
  .page-column-single .cs-crumb{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px;
    max-width:900px;margin:0 auto 22px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;line-height:1.6;color:var(--c-text-sub);
  }
  .page-column-single .cs-crumb a{color:var(--c-green-btn);}
  .page-column-single .cs-crumb a:hover{text-decoration:underline;}
  .page-column-single .cs-crumb em{font-style:normal;color:var(--c-text);}

  /* ----- 記事カード -------------------------------------------------- */
  .page-column-single .cs-article{
    max-width:900px;margin:0 auto;
    background:#fff;border:1px solid #e6e6e6;
    padding:56px 60px 60px;
  }

  .page-column-single .cs-head{margin:0 0 36px;padding:0 0 28px;border-bottom:1px solid #e6e6e6;}
  .page-column-single .cs-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:0 0 18px;}
  .page-column-single .cs-cat{
    display:inline-flex;align-items:center;
    background:var(--c-green-bright);color:#fff;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;line-height:1.3;letter-spacing:.02em;
    padding:7px 18px;
  }
  .page-column-single a.cs-cat:hover{background:var(--c-green-btn);}
  .page-column-single .cs-date{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:500;letter-spacing:.06em;color:var(--c-green-bright);
  }
  .page-column-single .cs-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:clamp(26px,2.6vw,36px);font-weight:700;line-height:1.5;color:#000;
    margin:0;padding:0;border:none;background:none;
  }

  .page-column-single .cs-thumb{margin:0 0 40px;}
  .page-column-single .cs-thumb img{width:100%;height:auto;display:block;}

  /* ----- 本文タイポグラフィ（管理画面から入る任意のHTML/ブロックを想定） ----- */
  .page-column-single .cs-content{
    font-family:var(--font-sans);
    font-size:18px;line-height:1.9;color:var(--c-text);
  }
  .page-column-single .cs-content > *:first-child{margin-top:0;}
  .page-column-single .cs-content p{margin:0 0 1.7em;font-size:18px;line-height:1.9;}
  .page-column-single .cs-content h2{
    margin:56px 0 24px;padding:14px 20px;
    background:var(--c-green-dark);color:#fff;border:none;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:24px;font-weight:700;line-height:1.6;
  }
  .page-column-single .cs-content h3{
    margin:46px 0 18px;padding:0 0 0 16px;
    border:none;border-left:5px solid var(--c-green-bright);background:none;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:22px;font-weight:700;line-height:1.6;color:#000;
  }
  /* Diver親テーマの h4{padding:.2em 1em} 等を明示的に打ち消す */
  .page-column-single .cs-content h4,
  .page-column-single .cs-content h5,
  .page-column-single .cs-content h6{
    margin:34px 0 14px;padding:0;border:none;background:none;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:20px;font-weight:700;line-height:1.6;color:var(--c-green-deep);
  }
  .page-column-single .cs-content ul,
  .page-column-single .cs-content ol{margin:0 0 1.7em;padding:0 0 0 1.6em;}
  .page-column-single .cs-content li{margin:0 0 .6em;font-size:18px;line-height:1.9;}
  .page-column-single .cs-content ul > li{list-style:disc;}
  .page-column-single .cs-content ol > li{list-style:decimal;}
  .page-column-single .cs-content li::marker{color:var(--c-green-bright);}
  .page-column-single .cs-content a{color:var(--c-green-btn);text-decoration:underline;}
  .page-column-single .cs-content a:hover{opacity:.8;}
  .page-column-single .cs-content strong,
  .page-column-single .cs-content b{font-weight:700;color:#000;}
  .page-column-single .cs-content em{font-style:italic;}
  .page-column-single .cs-content blockquote{
    margin:0 0 1.7em;padding:22px 26px;
    background:var(--c-bg);border:none;border-left:5px solid var(--c-card-edge);
    font-size:18px;line-height:1.9;color:var(--c-text);
  }
  .page-column-single .cs-content blockquote > *:last-child{margin-bottom:0;}
  .page-column-single .cs-content img{max-width:100%;height:auto;display:block;}
  .page-column-single .cs-content figure{margin:0 0 1.7em;}
  .page-column-single .cs-content figcaption{
    margin:10px 0 0;font-size:18px;line-height:1.7;color:var(--c-text-sub);text-align:center;
  }
  .page-column-single .cs-content hr{margin:48px 0;border:none;border-top:1px solid #e0e0da;}
  /* 表はフォントを縮めず横スクロールで逃がす（18px下限ルール） */
  .page-column-single .cs-content .wp-block-table,
  .page-column-single .cs-content figure.wp-block-table{overflow-x:auto;}
  .page-column-single .cs-content table{
    width:100%;min-width:520px;border-collapse:collapse;font-size:18px;margin:0 0 1.7em;background:#fff;
  }
  .page-column-single .cs-content th,
  .page-column-single .cs-content td{
    border:1px solid #dcdcd4;padding:12px 16px;line-height:1.7;text-align:left;font-size:18px;
  }
  .page-column-single .cs-content th{background:var(--c-green-dark);color:#fff;font-weight:700;}
  .page-column-single .cs-content .wp-block-image{margin:0 0 1.7em;}
  .page-column-single .cs-content .aligncenter{margin-left:auto;margin-right:auto;}

  /* ----- タグ -------------------------------------------------------- */
  .page-column-single .cs-tags{
    display:flex;flex-wrap:wrap;gap:10px;
    margin:44px 0 0;padding:24px 0 0;border-top:1px solid #e6e6e6;
  }
  .page-column-single .cs-tags a{
    display:inline-flex;align-items:center;
    border:1px solid #d8d8d2;background:#fff;border-radius:999px;padding:8px 18px;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:500;line-height:1.4;color:var(--c-text);
    transition:background .2s,border-color .2s,color .2s;
  }
  .page-column-single .cs-tags a:hover{background:var(--c-green-bright);border-color:var(--c-green-bright);color:#fff;}

  /* ----- 前後のコラム ------------------------------------------------ */
  .page-column-single .cs-pn{
    display:flex;gap:20px;max-width:900px;margin:44px auto 0;
  }
  .page-column-single .cs-pn-item{
    flex:1 1 50%;min-width:0;
    display:flex;flex-direction:column;gap:8px;
    background:#fff;border:1px solid #e6e6e6;padding:20px 24px;color:inherit;
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .page-column-single .cs-pn-item:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(13,64,29,.12);}
  .page-column-single .cs-pn-next{text-align:right;margin-left:auto;}
  .page-column-single .cs-pn-label{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:600;letter-spacing:.04em;color:var(--c-green-bright);
  }
  .page-column-single .cs-pn-title{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:18px;font-weight:700;line-height:1.6;color:#000;
  }

  /* ----- 一覧に戻るボタン（CASE詳細と同じ btn-section を流用） -------- */
  .page-column-single .cs-back{margin-top:56px;}

  /* ----- 関連するコラム --------------------------------------------- */
  .page-column-single .cs-related .sec-head .h2::after{
    content:"";display:block;width:1px;height:30px;background:#000;margin:10px auto 0;
  }

  /* ----- タブレット ------------------------------------------------- */
  @media (max-width:900px){
    .page-column-single .cs-article{padding:40px 32px 44px;}
  }

  /* ----- スマホ ----------------------------------------------------- */
  @media (max-width:600px){
    .page-column-single .cs-sec{padding:44px 0;}
    .page-column-single .cs-body{margin-top:60px;padding-top:32px;padding-bottom:70px;}
    .page-column-single .cs-related{padding-top:100px;padding-bottom:70px;}
    .page-column-single .cs-crumb{margin-bottom:16px;gap:6px;}
    .page-column-single .cs-article{padding:26px 18px 32px;}
    .page-column-single .cs-head{margin-bottom:26px;padding-bottom:22px;}
    .page-column-single .cs-meta{gap:12px;margin-bottom:14px;}
    .page-column-single .cs-title{font-size:24px;}
    .page-column-single .cs-thumb{margin-bottom:28px;}
    .page-column-single .cs-content h2{margin:40px 0 20px;padding:12px 14px;font-size:20px;}
    .page-column-single .cs-content h3{margin:34px 0 16px;font-size:20px;padding-left:12px;}
    .page-column-single .cs-content h4,
    .page-column-single .cs-content h5,
    .page-column-single .cs-content h6{font-size:18px;}
    .page-column-single .cs-content blockquote{padding:18px 18px;}
    .page-column-single .cs-tags{margin-top:32px;padding-top:20px;}
    .page-column-single .cs-pn{flex-direction:column;gap:14px;margin-top:32px;}
    .page-column-single .cs-pn-item{flex:1 1 auto;}
    .page-column-single .cs-pn-next{text-align:left;margin-left:0;}
    .page-column-single .cs-back{margin-top:36px;}
  }

  /* ==========================================================================
     gnav 6項目化（PRICING/料金プラン追加 AUN#2 2026-07-28）に伴うヘッダー調整
     ・18px下限ルール維持。ナビ/CTAとも改行させない
     ・2026-07-28夜: 店舗情報(INFORMATION)を削除し5項目に→981-1220pxハンバーガー化は撤去
     ========================================================================== */
  .gnav a{white-space:nowrap;}
  .gnav ul{gap:14px;}
  .header-cta .btn{white-space:nowrap;}
  @media (min-width:1221px) and (max-width:1400px){
    .gnav ul{gap:10px;}
    .header-inner{gap:14px;}
    .header-cta .btn{padding:10px 14px;}
  }

  /* TOP STRENGTHS03 アプリ紹介バナー(homework_kaloko.png)は写真と違い切り抜き禁止。
     共通の aspect-ratio:3/2 + cover を解除して全体を表示する（AUN#3 追随指示 2026-07-28） */
  .strength-img.strength-img-banner img{aspect-ratio:auto;height:auto;object-fit:contain;}

  /* SUCCESS見出しが1行化(「一生物の」削除 AUN#4)で右の装飾葉と重なるため、
     本文を前面に＋PC帯は葉自体を縮小して上へ逃がし重なりを解消（実測: 見出し上端まで74px確保）。
     SP(600px以下)の葉は leaf_sp_control の確定値管理なので触らない 2026-07-28 */
  .sec03 .container{z-index:11;}
  @media (min-width:601px){
    .sec03 .leaf-r{width:500px;top:-140px;}
  }

  /* 料金頁 60DAYS のロードマップ図(AUN#10)は図版のため切り抜き禁止。
     共通の aspect-ratio:3/2 + cover を解除して全体を表示（2026-07-28） */
  .page-pricing #plan-60days .pg-intro-photo img{aspect-ratio:auto;height:auto;object-fit:contain;}
/* ==========================================================
   THANKS（送信完了 / page-thanks.php）AUN 2026-07-30 #7
   .page-contact のヒーロー/共通部を流用し、本文ボックスのみ新規
   ========================================================== */
  .page-thanks .th-body{padding-top:70px;}
  .page-thanks .th-box{max-width:900px;margin:0 auto;text-align:center;}
  .page-thanks .th-head{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-weight:900;font-size:30px;line-height:1.6;color:#111;
    margin:0 0 34px;
  }
  .page-thanks .th-text{font-size:18px;line-height:2;color:#333;margin:0 0 26px;text-align:left;}
  .page-thanks .th-text strong{font-weight:700;color:#111;}
  .page-thanks .th-text-note{color:#666;}
  .page-thanks .th-text a{color:#1a7a3a;text-decoration:underline;word-break:break-all;}
  .page-thanks .th-actions{margin-top:44px;}
  @media (max-width:600px){
    .page-thanks .th-body{padding-top:56px;}
    .page-thanks .th-head{font-size:22px;margin-bottom:24px;}
    .page-thanks .th-text{text-align:left;}
  }
/* ==========================================================
   グロナビ ドロップダウン/アコーディオン化 v2（2026-07-31）
   親ラベル(.gnav-label)は非リンク。PC=ホバー専用 / SP=タップでアコーディオン
   ========================================================== */
  .gnav li.has-sub{position:relative;}
  .gnav .gnav-label{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    white-space:nowrap;
    font-weight:800;
    font-size:18px;
    color:#000;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0;
    transition:color .2s;
    cursor:default;
  }
  .gnav .gnav-label > span{
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:14px;
    color:var(--c-dot);
    font-weight:500;
  }
  .gnav li.has-sub:hover > .gnav-label,
  .gnav li.has-sub.is-open > .gnav-label,
  .gnav li.is-current > .gnav-label{color:var(--c-green-bright);}
  .gnav .sub-menu{
    display:block; /* .gnav ul のflex(横並び)を打ち消し縦リスト化 */
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%) translateY(8px);
    background:#fff;
    border-radius:0 0 12px 12px;
    border-top:3px solid var(--c-green-bright);
    box-shadow:0 14px 34px rgba(17,34,17,.16);
    padding:10px;
    min-width:250px;
    opacity:0;
    visibility:hidden;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index:120;
  }
  .gnav li.has-sub:hover > .sub-menu,
  .gnav li.has-sub.is-open > .sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
  .gnav .sub-menu li{display:block;}
  .gnav .sub-menu li + li{border-top:1px solid #f0f0ec;}
  .gnav .sub-menu a{
    display:flex;
    flex-direction:row; /* .gnav a のcolumnを打ち消し（ダッシュと文字を横並びに） */
    justify-content:flex-start;
    align-items:center;
    gap:12px;
    padding:12px 16px;
    border-radius:8px;
    font-size:18px;
    font-weight:700;
    white-space:nowrap;
    text-align:left;
  }
  .gnav .sub-menu a::before{
    content:"";
    flex:0 0 auto;
    width:14px;height:2px;
    background:var(--c-green-bright);
  }
  .gnav .sub-menu a:hover{color:var(--c-green-bright);background:#f0f6f0;}

  @media (max-width:1400px){
    /* SP/タブレット(〜1400px): ハンバーガー内アコーディオン */
    .gnav ul{gap:0;}
    .gnav li.has-sub,
    .gnav li.gnav-single{position:static;border-bottom:1px solid #ececea;}
    .gnav li:last-child{border-bottom:none;}
    .gnav .gnav-label{
      flex-direction:row;
      align-items:center;
      justify-content:flex-start;
      width:100%;
      gap:10px;
      padding:15px 4px;
      cursor:pointer;
    }
    .gnav li.has-sub > .gnav-label::after{
      content:"";
      width:9px;height:9px;
      border-right:2px solid var(--c-green-bright);
      border-bottom:2px solid var(--c-green-bright);
      transform:rotate(45deg);
      transition:transform .2s;
      flex:0 0 auto;
      margin-left:auto;
      margin-right:6px;
    }
    /* SP: ラベル色は常に黒（開閉・ホバー・is-current=現在頁も含め変化させない） */
    .gnav li.has-sub:hover > .gnav-label,
    .gnav li.has-sub.is-open > .gnav-label,
    .gnav li.is-current > .gnav-label{color:#000;}
    .gnav li.has-sub.is-open > .gnav-label::after{transform:rotate(225deg);}
    .gnav .gnav-label > span{font-size:14px;margin-left:2px;margin-right:auto;}
    .gnav .sub-menu{
      position:static;
      transform:none;
      box-shadow:none;
      border-radius:0;
      border-top:none;
      min-width:0;
      padding:0 0 10px 6px;
      display:none;
      opacity:1;
      visibility:visible;
      transition:none;
      background:transparent;
    }
    .gnav li.has-sub.is-open > .sub-menu{display:block;transform:none;} /* PC用translateX(-50%)を確実に打ち消す(詳細度対策) */
    .gnav .sub-menu li + li{border-top:none;}
    .gnav .sub-menu a{white-space:normal;padding:10px 6px;border-radius:0;}
    .gnav .sub-menu a:hover{background:transparent;}
  }

/* 404簡易ページ（404.php / .th-*流用の追加分） */
  .page-notfound .nf-links{margin-top:34px;}
  .page-notfound .nf-links a{color:#1a7a3a;text-decoration:underline;}

/* ==========================================================
   981-1400px: グロナビ5グループ(nowrap実測656px)+logo183+CTA481=約1400px必要で
   1400px以下は1行に収まらないためハンバーガーに切替（1024px崩れ対応 2026-07-31）
   ========================================================== */
  @media (min-width:981px) and (max-width:1400px){
    .gnav{display:none;position:fixed;top:64px;left:0;right:0;background:#fff;flex-direction:column;padding:20px;box-shadow:var(--shadow-card);max-height:calc(100vh - 64px);overflow:auto;}
    .gnav.is-open{display:flex;}
    .gnav ul{flex-direction:column;gap:0;}
    .header-cta{display:none;}
    .hamburger{display:flex;margin-left:auto;}
    .hamburger span{background:#111;}
  }

/* ==========================================================
   AUN 2026-08-04 対応分
   ========================================================== */
  /* PRICE 単体リンク（gnav-single）: aだがラベル見た目、PCはカーソルポインタ */
  .gnav a.gnav-label{cursor:pointer;}

  /* 新ロゴ: フッターは横長(aspect5.7)のため高さ調整 */
  .footer-logo img{height:52px;width:auto;}

  @media (max-width:600px){
    /* #7 無料カウンセリング/体験レッスン実施中 の2行化（・はSP非表示） */
    .counseling-features .sp-br{display:inline;}
    .pc-inline{display:none;}
    /* #17/#18 pricingおすすめリストの改行 */
    .price-card-rec .sp-br{display:inline;}
    /* 新フッターロゴ: SPは幅基準 */
    .footer-logo img{height:auto;width:min(320px,86vw);}
  }

  @media (max-width:600px){
    /* AUN0804 「実機で右側に余白があるため詰める」×19: リード段落等をSPで両端揃えに。
       balance(行長均等化)はjustifyと相性が悪いのでSPでは解除 */
    .lead.lead-center{text-align:justify;text-wrap:wrap;}
    /* .page-pair側の text-align:left / text-wrap:balance に詳細度で勝つ必要あり */
    .page-pair .pv-lead, .pv-lead,
    .page-pair .pv-lead p, .pv-lead p,
    .page-pair .pv-hero-lead, .pv-hero-lead{text-align:justify;text-wrap:wrap;}
    /* AUN0804 #27: SPでカード上部の空き(min-height:520pxの余り)を詰める */
    .page-pair .pv-hero{min-height:430px;}
  }

  /* SP: 全pのフォントサイズ・行間を統一（クラス詳細度に勝つため!important） */
  @media (max-width:600px){
    p{font-size:15px !important;line-height:1.7 !important;}
  }
