/* ============================================
   top.css - Motion Lite トップページ専用
   ============================================ */

/* HERO */
.hero {
  background: #1a1a1a;
  color: #fff;
  padding: 0 40px;
  text-align: center;
  position: relative;
  width: 100%;
  max-width: 1280px;   /* 動画の実寸で制限 */
  aspect-ratio: 16 / 9;
  margin: 0 auto;      /* 中央寄せ */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* min-height: 100vh は削除 */
}


.hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  z-index: 0;
}

.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.70);z-index:1}
.hero-nav{position:fixed;top:24px;right:30px;z-index:102}
.hero-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;z-index:2}
.hero-catch{margin:0}
.hero-catch-img{max-width:500px;width:90%}
.hero-logo{margin-top:32px}
.hero-logo-img{max-width:480px;width:85%}
.hero-sub{margin-top:28px}
.hero-sub-img{max-width:500px;width:80%;opacity:.7}
.hero-scroll-wrap{display:flex;flex-direction:row;align-items:stretch;justify-content:center;gap:8px}
.hero-scroll-text{font-family:var(--en);font-size:11px;letter-spacing:.1em;opacity:.6;writing-mode:vertical-rl;display:inline-block;order:2;margin-bottom:40px}
.hero-scroll-line{width:1px;background:rgba(255,255,255,.3);position:relative;overflow:hidden;order:1;min-height:80px}
.hero-scroll-line::after{content:'';position:absolute;top:-80px;left:0;width:1px;height:80px;background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.8) 70%,#fff 100%);animation:scrollLine 2s linear infinite}
@keyframes scrollLine{0%{top:-80px}100%{top:80px}}
.hero-bottom{display:flex;align-items:flex-end;justify-content:center;padding:30px 0 0;position:relative;z-index:2}
.hero-cta-btn{display:none}
.hero-catch-img,
.hero-logo-img,
.hero-sub-img {
  display: block;
  margin: 0 auto;
}

/* WHAT'S */
.whats{padding:60px 40px 50px}
.whats-t{font-family:var(--en);font-size:52px;font-weight:800;line-height:1.2;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.whats-d{margin-top:28px;font-size:18px;line-height:2}
.whats-img{margin-top:32px;text-align:center}
.whats-img img{max-width:420px;margin:0 auto}

/* CHALLENGES */
.challenges{background:var(--bg);padding:50px 0 40px}
.challenges>.en-label,.challenges>.challenges-t{padding:0 40px}
.challenges-t{margin-top:10px;font-size:28px;font-weight:900;line-height:1.6;text-align:center;letter-spacing:.05em}

/* TROUBLE CARDS */
.trouble-card{margin:24px 40px;text-align:center}
.trouble-card img{max-width:100%;height:auto}

/* SOLUTION */
.solution{padding:0 40px 35px;text-align:center;background:var(--bg);position:relative}
.solution-t{font-size:30px;font-weight:900;line-height:1.6;letter-spacing:.05em}
.solution-t .b{font-family:var(--en);font-weight:800}

/* TRIANGLE DIVIDERS */
.tri-down{position:relative}
.tri-down::after{content:'';position:absolute;bottom:-40px;left:0;right:0;height:40px;background:var(--bg);clip-path:polygon(0 0,100% 0,50% 100%);z-index:2}
.tri-down-w{position:relative}
.tri-down-w::after{content:'';position:absolute;bottom:-40px;left:0;right:0;height:40px;background:#fff;clip-path:polygon(0 0,100% 0,50% 100%);z-index:10}

/* REASON */
.reason{padding:60px 40px;position:relative}
.reason.gray{background:var(--bg)}
.reason.has-tri{padding-bottom:80px}
.reason-l{font-family:var(--en);font-size:13px;font-weight:600;color:#c0392b;letter-spacing:.05em}
.reason-t{margin-top:8px;font-size:56px;font-weight:900;line-height:1.3;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* PRICE */
.pc{margin-top:28px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.reason.gray .pc{background:#fff}
.pc-tag{display:block;background:var(--grad);color:#fff;font-size:20px;font-weight:700;padding:18px 24px;text-align:center;letter-spacing:.1em}
.pc-tag.dk{background:#333}
.pc-bd{padding:36px 28px 32px}
.pc-am{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.pc-s{font-family:var(--en);font-size:22px;font-weight:700}
.pc-sl{font-size:22px;margin:0 4px}
.pc-n{font-family:var(--en);font-size:48px;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.pc-y{font-size:20px;font-weight:700;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.pc-tx{font-size:13px;color:#999;margin-left:2px}
.pc-ft{margin-top:20px;list-style:none}
.pc-ft li{font-size:14px;color:var(--sub);padding:5px 0 5px 18px;position:relative;line-height:1.6}
.pc-ft li::before{content:'●';position:absolute;left:0;top:8px;font-size:8px;color:#333}
.pc-note{margin-top:28px;font-size:18px;font-weight:700;line-height:2}

/* SCHEDULE */
.sch{margin-top:28px;text-align:center}
.sch img{max-width:100%;height:auto}
.sch-t{font-size:18px;font-weight:700;margin-bottom:24px}
.sch-hd{display:flex;justify-content:space-between;font-size:13px;color:var(--sub);margin-bottom:8px;padding:0 20px}
.sch-days{display:flex;justify-content:center;gap:6px}
.sch-d{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;border-radius:8px}
.sch-d.dk{background:#333}.sch-d.gr{background:var(--grad)}
.sch-ft{margin-top:8px;font-size:13px;font-weight:700}
.sch-bar{margin:10px 20px 0;height:8px;background:var(--grad);border-radius:4px}
.sch-desc{margin-top:16px;font-size:13px;color:#888;line-height:1.6}
.spd-note{margin-top:24px;font-size:18px;font-weight:700;line-height:2}

/* REDUCE */
.red-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:28px;border:1px solid #eee;border-radius:12px;overflow:hidden}
.red-i{display:flex;align-items:center;justify-content:center;padding:24px;background:#fff}
.red-i:nth-child(1){border-right:1px solid #eee;border-bottom:1px solid #eee}
.red-i:nth-child(2){border-bottom:1px solid #eee}
.red-i:nth-child(3){border-right:1px solid #eee}
.red-i img{max-width:100px}
.red-desc{margin-top:28px;font-size:18px;font-weight:700;line-height:2}

/* FAQ */
.faq{padding:60px 40px;background:var(--bg)}
.faq-hd{margin-bottom:28px}
.faq-t{font-size:26px;font-weight:900;margin-top:8px}
.faq-item{background:#fff;border-radius:12px;margin-bottom:20px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.faq-q{display:flex;align-items:center;padding:28px 24px;cursor:pointer;gap:14px;user-select:none}
.faq-ic{width:36px;height:36px;min-width:36px;border-radius:50%;background:#333;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-size:14px;font-weight:700}
.faq-ic.ans{background:#fff;border:2px solid #333;color:#333}
.faq-qt{flex:1;font-size:18px;font-weight:600;line-height:1.5}
.faq-tg{font-size:24px;color:#999;min-width:20px;text-align:center;line-height:1}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-item.open .faq-a{max-height:600px}
.faq-ai{padding:8 24px 32px 24px;display:flex;gap:14px;align-items:flex-start}
.faq-at{font-size:18px;font-weight:700;line-height:1.8}

/* SERVICE */
.svc{padding:60px 40px}
.svc-t{font-size:26px;font-weight:900;line-height:1.5;margin-top:8px}
.acc{border-top:1px solid var(--bdr)}
.acc:last-of-type{border-bottom:1px solid var(--bdr)}
.acc-h{display:flex;align-items:center;justify-content:space-between;padding:20px 0;cursor:pointer;user-select:none}
.acc-ht{font-size:18px;font-weight:700}
.acc-tg{font-size:24px;color:#999}
.acc-b{max-height:0;overflow:hidden;transition:max-height .5s ease}
.acc.open .acc-b{max-height:5000px}
.acc-bi{padding:12px 8px 32px}

/* FLOW CARDS */
.fl-card{border:none;border-radius:0;margin:0 12px;max-width:100%;padding:24px 24px 28px;box-shadow:2px 4px 16px rgba(0,0,0,.12),-2px -2px 10px rgba(0,0,0,.05)}
.fl-card-hd{display:block;padding:16px 28px;font-size:19px;font-weight:700;color:#fff;text-align:center;letter-spacing:.05em;border-radius:0}
.fl-card-hd.dk{background:#333}
.fl-card-hd.ol-gr{position:relative;background:none;font-size:22px;font-weight:800;padding:18px 28px;-webkit-text-fill-color:transparent;background-image:var(--grad);-webkit-background-clip:text;background-clip:text}
.fl-card-hd.ol-gr::before{content:'';position:absolute;inset:0;border:5px solid transparent;border-image:linear-gradient(135deg,#9b59b6,#e74c6f,#e67e22) 1;pointer-events:none}
.fl-card-hd.gd{background:var(--grad)}
.fl-card-hd.yl{background:#ffe100;color:#333;font-size:17px;padding:12px 24px}
.fl-card-hd.gd-or{background:linear-gradient(135deg,#e67e22,#e74c6f)}
.fl-card.border-gr{box-shadow:2px 4px 16px rgba(0,0,0,.12),-2px -2px 10px rgba(0,0,0,.05)}
.fl-card-bd{padding:18px 4px 0;font-size:18px;color:var(--txt);line-height:1.8}
.fl-card-sub{margin-top:16px}
.fl-card-sub .fl-card-hd{margin:0 0 8px;font-size:17px;padding:12px 24px;border-radius:0}
.fl-card-sub .fl-card-bd{padding:0 0 12px;font-size:17px;color:var(--sub)}
.fl-arr{text-align:center;font-size:28px;color:#999;padding:14px 0;font-weight:700}
.fl-close{text-align:center;margin-top:24px;cursor:pointer}
.fl-close-x{font-size:28px;color:#333}
.fl-close-t{font-size:12px;font-family:var(--en);color:#666}

/* SIZE */
.sz-intro{font-size:18px;line-height:1.8;margin-bottom:24px}
.sz-grid{}
.sz-item{padding:28px 0;border-top:1px dashed #ccc}
.sz-nm{font-size:18px;font-weight:700}
.sz-name{font-size:24px;font-weight:900}
.sz-sp{font-size:16px;color:var(--sub);margin-top:4px}
.sz-mk{text-align:center;padding:24px 0;height:140px;display:flex;align-items:center;justify-content:center}
.sz-mk img{max-height:130px;width:auto;max-width:160px;margin:0 auto}
.sz-d{font-size:18px;line-height:1.8}
.sz-u{font-size:15px;color:var(--sub);margin-top:8px}
.sz-custom{margin-top:28px;padding-top:28px;border-top:1px dashed #ccc;font-size:18px;font-weight:700;line-height:1.8}
.sz-custom-n{font-size:14px;color:#999;font-weight:400;margin-top:8px}

/* SPEC */
.sp-t{font-size:20px;font-weight:900;margin-bottom:16px}
.sp-tbl{width:100%;font-size:17px}
.sp-tbl tr{display:flex;gap:16px;padding:6px 0}
.sp-tbl td:first-child{min-width:130px;font-weight:700}
.sp-tbl td:last-child{font-weight:700}
.ex-box{background:var(--bg);border-radius:12px;padding:24px;margin-top:24px}
.ex-box h4{font-size:18px;font-weight:700;margin-bottom:12px}
.ex-box ul{list-style:none}
.ex-box li{font-size:16px;color:var(--sub);padding:4px 0}
.ex-box li::before{content:'・'}

/* INSTRUCTION */
.ins-method{background:var(--bg);border-radius:12px;padding:24px;margin-bottom:20px;text-align:center}
.ins-method-t{display:inline-block;background:#333;color:#fff;padding:8px 32px;border-radius:24px;font-size:15px;font-weight:700;margin-bottom:12px}
.ins-grid{display:flex;flex-direction:column;gap:24px}

/* CTA */
.cta{padding:40px 40px 50px;text-align:center}
.cta-t{font-size:20px;font-weight:700;line-height:1.8;margin-bottom:24px;text-align:left}
.cta-btn{display:inline-block;background:var(--grad);color:#fff;font-size:17px;font-weight:700;padding:16px 56px;border-radius:40px;text-decoration:none;letter-spacing:.08em;box-shadow:0 4px 20px rgba(142,68,173,.3);transition:transform .2s,box-shadow .2s}
.cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(142,68,173,.4)}

/* AI VIDEO */
.aiv{padding:60px 40px;background:linear-gradient(180deg,#fff,#f8f0ff)}
.aiv-t{font-family:var(--en);font-size:72px;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center}
.aiv-st{margin-top:12px;font-size:24px;font-weight:700;text-align:center}
.aiv-d{margin-top:20px;font-size:20px;font-weight:700;line-height:1.8}
.aiv-n{margin-top:12px;font-size:15px;color:#555;line-height:1.7}
.aiv-img{margin-top:28px;border-radius:12px;overflow:hidden}
.aiv-img video{display:block}

/* FIXED BOTTOM BAR */
.fixed-bar{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 -2px 16px rgba(0,0,0,.1);transform:translateY(100%);opacity:0;transition:transform .4s ease,opacity .4s ease}
.fixed-bar.show{transform:translateY(0);opacity:1}
.fixed-bar-contact{display:inline-block;background:#333;color:#fff;font-family:var(--en);font-size:13px;font-weight:700;padding:14px 28px;border-radius:32px;text-decoration:none;letter-spacing:.08em;transition:background .2s}
.fixed-bar-contact:hover{background:#555}
.fixed-bar-cta{display:inline-block;background:var(--grad);color:#fff;font-size:14px;font-weight:700;padding:14px 36px;border-radius:32px;text-decoration:none;letter-spacing:.06em;box-shadow:0 4px 16px rgba(142,68,173,.25);transition:transform .2s,box-shadow .2s;flex:1;text-align:center;max-width:260px}
.fixed-bar-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(142,68,173,.35)}

/* ===== SP (under 780px) ===== */
/* ===== SP (under 780px) ===== */
@media(max-width:779px){
  .hero{
    padding:0 24px;
    aspect-ratio: 9 / 16;
    width: 100%;
    max-height: 100svh;
    min-height: unset;
  }
  .hero-video{
    object-fit: fill;
  }
  .whats,.reason,.faq,.svc,.cta,.aiv,.solution{padding-left:24px;padding-right:24px}
  .whats-img img{max-width:300px;margin:0 auto}
  .challenges{padding-left:0;padding-right:0}
  .challenges .inner>.en-label,.challenges .inner>.challenges-t{padding:0 24px}
  .whats-t{font-size:40px}.whats-d{font-size:16px}
  .challenges-t{font-size:24px}
  .trouble-card{margin-left:24px;margin-right:24px}
  .reason-t{font-size:44px}.pc-n{font-size:40px}.pc-s{font-size:18px}
  .aiv-t{font-size:56px}.svc-t{font-size:24px}
  .reason02-img{margin-top:28px}
  .reason03-img{margin-top:28px}
  .reason03-img img{width:100%;border-radius:12px}
  .ft{padding-bottom:80px}
  .reason{padding-top:80px}  /* ← スペース追加 */
}
@media(max-width:480px){
  .whats-t{font-size:34px}.reason-t{font-size:36px}
  .pc-n{font-size:36px}
  .sch-d{width:48px;height:48px;font-size:16px}
  .aiv-t{font-size:44px}
}

/* ===== PC (780px+) ===== */
@media(min-width:780px){
 .hero-nav{display:block;top:32px;right:28px;}
  .hero {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
  .hero-catch-img{max-width:720px;width:85%}
  .hero-logo-img{max-width:640px;width:80%}
  .hero-sub-img{max-width:640px;width:72%}
  .hero-bottom{display:flex;align-items:flex-end;justify-content:center;padding:40px 0 0;position:relative}
  .hero-scroll-wrap{flex:1}
  .hero-cta-btn{display:inline-block;background:var(--grad);color:#fff;font-size:16px;font-weight:700;padding:16px 48px;border-radius:40px;text-decoration:none;letter-spacing:.06em;box-shadow:0 4px 20px rgba(142,68,173,.3);transition:transform .2s,box-shadow .2s;white-space:nowrap;position:fixed;right:0;bottom:40px;z-index: 1000;}
  .hero-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(142,68,173,.4)}
  .whats{padding:100px 60px 100px}
  .whats-inner{display:flex;align-items:center;gap:60px}
  .whats-text{flex:1;max-width:560px}
  .whats-img{flex:0 0 auto;margin-top:0}
  .whats-img img{max-width:300px}
  .whats-t{font-size:52px}
  .whats-d{font-size:16px;line-height:2}
  .challenges{padding:70px 60px 60px}
  .challenges .inner>.en-label,.challenges .inner>.challenges-t{padding:0}
  .trouble-cards-wrap{display:flex;gap:24px;margin-top:36px}
  .trouble-card{margin:0;flex:1}
  .challenges-t{font-size:28px}
  .solution{padding:0 60px 80px}
  .solution-t{font-size:32px}
  .reason{padding:200px 60px}
  .reason.has-tri{padding-bottom:120px}
  .reason-t{font-size:56px}
  .pc-cards-wrap{display:flex;gap:28px;margin-top:32px}
  .pc-cards-wrap .pc{flex:1;margin-top:0;border-radius:20px}
  .pc-note{font-size:16px}
  .reason02-grid{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto auto;gap:0 48px}
  .reason02-hd{grid-column:1;grid-row:1}
  .reason02-img{grid-column:2;grid-row:1 / 3;align-self:center}
  .reason02-note{grid-column:1;grid-row:2;align-self:start}
  .sch{max-width:100%;margin:0}
  .spd-note{margin-top:24px;font-size:16px}
  .reason03-grid{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto auto;gap:0 48px}
  .reason03-hd{grid-column:1;grid-row:1}
  .reason03-img{grid-column:2;grid-row:1 / 3;align-self:center}
  .reason03-img img{width:100%;border-radius:12px}
  .reason03-note{grid-column:1;grid-row:2;align-self:start}
  .red-desc{margin-top:24px;font-size:16px}
  .faq{padding:80px 60px}
  .faq-qt{font-size:18px}
  .faq-item{max-width:100%}
    .faq-q {
    padding: 32px 32px;
  }
  .faq-ai {
    padding: 8px 32px 40px 32px;
  }
  .faq-item {
    margin-bottom: 24px;
  }
  .svc{padding:80px 60px}
  .sz-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
  .sz-mk{height:180px;display:flex;align-items:center;justify-content:center}
  .sz-mk img{max-height:160px;width:auto;max-width:200px}
  .ins-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}
  .cta{padding:60px 60px 70px}
  .cta-t{text-align:center;font-size:22px}
  .cta-btn{display:block;max-width:480px;margin:0 auto;text-align:center;padding:18px 56px}
  .aiv{padding:80px 60px}
  .aiv-inner{display:block;text-align:center}
  .aiv-text{max-width:700px;margin:0 auto}
  .aiv-text .aiv-t,.aiv-text .aiv-st,.aiv-text .aiv-d,.aiv-text .aiv-n{text-align:center}
  .aiv-img{max-width:700px;margin:32px auto 0}
  .fixed-bar{display:none}
}
@media(min-width:780px){
  .hero-bottom {
    position: absolute;  /* flexのフローから外す */
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0px 80px;
  }
}