.skip-link{position:absolute;left:-10000px;top:0;z-index:1000}.skip-link:focus{left:12px;background:#fff;padding:12px}.article__body img{max-width:100%;height:auto;border-radius:8px}.article__body figure{max-width:100%;margin:24px 0}.article__body iframe{max-width:100%}.article__body table{border-collapse:collapse;width:100%}.article__body td,.article__body th{padding:10px;border:1px solid #ddd}.article__body h2{font-size:23px;margin:32px 0 16px}.article__body h3{font-size:19px;margin:28px 0 12px}.ks-empty{padding:36px 0;color:#666}.ks-text-page{max-width:900px;margin:64px auto;padding:0 24px;line-height:2}.ks-text-page h1{font-size:28px}.ks-notice{background:#fff7ef;border-left:3px solid #ff6a10;padding:14px 18px;margin:0 0 24px}.ks-form-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.ks-privacy{font-size:14px;margin:22px 0}.ks-form-actions{display:flex;gap:16px;flex-wrap:wrap}.ks-form-actions .page-button{cursor:pointer}.ks-form-field-error{margin:8px 0 0;color:#a32e17;font-size:14px}.listing-filter{display:inline-flex;text-decoration:none;align-items:center;justify-content:center}.page-hero p.page-hero__title{line-height:1.3}.article-navigation:empty{display:none}.article__meta:empty{display:none}.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.pagination .page-numbers.current{background:var(--color-accent);color:#fff}.listing-card__placeholder{display:block;width:100%;height:100%;min-height:180px;background:#fff1e5}.ks-footer-policy{display:block;margin:12px 0 0;font-size:14px;color:#555}.contact-confirmation dd{white-space:pre-wrap;overflow-wrap:anywhere}
.pagination{display:flex;justify-content:center;gap:14px;margin:40px 0 0;flex-wrap:wrap}.pagination .page-numbers{min-width:46px;height:46px;border-radius:50%;background:#fff;color:#222;transition:background-color .25s,color .25s}.pagination .page-numbers.current{background:var(--color-accent);color:#fff}.pagination .page-numbers.dots{background:transparent}.pagination a.page-numbers:hover,.pagination a.page-numbers:focus-visible{background:var(--color-accent);color:#fff}.listing-card__visual{overflow:hidden}.listing-card__placeholder{background:#fff1e5}

.listing-filter[aria-current="page"]{border-color:var(--color-contact);background:var(--color-contact);color:#fff}.listing-filter[aria-current="page"] img{filter:brightness(0) invert(1)}.ks-privacy a{color:var(--color-accent);text-underline-offset:3px}

@media(max-width:359px){.home-page .story__caption{left:auto;right:8px}}

/* 本文16px、補足・ラベル14pxを基準にする。 */
:root { --font-size-body:16px; --font-size-kv-description:clamp(16px,1.5vw,17px); }
body { font-size:16px; }
.story__body, .story__body p, .profile-message__text p,
.profile-origin__body, .profile-origin__body p, .profile-bio__table,
.about-card__body, .news-panel .news__article, .listing-card__body,
.article__body, .article__body p, .article__body li,
.policy-promises p, .ks-text-page p { font-size:16px; line-height:1.9; }
.news-panel .news__item { grid-template-columns:max-content fit-content(45%) minmax(0,1fr); }
.news-panel .news__item--undated { grid-template-columns:fit-content(45%) minmax(0,1fr); }
.site-header__inner { grid-template-columns:var(--header-brand-width) minmax(0,1fr); grid-template-areas:"brand navigation"; }
.ks-footer-mail { display:block; margin-top:16px; font-size:14px; color:var(--color-accent); text-underline-offset:4px; }
.article-share { margin-top:32px; padding-top:24px; border-top:1px solid #eaded5; }
.article-share h2 { margin:0 0 16px; font-size:18px; }
.article-share__buttons { display:flex; flex-wrap:wrap; gap:12px; }
.article-share__button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #ddcec3; border-radius:6px; background:#fff; color:#222; font:inherit; font-size:14px; text-decoration:none; cursor:pointer; }
.article-share__button img { width:22px; height:22px; flex-shrink:0; }
.article-share__button:hover { background:#fff5ed; }
.article-share__button:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.article-share__status { font-size:14px; line-height:1.8; margin:16px 0 0; }
.article-share__fallback { margin-top:16px; }
.article-share__fallback label { display:block; font-size:14px; }
.article-share input { display:block; box-sizing:border-box; width:100%; padding:10px; font:inherit; font-size:16px; border:1px solid #ddcec3; border-radius:4px; }
@media(max-width:959px){
 .site-header__inner { grid-template-columns:var(--header-brand-width) minmax(0,1fr) auto; grid-template-areas:"brand . toggle" "navigation navigation navigation"; grid-template-rows:var(--header-height) auto; }
 .news-panel .news__item { grid-template-columns:max-content minmax(0,1fr); }
 .news-panel .news__item--undated { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:959px){.home-page .story__caption{left:auto;right:12px}}
.policy-page .policy-block__intro{font-size:16px}
.news-message__text { font-size:16px; white-space:normal; overflow-wrap:anywhere; }
.site-footer__copyright { white-space:normal; line-height:1.6; overflow-wrap:anywhere; }
.site-footer__details { min-width:0; max-width:100%; }
.site-footer__menu { flex-wrap:wrap; }


/* 16px本文の行間。長文・短文・見出しで密度を分け、段落の区切りを保つ。 */
:root {
 --ks-leading-prose:1.95;
 --ks-leading-compact:1.75;
 --ks-leading-heading:1.65;
 --ks-paragraph-gap:.75em;
}
.story__body, .story__body p,
.profile-prose, .profile-prose p, .profile-message__text p,
.profile-origin__body, .profile-origin__body p,
.article__body, .article__body p, .article__body li,
.policy-page .policy-block__intro, .policy-page .policy-promises p,
.ks-text-page, .ks-text-page p, .ks-text-page li {
 line-height:var(--ks-leading-prose);
}
.story__body p + p, .profile-prose p + p,
.profile-origin__body p + p {
 margin-top:var(--ks-paragraph-gap);
}
.article__body p { margin-block:0 1.25em; }
.article__body li + li, .ks-text-page li + li { margin-top:.5em; }
.article__body li > ul, .article__body li > ol { margin-block:.5em; }
.about-card__body, .listing-card__body,
.news-panel .news__article, .news-message__text,
.profile-bio__table, .profile-bio__table th, .profile-bio__table td {
 line-height:var(--ks-leading-compact);
}
.profile-bio__table th, .profile-bio__table td { padding-block:8px; }
.policy-promises h3, .listing-card__title,
.article__body h2, .article__body h3, .article__body h4 {
 line-height:var(--ks-leading-heading);
}
@media(max-width:767px) {
 :root { --ks-leading-prose:1.9; }
}

/* お問い合わせ撤去後のPCナビゲーションはコンテンツ右端に揃える。 */
@media(min-width:960px) {
 .site-header__menu { justify-content:flex-end; }
}

/* アイキャッチ未設定の記事は画像枠を出さず、本文から表示する。 */
.listing-card--no-image { grid-template-columns:minmax(0,1fr) auto; gap:12px 20px; padding:20px; }
.listing-card--no-image .listing-card__copy { padding:0; }
.article-sidebar__list .article-sidebar__link--no-image { grid-template-columns:minmax(0,1fr); }
.article--no-image .article__body { margin-top:0; }
@media(max-width:959px) {
 .listing-card--no-image { grid-template-columns:minmax(0,1fr); padding:16px; }
 .listing-card--no-image .listing-card__more { grid-column:1; }
}
.article__image { margin:0; overflow:hidden; }
.article__image img { display:block; width:100%; max-width:100%; height:auto; border-radius:inherit; }

/* 政策KV：木目背景を左に拡張した提供写真。既存の高さ・波・フェードを維持。 */
.policy-page .page-hero.page-hero--policy-photo .page-hero__image { object-position:center 12%; }
@media(max-width:959px) {
 .policy-page .page-hero.page-hero--policy-photo .page-hero__image { object-position:64% center; }
}
@media(max-width:599px) {
 .policy-page .page-hero--policy-photo .page-hero__copy { width:52%; }
}

/* 所属委員会歴：長い名称を省略せず、プロフィール表の下にまとめる。 */
.profile-committees { margin-top:32px; padding-top:28px; border-top:1px solid #eaded5; }
.profile-committees h3 { margin:0 0 18px; font-size:20px; line-height:1.65; }
.profile-committees ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 36px; margin:0; padding-left:1.25em; font-size:16px; line-height:1.9; }
.profile-committees li { padding-left:4px; overflow-wrap:anywhere; }
.profile-committees li::marker { color:var(--color-accent); }
@media(max-width:767px) { .profile-committees ul { grid-template-columns:minmax(0,1fr); gap:12px; } }

/* SPフッター：連絡先・個人情報案内・コピーライトを中央にまとめる。 */
@media(max-width:959px) {
 .site-footer__details { display:flex; flex-direction:column; align-items:center; width:100%; text-align:center; }
 .site-footer__details .site-footer__social { margin:0 0 8px; }
 .site-footer__details .ks-footer-mail,
 .site-footer__details .ks-footer-policy { display:flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:44px; margin:0; padding-block:8px; line-height:1.7; }
 .site-footer__details .site-footer__copyright { margin-top:12px; line-height:1.7; text-align:center; }
}

/* 一覧・記事で同じ画像を使用。別ファイルを作らず、一覧の枠だけ中央で切り抜く。 */
.listing-card__image { aspect-ratio:12 / 7; object-fit:cover; object-position:center center; }
.article-sidebar__list img { aspect-ratio:5 / 4; object-fit:cover; object-position:center center; }
