:root {
  color-scheme: light;
  --paper: #f6f7f3;
  --ink: #263c34;
  --muted: #626f68;
  --line: #d8dfd7;
  --accent: #35664d;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 15px; line-height: 1.8; }
a { color: inherit; text-underline-offset: 4px; text-decoration-thickness: 1px; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; border-radius: 2px; }
.skip-link { position: absolute; top: 8px; left: 16px; padding: 8px 14px; background: white; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.page { width: min(100% - 64px, 760px); margin-inline: auto; }
.header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 37px 26px; border-bottom: 1px solid var(--line); }
.wordmark { display: inline-flex; flex-shrink: 0; text-decoration: none; line-height: 1; }
.wordmark img { display: block; width: 190px; height: auto; }
.header-label { color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.intro { padding-block: 55px 34px; }
.eyebrow { margin: 0 0 9px; color: var(--accent); font-size: 11px; font-weight: 650; letter-spacing: .18em; }
h1 { margin: 0; font-size: 28px; line-height: 1.5; font-weight: 600; letter-spacing: .08em; }
.lead { max-width: 660px; margin: 24px 0 0; font-size: 16px; line-height: 2.1; letter-spacing: .025em; }
.company-details { margin: 0; border-top: 1px solid var(--line); }
.detail { display: grid; grid-template-columns: 146px minmax(0, 1fr); gap: 18px; padding-block: 17px; border-bottom: 1px solid var(--line); }
dt { color: var(--muted); font-size: 13px; font-weight: 500; padding-top: 2px; }
dd { margin: 0; overflow-wrap: anywhere; }
.postal-code { font-size: 13px; color: var(--muted); }
.corporate-number { font-variant-numeric: tabular-nums; letter-spacing: .025em; }
.registry-link { font-size: 12px; color: var(--accent); }
.contact-link { font-size: 16px; }
.phone { color: var(--muted); font-size: 13px; text-decoration: none; }
footer { padding-block: 26px 32px; color: var(--muted); }
footer small { font-size: 11px; letter-spacing: .04em; }
.not-found { padding-block: 60px; }
.not-found p { margin-block: 24px; }
@media (max-width: 560px) {
  .page { width: calc(100% - 40px); }
  .header { padding-block: 27px 22px; gap: 12px; }
  .wordmark img { width: 170px; }
  .header-label { font-size: 10px; letter-spacing: .02em; }
  .intro { padding-block: 37px 30px; }
  h1 { font-size: 25px; }
  .lead { font-size: 15px; margin-top: 20px; line-height: 2; }
  .detail { grid-template-columns: 1fr; gap: 5px; padding-block: 15px; }
  dt { font-size: 12px; padding-top: 0; }
  .contact-link { font-size: 15px; }
}
@media print {
  body { background: white; color: black; }
  .page { width: 100%; }
  .intro { padding-top: 25px; }
  .skip-link { display: none; }
  a { text-decoration: none; }
}
