/* Google Fonts を使う場合はテーマ側で読み込み推奨（functions.php参照） */

:root{
  --primary:#004080;
  --accent:#002b5c;
  --bg-card:#fff;
  --bg-light:#f9f9f9;
  --text-main:#222;
  --text-sub:#555;
  --border:#e6eaf0;
  --btn-grad:linear-gradient(90deg,#004080 70%,#0596d3 100%);
}

body{
  margin:0;
  padding:0;
  font-family:'Montserrat',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  color:var(--text-main);
  background:#fff;
}

/* layout */
.section-main{max-width:1080px;margin:48px auto 0;padding:0 1rem;}
.section-flex{display:flex;gap:2.2em;align-items:flex-start;}
@media (max-width:900px){.section-flex{flex-direction:column;gap:1.4em;}}

/* columns */
.section-flex>.info-area,.section-flex>.form-area{flex:1 1 0;min-width:0;}
.info-area .card,.flow-steps,.items-list{margin-bottom:1.4em;}

/* headings */
.section-main h2{
  font-size:1.7rem;font-weight:700;color:var(--primary);
  margin:.1em 0 .55em;position:relative;text-align:left;
}
@media (max-width:900px){.section-main h2{text-align:center;}}
.section-main h2 small{display:block;font-size:1rem;font-weight:400;color:var(--text-sub);margin-top:.15em;}
.section-main h2::after{
  content:'';position:absolute;bottom:-6px;left:0;width:48px;height:4px;background:var(--primary);border-radius:2px;
}
@media (max-width:900px){.section-main h2::after{left:50%;transform:translateX(-50%);}}

/* card */
.card{
  background:var(--bg-card);border-radius:14px;padding:1.4em 1.2em;
  border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.06);
}
@media (max-width:700px){.card{padding:1em .8em;}}

/* lists */
.items-list{list-style:disc inside;margin:0;padding:0;color:var(--text-sub);}
.items-list li{margin:.32em 0;line-height:1.6;}

/* steps */
.flow-steps{display:flex;flex-direction:column;gap:1.1em;}
.flow-step{display:flex;align-items:flex-start;gap:1em;}
.flow-step-number{
  flex-shrink:0;width:2.1em;height:2.1em;border-radius:50%;
  background:var(--primary);color:#fff;font-weight:700;font-size:1rem;
  display:flex;align-items:center;justify-content:center;
}
.flow-step-content h3{margin:0 0 .28em;font-size:1.06rem;color:var(--primary);}
.flow-step-content p{margin:0;line-height:1.6;color:var(--text-sub);}
@media (max-width:640px){.flow-step{flex-direction:column;}}

/* form card */
.form-area .form-card{
  background:#fff;border-radius:14px;border:1.5px solid #e2eaf5;
  box-shadow:0 2px 10px -8px #00408033;padding:2em 1.2em 1.2em;
  max-width:520px;margin:0 auto;text-align:center;position:relative;
}
.form-area h2{
  font-size:1.12rem;color:var(--primary);font-weight:700;margin:.2em 0 .55em;
  position:relative;display:inline-block;
}
.form-area h2::after{
  content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  width:32px;height:4px;background:var(--primary);border-radius:2px;
}
.form-desc{color:var(--text-sub);font-size:.99em;margin-bottom:1em;}

/* emphasis & notes */
.emph{color:var(--primary);font-weight:600;}
.sim-note{margin-top:7px;color:#888;font-size:.96em;}
.form-note{margin-top:1em;text-align:center;font-size:.95em;color:#888;}

/* phone button */
.apply-phone-link{
  display:inline-block;color:#fff;background:var(--btn-grad);
  font-weight:700;font-size:1.12em;padding:.72em 2.1em;border-radius:28px;
  text-decoration:none;margin:.4em 0 1.1em;letter-spacing:.01em;
  box-shadow:0 2px 10px -4px #00408066;transition:background .18s,opacity .14s;
}
.apply-phone-link:hover{background:linear-gradient(90deg,#0596d3 80%,#004080 100%);opacity:.95;color:#fff;}

/* or divider */
.form-or-divider{
  text-align:center;margin:1.1em 0 1.2em;color:#888;font-weight:600;font-size:.98em;letter-spacing:.04em;
}
.form-or-divider:before,.form-or-divider:after{
  content:'';display:inline-block;height:1px;width:38%;background:#e3e7ee;vertical-align:middle;margin:0 1.1em;
}
@media (max-width:700px){.form-card{padding:1.1em .6em 1em;max-width:100%;}}

/* simulator button */
.simulation-link-box{margin:0 auto 1.5em;text-align:center;}
.simulation-link-btn{
  display:inline-block;background:var(--btn-grad);color:#fff;font-weight:700;
  font-size:1.08em;padding:.78em 2.5em;border-radius:32px;text-decoration:none;
  box-shadow:0 4px 18px -7px #00408040;margin-top:.2em;transition:background .18s,opacity .14s;letter-spacing:.01em;border:none;outline:none;
}
.simulation-link-btn:hover{background:linear-gradient(90deg,#0596d3 80%,#004080 100%);opacity:.94;color:#fff;}
@media (max-width:700px){.simulation-link-btn{width:97%;font-size:1em;padding:.9em 0;}}

/* ===== オーバーレイ一式（閉じる＋ナビ付き） ===== */
.is-hidden{display:none!important;}

.coming-soon-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,0.96);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 9999;
  padding: 2em;
  pointer-events: auto;
}

.coming-soon-content {
  max-width: 640px;
  background: #fff;
  border: 2px solid var(--primary);
  border-radius: 14px;
  padding: 2.2em 1.6em 1.6em;
  box-shadow: 0 4px 18px rgba(0,0,0,.08);
  position: relative;
}

.coming-soon-content h2 {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--primary);
  margin: 0 0 .6em;
}

.coming-soon-content p {
  font-size: 1.05rem;
  color: var(--text-sub);
  line-height: 1.6;
  margin: 0;
}

.cs-close{
  position:absolute;top:10px;right:12px;border:none;background:transparent;
  font-size:1.8rem;line-height:1;cursor:pointer;color:#6b7a90
}
.cs-close:hover{opacity:.75}

.cs-nav-btns{
  display:flex;gap:.6em;flex-wrap:wrap;justify-content:center;margin-top:1.1em
}
.cs-nav-btns a{
  display:inline-block;text-decoration:none;border:1px solid var(--border);
  padding:.62em 1.1em;border-radius:999px;font-weight:700;font-size:.95rem;
  background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06);color:var(--primary);
}
.cs-nav-btns a:hover{opacity:.9}

.cs-note{margin-top:.9em;color:#8893a1;font-size:.9rem;}