/* Shared editorial layout: readable copy, bounded media and content-sized rows. */
:root { --content-padding: max(var(--site-gutter), calc((100vw - 1280px) / 2)); --section-space: clamp(40px, 5vw, 72px); }
body { font-size: 16px; line-height: 1.6; }
.portal-panel-title h2 { font-size: 18px; line-height: 1.4; }
.network-sites-tools label, .network-language-details summary, .network-card-cta,
.network-context-copy a { font-size: 14px; line-height: 1.5; letter-spacing: .025em; }
.network-card-copy > p:first-child, .network-kicker { font-size: 13px; line-height: 1.5; letter-spacing: .04em; }
.network-card-copy code { font-size: 12px; line-height: 1.6; }
.network-card-top, .network-card-top small { font-size: 12px; line-height: 1.5; letter-spacing: .025em; }
.network-language-links a { min-width: 42px; min-height: 42px; font-size: 12px; padding: 8px; }
.network-card-mark { width: 64px; height: 64px; margin: 24px 0; }
.network-site-card { padding: 26px; }
.network-card-copy h3 { font-size: clamp(25px, 2vw, 31px); line-height: 1.15; }
.network-sites-manifesto li, .check-columns li, .plan-card p, .plan-card li,
.portal-en-answer-grid p, .portal-promise li { font-size: 16px; line-height: 1.7; }
.plan-card > a, .portal-home-faq details a { font-size: 14px; line-height: 1.5; }
.portal-filter .portal-filter-status { min-height: 24px; font-size: 14px; line-height: 1.6; }
.guide-load-more { display: flex; align-items: center; justify-content: center; margin: 20px auto 0; padding: 12px 18px; font-size: 14px; line-height: 1.5; min-height: 44px; max-width: 100%; white-space: normal; }
.guide-load-more[hidden], [data-portal-guide][hidden], [data-portal-group][hidden] { display: none; }
.portal-guide-group, .english-guide-section { scroll-margin-top: 24px; }
.portal-home-copy h1 { font-size: clamp(36px, 4.5vw, 68px); line-height: 1.08; letter-spacing: -.04em; }
.portal-block-heading { gap: 24px; margin-bottom: 32px; align-items: start; }
.portal-block-heading h2, .portal-index-faq .portal-block-heading h2 { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.2; letter-spacing: -.03em; }
.portal-index-faq { align-items: start; }
.portal-index-faq .portal-block-heading > span { margin-bottom: 18px; }
.portal-guide-group > header { padding: 26px; grid-row: 1 / span 2; }
.portal-guide-group > header .portal-category-symbol { margin-bottom: 16px; }
.portal-guide-group > header h3 { font-size: 28px; line-height: 1.2; letter-spacing: -.025em; }
.portal-guide-group > .guide-load-more { grid-column: 2; justify-self: start; margin: 16px 20px; }
.portal-guide-links > a { min-height: 0; padding: 18px; gap: 12px; }
.portal-guide-links strong { font-size: 17px; line-height: 1.35; }
.portal-featured-grid > a > strong { font-size: 25px; line-height: 1.25; letter-spacing: -.025em; }
[data-featured-guide][hidden], [data-featured-more][hidden] { display: none; }
.featured-load-more { display: flex; justify-content: center; margin: 24px auto 0; padding: 12px 18px; font-size: 14px; line-height: 1.5; min-height: 44px; max-width: 100%; white-space: normal; }
@media (max-width: 1100px) { .portal-guide-group > header { grid-row: auto; } .portal-guide-group > .guide-load-more { grid-column: 1; } }
.english-guide-section .portal-featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.english-guide-section .portal-featured-grid figure { height: 170px; }
.english-guide-section .portal-featured-grid strong { font-size: 24px; line-height: 1.25; }
.english-guide-section .portal-featured-grid > a { min-height: 0; }
.english-guide-section .portal-featured-grid > a > b { font-size: 14px; }
@media (max-width: 1050px) { .english-guide-section .portal-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .english-guide-section .portal-featured-grid { grid-template-columns: minmax(0, 1fr); } .network-site-card { padding: 24px 20px; } }
.documentary-photo { max-width: 800px; margin: 32px auto; padding: 0; }
.documentary-photo img { display: block; width: 100%; height: auto; max-height: 320px; object-fit: cover; border-radius: 6px; }
.documentary-photo figcaption { margin-top: 12px; font-size: 13px; line-height: 1.6; color: #4e5e72; }
.documentary-photo figcaption strong { font-weight: 500; }
.documentary-photo figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.resource-photo { max-width: 800px; margin: 32px auto; }
.resource-photo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 320px; margin-inline: auto; object-fit: contain; border-radius: 6px; }
.resource-photo figcaption { margin-top: 12px; font-size: 14px; line-height: 1.6; color: #42556c; }
.resource-photo figcaption strong { font-weight: 500; }
.resource-photo figcaption a { text-decoration: underline; text-underline-offset: 3px; }
.reference-detail-main > p, .portal-faq details > p, .network-sites-manifesto li p { font-size: 16px; line-height: 1.7; }
.network-sites-manifesto li strong { font-size: 16px; line-height: 1.5; }
.reference-search p { min-height: 24px; font-size: 14px; line-height: 1.6; }
@media (max-width: 700px) { .resource-photo img { max-height: 240px; } }
.category-workshop { margin-block: 32px; padding-top: 24px; border-top: 1px solid #bdcad8; }
.category-workshop h3 { font-size: 25px; line-height: 1.3; margin: 0 0 16px; }
.category-workshop p { font-size: 16px; line-height: 1.7; }
.category-workshop ol { padding-left: 24px; }
.category-workshop li { padding-left: 6px; margin-block: 20px; }
.category-workshop li p { margin: 8px 0 0; }
.category-workshop-limit { color: #42556c; }
.paper-panel > :is(.editorial-photo,.documentary-photo) { grid-column: auto; margin: 0; max-width: 100%; }
.paper-panel > .editorial-photo img { height: auto; max-height: 340px; aspect-ratio: 4 / 3; object-fit: cover; }
main :is(section,article,aside,figure), .portal-section-head > *, .reference-catalogue-head > * { min-width: 0; }
input, select, textarea, button { font-family: inherit; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
.inner-hero h1, .reference-hero h1, .portal-home-hero h1, .network-sites-hero h1 { font-size: clamp(36px, 4.5vw, 68px); line-height: 1.08; letter-spacing: -.04em; }
.portal-guide-heading h1, .reference-detail-hero h1 { font-size: clamp(32px, 3.7vw, 56px); line-height: 1.1; letter-spacing: -.035em; }
.portal-masthead-copy h1 { font-size: clamp(36px, 5.4vw, 82px); line-height: 1.05; }
.portal-section-head h2, .reference-catalogue-head h2, .reference-detail-main h2, .reference-related > header h2,
.paper-panel h2, .network-directory-heading h2, .network-sites-context h2, .showcase-heading h2 { font-size: clamp(28px, 3vw, 44px); line-height: 1.15; letter-spacing: -.03em; }
.portal-section-heading h2, .reference-resource-detail h2 { font-size: clamp(25px, 2.6vw, 36px); line-height: 1.2; }
.reference-resource-detail h3 { font-size: 22px; line-height: 1.3; }
.portal-guide-heading > p { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.65; }
.inner-hero, .site-shell:not(.portal-home-page) .inner-hero { min-height: 0; padding-top: 52px; padding-bottom: 48px; }
.inner-hero > .editorial-photo { max-width: 800px; width: 100%; margin: 28px auto 0; }
.inner-hero > .editorial-photo img { height: auto; max-height: 340px; aspect-ratio: 16 / 7; object-fit: cover; }
.editorial-photo::before { display: none; }
.reference-hero-grid { min-height: 0; padding-block: 48px; gap: 40px; }
.reference-hero-count { min-height: 160px; box-shadow: 8px 8px 0 #dbe6ff; }
.reference-hero-count strong { font-size: 60px; line-height: 1; }
.reference-detail-hero { min-height: 0; padding-block: 48px; grid-template-columns: 100px minmax(0, 1fr) auto; gap: 28px; }
.reference-detail-mark { width: 88px; height: 88px; box-shadow: 6px 6px 0 color-mix(in srgb, var(--category-color) 18%, white); }
.reference-site-preview { padding-bottom: 40px; }
.reference-site-preview > a { width: min(100%, 800px); margin-inline: auto; aspect-ratio: 16 / 9; max-height: 400px; box-shadow: 8px 8px 0 #dbe6ff; }
.reference-browser-bar { max-width: 800px; margin-inline: auto; }
.reference-site-preview figcaption { max-width: 800px; margin-inline: auto; grid-template-columns: 140px minmax(0, 1fr); gap: 20px; padding-top: 20px; }
.reference-card { min-height: 0; padding: 22px; }
.reference-load-more { margin: 28px auto 0; display: flex; font-size: 13px; white-space: normal; }
.reference-load-more[hidden] { display: none; }
[data-reference-card] { scroll-margin-top: 24px; }
.directory-en-site-card p { font-size: 16px; line-height: 1.7; }
.directory-en-site-card a { font-size: 14px; min-height: 36px; }
.reference-card-visual { margin: -22px -22px 20px; }
.reference-card-visual img { height: auto; aspect-ratio: 16 / 10; }
.reference-card h3 { margin: 18px 0 12px; font-size: 27px; line-height: 1.15; }
.reference-card > p { font-size: 15px; line-height: 1.65; margin-bottom: 20px; }
.reference-card-actions { align-items: center; flex-wrap: wrap; gap: 8px 18px; padding-top: 12px; }
.reference-card-actions a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; letter-spacing: .025em; }
.reference-card-meta { font-size: 12px; line-height: 1.5; }
.reference-card > header :is(b,small) { font-size: 10px; line-height: 1.5; letter-spacing: .025em; }
.reference-detail-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; padding-block: var(--section-space); }
.reference-detail-checks, .reference-usecases > div { grid-template-columns: 1fr; }
.reference-detail-checks article, .reference-usecases article { min-height: 0; padding: 22px; }
.reference-detail-checks h3 { margin-top: 10px; font-size: 19px; }
.reference-detail-checks p, .reference-usecases p, .reference-detail-faq p, .reference-related p { font-size: 15px; line-height: 1.7; }
.reference-facts dd { font-size: 15px; line-height: 1.6; }
.reference-facts dt, .reference-tags span, .reference-facts > a, .reference-related :is(small,b), .reference-site-preview figcaption :is(span,p) { font-size: 12px; line-height: 1.6; letter-spacing: .025em; }
.reference-related > div > a { min-height: 0; }
.portal-guide-hero { padding-block: 36px 48px; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); gap: 40px; }
.portal-guide-visual { transform: none; max-width: 460px; box-shadow: 0 10px 24px rgba(8,47,74,.08); }
.portal-guide-visual::after { display: none; }
.portal-guide-layout { padding-block: var(--section-space); grid-template-columns: 210px minmax(0, 800px); gap: 44px; }
.portal-content-section { padding-bottom: 48px; }
.portal-guide-content > section > p:not(.portal-lead), .portal-steps p, .portal-note p, .portal-warning-grid p,
.portal-scenarios p, .portal-official-link p, .portal-faq p, .portal-answer-grid p, .portal-home-faq details p,
.portal-method-card li, .portal-directory-cell p, .portal-intent-grid p, .portal-featured-grid p,
.hosted-site-card p, .portal-section-head > p, .editorial-overview p, .editorial-closing p { font-size: 16px; line-height: 1.7; }
.portal-guide-meta, .portal-guide-aside a, .portal-related-grid small, .portal-guide-tools button,
.portal-method-card a, .portal-answer-grid a, .portal-intent-grid b, .portal-featured-grid b,
.portal-directory-cell :is(small,b), .hosted-site-domain, .editorial-photo figcaption, .portal-guide-visual figcaption { font-size: 12px; line-height: 1.55; letter-spacing: .025em; }
.portal-guide-aside strong, .portal-section-heading p, .reference-overline, .reference-breadcrumb,
.portal-breadcrumb, .reference-detail-hero > div:nth-child(2) > span, .reference-detail-hero > a { font-size: 12px; line-height: 1.55; letter-spacing: .04em; }
.portal-related-grid > a, .portal-warning-grid article, .portal-steps li, .portal-featured-grid > a { min-height: 0; }
.portal-warning-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-warning-grid p { margin-top: 16px; }
.portal-section-heading { margin-bottom: 24px; }
.portal-lead { font-size: 20px; line-height: 1.65; }
.paper-panel, .application-panel { padding-block: var(--section-space); gap: 44px; }
.paper-panel h2 { margin-top: 24px; }
.portal-answer-hub, .portal-directory-section, .portal-services, .reference-catalogue, .reference-related,
.hosted-showcase, .reference-category-guide, .reference-pathways { padding-block: var(--section-space); }
.portal-section-head { margin-bottom: 32px; gap: 32px; }
.portal-intent-grid h3 { font-size: 29px; line-height: 1.15; }
.portal-directory-cell { min-height: 0; }
.portal-directory-photo { height: 190px; }
.portal-featured-photo-grid > a { min-height: 0; }
.portal-featured-photo-grid figure { height: 190px; }
.portal-promise { padding-block: var(--section-space); gap: 32px; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, .9fr); }
.portal-promise h2 { font-size: clamp(36px, 3.4vw, 52px); line-height: 1.12; }
.portal-promise-visual picture { aspect-ratio: 4 / 3; max-height: 360px; }
.portal-promise li, .portal-promise a { font-size: 14px; line-height: 1.5; }
.network-sites-hero, .network-sites-context { padding-block: var(--section-space); min-height: 0; gap: 40px; }
.network-site-card { min-height: 0; }
.network-site-card p { font-size: 16px; line-height: 1.7; }
.portal-decision-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.portal-decision-grid > article { display: flex; flex-direction: column; min-height: 0; }
.portal-decision-image { min-height: 0; width: 100%; }
.portal-decision-image picture { height: auto; }
.portal-decision-image img { height: 220px; min-height: 0; aspect-ratio: auto; }
.portal-decision-grid > article > div { flex: 1; padding: 24px; }
.portal-decision-grid h3 { font-size: 28px; line-height: 1.2; margin-bottom: 18px; }
.portal-decision-grid :is(p,aside) { font-size: 15px; line-height: 1.7; }
.portal-decision-grid :is(small,a) { font-size: 12px; letter-spacing: .025em; }
.portal-answer-box dd, .portal-answer-box p, .portal-inline-directory p { font-size: 16px; line-height: 1.7; }
.portal-answer-box dt { font-size: 13px; line-height: 1.5; }
.portal-masthead-copy > .portal-masthead-summary, .portal-lead-story p, .portal-directory-cell header p,
.portal-category-card p, .portal-guide-group > header p, .portal-pathfinder-grid p, .portal-network-grid p,
.network-sites-manifesto p, .portal-pathfinder-alert { font-size: 16px; line-height: 1.7; }
.network-site-card .network-site-type { font-size: 13px; line-height: 1.6; }
.portal-guide-finder-status, .network-sites-tools > p { font-size: 13px; line-height: 1.6; }
.portal-scenarios > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-scenarios article { min-height: 0; }
.portal-editorial-note-visual { padding-block: var(--section-space); grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, .9fr); gap: 32px; }
.portal-editorial-note-visual h2 { font-size: clamp(32px, 3vw, 46px); line-height: 1.15; }
.portal-editorial-note-visual picture { aspect-ratio: 4 / 3; max-height: 340px; }
.portal-editorial-note-visual figcaption { font-size: 12px; line-height: 1.6; }
/* Navigation and form labels must remain readable alongside the body copy. */
.button, .text-link, .portal-home-guide-link, .portal-home-secondary-link,
.portal-board-all, .portal-directory-more, .portal-category-strip a,
.portal-guide-aside a, .portal-back-link, .reference-crossroads-links a,
.editorial-author-links a, .official-resources-grid a, .portal-en-answer-grid a,
.portal-utility > a, .portal-trending a, .portal-directory-cell li a,
.portal-panel-heading > a, .portal-tip a, .portal-services-cta, .portal-network-cta,
.portal-home-faq details p a, .reference-detail-hero > a,
.portal-decision-grid > article > div > a, .reference-card-actions a,
.reference-facts > a, .portal-guide-tools button { font-size: 14px; line-height: 1.5; letter-spacing: .025em; }
.portal-guide-finder label, .portal-google-search label, .portal-filter label,
.portal-google-search-compact label, .reference-search label, .application-form label { font-size: 14px; line-height: 1.5; letter-spacing: .025em; }
.portal-guide-finder label span { font-size: 12px; }
.portal-guide-finder-results [data-finder-list] > a > strong,
.portal-inline-directory a > strong { font-size: 15px; line-height: 1.5; }
.portal-guide-finder-empty, .portal-guide-finder-results > p { font-size: 13px; line-height: 1.5; }
.directory-en-grid p, .directory-en-method li p, .official-resources-grid p,
.promise-list p, .standard-card p, .portal-inline-directory > div:first-child p { font-size: 16px; line-height: 1.7; }
.directory-glossary-page nav a, .portal-breadcrumb a, .breadcrumb a { font-size: 14px; }
.portal-story-list h3 { font-size: 18px; line-height: 1.4; }
.portal-story-list small, .portal-today-card small, .portal-lead-story b,
.portal-lead-story > div > span, .portal-lead-story figcaption,
.portal-directory-cell header small, .portal-guide-links small { font-size: 12px; line-height: 1.5; letter-spacing: .025em; }
@media (max-width: 1100px) {
 .reference-detail-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; }
 .reference-detail-hero { grid-template-columns: 88px minmax(0, 1fr); }
 .reference-detail-hero > a { grid-column: 2; }
 .portal-promise { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
 .portal-promise > div:first-child { grid-column: 1 / -1; }
 .portal-decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .portal-editorial-note-visual { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 900px) {
 .portal-guide-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
 .portal-guide-visual { width: 100%; max-width: 560px; }
 .portal-guide-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
 .portal-guide-aside { position: static; }
 .reference-detail-layout { grid-template-columns: minmax(0, 1fr); }
 .reference-facts { max-width: 640px; width: 100%; }
}
@media (max-width: 760px) {
 .documentary-photo { margin: 24px 20px; }
 .documentary-photo img { max-height: 240px; }
 .site-shell:not(.portal-home-page) .inner-hero { min-height: 0; padding-top: 32px; }
 .reference-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 32px; }
 .reference-hero-count { min-height: 0; padding: 20px; }
 .reference-detail-hero { grid-template-columns: minmax(0, 1fr); padding-block: 32px; gap: 22px; }
 .reference-detail-hero > a { grid-column: 1; }
 .reference-site-preview figcaption { grid-template-columns: minmax(0, 1fr); gap: 8px; }
 .paper-panel, .application-panel, .portal-promise { grid-template-columns: minmax(0, 1fr); gap: 28px; }
 .portal-promise > div:first-child { grid-column: 1; }
 .portal-decision-grid, .portal-editorial-note-visual { grid-template-columns: minmax(0, 1fr); }
 .portal-editorial-note-visual > div:first-child { grid-column: 1; }
 .portal-warning-grid { grid-template-columns: minmax(0, 1fr); }
 .portal-scenarios > div { grid-template-columns: minmax(0, 1fr); }
 .portal-guide-heading h1, .reference-detail-hero h1 { font-size: clamp(30px, 8vw, 42px); }
 .portal-masthead-copy h1 { font-size: clamp(34px, 9vw, 54px); line-height: 1.1; }
 .portal-masthead-copy > .portal-masthead-summary { font-size: 16px; }
 .portal-steps li { grid-template-columns: 28px minmax(0, 1fr); gap: 12px; }
 .portal-section-heading { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; }
 .inner-hero > .editorial-photo img { aspect-ratio: 16 / 10; max-height: 260px; }
 .portal-guide-meta span + span::before { display: none; }
 .reference-category-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .reference-category-index small { font-size: 11px; }
}
@media print { .portal-guide-layout, .reference-detail-layout { display: block; } .portal-guide-aside { display: none; } }
