/* Figma: D01 31:308 / SP01 31:309 / mobile menu 43:336.
   外部フォント配信を使わず、インストール済みのBIZ UDを優先する。 */
:root {
  --saito-ink: #182431;
  --saito-paper: #fff;
  --saito-white: #fff;
  --saito-accent: #0755c9;
  --saito-accent-light: #9bbded;
  --saito-muted: #536172;
  --saito-line: #d8dfe8;
  --saito-soft: #f3f5f8;
  --space-8: 0.5rem;
  --space-16: 1rem;
  --space-24: 1.5rem;
  --space-28: 1.75rem;
  --space-32: 2rem;
  --space-48: 3rem;
  --space-64: 4rem;
  --space-80: 5rem;
  --space-1: 0.0625rem;
  --space-3: 0.1875rem;
  --space-14: 0.875rem;
  --space-29: 1.82594rem;
  --space-40: 2.5rem;
  --space-56: 3.5rem;
  --space-72: 4.5rem;
  --font-sans: "BIZ UDPGothic", "BIZ UDPゴシック", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --font-serif: "BIZ UDPMincho", "BIZ UDP明朝", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --font-14: 0.875rem;
  --font-16: 1rem;
  --font-17: 1.0625rem;
  --font-18: 1.125rem;
  --font-20: 1.25rem;
  --font-22: 1.375rem;
  --font-24: 1.5rem;
  --font-26: 1.625rem;
  --font-28: 1.75rem;
  --font-30: 1.875rem;
  --font-32: 2rem;
  --font-34: 2.125rem;
  --font-36: 2.25rem;
  --font-40: 2.5rem;
  --font-44: 2.75rem;
  --font-48: 3rem;
  --font-62: 3.875rem;
  --font-64: 4rem;
  --font-72: 4.5rem;
  --font-80: 5rem;
  --font-96: 6rem;
  --font-100: 6.25rem;
  --font-128: 8rem;
  --line-tight: 1.15;
  --line-count: 1.2;
  --line-hero: 1.25;
  --line-name: 1.35;
  --line-mobile-title: 1.4;
  --line-title: 1.45;
  --line-legal-heading: 1.5;
  --line-lead: 1.65;
  --line-subtitle: 1.6;
  --line-label: 1.7;
  --line-body: 1.75;
  --tracking-1: 0.0625rem;
  --tracking-3: 0.1875rem;
  --tracking-hero: -0.02em;
  --radius-square: 0;
  --border-width: 1px;
  --focus-width: 3px;
  --focus-offset: 4px;
  --content-max: 90rem;
  --page-gutter: clamp(var(--space-24), 5.55556vw, var(--space-80));
  --section-gap: var(--space-48);
  --section-padding: var(--space-80);
  --action-width: 17.5rem;
  --action-float-distance: 0.5rem;
  --action-arrow-nudge: 0.375rem;
  --action-arrow-rise: 0.25rem;
  --policy-toc-width: 17.5rem;
  --policy-reading-width: 57.5rem;
  --activity-breakdown-line: 4rem;
  --legal-reading-width: 60rem;
  --legal-paragraph-gap: calc(var(--font-18) * var(--line-label));
  --profile-paragraph-gap: calc(var(--font-18) * var(--line-body));
  --operator-label-width: 12.5rem;
  --contact-qr-height: 27.5rem;
  --contact-qr-size: 17.5rem;
  --hero-action-width: 18.75rem;
  --hero-height: 46.25rem;
  --hero-copy-height: 27.875rem;
  --hero-signature-gap: 0.730125rem;
  --hero-role-gap: 0.06894rem;
  --hero-message-offset: -0.5rem;
  --hero-label-line: 1.6875;
  --hero-name-line: 1.340909;
  --hero-content-width: 47.5rem;
  --hero-mobile-background-width: 112.744684rem;
  --hero-mobile-background-height: 75.163133rem;
  --hero-mobile-background-top: -20.277447rem;
  --hero-mobile-background-offset: 55.818387rem;
  --hero-mobile-ink-width: 36.537759rem;
  --hero-mobile-ink-height: 54.806638rem;
  --hero-mobile-ink-top: -3.211629rem;
  --hero-mobile-ink-offset: 19.677921rem;
  --hero-mobile-photo-width: 95.638152rem;
  --hero-mobile-photo-height: 63.758779rem;
  --hero-mobile-photo-top: -16.327429rem;
  --hero-mobile-photo-offset: 11.584079rem;
  --hero-mobile-copy-top: 22.5rem;
  --hero-mobile-copy-inset: 0.4375rem;
  --hero-mobile-label-inset: 0.34375rem;
  --hero-mobile-headline-size: 3.0375rem;
  --hero-mobile-message-size: 2.020625rem;
  --hero-mobile-lead-size: 0.9575rem;
  --hero-mobile-label-line: 1.25rem;
  --hero-mobile-message-line: 2.543125rem;
  --hero-mobile-lead-line: 1.375rem;
  --hero-mobile-action-height: 4.078125rem;
  --hero-mobile-overlay-top: 16.035392rem;
  --hero-mobile-overlay-opacity: 0.77;
  --hero-overlay: linear-gradient(180deg, rgb(24 36 49 / 0) 0%, rgb(24 36 49 / 0.0863) 10%, rgb(24 36 49 / 0.1961) 20%, rgb(24 36 49 / 0.298) 30%, rgb(24 36 49 / 0.3922) 40%, rgb(24 36 49 / 0.4824) 50%, rgb(24 36 49 / 0.5608) 60%, rgb(24 36 49 / 0.6314) 70%, rgb(24 36 49 / 0.6941) 80%, rgb(24 36 49 / 0.7412) 90%, rgb(24 36 49 / 0.7686) 100%);
  --profile-photo-height: 38.75rem;
  --profile-mobile-height: 25rem;
  --policy-title-height: 12.5rem;
  --header-mobile-height: 4.75rem;
  --menu-button-size: 2.75rem;
  --disabled-opacity: 0.55;
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; color: var(--saito-ink); background: var(--saito-paper); font-family: var(--font-sans); font-size: var(--font-16); line-height: var(--line-body); -webkit-text-size-adjust: 100%; }
h1, h2, h3, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { border: 0; border-radius: var(--radius-square); font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
:focus-visible { outline: var(--focus-width) solid var(--saito-accent); outline-offset: var(--focus-offset); }
.site-footer :focus-visible, .mobile-menu :focus-visible, .action:focus-visible { outline-color: var(--saito-paper); box-shadow: 0 0 0 calc(var(--focus-offset) + var(--focus-width)) var(--saito-accent); }
.skip-link { position: fixed; top: var(--space-16); left: var(--space-24); z-index: 20; padding: var(--space-16) var(--space-24); color: var(--saito-paper); background: var(--saito-accent); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { display: flex; align-items: center; gap: var(--space-24); padding: var(--space-24) var(--page-gutter); max-width: var(--content-max); margin-inline: auto; }
.site-header__name { flex: 1; font-size: var(--font-26); font-weight: 700; line-height: var(--line-name); }
.site-header__nav { display: flex; align-items: center; gap: var(--space-24); font-size: var(--font-14); font-weight: 700; line-height: var(--line-label); }
.site-header__nav a:hover, .site-footer__nav a:hover { text-decoration: underline; text-underline-offset: var(--space-8); }
.site-header__menu { display: none; align-items: center; justify-content: center; width: var(--menu-button-size); height: var(--menu-button-size); padding: 0; background: transparent; }

.action { display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); width: min(100%, var(--action-width)); min-height: var(--space-56); padding: var(--space-16) var(--space-24); color: var(--saito-paper); background: var(--saito-accent); border-radius: var(--radius-square); font-size: var(--font-14); font-weight: 700; line-height: var(--line-body); text-align: left; }
.action__arrow { flex: none; font-size: var(--font-20); font-weight: 400; }
a.action:hover, button.action:not(:disabled):hover { text-decoration: underline; text-underline-offset: var(--space-8); }
.action--disabled { opacity: var(--disabled-opacity); }

.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--saito-paper); }
.hero__artwork { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__foreground { position: absolute; inset: 0; }
.hero__background, .hero__ink { position: absolute; background-repeat: no-repeat; background-position: center; background-size: contain; }
/* 背景だけは画面幅に追従し、人物・筆跡の1440px基準の配置から独立させる。 */
.hero__background { inset: -31.48% auto auto 0; z-index: -1; width: 116.99%; height: 151.77%; opacity: 0.48; }
.hero__ink { inset: -72.22% -12.53% -54.99% 34.69%; width: 77.84%; height: 227.21%; }
.hero__ink-drawing { position: absolute; width: 0; height: 0; overflow: hidden; }
.has-hero-ink-motion .hero__ink { mask-image: url("#hero-ink-reveal"); }
.hero__photo { position: absolute; inset: -49.2% -21.32% -24.63% -12.67%; width: 133.99%; height: 173.83%; }
.hero__photo img { width: 100%; height: 100%; max-width: none; object-fit: contain; }
.hero__content { display: flex; flex-direction: column; align-items: flex-start; min-height: var(--hero-height); max-width: var(--content-max); margin-inline: auto; padding: var(--space-72) var(--page-gutter) var(--space-40); }
.hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-24); min-height: var(--hero-copy-height); width: min(100%, var(--hero-content-width)); }
.hero__label { display: flex; align-items: center; gap: var(--space-14); color: var(--saito-accent); font-weight: 700; line-height: var(--hero-label-line); letter-spacing: var(--tracking-1); }
.hero__label::before { content: ""; width: var(--space-32); height: var(--space-3); background: currentColor; }
.hero__title { color: var(--saito-accent); font-weight: 700; letter-spacing: var(--tracking-hero); line-height: var(--line-hero); }
.hero__headline { display: block; font-size: clamp(var(--font-62), 6.94445vw, var(--font-100)); }
.hero__message { display: block; margin-top: var(--hero-message-offset); font-family: var(--font-serif); font-size: clamp(var(--font-44), 4.30556vw, var(--font-62)); }
.hero__lead { font-size: var(--font-20); line-height: var(--line-lead); }
.hero__identity { margin-top: var(--hero-signature-gap); font-weight: 700; }
.hero__role { font-size: var(--font-14); line-height: 1; letter-spacing: var(--tracking-3); }
.hero__name { margin-top: var(--hero-role-gap); font-size: var(--font-44); line-height: var(--hero-name-line); letter-spacing: var(--tracking-1); }
.hero__action { width: min(100%, var(--hero-action-width)); margin-top: var(--space-29); }

.section { padding: var(--section-padding) var(--page-gutter); }
.section--soft { background: var(--saito-soft); }
.section__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--section-gap); max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; }
.section__label { color: var(--saito-accent); font-size: var(--font-16); }
.section__label--ink { color: var(--saito-ink); }
.section__title { font-size: var(--font-44); line-height: var(--line-title); overflow-wrap: anywhere; }
.section__title-phrase { display: inline-block; }

.policy__inner { display: grid; grid-template-columns: minmax(0, 680fr) minmax(0, 520fr); column-gap: var(--space-80); row-gap: 0; }
.policy__label { grid-column: 1 / -1; margin-bottom: var(--space-48); }
.policy__title { grid-column: 1; grid-row: 2; min-height: var(--policy-title-height); }
.policy__description { grid-column: 1; grid-row: 3; font-size: var(--font-18); }
.policy__action { grid-column: 1; grid-row: 4; margin-top: var(--space-24); }
.policy__photo { grid-column: 2; grid-row: 2 / 5; align-self: center; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.policy__topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-48); grid-column: 1 / -1; grid-row: 5; width: 100%; margin-top: var(--space-48); padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }
.policy-topic { display: flex; flex-direction: column; gap: var(--space-24); }
.policy-topic__title { display: flex; flex-direction: column; gap: var(--space-24); font-size: var(--font-26); line-height: var(--line-title); }
.policy-topic__number { color: var(--saito-accent); font-size: var(--font-14); font-weight: 400; line-height: var(--line-body); }
.policy-topic__description { color: var(--saito-muted); }

.activity__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-80); width: 100%; }
.activity-stat { display: flex; flex-direction: column; gap: var(--space-16); min-width: 0; }
.activity-stat__title, .activity__years-title { font-size: var(--font-18); line-height: var(--line-body); }
.activity-stat__count { display: flex; align-items: baseline; gap: var(--space-16); padding-bottom: var(--space-16); border-bottom: var(--border-width) solid var(--saito-line); font-size: var(--font-14); font-weight: 700; }
.activity-stat__count strong { color: var(--saito-accent); font-size: var(--font-128); line-height: var(--line-tight); }
.activity-stat__period, .activity-stat__detail, .activity__note { font-size: var(--font-14); }
.activity-stat__detail { font-weight: 700; }
.activity-stat__detail strong { font-size: var(--font-18); }
.activity__years { display: flex; flex-direction: column; gap: var(--space-24); width: 100%; }
.activity__legend { display: flex; flex-wrap: wrap; gap: var(--space-16) var(--space-24); font-size: var(--font-14); font-weight: 700; }
.activity__legend-item { display: flex; align-items: center; gap: var(--space-8); }
.activity__legend-item::before { content: ""; flex: none; width: var(--space-14); height: var(--space-14); background: var(--saito-accent); }
.activity__legend-item--other::before { background: var(--saito-accent-light); }
.activity__year-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-24); }
.activity-year { display: flex; flex-direction: column; gap: var(--space-16); min-width: 0; }
.activity-year__label, .activity-year__breakdown { font-size: var(--font-14); }
/* SP・タブレットは15列。PCは10列で折り返し、年ごとの区切りを確保する。 */
.activity-year__blocks { display: grid; grid-template-columns: repeat(15, minmax(0, var(--space-14))); gap: var(--space-8); }
.activity-year__blocks span { width: 100%; height: var(--space-32); background: var(--saito-accent); }
.activity-year__blocks .activity-year__block--other { background: var(--saito-accent-light); }

/* 最終値で幅とベースラインを保ち、読み上げにはその値だけを渡す。 */
.count-up { position: relative; display: inline-block; }
.count-up__total { opacity: 0; }
.count-up__value { position: absolute; inset: 0; }
@media (prefers-reduced-motion: no-preference) {
  .activity-year__blocks--pending span { opacity: 0; }
}

@media (min-width: 1024px) {
  .activity__year-list { column-gap: var(--space-48); }
  .activity-year__blocks { grid-template-columns: repeat(10, minmax(0, var(--space-14))); }
}

.records__intro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-80); width: 100%; }
.records__lead { display: flex; flex-direction: column; gap: var(--space-24); color: var(--saito-muted); font-size: var(--font-18); }
.records__note { color: var(--saito-accent); font-size: var(--font-14); font-weight: 700; }
.records__list { width: 100%; border-top: var(--border-width) solid var(--saito-line); }
.record { display: grid; grid-template-columns: minmax(0, 160fr) minmax(0, 1072fr); gap: var(--space-48); padding-block: var(--space-48); border-bottom: var(--border-width) solid var(--saito-line); }
.record__date { color: var(--saito-accent); font-size: var(--font-14); }
.record__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-8); min-width: 0; }
.record__title { font-size: var(--font-24); line-height: var(--line-title); }
.record__description { color: var(--saito-muted); font-size: var(--font-14); font-weight: 700; }
.record__action { padding-inline: 0; color: var(--saito-ink); background: transparent; }

.profile__inner { display: grid; grid-template-columns: minmax(0, 520fr) minmax(0, 680fr); gap: var(--space-80); align-items: start; width: 100%; }
.profile__photo { width: 100%; height: var(--profile-photo-height); object-fit: contain; }
.profile__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-32); min-width: 0; }
.profile__name { font-size: var(--font-48); line-height: var(--line-title); }
.profile__english { width: 100%; padding-bottom: var(--space-32); border-bottom: var(--border-width) solid var(--saito-line); color: var(--saito-muted); font-size: var(--font-14); }
.profile__subtitle { font-size: var(--font-32); line-height: var(--line-title); }
.profile__description { color: var(--saito-muted); font-size: var(--font-18); }
.pathways__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-80); align-items: start; }
.pathway { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-16); min-width: 0; }
.pathway__title { font-size: var(--font-28); line-height: var(--line-title); }
.pathway__description, .pathway__note { color: var(--saito-muted); }
.pathway__note { font-size: var(--font-14); }
.site-footer { padding: var(--space-32) var(--page-gutter); color: var(--saito-paper); background: var(--saito-ink); }
.site-footer__inner { display: flex; flex-direction: column; gap: var(--space-16); max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; }
.site-footer__name { font-size: var(--font-32); font-weight: 700; line-height: var(--line-title); }
.site-footer__english, .site-footer__nav, .site-footer__copyright { font-size: var(--font-14); }
.site-footer__nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-16); padding-top: var(--space-16); border-top: var(--border-width) solid var(--saito-muted); }

.mobile-menu { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: var(--space-32) var(--space-24); overflow-y: auto; border: 0; color: var(--saito-paper); background: var(--saito-ink); }
.mobile-menu::backdrop { background: var(--saito-ink); }
.mobile-menu__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-40); min-height: 100%; }
.mobile-menu__title { font-size: var(--font-26); font-weight: 700; line-height: var(--line-title); }
.mobile-menu__title a { display: inline-flex; align-items: center; min-height: var(--menu-button-size); }
.mobile-menu__title a:hover { text-decoration: underline; text-underline-offset: var(--space-8); }
.mobile-menu__nav { display: flex; flex-direction: column; width: 100%; }
.mobile-menu__nav a { padding-block: var(--space-40); border-top: var(--border-width) solid var(--saito-muted); font-size: var(--font-30); font-weight: 700; line-height: var(--line-title); }
.is-menu-open { overflow: hidden; }

/* TAB: 中間幅は2列の情報を保ち、FVとナビゲーションをSP仕様にする。 */
@media (min-width: 768px) and (max-width: 1023px) {
  .policy__inner, .profile__inner { column-gap: var(--space-32); }
  .policy__title { min-height: var(--space-80); }
  .policy__desktop-break { display: none; }
  .activity__stats, .pathways__inner, .records__intro { gap: var(--space-32); }
  .activity__year-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile__photo { height: auto; aspect-ratio: 520 / 620; }
}

@media (max-width: 1023px) {
  :root { --section-padding: var(--space-56); --section-gap: var(--space-32); }
  .site-header { padding: var(--space-16) var(--page-gutter); }
  .site-header__name { font-size: var(--font-24); }
  .site-header__nav { flex-wrap: wrap; }
  .has-mobile-menu .site-header__nav { display: none; }
  .has-mobile-menu .site-header__menu { display: flex; }
  /* IllustratorのSPアートボード：写真・筆跡の上に乗算、文字・CTAはその前面。 */
  .hero__background { inset: auto; width: var(--hero-mobile-background-width); height: var(--hero-mobile-background-height); left: calc(50% - var(--hero-mobile-background-offset)); top: var(--hero-mobile-background-top); background-image: url("../images/hero-parliament-clean.webp"); }
  .hero__ink { inset: auto; width: var(--hero-mobile-ink-width); height: var(--hero-mobile-ink-height); left: calc(50% - var(--hero-mobile-ink-offset)); top: var(--hero-mobile-ink-top); background-image: url("../images/hero-blue-ink.webp"); }
  .hero__artwork::after { content: ""; position: absolute; inset: var(--hero-mobile-overlay-top) 0 0; background: var(--hero-overlay); opacity: var(--hero-mobile-overlay-opacity); mix-blend-mode: multiply; }
  .hero__photo { inset: auto; width: var(--hero-mobile-photo-width); height: var(--hero-mobile-photo-height); left: calc(50% - var(--hero-mobile-photo-offset)); top: var(--hero-mobile-photo-top); transform: translateX(-50%); }
  .hero__photo img { object-fit: contain; }
  .hero__content { min-height: 0; gap: var(--space-16); padding: var(--hero-mobile-copy-top) var(--page-gutter) var(--space-32); color: var(--saito-white); }
  .hero__copy { gap: var(--space-8); min-height: 0; padding-left: var(--hero-mobile-copy-inset); }
  .hero__label, .hero__title { color: var(--saito-white); }
  .hero__label { padding-left: var(--hero-mobile-label-inset); font-size: var(--font-14); line-height: var(--hero-mobile-label-line); letter-spacing: normal; }
  .hero__label::before { display: none; }
  .hero__title { line-height: var(--line-hero); letter-spacing: normal; }
  .hero__headline { font-size: clamp(var(--font-34), calc((100vw - var(--space-48) - var(--space-8)) * 0.145), var(--hero-mobile-headline-size)); letter-spacing: var(--tracking-hero); white-space: nowrap; }
  .hero__message { margin-top: 0; font-family: var(--font-serif); font-size: clamp(var(--font-28), 8.29vw, var(--hero-mobile-message-size)); line-height: var(--hero-mobile-message-line); letter-spacing: var(--tracking-hero); }
  .hero__lead { font-size: var(--hero-mobile-lead-size); line-height: var(--hero-mobile-lead-line); }
  .hero__identity { margin-top: 0; padding-left: var(--hero-mobile-copy-inset); }
  .hero__role { line-height: var(--line-label); }
  .hero__name { margin-top: 0; font-size: var(--font-32); line-height: var(--line-name); }
  .hero__action { width: min(100%, var(--action-width)); min-height: var(--hero-mobile-action-height); margin-top: 0; }
  .section__title { font-size: var(--font-32); }
  .activity-stat__count strong { font-size: var(--font-96); }
}

@media (max-width: 767px) {
  :root { --page-gutter: var(--space-24); }
  .site-header { flex-wrap: wrap; gap: var(--space-16); min-height: var(--header-mobile-height); }
  .site-header__nav { flex-basis: 100%; gap: var(--space-16); }
  .has-mobile-menu .site-header { flex-wrap: nowrap; }
  .policy__inner { display: flex; gap: var(--space-32); }
  .policy__label, .policy__action { margin: 0; }
  .policy__title { min-height: 0; }
  .policy__description { font-size: var(--font-17); }
  .policy__desktop-break { display: none; }
  .policy__photo { align-self: stretch; }
  .policy__topics { display: flex; flex-direction: column; gap: var(--space-32); margin: 0; padding: 0; border: 0; }
  .policy-topic { gap: var(--space-32); padding-top: var(--space-32); border-top: var(--border-width) solid var(--saito-line); }
  .policy-topic__title { flex-direction: row; gap: var(--space-16); font-size: var(--font-24); }
  .policy-topic__number { color: inherit; font: inherit; }
  .policy__action { width: 100%; }
  .action { min-height: var(--space-56); padding-block: var(--space-8); }
  .hero__action, .mobile-menu__close { padding-block: var(--space-16); }
  .activity__stats { grid-template-columns: 1fr; gap: var(--space-32); }
  .activity__year-list { grid-template-columns: 1fr; }
  .activity__action { width: 100%; }
  .records { --section-gap: var(--space-24); --section-padding: var(--space-48); }
  .records__intro { grid-template-columns: 1fr; gap: var(--space-24); }
  .records__lead { font-size: var(--font-16); }
  .records__note { font-weight: 400; }
  .record { grid-template-columns: 1fr; gap: var(--space-16); padding-block: var(--space-24); }
  .record__title { font-size: var(--font-20); font-weight: 400; line-height: var(--line-mobile-title); }
  .record__action { width: 100%; padding-inline: var(--space-24); color: var(--saito-paper); background: var(--saito-accent); }
  .records__action { width: 100%; }
  .profile, .pathways { --section-padding: var(--space-48); }
  .profile__inner { display: flex; gap: var(--space-24); }
  .profile__photo { height: var(--profile-mobile-height); }
  .profile__content { gap: var(--space-24); width: 100%; }
  .profile__name { font-size: var(--font-32); line-height: var(--line-mobile-title); }
  .profile__english { padding: 0; border: 0; }
  .profile__subtitle { font-size: var(--font-28); line-height: var(--line-mobile-title); }
  .profile__description { color: var(--saito-ink); font-size: var(--font-16); }
  .profile__action { width: 100%; }
  .pathways__inner { grid-template-columns: 1fr; gap: var(--space-24); }
  .pathway { gap: var(--space-24); padding-top: var(--space-24); border-top: var(--border-width) solid var(--saito-line); }
  .pathway__label { display: none; }
  .pathway__title { font-size: var(--font-24); line-height: var(--line-mobile-title); }
  .pathway .action { width: 100%; }
  .site-footer__name { font-size: var(--font-28); }
}

@media (min-width: 1441px) {
  .hero__background { background-size: cover; }
  .hero__foreground { left: 50%; right: auto; width: var(--content-max); transform: translateX(-50%); }
}

@media (min-width: 1024px) {
  .hero__background { background-image: url("../images/hero-parliament-clean.webp"); }
  .hero__ink { background-image: url("../images/hero-blue-ink.webp"); }
}

/* 政策詳細：共通ヘッダーやトップページに影響しないページ固有レイアウト。 */
.policy-page .site-header { padding-block: var(--space-80) var(--space-48); }
.policy-page .site-header__name { line-height: var(--line-title); }
.policy-intro, .policy-detail, .policy-progress, .policy-faq { padding-inline: var(--page-gutter); }
.policy-intro__inner, .policy-detail__inner, .policy-progress__inner, .policy-faq__inner { max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; }
.policy-intro { padding-bottom: var(--space-80); }
.policy-intro__inner { display: flex; flex-direction: column; gap: var(--space-48); padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }
.policy-intro__title { font-size: var(--font-64); line-height: var(--line-title); overflow-wrap: anywhere; }
.policy-intro__lead, .policy-prose { color: var(--saito-muted); font-size: var(--font-18); }
.policy-detail, .policy-progress, .policy-faq { padding-block: var(--space-80); }
.policy-detail__inner { display: grid; grid-template-columns: minmax(0, var(--policy-toc-width)) minmax(0, 1fr); gap: var(--space-80); align-items: start; }
.policy-toc { display: flex; flex-direction: column; gap: var(--space-24); }
.policy-toc a { color: var(--saito-muted); font-size: var(--font-14); font-weight: 700; }
.policy-toc a:hover { text-decoration: underline; text-underline-offset: var(--space-8); }
.policy-detail__body, .policy-reason, .policy-issues, .policy-issues__intro, .policy-issue, .policy-reason__point { display: flex; flex-direction: column; min-width: 0; }
.policy-detail__body, .policy-issues { gap: var(--space-48); }
.policy-reason { gap: var(--space-24); }
.policy-reason__title { font-size: var(--font-36); line-height: var(--line-title); }
.policy-reason__point, .policy-issues__intro, .policy-issue { gap: var(--space-16); }
.policy-detail__subtitle { font-size: var(--font-22); font-weight: 700; line-height: var(--line-subtitle); }
.policy-prose p + p { margin-top: var(--space-16); }
.policy-prose--ink { color: var(--saito-ink); }
.policy-issues, .policy-issue + .policy-issue { padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }
.policy-issues__label { color: var(--saito-accent); font-size: var(--font-16); font-weight: 400; line-height: var(--line-body); }
.policy-issue__title { font-size: var(--font-32); line-height: var(--line-title); }
.policy-progress { background: var(--saito-soft); }
.policy-progress__inner { display: grid; grid-template-columns: minmax(0, 680fr) minmax(0, 520fr); gap: var(--space-80); align-items: center; }
.policy-progress__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-32); min-width: 0; }
.policy-progress__photo { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.policy-faq__inner { display: flex; flex-direction: column; gap: var(--space-32); }
.policy-faq__item { display: flex; flex-direction: column; gap: var(--space-16); padding-top: var(--space-32); border-top: var(--border-width) solid var(--saito-line); }
.policy-faq__question { max-width: var(--policy-reading-width); font-size: var(--font-22); line-height: var(--line-title); }
.policy-faq__item .policy-prose { max-width: var(--policy-reading-width); }
.policy-page section[id] { scroll-margin-top: var(--space-24); }

/* タブレットは目次を本文の上に置き、本文の読み幅を確保する。 */
@media (max-width: 1023px) {
  .policy-page .site-header { padding-block: var(--space-16); }
  .policy-page .site-header__name { line-height: var(--line-name); }
  .policy-intro { padding-block: var(--space-48); }
  .policy-intro__inner { gap: var(--space-24); padding-top: 0; border-top: 0; }
  .policy-intro__title { font-size: var(--font-36); line-height: var(--line-mobile-title); }
  .policy-detail, .policy-progress, .policy-faq { padding-block: var(--space-48); }
  .policy-detail__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-24); }
  .policy-progress__inner { gap: var(--space-32); }
}

@media (max-width: 767px) {
  .policy-toc { display: none; }
  .policy-intro__lead, .policy-prose { font-size: var(--font-16); }
  .policy-detail__body, .policy-issues { gap: var(--space-24); }
  .policy-reason__title { font-size: var(--font-28); line-height: var(--line-mobile-title); }
  .policy-detail__subtitle { line-height: var(--line-mobile-title); }
  .policy-issues, .policy-issue + .policy-issue { padding-top: var(--space-24); }
  .policy-issue > .section__label { font-size: var(--font-14); }
  .policy-issue__title { font-size: var(--font-24); line-height: var(--line-mobile-title); }
  .policy-issue .policy-detail__subtitle { font-size: var(--font-18); }
  .policy-progress__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-24); }
  .policy-progress__content { gap: var(--space-24); }
  .policy-progress__content .section__title, .policy-faq .section__title { line-height: var(--line-mobile-title); }
  .policy-progress__action { width: 100%; }
  .policy-faq__inner { gap: var(--space-24); }
  .policy-faq__item { padding-top: var(--space-24); }
  .policy-faq__question { line-height: var(--line-mobile-title); }
  .policy-page .site-footer__name { line-height: var(--line-name); }
  .policy-page .site-footer__english, .policy-page .site-footer__nav, .policy-page .site-footer__copyright { line-height: var(--line-label); }
}

/* 活動記録：集計・年別ブロックはトップページの共通スタイルを利用。 */
.activity-page { --section-padding: var(--space-80); --section-gap: var(--space-48); }
.activity-page .site-header { padding-block: var(--space-80) var(--space-48); }
.activity-page .site-header__name { line-height: var(--line-title); }
.activity-intro { padding: 0 var(--page-gutter) var(--space-80); }
.activity-intro__inner { display: grid; grid-template-columns: minmax(0, 640fr) minmax(0, 560fr); align-items: center; gap: var(--space-80); max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }
.activity-intro__content { display: flex; flex-direction: column; gap: var(--space-48); min-width: 0; }
.activity-intro__title { font-size: var(--font-64); line-height: var(--line-title); }
.activity-intro__lead { color: var(--saito-muted); font-size: var(--font-18); }
.activity-intro__photo { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.activity-topics__label { color: var(--saito-accent); font-size: var(--font-14); font-weight: 700; line-height: var(--line-label); }
.activity-topics__title { line-height: var(--line-name); }
.activity-topics__lead, .activity-topic-group__list { font-size: var(--font-18); line-height: var(--line-label); }
.activity-topics__groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-48); width: 100%; }
.activity-topic-group { display: flex; flex-direction: column; gap: var(--space-24); min-width: 0; }
.activity-topic-group__title { font-size: var(--font-28); line-height: var(--line-name); }
.activity-topic-group__title--accent { color: var(--saito-accent); }
.activity-topic-group__list { display: flex; flex-direction: column; gap: var(--space-16); }
.activity-topic-group__list li::before { content: "・ "; color: var(--saito-accent); }
.activity-page .activity__stats { gap: var(--space-80); }
.activity-summary .activity__years { margin-top: var(--space-24); }
.activity-page .activity__year-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.activity-year__count { color: var(--saito-accent); font-weight: 700; line-height: var(--line-count); }
.activity-year__count strong { font-size: var(--font-40); }
.activity-records__lead, .activity-entry__description, .activity-questions__note { color: var(--saito-muted); font-size: var(--font-14); font-weight: 700; }
.activity-records__list { width: 100%; border-top: var(--border-width) solid var(--saito-line); }
.activity-entry { display: grid; grid-template-columns: minmax(0, 752fr) minmax(0, 480fr); align-items: center; gap: var(--space-48); padding-block: var(--space-48); border-bottom: var(--border-width) solid var(--saito-line); }
.activity-entry__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-16); min-width: 0; }
.activity-entry__date { color: var(--saito-accent); font-size: var(--font-14); }
.activity-entry__title { font-size: var(--font-24); line-height: var(--line-title); }
.activity-video { width: 100%; aspect-ratio: 16 / 9; }
.activity-video__player { display: block; width: 100%; height: 100%; border: 0; }
.activity-records__note { color: var(--saito-muted); }
.activity-questions__lead { font-size: var(--font-18); }
.activity-questions__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-80); align-items: center; width: 100%; }
.activity-questions__total { display: flex; flex-direction: column; gap: var(--space-16); min-width: 0; font-size: var(--font-14); font-weight: 700; line-height: var(--line-label); }
.activity-questions__label { font-size: inherit; }
.activity-questions__count { display: flex; align-items: baseline; gap: var(--space-16); line-height: var(--line-body); }
.activity-questions__count strong { color: var(--saito-accent); font-size: var(--font-96); line-height: var(--line-tight); }
.activity-questions__period { color: var(--saito-muted); }
.activity-questions__breakdown { font-size: var(--font-24); font-weight: 700; line-height: var(--activity-breakdown-line); }
.activity-questions__breakdown strong { color: var(--saito-accent); font-size: var(--font-40); }
.activity-questions__closing { display: flex; flex-direction: column; gap: var(--space-48); width: 100%; padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }

@media (max-width: 1023px) {
  .activity-page { --section-padding: var(--space-48); --section-gap: var(--space-24); }
  .activity-page .site-header { padding-block: var(--space-16); }
  .activity-page .site-header__name { line-height: var(--line-name); }
  .activity-intro { padding-block: var(--space-48); }
  .activity-intro__inner { gap: var(--space-32); padding-top: 0; border-top: 0; }
  .activity-intro__content { gap: var(--space-24); }
  .activity-intro__title { font-size: var(--font-36); line-height: var(--line-mobile-title); }
  .activity-topics__groups, .activity-page .activity__stats, .activity-questions__stats { gap: var(--space-32); }
  .activity-page .activity__year-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .activity-entry { gap: var(--space-24); padding-block: var(--space-24); }
  .activity-questions__breakdown { font-size: var(--font-22); }
  .activity-questions__breakdown strong { font-size: var(--font-28); }
}

@media (max-width: 767px) {
  .activity-intro__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-24); }
  .activity-intro__lead, .activity-topics__lead, .activity-topic-group__list, .activity-questions__lead { font-size: var(--font-16); }
  .activity-topics__label, .activity-topics__lead, .activity-topic-group__list { line-height: var(--line-body); }
  .activity-page .section__title { line-height: var(--line-mobile-title); }
  .activity-topics__groups { grid-template-columns: minmax(0, 1fr); gap: var(--space-24); }
  .activity-topic-group__title { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .activity-page .activity__stats { gap: var(--space-24); }
  .activity-page .activity-stat__title, .activity-page .activity__years-title { font-size: var(--font-16); }
  .activity-page .activity-stat__count { align-items: baseline; }
  .activity-page .activity-stat__count strong { font-size: var(--font-80); line-height: var(--line-mobile-title); }
  .activity-page .activity__year-list { grid-template-columns: minmax(0, 1fr); }
  .activity-year__count { line-height: var(--line-mobile-title); }
  .activity-year__count strong { font-size: var(--font-28); }
  .activity-entry { grid-template-columns: minmax(0, 1fr); }
  .activity-entry__title { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .activity-entry__action, .activity-questions__action { width: 100%; }
  .activity-questions__stats { grid-template-columns: minmax(0, 1fr); gap: var(--space-24); }
  .activity-questions__total { line-height: var(--line-body); }
  .activity-questions__count { align-items: baseline; }
  .activity-questions__count strong { font-size: var(--font-80); line-height: var(--line-mobile-title); }
  .activity-questions__breakdown { line-height: var(--line-mobile-title); }
  .activity-questions__closing { gap: var(--space-24); padding-top: var(--space-24); }
  .activity-page .site-footer__name { line-height: var(--line-name); }
  .activity-page .site-footer__english, .activity-page .site-footer__nav, .activity-page .site-footer__copyright { line-height: var(--line-label); }
}

/* 人物紹介・お問い合わせ：既存の共通要素を使い、固有レイアウトを分離する。 */
.detail-page { --section-padding: var(--space-80); --section-gap: var(--space-48); }
.detail-page .site-header { padding-block: var(--space-80) var(--space-48); }
.detail-page .site-header__name { line-height: var(--line-title); }
.detail-page .action { min-height: calc(var(--space-64) + var(--space-3)); }
.detail-intro { padding: 0 var(--page-gutter) var(--space-80); }
.detail-intro__inner { display: flex; flex-direction: column; gap: var(--space-48); max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; padding-top: var(--space-48); border-top: var(--border-width) solid var(--saito-line); }
.detail-intro__title { font-size: var(--font-64); line-height: var(--line-title); overflow-wrap: anywhere; }
.detail-intro__lead { color: var(--saito-muted); font-size: var(--font-18); }
.profile-overview__main { display: grid; grid-template-columns: minmax(0, 560fr) minmax(0, 640fr); align-items: start; gap: var(--space-80); width: 100%; }
.profile-overview__photo { width: 100%; aspect-ratio: 560 / 680; object-fit: contain; background: var(--saito-soft); }
.profile-overview__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-32); min-width: 0; }
.profile-overview__name { font-size: var(--font-48); line-height: var(--line-title); }
.profile-overview__roles, .profile-overview__description { color: var(--saito-ink); font-size: var(--font-18); }
.profile-overview__roles { line-height: var(--line-label); }
.profile-overview__title { width: 100%; padding-top: var(--space-32); border-top: var(--border-width) solid var(--saito-line); font-size: var(--font-36); line-height: var(--line-title); }
.profile-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-80); width: 100%; margin-top: var(--space-24); }
.profile-facts__policies, .profile-facts__personal, .profile-facts__motto, .profile-facts__baseball { display: flex; flex-direction: column; }
.profile-facts__policies { gap: var(--space-24); }
.profile-facts__personal { gap: var(--space-32); }
.profile-facts__motto, .profile-facts__baseball { gap: var(--space-16); }
.profile-facts__label { color: var(--saito-accent); font-size: var(--font-16); font-weight: 400; line-height: var(--line-label); }
.profile-facts__list, .profile-facts__quote { font-size: var(--font-28); font-weight: 700; line-height: var(--line-name); }
.profile-facts__baseball p { color: var(--saito-muted); font-size: var(--font-18); line-height: var(--line-label); }
.profile-timeline { width: 100%; margin: 0; padding: 0; list-style: none; border-top: var(--border-width) solid var(--saito-line); }
.profile-timeline__item { display: grid; grid-template-columns: minmax(0, 240fr) minmax(0, 960fr); gap: var(--space-80); padding-block: var(--space-48); border-bottom: var(--border-width) solid var(--saito-line); }
.profile-timeline__item:last-child { padding-bottom: 0; border-bottom: 0; }
.profile-timeline__date { color: var(--saito-accent); font-size: clamp(var(--font-48), 4.44445vw, var(--font-64)); font-weight: 700; line-height: var(--line-hero); }
.profile-timeline__date--label { font-size: var(--font-28); line-height: var(--line-name); }
.profile-timeline__body { display: flex; flex-direction: column; gap: var(--space-8); min-width: 0; }
.profile-timeline__title { font-size: var(--font-28); line-height: var(--line-title); }
.profile-timeline__body p { color: var(--saito-muted); }
.profile-message__inner { display: grid; grid-template-columns: minmax(0, 680fr) minmax(0, 520fr); gap: var(--space-80); align-items: start; }
.profile-message__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-48); min-width: 0; }
.profile-message__prose { color: var(--saito-ink); font-size: var(--font-18); }
.profile-message__prose p + p { margin-top: var(--profile-paragraph-gap); }
.profile-message__photo { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.contact-intro { display: grid; grid-template-columns: minmax(0, 720fr) minmax(0, 480fr); gap: var(--space-80); align-items: center; }
.contact-intro__copy { display: flex; flex-direction: column; gap: var(--space-48); min-width: 0; }
.contact-intro__photo { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; }
.contact-line__inner { display: grid; grid-template-columns: minmax(0, 800fr) minmax(0, 400fr); gap: var(--space-80); align-items: start; }
.contact-line__steps { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-32); min-width: 0; }
.contact-line__description, .contact-line__message { font-size: var(--font-18); }
.contact-line__second-step { display: flex; flex-direction: column; gap: var(--space-32); width: 100%; padding-top: var(--space-32); border-top: var(--border-width) solid var(--saito-line); }
.contact-line__subtitle { font-size: var(--font-28); line-height: var(--line-title); }
.contact-line__message { color: var(--saito-muted); }
.contact-qr { display: flex; flex-direction: column; justify-content: center; gap: var(--space-24); min-height: var(--contact-qr-height); padding: var(--space-48); background: var(--saito-soft); }
.contact-qr__brand { padding-bottom: var(--space-24); border-bottom: var(--border-width) solid var(--saito-line); font-size: var(--font-48); font-weight: 700; line-height: var(--line-title); }
.contact-qr__title { font-size: var(--font-24); line-height: var(--line-title); }
.contact-qr__image { align-self: center; width: min(100%, var(--contact-qr-size)); aspect-ratio: 1; padding: var(--space-16); background: var(--saito-white); object-fit: contain; }
.contact-qr__description { color: var(--saito-muted); }
.contact-guidance__lead { color: var(--saito-muted); font-size: var(--font-18); }
.contact-guidance__lead p + p { margin-top: var(--space-24); }
.contact-guidance__note { color: var(--saito-muted); font-size: var(--font-14); }
.contact-guidance__note a { color: var(--saito-accent); text-decoration: underline; text-underline-offset: var(--space-3); }

/* 運営者情報・承認原稿に基づくプライバシーポリシー。 */
.legal-layout { padding: var(--space-64) var(--page-gutter) var(--space-80); }
.legal-layout__inner { display: flex; flex-direction: column; gap: var(--space-48); max-width: calc(var(--content-max) - 2 * var(--space-80)); margin-inline: auto; }
.legal-layout__reading { display: flex; flex-direction: column; gap: var(--space-48); width: min(100%, var(--legal-reading-width)); }
.legal-intro { display: flex; flex-direction: column; gap: var(--space-24); }
.breadcrumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-16); margin: 0; padding: 0; list-style: none; color: var(--saito-muted); font-size: var(--font-14); line-height: var(--line-label); }
.breadcrumb a, .legal-section a { color: var(--saito-accent); }
.breadcrumb a:hover { text-decoration: underline; }
.legal-intro__title { font-size: var(--font-72); line-height: var(--line-name); overflow-wrap: anywhere; }
.legal-intro__lead { color: var(--saito-muted); font-size: var(--font-18); }
.privacy-page .legal-intro__lead { color: var(--saito-ink); line-height: var(--line-label); }
.operator-list { width: 100%; margin: 0; border-top: var(--border-width) solid var(--saito-line); }
.operator-list__row { display: grid; grid-template-columns: minmax(0, var(--operator-label-width)) minmax(0, 1fr); gap: var(--space-32); padding-block: var(--space-24); border-bottom: var(--border-width) solid var(--saito-line); }
.operator-list__term { font-weight: 700; }
.operator-list__value { margin: 0; font-size: var(--font-18); }
.legal-section { display: flex; flex-direction: column; gap: var(--space-16); }
.legal-section__title { font-size: var(--font-24); line-height: var(--line-legal-heading); }
.legal-section__body { font-size: var(--font-18); line-height: var(--line-label); }
.legal-section__body p + p { margin-top: var(--legal-paragraph-gap); }
.legal-section a { text-decoration: underline; text-underline-offset: var(--space-3); overflow-wrap: anywhere; }

@media (max-width: 1023px) {
  .detail-page { --section-padding: var(--space-48); --section-gap: var(--space-24); }
  .profile-page { --profile-paragraph-gap: var(--space-28); }
  .privacy-page { --legal-paragraph-gap: var(--space-28); }
  .detail-page .site-header { padding-block: var(--space-16); }
  .detail-page .site-header__name { line-height: var(--line-name); }
  .detail-page .action { min-height: var(--space-56); }
  .detail-intro { padding-block: var(--space-48); }
  .detail-intro__inner { gap: var(--space-24); padding: 0; border: 0; }
  .detail-intro__title { font-size: var(--font-36); line-height: var(--line-mobile-title); }
  .detail-intro__lead { font-size: var(--font-16); }
  .profile-overview__main, .profile-facts, .profile-message__inner, .contact-intro, .contact-line__inner { gap: var(--space-32); }
  .profile-overview__content { gap: var(--space-24); }
  .profile-overview__name { font-size: var(--font-32); line-height: var(--line-mobile-title); }
  .profile-overview__title { padding-top: var(--space-24); font-size: var(--font-28); line-height: var(--line-mobile-title); }
  .profile-overview__roles, .profile-overview__description, .profile-facts__baseball p, .profile-message__prose { font-size: var(--font-16); }
  .profile-overview__roles, .profile-facts__baseball p { line-height: var(--line-body); }
  .profile-facts__label { line-height: var(--line-body); }
  .profile-facts__list, .profile-facts__quote { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .profile-message__content { gap: var(--space-24); }
  .profile-timeline__item { gap: var(--space-24); padding-block: var(--space-24); }
  .profile-timeline__date { font-size: var(--font-36); line-height: var(--line-mobile-title); }
  .profile-timeline__date--label, .profile-timeline__title { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .profile-history .section__title, .profile-message .section__title { line-height: var(--line-mobile-title); }
  .contact-intro__copy, .contact-line__steps, .contact-line__second-step { gap: var(--space-24); }
  .contact-line__description, .contact-line__message, .contact-guidance__lead { font-size: var(--font-16); }
  .contact-line__subtitle { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .contact-line__second-step { padding-top: var(--space-24); }
  .contact-qr { min-height: 0; padding: var(--space-24); }
  .contact-qr__brand { font-size: var(--font-32); line-height: var(--line-mobile-title); }
  .contact-qr__title { font-size: var(--font-22); line-height: var(--line-mobile-title); }
  .legal-layout { padding-block: var(--space-48) var(--space-64); }
  .legal-layout__inner, .legal-layout__reading { gap: var(--space-32); }
  .legal-intro__title { font-size: var(--font-32); line-height: var(--line-mobile-title); }
  .legal-intro__lead, .legal-section__body { font-size: var(--font-16); }
  .privacy-page .legal-intro__lead, .legal-section__body { line-height: var(--line-body); }
  .legal-section__title { font-size: var(--font-22); }
  :is(.detail-page, .operator-page, .privacy-page) .site-footer__name { line-height: var(--line-name); }
  :is(.detail-page, .operator-page, .privacy-page) .site-footer__english,
  :is(.detail-page, .operator-page, .privacy-page) .site-footer__nav,
  :is(.detail-page, .operator-page, .privacy-page) .site-footer__copyright { line-height: var(--line-label); }
}

@media (max-width: 767px) {
  .profile-overview__main, .profile-facts, .profile-message__inner, .contact-intro, .contact-line__inner { grid-template-columns: minmax(0, 1fr); }
  .profile-message__inner, .contact-intro, .contact-line__inner { gap: var(--space-24); }
  .profile-facts__personal { gap: var(--space-24); }
  .profile-page main .action, .contact-page main .action { width: 100%; }
  .profile-timeline__item { grid-template-columns: minmax(0, 1fr); }
  .operator-list__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .operator-list__term { font-size: var(--font-14); }
  .operator-list__value { font-size: var(--font-16); }
}
