:root{
  --bg:#ffffff;
  --text:#111111;
  --muted:#555555;
  --line:#dddddd;
  --accent:#1f4ea3;
  --container:1280px;
  --content:760px;
  --indent:12px;
  --desc-indent:16px;
  --qa-indent:24px;
}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic","Hiragino Sans","Noto Sans JP",Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.9;
}
a{color:inherit;text-decoration:none}
a:hover{opacity:.88}

/* Layout */
.site-container{
  width:min(calc(100% - 32px), var(--container));
  margin:0 auto;
}
.page-shell{
  padding:24px 0 32px;
}
main section{
  padding:32px 0;
  border-bottom:1px solid var(--line);
}
main section:first-child{padding-top:0}
.content-narrow{
  max-width:var(--content);
}
main section:last-of-type{
  border-bottom:none;
}
/* Header */
.site-header{
  border-bottom:1px solid var(--line);
}
.site-header,
.site-header *{
  font-family:"Hiragino Sans","Noto Sans JP",sans-serif !important;
}
.site-header-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  min-height:72px;
}
.site-brand{
  font-size:20px;
  font-weight:700;
  letter-spacing:0;
}
.site-nav{
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.site-nav a{
  font-size:15px;
  font-weight:500;
  letter-spacing:0;
  color:var(--muted);
}
.site-nav a[aria-current="page"]{
  color:var(--text);
  font-weight:700;
}
.page-utility{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-bottom:10px;
}
.lang-switch{
  display:flex;
  gap:10px;
  font-size:12px;
  color:var(--muted);
  letter-spacing:.04em;
}
.lang-switch .active{
  color:var(--text);
  font-weight:700;
}

/* Typography */
.site-label{
  font-size:14px;
  color:var(--muted);
  margin-bottom:8px;
  letter-spacing:.04em;
  text-transform:uppercase;
}

h1{
  margin:0 0 20px;
  font-size:clamp(28px,5vw,42px);
  line-height:1.25;
}
h2{
  margin:0 0 20px;
  font-size:24px;
  line-height:1.4;
}
p{
  margin:0 0 20px;
  font-size:17px;
}
ul{
  margin:0;
  padding-left:1.2em;
}
li{
  margin:0 0 10px;
  font-size:17px;
}
.lead{
  margin:0;
  color:var(--text);
  font-size:21px;
  font-weight:500;
  line-height:1.6;
}
.note,
.small{
  color:var(--muted);
  font-size:15px;
}

/* Shared content indent rule */
.body-copy{
  margin-left:var(--indent);
}
.body-copy > *:last-child{
  margin-bottom:0;
}
.body-copy > ul{
  padding-left:1.2em;
}
.body-copy ul:not(.label-list){
  list-style-type:disc;
}
.body-copy ul:not(.label-list) li::marker{
  font-size:0.85em;
  color:#999;
}

.body-copy h3{
  margin:24px 0 6px;
  font-size:18px;
  line-height:1.5;
}
.method-standard-list ul{
  margin:6px 0 16px;
}
.method-standard-list ul:last-child{
  margin-bottom:0;
}
.note{
  font-size: 0.9em;
  line-height: 1.6;
  margin-top: 12px;
}

/* CTA */
.hero-actions,
.sub-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.btn,
.text-link{
  display:inline-block;
  transition:opacity .2s ease;
}
.cta{
  margin-top:24px;
  padding-top:0px;
  border-top:none;
  background:none;
  border-radius:0;
}
.cta h2{
  font-size:20px;
  margin-bottom:8px;
}
.cta .btn{
  padding:10px 20px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:15px;
  font-weight:600;
  border:1px solid var(--accent);
}
.cta .text-link{
  font-size:13px;
  color:#666;
}
.cta .sub-links{
  margin-top:14px;
}
/* CTA 上の文（見出し的） */
.cta-lead {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 12px;
  line-height: 1.5;
}

/* CTA 下の補足 */
.cta-note {
  font-size: 15px;
  color: #666;
  margin-top: 12px;
  line-height: 1.5;
}

/* Label lists */
.label-list{
  list-style:none;
  padding-left:0;
  margin:0;
}
.label-list li{
  margin:0;
  padding:10px 0;
  border-top:1px solid var(--line);
}
.label-list li:first-child{
  border-top:none;
  padding-top:0;
}
.label-list li strong{
  display:inline-block;
  min-width:48px;
}
.desc{
  display:block;
  margin-left:var(--desc-indent);
  margin-top:4px;
}

/* Q&A */
.qa{
  margin-top:8px;
}
.qa-item{
  padding:18px 0;
  border-top:1px solid var(--line);
}
.qa-item:first-child{
  border-top:none;
  padding-top:0;
}
.q{
  margin:0 0 8px;
  font-weight:700;
}
.a{
  margin:8px 0 0 var(--qa-indent);
}

/* Footer */
.site-footer{
  border-top:1px solid var(--line);
}
.site-footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  min-height:72px;
  color:var(--muted);
  font-size:14px;
}
.site-footer a{
  color:var(--muted);
}

/* Responsive */
@media (max-width:900px){
  .site-header-inner,
  .site-footer-inner{
    min-height:auto;
    padding:16px 0;
  }
  .site-header-inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .site-nav{
    gap:16px;
  }
  .label-list li strong{
    min-width:40px;
  }
  .cta .btn{
    width:100%;
    text-align:center;
  }
  :root{
    --indent:10px;
    --desc-indent:14px;
    --qa-indent:20px;
  }
}
