  :root {
  	--ink: #241a1e;
  	--ink-soft: #4a3a40;
  	--muted: #7a6b70;
  	--line: #eee2e5;
  	--line-soft: #f5ebee;
  	--bg: #fbf5f6;
  	--card: #ffffff;
  	--brand: #e60028;
  	--brand-2: #c00021;
	  --button-primary: #e60028;
	  --button-primary-deep: #c00021;
	  --button-table: #00e431;
	  --button-table-deep: #009c5b;
	  --button-table-shadow: rgba(0, 168, 42, 0.28);
  	--warn: #e60028;
  	--warn-deep: #b3001f;
  	--warn-bg: #fdecee;
  	--warn-line: #f6c9d0;
  	--accent: #e60028;
  	--accent-bg: #fdecee;
  	--safe: #1b7f4b;
  	--safe-bg: #e9f6ee;
  	--amber: #b06f00;
  	--amber-bg: #fdf3e2;
  	--radius: 16px;
  	--radius-sm: 11px;
  	--max: 900px;
  	--shadow: 0 1px 2px rgba(25, 15, 18, .04), 0 8px 24px rgba(25, 15, 18, .06);
  	--shadow-sm: 0 1px 2px rgba(25, 15, 18, .05), 0 4px 14px rgba(25, 15, 18, .05);
  	--font: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', Meiryo, system-ui, sans-serif;
  }

  * {
  	box-sizing: border-box
  }

  html {
  	scroll-behavior: smooth
  }

  body {
  	margin: 0;
  	font-family: var(--font);
  	color: var(--ink);
  	background:
  		radial-gradient(1200px 500px at 50% -200px, #ffe1e6 0, transparent 60%),
  		var(--bg);
  	line-height: 1.95;
  	font-size: 16px;
  	letter-spacing: .01em;
  	-webkit-font-smoothing: antialiased;
  	text-rendering: optimizeLegibility;
  }

  .wrap {
  	max-width: var(--max);
  	margin: 0 auto;
  	padding: 0 22px
  }

img {
	max-width: 100%;
	vertical-align: bottom;
}

  p {
  	margin: 0 0 15px
  }

  mark {
  	background: linear-gradient(transparent 54%, #ffe27a 54%);
  	color: inherit;
  	font-weight: 800;
  	padding: 0 .06em;
  	border-radius: 1px
  }

  main p strong {
  	color: var(--warn-deep);
  	font-weight: 800
  }

  /* ── utility warn bar ── */
  .topbar {
  	background: var(--warn);
  	color: #fff;
  	text-align: center;
  	font-size: 13px;
  	font-weight: 600;
  	padding: 9px 16px;
  	letter-spacing: .02em
  }

  .topbar b {
  	font-weight: 800
  }

  /* ── header ── */
  header {
  	background: rgba(255, 255, 255, .88);
  	backdrop-filter: saturate(160%) blur(10px);
  	border-bottom: 1px solid var(--line);
  	position: sticky;
  	top: 0;
  	z-index: 50
  }

  .head-inner {
  	display: flex;
  	align-items: center;
  	justify-content: space-between;
  	padding: 13px 22px;
  	max-width: var(--max);
  	margin: 0 auto;
  	gap: 16px;
  	flex-wrap: wrap
  }

  .brand {
	display: block;
    width: 36%;
	max-width: 180px;
	margin-bottom: .4em;
  }




  nav ul {
  	list-style: none;
  	display: flex;
  	gap: 4px;
  	margin: 0;
  	padding: 0;
  	flex-wrap: wrap;
  	font-size: 13px
  }

  nav a {
  	text-decoration: none;
  	color: var(--ink-soft);
  	padding: 6px 10px;
  	border-radius: 8px;
  	transition: .15s
  }

  nav a:hover {
  	color: var(--brand);
  	background: var(--accent-bg)
  }

  /* ── hero ── */
  .hero {
  	padding: 52px 0 46px;
  	text-align: center;
  	position: relative;
  	overflow: hidden
  }

  .hero .breadcrumb {
  	font-size: 12.5px;
  	color: rgba(255, 255, 255, .72);
  	margin-bottom: 20px;
  	letter-spacing: .03em
  }

  .hero .breadcrumb span {
  	color: #fff
  }

  .hero .badge {
  	display: inline-flex;
  	align-items: center;
  	gap: 7px;
  	background: rgba(255, 255, 255, .16);
  	color: #fff;
  	border: 1px solid rgba(255, 255, 255, .4);
  	border-radius: 999px;
  	padding: 7px 16px;
  	font-size: 12.5px;
  	font-weight: 800;
  	margin-bottom: 22px;
  	letter-spacing: .05em;
  	backdrop-filter: blur(4px)
  }

  .hero h1 {
  	font-size: 33px;
  	line-height: 1.5;
  	margin: 0 0 20px;
  	letter-spacing: .01em;
  	color: #fff
  }

  .hero h1 .hl {
  	background: linear-gradient(transparent 58%, rgba(255, 230, 1, 0.6) 58%);
  	padding: 0 .12em;
  	border-radius: 2px
  }

  .hero p.lead {
  	color: rgba(255, 255, 255, .9);
  	max-width: 680px;
  	margin: 0 auto 30px;
  	font-size: 16.5px
  }

  .hero .wrap {
  	position: relative;
  	z-index: 1
  }

  .hero-wm {
  	position: absolute;
  	stroke: currentColor;
  	fill: none;
  	pointer-events: none;
  	z-index: 0
  }

  .hero-wm.a {
  	color: #ffd0d8;
  	opacity: .55;
  	width: 210px;
  	height: 210px;
  	right: -34px;
  	top: -30px;
  	transform: rotate(12deg)
  }

  .hero-wm.b {
  	color: #f0e6e8;
  	opacity: .6;
  	width: 150px;
  	height: 150px;
  	left: -30px;
  	bottom: -24px;
  	transform: rotate(-10deg)
  }

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

  .hstat {
  	position: relative;
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: 14px;
  	padding: 15px 22px;
  	box-shadow: var(--shadow-sm);
  	min-width: 150px
  }

  .hstat.sep::before {
  	content: "→";
  	position: absolute;
  	left: -19px;
  	top: 50%;
  	transform: translateY(-50%);
  	color: var(--warn);
  	font-weight: 800;
  	font-size: 17px;
  	line-height: 1
  }

  .hstat .num {
  	font-size: 23px;
  	font-weight: 800;
  	color: var(--warn-deep);
  	line-height: 1.1;
  	font-variant-numeric: tabular-nums;
  	letter-spacing: .01em
  }

  .hstat .lab {
  	font-size: 12px;
  	color: var(--muted);
  	margin-top: 5px;
  	font-weight: 600
  }

  .hbtns {
  	display: flex;
  	gap: 12px;
  	justify-content: center;
  	flex-wrap: wrap;
  	margin-top: 28px
  }

  .btn {
  	display: inline-flex;
  	align-items: center;
  	gap: 8px;
  	text-decoration: none;
  	font-weight: 700;
  	font-size: 14.5px;
  	padding: 12px 22px;
  	border-radius: 11px;
  	transition: transform .15s, background .15s
  }

  .btn .icon {
  	width: 17px;
  	height: 17px
  }

  .btn.primary {
	  	background: linear-gradient(135deg, var(--button-primary), var(--button-primary-deep));
  	color: #fff;
  	box-shadow: 0 6px 16px rgba(230, 0, 40, .26)
  }

  .btn.primary:hover {
  	transform: translateY(-2px)
  }

  .btn.ghost {
  	background: #fff;
  	color: var(--brand);
  	border: 1px solid var(--line);
  	box-shadow: var(--shadow-sm)
  }

  .btn.ghost:hover {
  	background: var(--accent-bg)
  }

  /* ── TOC ── */
  .toc {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: var(--radius);
  	box-shadow: var(--shadow);
  	padding: 28px 30px 30px;
  	margin: 16px 0 8px
  }

  .toc h2 {
  	margin: 0 0 20px;
  	font-size: 15px;
  	letter-spacing: .06em;
  	color: var(--muted);
  	display: flex;
  	align-items: center;
  	gap: 9px;
  	font-weight: 800
  }

  .toc h2::before {
  	content: "";
  	width: 16px;
  	height: 2px;
  	background: var(--warn);
  	border-radius: 2px
  }

  .toc ol {
  	margin: 0;
  	padding: 0;
  	list-style: none;
  	counter-reset: toc;
  }

  .toc li {
  	counter-increment: toc
  }

  .toc a {
  	display: flex;
  	gap: 14px;
  	align-items: center;
  	text-decoration: none;
  	color: var(--ink-soft);
  	padding: 6px 0;
  	font-size: 14.5px;
  	transition: .15s;
	text-align: left;
  }

  .toc a:hover {
  	color: var(--brand)
  }

  .toc a::before {
  	content: counter(toc, decimal-leading-zero);
  	font-size: 16px;
  	font-weight: 800;
  	color: var(--warn);
  	font-variant-numeric: tabular-nums;
  	flex: none
  }

  /* ── sections ── */
  main {
  	padding: 8px 0 0;
  	counter-reset: sec
  }

  section.block {
  	padding: 58px 0;
  	border-top: 1px solid var(--line-soft);
  	counter-increment: sec
  }

  section.block:nth-of-type(even) {
  	background: linear-gradient(180deg, #fff, #fbfcfe);
  	box-shadow: inset 0 1px 0 var(--line-soft), inset 0 -1px 0 var(--line-soft)
  }

  .sec-head {
  	position: relative;
  	margin: 0 0 32px;
  	padding-bottom: 18px;
  	border-bottom: 1px solid var(--line);
  	overflow: hidden
  }

  .sec-head::before {
  	content: counter(sec, decimal-leading-zero);
  	position: absolute;
  	right: -4px;
  	top: -22px;
  	font-size: 92px;
  	font-weight: 800;
  	line-height: 1;
  	color: var(--warn);
  	opacity: .11;
  	font-variant-numeric: tabular-nums;
  	letter-spacing: -.02em;
  	pointer-events: none;
  	z-index: 0
  }

  .sec-head::after {
  	content: "";
  	position: absolute;
  	left: 0;
  	bottom: -1px;
  	width: 60px;
  	height: 3px;
  	background: var(--warn);
  	border-radius: 2px;
  	z-index: 1
  }

  .sec-head .kicker,
  .sec-head h2,
  .sec-head p.sub {
  	position: relative;
  	z-index: 1
  }

  .sec-head .kicker {
  	display: inline-flex;
  	align-items: center;
  	gap: 9px;
  	font-size: 16px;
  	font-weight: 800;
  	letter-spacing: .13em;
  	color: var(--warn-deep);
  	margin-bottom: 12px
  }

  .sec-head .kicker .no {
  	background: var(--warn);
  	color: #fff;
  	border-radius: 6px;
  	padding: 3px 9px;
  	font-variant-numeric: tabular-nums;
  	font-size: 13px
  }

  .sec-head h2 {
  	font-size: 27px;
  	margin: 0;
  	line-height: 1.4;
  	letter-spacing: .01em;
  	font-weight: 800
  }

  .sec-head p.sub {
  	color: var(--muted);
  	margin: 13px 0 0;
  	font-size: 15.5px
  }

  h3 {
  	font-size: 18px;
  	margin: 34px 0 14px;
  	padding: 11px 16px;
  	line-height: 1.55;
  	background: linear-gradient(90deg, var(--warn-bg), rgba(253, 236, 238, 0) 84%);
  	border-left: 5px solid var(--warn);
  	border-radius: 0 9px 9px 0
  }

  h4 {
  	font-size: 16px;
  	margin: 0 0 4px
  }

  /* ── cards ── */
  .grid {
  	display: grid;
  	grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
  	gap: 18px
  }

  .card {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: 16px;
  	padding: 26px;
  	box-shadow: 0 1px 2px rgba(25, 15, 18, .04), 0 6px 20px rgba(25, 15, 18, .05);
  	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease
  }

  .card:hover {
  	transform: translateY(-4px);
  	border-color: #ecdfe3;
  	box-shadow: 0 4px 10px rgba(25, 15, 18, .06), 0 18px 38px rgba(25, 15, 18, .10)
  }

  .card.risk {
  	border-top: none;
  	position: relative;
  	overflow: hidden;
  	padding-left: 30px;
  	background: linear-gradient(100deg, rgba(230, 0, 40, .04), transparent 32%), var(--card)
  }

  .card.risk::before {
  	content: "";
  	position: absolute;
  	left: 0;
  	top: 0;
  	bottom: 0;
  	width: 5px;
  	background: linear-gradient(180deg, var(--warn), var(--warn-deep))
  }

  .card h3 {
  	padding: 0;
  	margin: 0 0 11px;
  	font-size: 17.5px;
  	font-weight: 800;
  	letter-spacing: .01em;
  	background: none;
  	border-left: none
  }

  .card p {
  	margin: 0 0 9px;
  	color: var(--muted);
  	font-size: 15px;
  	line-height: 1.85
  }

  .card p:last-child {
  	margin-bottom: 0
  }

  .card .tag {
  	display: inline-block;
  	font-size: 11px;
  	font-weight: 800;
  	letter-spacing: .09em;
  	color: #fff;
  	background: linear-gradient(135deg, var(--warn), var(--warn-deep));
  	padding: 4px 11px;
  	border-radius: 999px;
  	margin-bottom: 12px;
  	box-shadow: 0 2px 6px rgba(230, 0, 40, .22)
  }

  /* ── steps ── */
  .steps {
  	margin: 16px 0;
  	position: relative
  }

  .step {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: 14px;
  	padding: 18px 22px;
  	margin-bottom: 12px;
  	display: flex;
  	gap: 17px;
  	align-items: flex-start;
  	box-shadow: 0 1px 2px rgba(25, 15, 18, .04), 0 6px 20px rgba(25, 15, 18, .05);
  	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease
  }

  .step:hover {
  	transform: translateY(-2px);
  	border-color: #ecdfe3;
  	box-shadow: 0 4px 10px rgba(25, 15, 18, .06), 0 14px 30px rgba(25, 15, 18, .09)
  }

  .step .n {
  	background: linear-gradient(135deg, var(--warn), var(--warn-deep));
  	color: #fff;
  	width: 32px;
  	height: 32px;
  	border-radius: 50%;
  	flex: none;
  	display: flex;
  	align-items: center;
  	justify-content: center;
  	font-weight: 800;
  	font-size: 14px;
  	box-shadow: 0 3px 8px rgba(230, 0, 40, .28)
  }

  .step .b {
  	flex: 1
  }

  .step h4 {
  	margin: 0 0 3px;
  	font-weight: 800
  }

  .step p {
  	margin: 0;
  	color: var(--muted);
  	font-size: 15px;
  	line-height: 1.8
  }

  /* ── callouts ── */
  .callout {
  	border-radius: var(--radius-sm);
  	padding: 18px 20px 18px 52px;
  	margin: 22px 0;
  	font-size: 15px;
  	position: relative;
  	border: 1px solid;
  	box-shadow: var(--shadow-sm)
  }

  .callout::before {
  	content: "";
  	position: absolute;
  	left: 17px;
  	top: 16px;
  	width: 21px;
  	height: 21px;
  	background-repeat: no-repeat;
  	background-position: center;
  	background-size: contain
  }

  .callout p {
  	margin: 0 0 8px
  }

  .callout p:last-child {
  	margin-bottom: 0
  }

  .callout.warn {
  	background: var(--warn-bg);
  	border-color: var(--warn-line)
  }

  .callout.warn::before {
  	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b3001f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E")
  }

  .callout.warn strong {
  	color: var(--warn-deep)
  }

  .callout.note {
  	background: #f5f2f3;
  	border-color: #e6dde0
  }

  .callout.note::before {
  	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a6b70' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E")
  }

  .callout.note strong {
  	color: var(--ink)
  }

  .callout.safe {
  	background: var(--safe-bg);
  	border-color: #bfe6cd
  }

  .callout.safe::before {
  	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b7f4b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E")
  }

  .callout.safe strong {
  	color: var(--safe)
  }

  /* ── inline icons ── */
  .icon {
  	width: 1em;
  	height: 1em;
  	display: inline-block;
  	vertical-align: -0.14em;
  	stroke: currentColor;
  	fill: none;
  	flex: none
  }

  .sec-head .kicker .k-ic {
  	width: 17px;
  	height: 17px;
  	vertical-align: -0.18em
  }

  /* ── data viz ── */
  .viz {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: var(--radius);
  	box-shadow: var(--shadow-sm);
  	padding: 22px 24px;
  	margin: 22px 0
  }

  .viz .vtitle {
  	font-size: 14.5px;
  	font-weight: 800;
  	color: var(--ink);
  	margin: 0 0 3px
  }

  .viz .vnote {
  	font-size: 12.5px;
  	color: var(--muted);
  	margin: 0 0 16px
  }

  .stackbar {
  	display: flex;
  	min-height: 52px;
  	border-radius: 11px;
  	overflow: hidden;
  	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .05)
  }

  .stackbar .seg {
  	display: flex;
  	flex-direction: column;
  	justify-content: center;
  	align-items: center;
  	color: #fff;
  	font-weight: 800;
  	font-size: 13px;
  	line-height: 1.25;
  	text-align: center;
  	padding: 8px 6px
  }

  .stackbar .seg small {
  	font-weight: 600;
  	font-size: 11px;
  	opacity: .92
  }

  .seg.get {
  	background: linear-gradient(135deg, #948b90, #5f5459)
  }

  .seg.fee {
  	background: linear-gradient(135deg, #e60028, #b3001f)
  }

  .vcap {
  	margin: 14px 0 0;
  	font-size: 13.5px;
  	color: var(--ink-soft)
  }

  .vcap b {
  	color: var(--warn-deep)
  }

  .vlegend {
  	display: flex;
  	gap: 18px;
  	flex-wrap: wrap;
  	margin-top: 13px;
  	font-size: 12.5px;
  	color: var(--muted)
  }

  .vlegend span {
  	display: inline-flex;
  	align-items: center;
  	gap: 6px
  }

  .vlegend i {
  	width: 12px;
  	height: 12px;
  	border-radius: 3px;
  	display: inline-block;
  	flex: none
  }

  .apr {
  	display: grid;
  	gap: 11px;
  	margin-top: 4px
  }

  .apr-row {
  	display: grid;
  	grid-template-columns: 118px 1fr;
  	gap: 12px;
  	align-items: center
  }

  .apr-row .lbl {
  	font-size: 12.5px;
  	color: var(--ink-soft);
  	font-weight: 700;
  	text-align: right;
  	line-height: 1.35
  }

  .apr-track {
  	background: #f1eaec;
  	border-radius: 8px;
  	height: 28px;
  	overflow: hidden
  }

  .apr-fill {
  	height: 100%;
  	border-radius: 8px;
  	display: flex;
  	align-items: center;
  	justify-content: flex-end;
  	padding-right: 11px;
  	color: #fff;
  	font-weight: 800;
  	font-size: 12.5px;
  	white-space: nowrap;
  	min-width: 52px
  }

  .apr-fill.low {
  	background: linear-gradient(90deg, #b7abaf, #8a8288)
  }

  .apr-fill.high {
  	color: #fff;
  	background: linear-gradient(90deg, #e60028, #b3001f),
  		repeating-linear-gradient(45deg, rgba(255, 255, 255, .16) 0 8px, transparent 8px 16px);
  	background-blend-mode: overlay
  }

  .apr-val {
  	display: none
  }


  /* ── comparison table ── */
  .table-wrap {
  	overflow-x: auto;
  	margin: 18px 0;
  	border-radius: 12px;
  	box-shadow: 0 1px 2px rgba(25, 15, 18, .04), 0 6px 20px rgba(25, 15, 18, .05);
  	border: 1px solid var(--line)
  }

  table.cmp {
  	width: 100%;
  	border-collapse: collapse;
  	background: var(--card);
  	font-size: 14.5px;
  	min-width: 420px
  }

  table.cmp th,
  table.cmp td {
  	border-bottom: 1px solid var(--line-soft);
  	padding: 14px 16px;
  	text-align: left;
  	vertical-align: top
  }

  table.cmp tr:last-child th,
  table.cmp tr:last-child td {
  	border-bottom: none
  }

  table.cmp thead th {
  	background: linear-gradient(135deg, var(--warn), var(--warn-deep));
  	color: #fff;
  	font-size: 13.5px;
  	border-bottom: none;
  	font-weight: 800;
  	letter-spacing: .02em
  }

  table.cmp thead th:first-child {
  	background: var(--warn-deep)
  }

  table.cmp th[scope="row"] {
  	background: #faf7f8;
  	color: var(--ink-soft);
  	white-space: nowrap;
  	font-weight: 700;
  	width: 1%
  }

  table.cmp tbody tr:nth-child(even) td {
  	background: #fcfafb
  }

  /* ── checklist ── */
  ul.check {
  	list-style: none;
  	padding: 0;
  	margin: 16px 0;
  	display: grid;
  	gap: 11px
  }

  ul.check li {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: var(--radius-sm);
  	padding: 15px 17px 15px 48px;
  	position: relative;
  	color: var(--muted);
  	font-size: 15px;
  	box-shadow: var(--shadow-sm)
  }

  ul.check li::before {
  	content: "";
  	position: absolute;
  	left: 16px;
  	top: 15px;
  	width: 19px;
  	height: 19px;
  	background-repeat: no-repeat;
  	background-position: center;
  	background-size: contain;
  	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e60028' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E")
  }

  ul.check li strong {
  	color: var(--ink)
  }

  ul.plain {
  	margin: 12px 0;
  	padding-left: 1.25em
  }

  ul.plain li {
  	margin-bottom: 7px;
  	color: var(--muted)
  }

  ul.plain li strong {
  	color: var(--ink)
  }

  /* ── contacts ── */
  .contacts {
  	display: grid;
  	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  	gap: 18px
  }

  .contact {
  	background: var(--card);
  	border: 1px solid var(--line);
  	border-radius: var(--radius);
  	padding: 22px;
  	box-shadow: var(--shadow-sm);
  	border-top: 4px solid var(--accent)
  }

  .contact h3 {
  	margin: 0 0 4px;
  	font-size: 16px;
  	padding: 0;
  	background: none;
  	border-left: none
  }

  .contact .tel {
  	font-size: 26px;
  	font-weight: 800;
  	color: var(--accent);
  	margin: 6px 0;
  	font-variant-numeric: tabular-nums;
  	letter-spacing: .02em
  }

  .contact .tel.txt {
  	font-size: 17px
  }

  .contact p {
  	margin: 0;
  	color: var(--muted);
  	font-size: 14px
  }

  /* ── footer ── */
  footer {
  	background: #211a1c;
  	color: #b9b1b4;
  	padding: 40px 0 28px;
  	font-size: 14px;
  	margin-top: 8px
  }

  footer .wrap {
  	display: grid;
  	gap: 26px
  }

  .foot-top {
  	display: grid;
  	grid-template-columns: 1.25fr 2fr;
  	gap: 38px
  }

  footer .fbrand {
	width: 70%;
}

  .foot-desc {
  	color: #afafaf;
  	font-size: 12.5px;
  	line-height: 1.85;
  	margin: 14px 0 0;
  	max-width: 340px
  }

  .foot-cols {
  	display: grid;
  	grid-template-columns: repeat(3, 1fr);
  	gap: 26px
  }

  .foot-col h4 {
  	color: #fff;
  	font-size: 12.5px;
  	letter-spacing: .06em;
  	margin: 0 0 13px;
  	padding-left: 10px;
  	border-left: 3px solid var(--warn)
  }

  .foot-col ul {
  	list-style: none;
  	margin: 0;
  	padding: 0;
  	display: grid;
  	gap: 10px
  }

  .foot-col li {
  	font-size: 13px;
  	color: #978e91
  }

  .foot-col a {
  	color: #b9b1b4;
  	text-decoration: none;
  	transition: .15s
  }

  .foot-col a:hover {
  	color: #fff
  }

  .disclaimer {
  	color: #afafaf;
  	font-size: 12px;
  	line-height: 1.85;
  	border-top: 1px solid #362c2e;
  	padding-top: 20px
  }

  .copyright {
  	color: #afafaf;
  	font-size: 12px
  }

  @media(max-width:640px) {
  	.foot-top {
  		grid-template-columns: 1fr;
  		gap: 26px
  	}

  	.foot-cols {
  		grid-template-columns: repeat(2, 1fr);
  		gap: 22px
  	}
  }

  /* ── back to top ── */
  #toTop {
  	position: fixed;
  	right: 20px;
  	bottom: 20px;
  	width: 46px;
  	height: 46px;
  	border-radius: 50%;
  	background: var(--brand);
  	color: #fff;
  	border: none;
  	cursor: pointer;
  	font-size: 18px;
  	box-shadow: 0 8px 22px rgba(20, 30, 60, .3);
  	opacity: 0;
  	pointer-events: none;
  	transition: .25s;
  	z-index: 60
  }

  #toTop.show {
  	opacity: 1;
  	pointer-events: auto
  }

  #toTop:hover {
  	background: var(--brand-2)
  }

  /* ── anchor offset under sticky header ── */
  [id] {
  	scroll-margin-top: 74px
  }

  /* ── hero band ── */
  .hero {
  	color: #fff;
  	padding: 56px 0 54px;
  	background:
  		radial-gradient(700px 320px at 50% -80px, rgba(255, 255, 255, .15), transparent 70%),
  		linear-gradient(158deg, #e60028 0%, #c00021 55%, #96001b 100%)
  }

  .hero-kick {
  	font-size: 14px;
  	font-weight: 800;
  	letter-spacing: .12em;
  	color: #fff;
  	margin: 0 0 14px;
  	display: flex;
  	align-items: center;
  	gap: 11px;
  	justify-content: center
  }

  .hero-kick::before,
  .hero-kick::after {
  	content: "";
  	width: 26px;
  	height: 1px;
  	background: rgba(255, 255, 255, .45)
  }

  /* ── scroll reveal ── */
  .js .card,
  .js .step,
  .js .contact {
  	opacity: 0;
  	transition: opacity .6s ease, transform .18s ease, box-shadow .18s ease
  }

  .js .card.seen,
  .js .step.seen,
  .js .contact.seen {
  	opacity: 1
  }

  .js .sec-head,
  .js .viz,
  .js .callout,
  .js .toc,
  .js .table-wrap {
  	opacity: 0;
  	transform: translateY(18px);
  	transition: opacity .6s ease, transform .6s ease
  }

  .js .sec-head.seen,
  .js .viz.seen,
  .js .callout.seen,
  .js .toc.seen,
  .js .table-wrap.seen {
  	opacity: 1;
  	transform: none
  }

  @media(prefers-reduced-motion:reduce) {

  	.js .card,
  	.js .step,
  	.js .contact,
  	.js .sec-head,
  	.js .viz,
  	.js .callout,
  	.js .toc,
  	.js .table-wrap {
  		opacity: 1 !important;
  		transform: none !important;
  		transition: none !important
  	}
  }

  @media(max-width:640px) {
  	body {
  		font-size: 15.5px
  	}

  	.wrap {
  		padding: 0 16px
  	}

  	/* header: compact brand + horizontal-scroll pill nav */
  	header {
  		position: static
  	}

  	.head-inner {
  		flex-direction: column;
  		gap: 9px;
  		align-items: stretch;
  		padding: 11px 14px 9px
  	}

  	.brand {
  		justify-content: flex-start
  	}

  	header nav ul {
  		display: grid;
  		grid-template-columns: repeat(4, 1fr);
  		gap: 7px;
  		padding: 0
  	}

  	header nav li {
  		display: flex
  	}

  	header nav a {
  		flex: 1;
  		display: block;
  		text-align: center;
  		background: var(--accent-bg);
  		color: var(--warn-deep);
  		font-weight: 700;
  		font-size: 12.5px;
  		padding: 8px 5px;
  		border: 1px solid var(--warn-line);
  	}

  	/* hero */
  	.hero {
  		padding: 36px 0 34px
  	}

  	.hero h1 {
  		font-size: 24px;
  		line-height: 1.55
  	}

  	.hero p.lead {
  		font-size: 15px;
  		margin-bottom: 24px
  	}

  	.hero-wm.a {
  		width: 150px;
  		height: 150px;
  		right: -24px;
  		top: -16px
  	}

  	.hero-wm.b {
  		width: 110px;
  		height: 110px
  	}

  	.hstats {
  		flex-direction: column;
  		gap: 8px;
  		margin-top: 2px
  	}

  	.hstat {
  		min-width: 0;
  		width: 100%;
  		flex: none;
  		display: flex;
  		align-items: center;
  		gap: 13px;
  		padding: 11px 16px;
  		text-align: left
  	}

  	.hstat .num {
  		font-size: 17px;
  		min-width: 104px;
  		white-space: nowrap
  	}

  	.hstat .lab {
  		font-size: 12px;
  		margin-top: 0;
  		flex: 1
  	}

  	.hbtns {
  		flex-direction: column
  	}

  	.btn {
  		justify-content: center;
  		width: 100%
  	}

  	/* sections tighter */
  	section.block {
  		padding: 34px 0
  	}

  	.sec-head {
  		margin-bottom: 22px
  	}

  	.sec-head h2 {
  		font-size: 20px
  	}

  	.sec-head::before {
  		font-size: 60px;
  		top: -12px
  	}

  	h3 {
  		font-size: 17px;
  		margin-top: 26px
  	}

  	.card {
  		padding: 20px
  	}

  	.grid {
  		gap: 14px
  	}

  	#toTop {
  		width: 42px;
  		height: 42px
  	}
	.toc {
		padding-inline: 15px;
	}

	.apr-row {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		row-gap: 6px;
	}

	.apr-row .lbl {
		text-align: left;
	}

	.apr-row .apr-track {
		position: relative;
		overflow: visible;
	}

	.apr-fill.low .apr-text {
		display: none;
	}

	.apr-val {
		display: block;
		position: absolute;
		top: 50%;
		right: 8px;
		transform: translateY(-50%);
		font-size: 12.5px;
		font-weight: 800;
		color: var(--ink-soft);
		white-space: nowrap;
	}
	footer{
		padding-top: 26px;
	}
	footer .fbrand {
		width: 60%;
	}
  }