/* ==========================================================================
   家族未来会議® LP ― 共通設定
   ========================================================================== */

:root{
  --color-brand:#468ab5;
  --color-brand-dark:#1B5A8C;
  --color-pale-blue:#DCEAF4;
  --color-pale-blue-2:#eef4f8;
  --color-pale-blue-3:#f4f8fa;
  --color-line-blue:#b6d1e0;
  --color-line-blue-2:#cddfe9;
  --color-line-blue-3:#dbe4ea;
  --color-cta-green:#3F9A6B;
  --color-accent-yellow:#F0D06B;
  --color-highlight-yellow:#FFE9A3;
  --color-risk-red:#B5544A;
  --text-dark:#1f2a33;
  --text-base:#3d4a55;
  --text-note:#5b6b78;
}

*,*::before,*::after{box-sizing:border-box}

html{
  scroll-behavior:smooth;
}

section[id]{
  scroll-margin-top:16px;
}

/* ==========================================================================
   スクロールリビール（要素が画面に入ったらフェードアップ）
   ========================================================================== */

[data-reveal]{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
  will-change:opacity, transform;
}

[data-reveal].is-revealed{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion: reduce){
  [data-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

body{
  margin:0;
  font-family:'Noto Sans JP', sans-serif;
  color:var(--text-base);
  background:#fff;
}

img{max-width:100%}

/* ==========================================================================
   01. FIRST VIEW ― ヒーロー
   ========================================================================== */

.fv{
  position:relative;
  overflow:hidden;
  padding:38px 40px 78px;
  text-align:center;
}

.fv__bg-grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(70,138,181,.55) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(70,138,181,.55) 1px, transparent 1px);
  background-size:20px 20px;
}

.fv__bg-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:rgba(70,138,181,.9);
}

.fv__watermark{
  position:absolute;
  width:340px;
  right:60px;
  top:10px;
  opacity:.1;
  pointer-events:none;
  filter:brightness(0) invert(1);
}

.fv__logo{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  margin-bottom:30px;
}

.fv__logo img{
  height:26px;
  width:auto;
  display:block;
  filter:brightness(0) invert(1);
}

.fv__logo span{
  font-size:15px;
  font-weight:700;
  color:#fff;
  letter-spacing:.06em;
}

.fv__inner{
  position:relative;
  max-width:1120px;
  margin:0 auto;
}

.fv__eyebrow{
  font-size:12px;
  letter-spacing:.14em;
  color:#eaf3f9;
  margin:0 0 20px;
}

.fv__eyebrow--sp{display:none}

.fv__title{
  font-family:'Noto Sans JP', sans-serif;
  font-size:44px;
  font-weight:700;
  line-height:1.5;
  color:#fff;
  margin:0;
  letter-spacing:.01em;
}

.fv__title-highlight{
  color:var(--color-highlight-yellow);
  border-bottom:2px solid var(--color-highlight-yellow);
}

.fv__title-tsumeoi{
  margin-right:-0.12em;
}

.fv__title-tail--sp{display:none}

.fv__subcopy{
  font-size:19px;
  font-weight:500;
  color:#fff;
  margin:22px 0 0;
  letter-spacing:.01em;
}

br.is-sp{display:none}

.fv__assess{
  position:relative;
  max-width:590px;
  margin:30px auto 0;
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:150px;
  box-shadow:0 4px 18px rgba(27,90,140,.07);
}

.fv__assess-icon{
  position:absolute;
  left:185px;
  top:-23px;
  color:var(--color-brand);
  pointer-events:none;
}

.fv__assess-top{
  padding:9px 26px;
  position:relative;
}

.fv__assess-top p,
.fv__assess-bottom{
  font-size:15.5px;
  color:#2b3540;
  line-height:1.8;
  margin:0;
}

.fv__marker{
  color:var(--text-dark);
  background:linear-gradient(transparent 62%, #cfe3ef 62%);
  padding:0 2px;
  font-weight:700;
}

.fv__assess-divider{
  height:1px;
  background:repeating-linear-gradient(90deg, var(--color-line-blue-3) 0 5px, transparent 5px 10px);
}

.fv__assess-bottom{
  padding:9px 26px;
  background:#F7FAFC;
  border-bottom-left-radius:150px;
  border-bottom-right-radius:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  flex-wrap:wrap;
}

.fv__arrow-tag{
  flex:none;
  display:inline-block;
  background:var(--color-brand);
  color:#fff;
  font-size:12.5px;
  font-weight:700;
  line-height:1;
  padding:8px 20px 8px 13px;
  clip-path:polygon(0 0, calc(100% - 9px) 0, 100% 50%, calc(100% - 9px) 100%, 0 100%);
  white-space:nowrap;
}

.fv__note{
  font-size:13.5px;
  color:#eaf3f9;
  margin:14px 0 0;
}

.fv__cta-wrap{
  display:flex;
  justify-content:center;
  margin-top:26px;
}

/* CTA ボタン（共通コンポーネント） */

.cta-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--color-cta-green);
  color:#fff;
  font-size:16px;
  font-weight:700;
  padding:17px 46px;
  border:2px solid #fff;
  border-radius:100px;
  box-shadow:0 5px 0 rgba(14,59,38,.45), 0 10px 22px rgba(14,59,38,.25);
  text-decoration:none;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease;
}

.cta-btn svg{flex:none}

.cta-btn:hover,
.cta-btn:focus-visible{
  transform:translateY(3px);
  box-shadow:0 2px 0 rgba(14,59,38,.45), 0 6px 14px rgba(14,59,38,.22);
}

/* ==========================================================================
   FV 数値円セクション
   ========================================================================== */

.fv-stats{
  position:relative;
  background:#fff;
  padding:28px 40px 26px;
}

.fv-stats__bg-grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(70,138,181,.16) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(70,138,181,.16) 1px, transparent 1px);
  background-size:20px 20px;
}

.fv-stats__inner{
  position:relative;
}

.fv-stats__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  justify-items:center;
  gap:24px;
  max-width:660px;
  margin:-85px auto 0;
}

.stat-circle{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  width:260px;
  height:260px;
  padding:30px 34px;
  border-radius:50%;
  border:2px solid var(--color-brand);
  box-shadow:0 4px 20px rgba(27,90,140,.1);
  background:linear-gradient(135deg, #fff 0% 50%, #EFF2F4 50% 100%);
}

.stat-circle__icon-wrap{
  margin-bottom:12px;
}

.stat-circle__icon{
  width:40px;
  height:40px;
  color:var(--color-brand);
}

.stat-circle__label{
  font-size:14.5px;
  font-weight:700;
  color:#1c2833;
  margin:0;
  line-height:1.85;
}

.stat-circle__marker{
  background:var(--color-pale-blue);
  padding:1px 3px;
}

.stat-circle__hairline{
  width:28px;
  height:1px;
  background:#a9c4d6;
  margin:13px 0 11px;
}

.stat-circle__value{
  font-size:26px;
  font-weight:900;
  color:var(--color-brand);
  margin:0;
  line-height:1.1;
  letter-spacing:-.01em;
}

.stat-circle__value-num{
  font-size:34px;
}

.stat-circle__ref{
  font-size:11px;
  font-weight:500;
  vertical-align:super;
  color:#4d5a66;
}

.stat-circle__desc{
  font-size:11.5px;
  color:#4d5a66;
  margin:8px 0 0;
  line-height:1.65;
}

.fv-stats__sources{
  position:relative;
  margin:14px auto 0;
  max-width:900px;
}

.fv-stats__sources p{
  font-size:11px;
  color:#4d5a66;
  margin:0;
  line-height:1.9;
}

br.is-pc{display:inline}

/* ==========================================================================
   共通コンポーネント（02以降のセクションで使う）
   ========================================================================== */

.sec{
  position:relative;
  padding:62px 44px 66px;
}

.sec__inner{
  position:relative;
  max-width:1000px;
  margin:0 auto;
}

.bg-pattern{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.bg-pattern--dot{
  background-image:radial-gradient(rgba(70,138,181,.16) 1.2px, transparent 1.2px);
  background-size:18px 18px;
}

.bg-pattern--grid-07{
  background-image:
    linear-gradient(to right, rgba(70,138,181,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(70,138,181,.07) 1px, transparent 1px);
  background-size:20px 20px;
}

.bg-pattern--grid-16{
  background-image:
    linear-gradient(to right, rgba(70,138,181,.16) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(70,138,181,.16) 1px, transparent 1px);
  background-size:20px 20px;
}

.bg-pattern--diagonal-blue{
  background-image:repeating-linear-gradient(45deg, rgba(70,138,181,.09) 0 1px, transparent 1px 9px);
}

.bg-pattern--diagonal-gray{
  background-image:repeating-linear-gradient(45deg, rgba(60,60,58,.07) 0 1px, transparent 1px 9px);
}

.bg-pattern--diagonal-red{
  background-image:repeating-linear-gradient(45deg, rgba(181,84,74,.09) 0 1px, transparent 1px 9px);
}

.bg-pattern--grid-white{
  background-image:
    linear-gradient(to right, rgba(255,255,255,.09) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.09) 1px, transparent 1px);
  background-size:20px 20px;
}

.sec-label{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}

.sec-label span:first-child{
  position:relative;
  z-index:15;
  flex:none;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--color-brand);
  text-shadow:0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff;
}

.sec-label__line{
  flex:1;
  height:1px;
  background:#e3e9ee;
}

.sec-h2{
  font-family:'Noto Sans JP', sans-serif;
  font-size:29px;
  font-weight:700;
  line-height:1.6;
  color:var(--text-dark);
  margin:0;
  letter-spacing:.01em;
  text-align:center;
}

.sec-lead{
  font-size:14.5px;
  color:var(--text-base);
  margin:20px 0 0;
  line-height:1.85;
  text-align:center;
}

.text-brand{color:var(--color-brand)}

.underline-solid{
  color:var(--color-brand);
  text-decoration:underline var(--color-brand);
  text-decoration-thickness:2px;
  text-underline-offset:7px;
}

.underline-solid--yellow{
  color:var(--color-highlight-yellow);
  text-decoration-color:var(--color-highlight-yellow);
  text-decoration-thickness:3px;
  text-underline-offset:8px;
}

.underline-solid--red{
  color:var(--color-risk-red);
  text-decoration-color:var(--color-risk-red);
}

.underline-wavy{
  text-decoration:underline wavy var(--color-brand-dark);
  text-decoration-thickness:2px;
  text-underline-offset:8px;
}

.underline-wavy--yellow{
  color:var(--color-highlight-yellow);
  text-decoration-color:var(--color-highlight-yellow);
}

.marker{
  background:linear-gradient(transparent 62%, var(--color-pale-blue) 62%);
  padding:0 2px;
}

.marker--yellow{
  color:var(--text-dark);
  background:linear-gradient(transparent 62%, var(--color-accent-yellow) 62%);
  padding:0 2px;
}

.marker--doc{
  color:#fff;
  background:linear-gradient(transparent 62%, rgba(240,208,107,.45) 62%);
  padding:0 2px;
}

/* アコーディオン */

.accordion-list{
  display:flex;
  flex-direction:column;
  gap:9px;
}

.accordion{
  border:1px solid var(--color-line-blue-3);
  background:#fff;
  border-radius:6px;
}

.accordion__summary{
  padding:16px 20px;
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  gap:14px;
}

.accordion__summary::-webkit-details-marker{display:none}

.accordion__summary--split{
  justify-content:space-between;
}

.accordion__title{
  flex:none;
  font-size:14.5px;
  font-weight:700;
  color:var(--color-brand-dark);
}

.accordion__lead{
  flex:1;
  font-size:13px;
  color:var(--text-note);
}

.accordion__icon{
  flex:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--color-brand);
  position:relative;
}

.accordion__icon::before,
.accordion__icon::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#fff;
  border-radius:1px;
  transform:translate(-50%,-50%);
}

.accordion__icon::before{width:11px;height:2px}
.accordion__icon::after{width:2px;height:11px;transition:opacity .15s ease}

.accordion[open] .accordion__icon::after{opacity:0}

.accordion__body{
  padding:16px 20px 18px;
  display:flex;
  flex-direction:column;
  gap:7px;
  border-top:1px solid #eef2f5;
  background:#f7f8f9;
  border-radius:0 0 6px 6px;
}

.accordion__body p{
  font-size:13px;
  color:var(--text-base);
  margin:0;
  line-height:1.8;
}

.cta-btn--small{
  font-size:13px;
  padding:14px 22px;
  gap:8px;
  text-align:center;
  line-height:1.6;
}

/* ==========================================================================
   02. MISUNDERSTANDING
   ========================================================================== */

.sec--misunderstanding{
  background:#FBFCFD;
  z-index:1;
}

.misunderstanding__heading{
  position:relative;
  z-index:10;
}

.misunderstanding__illust{
  position:absolute;
  pointer-events:none;
  z-index:20;
  right:-10px;
  bottom:calc(100% + 23px);
  width:170px;
  height:auto;
}

.misunderstanding__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:22px;
}

.misunderstanding__card{
  background:#F7FAFC;
  border:1px solid var(--color-line-blue-3);
  border-radius:4px;
  padding:15px 20px;
}

.misunderstanding__top{
  display:flex;
  gap:13px;
  align-items:flex-start;
}

.misunderstanding__no{
  flex:none;
  font-size:14px;
  font-weight:700;
  color:var(--color-brand);
  background:var(--color-pale-blue);
  border-radius:3px;
  padding:3px 8px;
  line-height:1.5;
}

.misunderstanding__top p{
  font-size:15px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  line-height:1.5;
}

.misunderstanding__divider{
  height:1px;
  background:repeating-linear-gradient(90deg, #cdd9e2 0 4px, transparent 4px 8px);
  margin:10px 0;
}

.misunderstanding__bottom{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:var(--color-brand);
}

.misunderstanding__bottom svg{flex:none; margin-top:3px}

.misunderstanding__bottom p{
  font-size:13.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.6;
}

.misunderstanding__closing{
  margin-top:28px;
  background:var(--color-brand);
  border-radius:4px;
  padding:22px 40px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.misunderstanding__closing-logo{
  position:absolute;
  right:-60px;
  top:-70px;
  width:260px;
  opacity:.09;
  pointer-events:none;
}

.misunderstanding__closing p{
  position:relative;
  font-size:15px;
  color:#fff;
  margin:0;
  line-height:1.8;
  font-weight:700;
}

.misunderstanding__closing-lead{
  font-size:23px !important;
  font-weight:700;
  margin:12px 0 0 !important;
  line-height:1.5 !important;
  letter-spacing:.02em;
}

/* ==========================================================================
   03. WHY FAMILY
   ========================================================================== */

.sec--why-family{
  background:#f4f8fa;
}

.why-family__card{
  margin-top:26px;
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  padding:20px 32px;
  display:flex;
  align-items:stretch;
  gap:24px;
}

.why-family__col--items{
  flex:1.05;
  display:flex;
  flex-direction:column;
}

.why-family__col-title{
  font-size:14px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--text-dark);
  margin:0 0 14px;
  text-align:center;
}

.why-family__items{
  flex:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.why-family__item{
  background:#f7f8f9;
  border:1px solid #dfe2e5;
  border-radius:5px;
  padding:20px 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--color-risk-red);
}

.why-family__item p{
  font-size:13.5px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
}

.why-family__col--arrow{
  flex:none;
  width:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--color-risk-red);
}

.why-family__col--arrow p{
  font-size:14px;
  color:var(--text-dark);
  text-align:center;
  line-height:1.7;
  margin:0;
}

.why-family__arrow-sp{display:none}

.why-family__col--steps{
  flex:1.15;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.why-family__step{
  border-radius:5px;
  padding:17px 20px;
  position:relative;
}

.why-family__step p{
  margin:0;
  line-height:1.6;
  text-align:center;
}

.why-family__step--1{background:#F5E9E7; margin-bottom:15px}
.why-family__step--2{background:#E4C4BF; margin-bottom:15px}
.why-family__step--3{background:var(--color-risk-red); padding:19px 20px}

.why-family__step--1 p,
.why-family__step--2 p{font-size:15.5px; color:var(--text-dark)}

.why-family__step--3 p{font-size:17.5px; font-weight:700; color:#fff}

.why-family__step--1::after,
.why-family__step--2::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-11px;
  transform:translateX(-50%);
  width:0;
  height:0;
  border-left:13px solid transparent;
  border-right:13px solid transparent;
}

.why-family__step--1::after{border-top:11px solid #F5E9E7}
.why-family__step--2::after{border-top:11px solid #E4C4BF}

.why-family__notes{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:14px;
  margin-top:30px;
}

.why-family__note{
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:6px;
  padding:26px 20px 18px;
  position:relative;
}

.why-family__note-badge{
  position:absolute;
  left:50%;
  top:-15px;
  transform:translateX(-50%);
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--color-risk-red);
  display:flex;
  align-items:center;
  justify-content:center;
}

.why-family__note p{
  font-size:13.5px;
  font-weight:700;
  color:var(--text-base);
  margin:0;
  line-height:1.8;
  text-align:center;
}

/* ==========================================================================
   04. DIFFERENCE
   ========================================================================== */

.sec--difference{
  background:#FBFCFD;
  z-index:1;
}

.scroll-hint-wrap{
  position:relative;
}

.difference__scroll{
  margin-top:34px;
  overflow-x:auto;
  overflow-y:hidden;
  border-radius:8px;
}

.scroll-hint{
  display:flex;
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  z-index:5;
  flex-direction:column;
  align-items:center;
  gap:2px;
  background:rgba(31,42,51,.82);
  color:#fff;
  border-radius:8px;
  padding:8px 12px;
  font-size:9px;
  line-height:1.4;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transition:opacity .3s ease;
}

.scroll-hint svg{
  width:20px;
  height:20px;
  animation:scroll-hint-swipe 1.6s ease-in-out infinite;
}

.scroll-hint.is-visible{
  opacity:1;
}

@keyframes scroll-hint-swipe{
  0%, 100%{transform:translateX(0)}
  50%{transform:translateX(4px)}
}

.difference__table{
  min-width:900px;
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  background:#fff;
}

.difference__row{
  display:flex;
  border-top:1px solid #eef2f5;
}

.difference__row--head{
  background:var(--color-pale-blue-2);
  border-top:none;
}

.difference__cell{
  flex:1;
  padding:15px 8px;
  font-size:14px;
  color:var(--text-base);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-left:1px solid #eef2f5;
}

.difference__cell--label{
  flex:1.9;
  justify-content:flex-start;
  text-align:left;
  font-size:13.5px;
  border-left:none;
  position:sticky;
  left:0;
  z-index:2;
  background:#fff;
  box-shadow:4px 0 6px -4px rgba(31,42,51,.2);
}

.difference__row--head .difference__cell{
  font-size:14.5px;
  font-weight:700;
  color:var(--text-note);
  border-left:1px solid var(--color-line-blue-3);
  padding:16px 8px;
}

.difference__row--head .difference__cell--label{
  flex:1.9;
  font-size:15px;
  font-weight:700;
  color:var(--text-dark);
  border-left:none;
  justify-content:center;
  text-align:center;
  background:var(--color-pale-blue-2);
}

.difference__cell--program{
  flex:1.2;
  background:#FBF7EC;
  font-size:17px;
  font-weight:700;
  color:var(--text-dark);
}

.difference__cell--program-text{
  font-size:12.5px;
  line-height:1.5;
}

.difference__row--head .difference__cell--program{
  background:var(--color-accent-yellow);
  color:#3A2A05;
  font-size:15px;
}

.difference__cell--na{color:#a8b6c1}
.difference__cell--mid{color:#7c8b96}

.difference__group-row{
  display:flex;
  background:#f6f9fb;
  border-top:1px solid var(--color-line-blue-3);
}

.difference__group-label{
  position:sticky;
  left:0;
  z-index:2;
  padding:11px 20px;
  font-size:14.5px;
  font-weight:700;
  color:var(--color-brand);
  letter-spacing:.04em;
}

.difference__footnote{
  font-size:11px;
  color:var(--text-note);
  margin:14px 0 0;
  line-height:1.85;
}

/* ==========================================================================
   05. SERVICE
   ========================================================================== */

.sec--service{
  background:#eef4f8;
}

.service__heading{
  background:rgba(27,90,140,.93);
  border-radius:8px;
  padding:34px 30px;
  text-align:center;
  position:relative;
  z-index:10;
  box-shadow:0 6px 24px rgba(27,90,140,.2);
}

.service__heading-bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none;
}

.service__heading-logo{
  position:absolute;
  right:-70px;
  top:-80px;
  width:280px;
  opacity:.09;
  pointer-events:none;
}

.service__heading-illust{
  position:absolute;
  pointer-events:none;
  z-index:20;
  right:24px;
  bottom:calc(100% - 8px);
  width:130px;
  height:auto;
}

.service__heading-text{
  position:relative;
  font-family:'Noto Sans JP', sans-serif;
  font-size:29px;
  font-weight:700;
  line-height:1.65;
  color:#fff;
  margin:0;
  letter-spacing:.01em;
}

.service__entries{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:20px;
}

.service__entry{
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:6px;
  box-shadow:0 2px 12px rgba(31,42,51,.04);
  padding:18px 26px;
  text-align:center;
  position:relative;
}

.service__entry-badge{
  position:absolute;
  left:50%;
  top:-14px;
  transform:translateX(-50%);
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--color-brand-dark);
  display:flex;
  align-items:center;
  justify-content:center;
}

.service__entry-icon{
  display:block;
  margin:4px auto 0;
}

.service__entry-title{
  font-size:16.5px;
  font-weight:700;
  margin:7px 0 0;
  line-height:1.6;
}

.service__entry-title--blue{color:var(--color-brand-dark)}
.service__entry-title--red{color:#9C4238}

.service__entry-hr{
  width:32px;
  height:1px;
  background:var(--color-line-blue-2);
  margin:11px auto;
}

.service__entry-desc{
  font-size:13.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.85;
  text-align:left;
}

.service__lead{
  font-size:19px;
  font-weight:700;
  color:var(--text-dark);
  margin:46px 0 0;
  line-height:1.65;
  text-align:center;
}

.service__matrix{
  display:grid;
  gap:8px;
  margin:22px 0 26px;
}

.service__matrix--pc{
  grid-template-columns:repeat(5,1fr);
}

.service__matrix--sp{
  display:none;
  grid-template-columns:1.2fr 1fr;
}

.service__matrix-cell{
  border-radius:4px;
  padding:14px 8px;
  text-align:center;
  font-size:12.5px;
  font-weight:700;
  line-height:1.5;
}

.service__matrix-cell--nav{
  background:rgba(27,90,140,.93);
  background-image:linear-gradient(to right, rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(to bottom, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size:20px 20px;
  color:#fff;
}

.service__matrix-cell--option{
  border:1px dashed #9db8c9;
  background:rgba(255,255,255,.86);
  color:var(--text-base);
  display:flex;
  align-items:center;
  justify-content:center;
}

.service__matrix-cell--phase{
  background:#fff;
  border:1px solid var(--color-line-blue);
  color:var(--color-brand-dark);
  font-size:11.5px;
  padding:9px 6px;
}

/* ==========================================================================
   06. MERIT
   ========================================================================== */

.sec--merit{
  background:#FBFCFD;
  z-index:1;
}

.merit__heading{
  margin:0 0 44px;
  position:relative;
  z-index:10;
}

.merit__illust{
  position:absolute;
  pointer-events:none;
  z-index:20;
  left:50%;
  margin-left:170px;
  bottom:calc(100% - 52px);
  width:110px;
  height:auto;
}

.merit__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.merit__card{
  background:var(--color-brand-dark);
  border-radius:6px;
  padding:30px 20px 24px;
  text-align:center;
  position:relative;
  box-shadow:0 4px 16px rgba(27,90,140,.16);
}

.merit__badge{
  position:absolute;
  left:50%;
  top:-19px;
  transform:translateX(-50%);
  width:56px;
  height:56px;
  border-radius:50%;
  background:var(--color-accent-yellow);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  line-height:1.25;
  font-size:11px;
  font-weight:700;
  color:#3A2A05;
}

.merit__badge b{font-size:20px}

.merit__title{
  font-size:18px;
  font-weight:700;
  color:#fff;
  margin:20px 0 0;
  line-height:1.55;
}

.merit__icon{
  display:block;
  margin:16px auto;
}

.merit__desc{
  font-size:14px;
  color:#e6f0f7;
  margin:0;
  line-height:1.85;
  text-align:left;
}

.merit__closing{
  border-top:1px solid var(--color-line-blue-2);
  border-bottom:1px solid var(--color-line-blue-2);
  padding:26px 20px;
  margin-top:34px;
  text-align:center;
}

.merit__closing p{
  font-size:16.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.85;
}

.merit__closing-lead{
  font-size:24px !important;
  font-weight:700;
  color:var(--text-dark) !important;
  margin:12px 0 0 !important;
  line-height:1.6 !important;
  letter-spacing:.01em;
}

/* ==========================================================================
   07. PRICE
   ========================================================================== */

.sec--price{
  background:#eef4f8;
}

.price__table-wrap{
  margin-top:34px;
  position:relative;
  border:1px solid var(--color-line-blue);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 28px rgba(27,90,140,.14);
  overflow:hidden;
}

.price__table-wrap .difference__scroll{
  margin-top:0;
}

.price__table{
  min-width:640px;
}

.price__row{
  display:flex;
  border-top:1px solid #eef2f5;
}

.price__row--head{
  background:var(--color-brand-dark);
  border-top:none;
}

.price__cell{
  flex:1;
  padding:16px 8px;
  font-size:14px;
  color:var(--text-base);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-left:1px solid #eef2f5;
}

.price__cell--label{
  flex:1.3;
  justify-content:flex-start;
  text-align:left;
  padding:16px 20px;
  font-size:13.5px;
  border-left:none;
}

.price__row--head .price__cell{
  font-size:15px;
  font-weight:700;
  color:#fff;
  border-left:1px solid rgba(255,255,255,.28);
}

.price__row--head .price__cell--label{border-left:none}

.price__cell--start{
  font-weight:700;
  color:var(--text-dark);
  background:#f7fbfd;
}

.price__cell--blur{
  filter:blur(4px);
}

.price__cta-overlay{
  position:absolute;
  right:0;
  top:57px;
  bottom:0;
  width:46.5%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.price__cta-overlay .cta-btn{
  font-size:15px;
  padding:15px 32px;
  box-shadow:0 5px 0 rgba(14,59,38,.45), 0 10px 22px rgba(14,59,38,.25);
}

.price__memo{
  margin-top:18px;
  border-left:3px solid var(--color-brand-dark);
  background:#fff;
  padding:18px 22px;
}

.price__memo-title{
  font-size:15.5px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  line-height:1.7;
}

.price__memo-desc{
  font-size:13.5px;
  color:var(--text-base);
  margin:6px 0 0;
  line-height:1.85;
}

.price__notes{margin-top:14px}

.price__notes p{
  font-size:12px;
  color:var(--text-note);
  margin:0;
  line-height:1.95;
}

/* ==========================================================================
   08. SUBSIDY
   ========================================================================== */

.sec--subsidy{
  background:#FBFCFD;
  z-index:1;
}

.subsidy__layout{
  display:flex;
  gap:28px;
  align-items:center;
}

.subsidy__left{
  flex:1;
  min-width:0;
}

.subsidy__heading{
  font-family:'Noto Sans JP', sans-serif;
  font-size:26px;
  font-weight:700;
  line-height:1.6;
  color:var(--text-dark);
  margin:0;
  letter-spacing:.01em;
  position:relative;
  z-index:10;
}

.subsidy__illust{
  position:absolute;
  pointer-events:none;
  z-index:20;
  right:-10px;
  bottom:-14px;
  width:110px;
  height:auto;
}

.subsidy__hr{
  width:40px;
  height:2px;
  background:var(--color-brand);
  margin:18px 0;
}

.subsidy__desc{
  font-size:14.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.9;
}

.subsidy__right{
  flex:1;
  min-width:0;
  position:relative;
  background:var(--color-pale-blue-3);
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  padding:26px 28px;
  overflow:hidden;
}

.subsidy__highlight{
  position:relative;
  font-size:14.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.9;
}

.subsidy__note{
  position:relative;
  font-size:11.5px;
  color:var(--text-note);
  margin:14px 0 0;
  line-height:1.85;
}

/* ==========================================================================
   09. VOICE
   ========================================================================== */

.sec--voice{
  background:#fff;
}

.voice__heading{margin:0 0 8px}

.voice__subheading{
  font-size:13.5px;
  color:var(--text-note);
  margin:0 0 30px;
  text-align:center;
}

.voice__card{
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  padding:30px 32px;
}

.voice__row{
  display:flex;
  gap:26px;
  align-items:flex-start;
}

.voice__photo{
  flex:none;
  width:130px;
}

.voice__photo img{
  width:130px;
  height:150px;
  object-fit:cover;
  border-radius:5px;
  display:block;
  border:1px solid var(--color-line-blue-3);
}

.voice__photo p{
  font-size:11.5px;
  color:var(--text-note);
  text-align:center;
  margin:8px 0 0;
  line-height:1.6;
}

.voice__photo--kaigi{width:200px}
.voice__photo--kaigi img{width:200px; height:150px}

.voice__body{flex:1; min-width:0}

.voice__quote-icon{display:block; margin-bottom:8px}

.voice__quote{
  font-size:18px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  line-height:1.85;
}

.voice__body .accordion{margin-top:20px}

/* ==========================================================================
   10. LAW
   ========================================================================== */

.sec--law{
  background:#EDEDEA;
  padding:44px 44px 46px;
}

.sec-label--law span:first-child{color:#5C5C58}
.sec-label--law .sec-label__line{background:#cfcfca}

.law__eyebrow{
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.1em;
  color:#6B6B66;
  margin:0 0 12px;
  text-align:center;
}

.law__heading{color:#26261F}

.law__grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:14px;
  margin-top:22px;
}

.law__card{
  background:#fff;
  border:1px solid #d6d6d0;
  border-radius:2px;
  box-shadow:0 2px 10px rgba(38,38,31,.05);
  padding:16px 20px;
  text-align:center;
}

.law__card svg{display:block; margin:0 auto 8px}

.law__card p{
  font-size:15px;
  font-weight:700;
  color:#26261F;
  margin:0;
  line-height:1.7;
}

.law__warning{
  margin-top:16px;
  background:#fff;
  border:1px solid #c9c9c2;
  border-radius:2px;
  padding:14px 24px;
  box-shadow:0 4px 18px rgba(38,38,31,.06);
}

.law__warning-title{
  font-size:20px;
  font-weight:700;
  color:#26261F;
  margin:0;
  line-height:1.5;
  text-align:center;
}

.law__warning-body{
  font-size:14.5px;
  color:#4A4A44;
  margin:5px 0 0;
  line-height:1.75;
}

.law__warning-strong{
  color:#26261F;
  font-weight:700;
  text-decoration:underline #8A8A82;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}

.law__warning-note{
  font-size:11.5px;
  color:#6B6B66;
  margin:6px 0 0;
  line-height:1.7;
}

/* ==========================================================================
   11. REPRESENTATIVE
   ========================================================================== */

.sec--representative{
  background:#fff;
}

.representative__card{
  margin-top:30px;
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  padding:30px 32px;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  column-gap:30px;
}

.representative__profile{
  grid-column:1;
  grid-row:1;
  display:flex;
  gap:18px;
  align-items:flex-start;
}

.representative__photo{
  flex:none;
  width:110px;
  height:138px;
  object-fit:cover;
  object-position:center top;
  border-radius:5px;
  display:block;
  border:1px solid var(--color-line-blue-3);
}

.representative__profile-text{
  display:flex;
  flex-direction:column;
  gap:0;
}

.representative__label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--color-brand);
  margin:0 0 6px;
}

.representative__name{
  font-size:19px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  line-height:1.5;
}

.representative__name span{
  font-size:13px;
  font-weight:500;
  color:var(--text-note);
  margin-left:8px;
}

.representative__hr{
  width:32px;
  height:2px;
  background:var(--color-brand);
  margin:12px 0;
}

.representative__bio{
  font-size:13.5px;
  color:var(--text-base);
  margin:0;
  line-height:1.9;
}

.representative__bio--2{
  grid-column:1;
  grid-row:2;
  margin-top:12px;
}

.representative__history{
  grid-column:2;
  grid-row:1 / span 2;
  background:#f7fbfd;
  border:1px solid var(--color-line-blue-3);
  border-radius:6px;
  padding:22px 24px;
}

.representative__history-title{
  font-size:14px;
  font-weight:700;
  color:var(--color-brand-dark);
  margin:0 0 12px;
}

.representative__history-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.representative__history-list li{
  position:relative;
  padding-left:15px;
  font-size:13px;
  color:var(--text-base);
  line-height:1.8;
}

.representative__history-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--color-brand);
}

/* ==========================================================================
   12. CHECK（簡易アセスメント）
   ========================================================================== */

.sec--check{
  background:#FBF3F1;
}

.check__badge-wrap{
  display:flex;
  justify-content:center;
  margin-top:14px;
}

.check__badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid #E4C4BF;
  border-radius:100px;
  padding:8px 20px;
  font-size:14px;
  font-weight:700;
  color:#9C4238;
}

.check__card{
  margin-top:26px;
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:8px;
  box-shadow:0 4px 20px rgba(31,42,51,.05);
  padding:26px 30px 30px;
}

.quiz__progress{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
}

.quiz__step-label{
  flex:none;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--color-brand);
}

.quiz__bar{
  flex:1;
  display:flex;
  gap:5px;
}

.quiz__bar-seg{
  flex:1;
  height:5px;
  border-radius:3px;
  background:var(--color-line-blue-3);
}

.quiz__bar-seg.is-active,
.quiz__bar-seg.is-done{
  background:var(--color-brand);
}

.quiz__remaining{
  flex:none;
  background:var(--color-accent-yellow);
  color:#3A2A05;
  font-size:14px;
  font-weight:700;
  padding:8px 16px;
  border-radius:100px;
  letter-spacing:.02em;
  box-shadow:0 2px 8px rgba(58,42,5,.14);
}

.quiz__axis-head{
  display:flex;
  align-items:baseline;
  gap:10px;
  border-bottom:1px solid var(--color-line-blue-3);
  padding-bottom:8px;
  margin:0 0 12px;
}

.quiz__axis-no{
  flex:none;
  font-size:14px;
  font-weight:700;
  color:var(--color-brand-dark);
}

.quiz__axis-desc{
  font-size:11.5px;
  color:var(--text-note);
}

.quiz__questions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.quiz__q{
  border:1px solid var(--color-line-blue-3);
  background:#f7fbfd;
  border-radius:5px;
  padding:14px 15px;
}

.quiz__q-text{
  font-size:13px;
  color:var(--text-dark);
  margin:0;
  line-height:1.7;
  min-height:44px;
  display:flex;
  gap:10px;
  align-items:baseline;
}

.quiz__q-text b{
  flex:none;
  color:var(--color-brand-dark);
}

.quiz__select-wrap{
  position:relative;
  margin-top:9px;
}

.quiz__select{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  font:inherit;
  font-size:12.5px;
  color:var(--text-dark);
  border:1px solid var(--color-line-blue);
  background:#fff;
  border-radius:3px;
  padding:9px 30px 9px 12px;
  cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease;
}

.quiz__select.is-answered{
  background:#eaf6ef;
  border-color:var(--color-cta-green);
}

.quiz__select option{color:var(--text-dark)}
.quiz__select option[value=""]{color:#8fa3b2}

.quiz__select.is-answered ~ .quiz__select-chevron{
  color:var(--color-cta-green);
}

.quiz__select-chevron{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  pointer-events:none;
  color:var(--color-brand);
}

.quiz__q-options{
  display:none;
}

.quiz__nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:20px;
}

.quiz__back{
  border:1px solid var(--color-line-blue);
  color:#8fa3b2;
  background:#fff;
  font-size:13px;
  font-weight:700;
  padding:12px 22px;
  border-radius:3px;
  font-family:inherit;
  cursor:pointer;
}

.quiz__back:disabled{
  opacity:.4;
  cursor:default;
}

.quiz__next{
  background:var(--color-brand-dark);
  color:#fff;
  font-size:14px;
  font-weight:700;
  padding:13px 44px;
  border-radius:3px;
  border:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow:0 3px 0 #12405f;
  font-family:inherit;
  cursor:pointer;
}

.quiz__next:disabled{
  opacity:.45;
  cursor:default;
  box-shadow:none;
}

.check__result{
  margin-top:26px;
}

.check__result-title{
  font-size:16px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--color-brand-dark);
  margin:0 0 16px;
  text-align:center;
}

.check__result-axes{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
}

.result-axis{
  background:#fff;
  border:1px solid var(--color-line-blue-3);
  border-radius:6px;
  padding:16px 18px;
}

.result-axis__head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
}

.result-axis__head p:first-child{
  font-size:12.5px;
  color:var(--text-base);
  margin:0;
}

.result-axis__label{
  font-size:14px;
  font-weight:700;
  margin:0;
}

.result-axis__bar-bg{
  height:9px;
  background:#e8eef2;
  border-radius:5px;
  margin-top:9px;
  overflow:hidden;
}

.result-axis__bar{
  height:100%;
  transition:width 1s cubic-bezier(.16,.8,.3,1);
}

@media (prefers-reduced-motion: reduce){
  .result-axis__bar{transition:none}
}

.result-axis__comment{
  font-size:11px;
  color:var(--text-note);
  margin:8px 0 0;
  line-height:1.7;
}

.check__result-type{
  margin-top:14px;
  border:2px dashed #F0C9C3;
  border-radius:6px;
  padding:20px 24px;
  position:relative;
  overflow:hidden;
  color:#fff;
}

.check__result-type-label{
  position:relative;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.08em;
  color:#F3D6D2;
  margin:0 0 5px;
}

.check__result-type-name{
  position:relative;
  font-size:19px;
  font-weight:700;
  margin:0;
  line-height:1.6;
}

.check__result-type-body{
  position:relative;
  font-size:13px;
  color:#F7EAE8;
  margin:6px 0 0;
  line-height:1.8;
}

.check__cross{
  margin-top:18px;
  border:1px solid var(--color-line-blue);
  background:#f7fbfd;
  border-radius:6px;
  padding:22px 26px;
  display:flex;
  gap:22px;
  align-items:center;
}

.check__cross[hidden]{
  display:none;
}

.check__cross-text{flex:1.4}

.check__cross-title{
  font-size:17px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  line-height:1.6;
  display:flex;
  align-items:center;
  gap:10px;
}

.check__cross-title svg{flex:none}

.check__cross-desc{
  font-size:13px;
  color:var(--text-base);
  margin:8px 0 0;
  line-height:1.85;
}

.check__cross-btn{
  flex:1;
  display:flex;
  justify-content:center;
}

.check__footnote{
  font-size:11px;
  color:var(--text-note);
  margin:14px 0 0;
  line-height:1.85;
}

/* ==========================================================================
   13. DOCUMENT（資料請求フォーム）＋ フッター
   ========================================================================== */

.sec--document{
  background:var(--color-brand-dark);
  padding:56px 44px 60px;
}

.document__bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}

.document__watermark{
  position:absolute;
  left:-90px;
  bottom:-120px;
  width:420px;
  opacity:.08;
  pointer-events:none;
  filter:brightness(0) invert(1);
}

.document__layout{
  display:flex;
  gap:34px;
  align-items:center;
}

.document__intro{flex:.85}

.document__label{
  position:relative;
  z-index:15;
  display:inline-block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  color:#a7d3ea;
  margin-bottom:14px;
  text-shadow:0 0 6px var(--color-brand-dark), 0 0 6px var(--color-brand-dark), 0 0 6px var(--color-brand-dark), 0 0 6px var(--color-brand-dark);
}

.document__heading{
  font-family:'Noto Sans JP', sans-serif;
  font-size:29px;
  font-weight:700;
  line-height:1.6;
  color:#fff;
  margin:0;
  letter-spacing:.01em;
  position:relative;
  z-index:10;
}

.document__illust-anchor{
  position:relative;
  display:inline-block;
}

.document__illust{
  position:absolute;
  pointer-events:none;
  z-index:20;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(100% + 28px);
  width:110px;
  height:auto;
}

.document__desc{
  font-size:14px;
  color:#e6f0f7;
  margin:16px 0 0;
  line-height:1.9;
}

.document__form-card{
  flex:1.15;
  background:#fff;
  border-radius:8px;
  box-shadow:0 10px 30px rgba(8,40,62,.22);
  padding:26px 28px;
}

.document__form-card form{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.document__row{
  display:flex;
  gap:12px;
}

.document__field{flex:1; min-width:0}

.document__field .wpcf7-form-control-wrap{
  display:block;
}

/* CF7 adds paragraph/break wrappers that are absent from the static form. */
.document__form-card .document__field > p,
.document__form-card .document__agree > p,
.document__form-card .document__submit-wrap > p{
  margin:0;
  padding:0;
}

.document__field > p > br,
.document__agree > p > br,
.document__submit-wrap > p > br{
  display:none;
}

.document__form-card .hidden-fields-container{
  display:none;
}

.document__agree .wpcf7-list-item{
  display:block;
  margin:0;
}

.document__agree .wpcf7-list-item-label{
  min-width:0;
}

.document__submit-wrap > p{
  position:relative;
  max-width:100%;
}

.document__submit-wrap .wpcf7-spinner{
  position:absolute;
  top:50%;
  right:8px;
  margin:-12px 0 0;
}

.document__submit-wrap input.cta-btn{
  max-width:100%;
  padding-left:75px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:46px center;
}

.document__field label{
  display:block;
  font-size:12px;
  color:var(--text-base);
  margin:0 0 5px;
}

.document__required{
  color:#fff;
  background:var(--color-risk-red);
  font-size:10px;
  font-weight:700;
  padding:2px 6px;
  border-radius:2px;
  margin-left:4px;
}

.document__optional{
  color:var(--text-note);
  border:1px solid #b6c4ce;
  font-size:10px;
  padding:2px 6px;
  border-radius:2px;
  margin-left:4px;
}

.document__field input,
.document__field select{
  width:100%;
  height:40px;
  border:1px solid #c3d1db;
  border-radius:3px;
  background:#fff;
  padding:0 12px;
  font-size:12.5px;
  font-family:inherit;
  color:var(--text-dark);
  transition:background-color .2s ease, border-color .2s ease;
}

.document__field input.is-filled,
.document__field select.is-filled{
  background:#eaf6ef;
  border-color:var(--color-cta-green);
}

.document__field input::placeholder{color:#a9b7c2}

.document__field select{
  appearance:none;
  -webkit-appearance:none;
  color:var(--text-dark);
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23468ab5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
}

.document__field input:focus,
.document__field select:focus{
  outline:2px solid var(--color-brand);
  outline-offset:-1px;
}

.document__agree{
  display:flex;
  align-items:flex-start;
  gap:9px;
  background:var(--color-pale-blue-3);
  border:1px solid var(--color-line-blue-3);
  border-radius:4px;
  padding:12px 14px;
  cursor:pointer;
}

.document__agree label{
  display:flex;
  align-items:flex-start;
  gap:9px;
  cursor:pointer;
}

.document__agree input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  flex:none;
  width:18px;
  height:18px;
  margin-top:1px;
  border:2px solid var(--color-brand);
  border-radius:3px;
  background:#fff;
  cursor:pointer;
}

.document__agree input[type="checkbox"]:checked{
  background:var(--color-brand);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
}

.document__agree span{
  font-size:12.5px;
  color:var(--text-dark);
  line-height:1.7;
}

.document__agree .document__required{color:#fff}

.document__agree a{color:var(--color-brand-dark)}

.document__no-call{
  font-size:13px;
  font-weight:700;
  color:var(--text-dark);
  margin:0;
  text-align:center;
}

.document__submit-wrap{
  display:flex;
  justify-content:center;
}

.document__submit-wrap .cta-btn{
  border:2px solid #fff;
  font-family:inherit;
}

.document__form-card .wpcf7-not-valid-tip{
  display:block;
  margin-top:5px;
  color:var(--color-risk-red);
  font-size:11px;
  line-height:1.5;
}

.document__form-card .wpcf7-response-output{
  margin:4px 0 0;
  padding:10px 12px;
  border-radius:4px;
  font-size:12.5px;
  line-height:1.7;
}

.document__pre-note-wrap{
  display:flex;
  justify-content:center;
}

.document__form-card .document__sent-form,
.document__feedback[hidden],
.has-document-feedback .wpcf7-response-output{display:none !important}

.document__feedback{
  margin-top:18px;
  padding:20px 0;
  color:var(--text-dark);
  scroll-margin:80px 0;
}
.document__feedback.is-success{
  margin-top:0;
  padding:32px 0;
  border-top:4px solid var(--color-cta-green);
}
.document__feedback h3{margin:0 0 16px; font-size:22px; line-height:1.6}
.document__feedback p{margin:12px 0 0; font-size:14px; line-height:1.9}
.document__feedback:focus-visible{outline:2px solid var(--color-brand); outline-offset:6px}
.document__form-card form[aria-busy="true"] .cta-btn{cursor:wait; opacity:.75}

.document__pre-note{
  position:relative;
  background:var(--color-pale-blue);
  border-radius:6px;
  padding:10px 20px;
  font-size:13.5px;
  font-weight:700;
  color:var(--color-brand-dark);
  margin:0;
  letter-spacing:.02em;
}

.document__pre-note::before{
  content:"";
  position:absolute;
  left:50%;
  top:-9px;
  transform:translateX(-50%);
  width:0;
  height:0;
  border-left:9px solid transparent;
  border-right:9px solid transparent;
  border-bottom:9px solid var(--color-pale-blue);
}

.document__response{
  border:1px dashed #c3d1db;
  border-radius:3px;
  padding:11px 14px;
  text-align:center;
  font-size:13px;
  color:var(--text-note);
}

.document__response.is-sent{
  border-color:var(--color-cta-green);
  color:#2E8B57;
}

/* フッター */

.footer{
  position:relative;
  background:#fff;
  padding:34px 44px 30px;
  text-align:center;
}

.footer__links{
  display:flex;
  justify-content:center;
  gap:32px;
}

.footer__links a{
  font-size:13px;
  color:var(--text-base);
  text-decoration:none;
}

.footer__copyright{
  font-size:11.5px;
  color:#8fa3b2;
  margin:18px 0 0;
}

/* 固定CTA */

.fixed-cta-bar{
  display:contents;
}

@keyframes fixed-cta-intro{
  from{opacity:0; transform:translateY(40px) scale(.92);}
  to{opacity:1; transform:translateY(0) scale(1);}
}

.fixed-cta{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:50;
  background:var(--color-risk-red);
  color:#fff;
  text-decoration:none;
  border:2px solid #fff;
  border-radius:100px;
  box-shadow:0 5px 0 rgba(88,32,26,.45), 0 10px 22px rgba(88,32,26,.25);
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-align:center;
  padding:14px 26px;
  opacity:1;
  transition:opacity .3s ease, transform .12s ease, box-shadow .12s ease;
  animation:fixed-cta-intro .7s cubic-bezier(.34,1.56,.64,1) .5s backwards;
}

.fixed-cta:hover,
.fixed-cta:focus-visible{
  transform:translateY(3px);
  box-shadow:0 2px 0 rgba(88,32,26,.45), 0 6px 14px rgba(88,32,26,.22);
}

.fixed-cta.is-hidden{
  opacity:0;
  pointer-events:none;
}

@media (prefers-reduced-motion: reduce){
  .fixed-cta{animation:none}
}

.fixed-cta__main{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  font-weight:700;
}

.fixed-cta__sub{
  font-size:11px;
  font-weight:400;
  opacity:.9;
}

/* ==========================================================================
   レスポンシブ（768px ブレークポイント）
   ========================================================================== */

@media (max-width:768px){

  /* FV ヒーロー */

  .fv{
    padding:20px 18px 40px;
  }

  .fv__watermark{
    width:230px;
    right:-40px;
    top:20px;
  }

  .fv__logo{
    gap:9px;
    margin-bottom:22px;
  }

  .fv__logo img{
    height:22px;
  }

  .fv__logo span{
    font-size:13px;
  }

  .fv__eyebrow--pc{display:none}
  .fv__eyebrow--sp{
    display:block;
    font-size:10.5px;
    letter-spacing:.1em;
    margin:0 0 16px;
    line-height:1.8;
  }

  .fv__title{
    font-size:26px;
    line-height:1.55;
  }

  .fv__title-tail--pc{display:none}
  .fv__title-tail--sp{display:inline}

  .fv__subcopy{
    font-size:14px;
    margin:16px 0 0;
    line-height:1.75;
  }

  br.is-sp{display:inline}
  br.is-pc{display:none}

  .fv__assess{
    max-width:none;
    margin:22px auto 0;
    border-radius:14px;
    box-shadow:0 4px 18px rgba(27,90,140,.1);
  }

  .fv__assess-icon{
    left:calc(50% + 26px);
    transform:translateX(-50%);
    top:-17px;
    width:26px;
    height:32px;
  }

  .fv__assess-top{
    padding:14px 16px 12px;
  }

  .fv__assess-top p,
  .fv__assess-bottom{
    font-size:13px;
  }

  .fv__assess-bottom{
    padding:14px 16px;
    border-bottom-left-radius:14px;
    border-bottom-right-radius:14px;
    flex-direction:column;
    align-items:center;
    gap:0;
  }

  .fv__arrow-tag{
    font-size:11px;
    padding:7px 14px 13px;
    clip-path:polygon(0 0, 100% 0, 100% calc(100% - 8px), 50% 100%, 0 calc(100% - 8px));
  }

  .fv__assess-bottom-text{
    margin-top:8px;
  }

  .fv__note{
    font-size:12px;
    margin:12px 0 0;
  }

  .fv__cta-wrap{
    margin-top:20px;
  }

  .cta-btn{
    gap:9px;
    font-size:15px;
    padding:16px 28px;
  }

  /* FV 数値円セクション */

  .fv-stats{
    padding:26px 18px 24px;
  }

  .fv-stats__grid{
    display:flex;
    flex-direction:column;
    max-width:none;
    gap:12px;
    margin:-40px 0 0;
  }

  .stat-circle{
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
    gap:14px;
    width:auto;
    height:auto;
    padding:16px 18px;
    border-radius:10px;
  }

  .stat-circle__icon-wrap{
    flex:none;
    width:56px;
    height:56px;
    margin-bottom:0;
    border-radius:50%;
    background:#EFF2F4;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .stat-circle__icon{
    width:28px;
    height:28px;
  }

  .stat-circle__body{
    flex:1;
    min-width:0;
  }

  .stat-circle__label{
    font-size:12.5px;
    line-height:1.7;
  }

  .stat-circle__hairline{
    display:none;
  }

  .stat-circle__value{
    font-size:22px;
    margin-top:6px;
  }

  .stat-circle__value-num{
    font-size:29px;
  }

  .stat-circle__ref{
    font-size:10px;
  }

  .stat-circle__desc{
    font-size:11px;
    margin-top:5px;
    line-height:1.7;
  }

  .fv-stats__sources{
    margin:18px 0 0;
  }

  .fv-stats__sources p{
    font-size:10px;
  }

  /* 共通 */

  .sec{
    padding:44px 18px 44px;
  }

  .sec-h2{
    font-size:20px;
    line-height:1.6;
  }

  .sec-lead{
    font-size:12.5px;
    margin:14px 0 0;
  }

  .sec-label{
    gap:12px;
    margin-bottom:14px;
  }

  .sec-label span:first-child{
    font-size:10px;
  }

  .accordion__summary{
    padding:14px 15px;
    gap:10px;
  }

  .accordion__summary--split{align-items:flex-start}

  .accordion__title{
    flex:1;
    min-width:0;
    font-size:13px;
    line-height:1.6;
  }

  .accordion__summary--split .accordion__icon{margin-top:2px}
  .accordion__lead{display:none}

  .accordion__body{
    padding:14px 15px 15px;
  }

  .accordion__body p{font-size:12px}

  /* MISUNDERSTANDING */

  .misunderstanding__illust{
    bottom:calc(100% + 10px);
    width:118px;
  }

  .misunderstanding__grid{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:20px;
  }

  .misunderstanding__card{padding:13px 15px}

  .misunderstanding__top{gap:10px}
  .misunderstanding__top p{font-size:13.5px}
  .misunderstanding__no{font-size:12px; padding:2px 7px}

  .misunderstanding__bottom{gap:8px}
  .misunderstanding__bottom p{font-size:12.5px; line-height:1.7}

  .misunderstanding__closing{
    margin-top:22px;
    padding:20px 18px;
  }

  .misunderstanding__closing-logo{width:190px; right:-46px; top:-56px}
  .misunderstanding__closing p{font-size:13px}
  .misunderstanding__closing-lead{font-size:17px !important; margin-top:12px !important}

  /* WHY FAMILY */

  .why-family__card{
    flex-direction:column;
    padding:18px 16px;
    gap:0;
  }

  .why-family__col-title{font-size:13px; margin-bottom:12px}
  .why-family__items{gap:8px}
  .why-family__item{padding:14px 8px; gap:7px}
  .why-family__item svg{width:28px; height:28px}
  .why-family__item p{font-size:12.5px}

  .why-family__col--arrow{
    width:auto;
    flex-direction:column;
    gap:6px;
    margin:16px 0 14px;
  }

  .why-family__col--arrow p{font-size:13px}
  .why-family__arrow-pc{display:none}
  .why-family__arrow-sp{display:block}

  .why-family__col--steps{gap:14px}
  .why-family__step--1, .why-family__step--2{margin-bottom:0}
  .why-family__step{padding:14px 14px}
  .why-family__step--3{padding:16px 14px}
  .why-family__step--1 p, .why-family__step--2 p{font-size:13.5px}
  .why-family__step--3 p{font-size:15.5px}
  .why-family__col--steps > .why-family__step + .why-family__step{margin-top:14px}
  .why-family__step--1::after, .why-family__step--2::after{
    border-left-width:12px;
    border-right-width:12px;
    border-top-width:10px;
    bottom:-10px;
  }

  .why-family__notes{
    grid-template-columns:1fr;
    gap:22px;
    margin-top:32px;
  }

  .why-family__note{padding:22px 16px 15px}
  .why-family__note p{font-size:12.5px}

  /* DIFFERENCE */

  .difference__scroll{margin-top:22px}
  .difference__footnote{font-size:10px}
  .difference__cell--label{
    flex:none;
    width:112px;
    font-size:11.5px;
    line-height:1.4;
    padding:15px 10px;
  }
  .difference__row--head .difference__cell--label{
    flex:none;
    width:112px;
    font-size:12.5px;
    padding:16px 8px;
  }

  /* SERVICE */

  .service__heading{padding:22px 18px}
  .service__heading-text{font-size:19px; line-height:1.7}
  .service__heading-illust{
    right:8px;
    bottom:calc(100% - 6px);
    width:96px;
  }

  .service__entries{
    grid-template-columns:1fr;
    gap:22px;
    margin-top:22px;
  }

  .service__entry{padding:18px 18px}
  .service__entry-title{font-size:15px}
  .service__entry-desc{font-size:12.5px}

  .service__lead{font-size:16px; margin-top:34px; line-height:1.7}

  .service__matrix--pc{display:none}
  .service__matrix--sp{
    display:grid;
    gap:8px;
    margin:18px 0 22px;
  }

  .service__matrix-cell{
    text-align:left;
    justify-content:flex-start;
    display:flex;
    align-items:center;
    padding:12px 14px;
  }

  .service__matrix--sp .service__matrix-cell--nav{font-size:12px}
  .service__matrix--sp .service__matrix-cell--option{padding:12px 14px}
  .service__matrix--sp .service__matrix-cell--phase{font-size:11px; padding:9px 12px; line-height:1.5}

  /* MERIT */

  .merit__heading{font-size:21px; margin-bottom:40px}
  .merit__illust{
    margin-left:0;
    transform:translateX(-50%);
    bottom:calc(100% - 5px);
    width:77px;
  }

  .merit__grid{
    grid-template-columns:1fr 1fr;
    gap:26px 12px;
  }

  .merit__card{padding:26px 14px 18px}
  .merit__badge{width:50px; height:50px; font-size:10px}
  .merit__badge b{font-size:17px}
  .merit__title{font-size:15px; margin-top:16px}
  .merit__icon{width:38px; height:38px; margin:12px auto}
  .merit__desc{font-size:12px}

  .merit__closing{padding:20px 8px; margin-top:30px}
  .merit__closing p{font-size:13px}
  .merit__closing-lead{font-size:18px !important; margin-top:10px !important}

  /* PRICE */

  .price__table-wrap{margin-top:22px}
  .price__table{min-width:0}
  .price__cell{font-size:11px; padding:12px 4px}
  .price__cell--label{flex:1.4; padding:12px 8px; font-size:11px}
  .price__row--head .price__cell{font-size:11px; padding:11px 4px}
  .price__cta-overlay{top:44px; padding:0 6px}
  .price__cta-overlay .cta-btn{font-size:11.5px; padding:11px 12px; gap:5px; line-height:1.4; box-shadow:0 4px 0 rgba(14,59,38,.45),0 8px 18px rgba(14,59,38,.25)}
  .price__memo{padding:16px 16px}
  .price__memo-title{font-size:13.5px}
  .price__memo-desc{font-size:12px}
  .price__notes p{font-size:11px}

  /* SUBSIDY */

  .subsidy__layout{
    flex-direction:column;
    gap:0;
  }

  .subsidy__heading{font-size:20px; text-align:center}
  .subsidy__illust{
    right:auto;
    left:50%;
    transform:translateX(-50%);
    bottom:calc(100% - 4px);
    width:86px;
  }
  .subsidy__hr{margin:16px auto}
  .subsidy__desc{font-size:12.5px; text-align:center}
  .subsidy__right{margin-top:18px; padding:20px 18px; width:100%}
  .subsidy__highlight{font-size:13px}
  .subsidy__note{font-size:10.5px}

  /* VOICE */

  .voice__subheading{font-size:11.5px; margin-bottom:18px}
  .voice__card{padding:20px 18px}
  .voice__row{flex-wrap:wrap; gap:14px}
  .voice__photo{width:96px}
  .voice__photo img{width:96px; height:112px}
  .voice__photo p{font-size:10.5px}
  .voice__photo--kaigi{width:100%; order:3}
  .voice__photo--kaigi img{width:100%; height:170px}
  .voice__quote{font-size:14px}

  .voice__body .accordion__body{
    margin-left:-110px;
    width:calc(100% + 110px);
  }
  .voice__body .accordion{margin-top:16px}

  /* LAW */

  .sec--law{padding:40px 18px 42px}
  .law__eyebrow{font-size:10.5px; margin-bottom:10px}
  .law__grid{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:20px;
  }
  .law__card{
    display:flex;
    align-items:center;
    gap:14px;
    text-align:left;
    padding:14px 16px;
  }
  .law__card svg{margin:0; flex:none}
  .law__card p{font-size:13px}
  .law__warning{padding:14px 16px; margin-top:14px}
  .law__warning-title{font-size:16px}
  .law__warning-body{font-size:12.5px}
  .law__warning-note{font-size:10.5px}

  /* REPRESENTATIVE */

  .representative__card{
    display:block;
    padding:20px 18px;
  }

  .representative__photo{width:96px; height:120px}
  .representative__name{font-size:17px}
  .representative__hr{margin:10px 0}
  .representative__bio{font-size:12.5px; line-height:1.85}
  .representative__bio--2{margin-top:12px}
  .representative__history{
    margin-top:16px;
    padding:16px 18px;
  }
  .representative__history-title{font-size:13px}

  /* CHECK */

  .check__badge{font-size:12.5px; padding:7px 16px; gap:7px}
  .check__card{padding:18px 16px 22px; margin-top:20px}
  .quiz__questions{grid-template-columns:1fr}
  .quiz__select{font-size:16px}
  .quiz__remaining{position:static; margin:12px auto 0; display:table}
  .quiz__progress{flex-wrap:wrap}
  .quiz__axis-head{flex-direction:column; align-items:flex-start; gap:3px}
  .check__result-axes{grid-template-columns:1fr; gap:9px}
  .check__cross{flex-direction:column; padding:18px 16px}
  .check__footnote{font-size:10.5px}

  /* DOCUMENT / フッター */

  .sec--document{padding:44px 18px 46px}
  .document__watermark{left:-80px; bottom:-90px; width:300px}
  .document__layout{flex-direction:column; gap:0}
  .document__intro{text-align:center}
  .document__heading{font-size:21px}
  .document__illust{
    right:auto;
    left:50%;
    transform:translateX(-50%);
    bottom:calc(100% + 4px);
    width:96px;
  }
  .document__desc{font-size:12.5px; text-align:left; margin-top:14px}
  .document__form-card{margin-top:20px; padding:20px 18px; width:100%}
  .document__row{flex-direction:column; gap:13px}
  .document__submit-wrap input.cta-btn{padding-left:56px; background-position:28px center}
  .document__field input, .document__field select{height:44px; font-size:16px}

  .footer{padding:28px 18px 26px}
  .footer__links{gap:26px}
  .footer__links a{font-size:12.5px}
  .footer__copyright{font-size:11px}

  body{padding-bottom:78px; transition:padding-bottom .3s ease}
  body.is-cta-hidden{padding-bottom:0}

  .fixed-cta-bar{
    display:flex;
    justify-content:center;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:50;
    background:transparent;
    padding:12px 18px 14px;
    pointer-events:none;
  }

  .fixed-cta{
    position:static;
    width:100%;
    max-width:300px;
    box-sizing:border-box;
    pointer-events:auto;
  }
}
