
:root{
  --ink:#28323b;
  --muted:#5e6973;
  --line:#dce3e7;
  --soft:#f8f9fa;
  --green:#2c8a69;
  --green-dark:#1b5a46;
  --green-soft:#eef9f5;
  --blue:#2d5372;
  --blue-dark:#203b50;
  --gold-soft:#fff9e9;
  --orange:#d86616;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.85;
}
a{color:var(--green-dark)}
img{max-width:100%;height:auto}
.wrap{width:min(980px,calc(100% - 32px));margin:0 auto}
.site-header{
  padding:22px 0 28px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#f2fbf7,#fff);
}
.site-logo{display:block;width:min(650px,100%);margin:0 0 20px}
.hero-image{
  overflow:hidden;
  margin:0 0 26px;
  border:1px solid #c9ddd6;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 28px rgba(44,138,105,.10);
}
.hero-image img{display:block;width:100%}
h1{margin:0 0 12px;font-size:clamp(27px,5vw,41px);line-height:1.35}
.lead{margin:0 0 18px;font-size:17px;color:#414d58}
.signature{margin:0;text-align:right;color:var(--muted);font-size:13px;line-height:1.75}
main{padding:34px 0 10px}
section{margin:0 0 42px}
h2{
  margin:0 0 16px;
  padding:0 0 9px;
  border-bottom:2px solid var(--line);
  font-size:24px;
  line-height:1.45;
}
h3{margin:22px 0 8px;font-size:18px}
p{margin:8px 0 14px}
ul{margin:10px 0 0;padding-left:1.4em}
li{margin:6px 0}
.trust-box,.info-box,.note-box,.operator-box{
  padding:20px 22px;
  border:1px solid var(--line);
  border-radius:12px;
}
.trust-box{background:#f3fbf7;border-color:#c9ddd6}
.info-box{background:#f3f8fb;border-color:#cad8e2}
.note-box{background:var(--gold-soft);border-color:#e9d79f}
.operator-box{background:#f7fafc;border-color:#cad8e2}
.label{
  display:inline-block;
  margin:0 0 10px;
  padding:3px 11px;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-size:13px;
  font-weight:700;
}
.grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.card{
  padding:18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--soft);
}
.card h3{margin-top:0}
.quick-links{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:16px;
}
.quick-links a{
  display:inline-block;
  padding:9px 14px;
  border-radius:8px;
  background:var(--green);
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.quick-links a:hover{background:var(--green-dark)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;min-width:760px;border-collapse:collapse;background:#fff}
th,td{padding:12px 13px;border:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:#e8f5f0;white-space:nowrap}
tbody th{width:225px;background:#f7fbf9}
.small{font-size:13px;color:var(--muted)}
.check-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 16px;
  margin:0;
  padding:0;
  list-style:none;
}
.check-list li{
  position:relative;
  margin:0;
  padding:12px 14px 12px 43px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.check-list li::before{
  content:"✓";
  position:absolute;
  left:14px;
  top:11px;
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
}
.cta{
  padding:26px;
  border:1px solid #edcaa9;
  border-radius:14px;
  background:#fff7ef;
  text-align:center;
}
.cta h2{padding:0;border:0}
.cta-phone{
  display:inline-block;
  margin:13px 0 6px;
  padding:11px 20px;
  border-radius:9px;
  background:var(--orange);
  color:#fff;
  text-decoration:none;
  font-size:22px;
  font-weight:800;
}
.faq details{
  margin:10px 0;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}
.faq summary{cursor:pointer;font-weight:700}
.faq details p{margin:10px 0 0}
.operator-box dl{
  display:grid;
  grid-template-columns:155px 1fr;
  gap:8px 15px;
  margin:16px 0 0;
}
.operator-box dt{font-weight:700}
.operator-box dd{margin:0}
.site-footer{
  margin-top:36px;
  padding:26px 0 32px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:0 0 12px;
  padding:0;
  list-style:none;
}
.footer-links a{color:var(--muted);text-decoration:none}
.footer-links a:hover{text-decoration:underline}
.page-top{
  position:fixed;
  right:18px;
  bottom:18px;
  display:inline-block;
  padding:10px 12px;
  border-radius:8px;
  background:var(--green);
  color:#fff;
  text-decoration:none;
  font-size:12px;
}
.legal-main{min-height:58vh;padding:36px 0}
.legal-main h1{font-size:32px}
@media(max-width:700px){
  .site-header{padding-top:18px}
  .grid,.check-list{grid-template-columns:1fr}
  .operator-box dl{grid-template-columns:1fr;gap:2px}
  .operator-box dd{margin-bottom:10px}
  .hero-image{border-radius:9px}
  .cta-phone{width:100%;font-size:19px}
}
