:root {
  --ink: #2F3234;
  --slate: #334155;
  --blue: #3694C9;
  --pale: #EBF4F9;
  --lgray: #F0F0F0;
  --line: #DCE6EE;
  --yellow: #EBD043;
  --yellow-dark: #d9bf2e;
  --btn-ink: #3A3F45;
  --lineg: #06C755;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #e8eef3; }
body {
  margin: 0;
  color: var(--ink);
  background: #e8eef3;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }

/* 幅430px上限のスマホキャンバス。cqw で画像に対する比率固定 */
.lp-canvas {
  width: min(100%, 430px);
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 0 60px rgba(54, 148, 201, .18);
  container-type: inline-size;
  padding-bottom: 96px; /* 固定CTAぶん */
}
.slice { position: relative; margin: 0; padding: 0; line-height: 1.45; }
.slice > img { display: block; width: 100%; height: auto; margin: 0; }

.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}

/* ---- 共通部品 ---- */
.overlay { position: absolute; z-index: 2; }
.band { position: relative; z-index: 2; background: #fff; }

.btn-cta {
  display: flex; align-items: center; justify-content: center; gap: 2.2cqw;
  width: 100%; min-height: 12.5cqw;
  border-radius: 999px;
  background: var(--yellow);
  color: var(--btn-ink); font-weight: 900; font-size: 4.5cqw; letter-spacing: .02em;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(58, 63, 69, .18), inset 0 -3px 0 rgba(0, 0, 0, .10);
}
.btn-cta::before {
  content: ""; width: 6cqw; height: 6cqw; flex: none; border-radius: 50%;
  background: var(--lineg) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23ffffff' d='M12 3C6.5 3 2 6.6 2 11c0 2.7 1.6 5 4.1 6.5L5.5 21l4-2.2c.8.2 1.6.2 2.5.2 5.5 0 10-3.6 10-8S17.5 3 12 3z'/></svg>") center/68% no-repeat;
}
.btn-cta--form::before {
  background: var(--blue) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23ffffff' d='M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm0 3v1l7 4 7-4V7l-7 4-7-4z'/></svg>") center/62% no-repeat;
}
.btn-cta:active { background: var(--yellow-dark); }

.tel-line {
  display: flex; flex-direction: column; align-items: center; margin-top: 2cqw;
  color: var(--ink); text-decoration: none; line-height: 1.2;
}
.tel-line span { font-size: 2.7cqw; font-weight: 700; color: var(--slate); }
.tel-line strong { font-size: 5.6cqw; font-weight: 900; letter-spacing: .04em; }
.tel-line--light, .tel-line--light span { color: #fff; }
.micro { margin: 1.2cqw 0 0; font-size: 2.35cqw; line-height: 1.5; color: var(--slate); text-align: center; }
.micro--light { color: rgba(255,255,255,.9); }
.contact-options { display: grid; grid-template-columns: 1fr 1fr; gap: 2cqw; margin-top: 2.2cqw; }
.contact-option {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 11cqw; padding: 1.5cqw; border: 1px solid var(--line); border-radius: 16px;
  background: #fff; color: var(--ink); text-decoration: none; line-height: 1.3;
}
.contact-option span { font-size: 2.65cqw; font-weight: 700; color: var(--slate); }
.contact-option strong { margin-top: .5cqw; font-size: 3.25cqw; font-weight: 900; }
.contact-option--line { border-color: rgba(6,199,85,.42); }
.contact-option--line strong { color: #058d3d; }
.contact-option--tel { border-color: rgba(54,148,201,.42); }
.contact-option--tel strong { color: #2379aa; }

/* ---- 1 FV：画像の直下に白い帯を足してCTAを置く（画像内の余白は使わない） ---- */
.hero-cta { padding: 3.5cqw 6% 5cqw; }
.hero-cta .btn-cta { min-height: 12.5cqw; }
.hero-cta .micro { margin-top: 2cqw; text-align: left; }

/* ---- 4 5事業（最下部の淡青帯 y84.6%〜） ---- */
.mid-cta { left: 8%; right: 8%; top: 87.2%; }
.mid-cta .btn-cta { min-height: 11.8cqw; font-size: 4.3cqw; }
.mid-cta .micro { margin-top: 1.4cqw; }

/* ---- 5 正直開示（最下部の白余白 y87.6%〜） ---- */
.facts-note { left: 5%; right: 5%; top: 88.6%; }
.facts-note p { margin: 0 0 .8cqw; font-size: 2.35cqw; line-height: 1.5; color: var(--slate); }

/* ---- 8 最終CTA（青帯。本文下端 y75.5%〜） ---- */
.final-cta { left: 8%; right: 8%; top: 78.4%; }
.final-cta .btn-cta { min-height: 12cqw; }
.final-cta .tel-line { flex-direction: row; justify-content: center; gap: 2cqw; align-items: baseline; margin-top: 1.4cqw; }
.final-cta .tel-line span { font-size: 2.7cqw; }
.final-cta .tel-line strong { font-size: 4.8cqw; }
.final-cta .micro { margin-top: .8cqw; }

/* ---- 7.5 相談フォーム ---- */
.inquiry-section {
  padding: 12cqw 6% 11cqw; background: linear-gradient(180deg, #fff 0%, var(--pale) 100%);
}
.section-kicker { margin: 0 0 2cqw; color: var(--blue); font: 600 2.7cqw/1.2 Poppins, sans-serif; letter-spacing: .12em; }
.inquiry-section h2 { margin: 0; font-size: 7cqw; line-height: 1.35; letter-spacing: -.035em; }
.inquiry-lead { margin: 3cqw 0 5cqw; font-size: 3.35cqw; line-height: 1.8; color: var(--slate); }
.contact-form { padding: 5cqw; border-radius: 24px; background: #fff; box-shadow: 0 14px 36px rgba(32,79,110,.12); }
.form-grid { display: grid; gap: 4cqw; }
.form-field { display: grid; gap: 1.5cqw; }
.form-field > span { font-size: 3cqw; font-weight: 800; }
.form-field b, .form-field em { display: inline-block; margin-left: 1cqw; padding: .45cqw 1.2cqw; border-radius: 999px; font-size: 2.2cqw; font-style: normal; }
.form-field b { color: #fff; background: var(--blue); }
.form-field em { color: var(--slate); background: var(--lgray); }
.form-field input, .form-field select, .form-field textarea {
  width: 100%; min-height: 12cqw; padding: 2.6cqw 3cqw; border: 1px solid #cbd9e3; border-radius: 12px;
  background: #fff; color: var(--ink); font: inherit; font-size: 3.5cqw; line-height: 1.5;
}
.form-field textarea { min-height: 28cqw; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 3px solid rgba(54,148,201,.2); border-color: var(--blue); }
.privacy-check { display: flex; gap: 2cqw; margin: 4.5cqw 0; align-items: flex-start; font-size: 2.75cqw; line-height: 1.65; color: var(--slate); }
.privacy-check input { width: 5cqw; height: 5cqw; flex: none; margin-top: .3cqw; accent-color: var(--blue); }
.privacy-check a { color: #176d9d; font-weight: 700; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-button {
  width: 100%; min-height: 13cqw; border: 0; border-radius: 999px; background: var(--yellow); color: var(--btn-ink);
  font: 900 4.2cqw/1.3 "Noto Sans JP", sans-serif; box-shadow: 0 10px 24px rgba(58,63,69,.18), inset 0 -3px 0 rgba(0,0,0,.1); cursor: pointer;
}
.form-button:disabled { opacity: .55; cursor: wait; }
.form-status { min-height: 1.5em; margin: 2cqw 0 0; color: #a13b2e; font-size: 2.8cqw; font-weight: 700; text-align: center; }
.form-status.is-success { color: #08783a; }
.form-note { margin: 1.5cqw 0 0; font-size: 2.55cqw; line-height: 1.6; color: var(--slate); text-align: center; }
.form-note a { color: #176d9d; font-weight: 800; }
.form-done { padding: 4cqw 1cqw; text-align: center; }
.form-done h3 { margin: 0 0 2cqw; color: #08783a; font-size: 5cqw; }
.form-done p { margin: 0; font-size: 3.2cqw; line-height: 1.8; }
.alternate-contact { margin-top: 5cqw; }
.alternate-contact > p { margin: 0; text-align: center; font-size: 3cqw; font-weight: 800; }

/* ---- フッター（青帯の続き） ---- */
.site-footer {
  margin: 0; padding: 4cqw 6% 5cqw; background: #2585C2; color: #fff; text-align: center; /* slice_08の青帯の実測色 rgb(37,133,194) に合わせる */
}
.site-footer p { margin: 0 0 .8cqw; font-size: 2.5cqw; line-height: 1.55; }
.site-footer .co { font-weight: 900; font-size: 3cqw; margin-bottom: 1.4cqw; }
.site-footer .legal { margin-top: 2cqw; font-size: 2.2cqw; color: rgba(255,255,255,.85); text-align: left; }

/* ---- 固定3導線 ---- */
.sticky-contact {
  position: fixed; left: 50%; bottom: max(10px, env(safe-area-inset-bottom)); z-index: 20;
  transform: translateX(-50%);
  display: grid; grid-template-columns: 1.45fr 1fr 1fr;
  width: min(calc(100% - 22px), 408px); min-height: 62px; overflow: hidden;
  border: 1px solid rgba(255,255,255,.8); border-radius: 18px; background: #fff;
  box-shadow: 0 12px 34px rgba(20, 40, 60, .30);
}
.sticky-contact a { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 7px 5px; color: var(--ink); text-decoration: none; }
.sticky-contact a + a { border-left: 1px solid var(--line); }
.sticky-contact__form { background: var(--yellow); }
.sticky-contact small { font-size: 9px; font-weight: 700; opacity: .82; }
.sticky-contact strong { font-size: 14px; font-weight: 900; letter-spacing: .02em; }

@media (min-width: 431px) {
  body { padding: 22px 0; }
  .lp-canvas { border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
