/* ============================================================
   RESET + BASE (NEXUS pattern)
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
ol,ul{padding:0}
blockquote,body,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}
html{scroll-behavior:smooth}
body{line-height:1.5;min-height:100vh;text-rendering:optimizeSpeed;font-family:'Noto Sans JP',sans-serif;font-optical-sizing:auto;background-color:var(--bg);max-width:100vw;width:100vw;overflow-x:hidden}
ol[class],ul[class]{list-style:none}
img,picture{display:block}
button,input,select,textarea{cursor:pointer;font:inherit}
a{color:#fff;text-decoration:none}
h1,h2,h3,h4,h5,p{color:var(--navy);letter-spacing:0;margin:0}
img{object-fit:cover;width:100%}
.pc{display:block}.sp{display:none}
br.pc{display:inline}br.sp{display:none}
.text-balance{text-wrap:balance}

/* ============================================================
   DESIGN TOKENS — TORA PROJECT (Navy × Gold)
   ============================================================ */
:root{
  --navy:#1a2540;
  --navy-light:#243352;
  --gold:#c78335;
  --gold-dark:#b07429;
  --gold-pale:rgba(199,131,53,.07);
  --white:#fff;
  --text:#1a2540;
  --text-sub:rgba(26,37,64,.55);
  --bg:#fff;
  --bg-alt:#f7f8fa;
  --border:rgba(26,37,64,.08);
}

/* ============================================================
   TYPOGRAPHY (NEXUS c-text-- pattern)
   ============================================================ */
.c-text--en,.c-text--en span,.c-text--en strong{font-family:'Alexandria',sans-serif;letter-spacing:.02em}
.c-text--main,.c-text--main span{color:var(--navy)}
.c-text--white,.c-text--white span:not([class]),.c-text--white span[class=""]{color:#fff}
.c-text--center{text-align:center}
.c-text--back{
  background:linear-gradient(180deg,transparent 60%,rgba(199,131,53,.15) 60%);
  color:var(--navy) !important;padding:0 .1em;position:relative;z-index:1;font-weight:700;
}

/* ============================================================
   LAYOUT (NEXUS l- pattern)
   ============================================================ */
.l-row{margin-inline:auto;max-width:clamp(1082px,85.4vw,1640px);width:calc(100vw - 48px)}
.l-row.med{max-width:clamp(711px,56.15vw,1078px)}
.l-row.middle{max-width:clamp(896px,70.73vw,1358px)}
.l-row.right{margin:0 0 0 auto;max-width:unset;width:100vw;padding-left:max((100vw - clamp(1082px,85.4vw,1640px))/2,24px)}
.l-row.left{margin:0 0 0 auto;max-width:unset;width:100vw;padding-right:max((100vw - clamp(1082px,85.4vw,1640px))/2,24px)}

/* ============================================================
   HEADER
   ============================================================ */
.l-header__wrap{
  height:64px;left:0;position:fixed;top:0;width:100vw;z-index:100;
  background-color:rgba(255,255,255,.92);backdrop-filter:blur(14px);
  transition:background .2s ease,transform .2s ease;
  border-bottom:1px solid rgba(26,37,64,.06);
}
.l-header__inner{max-width:1200px;margin:0 auto;padding:0 28px;height:64px;display:flex;align-items:center;justify-content:space-between}
.l-header__logo{height:36px;display:flex;align-items:center}
.l-header__logo img{height:100%;width:auto;object-fit:contain}
.l-header__logo-text{font-family:'Alexandria',sans-serif;font-size:20px;font-weight:900;color:var(--navy);display:flex;flex-direction:column;line-height:1.1}
.l-header__logo-text small{font-size:9px;font-weight:400;color:rgba(26,37,64,.5)}
.l-header__logo-text .brand{color:var(--navy)}
.l-header__nav{position:absolute;right:clamp(52px,4.17vw,80px);top:50%;transform:translateY(-50%);z-index:10}
.l-header__list{display:flex;align-items:center;gap:clamp(21px,1.67vw,32px);height:100%;list-style:none}
.l-header__link{display:block}
.l-header__title{font-size:clamp(14px,.83vw,16px);font-weight:700;color:var(--navy);letter-spacing:0;line-height:1.5;transition:color .2s}
.l-header__link:hover .l-header__title{color:var(--navy)}
.l-header__slug{display:none}
.l-header__button{display:none}
.p-nav__button{appearance:none;background:unset;border:unset;display:block;height:12px;position:relative;z-index:100000}
.p-nav__button--line{background-color:var(--navy);border-radius:5em;height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .4s ease;width:15.5px}
.p-nav__button--line:first-child{transform:translate(-50%,calc(-50% - 5px))}
.p-nav__button--line:nth-child(2){opacity:1}
.p-nav__button--line:nth-child(3){transform:translate(-50%,calc(-50% + 5px))}
.p-nav__button--line.is-open{width:18.7px}
.p-nav__button--line.is-open:first-child{transform:translate(-50%,-50%) rotate(36deg)}
.p-nav__button--line.is-open:nth-child(2){opacity:0}
.p-nav__button--line.is-open:nth-child(3){transform:translate(-50%,-50%) rotate(-36deg)}

/* ============================================================
   FV
   ============================================================ */
.l-section__fv{position:relative;width:100%;min-height:100vh;overflow:hidden}
.l-section__fv .p-img__fv{width:100%;height:100vh;object-fit:cover;object-position:center}
.l-section__fv .fv-overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.l-section__fv .fv-overlay::before{content:'';position:absolute;inset:0;background:rgba(26,37,64,.55);z-index:-1}
.fv-content{max-width:1200px;margin:0 auto;padding:0 28px;width:100%;display:flex;justify-content:flex-end}
.fv-content--center{justify-content:center}
.fv-text{max-width:620px;padding:100px 0 100px}
.fv-text--center{max-width:100%;text-align:center;padding:0}
.fv-lead{font-size:clamp(12px,.83vw,14px);font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.2em;text-transform:uppercase;margin-bottom:clamp(16px,1.5vw,28px)}
.fv-catch--hero{font-size:clamp(28px,4vw,60px);font-weight:900;color:#fff;line-height:1.3;margin-bottom:clamp(16px,1.5vw,24px);letter-spacing:-.01em}
.fv-sub--hero{font-size:clamp(16px,1.5vw,24px);font-weight:700;color:var(--gold);letter-spacing:.08em}
.fv-3col{display:flex;justify-content:center;gap:clamp(20px,3vw,56px);margin-bottom:clamp(20px,2vw,32px)}
.fv-3col__item{text-align:center}
.fv-3col__icon{font-size:clamp(24px,2vw,32px);display:block;margin-bottom:8px}
.fv-3col__text{font-size:clamp(12px,.83vw,15px);color:rgba(255,255,255,.75);font-weight:700;line-height:1.6;letter-spacing:.02em}
.fv-badges{display:flex;gap:14px;flex-wrap:wrap}
.fv-badge-item{background:rgba(26,37,64,.06);backdrop-filter:blur(8px);border:1px solid rgba(26,37,64,.1);border-radius:12px;padding:14px 18px;text-align:center;min-width:140px}
.fv-badge-item .top{font-size:10px;color:rgba(26,37,64,.4);margin-bottom:4px}
.fv-badge-item .mid{font-family:'Alexandria',sans-serif;font-size:clamp(20px,2.5vw,30px);font-weight:900;color:var(--navy);line-height:1.2}
.fv-badge-item .mid em{font-style:normal;color:var(--navy)}
.fv-badge-item .bot{font-size:11px;color:rgba(26,37,64,.5);font-weight:700;margin-top:2px}

/* ============================================================
   CTA
   ============================================================ */
.l-section__cta{
  background:var(--bg-alt);
  padding-block:clamp(40px,3.5vw,64px);
  position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
}
.l-section__cta::before{display:none}
.l-wrap__cta{display:flex;align-items:center;gap:clamp(32px,3vw,80px);justify-content:center;position:relative;z-index:1}
.cta-text{color:var(--navy);font-size:clamp(14px,1.25vw,24px);font-weight:700;text-align:center;line-height:1.6}
.cta-text .small{display:block;font-size:clamp(11px,.83vw,14px);font-weight:500;opacity:.5;margin-top:4px}
.cta-btn{
  display:inline-flex;align-items:center;justify-content:center;flex-direction:column;
  background:var(--gold);color:#fff;
  padding:16px 40px;border-radius:60px;font-size:clamp(14px,1.04vw,18px);font-weight:900;
  box-shadow:0 4px 16px rgba(199,131,53,.3);
  transition:all .2s;cursor:pointer;text-align:center;border:none;
}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(199,131,53,.4);background:var(--gold-dark)}
.cta-btn small{display:block;font-size:11px;font-weight:500;margin-top:3px;opacity:.6}
@keyframes pulseEffect{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}

/* ============================================================
   SECTION TITLES (NEXUS p-title__ pattern)
   ============================================================ */
.p-title__wrap{display:grid;gap:clamp(10px,.83vw,16px);grid-auto-rows:max-content;grid-template-areas:"en" "jp";margin-bottom:clamp(32px,2.5vw,48px)}
.p-title__wrap.center .p-title__en,.p-title__wrap.center .p-title__jp{text-align:center}
.p-title__wrap.white .p-title__jp,.p-title__wrap.all-white .p-title__en,.p-title__wrap.all-white .p-title__jp{color:#fff}
.p-title__en{grid-area:en;color:var(--gold);text-transform:uppercase;font-family:'Alexandria',sans-serif;font-size:clamp(16px,1.25vw,24px);font-weight:900;letter-spacing:.08em;line-height:1.4;transform:skewX(-5deg)}
.p-title__jp{grid-area:jp;font-size:clamp(24px,2.08vw,40px);font-weight:700;letter-spacing:0;line-height:1.5}
.p-title__wrap.back .p-title__jp .c-text--main{
  background:linear-gradient(180deg,rgba(26,37,64,0) 0,rgba(26,37,64,0) .15em,var(--navy) .15em,var(--navy) calc(100% + .25em),rgba(26,37,64,0) calc(100% + .25em),rgba(26,37,64,0));
  color:#fff;margin-inline:.1em;padding-inline:.1em;
}
.p-title__wrap.back .p-title__jp strong{font-size:clamp(28px,2.6vw,50px);font-weight:700}
.p-title__wrap.learge .p-title__jp{font-size:clamp(36px,3.33vw,64px);font-weight:900}
.p-title__wrap.back.future{gap:clamp(32px,2.5vw,48px)}
.p-title__wrap.back.future .p-title__jp{font-weight:900;line-height:1.76}
.p-title__wrap.back.future .p-title__jp .c-text--main{
  background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,0) 0,#fff 0,#fff calc(100% + .25em),hsla(0,0%,100%,0) calc(100% + .25em),hsla(0,0%,100%,0));
  color:var(--navy);
}
.p-title__wrap.back.future .p-title__jp strong{font-size:clamp(32px,2.5vw,48px);font-weight:900}
.p-title__wrap.skew{transform:skewX(-5deg)}

/* ============================================================
   TROUBLE
   ============================================================ */
.l-section__trouble{
  background-color:var(--bg-alt);padding-block:clamp(79px,6.25vw,120px) clamp(68px,5.42vw,104px);
  position:relative;z-index:10;
}
.l-section__trouble::before{
  content:'';display:block;position:absolute;top:100%;left:0;width:100vw;height:24px;
  background:var(--bg-alt);clip-path:polygon(0 0,100% 0,50% 100%);z-index:10;
}
.l-list__trouble{
  display:grid;gap:clamp(42px,3.33vw,64px);
  grid-template-columns:repeat(5,max-content);
  justify-content:center;margin-top:clamp(52px,4.17vw,80px);width:fit-content;margin-inline:auto;
}
.c-item__trouble{display:grid;grid-auto-rows:max-content;gap:clamp(19px,1.56vw,30px);justify-items:center}
.p-img__trouble__icon{height:clamp(72px,5.6vw,96px);width:clamp(72px,5.6vw,96px);display:flex;align-items:center;justify-content:center;background:rgba(26,37,64,.04);border-radius:50%;border:1px solid rgba(26,37,64,.08)}
.p-img__trouble__icon svg{width:clamp(32px,2.5vw,42px);height:clamp(32px,2.5vw,42px);stroke:var(--navy);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.p-text__title--trouble{font-size:clamp(14px,.94vw,18px);font-weight:700;line-height:1.78;color:var(--navy);text-align:center}

/* ============================================================
   ANSWER
   ============================================================ */
.l-section__answer{
  background:#fff;padding-block:clamp(59px,4.69vw,90px);
  position:relative;z-index:1;text-align:center;
}
.p-text__answer-pre{color:rgba(26,37,64,.5);font-size:clamp(14px,.94vw,18px);font-weight:500;margin-bottom:8px}
.p-text__answer-big{color:var(--navy);font-size:clamp(22px,2.5vw,42px);font-weight:900;line-height:1.4}

/* ============================================================
   REASON
   ============================================================ */
.l-section__reason{padding-block:clamp(66px,5.21vw,100px) clamp(68px,5.42vw,104px);background:var(--bg-alt)}
.l-list__reason{display:grid;gap:40px;grid-template-columns:repeat(3,1fr)}
.c-item__reason{display:grid;grid-auto-rows:max-content;grid-template-columns:100%;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 16px rgba(26,37,64,.06);border:1px solid rgba(26,37,64,.06)}
.p-img__reason__item{aspect-ratio:520/347;height:auto;width:100%}
.l-wrap__reason__tag{
  background-color:#fff;display:grid;gap:8px;grid-template-columns:max-content max-content;
  margin-block:32px 30px;align-items:center;padding:8px;width:fit-content;
}
.l-wrap__reason__tag::before{
  content:'';display:block;height:24px;width:24px;
  background-color:var(--gold);
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");
  mask-size:cover;mask-position:center;mask-repeat:no-repeat;
}
.p-text__title--reason{font-size:clamp(14px,1.25vw,24px);font-weight:700;line-height:1.5}
.p-text__body--item{font-size:clamp(14px,.83vw,16px);font-weight:500;line-height:2;padding:0 8px 24px}

/* ============================================================
   MESSAGE
   ============================================================ */
.l-section__message{
  background:var(--bg-alt);background-size:cover;
  padding-block:clamp(79px,6.25vw,120px);
}
.l-wrap__message{
  display:grid;grid-template-areas:"content media";
  grid-template-columns:max-content 1fr;
  gap:clamp(75px,5.99vw,115px);justify-content:space-between;align-items:center;
}
.l-wrap__message .p-grid__content{grid-area:content;display:grid;gap:clamp(43px,2.81vw,54px);grid-auto-rows:max-content}
.l-wrap__message .p-grid__media{grid-area:media}
.p-img__message__circle{width:100%;max-width:500px;border-radius:50%;aspect-ratio:1/1;object-fit:cover;margin-inline:auto}
.l-wrap__message__box{
  display:grid;grid-auto-rows:max-content;border-radius:8px;gap:16px;
  height:fit-content;margin-top:clamp(24px,2.08vw,40px);
  padding:24px 28px 28px;position:relative;
  background:rgba(26,37,64,.03);border:1px solid rgba(26,37,64,.06);
}
.l-wrap__message__box::before{display:none}
.p-text__body--normal{font-size:clamp(16px,.94vw,18px);font-weight:700;line-height:1.78}
.p-text__body--med{font-size:clamp(12px,.73vw,14px);font-weight:700;line-height:1.71}

/* ============================================================
   FUTURE
   ============================================================ */
.l-section__future{padding-block:clamp(79px,6.25vw,120px);background:#fff}
.l-wrap__future{
  display:grid;gap:clamp(52px,4.17vw,80px);
  grid-template-areas:"media content";grid-template-columns:46% 1fr;
}
.l-wrap__future .p-grid__content{grid-area:content;display:grid;gap:clamp(38px,3.02vw,58px);grid-auto-rows:max-content;padding-block:clamp(108px,8.54vw,164px) clamp(101px,8.02vw,154px)}
.l-wrap__future .p-grid__media{grid-area:media}
.p-img__future{height:100%;width:100%;object-fit:cover;border-radius:0}
.p-text__body--future{font-size:clamp(16px,.94vw,18px);font-weight:700;line-height:2.67;text-align:center}
.p-text__title--future{font-size:clamp(20px,1.67vw,32px);font-weight:900;line-height:1.76}

/* ============================================================
   LESSON
   ============================================================ */
.l-section__lesson{padding-block:clamp(79px,6.25vw,120px);background:#fff}
.l-wrap__lesson__title{margin-block:0 clamp(28px,2.24vw,43px);text-align:center}
.l-list__reason.four{display:grid;gap:32px;grid-template-columns:repeat(4,1fr)}
.l-wrap__reason__tag.lesson{margin-block:24px}
.c-item__reason.lesson .p-text__body--item{text-align:center}

/* ============================================================
   PROCESS
   ============================================================ */
.l-section__process{
  background-color:var(--bg-alt);
  position:relative;z-index:10;
}
.l-wrap__process{
  display:grid;grid-template-areas:"content media";grid-template-columns:1fr 50%;
  align-items:center;gap:clamp(26px,2.08vw,40px);
}
.l-wrap__process .p-grid__content{grid-area:content;max-width:clamp(427px,33.75vw,648px);padding-block:clamp(92px,7.29vw,140px) clamp(97px,7.71vw,148px);width:100%;margin-left:auto}
.l-wrap__process .p-grid__media{grid-area:media;height:100%}
.p-img__process{height:100%;width:100%;object-fit:cover}
.l-list__process{display:grid;gap:clamp(42px,3.33vw,64px);grid-auto-rows:max-content;position:relative;z-index:1}
.c-item__process{display:flex;gap:clamp(26px,2.08vw,40px);position:relative;z-index:1;align-items:center}
.c-item__process:not(:last-child)::before{content:'';display:block;height:calc(50% + clamp(42px,3.33vw,64px));background-color:var(--gold);left:31.5px;position:absolute;top:50%;width:1px;z-index:-10}
.l-wrap__process__number{
  background-color:#fff;border:2px solid var(--gold);border-radius:50%;
  display:flex;height:64px;width:64px;align-items:center;aspect-ratio:1/1;justify-content:center;flex-shrink:0;
}
.p-text__process--number{font-family:'Alexandria',sans-serif;font-size:clamp(15px,.83vw,16px);font-weight:900;color:var(--gold)}
.l-wrap__process__body{display:grid;gap:clamp(10px,.83vw,16px);grid-auto-rows:max-content}
.p-text__process--title{font-size:clamp(16px,1.25vw,24px);font-weight:900;color:var(--navy)}
.p-text__process--body{font-size:clamp(14px,.94vw,18px);font-weight:500;line-height:1.5}

/* ============================================================
   PRICE
   ============================================================ */
.l-section__price{padding-block:clamp(42px,3.33vw,64px) clamp(79px,6.25vw,120px);background:var(--bg-alt)}
.l-wrap__price{background-color:#fff;border-radius:12px;margin-top:clamp(32px,3.33vw,64px);overflow:hidden;border:1px solid rgba(26,37,64,.06);box-shadow:0 2px 16px rgba(26,37,64,.04)}
.l-wrap__price__head{width:100%;background:var(--navy);padding:20px 24px;text-align:center;color:#fff;border-radius:12px 12px 0 0}
.l-wrap__price__head h3{font-size:clamp(18px,1.25vw,24px);font-weight:900;color:#fff}
.l-wrap__price__head p{font-size:clamp(12px,.73vw,14px);color:rgba(255,255,255,.7)}
.l-wrap__price__body{margin-inline:auto;max-width:clamp(528px,41.67vw,800px);padding-block:clamp(26px,2.08vw,40px) clamp(47px,3.75vw,72px);width:calc(100% - 27px)}
.l-list__price{display:flex;align-items:flex-end;gap:clamp(16px,1.67vw,32px);justify-content:center;flex-wrap:wrap}
.c-item__price{display:grid;gap:8px;grid-auto-rows:max-content;text-align:center;padding:16px 0}
.c-item__price.main{padding:0}
.c-item__price.sub .p-text__price{color:rgba(26,37,64,.4);font-size:clamp(24px,1.88vw,36px)}
.c-item__price.sub .l-wrap__price__tag{opacity:.5;transform:scale(.9)}
.l-wrap__price__tag{display:flex;align-items:center;border:1px solid var(--navy);border-radius:5em;height:clamp(25px,1.35vw,26px);width:clamp(58px,3.23vw,62px);justify-content:center;margin:0 auto}
.p-text__price--tag{font-size:clamp(12px,.73vw,14px);font-weight:700;letter-spacing:.1em}
.p-text__price{color:var(--navy);font-size:clamp(36px,2.92vw,56px);font-weight:900;font-family:'Alexandria',sans-serif;line-height:1.3}
.p-text__price strong{color:var(--navy);font-size:clamp(12px,.83vw,16px);font-weight:700}
.c-item__price.main .p-text__price{color:var(--gold)}
.p-text__price--head{font-size:clamp(14px,.83vw,16px);font-weight:700;color:var(--gold)}
.p-text__price--bottom{font-size:clamp(12px,.73vw,14px);font-weight:500;text-align:end;color:rgba(26,37,64,.5)}
.p-text__price--installment{font-size:clamp(13px,.83vw,16px);font-weight:500;color:rgba(26,37,64,.6);margin-top:4px}
.p-text__price--installment strong{font-size:clamp(18px,1.25vw,24px);font-weight:900;color:var(--navy);font-family:'Alexandria',sans-serif}
.p-text__price--installment span{display:block;font-size:clamp(10px,.63vw,12px);color:rgba(26,37,64,.35);margin-top:2px}
.c-item__price.sub .p-text__price--installment strong{color:rgba(26,37,64,.4);font-size:clamp(14px,1vw,18px)}

/* ============================================================
   VOICE (受講生の声)
   ============================================================ */
.l-section__voice{padding-block:clamp(79px,6.25vw,120px);background:#fff}
.l-list__voice{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}
.c-item__voice{background:var(--bg-alt);border-radius:12px;padding:32px 28px;display:grid;gap:16px;grid-auto-rows:max-content;border:1px solid var(--border)}
.c-item__voice__head{display:flex;align-items:center;gap:14px}
.c-item__voice__avatar{width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;flex-shrink:0}
.c-item__voice__meta{display:grid;gap:2px}
.c-item__voice__name{font-size:14px;font-weight:700;color:var(--navy)}
.c-item__voice__attr{font-size:12px;color:rgba(26,37,64,.45)}
.c-item__voice__stars{color:var(--gold);font-size:14px;letter-spacing:2px}
.c-item__voice__text{font-size:14px;color:rgba(26,37,64,.7);line-height:1.9}
.c-item__voice__result{font-size:13px;font-weight:700;color:var(--gold);margin-top:4px;padding-top:12px;border-top:1px solid var(--border)}

/* ============================================================
   WORKS (制作実績)
   ============================================================ */
.l-section__works{padding-block:clamp(79px,6.25vw,120px);background:var(--bg-alt)}
.p-text__works-lead{text-align:center;font-size:clamp(13px,.83vw,16px);color:rgba(26,37,64,.5);margin-top:clamp(12px,1vw,16px);margin-bottom:clamp(32px,2.5vw,48px)}
.l-list__works{display:grid;gap:24px;grid-template-columns:repeat(3,1fr)}
.c-item__works{border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:0 2px 12px rgba(26,37,64,.04);transition:transform .2s;text-decoration:none;display:block}
.c-item__works:hover{transform:translateY(-4px)}
.c-item__works__img-wrap{aspect-ratio:16/10;width:100%;overflow:hidden;background:var(--bg-alt)}
.c-item__works__img{width:100%;height:100%;object-fit:cover}
.c-item__works__img-wrap--soon{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--bg-alt),var(--bg-alt) 10px,#eef0f4 10px,#eef0f4 20px)}
.c-item__works--placeholder{opacity:.5;pointer-events:none}
.c-item__works__body{padding:20px}
.c-item__works__tag{display:inline-block;background:var(--gold-pale);color:var(--gold);font-size:11px;font-weight:700;padding:3px 10px;border-radius:4px;margin-bottom:8px}
.c-item__works__title{font-size:15px;font-weight:700;color:var(--navy);margin-bottom:6px}
.c-item__works__desc{font-size:13px;color:rgba(26,37,64,.55);line-height:1.7}
.c-item__works__link{font-size:13px;font-weight:700;color:var(--gold);margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}

/* ============================================================
   SHOWCASE (4ヶ月後の到達レベル)
   ============================================================ */
.l-section__showcase{padding-block:clamp(79px,6.25vw,120px);background:#fff}
.l-showcase{max-width:900px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 8px 40px rgba(26,37,64,.1);border:1px solid var(--border)}
.l-showcase__browser{background:#f0f1f3;padding:10px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}
.l-showcase__dots{display:flex;gap:6px}
.l-showcase__dots span{width:10px;height:10px;border-radius:50%;background:rgba(26,37,64,.12)}
.l-showcase__dots span:first-child{background:#ff6058}
.l-showcase__dots span:nth-child(2){background:#ffbd2e}
.l-showcase__dots span:nth-child(3){background:#27ca40}
.l-showcase__url{font-size:12px;color:rgba(26,37,64,.4);font-family:'Alexandria',sans-serif;background:#fff;border-radius:4px;padding:4px 12px;flex:1;text-align:center}
.l-showcase__screen{background:#fff;min-height:400px;overflow:hidden}
.l-showcase__screen img{width:100%;display:block}
.l-showcase__placeholder{display:flex;align-items:center;justify-content:center;min-height:400px;color:rgba(26,37,64,.2);font-size:14px;font-weight:700;background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 10px,#f5f6f8 10px,#f5f6f8 20px)}
.l-showcase__caption{max-width:900px;margin:24px auto 0;text-align:center}
.l-showcase__caption-title{font-size:clamp(16px,1.25vw,22px);font-weight:900;color:var(--navy);margin-bottom:8px}
.l-showcase__caption-desc{font-size:clamp(13px,.83vw,15px);color:rgba(26,37,64,.5);line-height:1.8}
.l-wrap__course{border-top:1px solid rgba(26,37,64,.2);margin-top:24px;padding-top:24px}
.p-text__title--course{font-size:clamp(16px,1.25vw,24px);font-weight:700;color:var(--navy)}
.l-list__course{display:grid;gap:16px 64px;grid-template-columns:repeat(2,max-content);margin-top:24px}
.c-item__course{display:grid;gap:8px;grid-template-columns:max-content max-content;align-items:center}
.c-item__course::before{
  content:'';display:block;height:24px;width:24px;
  background-color:var(--gold);
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");
  mask-size:cover;mask-position:center;mask-repeat:no-repeat;
}

/* ============================================================
   FLOW
   ============================================================ */
.l-section__flow{padding-block:clamp(79px,6.25vw,120px);background:#fff}
.p-text__body--flow{font-size:clamp(14px,.94vw,18px);font-weight:700;line-height:1.78;text-align:center;margin-bottom:clamp(42px,3.33vw,64px)}
.l-list__flow{display:grid;gap:clamp(24px,2.08vw,40px);grid-template-columns:repeat(3,1fr)}
.c-item__flow{display:grid;gap:clamp(26px,2.08vw,40px);grid-template-areas:"media" "content";grid-template-columns:100%;justify-items:center;text-align:center;position:relative}
.c-item__flow:not(:last-child) .p-grid__media::before{
  content:'';display:block;background-color:var(--gold);height:1px;
  left:100%;position:absolute;top:50%;transform:translateY(-50%);
  width:clamp(24px,2.08vw,40px);z-index:-10;
}
.c-item__flow .p-grid__media{position:relative;z-index:1}
.c-item__flow .p-grid__content{display:grid;gap:clamp(15px,1.25vw,24px);grid-auto-rows:max-content}
.p-img__flow__icon{
  width:clamp(60px,5vw,88px);height:clamp(60px,5vw,88px);
  background:var(--gold-pale);border:1px solid rgba(199,131,53,.15);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:clamp(28px,2.08vw,40px);
}
.p-text__flow--title{font-size:clamp(16px,1.25vw,24px);font-weight:700;color:var(--navy)}
.p-text__flow--body{font-size:clamp(14px,.83vw,16px);font-weight:500;line-height:2}

/* ============================================================
   FAQ
   ============================================================ */
.l-section__faq{padding-block:clamp(68px,5.42vw,104px);background:var(--bg-alt)}
.p-faq__list{display:grid;grid-template-columns:100%;max-width:clamp(528px,41.67vw,800px);margin-inline:auto}
.p-faq__items{border-bottom:1px solid rgba(26,37,64,.2);cursor:pointer;padding:clamp(24px,1.67vw,32px) 0;position:relative;z-index:1}
.p-faq__items:first-child{padding-top:0}
.p-faq__inner{display:grid;gap:clamp(15px,1.25vw,24px);grid-template-columns:max-content 1fr max-content;align-items:center;max-width:clamp(528px,41.67vw,800px);margin:0 auto}
.p-faq__icon__q::before{content:"Q";display:block;font-family:'Alexandria',sans-serif;font-size:clamp(24px,1.67vw,32px);font-weight:900;color:var(--gold);transform:skewX(-5deg)}
.p-faq__icon__open{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231e2a3a' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-size:cover;height:16px;width:16px;margin-left:clamp(19px,1.56vw,30px);
  transition:transform .2s ease;
}
.p-faq__items.is-active .p-faq__icon__open{transform:rotate(180deg)}
.p-text__q{font-size:clamp(14px,1.04vw,20px);font-weight:700;line-height:1.4}
.p-faq__content{display:none;padding-top:clamp(20px,1.67vw,32px);max-width:clamp(528px,41.67vw,800px);margin:0 auto;position:relative}
.p-faq__content::before{content:'';display:block;height:1px;width:100%;background:repeating-linear-gradient(90deg,rgba(26,37,64,.2) 0,rgba(26,37,64,.2) 6px,transparent 6px,transparent 12px);position:absolute;top:0}
.p-faq__content.is-open{display:block}
.p-text__answer{font-size:clamp(14px,.94vw,18px);font-weight:500;line-height:1.78;color:rgba(26,37,64,.7)}

/* ============================================================
   FOOTER
   ============================================================ */
.l-footer__wrap{
  background:var(--navy);background-size:cover;
  clip-path:polygon(0 2.08vw,100% 0,100% 100%,0 100%);
  padding-block:clamp(117px,9.27vw,178px) clamp(42px,3.33vw,64px);
}
.l-wrap__footer__top{display:flex;align-items:center;gap:clamp(64px,4.17vw,80px);justify-content:center}
.l-wrap__footer__top .title{display:grid;gap:clamp(38px,3.02vw,58px);grid-auto-rows:max-content}
.l-wrap__footer__top .cta{display:grid;gap:clamp(23px,1.88vw,36px);grid-auto-rows:max-content}
.p-text__body--footer{font-size:clamp(16px,.94vw,18px);font-weight:700;line-height:1.78;color:#fff}
.p-text__body--footer-big{font-size:clamp(16px,1.25vw,24px);font-weight:700;line-height:1.42;color:#fff}
.p-text__body--footer-big strong{font-weight:700}
.l-wrap__footer__bottom{
  display:flex;align-items:center;gap:80px;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.2);margin-bottom:16px;
  margin-top:clamp(63px,5vw,96px);padding-top:clamp(40px,3.33vw,64px);
}
.l-footer__list{display:flex;gap:clamp(21px,1.67vw,32px);justify-content:center;list-style:none}
.l-footer__link{text-align:center}
.p-text__header.footer{font-size:clamp(14px,.83vw,16px);font-weight:700;color:#fff}
.p-text__copy{color:rgba(255,255,255,.5);font-family:'Alexandria',sans-serif;font-size:clamp(14px,.83vw,16px);font-weight:700;text-align:end}
.l-footer__logo{height:40px;display:flex;align-items:center}
.l-footer__logo-text{font-family:'Alexandria',sans-serif;font-size:18px;font-weight:900;color:#fff}
.l-footer__logo-text .brand{color:var(--gold)}

/* ============================================================
   FIXED BOTTOM CTA
   ============================================================ */
.p-img__fix{
  position:fixed;bottom:16px;right:16px;z-index:100;border-radius:60px;
  filter:drop-shadow(0 4px 16px rgba(199,131,53,.25));
  background:var(--gold);
  padding:14px 28px;color:#fff;font-weight:900;font-size:14px;
  cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s;
}
.p-img__fix.active{opacity:1;pointer-events:all}

/* ============================================================
   ANIMATIONS (NEXUS js-scroll-up pattern)
   ============================================================ */
.js-scroll-up{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.js-scroll-up.active{opacity:1;transform:translateY(0)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .pc{display:none}.sp{display:block}
  br.pc{display:none}br.sp{display:inline}
  /* === UNIFIED 20px SIDE PADDING === */
  .l-row,
  .l-row.med,
  .l-row.middle,
  .l-row.right,
  .l-row.left{
    max-width:100% !important;width:100% !important;
    margin:0 !important;
    padding-left:20px !important;padding-right:20px !important;
    box-sizing:border-box !important;
  }
  .l-header__inner{padding:0 20px}
  .fv-content{padding:0 20px}
  .l-section__cta{padding-inline:20px}
  .l-section__answer{padding-inline:20px}
  .l-wrap__price__body{padding-inline:20px;width:100%}
  .p-faq__list{width:100%;max-width:100%}
  .p-faq__inner,.p-faq__content{max-width:100%}
  /* === HEADER === */
  .l-header__nav{display:none !important}
  .l-header__button{display:none !important}
  /* === FV === */
  .fv-catch--hero{font-size:clamp(24px,7vw,36px)}
  .fv-lead{font-size:11px;margin-bottom:16px}
  .fv-sub--hero{font-size:15px}
  .fv-3col{gap:16px;margin-bottom:16px}
  .fv-3col__icon{font-size:20px;margin-bottom:4px}
  .fv-3col__text{font-size:11px}
  /* === CTA === */
  .l-section__cta{padding-block:32px}
  .l-wrap__cta{flex-direction:column;gap:12px}
  .cta-text{font-size:13px}
  .cta-text .small{font-size:11px}
  .cta-btn{font-size:14px;padding:14px 24px;width:100%;max-width:340px;white-space:normal}
  .cta-btn small{font-size:10px}
  /* === SECTION TITLES === */
  .p-title__en{font-size:13px}
  .p-title__jp{font-size:clamp(18px,5vw,24px)}
  .p-title__wrap{gap:8px;margin-bottom:24px}
  .p-title__wrap.learge .p-title__jp{font-size:clamp(22px,5.5vw,30px)}
  .p-title__wrap.back .p-title__jp strong{font-size:clamp(22px,5.5vw,30px)}
  .p-title__wrap.back.future .p-title__jp{font-size:18px;line-height:1.5}
  .p-title__wrap.back.future .p-title__jp strong{font-size:22px}
  .p-title__wrap.skew{transform:none}
  /* === TROUBLE === */
  .l-section__trouble{padding-block:48px 40px}
  .l-list__trouble{gap:20px;grid-template-columns:100%}
  .c-item__trouble{grid-template-columns:56px 1fr;align-items:center;gap:14px}
  .p-img__trouble__icon{height:48px;width:48px}
  .p-img__trouble__icon svg{width:22px;height:22px}
  .p-text__title--trouble{font-size:13px;text-align:left;line-height:1.6}
  /* === ANSWER === */
  .p-text__answer-pre{font-size:13px}
  .p-text__answer-big{font-size:clamp(18px,5vw,28px)}
  /* === REASON === */
  .l-list__reason{grid-template-columns:100%;gap:24px}
  .l-wrap__reason__tag{margin-block:16px 10px}
  .p-text__title--reason{font-size:14px}
  .p-text__body--item{font-size:13px;padding:0 8px 20px}
  /* === MESSAGE === */
  .l-wrap__message{gap:28px;grid-template-areas:"content" "media";grid-template-columns:100%}
  .l-section__message{padding-block:64px 56px;background:var(--bg-alt)}
  .p-text__body--normal{font-size:14px;line-height:1.85}
  .p-text__body--med{font-size:12px}
  .l-wrap__message__box{padding:20px 20px 24px}
  .p-img__message__circle{max-width:280px !important}
  /* === FUTURE === */
  .l-section__future{padding-block:48px 40px}
  .l-wrap__future{grid-template-areas:"content";grid-template-columns:100%}
  .l-wrap__future .p-grid__media{display:none}
  .l-wrap__future .p-grid__content{padding-block:0;padding-left:0}
  .p-text__body--future{font-size:14px;line-height:2}
  .p-text__title--future{font-size:16px}
  /* === LESSON === */
  .l-section__lesson{padding-block:48px 56px}
  .l-list__reason.four{grid-template-columns:1fr;gap:20px}
  .l-wrap__lesson__title{margin-block:0 16px}
  .l-wrap__reason__tag.lesson{margin-block:14px 8px}
  /* === PROCESS === */
  .l-section__process{}
  .l-wrap__process{gap:0;grid-template-areas:"content" "media";grid-template-columns:100%}
  .l-wrap__process .p-grid__content{padding-right:0;padding-block:32px 20px;max-width:100%}
  .l-wrap__process .p-grid__media{
    transform:none;width:calc(100% + 40px);margin-left:-20px;
  }
  .l-wrap__process__number{height:48px;width:48px}
  .p-text__process--title{font-size:14px}
  .p-text__process--body{font-size:13px}
  .l-list__process{gap:24px}
  /* === PRICE === */
  .l-section__price{padding-block:40px 48px}
  .l-list__price{flex-direction:column;gap:8px;align-items:center}
  .c-item__price.sub .p-text__price{font-size:28px;color:rgba(26,37,64,.35)}
  .c-item__price.main .p-text__price{font-size:36px}
  .c-item__price{padding:8px 0}
  .l-wrap__price{margin-top:24px}
  .l-wrap__price__body{padding-block:20px 32px}
  .l-wrap__price__head h3{font-size:16px}
  .l-wrap__price__head p{font-size:11px}
  .p-text__title--course{font-size:15px}
  .l-list__course{grid-template-columns:100%;gap:10px}
  /* === FLOW === */
  .l-section__flow{padding-block:48px}
  .l-list__flow{gap:20px;grid-template-columns:100%}
  .c-item__flow{gap:14px;grid-template-areas:"media content";grid-template-columns:56px 1fr;align-items:center;justify-items:flex-start;text-align:left}
  .c-item__flow:not(:last-child) .p-grid__media::before{height:20px;left:50%;top:100%;transform:translateX(-50%);width:1px}
  .p-img__flow__icon{width:48px;height:48px;font-size:22px}
  .p-text__flow--title{font-size:14px}
  .p-text__flow--body{font-size:12px;line-height:1.7;text-align:left}
  .p-text__body--flow{font-size:13px;margin-bottom:24px}
  /* === VOICE === */
  .l-list__voice{grid-template-columns:1fr;gap:16px}
  .c-item__voice{padding:24px 20px}
  .c-item__voice__text{font-size:13px}
  /* === WORKS === */
  .l-list__works{grid-template-columns:1fr;gap:16px}
  .c-item__works__body{padding:16px}
  .c-item__works__title{font-size:14px}
  .p-text__works-lead{font-size:13px;margin-bottom:24px}
  /* === SHOWCASE === */
  .l-showcase__screen{min-height:240px}
  .l-showcase__placeholder{min-height:240px;font-size:12px}
  .l-showcase__caption-title{font-size:15px}
  .l-showcase__caption-desc{font-size:12px}
  /* === FAQ === */
  .l-section__faq{padding-block:40px 48px}
  .p-text__q{font-size:13px}
  .p-text__answer{font-size:13px}
  .p-faq__icon__q::before{font-size:20px}
  .p-faq__icon__open{height:12px;width:12px;margin-left:12px}
  /* === FOOTER === */
  .l-footer__wrap{clip-path:polygon(0 4.27vw,100% 0,100% 100%,0 100%);padding-block:56px 80px}
  .l-wrap__footer__top{gap:40px;flex-direction:column}
  .p-text__body--footer{font-size:14px}
  .p-text__body--footer-big{font-size:14px;line-height:1.8}
  .p-text__body--footer-big strong{font-size:12px}
  .l-wrap__footer__bottom{gap:28px;flex-direction:column;margin-top:32px;padding-top:24px}
  .l-footer__list{display:grid;gap:20px;grid-template-columns:100%;text-align:center}
  .p-text__header.footer{font-size:13px}
  .p-text__copy{text-align:center;font-size:12px}
  /* === FIXED CTA === */
  .p-img__fix{bottom:0;right:unset;left:0;transform:none;width:100%;border-radius:0;text-align:center;font-size:13px;padding:12px 20px}
}
@media(max-width:640px){
  .fv-catch--hero{font-size:24px}
}

/* ============================================================
   MOBILE MENU OVERLAY (WordPress theme addition)
   ============================================================ */
@media(max-width:1024px){
  .l-header__button{display:block !important}
  .l-header__nav{
    display:flex !important;position:fixed;inset:0;z-index:99999;
    background:rgba(26,37,64,.97);backdrop-filter:blur(20px);
    align-items:center;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity .3s ease;
  }
  .l-header__nav.is-open{opacity:1;pointer-events:all}
  .l-header__nav .l-header__list{
    flex-direction:column;gap:28px;align-items:center;
  }
  .l-header__nav .l-header__title{
    color:#fff;font-size:18px;
  }
}

/* ============================================================
   ENTRY CONTENT (for page.php / single.php)
   ============================================================ */
.entry-content h2{font-size:clamp(20px,1.67vw,28px);font-weight:900;color:var(--navy);margin:2em 0 .8em;padding-bottom:.4em;border-bottom:2px solid var(--gold)}
.entry-content h3{font-size:clamp(18px,1.25vw,24px);font-weight:700;color:var(--navy);margin:1.5em 0 .6em}
.entry-content p{margin-bottom:1.2em}
.entry-content ul,.entry-content ol{margin:1em 0;padding-left:1.5em}
.entry-content li{margin-bottom:.5em}
.entry-content img{max-width:100%;height:auto;border-radius:8px;margin:1.5em 0}
.entry-content a{color:var(--gold);text-decoration:underline}
.entry-content a:hover{color:var(--gold-dark)}
.entry-content blockquote{border-left:4px solid var(--gold);padding:1em 1.5em;margin:1.5em 0;background:var(--bg-alt);border-radius:0 8px 8px 0}
.entry-content table{width:100%;border-collapse:collapse;margin:1.5em 0}
.entry-content th,.entry-content td{padding:12px 16px;border:1px solid rgba(26,37,64,.1);text-align:left}
.entry-content th{background:var(--navy);color:#fff;font-weight:700}

/* WordPress pagination */
.nav-links{display:flex;gap:8px;justify-content:center;margin-top:40px}
.nav-links .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:1px solid rgba(26,37,64,.15);border-radius:6px;font-size:14px;font-weight:700;color:var(--navy);text-decoration:none}
.nav-links .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav-links .page-numbers:hover{background:var(--bg-alt)}
