/* 折衷案D：基本要素・共通トークン。コーポレート側だけで読み込む。 */
:root {
  --corp-white: #FFFFFF;
  --corp-ink: #203E38;
  --corp-muted: #49605A;
  --corp-green: #255D50;
  --corp-green-hover: #19483D;
  --corp-mint: #E0F1E9;
  --corp-blue: #E5EFF8;
  --corp-lemon: #F2F3B7;
  --corp-shape-blue: #AFCDE3;
  --corp-line: #BACCC5;
  --corp-focus: #2858A0;
  --corp-radius-button: 16px;
  --corp-radius-surface: 24px;
  --corp-transition: 0.2s ease;
  --corp-transition-press: 0.1s;
  --corp-z-header: 100;
  --corp-z-drawer: 110;
  --corp-z-overlay: 200;
  --corp-z-modal: 300;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 32px; }
body { margin: 0; color: var(--corp-ink); background: var(--corp-white); font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 400; line-height: 2; overflow-wrap: anywhere; font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.5; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 6px; }
a, button, summary { transition: color var(--corp-transition), background-color var(--corp-transition), border-color var(--corp-transition), transform var(--corp-transition); }
a:hover, a:focus-visible { color: var(--corp-green-hover); text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--corp-focus); outline-offset: 4px; }
a:active, button:active, summary:active { opacity: .8; transform: scale(.98); transition-duration: var(--corp-transition-press); }
button, input, textarea, select { font-family: "Noto Sans JP", sans-serif; }
svg { display: block; max-width: 100%; }
img { display: block; max-width: 100%; height: auto; }
::selection { color: var(--corp-white); background: var(--corp-green); }
.layout { width: min(1088px, calc(100% - 96px)); margin-inline: auto; }
.section { margin-top: 112px; }
.section--ruled { margin-top: 56px; }
.section--ruled > .layout { padding-top: 56px; border-top: 1px solid var(--corp-line); }
.section__head { margin-bottom: 48px; }
.section__eyebrow { margin-bottom: 16px; color: var(--corp-green); font-size: 12px; font-weight: 500; letter-spacing: .12em; line-height: 1.5; }
.section__title { font-size: 32px; }
.section__intro { max-width: 36em; margin-top: 24px; color: var(--corp-muted); }
.text-link { display: inline-flex; align-items: center; gap: 16px; min-width: 44px; min-height: 48px; color: var(--corp-green); font-size: 14px; font-weight: 500; text-decoration: underline; }
.text-link:hover, .text-link:focus-visible { text-underline-offset: 8px; }
.arrow { width: 24px; height: 24px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-width: 44px; min-height: 56px; max-width: 100%; padding: 16px 24px; border: 1px solid var(--corp-green); border-radius: var(--corp-radius-button); color: var(--corp-white); background: var(--corp-green); font-size: 14px; font-weight: 500; line-height: 1.5; text-decoration: none; cursor: pointer; }
.button:hover, .button:focus-visible { color: var(--corp-white); border-color: var(--corp-green-hover); background: var(--corp-green-hover); }
.button--outline { color: var(--corp-green); background: transparent; }
.button--outline:hover, .button--outline:focus-visible { color: var(--corp-white); background: var(--corp-green); border-color: var(--corp-green); }
.skip-link { position: absolute; z-index: var(--corp-z-overlay); top: 8px; left: 24px; min-height: 48px; padding: 12px 24px; color: var(--corp-white); background: var(--corp-green); transform: translateY(-180%); }
.skip-link:hover, .skip-link:focus-visible { transform: none; color: var(--corp-white); }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

@media (max-width: 1040px) {
  .layout { width: calc(100% - 64px); }
}
@media (max-width: 760px) {
  .layout { width: calc(100% - 48px); }
  .section { margin-top: 96px; }
  .section--ruled { margin-top: 48px; }
  .section--ruled > .layout { padding-top: 48px; }
  .section__head { margin-bottom: 40px; }
  .section__title { font-size: 28px; }
  .section__intro { margin-top: 24px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
