:root{
  --ink:#1c2b3a;--mut:#5e6d7c;--bg:#f7f9fc;--paper:#ffffff;--line:#e2e8f0;
  --navy:#18234a;--teal:#00b6a8;--teal-d:#00998e;--ice:#e8f7f5;--maxw:1140px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.85;font-size:15.5px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

header.site{position:sticky;top:0;z-index:50;background:rgba(24,35,74,.97);color:#fff;box-shadow:0 2px 14px rgba(24,35,74,.25)}
.top{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.logo{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1.4rem;letter-spacing:.02em}
.logo img{width:30px;height:30px;border-radius:8px}
.logo span{color:#fff}
.logo .jp{font-size:.7rem;color:#aeb9dd;letter-spacing:.14em;font-weight:600;display:block}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.6rem;cursor:pointer}
nav.main{display:flex;gap:18px;align-items:center;font-size:.93rem;font-weight:600}
nav.main a{padding:5px 2px;border-bottom:2px solid transparent;color:#cfd6ee}
nav.main a:hover,nav.main a.active{color:#fff;border-color:var(--teal)}
.btn{display:inline-block;background:var(--teal);color:#fff;padding:12px 28px;border-radius:8px;font-weight:800;font-size:.95rem;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,182,168,.32)}
.btn.ghost{background:transparent;color:var(--teal-d);border:1.5px solid var(--teal)}
.btn.sm{padding:8px 18px;font-size:.85rem}

.hero{padding:66px 0 58px;background:linear-gradient(160deg,#18234a,#1f3a68);color:#fff;overflow:hidden;position:relative}
.hero:after{content:"αβ";position:absolute;right:-30px;top:10px;font-family:"Georgia",serif;font-size:16rem;font-weight:800;color:rgba(0,182,168,.08)}
.hero .in{position:relative;z-index:2}
.hero .kicker{display:inline-block;background:rgba(0,182,168,.25);color:#7ef0e4;padding:5px 16px;border-radius:30px;font-size:.78rem;letter-spacing:.1em;font-weight:700;margin-bottom:18px}
.hero h1{font-size:clamp(1.9rem,5.4vw,3.5rem);font-weight:800;line-height:1.2}
.hero h1 em{font-style:normal;color:#5fe6d8}
.hero .sub{margin:18px 0 0;max-width:660px;color:#c8d2ee;font-size:1.06rem}
.hero .lead{margin-top:24px;display:flex;gap:34px;flex-wrap:wrap;color:#b8c4e4;font-size:.88rem}
.hero .lead b{display:block;font-size:1.6rem;font-family:"Georgia",serif;color:#5fe6d8}
.hero .cta-row{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.btn.white{background:#fff;color:var(--navy)}

section.blk{padding:52px 0}
section.blk.tint{background:var(--ice)}
h2.sec{font-size:1.5rem;font-weight:800;margin-bottom:6px}
h2.sec .en{display:block;font-size:.74rem;color:var(--teal-d);letter-spacing:.26em;font-family:"Georgia",serif;text-transform:uppercase;margin-bottom:6px}
p.sec-sub{color:var(--mut);margin-bottom:28px;max-width:680px}

.grid{display:grid;gap:18px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.feat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;transition:transform .15s,box-shadow .15s}
.feat:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(24,35,74,.08)}
.feat .num{width:44px;height:44px;border-radius:12px;background:var(--navy);color:var(--teal);display:grid;place-items:center;font-family:"Georgia",serif;font-size:1.2rem;font-weight:800;margin-bottom:14px}
.feat h3{font-size:1.08rem;margin-bottom:8px}
.feat p{color:var(--mut);font-size:.92rem}

.logo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.logo-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center;font-weight:800;color:var(--navy)}
.logo-item small{display:block;font-weight:500;color:var(--mut);font-size:.74rem;margin-top:4px}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px
;text-align:center}
.step .no{width:40px;height:40px;margin:0 auto 12px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800}
.step b{font-size:.98rem}
.step p{font-size:.84rem;color:var(--mut);margin-top:6px}

.pricerow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.price{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 6px 22px rgba(24,35,74,.06)}
.price.hot{border:2px solid var(--teal)}
.price .pname{font-weight:800;font-size:1.05rem;color:var(--navy)}
.price .pdesc{color:var(--mut);font-size:.86rem;margin:6px 0 16px}
.price ul{margin-left:18px;color:var(--mut);font-size:.88rem}
.price li{margin-bottom:7px}

.note{background:var(--ice);border-left:4px solid var(--teal);padding:16px 20px;border-radius:6px;color:#2c5a54;font-size:.9rem;margin-top:24px}
.narrow{max-width:860px!important}
.faq{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:10px 0}
.faq summary{cursor:pointer;font-weight:700;color:var(--navy)}
.faq .a{margin-top:10px;color:var(--mut);font-size:.92rem}
.cta-band{background:linear-gradient(160deg,#18234a,#1f3a68);border-radius:16px;padding:46px 38px;text-align:center;color:#fff}
.cta-band h2{font-size:1.6rem;font-weight:800}
.cta-band p{color:#c8d2ee;margin:10px 0 22px}

footer.site{border-top:3px solid var(--teal);margin-top:48px;padding:38px 0;color:var(--mut);font-size:.87rem;background:#eef2f8}
.ft{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap}
.ft .logo{color:var(--navy)}
.ft nav{display:flex;gap:16px;flex-wrap:wrap;font-weight:600}
.ft nav a:hover{color:var(--teal-d)}

@media(max-width:960px){
  .nav-toggle{display:block}
  nav.main{position:fixed;top:64px;left:0;right:0;background:var(--navy);flex-direction:column;align-items:flex-start;padding:18px 24px;gap:15px;display:none}
  nav.main.open{display:flex}
  .g3,.g2,.pricerow{grid-template-columns:1fr}
  .logo-row{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .hero{padding:48px 0 44px}
  section.blk{padding:38px 0}
}