*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  background:#0b1524;
  color:#e8eef6;
  line-height:1.75;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.wrap{max-width:980px;margin:0 auto;padding:0 22px}
.wrap.narrow{max-width:640px}

[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
[data-reveal].is-in{opacity:1;transform:none}

.hero{
  position:relative;
  min-height:min(92vh,820px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}
.hero-media{
  position:absolute;inset:-8% 0 -8% 0;
  will-change:transform;
}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-shade{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,18,32,.35) 0%,rgba(8,18,32,.82) 70%,#0b1524 100%);
}
.hero-inner{position:relative;z-index:1;width:100%;max-width:980px;margin:0 auto;padding:0 22px 72px}
.eyebrow{margin:0 0 14px;font-size:12px;letter-spacing:.22em;font-weight:700;opacity:.85}
.hero h1{margin:0;font-size:clamp(30px,5.2vw,48px);line-height:1.28;font-weight:800;letter-spacing:.02em}
.hero-lead{margin:18px 0 0;max-width:32em;font-size:16px;line-height:1.9;opacity:.95}
.btn{
  display:inline-block;margin-top:28px;background:#f2f7ff;color:#0d2a48;
  font-weight:800;text-decoration:none;padding:15px 30px;border:none;cursor:pointer;font-size:15px;
}
.btn:hover{opacity:.92}

.band{padding:72px 0}
.band--dark{background:#0b1524}
.band h2{margin:0 0 24px;font-size:clamp(22px,3vw,30px);font-weight:800}
.pain{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pain li{
  padding:16px 18px 16px 20px;
  border-left:3px solid #5b9fd4;
  background:rgba(255,255,255,.04);
  font-weight:650;font-size:15px;
}

.split{display:grid;grid-template-columns:1.05fr .95fr;min-height:520px;background:#111c2d}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.split-img img{width:100%;height:100%;min-height:320px;object-fit:cover}
.split-copy{padding:56px 40px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:860px){.split-copy{padding:40px 22px}}
.label{margin:0 0 10px;font-size:11px;letter-spacing:.2em;color:#7eb3e0;font-weight:700}
.split-copy h2{margin:0;font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1.4}
.split-copy > p{margin:16px 0 0;color:#b8c6d8;font-size:15px}
.checks{margin:22px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.checks li{padding-left:1.2em;position:relative;font-size:14px;font-weight:600}
.checks li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;background:#5b9fd4;border-radius:50%}

.section{padding:80px 0;background:#f3f6fa;color:#1a2a3a}
.section--muted{background:#e8eef5}
.section h2{margin:0 0 28px;font-size:clamp(22px,3vw,30px);font-weight:800}
.grid-3{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.grid-3{grid-template-columns:1fr}}
.card{background:#fff;padding:24px 22px;border:1px solid rgba(20,40,60,.08)}
.card h3{margin:0 0 8px;font-size:16px}
.card p{margin:0;color:#5a6a7a;font-size:14px;line-height:1.8}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:s}
.steps li{
  counter-increment:s;display:grid;gap:4px;
  background:#fff;padding:18px 18px 18px 58px;position:relative;
  border:1px solid rgba(20,40,60,.08);
}
.steps li::before{
  content:counter(s);position:absolute;left:16px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;border-radius:50%;background:#1a4a6e;color:#fff;
  font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;
}
.steps strong{font-size:15px}
.steps span{font-size:13px;color:#5a6a7a}

.voices{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media(max-width:700px){.voices{grid-template-columns:1fr}}
.voices blockquote{margin:0;background:#fff;padding:22px;border:1px solid rgba(20,40,60,.08)}
.voices p{margin:0;font-size:15px;line-height:1.85}
.voices cite{display:block;margin-top:12px;font-style:normal;font-size:12px;color:#1a5f8f;font-weight:700}

.faq details{background:#fff;border:1px solid rgba(20,40,60,.08);padding:14px 16px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:700;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:10px 0 0;color:#5a6a7a;font-size:14px}

.final{background:#0f2a4a;color:#fff;padding:80px 0}
.final h2{margin:0 0 8px;font-size:clamp(22px,3vw,30px);font-weight:800}
.final > .wrap > p{opacity:.9;margin:0 0 24px}
.form{display:grid;gap:12px}
.form label{display:grid;gap:4px;font-size:13px;font-weight:600}
.form input,.form textarea{
  font:inherit;padding:12px 14px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);color:#fff;
}
.form input::placeholder,.form textarea::placeholder{color:rgba(255,255,255,.5)}
.form .btn{justify-self:start;margin-top:4px;background:#fff;color:#0f2a4a}
.form-note{font-size:12px;opacity:.7;margin:8px 0 0}
.site-footer{padding:28px 0;text-align:center;color:#8a9aaa;font-size:12px;background:#0b1524}
.site-footer p{margin:0}
