:root{
  --bg:#FBFAF7;
  --paper:#FFFFFF;
  --warm:#F7EADF;
  --sage:#E7EFE9;
  --sage-strong:#2F5F50;
  --ink:#2D2A28;
  --muted:#3F3A36;
  --brand:#FF9122;
  --brand-hover:#F57E12;
  --brand-text:#813C0F;
  --line:#E7DCCD;
  --maxw:900px;
  --r:8px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Noto Sans JP",system-ui,sans-serif;
  font-size:18px;
  font-weight:500;
  line-height:1.82;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  font-weight:700;
  line-height:1.45;
  letter-spacing:0;
}
a{color:var(--brand-text);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
header{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(251,250,247,.94);
  border-bottom:1px solid rgba(231,220,205,.9);
  backdrop-filter:blur(12px);
}
.head{
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  text-decoration:none;
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:22px;
  font-weight:700;
}
.brand img{width:36px;height:36px;border-radius:8px;}
.back{
  color:var(--brand-text);
  font-size:16px;
  font-weight:700;
  text-decoration:none;
}
main{padding:42px 0 64px;}
.eyebrow{
  margin:0;
  color:var(--sage-strong);
  font-size:16px;
  font-weight:700;
}
h1{
  margin:10px 0 10px;
  font-size:clamp(32px,5vw,44px);
}
.lead{
  margin:0;
  color:var(--muted);
  font-size:18px;
}
.notice{
  margin:28px 0 0;
  background:var(--warm);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:18px;
  color:var(--ink);
}
.panel{
  margin-top:24px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:26px;
}
.panel h2{
  margin:0 0 14px;
  font-size:25px;
}
.panel h2:not(:first-child){
  margin-top:34px;
}
.panel h3{
  margin:22px 0 8px;
  font-size:21px;
}
.panel p{margin:0 0 14px;}
.panel ul,.panel ol{margin:0 0 14px;padding-left:1.4em;}
.panel li{margin:8px 0;}
.placeholder{
  display:inline-block;
  background:#FFF3E8;
  color:var(--brand-text);
  border-radius:6px;
  padding:0 6px;
  font-weight:700;
}
dl{
  display:grid;
  grid-template-columns:210px 1fr;
  gap:0;
  margin:0;
  border-top:1px solid var(--line);
}
dt,dd{
  margin:0;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
dt{font-weight:700;}
dd{color:var(--muted);}
table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
  background:var(--paper);
  font-size:16px;
}
th,td{
  border:1px solid var(--line);
  padding:12px 14px;
  vertical-align:top;
  text-align:left;
}
th{
  background:var(--sage);
  color:var(--ink);
}
.table-scroll{
  overflow-x:auto;
  margin:20px 0;
}
.contact-form{margin-top:6px;}
.contact-form .field{margin:0 0 16px;}
.contact-form label{display:block;margin:0 0 6px;font-weight:700;}
.contact-form input,
.contact-form textarea{
  display:block;
  width:100%;
  font-family:inherit;
  font-size:16px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:12px 14px;
  line-height:1.6;
}
.contact-form textarea{resize:vertical;min-height:120px;}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:2px solid var(--brand);
  outline-offset:1px;
  border-color:var(--brand);
}
.contact-form .form-note{margin:0 0 16px;color:var(--muted);font-size:15px;}
.contact-form .submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:12px 28px;
  background:var(--brand);
  color:var(--ink);
  border:0;
  border-radius:14px;
  font-family:inherit;
  font-size:17px;
  font-weight:700;
  cursor:pointer;
}
.contact-form .submit:hover{background:var(--brand-hover);}
footer{
  border-top:1px solid var(--line);
  padding:30px 0 44px;
}
footer p{
  margin:0;
  color:var(--muted);
  font-size:16px;
}
footer .name{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 8px;
  color:var(--ink);
  font-family:"Zen Maru Gothic",sans-serif;
  font-size:19px;
  font-weight:700;
}
footer .name .mark{
  width:40px;
  height:40px;
  border-radius:8px;
  flex:0 0 auto;
}
footer .small{
  max-width:54em;
  margin:0;
  color:var(--muted);
  font-size:16px;
}
footer .footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:18px 0 0;
  font-size:16px;
  font-weight:700;
}
footer .footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:20px 0 0;
}
footer .sns{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:10px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--muted);
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
footer .sns:hover{
  color:var(--brand-text);
  border-color:#F6B18F;
  background:var(--warm);
}
footer .sns svg{width:22px;height:22px;display:block;fill:currentColor;}
@media (max-width:640px){
  .wrap{padding:0 20px;}
  body{font-size:18px;}
  .head{align-items:flex-start;flex-direction:column;padding:14px 20px;}
  main{padding:34px 0 52px;}
  .panel{padding:20px;}
  dl{grid-template-columns:1fr;}
  dt{padding-bottom:4px;border-bottom:0;}
  dd{padding-top:0;}
}
