:root { color-scheme: light; font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; color: #303735; background: #fff; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-underline-offset: .3em; text-decoration-color: #a4afaa; }
a:hover { text-decoration-color: currentColor; }
a:focus-visible { outline: 2px solid #527564; outline-offset: 5px; }
.page { width: min(100% - 64px, 760px); margin: 0 auto; }
.intro { text-align: center; padding: 68px 0 60px; }
.logo { display: block; width: min(70%, 320px); height: auto; margin: 0 auto 22px; }
h1 { font-size: 21px; line-height: 1.7; letter-spacing: .13em; font-weight: 500; margin: 0; }
.status { font-size: 13px; line-height: 1.9; color: #69736e; margin: 18px 0 0; }
dl, dd { margin: 0; }
.row { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 24px; padding: 19px 0; border-top: 1px solid #e7eae8; font-size: 14px; line-height: 1.9; }
.row:last-child { border-bottom: 1px solid #e7eae8; }
dt { font-weight: 400; color: #6b746f; }
dd { min-width: 0; overflow-wrap: anywhere; }
.offices { display: grid; gap: 22px; }
.office-name { display: block; margin-bottom: 4px; font-size: 12px; color: #69736e; }
address { font-style: normal; }
.postal { display: block; }
.phone { text-decoration: none; }
footer { padding: 38px 0 28px; color: #69736e; font-size: 11px; line-height: 1.8; }
footer nav { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-bottom: 20px; }
footer small { font-size: 10px; }
.policy { padding-top: 54px; }
.back { display: inline-block; margin-bottom: 40px; font-size: 12px; }
.policy h1 { font-size: clamp(21px, 4.9vw, 28px); letter-spacing: .04em; margin-bottom: 32px; }
.policy h2 { margin: 30px 0 10px; font-size: 16px; font-weight: 600; }
.policy p, .policy li, .policy address { font-size: 14px; line-height: 2; }
.policy ul { padding-left: 1.4em; }
.policy footer { border-top: 1px solid #e7eae8; margin-top: 40px; }
@media (max-width: 540px) {
  .page { width: calc(100% - 40px); }
  .intro { padding: 48px 0 44px; }
  .logo { width: min(80%, 280px); margin-bottom: 18px; }
  h1 { font-size: 19px; letter-spacing: .09em; }
  .status { font-size: 12px; }
  .row { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; font-size: 13px; padding: 17px 0; }
  .policy { padding-top: 32px; }
}
@media print { .page { width: 100%; max-width: 760px; } .intro { padding-top: 20px; } .logo { width: 200px; } .row, .offices > div { break-inside: avoid; } }
