/* ============================================================
   こちら6等星  プレスリリース個別ページ
   トップページ（index.html）と同じ DADS ベースのトークンを使用
   ============================================================ */
:root {
  color-scheme: dark;
  --key: #003775; --key-deep: #002550; --key-light: #6FA9E8; --sub: #D2DAE1;
  --gold: #E4C878; --gold-soft: #C9AE66;
  --night: #0A1233; --bg: #0E1840; --bg-raise: #17255A;
  --color-text-body: #F2F5FC;
  --color-text-description: rgba(238,242,252,.78);
  --color-text-label: #C9AE66;
  --color-text-onfill: #FFFFFF;
  --color-border-divider: rgba(255,255,255,.18);
  --color-border-field: rgba(255,255,255,.32);
  --color-surface-1: var(--night);
  --color-focus-ring: #FFB60A;
  --font-body: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', sans-serif;
  --font-display: 'Zen Old Mincho', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
  --fs-12: 12px; --fs-14: 14px; --fs-16: 16px; --fs-17: 17px; --fs-20: 20px;
  --fs-22: 22px; --fs-24: 24px; --fs-28: 28px; --fs-32: 32px;
  --lh-tight: 1.4; --lh-snug: 1.5; --lh-std: 1.7; --lh-prose: 1.9;
  --ls-std: 0.02em; --ls-label: 0.1em;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px;
  --sp-8: 32px; --sp-10: 40px; --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px;
  --radius-xs: 4px; --radius-md: 8px; --radius-full: 999px;
  --w-content: 1040px; --w-prose: 720px; --h-header: 64px; --tap-min: 44px;
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { background: var(--color-surface-1); -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body); font-size: var(--fs-16); line-height: var(--lh-std);
  letter-spacing: var(--ls-std); background: var(--color-surface-1); color: var(--color-text-body);
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
:where(a, button, [tabindex]):focus-visible {
  outline: 2px solid transparent;
  box-shadow: 0 0 0 2px var(--color-surface-1), 0 0 0 5px var(--color-focus-ring);
  border-radius: var(--radius-xs);
}
@media (forced-colors: active) {
  :where(a, button, [tabindex]):focus-visible { outline: 3px solid Highlight; outline-offset: 2px; }
}
.skip-link {
  position: absolute; left: var(--sp-4); top: var(--sp-2); transform: translateY(-200%); z-index: 200;
  background: var(--color-text-body); color: var(--key-deep); font-size: var(--fs-14); font-weight: 500;
  padding: var(--sp-3) var(--sp-5); border-radius: var(--radius-md); transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* --- Header --- */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(0, 55, 117, 0.96);
  border-bottom: 1px solid var(--color-border-divider);
}
.nav-inner {
  max-width: var(--w-content); margin: 0 auto; padding: 0 var(--sp-6); height: var(--h-header);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
}
.nav-logo { display: flex; align-items: center; min-height: var(--tap-min); }
.logo-img { height: 40px; width: auto; }
.nav-cta {
  display: inline-flex; align-items: center; min-height: var(--tap-min); padding: 0 var(--sp-5);
  font-size: var(--fs-14); font-weight: 500; border: 1px solid var(--color-border-field);
  color: var(--color-text-onfill); border-radius: var(--radius-full);
  transition: background-color .2s ease, border-color .2s ease;
}
.nav-cta:hover { background: rgba(255,255,255,.16); border-color: #fff; }

/* --- Page --- */
.pr { padding: var(--sp-10) var(--sp-6) var(--sp-24); }
.pr-inner { max-width: var(--w-prose); margin: 0 auto; }
@media (max-width: 600px) {
  .nav-inner { padding: 0 var(--sp-4); }
  .pr { padding: var(--sp-8) var(--sp-4) var(--sp-16); }
}

/* パンくず */
.crumb ol { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-2); font-size: var(--fs-14); line-height: var(--lh-snug); }
.crumb li { color: var(--color-text-description); }
.crumb li + li::before { content: '/'; margin-right: var(--sp-2); color: rgba(238,242,252,.4); }
.crumb a { color: var(--key-light); text-decoration: underline; text-underline-offset: 3px; }
.crumb a:hover { color: #A8CCF3; }
.crumb [aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 24em; }

/* 見出しまわり */
.pr-head {
  margin-top: var(--sp-12); padding-bottom: var(--sp-8); margin-bottom: var(--sp-10);
  border-bottom: 1px solid var(--color-border-divider);
}
.pr-meta {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-4);
  font-size: var(--fs-14); line-height: var(--lh-snug); margin-bottom: var(--sp-4);
}
.pr-label { font-size: var(--fs-12); font-weight: 500; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--color-text-label); }
.pr-date { color: var(--gold-soft); font-variant-numeric: tabular-nums; }
.pr-title {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(var(--fs-22), 3.4vw, var(--fs-32)); line-height: var(--lh-tight);
}
.pr-issuer { margin-top: var(--sp-4); font-size: var(--fs-14); color: var(--color-text-description); }

/* 本文 */
.pr-body { font-size: var(--fs-16); line-height: var(--lh-prose); }
.pr-body > * + * { margin-top: var(--sp-6); }
.pr-body .pr-lead { font-size: var(--fs-17); font-weight: 500; line-height: var(--lh-std); }
.pr-body h2 {
  margin-top: var(--sp-16);
  font-size: var(--fs-20); font-weight: 600; line-height: var(--lh-snug);
  padding-bottom: var(--sp-3); border-bottom: 1px solid var(--color-border-divider);
}
.pr-body h3 { margin-top: var(--sp-10); font-size: var(--fs-17); font-weight: 600; line-height: var(--lh-snug); }
.pr-body p, .pr-body li { color: rgba(242,245,252,.92); }
.pr-body ul { padding-left: 1.2em; list-style: disc; }
.pr-body ol { padding-left: 1.4em; list-style: decimal; }
.pr-body li + li { margin-top: var(--sp-2); }
.pr-body a { color: var(--key-light); text-decoration: underline; text-underline-offset: 3px; }
.pr-body a:hover { color: #A8CCF3; }
.pr-body figure img { border-radius: var(--radius-md); }
.pr-body figcaption { margin-top: var(--sp-2); font-size: var(--fs-14); color: var(--color-text-description); }
.pr-body dl { border-top: 1px solid var(--color-border-divider); }
.pr-body h2 + dl { border-top: 0; margin-top: 0; }
.pr-body dl > div { display: flex; gap: var(--sp-6); padding: var(--sp-3) var(--sp-1); border-bottom: 1px solid var(--color-border-divider); }
.pr-body dt { width: 112px; flex-shrink: 0; color: var(--color-text-label); font-weight: 500; }
@media (max-width: 480px) { .pr-body dl > div { flex-direction: column; gap: var(--sp-1); } .pr-body dt { width: auto; } }

/* 会社概要・お問い合わせ */
.pr-about { margin-top: var(--sp-16); padding-top: var(--sp-8); border-top: 1px solid var(--color-border-divider); }
.pr-about h2 { font-size: var(--fs-17); font-weight: 600; line-height: var(--lh-snug); margin-bottom: var(--sp-4); }
.pr-about + .pr-about { margin-top: var(--sp-10); }
.pr-about p, .pr-about dd { font-size: var(--fs-14); color: var(--color-text-description); line-height: var(--lh-std); }
.pr-about dl > div { display: flex; gap: var(--sp-4); padding-block: var(--sp-1); font-size: var(--fs-14); }
.pr-about dt { width: 96px; flex-shrink: 0; color: var(--color-text-label); }
.pr-about a { color: var(--key-light); text-decoration: underline; text-underline-offset: 3px; }

.pr-back {
  display: inline-flex; align-items: center; min-height: var(--tap-min); margin-top: var(--sp-16);
  font-size: var(--fs-16); color: var(--key-light);
  border-bottom: 1px solid rgba(111,169,232,.5);
  transition: border-color .2s ease, color .2s ease;
}
.pr-back:hover { border-color: var(--key-light); color: #A8CCF3; }

/* --- Footer --- */
.footer {
  text-align: center; padding: var(--sp-8) var(--sp-5); font-size: var(--fs-14);
  color: rgba(238,242,252,0.82); background: var(--key-deep); border-top: 1px solid var(--color-border-divider);
}

/* --- 一覧ページ --- */
.pr-archive .pr-inner { max-width: 880px; }
.pr-list-head { margin: var(--sp-16) 0 var(--sp-16); }
.pr-list-head .pr-label { margin-bottom: var(--sp-3); }
.pr-list-title {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(var(--fs-28), 4.4vw, 40px); line-height: var(--lh-tight);
}
.pr-list-lead { margin-top: var(--sp-4); font-size: var(--fs-16); color: var(--color-text-description); }

/* 年ごとのまとまり：左に年、右にその年のリリース */
.press-year {
  display: grid; grid-template-columns: 136px minmax(0, 1fr); column-gap: var(--sp-8);
  border-top: 1px solid var(--color-border-divider);
}
.press-year:last-child { border-bottom: 1px solid var(--color-border-divider); }
.press-year-num {
  padding-top: var(--sp-6);
  font-family: var(--font-display); font-weight: 600;
  font-size: var(--fs-28); line-height: 1; letter-spacing: 0.04em;
  color: var(--gold);
  font-variant-numeric: tabular-nums;
}
.press-item + .press-item { border-top: 1px solid var(--color-border-divider); }
.press-link {
  display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: var(--sp-6);
  align-items: baseline; padding: var(--sp-6) 0;
}
.press-date {
  font-size: var(--fs-14); font-weight: 500; line-height: var(--lh-snug);
  color: var(--gold-soft); font-variant-numeric: tabular-nums; letter-spacing: 0.04em;
}
.press-ttl {
  font-size: var(--fs-17); font-weight: 500; line-height: var(--lh-std);
  color: var(--color-text-body);
  text-decoration: underline; text-decoration-color: transparent;
  text-decoration-thickness: 1px; text-underline-offset: 6px;
  transition: color .2s ease, text-decoration-color .2s ease;
}
.press-link:hover .press-ttl { color: #fff; text-decoration-color: rgba(238,242,252,.6); }
@media (max-width: 600px) {
  .pr-list-head { margin: var(--sp-10) 0 var(--sp-10); }
  .press-year { grid-template-columns: 1fr; }
  .press-year-num { padding-top: var(--sp-5); font-size: var(--fs-22); }
  .press-link { grid-template-columns: 1fr; row-gap: var(--sp-1); padding: var(--sp-4) 0 var(--sp-5); }
}

/* 本文が短いページでもフッターを画面下に置く */
body { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; }
