:root{
  --core:   #e9e956;
  --core-dk:#d8d838;
  --leaf:   #57972c;
  --leaf-band:#46811e;
  --leaf-lt:#f2f7e0;
  --ink:    #23281b;
  --sub:    #59604f;
  --micro:  #8b8f80;
  --paper:  #ffffff;
  --panel:  #fbfbf4;
  --line:   #e2e4d2;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }

body{
  font-family:"Noto Sans JP", sans-serif;
  color:var(--ink);
  background:#e6e8df;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}

.sheets{
  display:flex; flex-direction:column; align-items:center;
  gap:14mm; padding:16mm 0;
}
.page{
  position:relative;
  width:210mm; height:297mm;
  background:var(--paper);
  box-shadow:0 2mm 8mm rgba(0,0,0,.22);
  overflow:hidden;
}
.pg-inner{
  position:absolute; inset:0;
  padding:14mm 15mm;
  display:flex; flex-direction:column;
}

.mark{
  background:var(--core);
  color:var(--ink);
  border-radius:2.5mm;
  border:.3mm solid var(--core-dk);
  padding:.2mm 2.4mm .8mm;
  box-decoration-break:clone; -webkit-box-decoration-break:clone;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.mark-s{
  background:var(--core);
  color:var(--ink);
  border-radius:2.5mm;
  border:.3mm solid var(--core-dk);
  padding:.1mm 1.6mm .5mm;
  font-weight:900;
  box-decoration-break:clone; -webkit-box-decoration-break:clone;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

.front .pg-inner{ justify-content:flex-start; padding-bottom:14mm; }

.masthead{
  margin:-14mm -15mm 0;
  padding:5mm 15mm;
  height:22.9mm;
  flex-shrink:0;
  background:var(--leaf-band);
  display:flex; align-items:center; gap:4.3mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.mh-plate{
  display:inline-flex; align-items:center;
  background:#fff; border-radius:1.6mm;
  padding:2.2mm 3.4mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.mh-logo{ height:8.5mm; width:auto; object-fit:contain; display:block; }
.mh-lockup{ display:flex; flex-direction:column; line-height:1.08; }

.mh-desc{ font-size:13pt; color:#fff; font-weight:700; line-height:1.3; }
.mh-svc{
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:500;
  font-size:9.5pt; color:#fff; letter-spacing:.02em; margin-top:.6mm;
}

.lead{ font-size:12pt; color:var(--sub); line-height:1.65; margin-top:8mm; }
.lead b{ color:var(--ink); font-weight:700; }
.lead-who{ color:var(--leaf); font-weight:700; }

.hook{
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:36pt; line-height:1.34; color:var(--ink);
  letter-spacing:.005em;
  margin-top:3mm;
}
.hook .mark{ font-weight:900; }

.value-line{ font-size:12pt; color:var(--sub); line-height:1.65; margin-top:4mm; }
.value-line b{ color:var(--leaf); font-weight:700; }

.shot{
  display:flex; align-items:center; gap:2mm;
  width:100%;
  background:var(--panel);
  border:.8mm solid var(--line); border-radius:2mm;
  padding:9mm 4mm;
  margin-top:6mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

.shot-device{ flex:none; width:54mm; text-align:center; }
.shot-hw{ display:block; width:100%; max-width:54mm; height:auto; object-fit:contain; margin:0 auto; }
.hw-cap{ display:block; font-size:8pt; color:var(--sub); margin-top:1.2mm; line-height:1.4; }
.hw-cap b{ color:var(--leaf); font-weight:700; letter-spacing:.01em; }

.shot-arrow{
  flex:none; font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:20pt; line-height:1; color:var(--leaf);
}

.shot-screen{ flex:1; position:relative; }

.badge{
  display:block; width:fit-content; margin:1.4mm auto .8mm 0;
  background:#fff; color:var(--ink); border:.3mm solid var(--ink);
  font-size:7.5pt; font-weight:700; letter-spacing:.02em;
  padding:.6mm 2.2mm; border-radius:1.2mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

.mock-frame{ display:block; }
.mock-frame--front{
  width:104mm; height:56.4mm;
  border:.4mm solid var(--line); border-radius:1mm;
}
.mock-frame--step3{ width:28.4mm; height:36mm; }

.shot-note{ font-size:7pt; color:var(--micro); line-height:1.5; margin-top:1.4mm; }
.step-note{ font-size:7pt; color:var(--micro); line-height:1.4; margin-top:1.4mm; text-align:right; }

.values{ list-style:none; display:flex; flex-direction:column; gap:4mm; margin-top:7mm; }
.values li{
  display:flex; align-items:baseline; gap:2.6mm;
  border-left:1.4mm solid var(--leaf);
  padding:2.4mm 0 2.4mm 3.4mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.values .v-t{
  flex:none; width:50mm;
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:700;
  font-size:10.5pt; color:var(--ink); line-height:1.35;
}
.values .v-d{ flex:1; font-size:9pt; color:var(--sub); line-height:1.5; }

.front-foot{
  display:flex; flex-direction:row; align-items:center; gap:0;
  background:var(--leaf-lt);
  border:.5mm solid #d7e2ba;
  border-left:2.4mm solid var(--leaf);
  border-radius:2mm;
  padding:5mm;
  margin-top:auto;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.ff-qr{ flex:1; display:flex; align-items:center; gap:3mm; }

.qr-box{
  width:24mm; height:24mm; flex:none;
  border-radius:1.5mm; background:#fff;
  display:block;
}
.ff-lead{ font-size:11pt; font-weight:700; color:var(--ink); line-height:1.4; }

.ff-url{ font-size:8.5pt; color:var(--sub); margin-top:.6mm; word-break:break-all; }

.ff-url a,
.contact dd a{
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:.3mm;
  text-underline-offset:.7mm;
}

.ff-trust{
  text-align:left;
  font-size:9pt; color:var(--sub); line-height:1.5; flex:none;
  width:auto;
  white-space:nowrap;
  border-left:.4mm solid #d7e2ba;
  padding:3mm 0 3mm 4mm;
}
.ff-trust b{ color:var(--leaf); font-weight:700; }

.back .pg-inner{ justify-content:flex-start; }

.back-h{
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:17pt; line-height:1.38; color:var(--ink);
}

.steps{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:4mm; margin-top:4.5mm; }
.steps li{
  position:relative;
  background:var(--panel);
  border:.5mm solid var(--line); border-radius:2mm;
  padding:3mm 3mm 3.4mm;
  text-align:center;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.step-n{
  display:inline-block;
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:11pt; color:#fff; background:var(--leaf);
  width:8mm; height:8mm; line-height:8mm; border-radius:50%;
  margin-bottom:2mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.step-fig{
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  height:41mm; margin-bottom:1.8mm; position:relative;
}
.step-fig img{ max-width:100%; max-height:36mm; width:auto; height:auto; object-fit:contain; }

.steps .badge{
  position:absolute; left:0; bottom:0;
  margin:0;
  font-size:7.5pt; line-height:1.3;
  padding:.6mm 2.2mm;
}

.steps .badge--real{
  background:var(--ink); color:#fff; border-color:var(--ink);
}
.step-h{ font-size:11pt; font-weight:700; color:var(--ink); line-height:1.35; }
.step-c{ font-size:8.5pt; color:var(--sub); line-height:1.4; margin-top:.8mm; }

.spec-line{
  font-size:9pt; color:var(--sub); line-height:1.5;
  background:var(--leaf-lt); border:.4mm solid #dfe8c6; border-radius:2mm;
  padding:1.8mm 3.5mm;
  margin-top:4mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.spec-line b{ color:var(--ink); font-weight:700; }

.trust{
  background:var(--leaf-lt);
  border:.5mm solid #d7e2ba; border-radius:2.5mm;
  padding:4.5mm 5mm;
  margin-top:5mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.trust-eyebrow{
  font-size:9.5pt; font-weight:700; color:var(--leaf); text-align:center;
  margin-bottom:2.6mm;
}
.stats{ list-style:none; display:flex; }
.stats li{
  flex:1; text-align:center; padding:0 2mm;
  border-right:.4mm solid #cddb9e;
}
.stats li:last-child{ border-right:0; }
.stat-n{
  display:block;
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:23pt; line-height:1.05; color:var(--leaf);
}
.stat-u{ font-size:11pt; font-weight:700; margin-left:.4mm; }
.stat-l{ display:block; font-size:8.5pt; font-weight:700; color:var(--sub); margin-top:1mm; }
.stat-note{ font-size:7pt; color:var(--micro); text-align:center; margin-top:2mm; }

.trust-sub{
  font-size:8.5pt; font-weight:700; color:var(--sub);
  margin:4.5mm 0 2.2mm; padding-top:2.4mm;
  border-top:.4mm solid #cddb9e;
}
.trust-sub--first{ margin-top:0; padding-top:0; border-top:0; }

.badges{ margin-top:2mm; display:flex; flex-direction:column; gap:2.4mm; }
.badge-row{ display:flex; align-items:baseline; gap:3mm; }
.badge-key{
  flex:none; width:22mm;
  font-size:8.5pt; font-weight:900; color:#fff; background:var(--leaf);
  text-align:center; border-radius:1.2mm; padding:.6mm 0;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.badge-list{ list-style:none; display:flex; flex-wrap:wrap; gap:1.4mm 2mm; line-height:1.35; }
.badge-list li{
  font-size:8pt; font-weight:700; color:var(--ink);
  background:#fff; border:.4mm solid #cddb9e; border-radius:1.2mm;
  padding:.5mm 2.2mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

.brand-line{
  font-size:7pt; font-weight:400; color:var(--ink); line-height:1.5;
  margin-top:3mm;
}

.closer-line{ font-size:10pt; color:var(--sub); line-height:1.6; margin-top:auto; padding-top:4.5mm; }
.closer-line b{ color:var(--ink); font-weight:700; }
.closer-sub{ display:block; font-size:8pt; color:var(--micro); margin-top:1mm; line-height:1.5; }

.closing{

  margin-top:4.5mm;
  display:flex; flex-direction:column;
}
.closing-top{
  background:var(--core);
  border:.3mm solid var(--core-dk);
  border-radius:2.5mm;

  padding:7mm 5mm;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.close-main{ display:flex; gap:5mm; align-items:center; }
.qr-lg{ flex:none; text-align:center; }
.qr-box.lg{ width:28mm; height:28mm; }
.qr-cap{ font-size:7pt; color:var(--ink); font-weight:400; margin-top:1.2mm; }
.close-text{ flex:1; }
.close-h{
  font-family:"Zen Kaku Gothic New", sans-serif; font-weight:900;
  font-size:14pt; line-height:1.4; color:var(--ink);
}

.closing-top .close-h .mark{ background:#fff; color:var(--ink); }

.contact{ margin-top:2.5mm; }
.contact div{ display:flex; align-items:baseline; gap:2mm; }
.contact dt{
  flex:none; width:9mm;
  font-size:7pt; font-weight:400; color:var(--ink); line-height:1.5;
}
.contact dd{ font-size:9.5pt; font-weight:700; color:var(--ink); line-height:1.5; }

.company{
  font-size:7.5pt; font-weight:400; color:var(--ink); line-height:1.4;
  margin-top:2.2mm; padding-top:1.8mm;

  border-top:.3mm solid rgba(35,40,27,.3);
}
.company .svc-b{ font-weight:700; }
.provider{ font-size:7.5pt; font-weight:400; color:var(--ink); line-height:1.4; margin-top:.6mm; }

@page{ size:A4; margin:0; }

@media print{
  html,body{ background:#fff; }
  .sheets{ gap:0; padding:0; }
  .page{ box-shadow:none; margin:0; }
  .page.back{ page-break-before:always; }
}
