/* F27-07C: story collection/detail only; accepted hero and shared navigation untouched. */
.stories-catalog,.story-detail { background:#f8f9fa;color:#172127; }
.stories-catalog { padding:72px 0 88px; }
.stories-catalog [hidden],.story-detail [hidden] { display:none!important; }
.stories-catalog__heading { font-size:clamp(30px,3.2vw,46px);font-weight:550;line-height:1.12;letter-spacing:-.025em;margin:0 0 20px; }
.stories-catalog__intro { max-width:760px;color:#535e64;font-size:17px;line-height:1.7;margin:0; }
.story-filters { display:grid;grid-template-columns:minmax(0,260px) minmax(0,300px) auto;gap:20px;align-items:end;margin:36px 0 20px; }
.story-field { display:flex;flex-direction:column;gap:9px;min-width:0; }
.story-field label { font-size:14px;font-weight:500; }
.story-field select { width:100%;min-height:50px;border:1px solid #cfd7db;border-radius:12px;background:#f1f3f5;color:#172127;font:inherit;padding:12px 38px 12px 14px; }
.stories-catalog button { font:inherit;cursor:pointer; }
.story-clear { justify-self:start;border:0;background:transparent;color:#43545e;text-decoration:underline;text-underline-offset:4px;padding:14px 8px;min-height:48px; }
.story-clear:disabled { color:#8b959c;cursor:default;text-decoration:none; }
.stories-catalog :is(a,button,select):focus-visible,.story-detail a:focus-visible { outline:2px solid #1e556c;outline-offset:5px; }
.story-results { margin:22px 0 30px;color:#627078;font-size:14px;min-height:24px; }
.story-data-notice,.story-image-feedback { font-size:14px;line-height:1.65;color:#46525a;margin:0 0 28px; }
.story-image-feedback p { margin:0; }
.story-image-feedback .story-clear { padding-left:0; }
.story-photo--unavailable,.story-detail__image { position:relative; }
.story-photo--unavailable { aspect-ratio:3/2;background:#e9ecee;border-radius:8px; }
.story-photo-unavailable { position:absolute;inset:0;display:grid;place-content:center;padding:24px;text-align:center;color:#46525a;font-size:14px;line-height:1.6; }
/* R2: warm identity surface is local to the editorial cards; the page remains white. */
.stories-catalog{background:#fff}
.story-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:28px 24px}
.story-card{min-width:0;margin:0}
.story-card__link{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit;border:1px solid #e9e5e1;border-radius:18px;background:#fff;overflow:hidden;transition:transform .22s ease}
.story-card__link:hover{transform:translateY(-3px)}
.story-card__visual{padding:16px;background:#eee8e3;min-height:300px;display:flex;flex-direction:column;justify-content:start;gap:18px}
.story-card__figure{position:relative;margin:0;aspect-ratio:3/2;overflow:hidden;border-radius:10px;background:#e5e8ea;width:100%;flex:none}
.story-card__figure img{display:block;width:100%;height:100%;object-fit:cover;filter:none;transform:none}
.story-card__identity{min-width:0}
.story-card__person{font-size:20px;line-height:1.25;font-weight:500;letter-spacing:-.025em;margin:0 0 10px;overflow-wrap:break-word}
.story-card__meta,.story-card__profession{font-size:13px;line-height:1.6;color:#515d65;margin:0 0 4px}
.story-card__state{font-size:12px;line-height:1.6;color:#58656e;margin:6px 0 0}
.story-card__signature{display:block;width:auto;max-width:100%;height:40px;object-fit:contain;object-position:left center;margin-top:14px}
.story-card[data-photo-layout=portrait] .story-card__visual{display:grid;grid-template-columns:1.05fr .95fr;align-content:center;align-items:center;gap:14px;min-height:230px}
.story-card[data-photo-layout=portrait] .story-card__figure{aspect-ratio:1}
.story-card[data-photo-layout=portrait] .story-card__person{font-size:18px}
.story-card__info{flex:1;display:flex;flex-direction:column;padding:24px 20px 26px;background:#fff}
.story-card__summary{margin:0 0 24px;font-size:15px;line-height:1.7;color:#505d65}
.story-card__cta{margin-top:auto;font-size:14px;font-weight:500;line-height:1.5;min-height:28px}
.story-card__cta::after{content:' ↗'}
.story-pagination { margin:52px 0 0;display:flex;justify-content:center; }
.story-load { color:#f8f9fa;background:#18282f;border:1px solid #18282f;border-radius:999px;min-height:50px;padding:12px 30px;font-weight:500; }
.story-empty,.story-error { padding:44px 0;border-block:1px solid #dce2e5; }
.story-empty h3,.story-error h3 { margin:0 0 12px;font-size:26px; }
.story-empty p,.story-error p { color:#5b676e;line-height:1.7; }
.story-legacy { margin-top:72px;border-top:1px solid #dce2e5;padding-top:36px; }
.story-legacy h3 { margin:0 0 12px;font-size:24px;font-weight:550; }
.story-legacy p { color:#5b676e;font-size:15px;line-height:1.7; }
.story-legacy ul { list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px; }
.story-legacy a { color:#253d49;text-decoration:underline;text-underline-offset:4px;line-height:1.6; }
.story-detail { padding:120px 0 88px;min-height:70vh; }
.story-detail__wrap { max-width:960px;margin:auto; }
.story-detail__back { display:inline-block;color:#3a5665;text-decoration:underline;text-underline-offset:4px;margin-bottom:38px; }
.story-detail__meta { color:#5b6972;font-size:14px;margin:0 0 18px; }
.story-detail h1 { font-size:clamp(34px,5vw,64px);font-weight:550;line-height:1.08;letter-spacing:-.025em;margin:0 0 22px; }
.story-detail__standfirst { font-size:20px;line-height:1.65;color:#4d606a;max-width:800px;margin:0 0 30px; }
.story-detail__disclosure { padding:20px 0;border-block:1px solid #ccd6db;font-size:15px;line-height:1.8;color:#405863;margin-bottom:36px; }
.story-detail__photo { margin:0 0 44px; }
.story-detail__photo img { width:100%;max-height:680px;object-fit:contain;display:block;background:#eef1f3;border-radius:16px; }
.story-detail__photo figcaption { font-size:12px;line-height:1.7;color:#61737b;margin-top:12px; }
.story-detail__body { max-width:760px; }
.story-detail__body section { margin:0 0 34px; }
.story-detail__body h2 { font-size:26px;font-weight:550;margin:0 0 14px;line-height:1.25; }
.story-detail__body p { font-size:17px;line-height:1.85;color:#3c4d56;margin:0; }
.story-detail__next { margin-top:48px;padding-top:24px;border-top:1px solid #dce2e5;display:flex;gap:24px;flex-wrap:wrap; }
.story-detail__next a { color:#315263;text-underline-offset:4px; }
@media(max-width:1100px) {
 .story-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:24px; }
 .story-legacy ul { grid-template-columns:1fr;gap:16px; }
}
@media(max-width:600px) {
 .stories-catalog { padding:44px 0 60px; }
 .story-filters { grid-template-columns:minmax(0,1fr);gap:16px;margin-top:28px; }
 .story-clear { padding:8px 0;min-height:40px; }
 .story-grid { grid-template-columns:minmax(0,1fr);gap:28px; }
 .story-card__info { padding:22px; }
 
 .story-results { margin:8px 0 24px; }
 .story-legacy { margin-top:52px; }
 .story-detail { padding-top:100px; }
 .story-detail__standfirst { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { .story-card__figure img { transition:none; }.story-card__link:hover { transform:none; } }

/* The new detail route uses the accepted five-page closed-drawer correction. */
@media(max-width:1024px) {
 body:has([data-story-detail]) .mobile-nav { visibility:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),visibility 0s linear .35s; }
 body:has([data-story-detail]) .mobile-nav.is-open { visibility:visible;transition-delay:0s; }
}

@media(max-width:1100px){.story-card__visual{min-height:320px}}
@media(max-width:600px){.story-card__visual{min-height:0;padding:16px;gap:20px}.story-card__person{font-size:22px}.story-card__info{padding:24px 20px}.story-card[data-photo-layout=portrait] .story-card__visual{min-height:220px;grid-template-columns:1fr 1fr}.story-card[data-photo-layout=portrait] .story-card__person{font-size:20px}}
@media(prefers-reduced-motion:reduce){.story-card__link{transition:none}.story-card__link:hover{transform:none}}
