/* 固定ページの読み物用。appride-pageを付けたテンプレート内だけに適用する。
 * 区切り線の上=基準値、下=基準値×倍率。行間の倍率ではない。
 * 見出し・本文の書体とサイズは既存appride-aboutの端末別指定を継承する。
 */
.appride-page {
 --appride-page-anchor-offset: 160px;
 --appride-page-rule-space: 20px;
 --appride-page-rule-ratio: 1.6;
 --appride-page-rule-after: calc(var(--appride-page-rule-space) * var(--appride-page-rule-ratio));
 --appride-page-paragraph-gap: 15px;
 --appride-page-heading-gap: 17px;
}
.appride-page .appride-page-shell {
 display:flex; flex-direction:column; width:100%; max-width:720px;
 margin:0 auto; padding:31px 18px 38px; min-width:0;
 background:none;
}
.appride-page .appride-page-flow,
.appride-page .appride-page-section { display:flex; flex-direction:column; min-width:0; }
.appride-page .appride-page-flow { font-size:14px; line-height:1.95; }
.appride-page .appride-page-section { gap:var(--appride-page-paragraph-gap); padding:0; border:0; background:none; }
/* 既存aboutの左右auto余白を解除し、文章量によらず共通の本文幅へ揃える。 */
.appride-page .appride-page-flow > .appride-page-section {
 margin-inline:0; width:100%; align-self:stretch;
}
.appride-page .appride-page-shell > *,
.appride-page .appride-page-flow > *,
.appride-page .appride-page-flow .appride-page-section > * { margin-block:0; min-width:0; }
.appride-page .appride-page-section > :is(h2,h3) + * {
 margin-top:calc(var(--appride-page-heading-gap) - var(--appride-page-paragraph-gap));
}
.appride-page .appride-page-divider {
 display:block; flex:none; align-self:stretch; width:100%; max-width:none;
 height:1px; padding:0; border:0; border-top:1px solid var(--appride-line);
 margin:var(--appride-page-rule-space) 0 var(--appride-page-rule-after);
 opacity:1; background:none; box-sizing:border-box;
}
.appride-page .appride-page-flow :is(h2,h3) { color:var(--appride-key); }
.appride-page .appride-page-flow :is(p,li,a,button) { overflow-wrap:anywhere; }
.appride-page .appride-page-action { display:flex; align-items:flex-start; padding:0; background:none; }
/* リンク・ボタンの配色／枠／状態はappride-content-core/assets/ui.cssに委ねる。 */
@media(width > 480px) {
 .appride-page .appride-page-shell { padding:36px 0 48px; }
 .appride-page .appride-page-flow { font-size:17px; line-height:1.8; }
}
@media(min-width:1200px) {
 .appride-page { --appride-page-paragraph-gap:20px; --appride-page-heading-gap:20px; }
 .appride-page .appride-page-shell { padding-top:32px; }
}

/* レイアウト余白は変えず、アンカー見出しをヘッダー／管理バーから離す。 */
.appride-page [id^="cookie"] { scroll-margin-block-start:calc(var(--appride-page-anchor-offset) + var(--wp-admin--admin-bar--height, 0px)); }
/* 既存案内の本文は保持し、旧い枠の内側余白を共通ページへ持ち込まない。 */
.appride-page .appride-page-legacy :is(.tkf-draft-notice,.appride-draft-notice) { margin:0; padding:0; border:0; background:none; }

/* 寄付・FAQでも再利用する写真、縦積み本文、確認枠。ページ全体に背景を加えない。 */
.appride-page .appride-page-stack { display:flex; flex-direction:column; gap:var(--appride-page-paragraph-gap); min-width:0; width:100%; }
.appride-page .appride-page-stack > * { margin-block:0; min-width:0; }
.appride-page .appride-page-label { font:inherit; color:inherit; }
.appride-page .appride-page-photo { margin-inline:0; width:100%; max-width:100%; }
.appride-page .appride-page-photo-window { position:relative; overflow:hidden; width:100%; }
.appride-page .appride-page-photo-window img { position:absolute; display:block; max-width:none; height:auto; }
/* 第2稿の表示範囲を保持。画像ファイルそのものは改変しない。 */
.appride-page .appride-page-photo--field { aspect-ratio:736/705; }
.appride-page .appride-page-photo--field img { width:208.696%; left:-4.755%; top:-24.681%; }
.appride-page .appride-page-photo--wide { aspect-ratio:645/552; }
.appride-page .appride-page-photo--wide img { width:238.14%; left:-7.13%; top:-47.1%; }
.appride-page .appride-page-photo--portrait { aspect-ratio:575/975; max-width:300px; }
.appride-page .appride-page-photo--portrait img { width:251.826%; left:-9.913%; top:-5.641%; }
.appride-page .appride-page-photo figcaption { margin-top:10px; font-size:12px; line-height:1.7; }
.appride-page .appride-page-related { display:flex; flex-direction:column; align-items:flex-start; gap:var(--appride-page-paragraph-gap); }
.appride-page .appride-page-choices { display:flex; flex-direction:column; gap:var(--appride-page-rule-after); }
.appride-page .appride-page-choice { display:flex; flex-direction:column; align-items:flex-start; gap:var(--appride-page-paragraph-gap); min-width:0; }
.appride-page .appride-page-choice > * { margin-block:0; }
.appride-page .appride-page-checks { border:2px solid #ad3038; padding:16px; }
.appride-page .appride-page-pending { border-left:3px solid #ad3038; padding:8px 12px; background:none; }
.appride-page .appride-page-donation dl { margin:0; }
.appride-page .appride-page-donation dd { margin:0 0 var(--appride-page-paragraph-gap); }
.appride-page .appride-page-donation address { font:inherit; }
.appride-page [id]:not([id^="cookie"]) { scroll-margin-block-start:calc(var(--appride-page-anchor-offset) + var(--wp-admin--admin-bar--height, 0px)); }
.appride-page .appride-page-choice .appride-ui-button:disabled { cursor:not-allowed; opacity:.6; }

/* 読み物の役割。標準幅・タイトルは既存appride-page-shellを共用する。 */
.appride-page {
 --appride-page-reading-width:720px;
 --appride-page-wide-width:1040px;
 --appride-page-outer-gutter:18px;
 --appride-page-major-size:21px;
 --appride-page-minor-size:15px;
 --appride-page-person-size:22px;
 --appride-page-profile-photo-size:160px;
 --appride-page-media-gap:32px;
 --appride-page-label-heading-gap:calc(var(--appride-page-heading-gap) * .4);
 --appride-page-principle-label-heading-gap:calc(var(--appride-page-heading-gap) * .36);
 --appride-page-person-header-photo-size:var(--appride-page-profile-photo-size);
 --appride-page-portrait-header-photo-size:180px;
 --appride-page-person-info-min:6em;
 --appride-page-catch-size:clamp(22px,2.3vw,30px);
}
.appride-page .appride-page-heading-major { font-size:var(--appride-page-major-size); line-height:1.5; font-weight:500; }
.appride-page .appride-page-heading-minor { font-size:var(--appride-page-minor-size); line-height:1.6; font-weight:500; }
.appride-page .appride-page-person-name { font-size:var(--appride-page-person-size); line-height:1.6; font-weight:500; }
.appride-page .appride-page-catch { max-width:var(--appride-page-reading-width); font-size:var(--appride-page-catch-size); font-weight:500; line-height:1.65; }
.appride-page .appride-page-section-title { display:flex; align-items:baseline; gap:16px; }
.appride-page .appride-page-number { font:500 14px/1.5 var(--appride-font); color:var(--appride-key); }
.appride-page .appride-page-reading { width:100%; max-width:var(--appride-page-reading-width); }
/* 余白の積み重ね。区切り線とflex gapを二重に足さない。 */
.appride-page .appride-page-sequence { display:flex; flex-direction:column; gap:0; min-width:0; }
.appride-page .appride-page-flow .appride-page-sequence > * { margin-block:0; min-width:0; }
.appride-page .appride-page-flow .appride-page-sequence > * + * { margin-top:var(--appride-page-paragraph-gap); }
.appride-page .appride-page-flow .appride-page-sequence > :is(h2,h3,h4) + * { margin-top:var(--appride-page-heading-gap); }
.appride-page .appride-page-flow .appride-page-sequence > .appride-page-divider { margin:var(--appride-page-rule-space) 0 var(--appride-page-rule-after); }
.appride-page .appride-page-flow .appride-page-divider + * { margin-top:0; }
.appride-page .appride-page-anchor { display:block; height:0; }
/* 必要な部品だけを標準幅の外へ広げる。ページ全体の幅は変えない。 */
.appride-page .appride-page-wide { align-self:center; width:min(var(--appride-page-wide-width),calc(100vw - var(--appride-page-outer-gutter) * 2)); max-width:none; }
.appride-page .appride-page-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
/* 目次だけをコンパクトにする。本文リンク・他のナビゲーションの操作領域は変えない。 */
.appride-page .appride-page-toc { display:block; padding:0; }
.appride-page .appride-page-toc > ul {
 display:flex; flex-wrap:wrap; align-items:flex-start; gap:4px;
 margin:0; padding:0; list-style:none;
}
.appride-page .appride-page-toc > ul > li {
 display:block; max-width:100%; margin:0; padding:0; list-style:none;
}
.appride-page .appride-page-toc > ul > li > a {
 display:flex; align-items:center; box-sizing:border-box; min-height:32px;
 margin:0; padding:2px 4px; line-height:1.6;
}
.appride-page .appride-page-portrait-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--appride-page-media-gap); align-items:start; }
.appride-page .appride-page-portrait { margin:0; width:100%; max-width:240px; }
.appride-page .appride-page-portrait img { display:block; width:100%; height:auto; }
.appride-page .appride-page-portrait figcaption { margin-top:12px; }
.appride-page .appride-page-profile { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; min-width:0; }
.appride-page .appride-page-profile-photo { width:var(--appride-page-profile-photo-size); max-width:100%; }
.appride-page .appride-page-profile-photo img { display:block; width:100%; height:auto; }
.appride-page .appride-page-person-name small { display:block; font-size:.7em; margin-top:6px; }
.appride-page .appride-page-timeline { display:flex; flex-direction:column; gap:24px; margin:0; }
.appride-page .appride-page-timeline > div { display:grid; grid-template-columns:minmax(0,1fr); gap:8px 24px; }
.appride-page .appride-page-timeline :is(dt,dd,p) { margin:0; }
.appride-page .appride-page-timeline dt { color:var(--appride-key); font-weight:500; }
.appride-page .appride-page-organizations { display:flex; flex-direction:column; gap:32px; }
.appride-page .appride-page-facts { margin:0; }
.appride-page .appride-page-facts > div { display:grid; grid-template-columns:minmax(0,1fr); gap:4px 16px; }
.appride-page .appride-page-facts > div + div { margin-top:12px; }
.appride-page .appride-page-facts :is(dt,dd) { margin:0; min-width:0; overflow-wrap:anywhere; }
.appride-page .appride-page-facts dt { font-weight:500; }
.appride-page .appride-page-logo-intro { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.appride-page .appride-page-logo-intro > img { width:140px; height:auto; }
.appride-page .appride-page-assets { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; }
.appride-page .appride-page-asset { display:flex; flex-direction:column; align-items:flex-start; gap:15px; min-width:0; }
.appride-page .appride-page-asset > * { margin:0; }
.appride-page .appride-page-asset-preview { display:flex; align-items:center; justify-content:center; width:100%; height:140px; padding:24px; border:1px solid var(--appride-line); box-sizing:border-box; }
.appride-page .appride-page-asset-preview img { max-width:100%; max-height:92px; width:auto; height:auto; }
.appride-page .appride-page-media-inquiry { width:100%; }
.appride-page .appride-page-service-state { color:var(--appride-sub); }
.appride-page .appride-page-heading-minor .sub { display:block; font:400 1em/1.7 var(--appride-font); }
/* 報道姿勢: ラベルと見出しの間隔は、区切り線や段落間隔と分けて管理する。 */
.appride-page .appride-page-flow .appride-page-stance-label { color:var(--appride-accent); font-weight:500; }
.appride-page .appride-page-flow .appride-page-stance-title { font-size:var(--appride-page-major-size); line-height:1.5; }
.appride-page .appride-page-flow .appride-page-sequence > .appride-page-stance-label + * { margin-top:var(--appride-page-label-heading-gap); }
.appride-page .appride-page-principle { --appride-page-label-heading-gap:var(--appride-page-principle-label-heading-gap); }
/* 写真の正方形表示は執筆者用。理念の写真は元の縦横比を保持する。 */
.appride-page .appride-page-profile-photo--square { aspect-ratio:1; }
.appride-page .appride-page-profile-photo--square img { width:100%; height:100%; object-fit:cover; object-position:50% 20%; }
@media(width > 480px) {
 .appride-page { --appride-page-outer-gutter:20px; --appride-page-major-size:24px; --appride-page-minor-size:19px; --appride-page-person-size:24px; }
 .appride-page .appride-page-facts > div { grid-template-columns:4em minmax(0,1fr); }
}
@media(min-width:640px) {
 .appride-page .appride-page-profile { grid-template-columns:var(--appride-page-profile-photo-size) minmax(0,1fr); gap:32px; }
 .appride-page .appride-page-timeline > div { grid-template-columns:130px minmax(0,1fr); }
 .appride-page .appride-page-logo-intro { grid-template-columns:160px minmax(0,1fr); }
 .appride-page .appride-page-assets { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
}
@media(min-width:720px) {
 .appride-page .appride-page-portrait-layout { grid-template-columns:minmax(0,1fr) 180px; }
}
@media(min-width:1200px) {
 .appride-page { --appride-page-outer-gutter:40px; }
 .appride-page .appride-page-portrait-layout { grid-template-columns:minmax(0,720px) 240px; gap:64px; }
}

/* 人物ヘッダー: 写真と担当・氏名・読みだけを一体化。本文・SNSは別の全幅領域へ。 */
.appride-page .appride-page-person-header { display:flex; flex-wrap:wrap; align-items:flex-start; width:100%; min-width:0; gap:var(--appride-page-paragraph-gap); }
.appride-page .appride-page-person-header > .appride-page-person-photo { flex:0 0 var(--appride-page-person-header-photo-size); width:var(--appride-page-person-header-photo-size); max-width:100%; }
.appride-page .appride-page-person-header > .appride-page-person-info { flex:1 1 var(--appride-page-person-info-min); min-width:min(100%,var(--appride-page-person-info-min)); max-width:100%; margin:0; }
.appride-page .appride-page-person-info > :is(.appride-page-person-role,.appride-page-person-name-line,.appride-page-person-reading) { display:block; }
.appride-page .appride-page-profile--stacked { display:flex; flex-direction:column; gap:var(--appride-page-paragraph-gap); }
.appride-page .appride-page-portrait.appride-page-person-header--portrait { --appride-page-person-header-photo-size:var(--appride-page-portrait-header-photo-size); max-width:none; }
/* 理念の人物情報は本文・写真の列切替と同じ720pxで切り替える。 */
.appride-page .appride-page-portrait-layout--contained { grid-template-columns:minmax(0,1fr); }
@media(min-width:720px) {
 .appride-page .appride-page-portrait.appride-page-person-header--portrait { display:block; max-width:240px; }
 .appride-page .appride-page-person-header--portrait > .appride-page-person-photo { width:100%; }
 .appride-page .appride-page-person-header--portrait > .appride-page-person-info { margin-top:12px; }
 .appride-page .appride-page-person-header--portrait .appride-page-person-name-line,
 .appride-page .appride-page-person-header--portrait .appride-page-person-reading { display:inline; }
 .appride-page .appride-page-person-header--portrait .appride-page-person-reading { margin-inline-start:1em; }
 .appride-page .appride-page-portrait-layout--contained { grid-template-columns:minmax(0,1fr) 180px; gap:var(--appride-page-media-gap); }
}
