@charset "utf-8";

/* =========================================================
   AGEL ENGLISH — design tokens
   ========================================================= */
:root{
  --pink:#fe0d90;
  --yellow:#faff61;
  --ink:#333;
  --line:#04c300;
  --white:#fff;

  --font-en:"Poppins",sans-serif;
  --font-jp:"Noto Sans JP","Poppins",sans-serif;
  --font:var(--font-jp);

  --container:1240px;
  --header-h:83px;

  /* 傾き（STUDIO版の平行四辺形と同じ角度） */
  --skew:-10deg;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:#fff;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  /* clip にしないと position:sticky（ヒーローの人物写真）が効かなくなる */
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block;border:0;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;margin:0;padding:0;}
h1,h2,h3,p{margin:0;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:20px;}

/* 平行四辺形ボックス */
.skewbox{
  --slant:9px;
  clip-path:polygon(var(--slant) 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
}

/* 共通見出し */
.section__eyebrow{
  font-size:25px;font-weight:600;text-align:center;color:#fff;letter-spacing:.02em;
}
.section__eyebrow--pink{color:var(--pink);}
.section__title{
  font-size:55px;font-weight:600;text-align:center;color:var(--pink);
  letter-spacing:.08em;line-height:1.3;margin-top:8px;
}
.section__title--white{color:#fff;}
.section__title--sm{font-size:35px;letter-spacing:.06em;}

/* 斜めの区切り（ピンク→白） */
.diagonal{height:204px;background:var(--pink);clip-path:polygon(0 0,100% 0,0 100%);}

/* =========================================================
   HEADER
   ========================================================= */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);background:var(--pink);
}
.header__inner{
  height:100%;display:flex;align-items:center;gap:24px;
  padding:0 20px 0 40px;
}
.header__logo img{width:199px;}
.header__nav{
  margin-left:auto;display:flex;align-items:center;gap:15px;
  font-size:11.5px;font-weight:600;color:#fff;letter-spacing:.04em;white-space:nowrap;
}
.header__nav a{transition:opacity .2s;}
.header__nav a:hover{opacity:.7;}
.header__nav-strong{font-size:14px;}
.header__login{font-size:12px;border-bottom:1px solid #fff;padding-bottom:2px;}
.header__cta{
  --slant:9px;
  display:flex;align-items:center;gap:10px;
  height:52px;padding:0 60px 0 26px;margin-left:8px;
  background:#fff;color:var(--pink);
  font-size:17px;font-weight:600;white-space:nowrap;
  clip-path:polygon(9px 0,100% 0,100% 100%,0 100%);
  position:relative;
}
.header__cta-arrow{position:absolute;right:12px;top:50%;translate:0 -50%;width:40px;}
.header__burger{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;gap:6px;margin-left:auto;}
.header__burger span{display:block;height:2px;background:#fff;transition:.25s;}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  height:2298px;
  margin-top:var(--header-h);
  background:var(--pink);
  overflow:clip;
}
.hero__dots{
  position:absolute;inset:0;
  background-image:
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%),
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%),
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%),
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%),
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%),
    linear-gradient(120deg,rgba(255,255,255,.35) 0 100%);
  background-repeat:no-repeat;
  background-size:20px 20px,12px 12px,16px 16px,10px 10px,18px 18px,12px 12px;
  background-position:163px 433px,110px 585px,1236px 33px,1224px 570px,50px 700px,205px 1195px;
  pointer-events:none;
}
.hero__photo{
  position:sticky;top:96px;z-index:1;
  width:1067px;margin-left:186px;
}
.hero__photo img{width:100%;}
/* 写真に焼き込まれているので、PCでは出さない */
.hero__tagline{display:none;}
.hero__side{position:absolute;left:60px;top:50px;color:#fff;z-index:3;}
.hero__intro{position:absolute;left:60px;top:150px;color:#fff;z-index:3;}
/* ロゴはスマホだけ、コピーの下に出す */
.hero__intrologo{display:none;}
.hero__logo{width:216px;}
.hero__index{margin-top:76px;display:grid;gap:0;font-size:17px;font-weight:600;line-height:1.72;}
.hero__index li{display:flex;align-items:baseline;gap:6px;}
.hero__index span{font-family:var(--font-en);font-size:10px;font-weight:700;font-style:italic;}
.hero__index a:hover{opacity:.75;}
.hero__login{
  display:inline-block;margin-top:30px;padding:5px 14px;
  border:1px solid #fff;font-size:12px;letter-spacing:.06em;
}
/* 実績数値（受講生満足度・完遂率） */
.hero__stats{margin-top:34px;display:flex;gap:26px;}
.hero__stats .award__laurel{width:40px;}
.hero__stats .award__label{font-size:12px;}
.hero__stats .award__num{font-size:38px;}
.hero__stats-note{
  position:absolute;left:60px;top:427px;z-index:3;
  font-size:10px;line-height:1.5;color:rgba(255,255,255,.85);
  text-shadow:0 1px 5px rgba(0,0,0,.55);
}
.hero__stats .award{filter:drop-shadow(0 2px 7px rgba(0,0,0,.5));}
.hero__stats .award__label{text-shadow:0 1px 4px rgba(0,0,0,.45);}
.hero__catch{position:absolute;left:878px;top:365px;width:517px;z-index:3;}
.hero__quotes{position:absolute;left:907px;top:1095px;z-index:3;display:grid;gap:0;}
.hero__quotes p{
  --slant:9px;
  width:fit-content;height:50px;display:flex;align-items:center;
  padding:0 15px 0 27px;margin-left:-14px;
  background:#fff;color:var(--pink);
  font-size:20px;font-weight:500;letter-spacing:.02em;
  clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);
}
.hero__quotes .is-gap{margin-top:29px;}
.hero__wordmark{
  position:absolute;left:202px;top:1965px;width:1037px;z-index:2;
}

/* =========================================================
   ABOUT
   ========================================================= */
.about{position:relative;padding:300px 0 120px;background:#fff;}
.about::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:204px;
  background:var(--pink);clip-path:polygon(0 0,100% 0,0 100%);
}
.about__deco{
  position:absolute;left:0;top:250px;width:100%;height:616px;opacity:.3;
  background-image:
    linear-gradient(120deg,var(--pink) 0 100%),
    linear-gradient(120deg,var(--pink) 0 100%),
    linear-gradient(120deg,var(--pink) 0 100%),
    linear-gradient(120deg,var(--pink) 0 100%);
  background-repeat:no-repeat;
  background-size:18px 18px,10px 10px,14px 14px,12px 12px;
  background-position:162px 400px,1235px 0,1223px 537px,90px 120px;
  pointer-events:none;
}
.about__title{
  display:flex;align-items:flex-end;justify-content:center;gap:10px;position:relative;
}
.about__title img{width:504px;}
.about__title span{font-size:33px;font-weight:900;color:var(--pink);line-height:1;}
.about__lead{margin-top:100px;text-align:center;font-size:20px;font-weight:600;line-height:1.9;}
.about__lead p+p{margin-top:38px;}
.about__lead mark{background:var(--pink);color:#fff;padding:2px 6px;}
.about__points{
  margin-top:120px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.about__points li{
  border:2px solid var(--pink);padding:26px 16px;text-align:center;background:#fff;
}
.about__points h3{font-size:25px;font-weight:600;color:var(--pink);letter-spacing:.02em;line-height:1.3;}
.about__points p{margin-top:8px;font-size:15px;font-weight:600;}

/* =========================================================
   FEATURE（3ブロック）
   ========================================================= */
.feature{
  position:relative;display:grid;grid-template-columns:minmax(0,747px) 1fr;
  align-items:center;gap:100px;padding:120px 0;background:#fff;
}
.feature--pink{background:var(--pink);color:#fff;}
.feature__media{width:100%;}
.feature__media img{width:100%;height:739px;object-fit:cover;}
.feature__body{max-width:470px;padding-right:24px;}
.feature__body h2{font-size:35px;font-weight:600;color:var(--pink);line-height:1.5;letter-spacing:-.01em;white-space:nowrap;}
.feature--pink .feature__body h2{color:#fff;}
.feature__body>p{margin-top:24px;font-size:15px;font-weight:600;line-height:2;}
.note{
  margin-top:30px;padding:20px 22px;border:1px solid var(--pink);
}
.feature--pink .note{border-color:#fff;}
.note h3{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--ink);}
.feature--pink .note h3{color:#fff;}
.note__icon{
  width:19px;height:19px;flex:none;border:2px solid var(--pink);border-radius:50%;
  position:relative;
}
.note__icon::after{content:"";position:absolute;left:50%;top:3px;width:2px;height:9px;background:var(--pink);translate:-50% 0;}
.feature--pink .note__icon{border-color:#fff;}
.feature--pink .note__icon::after{background:#fff;}
.note p{margin-top:8px;font-size:13px;font-weight:300;line-height:1.9;}

/* =========================================================
   ROADMAP
   ========================================================= */
.roadmap{position:relative;padding:180px 0 140px;background:#fff;}
.roadmap::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:628px;background:var(--pink);
}
.roadmap .container{position:relative;}
.roadmap__lead{margin-top:34px;text-align:center;color:#fff;font-size:15px;font-weight:600;line-height:1.75;}
.roadmap__badge{
  --slant:6px;
  display:block;width:fit-content;margin:120px auto 0;padding:5px 18px;
  background:var(--yellow);color:var(--pink);font-size:15px;font-weight:600;
}
.roadmap__levels{
  margin-top:88px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;align-items:end;
  position:relative;z-index:2;
  width:100vw;margin-left:calc(50% - 50vw);
}
.level{position:relative;}
/* 段差は top で作る。translate はスクロール表示のアニメーションが使うため使わない */
.level--1{top:0;}
.level--2{top:-30px;}
.level--3{top:-60px;}
.level--4{top:-96px;}
.level--5{top:-136px;}
.level__label{
  --slant:6px;
  width:fit-content;margin:0 0 -1px 24px;padding:2px 12px;
  background:var(--pink);color:#fff;
  font-family:var(--font-en);font-size:15px;font-weight:700;font-style:italic;letter-spacing:.06em;
}
.level__card{
  background:#fff;border:1px solid var(--pink);padding:22px 18px 24px;
  min-height:360px;
}
.level__card h3{font-size:25px;font-weight:600;color:var(--pink);text-align:center;line-height:1.4;}
.level__desc{margin-top:18px;font-size:15px;font-weight:600;line-height:1.8;}
.level__tags{margin-top:18px;font-size:15px;font-weight:600;color:var(--pink);line-height:1.8;}
.roadmap__bands{position:relative;margin-top:-334px;height:470px;z-index:1;}
.band{position:absolute;padding:24px;display:flex;align-items:flex-end;gap:24px;color:#fff;}
.band__label{font-family:var(--font-en);font-size:28px;font-weight:800;font-style:italic;letter-spacing:.02em;}
.band p{font-size:15px;font-weight:600;line-height:1.8;}
.band--basic{
  left:calc(50% - 50vw);width:60.2vw;bottom:0;height:470px;
  background:rgba(254,13,144,.55);
}
.band--advanced{
  left:calc(50% - 50vw + 59.8vw);right:calc(50% - 50vw);width:auto;bottom:96px;height:470px;
  background:rgba(254,13,144,.85);
}
.roadmap__proof{margin-top:110px;text-align:center;position:relative;}
.roadmap__proof::before{
  content:"";position:absolute;left:-60px;top:-120px;width:120px;height:120px;
  background:var(--pink);
  clip-path:polygon(40% 0,64% 0,64% 52%,100% 52%,50% 100%,0 52%,40% 52%);
  rotate:-35deg;
}
.roadmap__proof-eyebrow{font-size:20px;font-weight:600;color:var(--pink);letter-spacing:.1em;}
.roadmap__proof-title{
  --slant:14px;
  display:block;width:fit-content;margin:26px auto 0;padding:14px 46px;
  background:var(--pink);color:#fff;font-size:30px;font-weight:500;letter-spacing:.04em;
}
.roadmap__proof-body{
  --slant:120px;
  margin:36px auto 0;max-width:1075px;padding:42px 150px;
  background:var(--pink);color:#fff;
}
.roadmap__proof-body p{font-size:15px;font-weight:600;line-height:1.75;}
.roadmap__video{
  position:relative;width:640px;max-width:100%;aspect-ratio:16/9;margin:-150px auto 0;
  box-shadow:14px 14px 0 rgba(0,0,0,.25);
}
.roadmap__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* =========================================================
   PRICE
   ========================================================= */
.price{padding:140px 0 60px;background:#fff;}
.price__frame{max-width:979px;margin:130px auto 0;background:var(--pink);padding:20px;}
.price__inner{background:#fff;padding:46px 20px 26px;position:relative;}
.price__ribbon{
  --slant:6px;
  position:absolute;left:50%;top:28px;translate:-50% 0;
  padding:4px 20px;background:var(--pink);color:#fff;font-size:15px;font-weight:600;
  white-space:nowrap;
}
.price__plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:40px;}
.plan{text-align:center;position:relative;padding-top:60px;}
.plan__save{
  --slant:6px;
  position:absolute;left:50%;top:0;translate:-50% 0;width:max-content;
  padding:6px 16px;background:var(--yellow);color:var(--pink);
  font-size:14.4px;font-weight:600;line-height:1.5;
}
.plan h3{font-size:22px;font-weight:500;color:var(--ink);}
.plan__amount{margin-top:6px;color:var(--pink);font-weight:600;line-height:1;}
.plan__amount em{font-family:var(--font-en);font-size:40px;font-style:normal;letter-spacing:.01em;}
.plan__amount span{font-size:20px;margin-left:2px;}
.plan__amount small{font-size:10px;margin-left:3px;}
.price__notes{margin-top:60px;font-size:11px;font-weight:400;line-height:1.55;}

/* =========================================================
   FLOW
   ========================================================= */
.flow{padding:60px 0 120px;background:#fff;}
.flow__list{
  margin-top:70px;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:2px solid var(--pink);
}
.flow__list li{position:relative;padding:60px 16px 0;text-align:center;}
.flow__list li+li{border-left:1px solid var(--pink);}
.flow__num{
  --slant:5px;
  position:absolute;left:50%;top:-14px;translate:-50% 0;
  padding:2px 16px;background:var(--pink);color:#fff;
  font-family:var(--font-en);font-size:15px;font-weight:700;font-style:italic;
}
.flow__list img{width:78px;margin:0 auto;}
.flow__list h3{margin-top:22px;font-size:25px;font-weight:600;color:var(--pink);}
.flow__list p{margin-top:12px;font-size:15px;font-weight:600;line-height:1.75;text-align:left;}

/* =========================================================
   LINE CTA
   ========================================================= */
.linecta{padding:0 80px 120px;background:#fff;}
.linecta__card{
  position:relative;border-radius:24px;background:var(--pink);color:#fff;
  padding:58px 40px 70px;overflow:hidden;
}
.linecta__card h2{text-align:center;font-size:40px;font-weight:600;letter-spacing:.02em;}
.linecta__lead{margin-top:20px;text-align:center;font-size:15px;font-weight:600;line-height:1.75;}
.linecta__btn{
  --slant:0px;
  display:flex;align-items:center;justify-content:center;gap:26px;
  width:fit-content;margin:44px auto 0;padding:14px 60px;
  background:#00c300;color:#fff;font-size:32px;font-weight:500;
  clip-path:polygon(24px 0,100% 0,calc(100% - 24px) 100%,0 100%);
  box-shadow:6px 6px 0 rgba(0,0,0,.18);
}
.linecta__btn img{width:60px;}
.linecta__panel{
  position:relative;z-index:2;
  margin:58px auto 0;max-width:706px;background:#fff;border-radius:6px;
  padding:24px 30px;display:grid;grid-template-columns:1fr 317px;gap:26px;align-items:start;
}
.linecta__panel-title{font-size:17px;font-weight:500;color:var(--pink);}
.checklist{margin-top:12px;display:grid;gap:16px;}
.checklist li{
  position:relative;padding-left:26px;font-size:15px;font-weight:500;color:var(--pink);line-height:1.5;
}
.checklist li::before{
  content:"";position:absolute;left:0;top:3px;width:15px;height:15px;
  background:#22c55e;
}
.checklist li::after{
  content:"";position:absolute;left:4px;top:7px;width:7px;height:4px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;rotate:-45deg;
}
.linecta__panel-foot{
  --slant:6px;
  display:block;width:fit-content;margin-top:20px;padding:5px 14px;
  background:var(--pink);color:#fff;font-size:15px;font-weight:500;
}
.linecta__panel-thumb img{width:100%;}
.linecta__model{
  position:absolute;right:20px;bottom:0;width:230px;z-index:1;
}

/* =========================================================
   VOICES
   ========================================================= */
.voices{padding:130px 0 140px;background:#fff;}
.voices__grid{
  margin-top:120px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:60px 40px;align-items:start;
}
.voice{background:#fff;}
.voice__thumb{overflow:hidden;}
.voice__thumb img{width:100%;transition:scale .4s;}
.voice:hover .voice__thumb img{scale:1.04;}
.voice__who{
  --slant:7px;
  width:fit-content;margin:-28px 0 0 10px;position:relative;
  padding:3px 14px;background:#fff;
  font-size:15px;font-weight:600;color:var(--ink);
  display:flex;gap:8px;align-items:center;
}
.voice__who i{font-style:normal;font-size:12px;}
.voice h3{margin-top:16px;font-size:25px;font-weight:600;color:var(--pink);line-height:1.5;}
.voice__more{
  margin-top:14px;font-family:var(--font-en);font-size:17px;font-weight:800;font-style:italic;
  position:relative;padding-right:40px;width:fit-content;
}
.voice__more::after{
  content:"";position:absolute;right:0;top:50%;translate:0 -50%;
  width:22px;height:23px;background:var(--pink);
  clip-path:polygon(0 100%,100% 0,100% 100%);
}

/* =========================================================
   CONTENTS（2.5ヶ月の過ごし方）
   ========================================================= */
.contents{padding:120px 0 160px;background:#fff;}
.contents__lead{margin-top:34px;text-align:center;font-size:15px;font-weight:600;line-height:1.75;}
.contents__grid{margin-top:110px;display:grid;grid-template-columns:repeat(3,1fr);gap:90px 40px;}
.contents__grid li{text-align:center;}
.contents__grid img{width:200px;height:67px;object-fit:contain;margin:0 auto;}
.contents__freq{margin-top:16px;font-size:16px;font-weight:600;color:var(--pink);}
.contents__grid h3{font-size:25px;font-weight:600;color:var(--pink);line-height:1.3;}
.contents__grid li>p:last-child{
  margin-top:14px;font-size:13px;font-weight:300;line-height:1.85;text-align:left;
}

/* =========================================================
   COACHES
   ========================================================= */
.coaches{position:relative;padding:200px 0 0;background:var(--pink);}
.coaches::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:204px;
  background:#fff;clip-path:polygon(0 0,100% 0,100% 100%);
}
.coaches .container{position:relative;}
.coaches__viewport{
  margin-top:100px;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  padding-bottom:16px;
  scrollbar-width:none;-ms-overflow-style:none;
}
/* OS のスクロールバーは隠し、下の .carbar だけを出す */
.coaches__viewport::-webkit-scrollbar{display:none;}
.coaches__track{display:flex;gap:20px;padding:0 52px;}
.coaches__track > *{scroll-snap-align:start;}
/* どこまで見たかを示すバー */
.carbar{
  position:relative;height:5px;width:min(300px,70%);border-radius:99px;
  background:rgba(0,0,0,.1);margin:10px auto 0;overflow:hidden;
}
.carbar span{
  position:absolute;top:0;bottom:0;border-radius:99px;
  background:var(--pink);transition:left .25s ease;
}
.env__block--coaches .carbar{background:rgba(0,0,0,.12);}
.coach{
  flex:0 0 432px;background:#fff;padding-bottom:20px;
}
.coach__thumb{height:240px;overflow:hidden;}
.coach__thumb img{width:100%;height:100%;object-fit:cover;}
/* コーチ写真：現行サイトと同じ比率で取り込んであるので、そのまま表示する */
.coach__name{
  --slant:7px;
  width:fit-content;margin:-28px 0 0 10px;position:relative;
  padding:3px 16px;background:#fff;
  font-family:var(--font-en);font-size:15px;font-weight:700;color:var(--pink);
}
.coach__career{
  padding:20px 20px 0;font-size:14px;font-weight:400;color:var(--ink);line-height:1.85;
}
.coach__msgbox{margin:18px 20px 0;border:1px solid var(--pink);}
.coach__msgbox summary{
  list-style:none;cursor:pointer;padding:10px 14px;
  font-size:15px;font-weight:600;color:var(--pink);
  display:flex;align-items:center;justify-content:space-between;
  transition:background .2s;
}
.coach__msgbox summary:hover{background:#fff2f8;}
.coach__msgbox summary::-webkit-details-marker{display:none;}
.coach__msgbox summary::after{content:"▼";font-size:10px;}
.coach__msgbox[open] summary::after{content:"▲";}
.coach__msgbox p{padding:4px 14px 14px;font-size:14px;font-weight:400;line-height:1.85;}
.coaches__ctrl{display:flex;justify-content:center;gap:22px;margin-top:34px;}
.coaches__ctrl button{
  width:34px;height:34px;border-radius:50%;background:#fff;color:var(--pink);
  display:grid;place-items:center;font-size:18px;line-height:1;
}

/* 採用中 */
.recruit{
  margin-top:120px;padding-bottom:120px;
  display:grid;grid-template-columns:minmax(0,720px) 1fr;gap:50px;align-items:center;
}
.recruit__media{padding-left:94px;}
.recruit__media img{
  width:100%;height:605px;object-fit:cover;
  clip-path:polygon(60px 0,100% 40px,calc(100% - 60px) 100%,0 calc(100% - 40px));
}
.recruit__body{color:#fff;max-width:560px;padding-right:40px;}
.recruit__body h2{font-size:55px;font-weight:600;line-height:1.5;letter-spacing:.04em;}
.recruit__body p{margin-top:24px;padding-left:70px;font-size:15px;font-weight:600;line-height:1.75;}
.recruit__btn{
  --slant:14px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  width:340px;margin:44px 0 0 210px;padding:14px 26px;
  background:#fff;color:var(--pink);font-size:25px;font-weight:600;
}
.recruit__btn img{width:25px;}

/* =========================================================
   MESSAGE
   ========================================================= */
.message{padding:130px 0 160px;background:var(--pink);}
.message__card{
  max-width:778px;margin:130px auto 0;background:#fff;padding:90px 0 60px;
}
.message__card h3{
  padding:0 127px;font-size:35px;font-weight:600;color:var(--pink);line-height:1.5;
}
.message__body{margin-top:110px;padding:0 127px;}
.message__body p{
  font-size:18.7px;font-weight:400;line-height:2;
  text-decoration:underline;
  text-decoration-color:rgba(254,13,144,.5);
  text-decoration-thickness:1px;
  text-underline-offset:11px;
  text-decoration-skip-ink:none;
}
.message__body p+p{margin-top:28px;}
.message__sign{margin-top:70px;padding:0 127px;display:flex;align-items:flex-end;gap:60px;}
.message__portrait{position:relative;width:195px;}
.message__portrait::after{
  content:"";position:absolute;right:-18px;bottom:-18px;width:100px;height:100px;
  background:var(--pink);z-index:-1;
}
.message__signature{width:230px;margin-bottom:10px;}

/* =========================================================
   FAQ
   ========================================================= */
.faq{position:relative;padding:220px 0 200px;background:#fff;}
.faq::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:204px;
  background:var(--pink);clip-path:polygon(0 0,100% 0,0 100%);
}
.faq .container{position:relative;}
.faq__list{max-width:780px;margin:120px auto 0;display:grid;gap:22px;}
.faq__item{border:1px solid var(--pink);padding:18px 24px;}
.faq__item h3{
  display:flex;align-items:baseline;gap:22px;
  font-size:20px;font-weight:600;color:var(--pink);line-height:1.4;
}
.faq__item h3 b{font-family:var(--font-en);font-size:20px;font-weight:800;font-style:italic;}
.faq__item p{margin-top:10px;font-size:15px;font-weight:600;line-height:1.75;}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{
  position:relative;background:var(--pink);padding:300px 0 0;height:1200px;overflow:hidden;
}
.footer::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:204px;
  background:#fff;clip-path:polygon(0 0,100% 0,100% 100%);
}
.footer__catch{position:absolute;left:100px;top:322px;width:447px;z-index:3;}
.footer__photo{
  position:absolute;left:336px;top:303px;width:768px;height:648px;
  clip-path:polygon(110px 0,100% 0,calc(100% - 110px) 100%,0 100%);
}
.footer__photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;}
.footer__nav{position:absolute;left:1152px;top:337px;color:#fff;z-index:3;}
.footer__nav ol{display:grid;gap:6px;font-size:17px;font-weight:600;}
.footer__nav li{display:flex;align-items:baseline;gap:6px;}
.footer__nav li span{font-family:var(--font-en);font-size:10px;font-weight:700;font-style:italic;}
.footer__login{
  display:inline-block;margin-top:26px;padding:4px 12px;border:1px solid #fff;font-size:12px;
}
.footer__links{margin-top:22px;display:grid;gap:8px;font-size:12px;font-weight:300;}
.footer__copy{margin-top:22px;font-family:var(--font-en);font-size:10px;font-weight:800;font-style:italic;}
.footer__wordmark{position:absolute;left:100px;bottom:56px;width:1240px;z-index:1;opacity:1;}

/* =========================================================
   FIXED LINE CTA
   ========================================================= */
.linefloat{
  position:fixed;right:0;bottom:40px;z-index:90;
  animation:lineFloatBeat 5s ease-in-out infinite;
}
/* 緑のボタンからちょっとはみ出す吹き出し */
.linefloat__head{
  position:absolute;left:50%;translate:-50% 0;bottom:calc(100% + 12px);z-index:1;
  padding:13px 30px;border-radius:999px;
  background:var(--yellow);color:var(--pink);
  font-size:19px;font-weight:700;letter-spacing:.02em;white-space:nowrap;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
}
.linefloat__head::after{
  content:"";position:absolute;left:50%;translate:-50% 0;bottom:-11px;
  width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;
  border-top:12px solid var(--yellow);
}
.linefloat__inner{
  display:flex;align-items:center;gap:20px;
  padding:14px 26px 14px 40px;
  background:#00c300;color:#fff;font-size:20px;font-weight:600;
  clip-path:polygon(20px 0,100% 0,100% 100%,0 100%);
  box-shadow:0 8px 22px rgba(0,0,0,.2);
}
.linefloat img{width:29px;}
@keyframes lineFloatBeat{
  0%,82%,100%{scale:1;}
  87%{scale:1.035;}
  93%{scale:.99;}
}

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{
  opacity:0;translate:0 28px;
  transition:opacity .85s cubic-bezier(.22,.61,.36,1),translate .85s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,translate;
}
.reveal.is-in{opacity:1;translate:0 0;}
/* 画像やパネルは持ち上げずにフェードだけ */
.reveal--fade{translate:none;}
/* 横から出す（ヒーローの引用・ロードマップのバッジなど） */
.reveal--slide{translate:-28px 0;}
.no-reveal .reveal{opacity:1 !important;translate:none !important;transition:none !important;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1 !important;translate:none !important;transition:none !important;}
  .gift__btn,.gift__btn-icon,.linefloat{animation:none !important;}
}

/* =========================================================
   日本語の折り返し
   見出しは行の長さを揃え、本文は「。」や「す」が1文字だけ
   次の行に落ちるのを防ぐ。対応ブラウザでは文節で折り返す。
   ========================================================= */
h1, h2, h3, h4,
.section__title, .section__eyebrow, .sched__title, .steps__proof-lead,
.snsig__lead, .sns__title, .sns__lead, .claim__title, .claim__lead,
.gift__title, .pains__title, .changes__bridge, .env__title, .way__box h3{
  text-wrap:balance;
}
h1, h2, h3, h4{ line-break:strict; }
@media (max-width:990px){
  /* 見出しだけ文節で折り返す。本文に効かせると右端が大きく余るため */
  h1, h2, h3, h4{ word-break:auto-phrase; line-break:strict; }
  p, li, dd{ word-break:normal; line-break:strict; text-wrap:wrap; }
}

/* =========================================================
   TABLET  (<= 990px)
   ========================================================= */
@media (max-width:990px){
  .header__nav{display:none;}
  .header__cta{display:none;}
  .header__burger{display:flex;}
  .header.is-open .header__nav{
    display:grid;position:fixed;left:0;top:var(--header-h);width:100%;
    background:var(--pink);padding:24px 30px 34px;gap:18px;font-size:16px;
  }
  .header.is-open .header__nav a{border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:10px;}

  /* ヒーロー：990px 以下は縦積みにする */
  .hero{
    height:auto;padding:22px 0 50px;
    display:grid;grid-template-columns:100%;
  }
  /* 写真を大きく出し、その左・縦中央に文字とバッジを重ねる */
  .hero__side{position:static;grid-area:1/1;padding:0 20px;}
  .hero__photo{grid-area:2/1;}
  .hero__intro{
    position:relative;left:auto;top:auto;grid-area:2/1;z-index:4;
    align-self:end;justify-self:start;width:min(88%,430px);
    margin:0;padding:0 0 108px 26px;text-align:left;
  }
  .hero__intrologo{display:block;width:190px;margin-top:14px;
    filter:drop-shadow(0 2px 10px rgba(0,0,0,.6));}
  /* 下の大きいワードマークは出さない */
  .hero__wordmark{display:none;}
  .hero__catch{grid-area:3/1;}
  .hero__wordmark{grid-area:4/1;}
  .hero__dots{display:none;}
  .hero__photo{
    position:relative;top:auto;width:100%;height:auto;margin:14px 0 0;
    clip-path:polygon(40px 0,100% 0,calc(100% - 40px) 100%,0 100%);
  }
  /* 写真を縦にも大きく。右端が切れるので、焼き込みの文字はHTMLで出す */
  .hero__photo img{aspect-ratio:5/6;object-fit:cover;object-position:17% center;}
  .hero__tagline{
    display:block;position:absolute;right:22px;top:8px;z-index:2;
    text-align:right;color:#fff;font-size:13px;font-weight:700;line-height:2;
    letter-spacing:.02em;text-shadow:0 1px 6px rgba(0,0,0,.35);
  }
  .hero__tagline u{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;}
  /* 文字が乗る下半分を少し暗くして読めるようにする */
  .hero__photo::after{
    content:"";position:absolute;inset:40% 0 0 0;pointer-events:none;
    background:linear-gradient(transparent,rgba(0,0,0,.34) 42%,rgba(0,0,0,.72));
  }
  .hero__intro .hero__byline{text-shadow:0 2px 10px rgba(0,0,0,.75),0 0 28px rgba(0,0,0,.5);}
  .hero__intro .hero__stats{justify-content:flex-start;}

  .hero__photo img{height:auto;}
  /* 写真の上に重ねず、流し込みで上に積む */
  .hero__side{position:static;padding:0 20px;}
  .hero__logo{width:150px;}
  .hero__index{display:none;}
  .hero__login{display:none;}
  .steps__rise{display:none;}
  .hero__stats{margin-top:14px;gap:16px;}
  .hero__stats .award__laurel{width:34px;}
  .hero__stats .award__label{font-size:12px;}
  .hero__stats .award__num{font-size:32px;}
  /* 注記は重なりを避けて、ワードマークの下に小さく置く */
  .hero__stats-note{
    position:static;grid-area:5/1;margin:26px 0 0;padding:0 20px;
    font-size:10px;line-height:1.6;text-align:center;text-shadow:none;
    color:rgba(255,255,255,.8);
  }
  .hero__catch{position:relative;left:auto;top:auto;z-index:3;width:min(90%,620px);margin:-2px auto 0;}
  .hero__quotes{position:static;margin:70px auto 0;padding-left:24px;}
  .hero__quotes p{height:auto;padding:8px 16px 8px 24px;font-size:15px;}
  .hero__wordmark{position:static;width:100%;max-width:none;margin:44px 0 0;}

  /* ロードマップ：画面幅いっぱいの段組みをやめる */
  .roadmap__levels{width:auto;margin-left:0;}

  /* フッター：写真が潰れないように */
  .footer__photo img{height:auto;}

  .section__title{font-size:34px;}
  .section__eyebrow{font-size:17px;}

  .feature{grid-template-columns:1fr;gap:34px;padding:70px 0;}
  .feature__media img{height:auto;}
  .feature__body{max-width:none;padding:0 20px;}
  .feature__body h2{font-size:26px;}

  .about{padding:200px 0 80px;}
  .about__title img{width:min(70vw,504px);}
  .about__lead{margin-top:60px;font-size:16px;}
  .about__points{grid-template-columns:1fr;margin-top:60px;}
  .about__points h3{font-size:20px;}

  .roadmap__levels{grid-template-columns:repeat(2,1fr);gap:20px;}
  .level{translate:none !important;}
  .level__card{min-height:0;}
  .roadmap__bands{position:static;margin-top:40px;height:auto;display:grid;gap:16px;}
  .band{position:static;width:auto !important;height:auto !important;flex-direction:column;align-items:flex-start;gap:10px;}
  .band--basic,.band--advanced{left:auto;bottom:auto;}
  .roadmap__proof{margin-top:90px;}
  .roadmap__proof::before{display:none;}
  .roadmap__proof-title{font-size:20px;padding:10px 24px;}
  .roadmap__proof-body{--slant:40px;padding:30px 60px;}
  .roadmap__video{margin-top:40px;width:100%;box-shadow:8px 8px 0 rgba(0,0,0,.25);}

  .price__frame{margin-top:60px;}
  .price__plans{grid-template-columns:1fr;gap:50px;}
  .flow__list{grid-template-columns:1fr;gap:50px;border-top:0;}
  .flow__list li{border-left:0 !important;border-top:2px solid var(--pink);padding-top:50px;}

  .linecta{padding:0 20px 80px;}
  .linecta__card h2{font-size:24px;}
  .linecta__btn{font-size:20px;padding:12px 30px;gap:14px;}
  .linecta__btn img{width:34px;}
  .linecta__panel{grid-template-columns:1fr;}
  .linecta__model{display:none;}

  .voices__grid{grid-template-columns:repeat(2,1fr);}
  .voice h3{font-size:20px;}
  .contents__grid{grid-template-columns:1fr;gap:60px;}

  .coaches__track{padding:0 20px;}
  .carbar{width:min(220px,62%);margin:8px auto 0;}
  .coach{flex:0 0 300px;}
  .recruit{grid-template-columns:1fr;gap:34px;}
  .recruit__media{padding-left:0;}
  .recruit__media img{height:auto;}
  .recruit__body{padding:0 20px;}
  .recruit__body h2{font-size:32px;}
  .recruit__body p{padding-left:0;}
  .recruit__btn{margin-left:0;width:100%;font-size:20px;}

  .message__card{padding:50px 0 40px;}
  .message__card h3{padding-left:30px;font-size:24px;}
  .message__body{margin-top:50px;padding-left:30px;padding-right:20px;}
  .message__body p{font-size:15px;background-size:100% 30px;}
  .message__sign{padding:0 24px;gap:18px;align-items:center;flex-wrap:wrap;}
  .message__portrait{flex:none;width:118px;}
  .message__portrait::after{right:-10px;bottom:-10px;width:56px;height:56px;}
  .message__signature{flex:none;width:168px;margin-bottom:0;}
  /* 行が短いぶん罫線が主張しすぎるので、スマホでは引かない */
  .message__body p{text-decoration:none;}
  .message__card h3{padding:0 24px;}
  .message__body{padding:0 24px;}

  .faq__list{margin-top:60px;}
  .faq__item h3{font-size:17px;gap:12px;}

  .footer{height:auto;padding:200px 0 60px;}
  .footer__catch,.footer__photo,.footer__nav,.footer__wordmark{position:static;width:auto;}
  .footer__catch{width:70%;margin:0 auto 30px;}
  .footer__photo{width:100%;height:auto;clip-path:polygon(60px 0,100% 0,calc(100% - 60px) 100%,0 100%);}
  .footer__nav{padding:40px 30px 0;}
  .footer__wordmark{width:140%;max-width:none;margin-top:40px;}

  .linefloat{bottom:0;left:0;right:0;animation:none;}
  .linefloat__head{left:50%;translate:-50% 0;bottom:calc(100% + 10px);padding:10px 22px;font-size:16px;}
  .linefloat__inner{justify-content:center;padding:13px 16px;font-size:16px;gap:12px;clip-path:none;box-shadow:none;}
}

/* =========================================================
   MOBILE  (<= 600px)
   ========================================================= */
@media (max-width:600px){
  :root{--header-h:64px;}
  .header__inner{padding:0 14px;}
  .header__logo img{width:120px;}

  .hero__photo{width:100%;margin-top:16px;clip-path:polygon(32px 0,100% 0,calc(100% - 32px) 100%,0 100%);}
  .hero__side{padding:0 16px;}
  .hero__intro{width:min(92%,430px);padding:0 0 108px 20px;}
  .hero__stats{gap:12px;}
  .hero__stats .award{gap:6px;}
  .hero__stats .award__laurel{width:28px;}
  .hero__stats .award__label{font-size:11px;}
  .hero__stats .award__num{font-size:27px;}
  .env__head .award__laurel{width:40px;}
  .env__head .award__num{font-size:42px;}
  .hero__logo{width:120px;}
  .hero__catch{width:92%;margin-top:-6px;}
  .hero__quotes{margin-top:60px;padding-left:20px;}
  .hero__quotes p{padding:6px 14px 6px 20px;font-size:13px;}
  .hero__wordmark{width:100%;margin-left:0;}

  .section__title{font-size:26px;}
  .section__eyebrow{font-size:15px;}
  .about{padding:120px 0 60px;}
  .about::before,.faq::before,.coaches::before,.footer::before{height:90px;}
  .about__title{flex-direction:column;align-items:center;gap:4px;}
  .about__title span{font-size:24px;}
  .about__lead{font-size:14px;}
  .about__lead br:not(.sp-only){display:none;}

  .voices__grid{grid-template-columns:1fr;}
  .roadmap__levels{grid-template-columns:1fr;}
  .roadmap__proof-body{--slant:24px;padding:24px 34px;}
  .message__body p{background-size:100% 28px;}
}

/* =========================================================
   記事・インタビュー共通（post）
   ========================================================= */
.page-post .header,.page-list .header,.page-doc .header,.page-embed .header{position:sticky;}
.post{padding-top:var(--header-h);}
.post__hero-img{width:min(1080px,calc(100% - 40px));aspect-ratio:16/9;object-fit:cover;margin:40px auto 0;}

.post__head{max-width:1240px;margin:56px auto 0;padding:0 20px;text-align:center;}
.post__title{font-size:55px;font-weight:600;color:var(--ink);line-height:1.5;letter-spacing:.02em;}
.post__date{display:block;margin-top:28px;font-size:15px;font-weight:600;color:var(--ink);}

.post__body{width:640px;max-width:calc(100% - 40px);margin:70px auto 0;}
.post__body h2{
  margin:64px 0 26px;font-size:32px;font-weight:700;color:var(--pink);line-height:1.5;letter-spacing:.01em;
}
.post__body h2:first-child{margin-top:0;}
.post__body h3{margin:40px 0 10px;font-size:16px;font-weight:700;color:var(--ink);line-height:1.6;}
.post__body h4{margin:32px 0 8px;font-size:16px;font-weight:700;color:var(--pink);}
.post__body p{margin:0 0 26px;font-size:16px;font-weight:400;line-height:1.95;}
.post__body strong{font-weight:600;background:linear-gradient(transparent 62%,rgba(250,255,97,.9) 62%);}
.post__body a{color:var(--pink);text-decoration:underline;text-underline-offset:3px;}
.post__body ul,.post__body ol{margin:0 0 26px;padding-left:1.4em;}
.post__body li{font-size:16px;line-height:1.95;list-style:disc;}
.post__body ol li{list-style:decimal;}
.post__body figure{margin:36px 0;}
.post__body figure img{width:100%;}
.post__body figcaption{margin-top:8px;font-size:13px;color:#777;text-align:center;}
.post__body blockquote{
  margin:0 0 26px;padding:16px 20px;border-left:4px solid var(--pink);background:#fff5fa;
  font-size:15px;line-height:1.9;
}

/* コーチからのコメント */
.coachbox{
  margin:56px 0 0;padding:28px 26px;border:1px solid var(--pink);background:#fff;
}
.coachbox h2{margin:0 0 18px;font-size:20px;text-align:center;}
.coachbox p{font-size:15px;line-height:1.9;margin-bottom:18px;}
.coachbox p strong{background:none;color:var(--pink);font-weight:700;}

/* インタビューのヒーロー */
.post--voice{padding-top:0;}
.post__hero--voice{
  position:relative;display:grid;grid-template-columns:616px 1fr;align-items:stretch;
  background:var(--pink);margin-top:var(--header-h);
}
.post__hero--voice .post__hero-img{width:100%;height:630px;aspect-ratio:auto;object-fit:cover;margin:0;}
.post__hero-body{padding:56px 60px 56px 46px;color:#fff;display:flex;flex-direction:column;justify-content:center;}
.post__crumb{font-size:13px;font-weight:300;}
.post__crumb a{text-decoration:underline;text-underline-offset:3px;}
.post__who{margin-top:22px;font-size:15px;font-weight:600;display:flex;gap:8px;align-items:center;}
.post__who i{font-style:normal;font-size:12px;}
.post__title--voice{margin-top:10px;font-size:35px;font-weight:600;color:#fff;text-align:left;line-height:1.55;}

/* 記事フッター */
.post__foot{
  width:640px;max-width:calc(100% - 40px);margin:80px auto 0;padding-bottom:120px;
}
.post__back{
  --slant:9px;display:block;width:fit-content;margin:0 auto;padding:12px 28px;
  background:var(--pink);color:#fff;font-size:15px;font-weight:600;
  clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%);
}
.post__nav{display:flex;justify-content:space-between;gap:20px;margin-top:40px;font-size:13px;font-weight:600;}
.post__nav a{color:var(--pink);max-width:48%;}

/* =========================================================
   一覧ページ
   ========================================================= */
.listing{padding:calc(var(--header-h) + 90px) 0 140px;background:#fff;}
.listing .section__title{margin-bottom:90px;}
.listing__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px 40px;align-items:start;}
.card__thumb{overflow:hidden;aspect-ratio:3/2;}
.card__thumb img{width:100%;height:100%;object-fit:cover;transition:scale .4s;}
.card a:hover .card__thumb img{scale:1.04;}
.card__date{display:block;margin-top:14px;font-size:13px;font-weight:600;color:#777;}
.card h3{margin-top:6px;font-size:25px;font-weight:600;color:var(--pink);line-height:1.5;}
.listing .voices__grid{margin-top:0;}
.listing .voice__thumb{aspect-ratio:3/2;}
.listing .voice__thumb img{height:100%;object-fit:cover;}

/* =========================================================
   規約など（doc）
   ========================================================= */
.doc{padding:calc(var(--header-h) + 90px) 0 140px;}
.doc__head{max-width:780px;margin:0 auto;padding:0 20px;text-align:center;}
.doc__title{font-size:40px;font-weight:600;color:var(--pink);line-height:1.4;}
.doc__lead{margin-top:20px;font-size:15px;line-height:1.9;}
.doc__body{max-width:780px;margin:70px auto 0;padding:0 20px;}
.doc__body h2{margin:48px 0 14px;font-size:20px;font-weight:600;color:var(--pink);}
.doc__body h3{margin:32px 0 8px;font-size:16px;font-weight:700;color:var(--ink);}
.doc__body p{margin:0 0 16px;font-size:15px;line-height:1.95;}
.doc__body ul,.doc__body ol{margin:0 0 20px;padding-left:1.4em;}
.doc__body li{font-size:15px;line-height:1.9;list-style:disc;}
.doc__body ol li{list-style:decimal;}
.doc__body table{width:100%;border-collapse:collapse;margin:0 0 20px;}
.doc__body th,.doc__body td{border-bottom:1px solid #eee;padding:14px 10px;font-size:15px;text-align:left;vertical-align:top;}
.doc__body th{width:9em;font-weight:600;color:var(--pink);white-space:nowrap;}
.doc__body a{color:var(--pink);text-decoration:underline;}

/* 会社概要 */
.doc--company .doc__body{max-width:1100px;}
.creed{text-align:center;margin-bottom:80px;}
.creed h3{font-family:var(--font-en);font-size:22px;font-weight:800;font-style:italic;color:var(--pink);letter-spacing:.06em;}
.creed h2{margin-top:26px;font-size:35px;font-weight:600;color:var(--ink);line-height:1.6;}
.creed p{margin-top:26px;font-size:15px;font-weight:600;line-height:2;}
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 40px;margin-bottom:90px;text-align:center;}
.value h4{font-family:var(--font-en);font-size:25px;font-weight:600;color:var(--pink);}
.value p{margin-top:10px;font-size:15px;font-weight:600;}
.value p:last-child{margin-top:14px;font-size:13px;font-weight:300;line-height:1.9;text-align:left;}
.companyinfo table{width:100%;max-width:760px;margin:0 auto;border-collapse:collapse;}
.companyinfo th,.companyinfo td{padding:18px 10px;border-bottom:1px solid #f0f0f0;text-align:left;}
.companyinfo th{width:9em;font-size:15px;font-weight:600;color:var(--ink);}
.companyinfo td{font-size:25px;font-weight:600;color:var(--ink);line-height:1.5;}

/* =========================================================
   埋め込みページ（診断・特設LP）
   ========================================================= */
.embed{padding-top:var(--header-h);background:#fff;}
.embed__frame{display:block;width:100%;height:100vh;border:0;}

/* =========================================================
   記事・一覧のモバイル
   ========================================================= */
@media (max-width:990px){
  .post__title{font-size:28px;}
  .post__body{margin-top:44px;}
  .post__body h2{font-size:22px;margin:44px 0 18px;}
  .post__hero--voice{grid-template-columns:1fr;}
  .post__hero--voice .post__hero-img{height:auto;}
  .post__hero-body{padding:30px 24px 40px;}
  .post__title--voice{font-size:22px;}
  .listing__grid{grid-template-columns:repeat(2,1fr);gap:40px 24px;}
  .card h3{font-size:18px;}
  .doc__title{font-size:26px;}
  .values{grid-template-columns:1fr;}
  .companyinfo td{font-size:17px;}
  .creed h2{font-size:22px;}
}
@media (max-width:600px){
  .listing__grid{grid-template-columns:1fr;}
  .post__nav{flex-direction:column;}
  .post__nav a{max-width:none;}
}

/* =========================================================
   V2（構成検討版）だけで使うパーツ
   ========================================================= */
.v2note{
  position:sticky;top:var(--header-h);z-index:99;
  background:var(--yellow);color:var(--ink);text-align:center;padding:8px 16px;
  font-size:13px;font-weight:600;
}
.v2note a{color:var(--pink);text-decoration:underline;text-underline-offset:3px;}

.hero__byline{
  margin-top:0;padding-left:2px;
  font-size:17px;font-weight:600;color:#fff;line-height:1.75;letter-spacing:.02em;
}
.hero__byline b{display:inline-block;margin-top:4px;font-size:23px;font-weight:700;}

/* 代表バッジ（顔写真＋サイン） */
.hero__by{margin-top:22px;display:flex;align-items:center;gap:16px;}
.hero__by-photo{
  flex:none;width:72px;height:72px;border-radius:50%;overflow:hidden;
  box-shadow:0 0 0 3px var(--yellow);
}
.hero__by-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.hero__by-text{position:relative;padding-left:16px;color:#fff;}
.hero__by-text::before{
  content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:rgba(255,255,255,.45);
}
.hero__by-sub{display:block;font-size:14px;font-weight:600;letter-spacing:.02em;}
.hero__by-sub::before{content:"";}
.hero__by-text b{display:block;margin-top:3px;font-size:23px;font-weight:700;line-height:1.35;}
.hero__by-sign{
  display:block;margin-top:7px;width:140px;
  filter:brightness(0) invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.35));
}
@media (max-width:990px){
  .hero__by{margin-top:16px;gap:11px;}
  .hero__by-photo{width:56px;height:56px;box-shadow:0 0 0 2px var(--yellow);}
  .hero__by-text{padding-left:11px;}
  .hero__by-sub{font-size:11px;}
  .hero__by-text b{font-size:17px;}
  .hero__by-sign{margin-top:5px;width:96px;}
}
@media (max-width:600px){
  .hero__by{gap:9px;}
  .hero__by-photo{width:48px;height:48px;}
  .hero__by-text{padding-left:9px;}
  .hero__by-sub{font-size:10px;}
  .hero__by-text b{font-size:15px;}
  .hero__by-sign{width:84px;}
}
/* =========================================================
   SNS（Instagram / Podcast）
   ========================================================= */
.sns{padding:96px 0 110px;background:#fff;}
.sns__label{
  font-family:var(--font-en);font-size:21px;font-weight:700;font-style:italic;
  letter-spacing:.06em;color:var(--pink);line-height:1.2;
}
.sns__note{margin-top:12px;font-size:14px;line-height:1.9;color:#666;}

/* --- Instagram：薄ピンクの帯から、スマホが上下にはみ出す --- */
.sns__row{
  margin-top:58px;display:grid;grid-template-columns:1.1fr 1fr;
  gap:52px;align-items:start;
}
.snsig{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:start;}
.snsig__text{min-width:0;}
.sns__head{margin-top:16px;}
.sns__handle{font-size:14px;font-weight:700;color:var(--ink);line-height:1.5;}
.sns__handle em{
  display:block;margin-top:3px;font-family:var(--font-en);font-style:normal;
  font-size:13px;font-weight:600;color:var(--pink);letter-spacing:.02em;
}
.snsig__lead{margin-top:20px;font-size:26px;font-weight:600;line-height:1.6;color:var(--ink);}
.snsig__lead b{color:var(--pink);}

.phone{
  flex:none;width:196px;padding:8px 7px 10px;border-radius:24px;
  background:#1c1c1e;box-shadow:0 10px 26px rgba(0,0,0,.22);
}
.phone::before{
  content:"";display:block;width:46px;height:4px;border-radius:99px;
  background:#3a3a3c;margin:0 auto 8px;
}
.phone__screen{height:382px;border-radius:17px;overflow:hidden;background:#fff;}
.phone__screen img{display:block;width:100%;}

/* --- Podcast：動画を左に置いた横並び --- */
.snspod{min-width:0;}
.sns__video{position:relative;margin-top:20px;aspect-ratio:16/9;background:#000;}
.sns__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.sns__title{margin-top:18px;font-size:22px;font-weight:700;color:var(--ink);line-height:1.5;}
.sns__title em{
  display:block;margin-bottom:2px;font-family:var(--font-en);font-style:italic;
  font-size:15px;letter-spacing:.08em;color:var(--pink);
}

/* --- サービスごとのボタン（公式カラー） --- */
.sns__ico{width:20px;height:20px;flex:none;}
.sns__btn{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:28px;padding:13px 30px;border-radius:999px;
  font-size:15px;font-weight:700;color:#fff;
}
.sns__btn--ig{background:linear-gradient(45deg,#F58529 0%,#DD2A7B 45%,#8134AF 75%,#515BD4 100%);}
.sns__btn:hover{opacity:.88;}
.sns__links{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px;}
.sns__link{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;border-radius:999px;
  font-size:13px;font-weight:700;color:#fff;
}
.sns__link .sns__ico{width:17px;height:17px;}
.sns__link--apple{background:#872EC4;}
.sns__link--spotify{background:#1DB954;}
.sns__link--youtube{background:#FF0000;}
.sns__link:hover{opacity:.88;}

@media (max-width:990px){
  .sns{padding:64px 0 72px;}
  .sns__row{margin-top:36px;grid-template-columns:1fr;gap:44px;}
  .snsig{grid-template-columns:1fr;gap:0;justify-items:center;text-align:center;}
  /* スマホでは端末の上半分だけを見せる */
  .phone{
    margin-top:22px;border-radius:26px 26px 0 0;padding:8px 7px 0;
    box-shadow:0 -2px 22px rgba(0,0,0,.18);
  }
  .phone__screen{border-radius:18px 18px 0 0;}
  .snsig__text{width:100%;}
  .sns__head{justify-content:center;}
  .snsig__lead{font-size:18px;}
  .snsig__lead br:not(.sp-only){display:none;}
  .phone{width:188px;}
  .phone__screen{height:208px;}
  .snspod{text-align:center;}
  .snspod .sns__links{justify-content:center;}
  .sns__title{font-size:20px;}
  .sns__note br:not(.sp-only){display:none;}
}

/* v2：ヒーローの引用を外したぶん、丈を詰める（PCのみ。スマホは自然な高さ） */
@media (min-width:991px){
  .page-v2 .hero{height:1280px;}
  .page-v2 .hero__wordmark{top:940px;}
}
.page-v2 .hero__login{margin-top:34px;}
.page-v2 .hero__index{margin-top:44px;}
.sp-only{display:none;}
.pc-only{display:inline;}
/* br に display:inline を当てると改行しなくなるので revert を使う */
br.sp-only{display:none;}
br.pc-only{display:revert;}
.nowrap{white-space:nowrap;}

/* --- 受講生の成長ストーリー（Before/Afterを写真の上に明示） --- */
.changes{padding:120px 0 44px;background:#fff;}
.changes__list{margin-top:70px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.change__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#eee;}
.change__media::after{
  content:"";position:absolute;inset:52% 0 0 0;z-index:1;
  background:linear-gradient(transparent,rgba(0,0,0,.72) 44%,rgba(0,0,0,.92));
}
.change__media > img{width:100%;height:100%;object-fit:cover;object-position:center 18%;}
.change__ba{
  position:absolute;left:14px;right:14px;bottom:6px;z-index:2;
  display:flex;flex-direction:column;align-items:stretch;text-align:center;
}
.change__label{
  width:fit-content;padding:0 8px;font-family:var(--font-en);
  font-size:8.5px;line-height:1.5;font-weight:800;letter-spacing:.08em;color:#fff;
  background:rgba(0,0,0,.45);
}
.change__label--after{background:var(--pink);}
.change__box{padding:1px 2px;font-size:11px;font-weight:600;line-height:1.32;}
.change__box--before{background:none;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.8);}
.change__box--after{margin-top:0;padding:6px 9px;background:var(--pink);color:#fff;font-size:12.5px;line-height:1.4;}
.change__arrow{margin:-1px 0;font-size:8px;line-height:1;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);}
.change__name{
  position:absolute;left:0;top:14px;z-index:2;padding:5px 16px 5px 12px;
  background:#fff;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;
  clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%);
}
.change__name i{font-style:normal;margin:0 5px;color:#ccc;font-size:11px;}
.change__more{margin-top:16px;}
.change__more summary{
  display:none;list-style:none;cursor:pointer;
  font-size:12px;font-weight:600;color:var(--pink);
  text-decoration:underline;text-underline-offset:3px;
}
.change__more summary::-webkit-details-marker{display:none;}
.change__more summary::after{content:" ▼";text-decoration:none;font-size:9px;}
.change__more[open] summary::after{content:" ▲";}
.change__excerpt{
  font-size:13px;font-weight:500;line-height:1.95;color:var(--ink);
}
.change__excerpt mark{
  background:linear-gradient(transparent 8%,#ffe0ee 8%,#ffe0ee 92%,transparent 92%);
  color:var(--ink);font-weight:600;
}
.change__read{
  display:block;width:fit-content;margin:48px auto 0;
  font-size:15px;font-weight:600;color:var(--pink);
  text-decoration:underline;text-underline-offset:4px;
}
.change__read::after{content:" ›";text-decoration:none;}
.changes__more{
  --slant:9px;display:block;width:fit-content;margin:56px auto 0;padding:14px 40px;
  background:var(--pink);color:#fff;font-size:16px;font-weight:600;
}
.changes__bridge{
  position:relative;margin:86px auto 0;padding-bottom:64px;
  text-align:center;font-size:32px;font-weight:600;color:var(--pink);letter-spacing:.06em;
}
.changes__bridge::after{
  content:"";position:absolute;left:50%;bottom:0;translate:-50% 0;
  width:1px;height:44px;background:var(--pink);
}

/* --- こういう人のためのサービスです --- */
.pains{padding:110px 0;background:var(--surface-pink,#fff0f6);}
.pains__brand{display:flex;align-items:center;justify-content:center;gap:10px;}
.pains__brand img{width:210px;}
.pains__brand span{font-size:17px;font-weight:600;color:var(--ink);}
.pains__title{
  margin-top:22px;text-align:center;font-size:38px;font-weight:600;color:var(--pink);
  line-height:1.5;letter-spacing:.03em;
}
.pains__list{max-width:840px;margin:52px auto 0;display:grid;gap:14px;}
.pains__list li{
  padding:0;text-align:center;font-size:18px;line-height:1.95;
}
.pains__list b{color:var(--pink);font-weight:600;}

/* --- 才能の問題じゃない（写真を大きく） --- */
.claim{padding:100px 0;background:#fff;}
.claim__inner{
  max-width:1240px;margin:0 auto;padding:0 20px;
  display:grid;grid-template-columns:minmax(0,400px) 1fr;gap:64px;align-items:center;
}
.claim__photo{position:relative;}
/* 写真の右上に重ねる肩書き */
/* 写真の上辺から半分はみ出す肩書き。白地でも写真の上でも読めるよう白フチをつける */
.claim__credit{
  position:absolute;right:16px;top:0;translate:0 -56%;z-index:2;
  text-align:right;color:var(--pink);line-height:1.25;
  font-size:13px;font-weight:700;letter-spacing:.12em;
  text-shadow:1px 1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,-1px -1px 0 #fff;
}
.claim__credit em{
  display:block;margin-top:5px;font-style:normal;
  font-size:40px;font-weight:900;letter-spacing:.03em;
  transform:skewX(-11deg);transform-origin:100% 50%;
  text-shadow:
    2px 0 0 #fff,-2px 0 0 #fff,0 2px 0 #fff,0 -2px 0 #fff,
    2px 2px 0 #fff,-2px 2px 0 #fff,2px -2px 0 #fff,-2px -2px 0 #fff,
    0 7px 20px rgba(0,0,0,.28);
}
.claim__photo img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 42%;}
.claim__text{display:flex;flex-direction:column;justify-content:center;}
.claim__lead{font-size:18px;font-weight:600;}
.claim__title{margin-top:12px;font-size:46px;white-space:nowrap;font-weight:600;color:var(--pink);line-height:1.35;letter-spacing:.03em;}
.claim__msg{margin-top:30px;display:grid;gap:22px;}
.claim__msg p{font-size:18px;font-weight:500;line-height:2;letter-spacing:.01em;}
.claim__msg b{color:var(--pink);font-weight:600;}
.claim__sign{margin-top:28px;font-size:14px;color:#777;}
/* スマホでは大きい写真をやめ、見出しの下に丸い顔＋名前を置く */
.claim__by{display:none;}

/* --- 正しい方法論（2つの大きい箱） --- */
.way{padding:120px 0 40px;background:#fff;}
.way__lead{margin-top:30px;text-align:center;font-size:18px;font-weight:600;line-height:1.9;}
.way__lead b{color:var(--pink);}
.way__boxes{margin-top:70px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.way__boxes > li{border:2px solid var(--pink);padding:36px 28px 32px;display:flex;flex-direction:column;}
.way__icon{width:72px;height:72px;}
.way__boxes h3{margin-top:20px;font-size:24px;font-weight:600;color:var(--pink);line-height:1.5;}
.way__x{padding:0 .28em;font-size:.8em;}
.way__sub{
  margin-top:14px;padding-bottom:14px;border-bottom:1px solid #f2d6e6;
  font-size:15px;font-weight:700;color:var(--pink);line-height:1.6;
}
.way__box-lead{margin-top:16px;font-size:14px;font-weight:500;line-height:1.95;}
.way__box-lead b{font-weight:600;}
.way__box-lead b{background:linear-gradient(transparent 64%,rgba(250,255,97,.62) 64%);}
.way__reasons{margin-top:auto;padding-top:22px;display:grid;gap:12px;}
.way__reasons{border-top:1px solid #f2d6e6;}
.way__reasons li{
  position:relative;padding-left:1.5em;font-size:14px;font-weight:600;line-height:1.7;
}
.way__reasons li::before{
  content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;background:var(--pink);
  clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);
}

/* --- ロードマップ（階段） --- */
.steps{padding:120px 0 40px;background:var(--pink);}
/* 2軸の説明 */

/* 2軸（マインド／英語力・会話力）が階段の下から右上へ抜ける */
.steps__axes-note{margin-top:34px;text-align:center;font-size:16px;font-weight:600;line-height:1.9;}
.steps__axes-note b{color:var(--pink);}

.steps__stage{position:relative;padding:88px 0 78px;}
.steps__rise{position:absolute;inset:0;pointer-events:none;z-index:0;}
.steps__axis{
  position:absolute;left:0;height:22px;
  rotate:-7.6deg;transform-origin:0 50%;
}
.steps__axis--skill{top:88%;width:99%;}
.steps__axis--mind{top:97%;width:99%;}
/* 軸のバー＋矢じり */
.steps__axis-bar{
  position:absolute;inset:0;transform-origin:0 50%;
  clip-path:polygon(0 32%,calc(100% - 20px) 32%,calc(100% - 20px) 0,100% 50%,calc(100% - 20px) 100%,calc(100% - 20px) 68%,0 68%);
}
.steps__axis--skill .steps__axis-bar{background:linear-gradient(90deg,rgba(254,13,144,.2) 0%,var(--pink) 42%);}
.steps__axis--mind .steps__axis-bar{background:linear-gradient(90deg,rgba(250,255,97,.3) 0%,var(--yellow) 42%);}
/* 丸いラベルは、軸の上を右へ運ばれていく */
.steps__axis-label{
  position:absolute;left:0;top:50%;translate:0 -50%;z-index:1;
  padding:5px 15px;border-radius:999px;
  font-size:12px;font-weight:700;white-space:nowrap;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.steps__axis--skill .steps__axis-label{background:var(--pink);color:#fff;}
.steps__axis--mind .steps__axis-label{background:var(--yellow);color:var(--pink);}

/* スクロールすると、矢印はそのままで、丸だけが線に沿って上がっていく */
.steps__rise.is-anim .steps__axis-label{left:0;}
.steps__rise.is-anim.is-in .steps__axis-label{
  left:76%;
  transition:left 1.9s cubic-bezier(.32,.62,.24,1);
  transition-delay:.85s;
}
.steps__rise.is-anim.is-in .steps__axis--mind .steps__axis-label{transition-delay:1.15s;}

/* 階段 */
.steps__list{
  position:relative;z-index:1;margin-top:64px;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;align-items:end;
}
.step{position:relative;display:flex;flex-direction:column;justify-content:flex-end;}
.step--1{top:0;}
.step--2{top:-34px;}
.step--3{top:-68px;}
.step--4{top:-102px;}
.step--5{top:-136px;}
.step__illust{display:block;width:104px;margin:0 auto 16px;color:var(--pink);}
.step__box{background:#fff;padding:20px 16px 22px;text-align:center;min-height:158px;}
.step__label{
  font-family:var(--font-en);font-size:12px;font-weight:700;font-style:italic;
  color:var(--pink);letter-spacing:.08em;
}
.step__course{margin-top:6px;font-size:17px;font-weight:600;color:var(--ink);line-height:1.45;}
.step__text{
  margin-top:12px;padding-top:12px;border-top:1px solid #eee;
  font-size:12px;font-weight:500;color:#666;line-height:1.7;
}

/* レベル3の下に動画 */
.steps__proof{position:relative;margin-top:92px;padding-top:86px;text-align:center;}
.steps__proof::before{
  content:"";position:absolute;left:50%;top:0;translate:-50% 0;
  width:0;height:56px;border-left:3px dotted var(--pink);
}
/* 動画の下に置く「レベル3ってどんなレベル？」の箱 */
.proofcard{
  max-width:760px;margin:34px auto 0;padding:26px 30px 28px;
  border:2px solid var(--pink);background:transparent;text-align:left;
}
.proofcard__q{
  position:relative;width:max-content;max-width:100%;
  margin:0 auto;padding:8px 22px;border-radius:999px;
  background:var(--yellow);color:var(--pink);
  font-size:16px;font-weight:700;letter-spacing:.02em;text-align:center;
}
.proofcard__q::after{
  content:"";position:absolute;left:50%;bottom:-9px;translate:-50% 0;
  width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;
  border-top:10px solid var(--yellow);
}
.proofcard__a{
  margin-top:22px;text-align:center;
  font-size:16.5px;font-weight:500;line-height:1.95;color:var(--ink);
}
.proofcard__a b{font-weight:700;color:var(--pink);}
.steps__proof-eyebrow{
  font-size:17px;font-weight:700;color:var(--pink);letter-spacing:.06em;
}
.steps__proof-lead{margin-top:8px;font-size:26px;font-weight:600;color:var(--ink);}
.steps__proof-lead b{color:var(--pink);font-size:1.25em;}
.steps__proof-desc{
  max-width:780px;margin:16px auto 0;
  font-size:15px;font-weight:500;line-height:2;color:#555;
}
.steps__proof-desc b{font-weight:700;color:var(--pink);}
.steps__proof-video{
  position:relative;width:720px;max-width:100%;aspect-ratio:16/9;margin:26px auto 0;
  box-shadow:12px 12px 0 rgba(0,0,0,.12);
}
.steps__proof-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* --- 挑戦を続けられる環境 --- */
.env{background:#fff;padding:130px 0 0;}
.env__head{text-align:center;}
.env__block{padding:90px 0;}
.env__num,.numlabel{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:15px;font-weight:700;color:var(--pink);letter-spacing:.06em;
}
.env__num em,.numlabel em{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--pink);color:#fff;
  font-family:var(--font-en);font-size:15px;font-weight:800;font-style:normal;
}
.numlabel{margin-bottom:14px;}
.env__title{margin-top:14px;font-size:40px;font-weight:600;color:var(--pink);text-align:center;line-height:1.5;}
.env__lead{margin-top:24px;text-align:center;font-size:16px;font-weight:600;line-height:1.95;}
.env__lead b{background:linear-gradient(transparent 60%,rgba(250,255,97,.9) 60%);}

.env__peer{
  margin-top:60px;display:grid;grid-template-columns:minmax(0,33%) 1fr;gap:44px;align-items:center;
  background:#fff7fb;padding:38px 42px 38px 46px;
}
.env__peer-kicker{font-size:13px;font-weight:700;color:var(--pink);letter-spacing:.06em;}
.env__peer-body h4{margin-top:10px;font-size:32px;font-weight:600;color:var(--ink);line-height:1.5;}
.env__peer-body > p{font-size:16px;line-height:2.05;}
.env__peer-body p{margin-top:18px;font-size:15px;line-height:2;}
.env__peer-body b{font-weight:600;color:var(--pink);}
.env__peer-close{padding-top:18px;border-top:1px solid #f3d7e6;}
.env__peer-media img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 22%;}

.env__block--coaches{background:var(--surface,#f6f6f6);}
.env__block--coaches .coaches__viewport{margin-top:60px;}

.env__block--community{background:#fff;padding-bottom:110px;}
.community__units{margin-top:60px;display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.community__unit{border:2px solid var(--pink);padding:40px 34px;}
.community__tag{
  --slant:7px;width:fit-content;padding:4px 16px;background:var(--pink);color:#fff;
  font-size:14px;font-weight:600;
}
.community__unit h4{margin-top:18px;font-size:35px;font-weight:600;color:var(--pink);}
.community__unit p{margin-top:16px;font-size:16px;line-height:1.95;}

.cm__list{margin-top:60px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch;}
.cm{border:2px solid var(--pink);padding:32px 26px 30px;display:flex;flex-direction:column;}
.cm__tag{
  --slant:6px;width:fit-content;padding:4px 14px;background:var(--pink);color:#fff;
  font-size:12px;font-weight:600;
}
.cm h4{margin-top:16px;font-size:26px;font-weight:600;color:var(--pink);line-height:1.4;}
.cm__items{margin-top:20px;padding-top:18px;border-top:1px solid #f2d6e6;display:grid;gap:18px;}
.cm__items li{position:relative;padding-left:1.3em;}
.cm__items li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--pink);border-radius:50%;}
.cm__items b{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.6;}
.cm__items span{display:block;margin-top:4px;font-size:13px;line-height:1.8;color:#555;}
.env__block--community .community__units{margin-top:40px;}

/* --- 01 マインド --- */
@media (max-width:990px){
  .sp-only{display:inline;}
  .price__ribbon{position:static;translate:none;display:block;width:fit-content;margin:0 auto 10px;}
  .pc-only{display:none;}
  br.sp-only{display:revert;}
  br.pc-only{display:none;}
  /* 受講生の成長ストーリー：上下の余白を詰める */
  .changes{padding:64px 0 24px;}
  .changes__list{grid-template-columns:repeat(2,1fr);gap:24px 20px;margin-top:36px;}
  .change__read{margin-top:30px;}
  .changes__bridge{margin-top:48px;}
  .change__after{font-size:15px;}
  .pains__list li{font-size:15px;}

  .claim{padding:60px 0;}
  .claim__inner{grid-template-columns:1fr;gap:0;}
  /* 横長の写真を先に出し、その下に文章を置く */
  .claim__photo{display:block;margin:34px 0 26px;}
  .claim__photo img{aspect-ratio:3/2;object-position:center 6%;border-radius:10px;}
  .claim__sign{display:none;}
  .claim__title{font-size:26px;white-space:normal;}
  .claim__msg{margin-top:26px;padding-top:22px;border-top:1px solid var(--hairline,#e6e6e6);}
  .claim__msg p{font-size:15px;}
  /* 写真の上に肩書きを出しているので、ここには出さない */
  .claim__by{display:none;}

  .way__boxes{grid-template-columns:1fr;}
  .way__boxes h3{font-size:22px;}

  .steps__list{margin-top:60px;grid-template-columns:1fr;gap:12px;}
  .step{top:0 !important;}
  .step__box{min-height:0;padding:18px 20px;text-align:left;}
  .step__illust{width:84px;margin:0 0 10px;}
  .step__text{margin-top:6px;font-size:15px;}
  .step__text br:not(.sp-only){display:none;}
  .cm__list{grid-template-columns:1fr;}

  .env{padding-top:80px;}
  .env__block{padding:60px 0;}
  .env__title{font-size:26px;}
  .env__peer{grid-template-columns:1fr;gap:26px;padding:28px 22px;}
  .env__peer-body h4{font-size:22px;}
  .env__peer-media img{aspect-ratio:4/3;}
  .community__units{grid-template-columns:1fr;}
  .community__unit h4{font-size:26px;}

  .pillar{grid-template-columns:1fr;gap:34px;padding:70px 0;}
  .pillar__media img{height:auto;}
  .pillar__body{max-width:none;padding:0 20px;}
  .pillar__body h2{font-size:26px;}
}
@media (max-width:600px){
  .changes__list{grid-template-columns:repeat(2,1fr);gap:22px 12px;}
  .change__media{aspect-ratio:3/4;}
  .change__ba{left:5px;right:5px;bottom:6px;}
  .change__label{font-size:8px;padding:1px 7px;}
  .change__box{font-size:10.5px;}
  .change__box--after{font-size:11.5px;padding:6px 7px;}
  .change__name{
    font-size:11px;padding:4px 14px 5px 9px;max-width:100%;
    white-space:normal;line-height:1.25;
  }
  .change__name i{display:none;}
  .change__role{display:block;margin-top:1px;font-size:9px;font-weight:500;color:#999;}
  /* スマホは写真の縦を詰める */
  .change__media{aspect-ratio:3/4;}
  .change__more summary{display:block;}
  .change__more[open] summary{margin-bottom:8px;}
  .change__excerpt{font-size:12px;line-height:1.85;}
  .change__read{font-size:13px;margin-top:32px;}
}

/* =========================================================
   V2：ピンクの「面」を減らす
   ・ベタ塗りのピンクは ヒーロー／LINEのCTA／フッター に限定
   ・途中のセクションは白とライトグレーで組む
   ・見出しの色はピンクのまま
   ========================================================= */
.page-v2{
  --surface:#f6f6f6;
  --surface-pink:#fff0f6;
  --hairline:#e6e6e6;
}

/* 濃い面の上で白にしていた見出しは、面が明るくなったのでピンクに戻す */
.page-v2 .section__title--white{color:var(--pink);}
.page-v2 .section__eyebrow{color:var(--pink);}

/* こういう人のためのプログラム */
.page-v2 .pains{background:#fff;}
.page-v2 .pains__list b{color:var(--ink);}


/* 正しい方法論 */
.page-v2 .way__boxes > li{
  border:1px solid var(--hairline);border-top:4px solid var(--pink);background:#fff;
}

/* ロードマップ */
.page-v2 .steps{background:var(--surface);}
.page-v2 .steps__badge{background:var(--pink);color:#fff;}
.page-v2 .step__illust{color:var(--pink);}
.page-v2 .step__box{border:1px solid var(--hairline);border-top:4px solid var(--pink);}

/* 挑戦を続けられる環境 */
.page-v2 .env__peer{background:#fff;border:1px solid var(--hairline,#e6e6e6);}
.page-v2 .coach{border:1px solid var(--hairline);}
.page-v2 .coaches__ctrl button{background:var(--pink);color:#fff;}

/* コミュニティ */
.page-v2 .cm{border:1px solid var(--hairline);border-top:4px solid var(--pink);}
.page-v2 .community__unit{border:1px solid var(--hairline);border-top:4px solid var(--pink);}

/* 01 マインド */
.page-v2 .note{border:1px solid var(--hairline);border-left:4px solid var(--pink);}

/* 共通セクション（現行版から引いているもの） */
.page-v2 .message{background:var(--surface);}
.page-v2 .message__card{border:1px solid var(--hairline);}
.page-v2 .faq__item{border:1px solid var(--hairline);border-left:4px solid var(--pink);}

/* --- V2：コーチ紹介をひと回り小さくして、1画面に収める --- */
.page-v2 .env__block--coaches{padding:44px 0 48px;}
.page-v2 .env__block--coaches .env__lead{margin-top:18px;font-size:15px;}
.page-v2 .env__block--coaches .coaches__viewport{margin-top:30px;}
.page-v2 .coaches__track{gap:16px;padding:0 20px;}
.page-v2 .coach{flex:0 0 330px;padding-bottom:16px;}
.page-v2 .coach__thumb{height:168px;}
.page-v2 .coach__name{margin:-24px 0 0 10px;padding:3px 14px;font-size:14px;}
.page-v2 .coach__career{
  padding:14px 16px 0;font-size:13px;line-height:1.75;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden;
}
.page-v2 .coach__career.is-open{-webkit-line-clamp:unset;overflow:visible;}
.page-v2 .coach__more{
  margin:8px 16px 0;padding:0;font-size:12px;font-weight:600;color:var(--pink);
  text-decoration:underline;text-underline-offset:3px;
}
.page-v2 .coach__msgbox{margin:12px 16px 0;}
.page-v2 .coach__msgbox summary{padding:8px 12px;font-size:13px;}
.page-v2 .coach__msgbox p{padding:4px 12px 12px;font-size:13px;line-height:1.75;}
.page-v2 .coaches__ctrl{margin-top:18px;}

/* --- V2：受講生の変化 → こういう人のため、のつなぎ --- */
.changes__bridge{
  position:relative;margin:86px auto 0;padding-bottom:64px;
  text-align:center;font-size:32px;font-weight:600;color:var(--pink);letter-spacing:.06em;
}
.changes__bridge::after{
  content:"";position:absolute;left:50%;bottom:0;translate:-50% 0;
  width:1px;height:44px;background:var(--pink);
}
@media (max-width:990px){
  .changes__bridge{margin-top:56px;padding-bottom:44px;font-size:22px;}
  .changes__bridge::after{height:30px;}
}

/* --- V2：下部の受講生インタビュー --- */
.morevoices{padding:100px 0 110px;background:var(--surface,#f6f6f6);}
.morevoices__list{margin-top:56px;display:grid;gap:0;border-top:1px solid var(--hairline,#e6e6e6);}
.morevoices__list li{border-bottom:1px solid var(--hairline,#e6e6e6);}
.morevoices__list a{
  display:grid;grid-template-columns:220px 1fr auto;gap:20px;align-items:center;
  padding:20px 8px;transition:background .2s;
}
.morevoices__list a::after{content:"›";color:var(--pink);font-size:20px;}
.morevoices__list a:hover{background:#fff;}
.morevoices__who{font-size:14px;font-weight:600;color:var(--ink);}
.morevoices__who i{font-style:normal;margin:0 6px;color:#bbb;font-size:12px;}
.morevoices__title{font-size:16px;font-weight:600;color:var(--pink);line-height:1.6;}

@media (max-width:990px){
  .pains__brand img{width:150px;}
  .pains__title{font-size:19px;letter-spacing:0;}
  .change__box{font-size:10px;line-height:1.35;}
  .change__box--after{font-size:12px;padding:6px 6px;line-height:1.4;}
  .change__media > img{object-position:center 13%;}
  .change__name{font-size:12px;}
  .change__excerpt{font-size:12px;}
  .morevoices__list a{grid-template-columns:1fr auto;gap:6px 14px;padding:16px 4px;}
  .morevoices__who{grid-column:1/-1;}
  .morevoices__title{font-size:14px;}
}

/* --- V2：開講スケジュール --- */
.sched{padding:110px 0;background:#fff;}
/* 2.5ヶ月に含まれるもの */
.sched__incl{
  max-width:840px;margin:18px auto 0;text-align:center;
  font-size:15px;line-height:2;color:#555;
}
.sched__incl b{font-weight:600;color:var(--ink);}

.sched__bubble{
  position:relative;width:max-content;max-width:calc(100% - 40px);
  margin:24px auto 0;padding:11px 26px;border-radius:999px;
  background:var(--yellow);color:var(--pink);
  font-size:15px;font-weight:700;letter-spacing:.02em;text-align:center;
}
.sched__bubble::before{
  content:"";position:absolute;left:50%;top:-10px;translate:-50% 0;
  width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;
  border-bottom:11px solid var(--yellow);
}
.sched__title{
  margin-top:10px;text-align:center;font-size:42px;font-weight:600;color:var(--pink);
  line-height:1.35;letter-spacing:0;
}
.sched__title em{
  font-family:var(--font-en);font-style:normal;font-weight:700;font-size:1.3em;
  letter-spacing:.01em;margin:0 .04em;
}
.sched__title span{font-size:.6em;letter-spacing:-.02em;}
.sched__lead{margin-top:26px;text-align:center;font-size:17px;font-weight:600;}
.sched__lead b{color:var(--pink);}
.sched__body{max-width:860px;margin:50px auto 0;}
.sched__weeks{border-top:1px solid var(--hairline,#e6e6e6);}

.sched__week{
  display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:center;
  padding:14px 24px;border-bottom:1px solid var(--hairline,#e6e6e6);
}
.sched__week.is-lesson{background:#fff6fa;}
.sched__chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.sched__chip{
  padding:5px 16px;border-radius:999px;border:1px solid var(--pink);
  background:#fff;color:var(--pink);font-size:12px;font-weight:700;white-space:nowrap;
}
.sched__chip.is-lesson{background:var(--pink);color:#fff;}
.sched__chip.is-1on1{background:var(--yellow);border-color:var(--yellow);color:var(--pink);}
.sched__chip.is-break{background:#e9e9e9;border-color:#e9e9e9;color:#777;}
.sched__week--break{background:#f1f1f1;color:#777;}
.sched__week--break .sched__wk,
.sched__week--break .sched__range{color:#777;}
.sched__wk{font-family:var(--font-en);font-size:15px;font-weight:700;color:var(--ink);}
.sched__range{font-size:15px;color:#555;}
.sched__notes{margin-top:30px;display:grid;gap:10px;}
.sched__notes li{position:relative;padding-left:1.3em;font-size:13px;line-height:1.85;color:#555;}
.sched__notes li::before{content:"※";position:absolute;left:0;color:var(--pink);}
.sched__notes b{color:var(--ink);font-weight:600;}

@media (max-width:990px){
  .steps__stage{padding:0;}
  .steps__rise{display:none;}
  .proofcard{padding:20px 18px 22px;}
  .proofcard__q{font-size:13.5px;padding:7px 16px;}
  .proofcard__a{font-size:14.5px;line-height:1.85;text-align:left;}
  .proofcard__a br:not(.sp-only){display:none;}
  .steps__proof-eyebrow{font-size:14px;}
  .steps__proof-lead{font-size:19px;}
  .steps__proof-desc{font-size:13px;line-height:1.9;text-align:left;}
  .steps__proof-desc br:not(.sp-only){display:none;}
  .steps__proof{margin-top:60px;padding-top:76px;}
  .sched__title{font-size:26px;}
  .sched__incl{font-size:13px;line-height:1.95;text-align:left;}
  .sched__incl br:not(.sp-only){display:none;}
  .sched__week{grid-template-columns:76px 1fr;gap:6px 10px;padding:12px 14px;}
  .sched__chips{grid-column:1/-1;justify-content:flex-start;}
  .sched__range{font-size:13px;}
}

/* --- V2：受講生インタビューのカルーセル --- */
.morevoices{padding:100px 0 110px;background:var(--surface,#f6f6f6);}
.morevoices .coaches__viewport{margin-top:56px;}
.vtrack{gap:20px;padding-left:20px;}
.vcard{flex:0 0 288px;background:#fff;border:1px solid var(--hairline,#e6e6e6);display:flex;flex-direction:column;}
.vcard a{display:flex;flex-direction:column;height:100%;padding-bottom:18px;}
.vcard__thumb{height:170px;overflow:hidden;}
.vcard__thumb img{width:100%;height:100%;object-fit:cover;transition:scale .5s;}
.vcard a:hover .vcard__thumb img{scale:1.05;}
.vcard__who{
  --slant:7px;width:fit-content;margin:-22px 0 0 10px;position:relative;
  padding:3px 14px;background:#fff;font-size:13px;font-weight:600;color:var(--ink);
  clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%);
}
.vcard__who i{font-style:normal;margin:0 5px;color:#ccc;font-size:11px;}
.vcard__title{padding:14px 18px 0;font-size:15px;font-weight:600;color:var(--pink);line-height:1.6;}
.vcard__more{margin-top:auto;padding:14px 18px 0;font-size:12px;font-weight:600;color:var(--ink);}
.morevoices .changes__more{margin-top:40px;}
@media (max-width:990px){
  .vcard{flex:0 0 240px;}
  .vcard__thumb{height:140px;}
  .vcard__title{font-size:14px;}
}

/* --- V2：元サイトの「なぜ効くのか」ブロック --- */
.way__why{
  margin-top:auto;padding-top:20px;border-top:1px solid #f2d6e6;
}
.way__why h4{font-size:14px;font-weight:600;color:var(--pink);line-height:1.6;}
.way__why p{margin-top:8px;font-size:12.5px;line-height:1.9;color:#555;}
.env__peer-body .way__why{margin-top:22px;padding-top:18px;}
.env__peer-body .way__why h4{font-size:15px;display:flex;align-items:center;gap:8px;}
/* 「仲間と学ぶ」は脳にも効く：開閉式 */
.way__why--fold{padding-top:18px;}
.way__why--fold > summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  font-size:15px;font-weight:600;color:var(--ink);
}
.way__why--fold > summary::-webkit-details-marker{display:none;}
.way__why--fold > summary::after{
  content:"▼";margin-left:auto;font-size:10px;color:var(--pink);transition:rotate .2s;
}
.way__why--fold[open] > summary::after{rotate:180deg;}
.way__why--fold > p{margin-top:12px;}
/* 料金のリボン：スマホでは枠に重ねず、中に収める */

.way__why-icon{width:46px;height:46px;flex:none;margin:-4px 0;}
.env__peer-body .way__why p{font-size:13px;}

/* --- V2：個別相談 --- */
.consult{padding:100px 0 110px;background:var(--surface,#f6f6f6);text-align:center;}
.consult__tag{
  --slant:7px;display:block;width:fit-content;margin:22px auto 0;padding:6px 20px;
  background:var(--pink);color:#fff;font-size:14px;font-weight:700;
}
.consult__lead{margin-top:28px;font-size:17px;line-height:2;}
.consult__lead b{color:var(--pink);font-weight:600;}
.consult__btn{
  --slant:14px;display:inline-flex;align-items:center;gap:16px;margin-top:34px;
  padding:18px 44px;background:#00c300;color:#fff;font-size:20px;font-weight:600;
  box-shadow:6px 6px 0 rgba(0,0,0,.14);
}
.consult__btn img{width:34px;}
@media (max-width:990px){
  .consult__lead{font-size:15px;}
  .consult__btn{font-size:16px;padding:14px 26px;gap:10px;}
  .consult__btn img{width:26px;}
}

/* --- V2：続けられる環境のジャンプボタン --- */
/* 賞状風バッジ（月桂樹） */
.award{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--pink);}
.env__head .award{margin:40px auto 0;}
.award__laurel{
  flex:none;width:52px;aspect-ratio:48/110;background:currentColor;
  -webkit-mask:url(../img/laurel.svg) no-repeat center/contain;
  mask:url(../img/laurel.svg) no-repeat center/contain;
}
.award__laurel--r{scale:-1 1;}
.award__body{display:flex;flex-direction:column;align-items:center;gap:2px;}
.award__label{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:.02em;white-space:nowrap;}
.award__num{font-family:var(--font-en);font-size:54px;font-weight:700;line-height:1;}
.award__num em{font-size:.5em;font-style:normal;margin-left:2px;}
.award__note{margin:14px auto 0;max-width:640px;font-size:12px;line-height:1.8;color:#777;}
/* ピンク背景の上（ヒーロー）で使うとき */
.award--light{color:var(--yellow);}
.award--light .award__label{color:#fff;}

.env__jump{margin:44px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:900px;}
.env__jump a{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:20px 16px;border:2px solid var(--pink);background:#fff;
  font-size:19px;font-weight:600;color:var(--pink);text-align:center;
  transition:background .2s,color .2s;
}
.env__jump a span{font-size:11px;font-weight:700;color:#999;letter-spacing:.06em;}
.env__jump a::after{content:"▼";font-size:10px;margin-top:2px;}
.env__jump a:hover{background:var(--pink);color:#fff;}
.env__jump a:hover span{color:rgba(255,255,255,.75);}
@media (max-width:990px){
  .env__jump{grid-template-columns:1fr;gap:12px;}
  .env__jump a{flex-direction:row;justify-content:center;gap:12px;padding:14px;font-size:16px;}
}

/* --- V2：無料プレゼント（LINE） --- */
.gift{padding:68px 20px 72px;background:var(--pink);}
.gift__inner{
  max-width:1160px;margin:0 auto;
  display:grid;grid-template-columns:1fr minmax(0,468px);gap:52px;align-items:center;
}
.gift__tag{
  --slant:7px;display:block;width:fit-content;padding:6px 20px;
  background:var(--yellow);color:var(--pink);font-size:14px;font-weight:700;
}
.gift__title{margin-top:16px;font-size:31px;font-weight:600;color:#fff;line-height:1.45;}
.gift__title b{font-weight:700;color:var(--yellow);}
.gift__lead{margin-top:14px;font-size:14.5px;font-weight:500;color:#fff;line-height:1.8;}
.gift__list{margin-top:18px;display:grid;gap:8px;}
.gift__list li{
  position:relative;padding:9px 16px 9px 42px;background:rgba(255,255,255,.14);
  font-size:14.5px;font-weight:600;color:#fff;line-height:1.55;border-radius:3px;
}
.gift__list li::before{
  content:"";position:absolute;left:16px;top:15px;width:7px;height:12px;
  border-right:3px solid var(--yellow);border-bottom:3px solid var(--yellow);rotate:45deg;
}
.gift__btn{
  --slant:14px;display:inline-flex;align-items:center;gap:14px;margin-top:22px;
  padding:15px 38px;background:#fff;color:#00b900;font-size:19px;font-weight:700;
  box-shadow:6px 6px 0 rgba(0,0,0,.18);
  animation:giftPulse 2.6s ease-in-out infinite;
  transform-origin:center;
}
.gift__btn:hover{animation-play-state:paused;translate:2px 2px;box-shadow:3px 3px 0 rgba(0,0,0,.18);}
.gift__btn img{width:34px;}
/* プレゼントの箱だけ、ボタンより少し大きく揺れる */
.gift__btn-icon{animation:giftShake 2.6s ease-in-out infinite;}

@keyframes giftPulse{
  0%,68%,100%{scale:1;}
  76%{scale:1.045;}
  84%{scale:.985;}
  92%{scale:1.015;}
}
@keyframes giftShake{
  0%,66%,100%{rotate:0deg;}
  73%{rotate:-9deg;}
  80%{rotate:8deg;}
  87%{rotate:-4deg;}
  94%{rotate:0deg;}
}
.gift__note{margin-top:10px;font-size:12.5px;color:rgba(255,255,255,.85);}
.gift__media img{width:100%;box-shadow:12px 12px 0 rgba(0,0,0,.14);}
/* 見出しの直下に入れる版はスマホだけ使う */
.gift__media--sp{display:none;}
.gift__caption{margin-top:10px;font-size:12.5px;color:#fff;text-align:center;}

@media (max-width:990px){
  .gift{padding:70px 20px 80px;}
  .gift__inner{grid-template-columns:1fr;gap:34px;}
  /* スマホでは見出しの直下に動画を出す */
  .gift__media--sp{display:block;margin-top:20px;}
  .gift__media--sp img{box-shadow:8px 8px 0 rgba(0,0,0,.14);}
  .gift__media--pc{display:none;}
  .gift__title{font-size:23px;}
  .gift__lead br:not(.sp-only){display:none;}
  .gift__list li{font-size:14px;padding:10px 14px 10px 40px;}
  /* ボタンは中央に置く */
  .gift__btn{
    display:flex;width:fit-content;margin:24px auto 0;
    font-size:16px;padding:14px 26px;gap:10px;
  }
  .gift__btn img{width:24px;}
  .gift__note{text-align:center;}
}
