:root {
  color-scheme: light;
  --ink: #18232f;
  --muted: #59616a;
  --paper: #fff;
  font-family: Arial, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

* { box-sizing: border-box; }
body { margin: 0; font-size: 1rem; line-height: 1.7; }
h1, h2, h3, p, dl, dd { margin: 0; }
a { color: inherit; text-underline-offset: 0.3em; }
a:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--ink); outline-offset: 6px; }
.container { width: min(100% - 7rem, 70rem); margin-inline: auto; }
.skip-link { position: fixed; z-index: 2; left: 1rem; top: 1rem; padding: 0.6rem 1rem; color: var(--paper); background: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }

.hero { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 34rem; padding: 5rem 0 7rem; text-align: center; }
.brand { width: 100%; }
.brand-image { display: block; width: min(100%, 40rem); height: auto; margin-inline: auto; }

.section-layout { display: grid; grid-template-columns: 1fr 2fr; column-gap: 3rem; padding-block: 3.3rem 5.8rem; scroll-margin-top: 2rem; }
.services { grid-column: 2; min-width: 0; }
.service + .service { margin-top: 2rem; padding-top: 2rem; }
.service h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-weight: 400; letter-spacing: -0.025em; line-height: 1.35; }
.service p { margin-top: 0.65rem; color: var(--muted); }
.company-section { padding-bottom: 5rem; }
.company-details { grid-column: 2; min-width: 0; }
.detail-row { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 2rem; }
.detail-row + .detail-row { margin-top: 2.2rem; }
dt { font-size: 0.875rem; color: var(--muted); padding-top: 0.12rem; }
dd { overflow-wrap: anywhere; }
.english-address { color: var(--muted); }
.email { display: inline-block; padding-block: 0.5rem; margin-block: -0.5rem; }
.site-footer { padding-block: 1.8rem 2.8rem; text-align: center; }
.site-footer small { color: var(--muted); font-size: 0.8125rem; }

@media (max-width: 48rem) {
  .container { width: calc(100% - 3rem); }
  .hero { min-height: 29rem; padding-block: 4.5rem 6rem; }
  .section-layout { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 2rem 4rem; }
  .services, .company-details { grid-column: auto; }
  .detail-row { grid-template-columns: 8rem minmax(0, 1fr); gap: 1.5rem; }
}

@media (max-width: 30rem) {
  .hero { min-height: 25rem; }
  .detail-row { grid-template-columns: 1fr; gap: 0.65rem; }
  .site-footer { padding-block: 1.5rem 2rem; }
}

@media print {
  .skip-link { display: none; }
  .container { width: 100%; }
  .hero { min-height: 0; padding-block: 2rem 3rem; }
  .section-layout { padding-block: 2rem; break-inside: avoid; }
}
