@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

:root{
  --navy:#0F2A47;
  --navy-deep:#0A1E33;
  --blue:#1E5C97;
  --gold:#E4A93B;
  --gold-dark:#C98E22;
  --bg:#F6F8FA;
  --bg-soft:#EEF2F6;
  --card:#FFFFFF;
  --text:#1F2937;
  --muted:#6B7280;
  --border:#E1E7EE;
  --error:#D6453D;
  --ok:#2E7D53;
  --radius:14px;
  --shadow:0 6px 24px rgba(15,42,71,.08);
  --maxw:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
section{padding:64px 0;}
h1,h2,h3{margin:0;line-height:1.5;}
.eyebrow{
  display:inline-block;font-size:13px;font-weight:700;letter-spacing:.08em;
  color:var(--blue);background:#E7F0FA;padding:5px 14px;border-radius:99px;margin-bottom:14px;
}
.sec-title{font-size:26px;font-weight:900;color:var(--navy);text-align:center;margin-bottom:10px;}
.sec-sub{text-align:center;color:var(--muted);font-size:14.5px;margin-bottom:40px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:99px;font-weight:700;cursor:pointer;
  font-family:inherit;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-cta{
  background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  color:#432D06;padding:16px 30px;font-size:16px;box-shadow:0 10px 24px rgba(201,142,34,.35);
}
.btn-cta:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(201,142,34,.42);}
.btn-ghost{
  background:transparent;border:1.5px solid rgba(255,255,255,.5);color:#fff;padding:10px 20px;font-size:14px;
}
.btn-outline{
  background:#fff;border:1.5px solid var(--border);color:var(--navy);padding:12px 22px;font-size:14.5px;
}

/* header */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(15,42,71,.96);backdrop-filter:saturate(160%) blur(6px);
  color:#fff;
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo{display:flex;align-items:center;gap:9px;font-weight:900;font-size:17px;letter-spacing:.02em;}
.logo .mark{
  width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));
  display:flex;align-items:center;justify-content:center;color:var(--navy-deep);font-size:16px;font-weight:900;
}
.header-tel{display:none;font-size:12.5px;color:#CFE0F2;}
@media(min-width:768px){.header-tel{display:block;}}

/* hero */
.hero{
  background:radial-gradient(1100px 500px at 15% -10%, #1a4571 0%, var(--navy) 55%, var(--navy-deep) 100%);
  color:#fff;padding:56px 0 60px;
}
.hero .wrap{display:grid;gap:28px;}
@media(min-width:900px){.hero .wrap{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;}}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.badge{font-size:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);padding:6px 12px;border-radius:99px;}
.hero h1{font-size:clamp(24px,4.4vw,38px);font-weight:900;margin-bottom:16px;}
.hero h1 .hl{color:var(--gold);}
.hero p{color:#CFE0F2;font-size:15px;margin-bottom:26px;max-width:52ch;}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.hero-note{font-size:12.5px;color:#AFC7E2;margin-top:10px;}
.hero-panel{
  background:#fff;color:var(--text);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);
}
.hero-panel h3{font-size:15px;color:var(--navy);margin-bottom:12px;}
.hero-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;}
.hero-panel li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text);}
.hero-panel li .ic{color:var(--ok);font-weight:900;}

/* pain points */
.pain{background:var(--bg);}
.grid-4{display:grid;gap:16px;grid-template-columns:1fr;}
@media(min-width:640px){.grid-4{grid-template-columns:1fr 1fr;}}
@media(min-width:980px){.grid-4{grid-template-columns:repeat(4,1fr);}}
.pain-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 18px;text-align:center;
}
.pain-card .q{font-size:26px;margin-bottom:10px;}
.pain-card p{font-size:13.5px;color:var(--muted);margin:0;}

/* features */
.features{background:var(--bg-soft);}
.grid-3{display:grid;gap:18px;grid-template-columns:1fr;}
@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.feat-card{background:var(--card);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow);}
.feat-card .num{
  width:36px;height:36px;border-radius:10px;background:var(--navy);color:#fff;font-weight:900;
  display:flex;align-items:center;justify-content:center;font-size:14px;margin-bottom:14px;
}
.feat-card h3{font-size:16px;color:var(--navy);margin-bottom:8px;}
.feat-card p{font-size:13.5px;color:var(--muted);margin:0;}

/* flow */
.flow{background:var(--bg);}
.flow-list{display:grid;gap:14px;grid-template-columns:1fr;counter-reset:flow;}
@media(min-width:768px){.flow-list{grid-template-columns:repeat(4,1fr);}}
.flow-item{
  position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:24px 18px 18px;counter-increment:flow;
}
.flow-item::before{
  content:counter(flow);position:absolute;top:-14px;left:18px;width:30px;height:30px;border-radius:50%;
  background:var(--gold);color:var(--navy-deep);font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;
}
.flow-item h3{font-size:14.5px;color:var(--navy);margin:6px 0 8px;}
.flow-item p{font-size:12.8px;color:var(--muted);margin:0;}

/* advisors */
.advisors{background:var(--bg-soft);}
.grid-2{display:grid;gap:18px;grid-template-columns:1fr;}
@media(min-width:700px){.grid-2{grid-template-columns:1fr 1fr;}}
.adv-card{background:var(--card);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:flex;gap:16px;}
.avatar{
  flex:none;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--navy));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:17px;
}
.adv-card h3{font-size:15px;color:var(--navy);margin-bottom:4px;}
.adv-role{font-size:12px;color:var(--gold-dark);font-weight:700;margin-bottom:8px;}
.adv-card p{font-size:13px;color:var(--muted);margin:0;}

/* voice */
.voice{background:var(--bg);}
.grid-3-v{display:grid;gap:16px;grid-template-columns:1fr;}
@media(min-width:768px){.grid-3-v{grid-template-columns:repeat(3,1fr);}}
.voice-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;}
.voice-card .stars{color:var(--gold-dark);font-size:13px;margin-bottom:8px;}
.voice-card p{font-size:13.5px;color:var(--text);margin:0 0 12px;}
.voice-card .who{font-size:12px;color:var(--muted);}

/* topics */
.topics{background:var(--bg-soft);}
.chip-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.chip{background:var(--card);border:1px solid var(--border);border-radius:99px;padding:9px 16px;font-size:13px;color:var(--navy);}

/* price */
.price{background:var(--bg);}
.price-box{
  max-width:640px;margin:0 auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:30px;text-align:center;border:1.5px solid var(--gold);
}
.price-box .amount{font-size:34px;font-weight:900;color:var(--navy);margin:6px 0 10px;}
.price-box .amount span{font-size:15px;font-weight:500;color:var(--muted);}
.price-box p{font-size:13px;color:var(--muted);margin:0;}

/* faq */
.faq{background:var(--bg-soft);}
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:10px;}
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.faq-q{
  width:100%;text-align:left;background:none;border:none;padding:16px 18px;font-family:inherit;
  font-size:14px;font-weight:700;color:var(--navy);display:flex;justify-content:space-between;gap:12px;cursor:pointer;
}
.faq-q .arrow{transition:transform .2s ease;color:var(--gold-dark);}
.faq-item.open .faq-q .arrow{transform:rotate(180deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{padding:0 18px 16px;margin:0;font-size:13px;color:var(--muted);}

/* notice */
.notice{background:var(--bg);}
.notice-box{max-width:760px;margin:0 auto;background:#FBF6EA;border:1px solid #EAD6A0;border-radius:12px;padding:20px 22px;}
.notice-box p{font-size:12.5px;color:#6B5a2e;margin:0 0 6px;}
.notice-box p:last-child{margin-bottom:0;}

/* form section */
.form-sec{background:var(--navy-deep);color:#fff;}
.form-sec .sec-title{color:#fff;}
.form-sec .sec-sub{color:#AFC7E2;}
.form-shell{
  max-width:640px;margin:0 auto;background:#fff;color:var(--text);border-radius:18px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.35);
}
.progress-wrap{padding:20px 24px 0;}
.progress-label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:8px;font-weight:700;}
.progress-track{height:6px;background:var(--bg-soft);border-radius:99px;overflow:hidden;}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--blue),var(--gold));width:20%;transition:width .3s ease;}
.step-dots{display:flex;justify-content:space-between;padding:10px 24px 0;}
.dot{width:26px;height:26px;border-radius:50%;background:var(--bg-soft);color:var(--muted);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.dot.active{background:var(--blue);color:#fff;}
.dot.done{background:var(--ok);color:#fff;}
.step-panel{padding:26px 24px 28px;display:none;}
.step-panel.active{display:block;animation:fadein .25s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.step-title{font-size:16px;font-weight:900;color:var(--navy);margin-bottom:4px;}
.step-desc{font-size:12.5px;color:var(--muted);margin-bottom:18px;}
.field{margin-bottom:18px;}
.field label.flabel{display:block;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(min-width:480px){.tile-grid.cols3{grid-template-columns:1fr 1fr 1fr;}}
.tile{
  border:1.5px solid var(--border);border-radius:11px;padding:13px 12px;font-size:13px;text-align:center;
  cursor:pointer;font-weight:600;color:var(--text);background:#fff;transition:all .15s ease;user-select:none;
}
.tile:hover{border-color:var(--blue);}
.tile.selected{border-color:var(--blue);background:#E7F0FA;color:var(--navy);box-shadow:0 0 0 3px rgba(30,92,151,.12);}
textarea,input[type=text],input[type=tel],input[type=email]{
  width:100%;border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;font-size:14px;
  font-family:inherit;color:var(--text);background:#fff;
}
textarea:focus,input:focus{outline:none;border-color:var(--blue);}
textarea{resize:vertical;min-height:80px;}
.radio-row{display:flex;gap:10px;}
.radio-row .tile{flex:1;}
.err{color:var(--error);font-size:12px;margin-top:6px;display:none;}
.field.has-err .err{display:block;}
.field.has-err input,.field.has-err textarea{border-color:var(--error);}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);}
.consent input{margin-top:3px;}
.consent a{color:var(--blue);text-decoration:underline;}
.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px;}
.btn-back{background:none;border:none;color:var(--muted);font-weight:700;font-size:13.5px;cursor:pointer;padding:10px 4px;}
.btn-next{
  background:var(--navy);color:#fff;padding:13px 26px;border-radius:99px;border:none;font-weight:700;font-size:14px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;
}
.btn-next:hover{background:var(--blue);}
.btn-next.loading{opacity:.75;pointer-events:none;}
.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite;display:none;}
.btn-next.loading .spinner{display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* footer */
.site-footer{background:var(--navy-deep);color:#9FB6CF;padding:40px 0 26px;font-size:12.5px;}
.site-footer .wrap{display:flex;flex-direction:column;gap:14px;}
.site-footer .flogo{color:#fff;font-weight:900;font-size:15px;}
.foot-links{display:flex;flex-wrap:wrap;gap:16px;}
.foot-links a{text-decoration:none;color:#9FB6CF;}
.foot-fine{color:#6E86A0;line-height:1.7;}

.sr-note{font-size:11px;color:#9FB6CF;text-align:center;margin-top:14px;}
