:root{
  --blue:#3BAFE8;
  --blue-2:#7CC9F0;
  --blue-d:#1F73B6;
  --blue-ink:#1E4D7B;
  --blue-deep:#163A5F;
  --orange:#FFA935;
  --orange-d:#F38B12;
  --orange-soft:#FFE8C4;
  --green:#9FD66A;
  --green-d:#6FB544;
  --ink:#33455C;
  --ink-soft:#6B7C92;
  --ink-mute:#8B9AAE;
  --cream:#FFFBEF;
  --bg-sky:#EAF6FD;
  --bg-sky-2:#D9EEFB;
  --bg-mint:#F1F9E8;
  --line:#DCE7F1;
  --shadow-1:0 8px 24px rgba(31,77,123,.08);
  --shadow-2:0 14px 36px rgba(31,77,123,.12);
  --shadow-warm:0 10px 26px rgba(243,147,18,.30);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.8;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* 日本語の改行を自然に（対応ブラウザでは文節単位／段階的強化・非対応でも無害） */
  word-break:auto-phrase;
  line-break:strict;
  text-wrap:pretty;
}
/* 見出しは行の長さを均等化して中途半端な改行を防ぐ */
.s-title,.hero h1,.hero-emotional,.worry-solve .msg,.why-card h3,.war-card h3,.bn-lbl,.step h4,.hero-card h3{text-wrap:balance}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.num,.yen-big{font-family:"Montserrat","Noto Sans JP",sans-serif;font-weight:800}
.maru{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}

/* ===== Layout ===== */
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;position:relative}
section{position:relative}

/* ===== Reveal animation ===== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}
.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}
.reveal.d4{transition-delay:.32s}
.reveal.d5{transition-delay:.40s}

/* ===== Header ===== */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid rgba(220,231,241,.7);
}
.site-header .wrap{display:flex;align-items:center;gap:28px;height:72px;max-width:1200px}
.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo .mark{
  width:42px;height:42px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #FFE08A 0%, #FFA935 55%, #F38B12 100%);
  position:relative;display:grid;place-items:center;
  box-shadow:0 4px 14px rgba(243,147,18,.35), inset 0 -2px 0 rgba(0,0,0,.06);
}
.logo .mark::before{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0 12deg, rgba(255,169,53,.55) 12deg 18deg, transparent 18deg 42deg, rgba(255,169,53,.55) 42deg 48deg, transparent 48deg 72deg, rgba(255,169,53,.55) 72deg 78deg, transparent 78deg 102deg, rgba(255,169,53,.55) 102deg 108deg, transparent 108deg 132deg, rgba(255,169,53,.55) 132deg 138deg, transparent 138deg 162deg, rgba(255,169,53,.55) 162deg 168deg, transparent 168deg 192deg, rgba(255,169,53,.55) 192deg 198deg, transparent 198deg 222deg, rgba(255,169,53,.55) 222deg 228deg, transparent 228deg 252deg, rgba(255,169,53,.55) 252deg 258deg, transparent 258deg 282deg, rgba(255,169,53,.55) 282deg 288deg, transparent 288deg 312deg, rgba(255,169,53,.55) 312deg 318deg, transparent 318deg 342deg, rgba(255,169,53,.55) 342deg 348deg, transparent 348deg 360deg);
  mask:radial-gradient(circle, transparent 56%, #000 57%, #000 100%);
  -webkit-mask:radial-gradient(circle, transparent 56%, #000 57%, #000 100%);
  animation:spin 18s linear infinite;
}
.logo .mark .plus{
  font-family:"Montserrat",sans-serif;font-weight:900;color:#fff;font-size:22px;line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}
@keyframes spin{to{transform:rotate(360deg)}}
.logo .name{font-family:"Zen Maru Gothic",sans-serif;font-weight:900;font-size:18px;color:var(--blue-ink);letter-spacing:.02em;line-height:1.15}
.logo .name .plus-text{color:var(--orange-d)}
.logo .company{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;font-weight:800;font-size:16px;color:var(--blue-ink);letter-spacing:.02em;line-height:1.2;margin-top:2px}
.logo .tag{font-size:10px;color:var(--ink-soft);letter-spacing:.06em;margin-top:2px;font-weight:500}
.nav{display:flex;gap:16px;margin-left:auto;font-size:13px;font-weight:700;flex-shrink:0}
.nav a{position:relative;padding:6px 0;color:var(--ink);transition:color .2s;flex-shrink:0;white-space:nowrap}
.nav a:hover{color:var(--blue-d)}
.nav a::after{content:"";position:absolute;left:50%;bottom:-2px;height:2px;width:0;background:var(--orange);transition:width .25s ease;transform:translateX(-50%)}
.nav a:hover::after{width:100%}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:14px}

.btn-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(180deg,#FFB94B 0%,#F39312 100%);
  color:#fff;font-weight:700;font-size:13px;line-height:1.2;
  padding:11px 20px;border-radius:999px;
  box-shadow:0 8px 18px rgba(243,147,18,.32), inset 0 -2px 0 rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.35);
  border:none;cursor:pointer;transition:transform .15s, box-shadow .15s, filter .15s;
  text-align:center;white-space:nowrap;
  position:relative;overflow:hidden;
}
.btn-cta::before{
  content:"";position:absolute;top:0;left:-120%;width:80%;height:100%;
  background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.45) 50%,transparent 100%);
  transform:skewX(-20deg);transition:left .9s ease;pointer-events:none;
}
.btn-cta:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(243,147,18,.45), inset 0 -2px 0 rgba(0,0,0,.06)}
.btn-cta:hover::before{left:140%}
.btn-cta .ico{width:18px;height:18px;color:#fff}
.btn-cta.ghost{background:#fff;color:var(--blue-d);box-shadow:0 6px 16px rgba(31,77,123,.10);border:2px solid #fff}
.btn-cta.ghost:hover{box-shadow:0 12px 24px rgba(31,77,123,.18)}
.btn-cta.lg{font-size:17px;padding:18px 38px;border-radius:999px;gap:12px}
.btn-cta.lg .ico{width:22px;height:22px}
.btn-cta.xl{font-size:19px;padding:22px 56px;gap:14px}
.btn-cta.xl .ico{width:26px;height:26px}
.header-cta{text-align:center;line-height:1.25;flex-shrink:0;white-space:nowrap}
.header-cta small{display:block;font-size:10px;font-weight:700;opacity:.95}

/* ===== Hero ===== */
.hero{
  position:relative;overflow:hidden;
  background-image:url('hero_bg_sm.png');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.hero .wrap{position:relative;z-index:4;padding-top:74px;padding-bottom:130px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-deco-sun{
  position:absolute;right:-110px;top:-110px;width:520px;height:520px;
  z-index:1;
  filter:blur(.2px);
}
.hero-deco-sun .core{
  position:absolute;inset:140px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #FFE08A 0%, #FFC15E 35%, #FFA935 70%, #F38B12 100%);
  box-shadow:0 0 80px rgba(255,169,53,.5), 0 0 140px rgba(255,169,53,.35);
  animation:sunpulse 6s ease-in-out infinite;
}
@keyframes sunpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.hero-deco-sun .rays{
  position:absolute;inset:0;animation:spin 60s linear infinite;
}
.hero-deco-sun .rays svg{width:100%;height:100%;display:block}
.hero-cloud{
  position:absolute;width:160px;height:60px;background:#fff;border-radius:60px;
  opacity:.85;filter:blur(.5px);box-shadow:0 6px 24px rgba(31,77,123,.08);
  animation:drift 14s ease-in-out infinite;
}
.hero-cloud.c1{top:90px;left:-40px;animation-delay:0s}
.hero-cloud.c2{top:240px;right:24%;width:100px;height:40px;animation-delay:-4s;opacity:.7}
.hero-cloud.c3{bottom:200px;left:20%;width:120px;height:46px;animation-delay:-8s;opacity:.6}
@keyframes drift{0%,100%{transform:translateX(0)}50%{transform:translateX(36px)}}
.hero-blob{position:absolute;pointer-events:none;z-index:1;opacity:.7}
.hero-blob.b1{bottom:60px;left:-60px;width:220px;transform:rotate(-10deg)}
.hero-blob.b2{top:200px;right:-30px;width:140px}
.hero-leaf{position:absolute;left:-20px;bottom:80px;width:110px;z-index:2;opacity:.85;animation:sway 5s ease-in-out infinite}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}

.hero-inner{position:relative;z-index:5}
.hero .eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;color:var(--blue-d);font-weight:700;font-size:12px;
  padding:7px 16px 7px 10px;border-radius:999px;margin-bottom:22px;letter-spacing:.04em;
  box-shadow:0 4px 14px rgba(31,77,123,.10);
}
.hero .eyebrow .pip{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,169,53,.18)}
/* Hero corporate line (company identity) */
.hero-corp{display:flex;align-items:center;gap:9px;margin-bottom:16px}
.hero-corp-mark{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 35% 35%, #FFE08A 0%, #FFA935 55%, #F38B12 100%);
  box-shadow:0 3px 10px rgba(243,147,18,.35);
}
.hero-corp-name{font-weight:800;font-size:15px;color:var(--blue-ink);letter-spacing:.03em}
/* Hero headline (emotional brand line) */
.hero h1{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-size:62px;line-height:1.18;margin:0 0 22px;font-weight:900;
  color:var(--blue-ink);letter-spacing:.005em;
}
.hero h1 .em{color:var(--orange-d);position:relative;display:inline-block}
.hero h1 .em::after{
  content:"";position:absolute;left:-3%;right:-3%;bottom:6px;height:14px;
  background:linear-gradient(90deg,#FFE69A 0%, #FFD46A 100%);z-index:-1;border-radius:4px;
}
.hero h1 .sub{display:block;margin-top:4px}
.hero-lead{font-size:16px;color:var(--ink);line-height:1.9;margin:0 0 26px;font-weight:500;max-width:520px}
.hero-lead b{color:var(--blue-d);font-weight:700}

.hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.chip{
  display:inline-flex;align-items:center;gap:0;background:#fff;
  font-size:12.5px;font-weight:700;color:var(--blue-ink);
  padding:8px 14px 8px 10px;border-radius:999px;
  box-shadow:0 3px 10px rgba(31,77,123,.08);
  border:1px solid rgba(220,231,241,.8);
}
.chip .ic{
  width:22px;height:22px;border-radius:50%;background:var(--bg-sky);
  display:grid;place-items:center;color:var(--blue-d);margin-right:8px;
}
.chip .ic svg{width:14px;height:14px}
.chip.green .ic{background:#E8F5D7;color:var(--green-d)}
.chip.orange .ic{background:#FFE8C4;color:var(--orange-d)}

.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-ctas .btn-cta.lg{padding:20px 38px;font-size:17px}
.hero-trust{
  display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);
  margin-top:18px;font-weight:500;
}
.hero-trust .stars{color:var(--orange-d);letter-spacing:1px;font-size:14px}
.hero-trust b{color:var(--ink);font-weight:700}

/* Hero card / right side */
.hero-card{
  position:relative;z-index:5;
  background:#fff;border-radius:28px;padding:28px;
  box-shadow:0 24px 64px -10px rgba(31,77,123,.22), 0 12px 24px rgba(31,77,123,.10);
  border:1px solid rgba(220,231,241,.7);
}
.hero-card-tag{
  position:absolute;top:-14px;left:24px;
  background:linear-gradient(180deg, #FFB94B, #F38B12);
  color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em;
  padding:6px 14px;border-radius:999px;
  box-shadow:0 6px 14px rgba(243,147,18,.35);
}
.hero-card h3{
  font-family:"Zen Maru Gothic",sans-serif;font-weight:900;
  margin:6px 0 6px;font-size:18px;color:var(--blue-ink);text-align:center;
}
.hero-card .ksize{
  text-align:center;font-size:11px;color:var(--ink-soft);font-weight:600;margin-bottom:12px;letter-spacing:.04em;
}
.hero-card .ksize b{color:var(--blue-d)}
.hero-pricebox{
  background:linear-gradient(180deg, #FFF8E8 0%, #FFEFD3 100%);
  border-radius:18px;padding:18px 18px 16px;text-align:center;
  border:1px dashed rgba(243,147,18,.45);
  position:relative;
}
.hero-pricebox .strike{
  font-size:13px;color:var(--ink-mute);text-decoration:line-through;
  margin:0 0 2px;font-weight:500;
}
.hero-pricebox .pricelbl{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;font-size:19px;color:var(--orange-d);font-weight:900;margin-bottom:6px;letter-spacing:.03em}
.hero-pricebox .pricelbl b{color:var(--orange-d)}
.hero-pricebox .yenrow{display:flex;align-items:baseline;justify-content:center;gap:4px}
.hero-pricebox .yen-big{font-size:54px;color:var(--orange-d);line-height:1;letter-spacing:-.01em}
.hero-pricebox .yen{font-size:22px;color:var(--ink);font-weight:800}
.hero-pricebox .from{font-size:13px;color:var(--ink);font-weight:700;margin-left:2px}
.hero-pricebox .tax{display:inline-block;font-size:10px;color:var(--ink-soft);background:#fff;padding:2px 7px;border-radius:4px;margin-left:6px;font-weight:600;vertical-align:middle;white-space:nowrap}
.hero-pricebox .note{font-size:10px;color:var(--ink-soft);margin-top:8px;line-height:1.6}

.hero-card-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;
}
.hero-card-stats .st{
  background:#F6FBFE;border-radius:12px;padding:12px 10px;text-align:center;
}
.hero-card-stats .st .lbl{font-size:10.5px;color:var(--ink-soft);font-weight:700;margin-bottom:2px;letter-spacing:.02em}
.hero-card-stats .st .v{font-family:"Montserrat",sans-serif;font-weight:800;color:var(--blue-d);font-size:29px;line-height:1.1}
.hero-card-stats .st .u{font-size:15px;color:var(--ink);font-weight:700;margin-left:1px}
.hero-card-note{font-size:9.5px;color:var(--ink-soft);line-height:1.55;margin-top:10px}

.hero-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:5;line-height:0;pointer-events:none}
.hero-wave svg{display:block;width:100%;height:80px}

/* ===== Stat strip ===== */
.stripe{
  background:linear-gradient(90deg, #1F73B6 0%, #3BAFE8 100%);
  color:#fff;padding:36px 0;position:relative;overflow:hidden;
}
.stripe::before{
  content:"";position:absolute;inset:0;background-image:radial-gradient(circle, rgba(255,255,255,.10) 1.6px, transparent 1.6px);
  background-size:24px 24px;opacity:.55;pointer-events:none;
}
.stripe .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative;z-index:2}
.stat{
  text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border-right:1px solid rgba(255,255,255,.22);padding:0 12px;
}
.stat:last-child{border-right:none}
.stat .v{
  font-family:"Montserrat",sans-serif;font-weight:900;font-size:38px;line-height:1;
  letter-spacing:-.01em;
  background:linear-gradient(180deg, #fff 0%, #FFE8C4 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat .u{font-size:16px;color:#FFE8C4;font-weight:800;margin-left:2px}
.stat .lbl{font-size:12px;color:rgba(255,255,255,.95);font-weight:600;letter-spacing:.04em;margin-top:4px}

/* ===== Section base ===== */
.s-title{text-align:center;font-family:"Zen Maru Gothic",sans-serif;font-size:36px;font-weight:900;color:var(--blue-ink);margin:0 0 10px;letter-spacing:.01em;line-height:1.35}
.s-title .em{color:var(--orange-d);position:relative;display:inline-block}
.s-title .em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:6px;height:10px;background:#FFE69A;z-index:-1;border-radius:3px}
.s-lead{text-align:center;color:var(--ink-soft);margin:0 0 48px;font-size:14px;line-height:1.9}
.s-cap{
  display:flex;align-items:center;justify-content:center;gap:6px;
  font-family:"Montserrat",sans-serif;font-weight:800;font-size:12px;
  color:var(--orange-d);letter-spacing:.18em;margin:0 0 10px;text-transform:uppercase;
}
.s-cap::before, .s-cap::after{
  content:"";width:24px;height:2px;background:var(--orange);border-radius:2px;
}

/* ===== Worry section ===== */
.worry{padding:96px 0 100px;background:#fff;position:relative;overflow:hidden}
.worry .deco-leaf{position:absolute;width:120px;left:-20px;top:60px;opacity:.6;transform:rotate(-30deg)}
.worry-box{
  background:linear-gradient(180deg, #FFFBEF 0%, #FFF6E0 100%);
  border-radius:32px;padding:52px 56px;
  position:relative;box-shadow:0 8px 30px rgba(243,147,18,.06);
  border:1px solid rgba(255,221,150,.4);
}
.worry-box::before{
  content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  width:64px;height:64px;border-radius:50%;background:#fff;
  box-shadow:0 6px 18px rgba(31,77,123,.10);
  display:grid;place-items:center;
  background-image:url('../icons/icon_07.png');background-size:38px 38px;background-position:center;background-repeat:no-repeat;
}
.worry-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:center;margin-top:14px}
.worry-people{position:relative;display:flex;align-items:center;justify-content:center;gap:0}
.worry-people .ppl{width:240px;flex-shrink:0;filter:drop-shadow(0 8px 20px rgba(31,77,123,.10))}
.worry-bubble{
  position:relative;flex-shrink:0;
  width:150px;padding:16px 14px;background:#fff;border-radius:18px;
  border:2px solid var(--blue-2);
  text-align:center;font-size:13.5px;font-weight:700;color:var(--blue-d);line-height:1.6;
  z-index:2;box-shadow:0 6px 16px rgba(31,115,182,.10);
  margin-right:-4px;
}
.worry-bubble::after{
  content:"";position:absolute;top:50%;right:-9px;width:16px;height:16px;background:#fff;
  border-top:2px solid var(--blue-2);border-right:2px solid var(--blue-2);
  transform:translateY(-50%) rotate(45deg);
}
.worry-list{
  background:#fff;border-radius:20px;padding:24px 28px;list-style:none;margin:0;
  box-shadow:0 4px 18px rgba(31,77,123,.06);border:1px solid rgba(220,231,241,.7);
}
.worry-list li{
  display:flex;align-items:flex-start;gap:14px;padding:14px 0;
  font-size:15.5px;font-weight:600;color:var(--ink);
  border-bottom:1px dashed #E8EFF6;
}
.worry-list li:last-child{border-bottom:none}
.worry-list .chk{
  flex-shrink:0;width:28px;height:28px;border-radius:8px;
  background:linear-gradient(180deg, var(--blue-2), var(--blue));
  color:#fff;display:grid;place-items:center;font-weight:900;font-size:14px;
  box-shadow:0 4px 10px rgba(31,115,182,.22);
}

.worry-solve{
  margin-top:44px;text-align:center;position:relative;
}
.worry-solve .arr{
  display:inline-block;font-family:"Montserrat",sans-serif;font-weight:800;color:var(--orange-d);font-size:13px;letter-spacing:.2em;
  background:#fff;padding:6px 16px;border-radius:999px;box-shadow:0 4px 12px rgba(31,77,123,.06);
}
.worry-solve .arr::after{
  content:"";display:block;width:2px;height:24px;background:var(--orange);margin:8px auto 0;
}
.worry-solve .arr::before{display:none}
.worry-solve .msg{
  margin-top:18px;font-family:"Zen Maru Gothic",sans-serif;font-weight:900;
  color:var(--blue-ink);font-size:26px;line-height:1.5;
}
.worry-solve .msg .em{
  color:var(--orange-d);background:linear-gradient(transparent 65%, #FFE69A 65%);padding:0 6px;
}
.worry-solve .brand{
  font-family:"Zen Maru Gothic",sans-serif;font-weight:900;color:var(--blue-d);
}

/* ===== Reasons (why sola+) ===== */
.why{
  padding:100px 0 96px;
  background:linear-gradient(180deg, #F7FBFE 0%, #EAF6FD 100%);
  position:relative;overflow:hidden;
}
.why::before{
  content:"";position:absolute;top:60px;right:-80px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(159,214,106,.20) 0%, transparent 70%);
  pointer-events:none;
}
.why::after{
  content:"";position:absolute;bottom:-80px;left:-100px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle, rgba(59,175,232,.18) 0%, transparent 70%);
  pointer-events:none;
}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.why-card{
  background:#fff;border-radius:22px;padding:30px 22px 26px;text-align:center;
  box-shadow:0 8px 24px rgba(31,77,123,.07);border:1px solid rgba(220,231,241,.6);
  position:relative;transition:transform .25s ease, box-shadow .25s ease;
}
.why-card:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(31,77,123,.14)}
.why-card .ribbon{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:linear-gradient(180deg, var(--blue-2), var(--blue-d));
  color:#fff;font-family:"Montserrat",sans-serif;font-weight:800;
  font-size:11px;letter-spacing:.18em;padding:4px 14px;border-radius:999px;
  box-shadow:0 4px 10px rgba(31,115,182,.30);
}
.why-card .ic{
  width:84px;height:84px;margin:14px auto 14px;border-radius:50%;
  background:linear-gradient(180deg, #FFFDF5, #FFF1D9);
  display:grid;place-items:center;position:relative;
}
.why-card .ic::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1.5px dashed rgba(243,147,18,.35);
}
.why-card .ic img{width:54px;height:54px;object-fit:contain}
.why-card h3{
  font-family:"Zen Maru Gothic",sans-serif;
  margin:0 0 10px;font-size:17px;font-weight:900;color:var(--blue-ink);line-height:1.45;
}
.why-card p{margin:0;font-size:13px;color:var(--ink-soft);line-height:1.85}

/* ===== Pricing / Simulation ===== */
.sim{padding:100px 0 110px;background:#fff;position:relative;overflow:hidden}
.sim-deco{position:absolute;top:60px;right:-40px;width:200px;opacity:.45;pointer-events:none}

/* ===== Flow ===== */
.flow{padding:96px 0 90px;background:linear-gradient(180deg,#FFF8E8 0%, #FFFDF6 100%);position:relative}
.flow-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:flex-start;margin-top:12px}
.step{position:relative;text-align:center;padding:0 4px}
.step .stepnum{
  position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(180deg, #FFB94B, #F38B12);
  color:#fff;font-family:"Montserrat",sans-serif;font-weight:900;font-size:13px;
  display:grid;place-items:center;z-index:3;
  box-shadow:0 4px 10px rgba(243,147,18,.35);
}
.step .ic-circle{
  width:100px;height:100px;border-radius:50%;
  background:linear-gradient(180deg, #fff, #F1F9FE);
  border:2px dashed var(--blue);margin:14px auto 14px;
  display:grid;place-items:center;position:relative;z-index:2;
  box-shadow:0 6px 18px rgba(31,77,123,.06);
}
.step .ic-circle img{width:60px;height:60px;object-fit:contain}
.step h4{font-family:"Zen Maru Gothic",sans-serif;margin:0 0 6px;font-size:14.5px;font-weight:900;color:var(--blue-ink)}
.step p{margin:0;font-size:12.5px;color:var(--ink-soft);line-height:1.7}
.step::before{
  content:"";position:absolute;top:78px;right:-12px;width:24px;height:0;
  border-top:3px dotted var(--orange);z-index:1;
}
.step:last-child::before{display:none}

.cta-row{text-align:center;margin-top:48px}
.cta-row .cta-lead{font-size:15px;font-weight:700;color:var(--blue-ink);line-height:1.8;margin-bottom:18px}
.cta-row .cta-lead b{color:var(--orange-d)}
.cta-row .micro{
  display:block;font-size:12px;color:var(--ink-soft);font-weight:600;margin-top:10px;
}

/* ===== Warranty ===== */
.warranty{
  padding:100px 0 72px;
  background:linear-gradient(180deg, #F7FBFE 0%, #DCEEFB 100%);
  position:relative;overflow:hidden;
}
.warranty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.war-card{
  background:#fff;border-radius:22px;padding:32px 24px 28px;text-align:center;
  box-shadow:0 10px 28px rgba(31,77,123,.10);position:relative;
  border:1px solid rgba(220,231,241,.7);
}
.war-card::before{
  content:"";position:absolute;top:-2px;left:24px;right:24px;height:4px;
  background:linear-gradient(90deg, var(--blue-2), var(--orange));border-radius:0 0 4px 4px;
}
.war-card .ic{width:80px;height:80px;margin:6px auto 6px}
.war-card .ic img{width:80px;height:80px;object-fit:contain}
.war-card h3{font-family:"Zen Maru Gothic",sans-serif;margin:0 0 4px;font-size:16px;font-weight:900;color:var(--blue-ink)}
.war-card .yrs{
  font-family:"Montserrat",sans-serif;font-weight:900;color:var(--orange-d);font-size:54px;line-height:1;margin:8px 0;letter-spacing:-.02em;
}
.war-card .yrs .u{font-size:22px;color:var(--ink);margin-left:2px}
.war-card p{margin:6px 0 0;font-size:12.5px;color:var(--ink-soft);line-height:1.8}

/* ===== FAQ ===== */
.faq{padding:100px 0 100px;background:#fff;position:relative;overflow:hidden}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.qa-wrap{position:relative}
.qa{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;display:flex;align-items:center;gap:14px;cursor:pointer;
  transition:background .2s, border-color .2s, box-shadow .2s;
}
.qa:hover{background:#F6FBFE;border-color:var(--blue-2)}
.qa .q{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:linear-gradient(180deg, var(--blue-2), var(--blue-d));color:#fff;font-family:"Montserrat",sans-serif;
  font-weight:900;display:grid;place-items:center;font-size:14px;
  box-shadow:0 4px 10px rgba(31,115,182,.20);
}
.qa .txt{flex:1;font-weight:700;color:var(--ink);font-size:14px;line-height:1.6}
.qa .plus{
  width:26px;height:26px;border-radius:50%;background:#FFF1D9;color:var(--orange-d);
  position:relative;flex-shrink:0;font-size:0;
  transition:transform .25s, background .25s, color .25s;
}
.qa .plus::before,
.qa .plus::after{
  content:"";position:absolute;top:50%;left:50%;
  background:currentColor;border-radius:1px;
}
.qa .plus::before{width:12px;height:2px;transform:translate(-50%,-50%)}
.qa .plus::after{width:2px;height:12px;transform:translate(-50%,-50%)}
.qa-wrap.open .qa{border-radius:14px 14px 0 0;background:#F6FBFE;border-color:var(--blue-2)}
.qa-wrap.open .qa .plus{transform:rotate(45deg);background:var(--orange);color:#fff}
.qa-ans{
  max-height:0;overflow:hidden;
  background:#F6FBFE;border:1px solid var(--blue-2);border-top:none;
  border-radius:0 0 14px 14px;
  font-size:13px;color:var(--ink-soft);line-height:1.95;
  transition:max-height .35s ease, padding .35s ease;
  padding:0 22px 0 68px;
}
.qa-wrap.open .qa-ans{max-height:300px;padding:14px 22px 18px 68px}

/* ===== Form ===== */
.form-sec{
  padding:96px 0 110px;
  background:linear-gradient(180deg, #DCEEFB 0%, #F7FBFE 100%);
  position:relative;overflow:hidden;
}
.form-sec::before{
  content:"";position:absolute;top:60px;right:-80px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(159,214,106,.30), transparent 70%);pointer-events:none;
}
.form-sec::after{
  content:"";position:absolute;bottom:-120px;left:-80px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,169,53,.18), transparent 70%);pointer-events:none;
}
.form-grid{
  display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start;
  background:#fff;border-radius:28px;padding:40px;box-shadow:0 24px 48px rgba(31,77,123,.16);
  position:relative;border:1px solid rgba(220,231,241,.6);
}
.form-grid::before{
  content:"CONTACT FORM";
  position:absolute;top:-14px;left:40px;
  background:linear-gradient(180deg, #FFB94B, #F38B12);color:#fff;
  font-weight:900;font-size:12px;letter-spacing:.18em;
  padding:6px 18px;border-radius:999px;
  box-shadow:0 6px 14px rgba(243,147,18,.35);
  font-family:"Montserrat",sans-serif;
  white-space:nowrap;
}
.form-side{text-align:center;position:relative}
.form-side h3{
  font-family:"Zen Maru Gothic",sans-serif;
  margin:0 0 10px;font-size:24px;font-weight:900;color:var(--blue-ink);line-height:1.45;
}
.form-side h3 .em{background:linear-gradient(transparent 60%, #FFE69A 60%);padding:0 4px;color:var(--orange-d)}
.form-side p{margin:0 0 22px;font-size:13px;color:var(--ink-soft);line-height:1.95}
.form-side p b{color:var(--orange-d);font-weight:800}
.form-side .promises{
  text-align:left;background:#F7FBFE;border-radius:14px;padding:16px 18px;
  list-style:none;margin:0;display:grid;gap:8px;
}
.form-side .promises li{
  display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--ink);font-weight:700;line-height:1.55;
}
.form-side .promises .chk{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;
  background:var(--green-d);color:#fff;display:grid;place-items:center;
  font-size:11px;font-weight:900;
}
.form-side .ill{margin-top:22px;border-radius:14px;overflow:hidden}
.form-side .ill img{max-width:100%;max-height:240px;object-fit:contain;border-radius:12px;margin:0 auto}

/* ===== 送信完了パネル ===== */
.form-grid.is-done{justify-items:center}
.form-grid.is-done::before{content:none}
.form-done{grid-column:1 / -1;max-width:540px;margin:0 auto;text-align:center;padding:24px 8px 8px}
.form-done .done-badge{
  width:76px;height:76px;border-radius:50%;margin:0 auto 22px;
  background:linear-gradient(135deg, #B7E58C 0%, #6FB544 100%);
  display:grid;place-items:center;
  box-shadow:0 12px 26px rgba(111,181,68,.38);
}
.form-done .done-badge svg{width:38px;height:38px;color:#fff}
.form-done h3{
  font-family:"Zen Maru Gothic",sans-serif;font-weight:900;
  font-size:24px;color:var(--blue-ink);margin:0 0 14px;line-height:1.5;
}
.form-done p{font-size:14px;color:var(--ink);line-height:1.95;margin:0 0 10px}
.form-done p b{color:var(--orange-d);font-weight:800}
.form-done .done-sub{font-size:12.5px;color:var(--ink-soft);line-height:1.9}
.form-done .done-btn{margin-top:24px}

.form-body{display:grid;gap:14px}
.field{display:grid;grid-template-columns:170px 1fr;gap:14px;align-items:center}
.field label{
  font-size:13px;font-weight:800;color:var(--ink);
  display:flex;align-items:center;gap:8px;
}
.field label .req{background:#E74C3C;color:#fff;font-size:10px;padding:3px 8px;border-radius:5px;font-weight:800;letter-spacing:.04em}
.field label .opt{background:#94A3B8;color:#fff;font-size:10px;padding:3px 8px;border-radius:5px;font-weight:800;letter-spacing:.04em}
.field input, .field select, .field textarea{
  width:100%;border:1.5px solid #DCE7F1;border-radius:10px;
  padding:13px 16px;font-size:14.5px;background:#F8FBFD;font-family:inherit;color:var(--ink);
  transition:border .15s, background .15s, box-shadow .15s;
  font-weight:500;
}
.field input::placeholder, .field textarea::placeholder{color:#A8B4C2;font-weight:400}
.field input:focus, .field select:focus, .field textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(59,175,232,.18)}
.field.full{grid-template-columns:170px 1fr;align-items:start}
.field textarea{min-height:100px;resize:vertical;word-break:break-word}

/* choice groups (checkbox / radio) */
.field.group{align-items:start}
.field.group > label{padding-top:10px}
.choices-wrap{min-width:0}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choices > label{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  background:#F8FBFD;border:1.5px solid #DCE7F1;border-radius:10px;
  padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--ink);
  transition:border-color .15s, background .15s, box-shadow .15s;
}
.choices > label:hover{border-color:var(--blue-2);background:#fff}
.choices > label:has(input:checked){border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(59,175,232,.16)}
.choices input{width:17px;height:17px;margin:0;accent-color:var(--blue);flex-shrink:0}
.field .err{display:none;margin-top:8px;color:#E74C3C;font-size:12px;font-weight:700}
.field.group.invalid .err{display:block}
.field.group.invalid .choices > label{border-color:#F0B4AE}
.field .agewrap .hint{display:block;margin-top:6px;font-size:11.5px;color:#E0533D;font-weight:600}
.choices-wrap .sub-input{margin-top:10px}

.consent{
  display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--ink-soft);
  background:#F7FBFE;padding:14px 16px;border-radius:10px;line-height:1.7;margin-top:4px;
}
.consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}
.consent a{color:var(--blue-d);text-decoration:underline;font-weight:600}

.form-submit{text-align:center;margin-top:8px}
.form-submit .micro{
  display:block;font-size:11.5px;color:var(--ink-soft);font-weight:600;margin-top:12px;
}

/* ===== Footer ===== */
.site-footer{background:#163A5F;padding:60px 0 28px;color:#C7D7E6}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.10)}
.foot-brand .logo .name{color:#fff}
.foot-brand .logo .company{color:rgba(255,255,255,.92)}
.foot-brand .logo .tag{color:rgba(255,255,255,.55)}
.foot-brand p{font-size:12px;color:rgba(255,255,255,.7);line-height:2;margin:14px 0 0}
.foot-col h5{margin:0 0 14px;font-size:12.5px;font-weight:800;color:#fff;letter-spacing:.06em}
.foot-col ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:12px;color:rgba(255,255,255,.7)}
.foot-col ul.info li{display:grid;grid-template-columns:64px 1fr;gap:8px;line-height:1.6}
.foot-col ul.info li > span:first-child{white-space:nowrap}
.foot-col ul.contact-info li{grid-template-columns:84px 1fr}
.foot-col ul.simple li a{transition:color .2s}
.foot-col ul.simple li a:hover{color:#FFB94B}
.foot-bottom{text-align:center;font-size:10.5px;color:rgba(255,255,255,.5);padding-top:24px;letter-spacing:.08em;font-family:"Montserrat",sans-serif}

/* ===== Mobile sticky CTA bar ===== */
.mobile-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:55;
  background:#fff;padding:10px 14px;
  box-shadow:0 -6px 20px rgba(31,77,123,.18);
  display:none;gap:8px;
}
.mobile-bar .btn-cta{flex:1;padding:13px 16px;font-size:13.5px;white-space:nowrap}

/* ===== Back to top ===== */
.totop{
  position:fixed;right:18px;bottom:18px;width:48px;height:48px;border-radius:50%;
  background:linear-gradient(180deg, #FFB94B, #F38B12);color:#fff;
  display:grid;place-items:center;font-size:22px;font-weight:900;
  box-shadow:0 8px 20px rgba(243,147,18,.45);cursor:pointer;border:none;
  opacity:0;transform:translateY(20px);transition:opacity .25s, transform .25s;z-index:60;
}
.totop.show{opacity:1;transform:translateY(0)}
.totop:hover{transform:translateY(-3px)}

/* ===== Simulation (simplified, benefit-focused) ===== */
.sim-precond{
  max-width:780px;margin:0 auto 30px;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:16px 22px;display:flex;align-items:center;justify-content:center;
  gap:14px 22px;flex-wrap:wrap;box-shadow:var(--shadow-1);
}
.sim-precond .pc-label{
  font-family:"Montserrat",sans-serif;font-weight:800;font-size:11px;letter-spacing:.1em;
  color:var(--orange-d);background:#FFF1D9;padding:6px 13px;border-radius:999px;flex-shrink:0;
}
.sim-precond .pc-list{display:flex;flex-wrap:wrap;gap:10px 26px;list-style:none;margin:0;padding:0}
.sim-precond .pc-list li{display:flex;align-items:baseline;gap:8px;font-size:13px}
.sim-precond .pc-list .k{color:var(--ink-soft);font-weight:600}
.sim-precond .pc-list .v{color:var(--blue-ink);font-weight:800;font-size:15px}

.sim-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bn{
  background:#fff;border-radius:20px;padding:30px 22px 26px;text-align:center;
  box-shadow:var(--shadow-2);border:1px solid rgba(220,231,241,.7);position:relative;
}
.bn-lbl{font-family:"Zen Maru Gothic",sans-serif;font-weight:900;color:var(--blue-ink);font-size:15px;margin-bottom:6px}
.bn-num{display:flex;align-items:baseline;justify-content:center;gap:3px;margin:8px 0 4px}
.bn-num .v{font-family:"Montserrat",sans-serif;font-weight:900;font-size:44px;line-height:1;color:var(--orange-d);letter-spacing:-.01em}
.bn-num .u{font-size:18px;font-weight:800;color:var(--ink)}
.bn-sub{font-size:11.5px;color:var(--ink-soft);line-height:1.7;margin-top:6px}
.bn.highlight{background:linear-gradient(180deg,#FFFDF5,#FFF1D9);border-color:rgba(255,169,53,.4)}
.bn.highlight .bn-num .v{font-size:50px}

.sim-payback{
  margin:24px auto 0;max-width:440px;background:linear-gradient(90deg,#FFE69A 0%,#FFD46A 100%);
  border-radius:14px;padding:14px 24px;display:flex;align-items:center;justify-content:center;gap:14px;
  box-shadow:0 8px 18px rgba(243,147,18,.20);
}
.sim-payback span{font-weight:800;color:#7A4A0E;font-size:14px}
.sim-payback b{font-family:"Montserrat",sans-serif;font-weight:900;color:#A04500;font-size:30px;line-height:1}
.sim-payback b .u{font-size:15px;margin-left:2px}
.sim-foot-note{text-align:center;font-size:11px;color:var(--ink-soft);margin:18px auto 0;max-width:700px;line-height:1.7}

@media (max-width:860px){
  .sim-benefits{grid-template-columns:1fr}
}

/* ===== Makers / Partners ===== */
.makers{padding:94px 0 90px;background:#fff;position:relative}
.mk-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-2);padding:26px 30px;margin-top:18px}
.mk-card.first{margin-top:10px}
.mk-badge{display:inline-block;font-family:"Zen Maru Gothic",sans-serif;font-weight:900;font-size:15px;color:#fff;padding:7px 18px;border-radius:999px;margin-bottom:18px}
.mk-badge.blue{background:linear-gradient(180deg,var(--blue-2),var(--blue-d))}
.mk-badge.green{background:linear-gradient(180deg,#A7D879,var(--green-d))}
.mk-feature{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;background:linear-gradient(180deg,#FFFDF5,#FFF1D9);border:1px solid rgba(255,169,53,.45);border-radius:14px;padding:14px 18px;margin-bottom:16px}
.mk-feature-name{font-family:"Zen Maru Gothic",sans-serif;font-weight:900;font-size:18px;color:var(--blue-ink);display:flex;align-items:center;gap:8px}
.mk-callout{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0;margin-left:auto}
.mk-callout li{background:#fff;border:1.5px solid var(--orange-d);color:var(--orange-d);font-weight:800;font-size:12px;padding:4px 10px;border-radius:8px;white-space:nowrap}
.mk-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px 24px}
.mk-list li{display:flex;align-items:flex-start;gap:9px;font-size:15px;font-weight:700;color:var(--ink);line-height:1.4}
.mk-maker-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.mk-pick{display:inline-flex;align-items:center;background:#fff4dd;border:1px solid rgba(255,169,53,.75);color:var(--orange-d);font-weight:800;font-size:11px;padding:3px 8px;border-radius:999px;white-space:nowrap}
.mk-mark{color:var(--blue);font-size:14px;line-height:1;flex-shrink:0}
.mk-more{text-align:right;font-size:12.5px;color:var(--ink-soft);font-weight:600;margin-top:14px}
.mk-inst{font-size:15px;font-weight:600;color:var(--ink);line-height:1.85}
.mk-inst b{color:var(--green-d)}
@media (max-width:760px){
  .mk-list{grid-template-columns:1fr}
  .mk-feature{align-items:flex-start}
  .mk-callout{margin-left:0;margin-top:4px}
  .mk-maker-row{align-items:flex-start}
}

/* ===== Reform (住宅リフォーム) ===== */
.reform-card{
  background:linear-gradient(180deg,#F4FBEA 0%,#FBFEF5 100%);
  border:1.5px solid rgba(111,181,68,.35);border-radius:22px;
  padding:28px 36px;box-shadow:0 10px 28px rgba(111,181,68,.10);
  margin-top:22px;
}
.reform-main{display:flex;align-items:center;gap:24px}
.reform-icon{font-size:52px;line-height:1;flex-shrink:0}
.reform-title{font-family:"Zen Maru Gothic",sans-serif;font-weight:900;color:var(--blue-ink);font-size:20px;line-height:1.45;margin:0 0 8px}
.reform-title .em{color:var(--green-d);background:linear-gradient(transparent 62%, #DBF0C2 62%);padding:0 4px}
.reform-text{font-size:14px;color:var(--ink);line-height:1.85;margin:0;font-weight:500}
.reform-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:22px 0 0;padding:0;justify-content:center}
.reform-chips li{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid rgba(111,181,68,.4);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--green-d);box-shadow:0 2px 8px rgba(111,181,68,.08)}
.reform-chips li span{font-size:15px;line-height:1}
@media (max-width:760px){
  .reform-main{flex-direction:column;text-align:center;gap:12px}
  .reform-card{padding:26px 22px}
}

/* ===== Contact CTA band (top page) ===== */
/* CTA section follows the warranty block directly (FAQ hidden) — tighten the seam */
#contact.form-sec{padding-top:52px}
.cta-band{
  max-width:680px;margin:0 auto;background:#fff;border-radius:24px;padding:44px 32px;text-align:center;
  box-shadow:0 24px 48px rgba(31,77,123,.16);border:1px solid rgba(220,231,241,.6);
}
.cta-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:26px}
.cta-band .btn-cta.xl{margin:0 auto}
.cta-band small{display:block;margin-top:14px;font-size:12px;color:var(--ink-soft);font-weight:600}

/* ===== Footer legal link ===== */
.foot-bottom a{color:rgba(255,255,255,.7);transition:color .2s}
.foot-bottom a:hover{color:#FFB94B}

/* ===== Sub-page heading band ===== */
.page-head{
  background:linear-gradient(180deg, #EAF6FD 0%, #F7FBFE 100%);
  padding:56px 0 44px;text-align:center;border-bottom:1px solid var(--line);
}
.page-head h1{font-family:"Zen Maru Gothic",sans-serif;font-size:34px;font-weight:900;color:var(--blue-ink);margin:0 0 6px;line-height:1.35}
.page-head p{margin:0;color:var(--ink-soft);font-size:13px}
.crumbs{font-size:12px;color:var(--ink-mute);margin:0 0 14px;font-weight:600}
.crumbs a{color:var(--blue-d)}

/* ===== Legal / privacy content ===== */
.legal{padding:64px 0 88px;background:#fff}
.legal .wrap{max-width:820px}
.legal .lead{font-size:14px;color:var(--ink-soft);line-height:1.95;margin:0 0 28px}
.legal h2{
  font-family:"Zen Maru Gothic",sans-serif;font-size:18px;font-weight:900;color:var(--blue-ink);
  margin:34px 0 12px;padding-left:14px;border-left:4px solid var(--orange);line-height:1.45;
}
.legal h2:first-of-type{margin-top:0}
.legal p{margin:0 0 12px;font-size:14px;line-height:1.95;color:var(--ink)}
.legal ul,.legal ol{margin:0 0 12px;padding-left:1.5em}
.legal li{font-size:14px;line-height:1.9;color:var(--ink);margin-bottom:6px}
.legal-table{width:100%;border-collapse:collapse;margin:6px 0 14px;font-size:13.5px}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top;line-height:1.7}
.legal-table th{background:var(--bg-sky);color:var(--blue-ink);font-weight:700;white-space:nowrap;width:34%}
.legal .signoff{margin-top:36px;text-align:right;font-size:13px;color:var(--ink-soft);line-height:1.9}

/* ===== Responsive ===== */
/* ===== Tablet & small desktop (1100px以下) ===== */
@media (max-width: 1100px){
  .nav{font-size:12px;gap:14px;flex-shrink:1}
  .nav a{padding:4px 0;flex-shrink:1}
  .site-header .wrap{gap:20px}
  .flow-grid{grid-template-columns:repeat(3,1fr)}
  .step::before{display:none}
}
/* ===== Small laptop / iPad landscape (1023px以下) ===== */
@media (max-width: 1023px){
  .header-cta{display:none}
}
/* ===== Tablet / large mobile (860px以下) ===== */
@media (max-width: 860px){
  .hero .wrap{grid-template-columns:1fr;padding-top:48px;padding-bottom:90px;gap:36px}
  .hero .wrap > *{min-width:0}
  .hero h1{font-size:42px}
  .hero-deco-sun{width:380px;height:380px;right:-150px;top:-120px;opacity:.65}
  .hero-card{max-width:100%;margin:0 auto;padding:22px 18px}
  .stripe .wrap{grid-template-columns:1fr 1fr 1fr;gap:14px}
  .stat{border-right:1px solid rgba(255,255,255,.22);padding:0 6px}
  .stat:last-child{border-right:none}
  .stat .v{font-size:30px}
  .stat .lbl{font-size:11px}
  .why-grid, .warranty-grid{grid-template-columns:1fr 1fr}
  .sim-grid, .worry-grid, .foot-grid, .form-grid{grid-template-columns:1fr}
  .form-grid::before{left:50%;transform:translateX(-50%)}
  .form-side .ill{display:none}
  .flow-grid{grid-template-columns:1fr 1fr;gap:24px 8px}
  .step::before{display:none}
  .faq-grid{grid-template-columns:1fr}
  .field, .field.full{grid-template-columns:1fr;gap:6px}
  .worry-box, .form-grid{padding:34px 22px}
  .worry-people .ppl{width:180px}
  .worry-bubble{width:130px;padding:12px 10px;font-size:12px}
  .s-title{font-size:28px}
  .mobile-bar{display:flex}
  body{padding-bottom:70px}
}
/* ===== Mobile (768px以下) ===== */
@media (max-width: 768px){
  .nav{display:none}
}
/* ===== Small mobile (620px以下) ===== */
@media (max-width: 620px){
  .hero h1{font-size:34px}
  .why-grid, .warranty-grid{grid-template-columns:1fr}
  .sim-row{grid-template-columns:1fr 1fr}
  .sim-big .v{font-size:48px}
  .war-card .yrs{font-size:54px}
  .chart-burst{width:108px;height:108px;font-size:11px}
  .chart-burst .big{font-size:18px}
}
/* ===== Very small mobile (480px以下) ===== */
@media (max-width: 480px){
  .stripe{padding:24px 0}
  .stripe .wrap{grid-template-columns:1fr;gap:14px}
  .stat{
    flex-direction:row;justify-content:center;align-items:center;
    gap:14px;border-right:none;
    border-bottom:1px solid rgba(255,255,255,.18);padding:10px 0;
  }
  .stat:last-child{border-bottom:none}
  .stat .v{font-size:32px}
  .stat .lbl{margin-top:0;font-size:13px}
  .flow-grid{grid-template-columns:1fr}
  .hero-lead{font-size:14px;line-height:1.85;max-width:100%}
  .hero h1{word-break:keep-all;overflow-wrap:break-word}
  .hero-chips{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .chip{font-size:11.5px;padding:7px 10px;gap:6px;justify-content:center;text-align:center;line-height:1.3}
  .chip .ic{width:20px;height:20px;flex-shrink:0}
  .chip .ic svg{width:13px;height:13px}
  .hero-pricebox .yen-big{font-size:38px}
  .hero-pricebox .yen{font-size:18px}
  .hero-pricebox .from{font-size:12px}
  .hero-card h3{font-size:16px}
  .sim-card{padding:20px 14px}
  .sim-big .v{font-size:36px}
  .sim-big .u{font-size:18px}
  .sim-big{gap:3px}
  .sim-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .chart{gap:20px;padding:0 12px 140px;height:240px}
  .chart .bar{width:60px}
  .chart-burst{
    position:absolute;
    top:auto;bottom:8px;right:auto;left:50%;
    transform:translateX(-50%) translateY(0);
    animation:none;
    margin:0;
    width:120px;height:120px;
  }
  .chart-arrow{display:none}
  .form-grid::before{font-size:11px;padding:5px 14px}
  .form-side h3{font-size:20px;line-height:1.5}
  .btn-cta.xl{padding:18px 22px;font-size:15px;gap:10px}
  .btn-cta.xl .ico{width:22px;height:22px}
  .cta-row .btn-cta.lg{
    width:100%;max-width:100%;padding:18px 22px;font-size:15px;
  }
}
/* ===== Ultra small mobile (360px以下) ===== */
@media (max-width: 360px){
  .mobile-bar .btn-cta{font-size:11.5px}
  .sim-big .v{font-size:28px}
  .sim-big .u{font-size:15px}
  .sim-row{grid-template-columns:1fr;gap:8px}
  .hero-card-stats .st .v{font-size:18px}
  .hero-card-stats .st > div{white-space:nowrap}
}

/* ===== Honeypot（ボット対策・視覚非表示） ===== */
.hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
