/* ============================================================
   DTx FIT — 進化層（1 ヒーロー全画面 / 4 フッター / 5 ページ遷移 / 6 コンセプト / 7 体験の流れ / 8 料金）
   styles.css・anim.css の後に読み込む
   ============================================================ */

/* ---- 5. ページ遷移の幕 ---- */
.evo-veil{position:fixed;inset:0;background:#000;z-index:400;pointer-events:none;opacity:1;transition:opacity .55s ease}
body.evo-in .evo-veil{opacity:0}
body.evo-out .evo-veil{opacity:1;transition-duration:.35s}
@keyframes evo-veil-kill{to{opacity:0;visibility:hidden}}
body:not(.a-js) .evo-veil{animation:evo-veil-kill .3s ease 2.5s forwards}

/* ---- 1. ヒーロー全画面 ---- */
.kv{height:100vh;height:100svh;min-height:520px;overflow:hidden;background:#000}
.kv-swipe,.kv-swipe .swiper-wrapper,.kv-swipe .swiper-slide,.kv-swipe .swiper-slide > a,.kv-swipe figure{height:100%}
.kv-swipe .swiper-slide > a{display:block}
.kv-swipe figure picture,.kv-swipe figure picture img{display:block;width:100%;height:100%;object-fit:cover}
.kv-swipe figure figcaption.morePad{padding-top:0;padding-bottom:4vh}
.kv-swipe figure::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,0) 28%,rgba(0,0,0,0) 62%,rgba(0,0,0,.5) 100%)}
.kv-swipe figure figcaption{z-index:10}
.kv .kv-swipe > .kv-pagi{position:absolute;left:0;right:0;bottom:34px;width:100%;transform:none;z-index:20;display:flex;justify-content:center;gap:8px}
.kv .kv-swipe .kv-pagi .swiper-pagination-bullet{width:36px;height:2px;border-radius:0;background:#fff;opacity:.35;margin:0!important;transition:opacity .3s,background-color .3s}
.kv .kv-swipe .kv-pagi .swiper-pagination-bullet-active{opacity:1;background:#B40019}
.evo-scroll{position:absolute;right:34px;bottom:26px;z-index:20;display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff}
.evo-scroll span{font-size:10px;letter-spacing:.3em}
.evo-scroll i{display:block;width:1px;height:46px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.evo-scroll i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:#fff;animation:a-intro-line 1.6s ease-in-out infinite}

/* ---- 共通 ---- */
.evo-en{display:block;font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:.25em;color:#B40019;margin-bottom:.5em}
.evo-btns{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;margin-top:1%}
.evo-btns .intro-btn{margin:0}
.evo-btns .banner-btn{width:min(100%,420px)}

/* ---- 6. コンセプト（トップ）---- */
.evo-concept{background:#fff;padding:6% 0 5%;position:relative;z-index:3;overflow:hidden}
.evo-concept > .l-inner{position:relative;z-index:1}
.evo-bgv{position:absolute;inset:0;z-index:0;pointer-events:none;background:#fff}
.evo-bgv video{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.7)}
.evo-bgv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 16%,rgba(255,255,255,.6) 84%,rgba(255,255,255,.9) 100%)}
.evo-points > li{box-shadow:0 10px 30px rgba(11,31,58,.07)}
.evo-concept-grid{display:flex;align-items:center;gap:5%;text-align:left;margin-bottom:5%}
.evo-concept-fig{width:47%;flex:none;aspect-ratio:4/3;overflow:hidden;border-radius:10px}
.evo-concept-fig img{width:100%;height:100%;object-fit:cover;display:block}
.evo-concept-txt{flex:1;min-width:0}
.evo-concept-txt h3{font-size:min(max(22px,2.3vw),32px);line-height:1.4;font-weight:700;margin:0 0 .8em;padding:0}
.evo-concept-txt h3::after{display:none}
.evo-concept-txt p{font-size:min(max(14px,1.1vw),16px);line-height:1.95;margin-bottom:1.2em;text-wrap:pretty}
.evo-concept-txt .intro-btn{display:inline-block;margin-top:.4em}
ul.evo-points{display:flex;gap:2.5%;text-align:left;margin:0}
.evo-points > li{flex:1;background:#F4F4F4;border-radius:10px;padding:26px 24px 24px;margin:0;font-size:inherit}
.evo-points .head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.evo-points .num{display:inline-flex;flex:none;width:38px;height:38px;border-radius:50%;background:#B40019;color:#fff;font-family:'Bebas Neue',sans-serif;font-size:22px;align-items:center;justify-content:center;padding-top:2px}
.evo-points h4{font-size:min(max(15px,1.2vw),18px);font-weight:700;line-height:1.35;color:#B40019;margin:0}
.evo-points .body{display:flex;gap:14px;align-items:flex-start}
.evo-points figure{width:88px;flex:none;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#fff}
.evo-points figure img{width:100%;height:100%;object-fit:cover;display:block}
.evo-points p{font-size:13.5px;line-height:1.8;margin:0;text-wrap:pretty}

/* ---- 8. 料金（トップ）---- */
.evo-plan{background:#EFEFEF;padding:6% 0 5%;position:relative;z-index:3}
p.evo-plan-lead{margin:-1% 0 4%;line-height:1.5}
p.evo-plan-lead span{display:block;font-size:min(max(15px,1.4vw),20px);font-weight:500}
p.evo-plan-lead strong{display:block;color:#B40019;font-weight:900;font-size:min(max(24px,3vw),40px)}
ul.evo-plan-list{display:flex;gap:2.5%;align-items:stretch;text-align:left;margin:0 0 3%}
.evo-plan-list > li{flex:1;background:#fff;border-radius:10px;overflow:hidden;position:relative;margin:0;display:flex;flex-direction:column;border:2px solid #fff;font-size:inherit}
.evo-plan-list > li.evo-osusume{border-color:#B40019}
.evo-plan-list span.badge{position:absolute;top:12px;left:12px;background:#B40019;color:#fff;font-size:12px;font-weight:700;padding:.35em .9em;border-radius:20px;line-height:1.2}
.evo-plan-list .head{background:#000;color:#fff;font-weight:700;text-align:center;padding:24px 16px 20px;font-size:min(max(16px,1.3vw),20px);line-height:1.4}
.evo-plan-list > li.evo-osusume .head{padding-top:30px}
.evo-plan-list .price{text-align:center;padding:22px 16px 8px;color:#B40019;font-weight:900;display:flex;justify-content:center;align-items:baseline;gap:.25em;font-family:'Roboto','Noto Sans JP',sans-serif}
.evo-plan-list .price strong{font-size:min(max(34px,3.2vw),46px);letter-spacing:-.02em;line-height:1}
.evo-plan-list .price span{font-size:14px;color:#1a1a1a;font-weight:500}
.evo-plan-list .price small{font-size:10px;margin-right:.3em}
.evo-plan-list ul{padding:8px 22px 24px;border-top:1px solid #eee;margin:14px 0 0}
.evo-plan-list ul li{font-size:13.5px;line-height:1.65;margin:0;padding:6px 0 6px 1.1em;text-indent:-1.1em}
.evo-plan-list ul li::before{content:"・"}
p.evo-plan-note{font-size:min(max(13px,1vw),15px);line-height:1.9;margin-bottom:3%}
p.evo-plan-note strong{color:#B40019;font-weight:900;font-size:1.15em}
p.evo-plan-note span{display:inline-block;white-space:nowrap}
p.evo-plan-note span + span::before{content:"／";margin:0 .9em;color:#999}
p.evo-plan-note span.subs{display:block;margin-top:.35em;font-size:.92em;color:#555}
p.evo-plan-note span.subs::before{content:none}

/* ---- 7. 無料体験の流れ（トップ）---- */
.evo-flow{background:#fff;padding:6% 0 5%;position:relative;z-index:3}
p.evo-flow-lead{font-size:min(max(14px,1.15vw),17px);margin:-1% 0 4%;font-weight:500}
ol.evo-steps{display:flex;margin:0 0 4%;padding:0;text-align:left;list-style:none}
.evo-steps > li{list-style:none}
.evo-br-pc{display:inline}
.evo-steps > li{flex:1;margin:0;padding:0 14px;position:relative;font-size:inherit;min-width:0}
.evo-steps figure{position:relative;margin:0 0 14px}
.evo-steps > li + li figure::before{content:"";position:absolute;left:-21px;top:50%;margin-top:-7px;width:12px;height:12px;border-top:2px solid #B40019;border-right:2px solid #B40019;transform:rotate(45deg)}
.evo-steps figure .im{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:8px}
.evo-steps figure img{width:100%;height:100%;object-fit:cover;display:block}
.evo-steps .step{display:inline-block;background:#000;color:#fff;font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:.08em;padding:.35em .8em .2em;margin-bottom:8px;line-height:1.1}
.evo-steps h4{font-size:min(max(15px,1.15vw),18px);font-weight:700;line-height:1.4;margin:0 0 .5em}
.evo-steps p{font-size:13px;line-height:1.75;margin:0;text-wrap:pretty}

/* ---- 4. フッター（全ページ）---- */
footer.evo-foot{background:#000;color:#fff;text-align:left}
.evo-foot .l-inner{padding:60px 5% 52px}
.evo-foot a{text-decoration:none;color:#fff}
.evo-foot a:hover{text-decoration:underline}
.evo-foot-top{display:flex;justify-content:space-between;gap:4%}
.evo-foot-brand{width:26%}
.evo-foot-brand img{width:min(100%,200px);display:block;margin-bottom:14px}
.evo-foot-brand p{font-size:12px;line-height:1.7;color:#bbb;margin:0}
.evo-foot-nav{display:flex;gap:44px}
.evo-foot .l-inner ul{display:flex;flex-direction:column;gap:11px}
.evo-foot .l-inner ul li{margin:0;font-size:14px;line-height:1.4}
.evo-foot-nav ul:first-child li a{font-family:'Roboto',sans-serif;font-weight:700;letter-spacing:.06em}
.evo-foot-info{width:34%}
.evo-foot-info dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px;line-height:1.7;margin-bottom:22px}
.evo-foot-info dt{color:#999;white-space:nowrap}
.evo-foot-info dd{margin:0}
.evo-foot-btns{display:flex;gap:10px;flex-wrap:wrap}
.evo-foot-btns a{display:inline-block;padding:.8em 1.6em;border-radius:50px;font-size:13px;font-weight:700;border:1px solid #fff;line-height:1.2;transition:background-color .3s,color .3s,transform .3s}
.evo-foot-btns a.r{background:#B40019;border-color:#B40019}
.evo-foot-btns a:hover{text-decoration:none;background:#fff;color:#000;transform:translateY(-2px)}
.evo-foot small{display:block;background:#707070;font-size:12px;padding:1em 0;text-align:center}

/* ---- SP ---- */
@media screen and (max-width:768px){
  .kv{min-height:0}
  .kv .kv-swipe > .kv-pagi{bottom:22px}
  .evo-scroll{right:18px;bottom:18px}
  .evo-scroll i{height:36px}
  .evo-concept-grid{flex-direction:column;gap:22px;margin-bottom:8%}
  .evo-concept-fig{width:100%}
  ul.evo-points{flex-direction:column;gap:12px}
  .evo-points > li{padding:20px 18px}
  ul.evo-plan-list{flex-direction:column;gap:14px;margin-bottom:6%}
  .evo-btns{flex-direction:column;gap:14px}
  ol.evo-steps{flex-direction:column;gap:0;margin-bottom:8%}
  .evo-steps > li{display:flex;gap:14px;padding:0 0 18px;align-items:flex-start}
  .evo-steps figure{width:96px;flex:none;margin:0}
  .evo-steps > li + li figure::before{display:none}
  .evo-steps .txt{flex:1;min-width:0}
  .evo-foot .l-inner{padding:44px 6% 40px}
  .evo-foot-top{flex-direction:column;gap:30px}
  .evo-foot-brand,.evo-foot-info{width:100%}
  .evo-foot-nav{gap:24px}
  .evo-foot-nav ul:first-child{flex:0 0 auto}
  .evo-foot-nav ul:last-child{flex:1;min-width:0}
  .evo-foot .l-inner ul li{white-space:nowrap}
  .evo-br-pc{display:none}
  p.evo-plan-note span{display:block}
  p.evo-plan-note span + span::before{content:none}
  p.evo-plan-note span.subs{margin-top:.6em}
}
@media (prefers-reduced-motion:reduce){
  .evo-veil{display:none}
  .evo-scroll i::after{animation:none}
}
