/*
Theme Name: BODY INNOVATION
Theme URI: https://cantik.co.jp/
Author: 株式会社cantik
Author URI: https://cantik.co.jp/
Description: BODY INNOVATION（横浜・関内 パーソナルジム×骨格矯正）公式サイト。cantik サブスクHP事業テーマ。
Version: 1.0.0
License: Proprietary
Text Domain: bodyinv
*/

*{margin:0;padding:0;box-sizing:border-box}
:root{
 --pink:#E58AB0;--pinkd:#B23A5B;--pinkl:#F3B8D0;--pinkpale:#FCEFF6;--pinkbg:#F2E1EA;
 --blue:#3F5F8A;--bluel:#7BBFDC;--bluepale:#EEF7FC;--bluebg:#D6E9F4;
 --ink:#3A3A3C;--body:#5D5B60;--mut:#9C9AA1;--gold:#C9B48C;--grn:#06C755;--star:#F5A623;--line:#ECE7EA;
 --hl:#E4EE59;--badge:#C6E86B;
 --hina:'Hina Mincho',serif;--ship:'Shippori Mincho',serif;--play:'Playfair Display',serif;--jost:'Jost',sans-serif;--zen:'Zen Kaku Gothic New',sans-serif;}
html{scroll-behavior:smooth}
body{width:100%;max-width:1440px;margin:0 auto;overflow-x:hidden;font-family:var(--zen);font-weight:400;color:var(--body);background:#fff;-webkit-font-smoothing:antialiased;line-height:2;letter-spacing:.03em}
img{display:block;max-width:100%}
@keyframes rainbowShift{to{background-position:300% 0}}
html.shot .side-camp{display:none!important}html.shot .reveal{opacity:1!important;transform:none!important}html.shot .fl{opacity:1!important;transform:none!important}html.shot .hero .hin>*{opacity:1!important;animation:none!important}html.shot .bafx .ph img:nth-of-type(2){clip-path:inset(0 0 0 0)!important}html.shot .hero .hbg{animation:none!important}html.shot .camp .c0 .bdg{opacity:1!important;transform:none!important}
@keyframes sideFloat{0%,100%{transform:translateY(-50%)}50%{transform:translateY(-54%)}}
@keyframes sidePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.rainbow-bg{background:linear-gradient(120deg,#E58AB0,#C39BDD,#7BBFDC,#8ED0C4,#E5A0C6,#E58AB0);background-size:300% 100%;animation:rainbowShift 9s linear infinite}
.btn-rainbow{background:linear-gradient(120deg,#E58AB0,#C39BDD,#7BBFDC,#8ED0C4,#E5A0C6,#E58AB0);background-size:300% 100%;color:#fff;animation:rainbowShift 9s linear infinite;box-shadow:0 10px 26px rgba(150,120,180,.32)}
.btn-rainbow:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(150,120,180,.42)}
.btn-rainbow svg,.btn-rainbow{color:#fff}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
.sec{padding:86px 0;position:relative;overflow:hidden}
/* watermark section header */
.sh{position:relative;margin-bottom:60px}
.sh .wm{position:absolute;left:-8px;top:-70px;font-family:var(--play);font-style:italic;font-weight:400;font-size:150px;letter-spacing:.03em;line-height:1;white-space:nowrap;color:var(--pinkbg);z-index:0}
.sh.blue .wm{color:var(--bluebg)}
.sh .in{position:relative;z-index:1}
.sh .lb{font-family:var(--play);font-style:italic;font-size:17px;letter-spacing:.04em;color:var(--pink)}
.sh.blue .lb{color:var(--blue)}
.sh .side{position:absolute;left:-58px;top:34px;writing-mode:vertical-rl;font-family:var(--jost);font-size:10px;letter-spacing:.3em;color:var(--mut)}
.sh h2{font-family:var(--hina);font-weight:400;font-size:46px;letter-spacing:.16em;color:var(--ink);display:inline-block;margin-top:4px}
.sh h2 .rl{display:inline-block;width:230px;height:1px;background:var(--gold);opacity:.5;vertical-align:middle;margin-left:28px}
.sh.center{text-align:center}.sh.center .wm{left:0;right:0;text-align:center}.sh.center h2 .rl{display:none}
.lead{font-family:var(--ship);font-size:15px;line-height:2.4;color:var(--body);text-align:center;max-width:640px;margin:0 auto 56px}
.ba .lead{max-width:none;white-space:nowrap}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--zen);font-weight:500;font-size:14px;letter-spacing:.09em;text-decoration:none;padding:17px 34px;border-radius:44px;transition:transform .32s cubic-bezier(.22,.61,.36,1),box-shadow .32s,background .32s;cursor:pointer;position:relative}
.btn svg{width:17px;height:17px;flex:none}
.btn .ar{font-family:var(--play);transition:transform .32s}.btn:hover .ar{transform:translateX(5px)}
.btn-line{background:linear-gradient(135deg,#12cf63,#05a344);color:#fff;box-shadow:0 10px 26px rgba(6,175,75,.34)}
.btn-line:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(6,175,75,.44)}
.btn-blue{background:linear-gradient(135deg,#86c8e3,#4f9ec4);color:#fff;box-shadow:0 10px 26px rgba(63,95,138,.26)}
.btn-blue:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(63,95,138,.34)}
.btn-pink{background:linear-gradient(135deg,#ea97ba,#cf5f8c);color:#fff;box-shadow:0 10px 26px rgba(178,58,91,.28)}
.btn-pink:hover{transform:translateY(-3px)}
.btn-ghost{background:rgba(255,255,255,.55);color:var(--ink);border:1px solid #d6cfd6;backdrop-filter:blur(6px)}
.btn-ghost:hover{transform:translateY(-3px);border-color:var(--pink);color:var(--pinkd);box-shadow:0 14px 30px rgba(120,90,110,.16)}
.btn-white{background:#fff;color:var(--pinkd);box-shadow:0 10px 26px rgba(255,255,255,.22)}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(255,255,255,.3)}
.btn-lg{padding:20px 46px;font-size:15px}
.btn-line,.btn-blue,.btn-pink,.btn-white,.btn-rainbow{background:linear-gradient(135deg,#F0A0C6,#C79FDD 48%,#A99ED6) !important;background-size:auto !important;color:#fff !important;animation:none !important;box-shadow:0 10px 26px rgba(150,130,190,.3) !important}
.btn-line:hover,.btn-blue:hover,.btn-pink:hover,.btn-white:hover,.btn-rainbow:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(150,130,190,.42) !important}
.btn-line svg,.btn-blue svg,.btn-pink svg,.btn-white svg,.btn-rainbow svg{color:#fff}
.hero .btn-hero{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.92);backdrop-filter:blur(7px)}
.hero .btn-hero:hover{background:rgba(255,255,255,.28);transform:translateY(-3px)}
.cta .btn{background:linear-gradient(135deg,#F0A0C6,#C79FDD 48%,#A99ED6)!important;color:#fff!important;border:0!important;box-shadow:0 10px 26px rgba(150,130,190,.32)!important}
.cta .btn svg{color:#fff}
.cta .btn-ghost:hover{background:rgba(255,255,255,.26);border-color:#fff}
/* offset colored shadow box */
.off{position:relative;display:inline-block}
.off>img,.off>.gray{position:relative;z-index:2;display:block}
.off .gray{background:#C9C9C9}
.off::after{content:"";position:absolute;z-index:1;width:100%;height:100%;left:26px;top:26px;background:var(--pinkbg)}
.off.bl::after{background:var(--bluebg)}
.off.tl::after{left:-26px;top:26px}
/* HEADER (white bar) */
.hd{position:sticky;top:0;left:0;width:100%;z-index:45;display:flex;align-items:center;justify-content:space-between;padding:16px 48px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(80,70,90,.07)}
.hd .logo{display:inline-flex}.hd .logo img{height:34px}
.hd nav{display:flex;gap:30px;align-items:center}
.hd nav a{font-family:var(--jost);font-weight:400;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;opacity:.9}
.hd nav a.cur{opacity:1;color:var(--pink)}
.hd .rsv{font-family:var(--jost);font-size:12px;letter-spacing:.18em;color:#fff;background:linear-gradient(135deg,#F0A0C6,#C79FDD 48%,#A99ED6);background-size:auto;padding:13px 30px;border-radius:40px;text-decoration:none;box-shadow:0 8px 20px rgba(178,100,150,.28);transition:transform .3s,box-shadow .3s}
.hd .rsv:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(178,100,150,.4)}
.hd .hb{display:none;width:34px;height:26px;background:none;border:0;flex-direction:column;justify-content:space-between;cursor:pointer;padding:4px 0;z-index:60}
.hd .hb span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:.35s}
.hd.menu-open .hb span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hd.menu-open .hb span:nth-child(2){opacity:0}
.hd.menu-open .hb span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.hd nav a.nav-ct{display:none}
.hd{transition:background .4s ease,box-shadow .4s ease,padding .32s ease}
.hd nav a{transition:color .25s}.hd nav a:hover{color:var(--pinkl)}
.hd.stuck{box-shadow:0 4px 24px rgba(80,70,90,.12)}
.hd.stuck nav a{color:var(--ink);text-shadow:none}.hd.stuck nav a:hover{color:var(--pink)}.hd.stuck nav a.cur{color:var(--pink)}
/* HERO */
.hero{position:relative;height:800px;overflow:hidden}
.hero .hbgs{position:absolute;inset:0;z-index:0}
.hero .hbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 26%;opacity:0;transition:opacity 1.8s ease;transform:scale(1.05);animation:heroKen 18s ease-in-out infinite alternate}
.hero .hbg.on{opacity:1}
.hero .hbgs img:nth-child(1){object-position:62% 26%}
.hero .hbgs img:nth-child(2){object-position:58% 24%}
.hero .hbgs img:nth-child(3){object-position:40% 28%}
@keyframes heroKen{from{transform:scale(1.02)}to{transform:scale(1.09)}}
.hero .hov{position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(48,46,52,.20),rgba(48,46,52,.42) 48%,rgba(48,46,52,.26))}
.hero .hin{position:absolute;z-index:3;left:0;right:0;top:120px;text-align:center;color:#fff;text-shadow:0 2px 30px rgba(30,28,34,.55)}
.hero .hin>*{opacity:0;animation:heroUp 1s cubic-bezier(.22,.61,.36,1) forwards}
.hero h1{animation:heroSlideX 2.2s cubic-bezier(.16,.72,.24,1) forwards}
.hero .ey{animation-delay:.25s}.hero h1{animation-delay:.5s}.hero .scr{animation-delay:.75s}.hero .vd{animation-delay:.9s}.hero .sub{animation-delay:1.05s}.hero .acts{animation-delay:1.2s}
@keyframes heroUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes heroSlideX{from{opacity:0;transform:translateX(-190px)}to{opacity:1;transform:translateX(0)}}
.hero .ey{font-family:var(--ship);font-size:16px;letter-spacing:.42em;margin-bottom:18px;display:inline-flex;align-items:center;justify-content:center;gap:18px}
.hero .ey::before,.hero .ey::after{content:"";width:30px;height:1px;background:rgba(255,255,255,.7)}
.hero h1{font-family:var(--hina);font-weight:400;font-size:44px;letter-spacing:.1em;line-height:1.85;text-shadow:none;white-space:nowrap}
.hero h1 .hl{display:inline;background:linear-gradient(135deg,#F0A0C6,#C79FDD 48%,#A99ED6);color:#fff;padding:.08em .38em;-webkit-box-decoration-break:clone;box-decoration-break:clone;box-shadow:0 8px 26px rgba(120,100,170,.3)}
.hero .scr{font-family:var(--play);font-style:italic;font-size:20px;letter-spacing:.05em;margin-top:14px;opacity:.96}
.hero .vd{width:1px;height:46px;background:rgba(255,255,255,.8);margin:22px auto}
.hero .sub{font-family:var(--ship);font-size:15px;letter-spacing:.08em;line-height:2.1}
.hero .hcap{font-family:var(--jost);font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.9);margin-top:14px}
.hero .acts{display:flex;gap:18px;justify-content:center;margin-top:54px}
.hero .btn-hero{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.85)}
.hero .hscroll{position:absolute;right:74px;bottom:210px;z-index:3;writing-mode:vertical-rl;font-family:var(--jost);font-size:10px;letter-spacing:.4em;color:#fff;opacity:.9}
/* campaign */
.camp-wrap{position:relative;z-index:6;margin-top:-56px;margin-bottom:6px;padding:0 20px;display:flex;justify-content:center}
.camp{position:relative;width:1140px;max-width:100%;background:#fff;border-radius:8px;box-shadow:0 30px 70px rgba(70,50,80,.22),0 4px 14px rgba(70,50,80,.1);display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;align-items:center}
.camp::before{content:"";position:absolute;inset:8px;border:1px dashed #EBD3DE;border-radius:3px;pointer-events:none}
.camp .c0{padding:38px 32px 34px 44px;position:relative}
.camp .c0 .bdg{position:absolute;top:-24px;left:-16px;width:70px;height:70px;border-radius:50%;background:var(--badge);color:#4c5a1c;font-family:var(--zen);font-weight:700;font-size:11px;line-height:1.35;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 8px 18px rgba(150,170,60,.4);z-index:2;opacity:0;transform:scale(.2) rotate(-25deg);transition:opacity .4s ease,transform .6s cubic-bezier(.34,1.56,.64,1)}
.camp-wrap.in .c0 .bdg{opacity:1;transform:scale(1) rotate(0)}
.camp-wrap.in .c0 .bdg{animation:sidePulse 2.4s ease-in-out .8s infinite}
.camp .c0 .en{font-family:var(--jost);font-size:11px;letter-spacing:.2em;color:var(--pinkl)}
.camp .c0 .jp{font-family:var(--hina);font-size:25px;color:var(--ink);margin-top:12px;letter-spacing:.06em}
.camp .c0 .sm{font-family:var(--jost);font-size:9px;letter-spacing:.16em;color:var(--mut);margin-top:12px}
.camp .cc{padding:30px 18px;text-align:center;border-left:1px solid var(--line)}
.camp .cc .k{font-family:var(--zen);font-size:12.5px;letter-spacing:.06em;color:var(--body)}
.camp .cc .v{font-family:var(--play);font-weight:700;font-size:33px;color:var(--pink);margin:10px 0 6px;line-height:1}
.camp .cc .v s{font-family:var(--play);color:var(--mut);font-size:15px;font-weight:400;margin-right:8px}
.camp .cc .v .hl{background:linear-gradient(transparent 56%,var(--hl) 56%,var(--hl) 92%,transparent 92%);padding:0 5px}
.camp .cc .kk{font-family:var(--jost);font-size:8px;letter-spacing:.14em;color:var(--mut)}
/* CONCEPT */
.cpt{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-top:24px}
.cpt .big{font-family:var(--hina);font-size:35px;letter-spacing:.08em;color:var(--ink);line-height:1.5;white-space:nowrap}
.cpt .big .pk{color:var(--pink)}
.cpt-l{position:relative}
.cpt-l .off>img,.cpt-l .off>.gray{width:390px;height:340px;object-fit:cover}
.cpt-l{text-align:center}.cpt-l .off{display:inline-block}
.cpt-r p{font-family:var(--ship);font-size:15px;line-height:2.45;color:#4b4950}
.cpt-r .div{height:1px;background:var(--line);margin:34px 0}
.cpt-r .accent{font-family:var(--hina);font-size:23px;color:var(--pink);letter-spacing:.05em}
/* BEFORE & AFTER */
.ba{background:var(--pinkpale)}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:1060px;margin:0 auto}
.bafx{background:#fff;box-shadow:0 14px 38px rgba(58,58,60,.09);overflow:hidden}
.bafx .ph{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#EFECE6}
.bafx .ph img{width:100%;height:330px;object-fit:cover;object-position:top}
.bafx .ph img:nth-of-type(2){clip-path:inset(0 0 0 100%);transition:clip-path 1.1s cubic-bezier(.7,0,.3,1) .35s}
.bafx.in .ph img:nth-of-type(2){clip-path:inset(0 0 0 0)}
.bafx .ph .arw{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:3;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#F0A0C6,#C79FDD 50%,#8FB2E4);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(150,120,180,.5);border:2px solid rgba(255,255,255,.85)}
.bafx .ph .tag{position:absolute;bottom:0;font-family:var(--jost);font-weight:700;font-size:13px;letter-spacing:.12em;color:#fff;padding:8px 22px;z-index:2}
.bafx .ph .tag.bf{left:0;background:var(--pinkd)}
.bafx .ph .tag.af{right:0;background:var(--gold)}
.bafx .badges{position:absolute;top:12px;right:12px;z-index:4;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.bafx .badges .age{font-family:var(--zen);font-weight:700;font-size:11px;color:var(--ink);background:rgba(255,255,255,.92);padding:4px 9px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.14)}
.bafx .badges .age span{display:block;font-size:9px;border:1px solid var(--ink);border-radius:4px;margin-top:3px;padding:1px 5px}
.bafx .circ{width:70px;height:70px;border-radius:50%;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(0,0,0,.22)}
.bafx .circ.w{background:var(--pinkd)}.bafx .circ.ws{background:var(--blue)}
.bafx .circ span{font-family:var(--zen);font-weight:700;font-size:9px;border-bottom:1px solid rgba(255,255,255,.55);padding:0 4px 1px;margin-bottom:1px}
.bafx .circ b{font-family:var(--play);font-weight:700;font-size:18px;line-height:1;margin-top:-3px}.bafx .circ b i{font-size:9px;font-style:normal;font-family:var(--zen)}
.bafx .meta{padding:11px 20px;font-family:var(--ship);font-size:12px;color:var(--body);background:var(--pinkpale);border-bottom:1px solid var(--line)}
.bafx .tbl{padding:4px 18px 16px}
.bafx .r{display:grid;grid-template-columns:58px 78px 16px 78px 1fr;align-items:center;gap:6px;padding:11px 2px;border-bottom:1px solid var(--line)}
.bafx .r:last-child{border-bottom:0}
.bafx .r .l{background:#6f6d72;color:#fff;font-size:11px;text-align:center;padding:6px 2px;border-radius:2px;font-family:var(--zen)}
.bafx .r .b{font-family:var(--play);font-weight:500;font-size:17px;color:var(--pinkd);text-align:center}
.bafx .r .arr{color:var(--mut);text-align:center;font-size:12px}
.bafx .r .a{font-family:var(--play);font-weight:500;font-size:17px;color:var(--blue);text-align:center}
.bafx .r .t{font-family:var(--play);font-style:italic;font-weight:700;font-size:18px;color:var(--pinkd);white-space:nowrap;text-align:right;display:flex;align-items:center;gap:6px;justify-content:flex-end}
.bafx .r .t small{font-family:var(--zen);font-style:normal;font-weight:700;font-size:8px;color:#fff;background:var(--pinkd);padding:3px 5px;border-radius:2px}
.ba-note{text-align:center;font-family:var(--jost);font-size:10px;letter-spacing:.06em;color:var(--mut);margin-top:26px}
/* FEATURE */
.ft-item{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:88px;position:relative}
.ft-item:last-child{margin-bottom:30px}
.ft-ph{overflow:visible}
.ft-item.rev{direction:rtl}.ft-item.rev>*{direction:ltr}
.ft-ph{position:relative}
.ft-ph .off>img,.ft-ph .off>.gray{width:410px;height:360px;object-fit:cover}
.ft-ph .no{position:absolute;bottom:-8px;left:-22px;z-index:5;font-family:var(--play);font-style:italic;font-weight:400;font-size:110px;line-height:1.28;padding-bottom:.14em;background:linear-gradient(90deg,#F3B8D0,#7BBFDC,#E58AB0,#B6DEEE,#F3B8D0);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:noGrad 6s linear infinite}
.ft-item.rev .ft-ph .no{left:-22px;right:auto}
@keyframes noGrad{to{background-position:300% 0}}
.ft-tx .sn{font-family:var(--play);font-size:15px;color:var(--gold);letter-spacing:.1em}
.ft-tx .sn i{display:inline-block;width:36px;height:1px;background:var(--gold);vertical-align:middle;margin-left:12px}
.ft-tx .en{font-family:var(--play);font-style:italic;font-size:16px;color:var(--pink);margin:14px 0 6px}
.ft-tx h3{font-family:var(--hina);font-weight:400;font-size:27px;line-height:1.5;color:var(--ink);letter-spacing:.04em;margin-bottom:20px;white-space:nowrap}
.ft-tx p{font-family:var(--ship);font-size:14.5px;line-height:2.3;color:#4b4950;max-width:420px}
/* BAND */
.band{position:relative;height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(120deg,#F3A6CA 0%,#CFA1DF 42%,#AC9FDC 74%,#F0A6CC 100%);background-size:200% 100%;animation:rainbowShift 12s ease-in-out infinite alternate;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(120,30,60,.18),transparent 70%)}
.band h2{position:relative;font-family:var(--hina);font-weight:400;font-size:48px;letter-spacing:.18em;color:#fff;text-shadow:0 3px 26px rgba(90,20,45,.4),0 1px 3px rgba(90,20,45,.3)}
.band .en{position:relative;font-family:var(--play);font-style:italic;font-size:19px;color:#fff;margin-top:20px;letter-spacing:.08em;opacity:.96;text-shadow:0 2px 12px rgba(90,20,45,.35)}
/* TRAINER */
.tr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.tr-c{position:relative;background:#fff;box-shadow:0 16px 40px rgba(58,58,60,.08)}
.tr-c.c-center{transform:scale(1.05) translateX(0);opacity:1;z-index:3;box-shadow:0 26px 54px rgba(58,58,60,.18)}
.tr-c.c-left{transform:scale(.78) translateX(-300px);opacity:.7;z-index:1}
.tr-c.c-right{transform:scale(.78) translateX(300px);opacity:.7;z-index:1}
.tr-c .ph{height:300px}
.tr-c .ph{height:280px;overflow:hidden;background:#C9C9C9}.tr-c .ph img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
.tr-c .bd{padding:22px 4px}
.tr-c .role{font-family:var(--play);font-style:italic;font-size:14px;color:var(--pink)}
.tr-c .nm{font-family:var(--hina);font-size:20px;color:var(--ink);margin:8px 0 2px;letter-spacing:.05em}
.tr-c .nm small{font-family:var(--jost);font-size:12px;color:var(--mut);margin-left:10px}
.tr-c .sp{font-family:var(--jost);font-size:10px;letter-spacing:.1em;color:var(--bluel);margin-bottom:12px}
.tr-c p{font-family:var(--ship);font-size:13px;line-height:2.05;color:var(--body)}
.tr-c.prof .role{font-family:var(--play);font-style:italic;font-size:15px;color:var(--pink)}.tr-c.prof .nm{font-family:var(--hina);font-size:27px;color:var(--ink);margin:8px 0 2px;letter-spacing:.05em}.tr-c.prof .nm small{font-family:var(--jost);font-size:13px;color:var(--mut);margin-left:12px}.tr-c.prof .sp{font-family:var(--jost);font-size:11px;letter-spacing:.1em;color:var(--bluel);margin:6px 0 16px}.tr-c.prof p{font-family:var(--ship);font-size:13.5px;line-height:2.25;color:#4b4950;max-width:none;margin-bottom:14px}.only-sp{display:none}
.tr-c.prof .quals{display:none;background:var(--bluepale);padding:16px 20px;font-family:var(--ship);font-size:12.5px;line-height:1.9;color:var(--ink);margin:4px 0 16px;text-align:left}.tr-c.prof .quals b{display:block;font-family:var(--jost);font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:4px}.tr-c.prof .pmsg2{font-size:13px;line-height:2.1;color:var(--pinkd);border-left:3px solid var(--pinkl);padding-left:14px;margin-top:2px}
.tr-dots{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:40px}
.tr-dots i{width:26px;height:3px;background:var(--bluel);opacity:.4}.tr-dots i.on{opacity:1;background:var(--pink)}
.tr-dots .nx{width:44px;height:44px;border-radius:50%;border:1px solid var(--pinkl);display:flex;align-items:center;justify-content:center;color:var(--pink);font-family:var(--play);margin-left:10px}
/* FLOW (timeline) */
.flow{background:linear-gradient(#fff,var(--pinkpale) 30%,var(--pinkpale) 70%,var(--bluepale))}
.fl-wrap{position:relative;max-width:1000px;margin:0 auto}
.fl-wrap::before{content:"";position:absolute;left:50%;top:20px;bottom:20px;width:1px;background:#E7C9D6;transform:translateX(-50%)}
.fl{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;margin-bottom:18px;opacity:0;transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
.fl.r{transform:translateX(-40px)}.fl.l{transform:translateX(40px)}
.fl.in{opacity:1;transform:none}
.fl .ph{position:relative}.fl .ph .off>img{width:340px;height:200px;object-fit:cover}
.fl .mid{display:flex;justify-content:center}
.fl .num{width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid var(--pinkl);display:flex;align-items:center;justify-content:center;font-family:var(--play);font-size:21px;color:var(--pink);z-index:2}
.fl .tx{padding:0 6px}
.fl .st{font-family:var(--play);font-size:13px;letter-spacing:.14em;color:var(--gold)}
.fl .tx h4{font-family:var(--hina);font-weight:400;font-size:21px;color:var(--ink);margin:8px 0 10px;letter-spacing:.05em}
.fl .tx p{font-family:var(--ship);font-size:13px;line-height:2;color:var(--body)}
.fl .mid{grid-column:2}
.fl.r .ph{grid-column:1;justify-self:end}.fl.r .tx{grid-column:3;text-align:left;justify-self:start}
.fl.l .tx{grid-column:1;text-align:right;justify-self:end}.fl.l .ph{grid-column:3;justify-self:start}
.fl .tx{max-width:420px}

/* COURSE */
.brsp{display:none}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.co-c .ph{position:relative;margin-bottom:28px;text-align:center}
.co-c .ph .off{display:inline-block;width:88%}
.co-c .ph .off::after{left:0;top:18px;width:100%;height:100%;background:var(--pinkbg);opacity:.7}
.co-c.b .ph .off::after{background:var(--bluebg)}
.co-c .ph .off>img,.co-c .ph .off>.gray{width:100%;height:240px;object-fit:cover}
.co-c .bd{text-align:center}
.co-c .en{font-family:var(--play);font-style:italic;font-size:14px;color:var(--pink)}
.co-c h3{font-family:var(--hina);font-weight:400;font-size:21px;color:var(--ink);margin:8px 0 12px;letter-spacing:.04em}
.co-c p{font-family:var(--ship);font-size:13px;line-height:2.05;color:var(--body)}
.co-c .mn{font-family:var(--jost);font-size:13px;letter-spacing:.12em;color:var(--bluel);margin-top:14px}
/* PRICE */
.pr{background:var(--bluepale)}
.pr-grp{max-width:1020px;margin:0 auto 20px}
.pr-tab{text-align:center;margin-bottom:26px}
.pr-tab .t{font-family:var(--zen);font-size:12px;color:var(--body);margin-bottom:10px}
.pr-tab .pill{position:relative;display:inline-block;font-family:var(--zen);font-size:15px;color:#fff;padding:11px 40px;border-radius:6px}
.pr-grp.bl .pr-tab .pill{background:var(--bluel)}.pr-grp.pk .pr-tab .pill{background:var(--pink)}
.pr-tab .pill::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border:8px solid transparent;border-top-color:inherit}
.pr-grp.bl .pr-tab .pill::after{border-top-color:var(--bluel)}.pr-grp.pk .pr-tab .pill::after{border-top-color:var(--pink)}
.pr-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pr-c{background:#fff;padding:34px 20px;text-align:center;box-shadow:0 10px 30px rgba(58,58,60,.04)}
.pr-c .m{font-family:var(--hina);font-size:17px;color:var(--ink);letter-spacing:.06em}
.pr-c .cnt{font-family:var(--jost);font-size:11px;color:var(--mut);margin-top:6px}
.pr-c .amt{font-family:var(--play);font-weight:500;font-size:28px;color:var(--pink);margin:16px 0 6px}
.pr-c .amt small{font-family:var(--zen);font-size:11px;color:var(--mut)}
.pr-c .exp{font-family:var(--jost);font-size:10px;letter-spacing:.06em;color:var(--mut)}
.pr-strip{max-width:1020px;margin:40px auto 0;text-align:center;font-family:var(--ship);font-size:15px;color:var(--ink);letter-spacing:.04em}
.pr-strip b{font-family:var(--play);font-size:22px;color:var(--pinkd);margin:0 6px}
.pr .camp-wrap{margin-top:20px!important}
.pr-note{max-width:1020px;margin:16px auto 0;border:1px solid var(--pinkl);padding:22px 30px;text-align:center;font-family:var(--ship);font-size:14px;line-height:2.1;color:var(--pinkd)}
/* REVIEWS */
.rv .gg{text-align:center;margin-bottom:44px}
.rv .gg .nm{font-family:var(--hina);font-size:16px;color:var(--ink)}
.rv .gg .ad{font-family:var(--ship);font-size:11px;color:var(--mut);margin-top:6px}
.rv .gg .rt{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px}
.rv .gg .rt .g b{font-family:var(--play);font-weight:700;font-size:18px}
.rv .gg .rt .g b:nth-child(1){color:#4285F4}.rv .gg .rt .g b:nth-child(2){color:#EA4335}.rv .gg .rt .g b:nth-child(3){color:#FBBC05}.rv .gg .rt .g b:nth-child(4){color:#4285F4}.rv .gg .rt .g b:nth-child(5){color:#34A853}.rv .gg .rt .g b:nth-child(6){color:#EA4335}
.rv .gg .rt .sc{font-family:var(--play);font-weight:500;font-size:32px;color:var(--ink)}
.rv .gg .rt .st{color:var(--star);font-size:16px;letter-spacing:2px}
.rv .gg .rt .cnt{font-family:var(--zen);font-size:11px;color:var(--body)}
.rv .gg .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;justify-content:center}
.rv .gg .chip{font-family:var(--zen);font-size:11px;color:var(--body);background:#F4F0F2;border-radius:20px;padding:6px 13px}
.rv .gg .sortrow{display:flex;gap:18px;margin-top:12px;justify-content:center;font-family:var(--zen);font-size:11px}
.rv .gg .sortrow span{color:var(--mut)}.rv .gg .sortrow .on{color:var(--pink);font-weight:700}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:960px;margin:0 auto}
.rv-c{background:#fff;padding:24px 26px;box-shadow:0 8px 24px rgba(58,58,60,.04);position:relative}
.rv-c .top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rv-c .av{width:34px;height:34px;border-radius:50%;background:var(--pinkl);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--hina);font-size:15px}
.rv-c .who{font-family:var(--zen);font-size:14px;color:var(--ink)}.rv-c .cnt{font-family:var(--jost);font-size:9px;color:var(--mut)}
.rv-c .gb{display:none}
.rv-c .st{color:var(--star);font-size:13px;letter-spacing:1px;margin-bottom:8px}
.rv-c .st small{color:var(--mut);font-family:var(--jost);font-size:9px;margin-left:8px;letter-spacing:.05em}
.rv-c p{font-family:var(--ship);font-size:13.5px;line-height:2.05;color:var(--body)}
.rv-c .rep{background:var(--pinkpale);padding:14px 16px;margin-top:12px;font-size:12.5px;line-height:1.95;color:var(--pinkd);font-family:var(--ship)}
.rv-c .rep b{font-family:var(--play);font-style:italic;font-size:11px;display:block;margin-bottom:6px}
.rvnote{max-width:960px;margin:22px auto 0;font-family:var(--jost);font-size:11px;color:var(--mut);text-align:center}
/* Q&A */
.qa-list{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.qa-item{border:1px solid var(--line);background:#fff;padding:22px 28px}
.qa-q{display:flex;align-items:center;gap:16px}
.qa-q .q{font-family:var(--play);font-size:20px;color:var(--pink)}
.qa-q h4{flex:1;font-family:var(--hina);font-weight:400;font-size:16px;color:var(--ink);letter-spacing:.04em}
.qa-q .pl{font-family:var(--hina);font-size:20px;color:var(--pinkl)}
.qa-q{cursor:pointer;user-select:none}
.qa-q .pl{transition:transform .35s}.qa-item.open .qa-q .pl{transform:rotate(45deg)}
.qa-a{display:flex;gap:16px;max-height:0;overflow:hidden;opacity:0;transition:max-height .45s ease,opacity .35s ease,margin .35s ease}
.qa-item.open .qa-a{max-height:320px;opacity:1;margin-top:16px}
.qa-a-open{display:flex;gap:16px;margin-top:16px}
.qa-a .a{font-family:var(--play);font-size:20px;color:var(--bluel)}
.qa-a p{flex:1;font-family:var(--ship);font-size:13.5px;line-height:2.15;color:var(--body)}
/* ACCESS */
.ac{background:var(--bluepale)}
.ac-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.ac dl{border-top:1px solid var(--line)}
.ac dt{font-family:var(--jost);font-size:10px;letter-spacing:.12em;color:var(--pink);padding-top:18px}
.ac dd{font-family:var(--ship);font-size:14px;line-height:1.8;color:var(--ink);padding:4px 0 18px;border-bottom:1px solid var(--line)}
.ac-map{position:relative}
.ac-map .off{display:block;width:100%}
.ac-map .off::after{width:calc(100% - 4px);height:calc(100% - 4px)}
.ac-map iframe{width:100%;height:420px;border:0;display:block;position:relative;z-index:2}
/* BLOG */
.bl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.bl-c{display:block;text-decoration:none}
.bl-c .ph{overflow:hidden;margin-bottom:16px;background:#C9C9C9}.bl-c .ph img{width:100%;height:230px;object-fit:cover;transition:.5s}
.bl-c:hover .ph img{transform:scale(1.05)}
.bl-c .meta{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.bl-c .cat{font-family:var(--jost);font-size:10px;letter-spacing:.06em;color:#fff;background:var(--pink);padding:4px 12px;border-radius:20px}
.bl-c .dt{font-family:var(--jost);font-size:11px;color:var(--mut)}
.bl-c h3{font-family:var(--hina);font-weight:400;font-size:18px;line-height:1.7;color:var(--ink);margin-bottom:10px}
.bl-c p{font-family:var(--ship);font-size:13px;line-height:2;color:var(--body)}
.bl-more{text-align:center;margin-top:52px}
.bl-more a{display:inline-block;font-family:var(--zen);font-size:13px;letter-spacing:.08em;color:var(--pink);text-decoration:none;border:1px solid var(--pinkl);border-radius:40px;padding:16px 54px}
/* CTA */
.cta{position:relative;padding:120px 0;text-align:center;background:linear-gradient(120deg,#FCEFF6,#F2ECFA 50%,#EAF6FC);overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(229,138,176,.14),rgba(123,191,220,.12));pointer-events:none}
.cta .em{position:relative;font-family:var(--play);font-size:22px;color:var(--pink);opacity:.9}
.cta .scr{position:relative;font-family:var(--play);font-style:italic;font-size:20px;color:var(--pink);margin-top:10px}
.cta h2{position:relative;font-family:var(--hina);font-weight:400;font-size:36px;color:var(--ink);letter-spacing:.12em;margin:14px 0 16px}
.cta p{position:relative;font-family:var(--ship);font-size:14px;color:var(--body);line-height:2}
.cta .acts{position:relative;display:flex;gap:18px;justify-content:center;margin-top:34px}
.cta .btn-ghost{color:#fff;border-color:rgba(255,255,255,.85)}
/* FOOTER */
.ft2{padding:80px 0 30px;background:#fff}
.ft2-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:40px}
.ft2 .logo img{height:38px;margin-bottom:18px}
.ft2 .ad{font-family:var(--ship);font-size:12px;line-height:2;color:var(--mut)}
.ft2-nav{display:flex;gap:60px}
.ft2-nav h5{font-family:var(--play);font-style:italic;font-size:13px;color:var(--pink);margin-bottom:14px}
.ft2-nav a{display:block;font-family:var(--ship);font-size:12.5px;color:var(--body);text-decoration:none;padding:5px 0}
.ft2-brand{max-width:420px}.ft2 .logo img{height:40px;margin-bottom:18px}
.ft2-nav{display:flex;gap:56px}
.ft2-bot{display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--jost);font-size:10px;letter-spacing:.14em;color:var(--mut);padding-top:24px;border-top:1px solid var(--line)}
.ft2-bot .cantik{color:var(--body);text-decoration:none;letter-spacing:.1em}.ft2-bot .cantik b{color:var(--pinkd);font-family:var(--play);font-weight:700;letter-spacing:.02em}
/* sticky bar */
.bar{position:fixed;left:0;bottom:0;width:100%;max-width:1440px;left:50%;transform:translateX(-50%);z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);box-shadow:0 -6px 24px rgba(58,58,60,.06);padding:12px 40px;display:flex;align-items:center;justify-content:space-between}
.bar .lb{font-family:var(--hina);font-size:14px;color:var(--ink)}.bar .lb span{display:block;font-family:var(--jost);font-size:9px;letter-spacing:.1em;color:var(--mut)}
.bar .bb{display:flex;gap:10px}.bar .btn{padding:13px 26px;font-size:13px}
/* side sticky campaign */
.side-camp{position:fixed;right:16px;top:50%;transform:translateY(-50%);z-index:55;animation:sideFloat 4s ease-in-out infinite;width:164px;background:#fff;border-radius:11px;box-shadow:0 14px 36px rgba(70,50,80,.24);padding:20px 14px 16px;text-align:center}
.side-camp::before{content:"";position:absolute;inset:7px;border:1px dashed #EBD3DE;border-radius:7px;pointer-events:none}
.side-camp .sb{position:absolute;top:-14px;left:-12px;width:48px;height:48px;font-size:9px !important;animation:sidePulse 2.6s ease-in-out infinite;border-radius:50%;background:var(--badge);color:#4c5a1c;font-family:var(--zen);font-weight:700;font-size:10px;line-height:1.3;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 6px 14px rgba(150,170,60,.4)}
.side-camp .sc-x{position:absolute;top:6px;right:8px;z-index:3;width:22px;height:22px;border:0;background:transparent;color:var(--mut);font-size:18px;line-height:1;cursor:pointer;font-family:var(--zen)}
.side-camp .sc-x:hover{color:var(--pinkd)}
.side-camp .en{font-family:var(--jost);font-size:9px;letter-spacing:.16em;color:var(--pinkl)}
.side-camp .h{font-family:var(--hina);font-size:13px;color:var(--ink);letter-spacing:.04em;margin:6px 0 14px;position:relative}
.side-camp .r{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding:9px 2px;position:relative}
.side-camp .r span{font-family:var(--zen);font-size:11px;color:var(--body)}
.side-camp .r b{font-family:var(--play);font-weight:700;font-size:15px;color:var(--pinkd)}
.side-camp .r b s{font-family:var(--play);font-size:11px;color:var(--mut);font-weight:400;margin-right:3px}
.side-camp .r b .hl{background:linear-gradient(transparent 56%,var(--hl) 56%,var(--hl) 92%,transparent 92%);padding:0 3px}
.side-camp .btn{margin-top:14px;width:100%;padding:10px 0;font-size:11px;position:relative}
@media (max-width:1180px){.side-camp{display:none}}
@media (max-width:1024px){
 .sec{padding:52px 0}
 .hero{min-height:440px;height:auto}
 .hero .hin{padding:100px 18px 40px}
 .camp-wrap{margin-top:16px!important;padding:0 12px}
 .hero h1{font-size:26px;line-height:1.7;white-space:normal}.hero .hin>*{animation-duration:.7s}
 .hero .ey{font-size:11px;letter-spacing:.16em;gap:8px}.hero .ey::before,.hero .ey::after{width:16px}
 .hero .vd{height:30px;margin:14px auto}.hero .sub{font-size:13px}
 .hero .acts{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:6px;margin-top:20px;padding:0 10px}.hero .acts .btn{flex:1 1 0;min-width:0;padding:11px 4px;font-size:10px;letter-spacing:0;gap:4px}.hero .acts .btn svg{width:13px;height:13px}
 .cpt-l .off>img{height:auto}.ft-ph .off>img{height:auto}
 .ft-ph .no,.ft-item.rev .ft-ph .no{font-size:70px;bottom:-14px;line-height:1.28;padding-bottom:.14em}
 .ba .lead{white-space:normal}.ft-tx h3{white-space:normal;font-size:22px}.cpt .big{white-space:normal;font-size:26px}
 .band{height:230px}.band h2{font-size:26px}
 .rv .gg .nm{font-size:12px;white-space:nowrap}
 .ac dd{font-size:12.5px}
 .side-camp{display:none}
 /* trainer 横スライド */
 .tr-grid{position:static;min-height:0;display:flex;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:14px;padding:4px 20px 14px;justify-content:flex-start;max-width:none}
 .tr-c{position:relative;width:80%!important;flex:0 0 80%;transform:none!important;opacity:1!important;scroll-snap-align:center;box-shadow:0 10px 28px rgba(58,58,60,.1)}
 .tr-dots{display:none}
}
@media (max-width:600px){
 .sec{padding:44px 0}.wrap{padding:0 16px}
 .hero h1{font-size:26px}
 .sh .wm{font-size:44px;top:-22px}.sh h2{font-size:26px}.sh h2 .rl{display:none}
 .cpt{gap:22px}.cpt .big{font-size:23px}
 .band{height:200px}.band h2{font-size:22px}.band .en{font-size:14px}
 .ft-item{margin-bottom:50px;gap:18px}
}
/* ===== responsive / SP ===== */
@media (max-width:1024px){
 .wrap{padding:0 24px}.sec{padding:82px 0}
 .hd{padding:12px 18px}.hd .logo img{height:28px}.hd .rsv{display:none}.hd .hb{display:flex}
 .hd nav{position:fixed;top:0;right:0;height:100vh;width:74%;max-width:320px;background:rgba(255,255,255,.99);backdrop-filter:blur(10px);box-shadow:-8px 0 40px rgba(60,50,70,.16);flex-direction:column;justify-content:center;gap:6px;padding:40px 30px;transform:translateX(100%);transition:transform .4s cubic-bezier(.22,.61,.36,1);z-index:50}
 .hd.menu-open nav{transform:translateX(0)}
 .hd nav a{font-family:var(--zen);font-size:16px;letter-spacing:.08em;color:var(--ink);padding:16px 4px;border-bottom:1px solid var(--line);text-transform:none}
 .hd nav a.nav-ct{display:block;margin-top:18px;background:linear-gradient(135deg,#F0A0C6,#A99ED6);color:#fff;text-align:center;border:0;border-radius:40px;padding:15px}
 .menu-ov{position:fixed;inset:0;background:rgba(40,35,50,.4);opacity:0;visibility:hidden;transition:.4s;z-index:44}.hd.menu-open~.menu-ov,body.menu-open .menu-ov{opacity:1;visibility:visible}
 .hero{height:auto;min-height:560px}
 .hero .hin{position:relative;top:0;left:0;right:0;padding:150px 20px 40px}
 .hero h1{font-size:38px}.hero .hbg{object-position:72% 30%}
 .hero .hscroll{display:none}
 .camp{position:relative;left:0;bottom:auto;transform:none;width:calc(100% - 32px);margin:22px auto 0;grid-template-columns:1fr 1fr 1fr}
 .camp .c0{grid-column:1/-1;padding:34px 14px 14px;text-align:center}.camp .c0 .bdg{left:6px;transform:none;top:-18px;width:54px;height:54px;font-size:9px}.camp .c0 .jp{font-size:18px}
 .camp .cc{border-left:1px solid var(--line);border-top:1px solid var(--line);padding:16px 6px}.camp .cc .k{font-size:10px}.camp .cc .v{font-size:22px;margin:6px 0 4px}.camp .cc .kk{display:none}
 .sh .wm{font-size:84px;top:-40px}.sh h2{font-size:34px}.sh h2 .rl{width:80px}
 .ba .lead{white-space:normal}.ft-tx h3{white-space:normal;font-size:26px}.cpt .big{white-space:normal;font-size:28px}.fl{min-height:0}
 .cpt{grid-template-columns:1fr;gap:30px}.cpt-l .off>img,.cpt-l .off>.gray{width:100%;height:auto}.cpt .big{font-size:30px}
 .ba-grid{grid-template-columns:1fr;gap:26px;max-width:560px}
 .ft-item,.ft-item.rev{grid-template-columns:1fr;gap:22px;direction:ltr;margin-bottom:64px}
 .ft-ph .off>img,.ft-ph .off>.gray{width:100%;height:auto}
 .ft-ph .no,.ft-item.rev .ft-ph .no{font-size:88px;bottom:-20px;left:8px;right:auto;line-height:1.28;padding-bottom:.14em}
 .band{height:280px}.band h2{font-size:30px}
 .tr-grid{position:static;min-height:0;flex-direction:column;gap:26px;max-width:360px;margin:0 auto}.tr-c{position:relative;width:100%!important;transform:none!important;opacity:1!important}
 .fl-wrap::before{left:26px}
 .fl{grid-template-columns:50px 1fr;gap:14px;padding:12px 0}
 .fl .mid{grid-column:2}
.fl.r .ph{grid-column:1;justify-self:end}.fl.r .tx{grid-column:3;text-align:left;justify-self:start}
.fl.l .tx{grid-column:1;text-align:right;justify-self:end}.fl.l .ph{grid-column:3;justify-self:start}
.fl .tx{max-width:420px}
 .fl .ph{grid-column:2}.fl .tx{grid-column:2}
 .fl .ph .off>img{width:100%;height:auto}
 .co-grid{grid-template-columns:1fr;gap:34px;max-width:460px;margin:0 auto}
 .pr-row{grid-template-columns:1fr;gap:16px;max-width:420px;margin:0 auto}
 .rv-grid{grid-template-columns:1fr;max-width:560px}
 .qa-list{max-width:100%}
 .ac-grid{grid-template-columns:1fr;gap:30px}
 .bl-grid{grid-template-columns:1fr;gap:26px;max-width:520px}
 .cta{padding:90px 0}.cta h2{font-size:28px}
 .ft2-top{flex-direction:column;gap:30px}.ft2-nav{gap:40px}
 .bar{padding:10px 14px}.bar .lb{font-size:12px}.bar .btn{padding:11px 15px;font-size:11px}
}
@media (max-width:600px){
 .hero h1{font-size:27px;letter-spacing:.06em}.hero .ey{font-size:12px;letter-spacing:.18em}
 .hero .sub{font-size:13px}
 .camp .cc .v{font-size:19px}.camp .cc .k{font-size:9px}
 .sh .wm{font-size:52px;top:-26px}.sh h2{font-size:22px}
 .lead{font-size:13.5px}
 .bafx .ph img{height:270px}
 .bafx .badges .age{font-size:11px}.bafx .circ{width:70px;height:70px}.bafx .circ b{font-size:19px}.bafx .circ span{font-size:10px}
 .bafx .r{grid-template-columns:50px 1fr 12px 1fr auto;gap:4px;padding:9px 0}
 .bafx .r .b,.bafx .r .a{font-size:13px}.bafx .r .t{font-size:14px}.bafx .r .l{font-size:10px}
 .band h2{font-size:22px;letter-spacing:.06em}.band .en{font-size:15px}
 .cta h2{font-size:22px}.cta .acts{flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:6px;padding:0 8px}.cta .acts .btn{flex:1 1 0;min-width:0;padding:12px 4px;font-size:10px;letter-spacing:0;gap:4px}.cta .acts .btn svg{width:13px;height:13px}
 .pr-c .amt{font-size:24px}
 .hd .rsv{display:none}.hd .logo img{height:26px}
 .bar{padding:8px 10px}.bar .lb{display:none}.bar .bb{width:100%;gap:7px}.bar .bb .btn{flex:1;padding:12px 4px;font-size:11px;letter-spacing:0}
}

@media (max-width:1024px){
 .co-grid,.rv-grid{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:14px;max-width:none!important;margin:0 -16px!important;padding:4px 16px 16px}
 .co-grid .co-c,.rv-grid .rv-c{flex:0 0 82%!important;width:82%!important;scroll-snap-align:center}
 .tr-grid{display:block!important;grid-template-columns:none!important;max-width:480px;margin:0 auto;overflow:visible}
 .tr-c.prof{display:block;background:#fff;box-shadow:0 12px 30px rgba(58,58,60,.1)}
 .tr-c.prof .ph{height:auto}.tr-c.prof .ph img{width:100%;height:300px;object-fit:cover;object-position:center 20%}
 .tr-c.prof .bd{padding:26px 22px;text-align:left}
 .hero h1{white-space:nowrap!important;font-size:clamp(16px,5.2vw,21px)!important;letter-spacing:.01em!important;line-height:1.6!important}
 .hero .acts .btn{white-space:nowrap!important;font-size:9px!important;padding:9px 3px!important;line-height:1.15!important}
 .hero .acts .btn svg{width:12px!important;height:12px!important}
}
@media (min-width:1025px){
 .rv-grid{display:block!important;grid-template-columns:none!important;width:100vw!important;max-width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;overflow:hidden;padding:14px 0}
 .mq-row{display:flex;flex-wrap:nowrap;width:max-content;align-items:flex-start;gap:30px;will-change:transform;padding:6px 15px}
 .rv-grid .rv-c{width:430px;flex:0 0 430px}
 .co-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:50px;margin:0!important;width:auto!important;max-width:none!important;overflow:visible}
 .tr-grid{display:block!important;grid-template-columns:none!important;max-width:960px;margin:0 auto;overflow:visible}
 .tr-c.prof{display:grid;grid-template-columns:.82fr 1.18fr;background:#fff;box-shadow:0 22px 54px rgba(58,58,60,.1);overflow:hidden}
 .tr-c.prof .ph{height:auto;overflow:hidden}.tr-c.prof .ph img{width:100%;height:100%;object-fit:cover;min-height:470px;object-position:center 20%}
 .tr-c.prof .bd{padding:46px 50px;text-align:left}
 .tr-dots{display:none}
}
/* ==== 最終調整（後勝ち・PC） ==== */
@media(min-width:1025px){
 /* 体験の流れ：画像・文章・数字の横位置を完全統一（同幅340px） */
 .fl .ph .off>img{width:340px!important;height:212px!important}
 .fl .tx{width:340px!important;max-width:340px!important}
 .fl.r .ph{justify-self:end!important}.fl.l .ph{justify-self:start!important}
 .fl.r .tx{justify-self:start!important;text-align:left!important}
 .fl.l .tx{justify-self:end!important;text-align:left!important}
 /* 2,4,6 が別行に落ちるのを防ぐ（画像・数字・文章を同一行に固定） */
 .fl .ph,.fl .mid,.fl .tx{grid-row:1!important}
}
/* セクション背景の英語ウォーターマークを薄く */
.sh .wm{opacity:.34}
.sh.blue .wm{opacity:.34}
@media(min-width:1025px){
 .fl{align-items:center!important}
 /* コンセプト：左の画像を右のテキストに合わせて縦に伸ばす */
 .cpt{align-items:stretch!important}
 .cpt-l{display:flex}
 .cpt-l .off{display:flex!important;width:100%}
 .cpt-l .off>img,.cpt-l .off>.gray{width:100%!important;height:100%!important;min-height:340px;object-fit:cover}
}

.bar{display:none}
html.shot .bar{display:none!important}
/* ===== 本文の文字を大きく・太く（body-i.com 16px より やや大きめ） ===== */
.lead{font-size:20px;font-weight:600;line-height:2.2}
.cpt-r p{font-size:20px;font-weight:600}
.ft-tx p{font-size:19.5px;font-weight:600}
.fl .tx p{font-size:18px;font-weight:600}
.co-c p{font-size:18px;font-weight:600}
.rv-c p{font-size:18.5px;font-weight:600}
.rv-c .rep{font-size:17px;font-weight:600}
.qa-a p{font-size:18.5px;font-weight:600}
.qa-q h4{font-size:20.5px}
.ac dd{font-size:19px;font-weight:600}
.cta p{font-size:19px;font-weight:600}
.pr-note{font-size:19px;font-weight:600}
.pr-strip{font-size:20px;font-weight:600}
.bl-c p,.bpost p{font-size:18px;font-weight:600}
.ft2 .ad{font-size:16.5px;font-weight:600}
.tr-c p,.tr-c.prof p{font-size:18px;font-weight:600}
.tr-c.prof .quals{font-size:17px;font-weight:600}
.tr-c.prof .pmsg2{font-size:18px;font-weight:600}
.camp .cc .k{font-size:17px;font-weight:600}
.ctype .bd .t{font-size:18px;font-weight:600}
.support-grid .s{font-size:18.5px;font-weight:600}
.bafx .meta{font-size:17px;font-weight:600}
.disc,.rvnote{font-size:15.5px}

/* ==================== SP ONLY / ここから下はSP専用（PC不可侵） ==================== */
@media (max-width:1024px){
 /* FVボタンを過ぎたら下部に追従ボタン（3つ） */
 .bar{display:flex;align-items:center;justify-content:center;left:0;transform:translateY(115%);max-width:none;width:100%;transition:transform .45s cubic-bezier(.22,.61,.36,1);box-shadow:0 -6px 24px rgba(70,50,80,.14);padding:9px 10px;padding-bottom:calc(9px + env(safe-area-inset-bottom))}
 .bar.on{transform:translateY(0)}
 .bar .lb{display:none}
 .bar .bb{display:flex;width:100%;gap:7px}
 .bar .bb .btn{flex:1 1 0;min-width:0;padding:12px 4px;font-size:10.5px;letter-spacing:0;gap:4px;white-space:nowrap}
 .bar .bb .btn svg{width:13px;height:13px}
 /* 特徴の画像を3・4の大きさに統一 */
 .ft-ph .off>img,.ft-ph .off>.gray{width:100%!important;height:252px!important;object-fit:cover}
 /* ① 体験の流れ：左に数字／右にテキスト＋画像を縦積み */
 .fl-wrap::before{left:22px!important}
 .fl,.fl.r,.fl.l{display:grid!important;grid-template-columns:46px 1fr!important;gap:0 14px!important;align-items:start!important;margin-bottom:26px!important;padding:0!important}
 .fl .mid,.fl.r .mid,.fl.l .mid{grid-column:1!important;grid-row:1!important;justify-content:flex-start!important;display:flex!important}
 .fl .num{width:44px!important;height:44px!important;font-size:18px!important}
 .fl .tx,.fl.r .tx,.fl.l .tx{grid-column:2!important;grid-row:1!important;text-align:left!important;justify-self:stretch!important;width:auto!important;max-width:none!important;padding:0!important}
 .fl .ph,.fl.r .ph,.fl.l .ph{grid-column:2!important;grid-row:2!important;justify-self:stretch!important;margin-top:12px!important}
 .fl .ph .off{display:block!important;width:100%}
 .fl .ph .off>img{width:100%!important;height:200px!important;object-fit:cover}
 /* ② コースのご紹介：スライドの操作性を改善 */
 .co-grid{scroll-snap-type:x proximity!important;scroll-padding-left:16px;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
 .co-grid .co-c{flex:0 0 86%!important;width:86%!important;scroll-snap-align:start!important}
 .co-grid::-webkit-scrollbar{height:0}
 /* ③ ご料金：60分・90分の3枚を横スライドに */
 .pr-row{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:12px!important;max-width:none!important;margin:0 -16px!important;padding:4px 16px 14px!important;overscroll-behavior-x:contain}
 .pr-row .pr-c{flex:0 0 74%!important;width:74%!important;scroll-snap-align:start}
 .pr-row::-webkit-scrollbar{height:0}
 /* ④ 口コミ：画面いっぱいに途切れず流れる */
 .rv-grid{display:block!important;position:relative;overflow-x:clip!important;overflow-y:visible;width:auto!important;max-width:100%!important;margin:0 -16px!important;padding:4px 0 8px!important;scroll-snap-type:none!important;contain:paint}
 .rv-grid .rv-row{display:flex!important;flex-wrap:nowrap!important;width:max-content!important;max-width:none!important;gap:12px;padding:0 16px;will-change:transform}
 .rv-grid .rv-row .rv-c{flex:0 0 76vw!important;width:76vw!important}
 .rv-grid .rv-c{flex:0 0 76%!important;width:76%!important;min-width:0}
 /* 流れ：SPでは横スライド演出をやめて縦フェードに（左右ブレ防止） */
 .fl.r,.fl.l{transform:translateY(18px)!important}
 .fl.in{transform:none!important}
 /* SPの横はみ出しを根絶（オーバーレイ・マーキーが幅を押し広げるのを防止） */
 html,body{overflow-x:clip!important;overflow-y:visible;max-width:100%!important}
 .menu-ov{width:100%!important;max-width:100vw!important;right:0!important;left:0!important}
 .sh .wm,.shero .wm{max-width:100vw;overflow:hidden}
 .rv-grid{contain:layout paint!important}
 /* CTAの上下余白を詰める */
 .cta{padding:38px 0 40px!important}
 .cta .em{margin-bottom:6px!important}
 .cta .scr{margin-bottom:4px!important}
 .cta h2{margin:6px 0 12px!important;font-size:23px!important}
 .cta p{margin-bottom:16px!important;font-size:17px!important;line-height:2!important}
 .cta .acts{margin-top:0!important}
 /* ===== 追加SP調整 ===== */
 /* FV写真がゆっくり寄る */
 .hero .hbg{transform-origin:center center}
 .hero .hbg.on{animation:kenburns 16s ease-out forwards!important}
 /* ビフォーアフターのバッジを小さく */
 .bafx .badges{gap:6px!important}
 .bafx .badges .age{font-size:9px!important;padding:5px 8px!important;line-height:1.3!important}
 .bafx .badges .age span{font-size:8px!important}
 .bafx .circ{width:50px!important;height:50px!important}
 .bafx .circ b{font-size:13px!important}.bafx .circ b i{font-size:8px!important}.bafx .circ span{font-size:7.5px!important}
 /* 特徴：画像サイズを全番号で統一（中央トリミング）／2・4は右寄せ */
 /* 画像は全番号で完全に同サイズ */
 .ft-ph{position:relative!important;display:block!important;width:100%!important;overflow:visible!important}
 .ft-ph .off{display:block!important;width:100%!important;max-width:none!important;margin:0!important}
 .ft-ph .off>img,.ft-ph .off>.gray{display:block!important;width:100%!important;height:236px!important;object-fit:cover!important;object-position:center center!important}
 /* 番号の後ろに白い下地（03と同じ見え方に統一） */
 .ft-ph .no::before{display:none!important;content:none!important}
 .ft-item.rev .ft-ph .no{left:auto!important;right:8px!important}
 /* バンドの上下余白を圧縮 */
  /* トレーナー紹介をコースページと同じ形に（SP） */
 .only-pc{display:none!important}
 .only-sp{display:inline!important}
 .tr-c.prof .quals{display:block!important}
 .tr-c.prof .bd{padding:22px 16px 24px!important;text-align:left!important}
 .tr-c.prof .quals{padding:12px 12px!important;font-size:11px!important;line-height:1.75!important;margin:4px 0 12px!important}
 .tr-c.prof p{font-size:11.5px!important;line-height:1.95!important;margin-bottom:12px!important}
 .tr-c.prof .pmsg2{font-size:11.5px!important;line-height:1.95!important}
 .tr-c.prof .nm{font-size:21px!important}
 .tr-c.prof .ph img{height:300px!important;object-fit:cover;object-position:center 20%}
 /* コンセプト写真を小さく */
 .cpt-l{text-align:center!important}
 .cpt-l .off{display:inline-block!important;width:80%!important}
 .cpt-l .off>img,.cpt-l .off>.gray{width:100%!important;height:236px!important;object-fit:cover!important;object-position:center center!important}
 /* トレーナー引用の左縦線を削除 */
 .tr-c.prof .pmsg2{border-left:0!important;padding-left:0!important}
 /* コース紹介：SPで改行を有効化・画像と文字を小さく */
 .brsp{display:inline!important}
 .co-c .ph{margin-bottom:18px!important}
 .co-c .ph .off{width:76%!important}
 .co-c .ph .off>img,.co-c .ph .off>.gray{width:100%!important;height:186px!important;object-fit:cover!important}
 .co-c h3{font-size:15px!important;line-height:1.65!important;margin:6px 0 10px!important;letter-spacing:.02em!important}
 .co-c .en{font-size:12px!important}
 .co-c p{font-size:11.5px!important;line-height:1.9!important}
 .co-c .mn{font-size:11px!important;margin-top:10px!important}
 /* コース紹介の縦を圧縮 */
 .co-grid{padding-bottom:8px!important}
 .co-c .ph{margin-bottom:14px!important}
 .co-c .ph .off>img,.co-c .ph .off>.gray{height:168px!important}
 .co-c h3{font-size:14.5px!important;margin:5px 0 8px!important}
 .co-c p{font-size:16px!important;line-height:2!important;white-space:normal!important;letter-spacing:0!important}
 .co-c .mn{margin-top:8px!important}
 .sec.co{padding:40px 0 34px!important}
 /* ビフォーアフター：リード2行・メタ1行 */
 .ba .lead{white-space:normal!important;font-size:17px!important;line-height:2!important;letter-spacing:0!important}
 .bafx .meta{font-size:12px!important;white-space:normal!important;padding:10px 10px!important;letter-spacing:0!important;overflow:visible!important;text-align:center!important;line-height:1.7!important}
 /* 特徴：番号つきテキストが先、その下に画像 */
 .ft-item,.ft-item.rev{display:flex!important;flex-direction:column!important;gap:14px!important;direction:ltr!important;margin-bottom:46px!important}
 .ft-item .ft-tx{order:1!important}
 .ft-item .ft-ph{order:2!important;overflow:visible!important;padding-bottom:0!important;margin-bottom:52px!important}
 /* 番号は大きめで画像の右下 */
 .ft-ph .no,.ft-item.rev .ft-ph .no{position:absolute!important;left:auto!important;right:6px!important;bottom:-30px!important;top:auto!important;z-index:6!important;font-size:76px!important;line-height:1.1!important;padding:0 0 .12em!important;margin:0!important;text-align:right!important;overflow:visible!important}
 .ft-item.rev .ft-ph .no{text-align:right!important}
 /* FVの文字を大きく */
 .hero h1{font-size:clamp(21px,6.6vw,28px)!important;letter-spacing:.02em!important;line-height:1.6!important}
 .hero .ey{font-size:13.5px!important;letter-spacing:.12em!important}
 .hero .scr{font-size:16.5px!important}
 .hero .sub{font-size:15.5px!important;line-height:2!important}
 .hero .acts .btn{font-size:12.5px!important;padding:13px 5px!important}
 .hero .acts .btn svg{width:15px!important;height:15px!important}
 /* SP本文を参考サイト(15〜16px)より大きく */
 .lead{font-size:18px!important}
 .cpt-r p{font-size:18px!important}
 .ft-tx p{font-size:17px!important}
 .fl .tx p{font-size:16.5px!important}
 .rv-c p{font-size:16.5px!important}
 .qa-a p{font-size:16.5px!important}
 .ac dd{font-size:16.5px!important}
 .pr-note{font-size:16px!important}
 .bl-c p{font-size:16px!important}
 .tr-c p,.tr-c.prof p{font-size:16px!important}
 .tr-c.prof .pmsg2{font-size:16px!important}
 .ctype .bd .t{font-size:16px!important}
 .ft-tx h3{font-size:20px!important}
 .fl .tx h4{font-size:18px!important}
 .co-c h3{font-size:16.5px!important}
 .qa-q h4{font-size:16.5px!important}
 /* FV：SPは1枚ずつ人物が中央に来る位置で表示 */
 .hero .hbg,.hero .hbg:nth-of-type(2),.hero .hbg:nth-of-type(3){object-position:50% 30%!important}
 .band{height:158px!important}
 .band h2{font-size:19px!important}
 .band .en{font-size:12px!important;margin-top:12px!important}
 /* スライドできることが分かる目印 */
 .slide-hint{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 10px;font-family:var(--jost);font-size:10px;letter-spacing:.1em;color:var(--pink)}
 .slide-hint i{display:block;width:22px;height:1px;background:linear-gradient(90deg,transparent,var(--pinkl))}
 .slide-hint i.r{background:linear-gradient(90deg,var(--pinkl),transparent)}
 .slide-hint span{animation:hintSwipe 1.8s ease-in-out infinite}
}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.14)}}
@keyframes hintSwipe{0%,100%{transform:translateX(-3px);opacity:.75}50%{transform:translateX(3px);opacity:1}}
/* ==================== SP ONLY / ここまで ==================== */
/* ===== animations ===== */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.22s}.reveal.d3{transition-delay:.34s}
.sh .wm.mq{display:flex;left:calc(-50vw + 50%);right:auto;width:100vw;overflow:hidden}
.sh .wm.mq .mqt{flex:none;white-space:nowrap;padding-right:.5em;animation:mq 34s linear infinite}
.sh.blue .wm.mq .mqt{animation-duration:40s}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.btn{transition:transform .25s ease,box-shadow .25s ease,filter .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(120,90,110,.2)}
.ba-c,.co-c,.bl-c,.tr-c{transition:transform .4s ease,box-shadow .4s ease}
.ba-c:hover,.co-c:hover,.bl-c:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(58,58,60,.1)}
.ba-imgs img,.bl-c .ph img,.ft-ph img,.co-c .ph img{transition:transform .6s ease}
.bl-c:hover .ph img,.co-c:hover .ph img{transform:scale(1.05)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.hero .hbg{animation:none}.sh .wm.mq .mqt{animation:none}}


/* ===== 下層ページ用 ===== */

.hd.light{background:rgba(255,255,255,.97)}
.hd.light .logo .nm{color:var(--ink)} .hd.light nav a{color:var(--ink)} .hd.light nav a.cur{color:var(--pink)}
.shero{position:relative;padding:90px 0 74px;background:linear-gradient(135deg,var(--pinkpale) 0%,#fff 46%,var(--bluepale) 100%);text-align:center;overflow:hidden;border-bottom:1px solid var(--line)}
.shero .shbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.16;z-index:0}
.shero .shov{position:absolute;inset:0;background:linear-gradient(135deg,rgba(252,239,246,.82),rgba(255,255,255,.72) 46%,rgba(238,247,252,.82));z-index:0}
.ft2-brand{max-width:420px}.ft2 .logo img{height:40px;margin-bottom:18px}
.camp-wrap{margin-top:56px!important;margin-bottom:10px}
.shero .wm{position:absolute;left:0;right:0;top:76px;font-family:var(--play);font-style:italic;font-weight:400;font-size:150px;line-height:1;white-space:nowrap;color:#fff;opacity:.72}
.shero .in{position:relative;z-index:2}
.shero .lb{font-family:var(--play);font-style:italic;font-size:16px;color:var(--pink);letter-spacing:.06em}
.shero h1{font-family:var(--hina);font-weight:400;font-size:40px;letter-spacing:.16em;color:var(--ink);margin-top:6px}
.shero .bc{margin-top:16px;font-family:var(--jost);font-size:11px;letter-spacing:.14em;color:var(--mut)}
.shero .bc a{color:var(--mut);text-decoration:none}
.subsec{padding:96px 0}
.subsec.pk{background:var(--pinkpale)} .subsec.bl{background:var(--bluepale)}
/* before/after (実数値) */
.baf-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:1000px;margin:0 auto}
.baf{background:#fff;box-shadow:0 10px 30px rgba(58,58,60,.06)}
.baf .imgs{position:relative;display:grid;grid-template-columns:1fr 1fr}
.baf .imgs img{width:100%;height:340px;object-fit:cover}
.baf .imgs .bl,.baf .imgs .al{position:absolute;top:14px;font-family:var(--jost);font-size:10px;letter-spacing:.16em;color:#fff;background:rgba(58,58,60,.55);padding:4px 12px}
.baf .imgs .bl{left:14px} .baf .imgs .al{right:14px;background:var(--pink)}
.baf .bd{padding:26px 30px 30px}
.baf .who{font-family:var(--hina);font-size:21px;color:var(--ink);letter-spacing:.06em}
.baf .per{font-family:var(--jost);font-size:11px;letter-spacing:.1em;color:var(--blue);margin-top:6px}
.baf .sr{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line);font-family:var(--ship);font-size:13px;color:var(--body)}
.baf .sr:first-of-type{margin-top:16px;border-top:1px solid var(--line)}
.baf .sr b{font-family:var(--play);font-weight:500;font-size:17px;color:var(--pinkd);letter-spacing:.02em}
.baf .sr .wl{font-family:var(--jost);font-size:10px;letter-spacing:.1em;color:var(--mut)}
.disc{max-width:1000px;margin:28px auto 0;text-align:center;font-family:var(--jost);font-size:11px;color:var(--mut)}
/* company */
.cominfo{max-width:840px;margin:0 auto}
.cominfo dl{display:grid;grid-template-columns:210px 1fr;border-top:1px solid var(--line)}
.cominfo dt{font-family:var(--jost);font-size:12px;letter-spacing:.12em;color:var(--blue);padding:24px 8px;border-bottom:1px solid var(--line)}
.cominfo dd{font-family:var(--ship);font-size:15px;color:var(--ink);padding:24px 8px;border-bottom:1px solid var(--line);line-height:1.9}
.greet{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:0;background:#fff;box-shadow:0 14px 40px rgba(58,58,60,.06)}
.greet .ph img{width:100%;height:100%;object-fit:cover;min-height:420px}
.greet .tx{padding:52px 54px}
.greet .en{font-family:var(--play);font-style:italic;font-size:15px;color:var(--pink)}
.greet h3{font-family:var(--hina);font-size:25px;color:var(--ink);margin:6px 0 22px;letter-spacing:.08em;line-height:1.5}
.greet p{font-family:var(--ship);font-size:14px;line-height:2.25;color:#4b4950;margin-bottom:15px}
.greet{position:relative}.greet::before{content:'Message';position:absolute;top:-14px;left:40px;background:linear-gradient(120deg,#E58AB0,#C39BDD,#7BBFDC);color:#fff;font-family:var(--play);font-style:italic;font-size:13px;letter-spacing:.1em;padding:6px 20px;border-radius:20px;z-index:3}
.greet .en{display:none}
.greet h3{font-size:27px;margin-top:10px}
.greet .sign{text-align:right;font-family:var(--hina);font-size:16px;color:var(--ink);margin-top:24px;letter-spacing:.08em;padding-top:18px;border-top:1px solid var(--line)}
.profile{max-width:960px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:0;background:#fff;box-shadow:0 16px 44px rgba(58,58,60,.08)}
.profile .ph img{width:100%;height:100%;object-fit:cover;min-height:460px}
.profile .tx{padding:52px 54px}
.profile .en{font-family:var(--play);font-style:italic;font-size:15px;color:var(--pink)}
.profile h3{font-family:var(--hina);font-size:28px;color:var(--ink);margin:6px 0 4px;letter-spacing:.06em}.profile h3 small{font-family:var(--jost);font-size:13px;color:var(--mut);margin-left:10px}
.profile .role{font-family:var(--zen);font-size:12px;letter-spacing:.06em;color:var(--blue);margin-bottom:18px}
.profile p{font-family:var(--ship);font-size:13.5px;line-height:2.3;color:#4b4950;margin-bottom:16px}
.profile .quals{background:var(--bluepale);padding:16px 20px;font-family:var(--ship);font-size:12.5px;line-height:1.9;color:var(--ink);margin-bottom:16px}.profile .quals b{display:block;font-family:var(--jost);font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:4px}
.profile .pmsg{font-family:var(--ship);font-size:13px;line-height:2.2;color:var(--pinkd);border-left:3px solid var(--pink);padding-left:16px}
@media(max-width:1024px){.profile{grid-template-columns:1fr}.profile .ph img{min-height:300px}.profile .tx{padding:34px 24px}}
/* contact channels */
.ctch{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1000px;margin:0 auto}
.ctch .c{background:#fff;border:1px solid var(--line);padding:46px 30px 40px;text-align:center}
.ctch .c .en{font-family:var(--play);font-style:italic;font-size:14px;color:var(--pink)}
.ctch .c h3{font-family:var(--hina);font-size:20px;color:var(--ink);margin:6px 0 14px;letter-spacing:.06em}
.ctch .c p{font-family:var(--ship);font-size:13px;line-height:2;color:var(--body);min-height:56px}
.ctch .c .big{font-family:var(--play);font-weight:500;font-size:27px;color:var(--pinkd);margin:8px 0 4px}
.ctch .c .btn{margin-top:16px}
/* blog */
.bintro{max-width:820px;margin:0 auto 56px;text-align:center;font-family:var(--ship);font-size:14px;line-height:2.2;color:var(--body)}
.bintro b{font-family:var(--hina);font-size:19px;color:var(--ink);display:block;margin-bottom:10px;letter-spacing:.06em}
.blist{display:grid;grid-template-columns:1fr 1fr;gap:36px 44px;max-width:1000px;margin:0 auto}
.bpost{display:block;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:26px}
.bpost .ph{overflow:hidden;margin-bottom:16px} .bpost .ph img{width:100%;height:230px;object-fit:cover;transition:.5s}
.bpost:hover .ph img{transform:scale(1.05)}
.bpost .meta{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.bpost .cat{font-family:var(--jost);font-size:10px;letter-spacing:.1em;color:#fff;background:var(--pink);padding:4px 12px;border-radius:20px}
.bpost .dt{font-family:var(--jost);font-size:11px;color:var(--mut)}
.bpost h3{font-family:var(--hina);font-size:19px;line-height:1.7;color:var(--ink);margin-bottom:10px}
.bpost p{font-family:var(--ship);font-size:13px;line-height:2;color:var(--body)}

.ctype-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1060px;margin:44px auto 0}
.ctype{background:#fff;box-shadow:0 12px 32px rgba(58,58,60,.07)}
.ctype .ph{height:200px;overflow:hidden}.ctype .ph img{width:100%;height:100%;object-fit:cover;transition:.5s}.ctype:hover .ph img{transform:scale(1.05)}
.ctype .bd{padding:24px 22px 26px;text-align:center}
.ctype .bd .t{font-family:var(--ship);font-size:13px;line-height:1.95;color:var(--body);min-height:76px}
.ctype .bd .m{font-family:var(--hina);font-size:16px;color:var(--pinkd);margin-top:10px;letter-spacing:.03em;border-top:1px solid var(--line);padding-top:14px}
.support-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;max-width:940px;margin:44px auto 0}
.support-grid .s{background:#fff;border:1px solid var(--pinkl);border-radius:40px;padding:12px 26px;font-family:var(--ship);font-size:14px;color:var(--ink)}
.support-grid .s b{color:var(--grn);font-family:var(--zen);margin-right:8px;font-weight:700}
@media(max-width:1024px){.ctype-grid{grid-template-columns:1fr;max-width:440px}}
.shero .wm.mq{left:0;right:auto;width:100%;overflow:hidden;display:flex}
.shero .wm.mq .mqt{flex:none;white-space:nowrap;padding-right:.6em;animation:mq 30s linear infinite}
.baf-grid{grid-template-columns:1fr 1fr;max-width:1060px}
/* article page */
.art{max-width:820px;margin:0 auto}
.art .head{margin-bottom:34px;border-bottom:1px solid var(--line);padding-bottom:22px}
.art .head .meta{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.art .head .cat{font-family:var(--jost);font-size:10px;letter-spacing:.06em;color:#fff;background:var(--pink);padding:4px 12px;border-radius:20px}
.art .head .dt{font-family:var(--jost);font-size:11px;color:var(--mut)}
.art .head h1{font-family:var(--hina);font-weight:400;font-size:30px;line-height:1.55;color:var(--ink);letter-spacing:.04em}
.art .lead2{font-family:var(--ship);font-size:15px;line-height:2.4;color:#4b4950;margin:0 0 30px}
.art h2{font-family:var(--hina);font-weight:400;font-size:22px;color:var(--ink);border-left:4px solid var(--pink);padding-left:16px;margin:44px 0 18px;letter-spacing:.04em}
.art p{font-family:var(--ship);font-size:14.5px;line-height:2.5;color:#4b4950;margin-bottom:20px}
.art ul{list-style:none;margin:0 0 24px;padding:0}
.art ul li{font-family:var(--ship);font-size:14px;line-height:2.2;color:#4b4950;padding-left:22px;position:relative}
.art ul li::before{content:"—";position:absolute;left:0;color:var(--pink)}
.art .note{background:var(--pinkpale);border-left:3px solid var(--pink);padding:22px 26px;margin:28px 0;font-family:var(--ship);font-size:14px;line-height:2.2;color:var(--pinkd)}
.art .sign{text-align:right;font-family:var(--hina);font-size:15px;color:var(--ink);margin-top:30px}
.artimg{margin:30px 0}.artimg img{width:100%;border-radius:6px;box-shadow:0 12px 30px rgba(58,58,60,.1)}
.artimg figcaption{font-family:var(--jost);font-size:11px;letter-spacing:.04em;color:var(--mut);text-align:center;margin-top:10px}
.artfaq{margin:8px 0 4px}
.artfaq .af{border:1px solid var(--line);border-radius:8px;padding:20px 24px;margin-bottom:12px}
.artfaq .afq{display:flex;gap:12px;font-family:var(--hina);font-size:16px;color:var(--ink)}.artfaq .afq b{font-family:var(--play);color:var(--pink);font-size:18px}
.artfaq .afa{display:flex;gap:12px;margin-top:12px}.artfaq .afa b{font-family:var(--play);color:var(--bluel);font-size:18px}.artfaq .afa{font-family:var(--ship);font-size:13.5px;line-height:2.1;color:var(--body)}
.artrel{max-width:1000px;margin:70px auto 0}
.artrel .ttl{text-align:center;font-family:var(--play);font-style:italic;font-size:18px;color:var(--pink);margin-bottom:28px}
.artrel-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}
@media (max-width:1024px){
 .shero{padding:132px 0 56px}.shero h1{font-size:32px}.shero .wm{font-size:90px}
 .baf-grid{grid-template-columns:1fr;max-width:560px}
 .cominfo dl{grid-template-columns:1fr}.cominfo dt{padding:18px 8px 2px;border-bottom:0}.cominfo dd{padding:2px 8px 18px}
 .greet{grid-template-columns:1fr}.greet .ph img{min-height:280px}
 .ctch{grid-template-columns:1fr;max-width:420px}
 .blist{grid-template-columns:1fr;max-width:520px}.artrel-grid{grid-template-columns:1fr}
 .subsec{padding:70px 0}
}
@media (max-width:600px){
 .shero{padding:104px 0 44px}.shero h1{font-size:25px}.shero .wm{font-size:58px}
 .greet .tx{padding:30px 22px}.art .head h1{font-size:24px}
}
html.shot .side-camp{display:none!important}html.shot .reveal{opacity:1!important;transform:none!important}html.shot .fl{opacity:1!important;transform:none!important}html.shot .hero .hin>*{opacity:1!important;animation:none!important}html.shot .bafx .ph img:nth-of-type(2){clip-path:inset(0 0 0 0)!important}html.shot .hero .hbg{animation:none!important}html.shot .camp .c0 .bdg{opacity:1!important;transform:none!important}
@media (max-width:1024px){
 .shero{padding:86px 0 40px}.subsec{padding:52px 0}
 .co-grid{display:flex!important;grid-template-columns:none!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:14px;margin:0 -16px;padding:4px 16px 14px}
 .co-grid .co-c{flex:0 0 82%;scroll-snap-align:center}
 .cta .acts{flex-direction:row!important;flex-wrap:nowrap;justify-content:center;gap:6px;padding:0 8px}
 .cta .acts .btn{flex:1 1 0;min-width:0;padding:12px 4px;font-size:10px;letter-spacing:0;gap:4px}.cta .acts .btn svg{width:13px;height:13px}
 .baf-grid{margin-bottom:0}.disc{margin-top:18px}
}
@media (max-width:600px){
 .shero{padding:76px 0 34px}.subsec{padding:42px 0}
}
.campsec{background:#fff;padding:0 0 56px;margin-top:-1px}
.campsec.pk{background:var(--pinkpale);padding:0 0 60px}
.trialsec{padding:62px 0 30px!important;margin-bottom:-1px;background:var(--pinkpale)}
.trialsec h2{margin-top:0!important}
.campsec.bl{background:var(--bluepale)}
.cp-lead{white-space:nowrap;max-width:none;font-size:15px}
@media(max-width:1200px){.cp-lead{white-space:normal;font-size:14px}}
/* 流れ：画像と文章の横位置を完全に揃える（同幅・中央線基準） */
.subsec .fl{grid-template-columns:1fr 90px 1fr;align-items:center}
.subsec .fl .ph .off>img{width:340px;height:212px}
.subsec .fl .tx{max-width:340px;width:340px}
.subsec .fl.r .tx{justify-self:start;text-align:left}
.subsec .fl.l .tx{justify-self:end;text-align:left}
.subsec .fl.r .ph{justify-self:end}.subsec .fl.l .ph{justify-self:start}
/* トレーナー写真の縦長を解消 */
.trainer-sec .profile{grid-template-columns:.78fr 1.22fr;align-items:start}
.trainer-sec .profile .ph{height:430px}
.trainer-sec .profile .ph img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center 18%}
.trainer-sec .profile .tx{padding:40px 46px 44px}
@media(max-width:1024px){.subsec .fl .tx{width:auto;max-width:none}.subsec .fl .ph .off>img{width:100%;height:auto}.trainer-sec .profile{grid-template-columns:1fr}.trainer-sec .profile .ph{height:300px}}
.support-sec{padding:56px 0 52px!important}
.support-sec .sh{margin-bottom:0}
.support-grid{margin-top:30px!important}
.flow-sec{padding:56px 0 60px!important}
.trainer-sec{padding:60px 0 64px!important}
.greet.nophoto{grid-template-columns:1fr;max-width:820px}
.greet.nophoto .tx{padding:52px 56px}
.tmsg{max-width:960px;margin:34px auto 0;background:#fff;box-shadow:0 16px 44px rgba(58,58,60,.08);padding:44px 52px;position:relative}
.tmsg-lb{position:absolute;top:-14px;left:40px;background:linear-gradient(120deg,#E58AB0,#C39BDD,#7BBFDC);color:#fff;font-family:var(--play);font-style:italic;font-size:13px;letter-spacing:.1em;padding:6px 20px;border-radius:20px}
.tmsg p{font-family:var(--ship);font-size:14px;line-height:2.3;color:#4b4950;margin-bottom:16px}
.tmsg-sign{text-align:right;font-family:var(--hina);font-size:15px;color:var(--ink);margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:1024px){.tmsg{padding:30px 24px;margin-top:26px}.greet.nophoto .tx{padding:30px 22px}}
.campsec .camp-wrap{margin:0!important;padding:0!important}
.campsec .camp{width:100%;max-width:1020px;grid-template-columns:1.7fr 1fr 1fr 1fr}
.campsec .camp .c0 .jp{white-space:nowrap}
.campsec .camp .c0{padding:32px 20px 30px 40px}
.subsec .fl-wrap .fl{margin-bottom:30px}.subsec .fl-wrap .fl:last-child{margin-bottom:0}
.subsec .fl .ph .off>img{width:320px;height:210px}
.bintro b{white-space:nowrap}
.brsp{display:none}
@media(max-width:640px){.bintro b{white-space:normal;font-size:16px}.subsec .fl .ph .off>img{width:100%;height:auto}}
/* ==== 最終調整（後勝ち） ==== */
/* 流れ：画像・文章・数字の横位置を完全統一（同幅340px） */
.subsec .fl .ph .off>img{width:340px!important;height:212px!important}
.subsec .fl .tx{width:340px!important;max-width:340px!important}
.subsec .fl.r .ph{justify-self:end}.subsec .fl.l .ph{justify-self:start}
.subsec .fl.r .tx{justify-self:start}.subsec .fl.l .tx{justify-self:end}
@media(min-width:1025px){.subsec .fl .ph,.subsec .fl .mid,.subsec .fl .tx{grid-row:1!important}.subsec .fl{align-items:center!important}}
/* トレーナー：写真を文章の中央に */
.trainer-sec .profile{align-items:center!important}
/* 引用の左縦線を削除 */
.trainer-sec .profile .pmsg{border-left:0!important;padding-left:0!important}
@media(max-width:1024px){.subsec .fl .ph .off>img{width:100%!important;height:auto!important}.subsec .fl .tx{width:auto!important;max-width:none!important}}
/* 下層ヒーロー／セクションの背景英語を薄く */
.shero .wm{opacity:.34!important}
.subsec .sh .wm{opacity:.30!important}

/* ===== 下層：本文の文字を大きく・太く ===== */
.subsec .lead{font-size:20px;font-weight:600;line-height:2.2}
.cominfo dd{font-size:20px;font-weight:600}
.greet p{font-size:19.5px;font-weight:600}
.profile p{font-size:18.5px;font-weight:600}
.profile .quals{font-size:17px;font-weight:600}
.profile .pmsg{font-size:18px;font-weight:600}
.tmsg p{font-size:19px;font-weight:600}
.ctch .c p{font-size:18px;font-weight:600}
.bintro{font-size:19px;font-weight:600}
.bpost p{font-size:18px;font-weight:600}
.art .lead2{font-size:20.5px;font-weight:600}
.art p{font-size:20px;font-weight:600}
.art ul li{font-size:19px;font-weight:600}
.art .note{font-size:19px;font-weight:600}
.artfaq .afa{font-size:18.5px;font-weight:600}
.baf .sr{font-size:18px;font-weight:600}

/* ==================== SP ONLY / ここから下はSP専用（PC不可侵） ==================== */
@media (max-width:1024px){
 /* ① ビフォーアフター：年齢・体重・ウエストのバッジを小さく（写真を見やすく） */
 .bafx .badges{gap:6px!important}
 .bafx .badges .age{font-size:9px!important;padding:5px 8px!important;line-height:1.3!important}
 .bafx .badges .age span{font-size:8px!important}
 .bafx .circ{width:50px!important;height:50px!important}
 .bafx .circ b{font-size:13px!important}
 .bafx .circ b i{font-size:8px!important}
 .bafx .circ span{font-size:7.5px!important}
 /* ② 冒頭リードを1行に */
 .subsec .lead{font-size:17px!important;line-height:2!important;white-space:normal!important;overflow:visible;letter-spacing:0!important}
 /* ③ 事例のメタ情報（身長／目的／コース）を1行に */
  .bafx .meta{font-size:13px!important;white-space:normal!important;overflow:visible!important;letter-spacing:0!important;line-height:1.7!important;text-align:center!important}
 /* ④ CTAの上下余白を詰める */
 .cta{padding:38px 0 40px!important}
 .cta .em{margin-bottom:6px!important}
 .cta .scr{margin-bottom:4px!important}
 .cta h2{margin:6px 0 12px!important;font-size:23px!important}
 .cta p{margin-bottom:16px!important;font-size:17px!important;line-height:2!important}
 .cta .acts{margin-top:0!important}
 html,body{overflow-x:clip!important;overflow-y:visible;max-width:100%!important}
 /* ===== コース料金ページ SP ===== */
 /* ① イントロを1行ずつに */
 .subsec .lead.cp-lead{white-space:normal!important;font-size:17px!important;line-height:2!important;letter-spacing:0!important;max-width:none!important;padding:0 2px;overflow:visible!important}
 /* ② コースタイプ3枚を横スライド */
 .ctype-grid{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding-left:16px;gap:12px!important;max-width:none!important;width:auto!important;margin:30px -16px 0!important;padding:4px 16px 14px!important;overscroll-behavior-x:contain}
 .ctype-grid .ctype{flex:0 0 78%!important;width:78%!important;scroll-snap-align:start}
 .ctype-grid::-webkit-scrollbar{height:0}
 .ctype .ph{height:150px!important}
 .ctype .bd{padding:16px 14px 18px!important}
 .ctype .bd .t{font-size:16px!important;line-height:1.95!important;min-height:82px!important}
 .ctype .bd .m{font-size:13px!important;padding-top:10px!important}
 /* ③ コースのご紹介：スライドを確実に動くように */
 .co-grid{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity!important;scroll-padding-left:16px;gap:12px!important;max-width:none!important;width:auto!important;margin:0 -16px!important;padding:4px 16px 14px!important;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
 .co-grid .co-c{flex:0 0 84%!important;width:84%!important;scroll-snap-align:start!important}
 .co-grid::-webkit-scrollbar{height:0}
 /* ④ ご料金：3枚を横スライド */
 .pr-row{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:12px!important;max-width:none!important;width:auto!important;margin:0 -16px!important;padding:4px 16px 14px!important;overscroll-behavior-x:contain}
 .pr-row .pr-c{flex:0 0 72%!important;width:72%!important;scroll-snap-align:start}
 .pr-row::-webkit-scrollbar{height:0}
 /* ⑤ サポート内容：各項目を1行で収める */
 .support-grid{gap:7px!important;margin-top:24px!important;padding:0 4px}
 .support-grid .s{font-size:10px!important;padding:7px 12px!important;white-space:nowrap!important;letter-spacing:0!important;line-height:1.5!important}
 .support-grid .s b{margin-right:5px!important}
 /* ⑥ トレーニングの流れ：左に数字／右にテキスト＋画像を縦積み */
 .subsec .fl-wrap::before{left:22px!important}
 .subsec .fl,.subsec .fl.r,.subsec .fl.l{display:grid!important;grid-template-columns:46px 1fr!important;gap:0 14px!important;align-items:start!important;margin-bottom:26px!important;padding:0!important;transform:translateY(18px)!important}
 .subsec .fl.in{transform:none!important}
 .subsec .fl .mid{grid-column:1!important;grid-row:1!important;display:flex!important;justify-content:flex-start!important}
 .subsec .fl .num{width:44px!important;height:44px!important;font-size:18px!important}
 .subsec .fl .tx,.subsec .fl.r .tx,.subsec .fl.l .tx{grid-column:2!important;grid-row:1!important;text-align:left!important;justify-self:stretch!important;width:auto!important;max-width:none!important;padding:0!important}
 .subsec .fl .ph,.subsec .fl.r .ph,.subsec .fl.l .ph{grid-column:2!important;grid-row:2!important;justify-self:stretch!important;margin-top:12px!important}
 .subsec .fl .ph .off{display:block!important;width:100%}
 .subsec .fl .ph .off>img{width:100%!important;height:200px!important;object-fit:cover}
 /* ⑦ トレーナー紹介：文字を小さく・枠ギリギリまで */
 .trainer-sec .profile .tx{padding:20px 14px 22px!important}
 .trainer-sec .profile h3{font-size:21px!important}
 .trainer-sec .profile h3 small{font-size:11px!important;margin-left:6px!important}
 .trainer-sec .profile .role{font-size:10.5px!important;margin-bottom:12px!important}
 .trainer-sec .profile p{font-size:16px!important;line-height:2!important;margin-bottom:14px!important}
 .trainer-sec .profile .quals{font-size:15px!important;line-height:1.9!important;padding:13px 13px!important;margin-bottom:13px!important}
 .trainer-sec .profile .pmsg{font-size:16px!important;line-height:2!important}
 .tmsg{padding:38px 14px 24px!important;margin-top:36px!important}
 .tmsg-lb{top:-13px!important}
 /* ブログ記事の小見出しを1行に（全記事共通） */
 /* ブログ小見出し：読みやすく目立たせる（長いものだけ2行） */
 .art h2{white-space:normal!important;font-size:19px!important;letter-spacing:.01em!important;padding-left:13px!important;border-left-width:4px!important;margin:34px 0 15px!important;line-height:1.55!important;color:var(--ink)!important;overflow:visible!important;font-weight:700!important;font-family:var(--zen),var(--hina),sans-serif!important;border-bottom:2px solid var(--pinkl)!important;padding-bottom:9px!important;position:relative!important}
 /* 下線の左側だけ濃くしてアクセントに */
 .art h2::after{content:""!important;position:absolute!important;left:-4px!important;bottom:-2px!important;width:76px!important;height:2px!important;background:linear-gradient(90deg,#E58AB0,#C39BDD)!important;display:block!important}
 .tmsg p{font-size:16.5px!important;line-height:2!important;margin-bottom:14px!important}
 .tmsg-sign{font-size:12px!important;margin-top:14px!important;padding-top:12px!important}
 /* ⑧ 「まずは 60分の無料体験から」を1行に */
  .trialsec h2{font-size:19px!important;white-space:nowrap!important;letter-spacing:.03em!important;margin:6px 0 14px!important}
 .trialsec{padding:34px 0 18px!important}
 .trialsec p{font-size:15px!important;line-height:2!important}
 /* ⑨ 体験入会キャンペーンの崩れをTOPと同じ形に */
 .campsec{padding:0 0 34px!important}
 .campsec .wrap{padding:0 16px!important}
 .campsec .camp{grid-template-columns:1fr 1fr 1fr!important;max-width:none!important;width:100%!important}
 .campsec .camp .c0{grid-column:1/-1!important;padding:32px 12px 12px!important;text-align:center!important}
 .campsec .camp .c0 .jp{white-space:normal!important;font-size:17px!important}
 .campsec .camp .c0 .bdg{left:6px!important;top:-18px!important;width:54px!important;height:54px!important;font-size:9px!important}
 .campsec .camp .cc{padding:14px 6px!important}
 /* 下層ヘッダーのロゴをTOPと同じ大きさに */
 .hd .logo img{height:26px!important}
 /* コース料金：自ページへの誘導ボタンは不要 */
 .subsec .pr-note{margin-bottom:0!important}
 .subsec .pr-strip{margin-top:22px!important}
 /* サポート内容を確実に1行で */
 .support-grid{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;overflow:visible!important;gap:7px!important;max-width:none!important;width:auto!important;margin:22px 0 0!important;padding:0!important}
 .support-grid .s{flex:0 0 auto!important;font-size:14px!important;padding:9px 13px!important;white-space:normal!important;letter-spacing:0!important;line-height:1.5!important}
 /* 短い3つを1段目にまとめ、長い2つを下段へ（読める大きさを維持） */
 .support-grid .s:nth-child(3),.support-grid .s:nth-child(4){order:1!important}
 .support-sec .sh h2{white-space:nowrap!important;font-size:19px!important;letter-spacing:.04em!important}
 .brsp{display:inline!important}
 .bintro b{white-space:normal!important}
}
/* ==================== SP ONLY / ここまで ==================== */
.blpager{display:flex;align-items:center;justify-content:center;gap:10px;margin:54px auto 0;max-width:1000px}
.blpager .pg{font-family:var(--jost);font-size:12px;letter-spacing:.08em;color:var(--ink);text-decoration:none;border:1px solid var(--pinkl);padding:11px 18px;border-radius:30px;transition:.3s;background:#fff}
.blpager .pg:hover{background:var(--pinkpale)}
.blpager .pg.num{padding:11px 0;width:42px;text-align:center}
.blpager .pg.num.on{background:linear-gradient(135deg,#F0A0C6,#C79FDD 48%,#A99ED6);color:#fff;border-color:transparent}
.blpager .pg.is-off{opacity:.32;pointer-events:none}
.blpager .pg::after{display:none!important}
.blpager .pgnums{display:flex;gap:8px}
@media(max-width:1024px){.blpager{gap:7px;margin-top:34px}.blpager .pg{font-size:11px;padding:9px 13px}.blpager .pg.num{width:36px;padding:9px 0}}
