@charset "utf-8";

:root{
  --navy:#12234a;
  --navy-dark:#0b1c3f;
  --gold:#c08a1d;
  --gold-light:#fbe6a8;
  --orange:#e2801a;
  --orange-light:#f0a12a;
  --bg:#f2f5fa;
  --text:#12234a;
  --text-sub:#4a5877;
  --gray:#8a97b2;
  --line:#e6eaf1;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:#e9edf3;
  color:var(--text);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img{max-width:100%;border:0;vertical-align:bottom;}
p{margin:0;}
h2,h3{margin:0;}
a{color:var(--navy);text-decoration:none;}
a:hover{color:var(--gold);}
input,select,button{font-family:inherit;}

.page{
  width:430px;
  max-width:100%;
  margin:0 auto;
  background:#fff;
  position:relative;
}

/* ---------- FV ---------- */
.fv{line-height:0;}
.fv img{width:100%;display:block;}

/* ---------- CTA ---------- */
.btn-cta{
  display:block;
  width:100%;
  text-align:center;
  background:linear-gradient(180deg,var(--orange-light) 0%,var(--orange) 100%);
  color:#fff;
  font-size:21px;
  font-weight:900;
  padding:17px 0 16px;
  border-radius:999px;
  box-shadow:0 6px 14px rgba(226,128,26,.38);
}
.btn-cta:hover{color:#fff;opacity:.94;}
.btn-cta--sm{font-size:19px;padding:14px 0;box-shadow:0 5px 12px rgba(226,128,26,.35);}
.pulse{animation:ctaPulse 2.6s ease-in-out infinite;}
@keyframes ctaPulse{0%,100%{transform:scale(1);}50%{transform:scale(.975);}}

.cta-top{padding:18px 20px 24px;}
.cta-note{margin-top:8px;text-align:center;font-size:13px;font-weight:700;color:#6b7896;}

.cta-fixed{
  position:sticky;
  bottom:0;
  padding:9px 14px 11px;
  background:rgba(255,255,255,.95);
  border-top:1px solid var(--line);
}

/* ---------- section headings ---------- */
.sec-head{position:relative;text-align:center;}
.ghost{
  position:absolute;left:0;right:0;top:-8px;
  font-size:54px;font-weight:900;letter-spacing:.06em;
  color:#e3e9f2;line-height:1;pointer-events:none;
}
.sec-head__in{position:relative;}
.kicker{font-size:15px;font-weight:700;color:var(--gold);}
.h2{position:relative;font-size:30px;font-weight:900;line-height:1.35;}
.marker{background:linear-gradient(transparent 66%,var(--gold-light) 66%);padding:0 4px;}
.case-tabs{
  margin-top:14px;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;
}
.case-tab{
  border:1px solid #d7deea;background:#fff;color:var(--navy);
  font-size:12px;font-weight:700;line-height:1.3;padding:8px 10px;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;gap:4px;white-space:nowrap;
}
.case-tab span{color:var(--gold);font-size:10px;}
.case-tab:hover{border-color:var(--orange);}
.case-tab.is-active{background:var(--navy);border-color:var(--navy);color:#fff;}
.case-tab.is-active span{color:#e8b62c;}

.swipe-nav{
  margin-top:14px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:16px;
}
.swipe-arrow{
  width:40px;height:40px;border-radius:50%;border:1px solid #d7deea;background:#fff;
  color:var(--navy);font-size:22px;font-weight:900;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.swipe-arrow:hover{border-color:var(--orange);color:var(--orange);}
.swipe-arrow[disabled]{opacity:.35;cursor:default;}
.swipe-dots{display:flex;gap:7px;}
.swipe-dot{
  width:8px;height:8px;border-radius:50%;background:#cfd9e8;border:0;padding:0;cursor:pointer;
}
.swipe-dot.is-active{background:var(--orange);width:22px;border-radius:999px;}

.wedge-down{height:26px;background:var(--bg);clip-path:polygon(0 0,100% 26px,100% 100%,0 100%);}
.wedge-up{height:26px;background:var(--bg);clip-path:polygon(0 26px,100% 0,100% 100%,0 100%);}

/* ---------- cases ---------- */
.sec-cases{padding:8px 0 44px;background:var(--bg);}
.sec-cases .sec-head{padding:0 18px;}
.swipe{
  margin-top:18px;
  display:flex;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scroll-padding-left:18px;
  padding:4px 18px 8px;
  scrollbar-width:none;
}
.swipe::-webkit-scrollbar{display:none;}
.case{
  flex:0 0 300px;
  scroll-snap-align:start;
  background:#fff;
  border-radius:12px;
  box-shadow:0 6px 16px rgba(18,35,74,.09);
  overflow:hidden;
}
.case__photo{position:relative;height:172px;}
.case__photo img{width:100%;height:100%;object-fit:cover;}
.case__who{
  position:absolute;left:0;top:14px;
  background:var(--navy);color:#fff;
  font-size:13px;font-weight:700;padding:5px 12px;border-radius:0 4px 4px 0;
}
.case__body{padding:16px 16px 20px;}
.case__route{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:17px;font-weight:900;}
.case__route .from{color:var(--gray);}
.arw{color:var(--gold);}
.case__salary{margin-top:14px;display:flex;align-items:flex-end;gap:10px;}
.case__salary .lbl{font-size:12px;font-weight:700;color:var(--gray);}
.case__salary .nums{display:flex;align-items:baseline;gap:6px;}
.case__salary .before{font-size:19px;font-weight:700;color:#9aa5bb;text-decoration:line-through;}
.case__salary .after{font-size:36px;font-weight:900;line-height:1;}
.case__salary .up{
  margin-bottom:3px;background:#e8b62c;
  font-size:16px;font-weight:900;border-radius:4px;padding:3px 8px;
}
.case__period{margin-top:12px;font-size:13px;font-weight:700;color:#3c4a68;}
.case__period b{font-size:18px;font-weight:900;}
.case__lead{
  margin-top:14px;padding-top:14px;border-top:1px dashed #dde3ee;
  font-size:17px;font-weight:900;line-height:1.6;color:var(--gold);
}
.case__text{margin-top:8px;font-size:14.5px;line-height:1.95;color:var(--text-sub);}

/* ---------- voices ---------- */
.voices{margin-top:26px;padding:0 18px;}
.voices__title{text-align:center;font-size:16px;font-weight:900;}
.voice{margin-top:12px;display:flex;gap:10px;align-items:flex-start;}
.voice--sub{margin-top:14px;}
.avatar{flex:0 0 64px;width:64px;height:64px;border-radius:50%;object-fit:cover;}
.bubble{
  flex:1;position:relative;background:#fff;border-radius:12px;padding:11px 14px;
  font-size:14.5px;line-height:1.85;color:var(--text-sub);
  box-shadow:0 3px 10px rgba(18,35,74,.06);
}
.bubble::before{
  content:"";position:absolute;left:-6px;top:16px;
  width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;
  border-right:7px solid #fff;
}
.bubble--gray{background:var(--bg);box-shadow:none;font-size:14px;line-height:1.8;}
.bubble--gray::before{border-right-color:var(--bg);}
.bubble .who{margin-top:6px;font-size:13px;font-weight:700;color:var(--gray);}

/* ---------- reasons ---------- */
.sec-reasons{padding:40px 18px 44px;}
.sec-reasons .sec-head{margin-bottom:32px;}
.h2--reason{font-size:28px;line-height:1.45;}
.h2--reason .big{font-size:36px;}
.h2--reason .three{color:var(--gold);font-size:49px;}
.reason{position:relative;margin-top:44px;}
.reason:first-of-type{margin-top:0;}
.reason__no{
  position:absolute;left:-4px;top:-18px;
  font-size:81px;font-weight:900;line-height:1;color:#eef2f8;letter-spacing:-.04em;
}
.reason__in{position:relative;}
.reason__title{
  font-size:29px;font-weight:900;line-height:1.4;letter-spacing:-.02em;
  word-break:keep-all;overflow-wrap:anywhere;
}
.reason__sub{
  margin-top:12px;display:inline-block;background:var(--navy);color:#fff;
  font-size:16px;font-weight:900;line-height:1.7;padding:8px 14px;border-radius:6px;
  word-break:keep-all;overflow-wrap:anywhere;
}
.reason__illust{
  margin-top:16px;width:100%;height:120px;object-fit:contain;
  background:var(--bg);border-radius:10px;
}
.reason__text{margin-top:14px;font-size:15.5px;line-height:2.05;color:var(--text-sub);}

/* ---------- flow ---------- */
.sec-flow{padding:26px 18px 44px;background:var(--bg);}
.sec-flow .sec-head{margin-bottom:28px;}
.timeline{position:relative;padding-left:46px;}
.timeline::before{content:"";position:absolute;left:17px;top:8px;bottom:14px;width:2px;background:#cfd9e8;}
.step{position:relative;display:flex;gap:12px;align-items:flex-start;margin-top:26px;}
.step:first-child{margin-top:0;}
.step__no{
  position:absolute;left:-46px;top:0;width:36px;height:36px;border-radius:50%;
  background:var(--navy);color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;line-height:1;
  font-size:17px;font-weight:900;box-shadow:0 0 0 4px var(--bg);
}
.step__no i{font-size:10px;font-style:normal;font-weight:700;letter-spacing:.06em;}
.step__body{flex:1;}
.step__title{font-size:20px;font-weight:900;line-height:1.4;}
.step__text{margin-top:6px;font-size:14.5px;line-height:1.95;color:var(--text-sub);}
.step__icon{flex:0 0 66px;width:66px;height:66px;border-radius:8px;object-fit:contain;}

/* ---------- faq ---------- */
.sec-faq{padding:38px 18px 42px;}
.sec-faq .sec-head{margin-bottom:24px;}
.faq{margin-top:16px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.faq__q{display:flex;gap:10px;align-items:flex-start;font-size:17px;font-weight:900;line-height:1.6;}
.faq__q span{flex:none;font-size:20px;line-height:1.2;}
.faq__a{margin-top:10px;display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.95;color:var(--text-sub);}
.faq__a span{flex:none;font-size:20px;font-weight:900;color:var(--gold);line-height:1.2;}

/* ---------- entry form (EFO) ---------- */
.efo-block{padding:34px 16px 36px;background:#eef3f9;}
.efo-block--top{background:#fff;padding-top:8px;}
.efo-wrap{max-width:400px;margin:0 auto;}
.efo-head{position:relative;text-align:center;}
.efo-head__ja{position:relative;font-size:21px;font-weight:700;line-height:1.6;}
.efo-head__ja b{font-size:29px;font-weight:900;}
.efo-balloon{
  position:relative;display:block;width:-moz-fit-content;width:fit-content;margin:16px auto 0;
  background:var(--navy);color:#fff;font-size:15px;font-weight:900;border-radius:999px;padding:6px 22px;
}
.efo-balloon::after{
  content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;
  width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;
  border-top:8px solid var(--navy);
}
.efo-card{
  margin-top:18px;background:#fff;border-radius:14px;padding:18px 16px 22px;
  box-shadow:0 6px 18px rgba(18,35,74,.08);
}
.efo-dots{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
.efo-dot{
  width:26px;height:26px;border-radius:50%;background:#eaeef5;color:var(--gray);
  font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;
}
.efo-dot.is-done{background:var(--navy);color:#fff;}
.efo-dot.is-current{background:var(--orange);color:#fff;}

.efo-stage{opacity:1;}
.efo-stage.is-swap{animation:efoSwap .26s ease both;}
@keyframes efoSwap{from{opacity:0;transform:translateX(10px);}to{opacity:1;transform:none;}}

.efo-q{margin-top:18px;font-size:19px;font-weight:900;line-height:1.6;text-align:center;}
.efo-opts{margin-top:14px;display:grid;gap:8px;}
.efo-opts--1{grid-template-columns:1fr;}
.efo-opts--2{grid-template-columns:1fr 1fr;}
.efo-opt{
  width:100%;border:1px solid #d7deea;background:#fff;color:var(--navy);
  font-size:15px;font-weight:700;padding:15px 10px;border-radius:10px;cursor:pointer;line-height:1.4;
}
.efo-opt:hover{border-color:var(--orange);}
.efo-opt.is-on{background:var(--navy);border-color:var(--navy);color:#fff;}
.efo-agree{
  margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:14px;color:var(--text-sub);cursor:pointer;
}
.efo-agree input{width:16px;height:16px;}
.efo-agree a{text-decoration:underline;}

.efo-birth{margin-top:14px;display:flex;align-items:center;gap:6px;justify-content:center;}
.efo-birth span{font-size:14px;font-weight:700;}
.efo-sel{
  border:1px solid #d7deea;border-radius:8px;padding:12px 8px;font-size:15px;background:#fff;color:var(--navy);
}
.efo-f{margin-top:14px;}
.efo-f__label{font-size:14px;font-weight:700;}
.efo-f__in{
  margin-top:6px;width:100%;border:1px solid #d7deea;border-radius:8px;padding:14px 12px;font-size:16px;
}
.efo-f__err{display:none;margin-top:6px;font-size:13px;font-weight:700;color:#c0392b;}
.efo-f.is-err .efo-f__in{border-color:#c0392b;background:#fff6f5;}
.efo-f.is-err .efo-f__err{display:block;}

.efo-nav{margin-top:18px;display:flex;gap:8px;}
.efo-btn{
  flex:1;border:0;color:#fff;font-size:18px;font-weight:900;padding:16px 0;border-radius:999px;cursor:pointer;
}
.efo-btn--next{background:linear-gradient(180deg,var(--orange-light) 0%,var(--orange) 100%);}
.efo-btn--next[disabled]{background:#c3cbd9;cursor:default;}
.efo-btn--back{flex:0 0 34%;background:#fff;border:1px solid #d7deea;color:var(--text-sub);font-size:15px;}

.efo-done{text-align:center;padding:20px 4px;}
.efo-done__mark{
  width:52px;height:52px;margin:0 auto;border-radius:50%;background:var(--navy);color:#fff;
  font-size:26px;font-weight:900;display:flex;align-items:center;justify-content:center;
}
.efo-done__t{margin-top:14px;font-size:21px;font-weight:900;}
.efo-done__p{margin-top:10px;font-size:15px;line-height:1.9;color:var(--text-sub);}

.efo-note{margin-top:14px;text-align:center;font-size:12.5px;color:var(--gray);line-height:1.8;}

/* ---------- footer ---------- */
.footer{background:var(--navy-dark);color:#9fb0cd;padding:24px 20px 84px;text-align:center;}
.footer__nav{display:flex;justify-content:center;gap:18px;font-size:13px;}
.footer__nav a{color:#c6d3e6;}
.footer__copy{margin-top:14px;font-size:12px;color:#6d80a2;}
