/* Data and progressive-enhancement adaptations only; visual components use the source styles. */
.public-description{white-space:pre-line;overflow-wrap:anywhere}.public-pagination{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:32px}.public-catalog-filters .catalog-filters{grid-template-columns:1fr 1fr 2fr auto}.htmx-indicator{opacity:0;min-height:24px;margin:12px 0}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}.team-grid>.empty,.editorial-grid>.empty{grid-column:1/-1}.spotlight-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.spotlight-card h2,.event-hero h1{overflow-wrap:anywhere}.calendar-heading>div{display:flex;gap:12px}.calendar-heading>div>a{display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;width:36px;height:36px}.calendar-cell a{overflow-wrap:anywhere}
@media(max-width:767px){.public-catalog-filters .catalog-filters{grid-template-columns:1fr}.public-pagination{gap:12px}.catalog-toolbar{flex-wrap:wrap}.segment{max-width:100%;overflow-x:auto}.calendar-grid{overflow-x:auto}.calendar-cell{min-width:0;font-size:10px}.calendar-cell a{font-size:9px}}

.segment a {
  border: 0;
  background: transparent;
  white-space: nowrap;
  padding: 9px 14px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 5px;
  color: #5e6b80;
}

.segment a.is-active {
  background: #fff;
  color: var(--blue);
  box-shadow: 0 2px 5px #0b254810;
}

.view-toggle a {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 10px 0;
  font-size: 11px;
  color: var(--muted);
}

.view-toggle a.is-active {
  border-color: var(--blue);
  color: var(--blue);
}

/* Remove content-pending and its data-pending-label when the block has real content. */
.content-pending{position:relative;filter:grayscale(1) opacity(.48);transition:filter .2s ease}
.content-pending:hover,.content-pending:focus-within{filter:none}
.content-pending::before{content:attr(data-pending-label);position:absolute;top:8px;right:8px;z-index:3;max-width:calc(100% - 16px);padding:3px 8px;border:1px dashed var(--muted);border-radius:5px;background:#fff;font:600 10px/1.4 var(--font);color:var(--muted);pointer-events:none}
.content-pending-inline::before{content:none}
@media(prefers-reduced-motion:reduce){.content-pending{transition:none}}
@media(max-width:700px){.segment a{font-size:10px;padding:8px 10px}.view-toggle a{font-size:11px;padding:7px 0}}
@media(max-width:380px){.segment a{font-size:9px;padding-inline:9px}}
/* Regional directory uses the UI-kit field and accordion components. */
.regional-directory { margin-top: 32px; }
.regional-directory .ui-field { max-width: 640px; }
.regional-directory [hidden] { display: none !important; }
.regional-directory .regional-representatives {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.regional-representatives h3 { font-size: 16px; margin-bottom: 12px; }
.regional-contact { white-space: pre-line; overflow-wrap: anywhere; }
#contacts a { overflow-wrap: anywhere; }
@media (max-width: 700px) {
    .regional-directory .regional-representatives { grid-template-columns: 1fr; }
}
.federation-hero {
    max-width: none;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: center;
    gap: 48px;
}
.federation-hero h1 { font-size: clamp(40px, 4.3vw, 66px); }
.federation-hero-copy > p:not(.kicker), .regional-page-title > div > p:not(.kicker) {
    font-size: 17px;
    color: var(--muted);
    line-height: 1.7;
}
.federation-hero-image { min-width: 0; }
.federation-hero-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 16px;
}
.regional-page-title {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    align-items: center;
    gap: 48px;
    margin-bottom: 40px;
}
.regional-page-title p { max-width: 660px; }
.regional-page-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--pale);
    border-radius: 16px;
    padding: 32px;
    color: var(--blue);
}
.regional-page-stat .region-number { line-height: 1; }
.regional-page-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 40px; }
@media (max-width: 900px) {
    .federation-hero { gap: 24px; }
    .regional-page-title { grid-template-columns: minmax(0, 1fr) 160px; gap: 24px; }
}
@media (max-width: 700px) {
    .federation-hero { grid-template-columns: 1fr; }
    .federation-hero-copy > p:not(.kicker), .regional-page-title > div > p:not(.kicker) { font-size: 14px; }
    .regional-page-title { grid-template-columns: 1fr; }
    .regional-page-stat { flex-direction: row; justify-content: flex-start; gap: 20px; padding: 24px; }
    .regional-page-stat .region-number { font-size: 64px; }
}
:root { --site-body-font-size: 16px; }
.initiative-grid p { font-size: var(--site-body-font-size); line-height: 1.6; }
.project-page p:not(.kicker), .project-page li { font-size: var(--site-body-font-size); line-height: 1.6; }
.project-hero {
    max-width: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 48px;
}
.project-hero h1 { font-size: clamp(40px, 4.5vw, 68px); }
.project-lead { color: var(--ui-text-secondary); margin-bottom: 24px; max-width: 580px; }
.project-page figure { margin: 0; min-width: 0; }
.project-hero img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; }
.project-page figcaption { font-size: 13px; line-height: 1.5; color: var(--ui-text-secondary); margin-top: 12px; }
.project-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.project-solution-grid, .project-image-grid, .project-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.project-solution-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.project-solution { background: var(--pale); border-radius: 16px; padding: 32px; }
.project-solution h3 { font-size: 26px; margin-top: 20px; }
.project-solution p { color: var(--ui-text-secondary); margin-bottom: 0; }
.project-step { font-size: 32px; font-weight: 800; color: var(--blue); }
.project-image-grid { margin-top: 32px; }
.project-image-grid img { width: 100%; height: auto; display: block; border: 1px solid var(--line); border-radius: 12px; }
#changes .project-image-grid img { aspect-ratio: 4 / 3; object-fit: cover; }
.project-image-grid figure { position: relative; }
.project-photo-label { position: absolute; top: 16px; left: 16px; background: white; border-radius: 6px; padding: 8px 16px; font-weight: 700; pointer-events: none; }
.project-stat-grid { margin: 24px 0 32px; }
.project-stat-grid .ui-stat { padding: 28px; }
.project-stat-grid .ui-stat strong { font-size: clamp(32px, 4vw, 48px); color: var(--blue); }
.project-stat-grid .ui-stat span { font-size: 16px; }
.project-history, .project-slide-details { border: 1px solid var(--line); border-radius: 12px; padding: 20px 24px; }
.project-history summary, .project-slide-details summary { cursor: pointer; font-weight: 650; font-size: 16px; }
.project-history p:last-child { margin-bottom: 0; }
.project-slide-details summary span { color: var(--ui-text-secondary); font-size: 13px; margin-left: 12px; }
.project-presentation-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; margin-bottom: 28px; }
.project-presentation-cover img { width: 100%; display: block; border: 1px solid var(--line); border-radius: 12px; }
.project-presentation-intro h3 { font-size: 28px; }
.project-slide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.project-slide-grid img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 8px; }
@media (max-width: 900px) {
    .project-hero { gap: 24px; }
    .project-solution-grid-three { grid-template-columns: 1fr; }
    .project-slide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .project-hero, .project-solution-grid, .project-image-grid, .project-presentation-intro, .project-slide-grid { grid-template-columns: 1fr; }
    .project-solution { padding: 24px; }
    .project-stat-grid { gap: 12px; }
    .project-stat-grid .ui-stat { padding: 20px 16px; }
    .project-stat-grid .ui-stat span { font-size: 14px; }
    .project-slide-details summary span { display: block; margin: 8px 0 0; }
}

.event-metrics-real { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.event-preview-notice { padding: 16px; margin-bottom: 24px; background: var(--pale); border: 1px solid var(--line); border-radius: 12px; }
@media (max-width: 700px) { .event-metrics-real { grid-template-columns: 1fr; } }

/* Reuse the UI-kit results table; scroll stays inside each competition on mobile. */
.competition-result-tables { display:grid; gap:24px; }
.competition-result-card { min-width:0; }
.competition-result-scroll { max-width:100%; }
.competition-result-scroll .ui-table { min-width:560px; font-size:var(--site-body-font-size, 16px); white-space:normal; }
.competition-result-scroll .ui-table caption { font-size:20px; }
.competition-result-scroll .ui-table th,.competition-result-scroll .ui-table td { vertical-align:top; overflow-wrap:anywhere; }
.competition-result-scroll .ui-table tbody th { background:transparent; color:inherit; font-size:inherit; font-weight:600; }
.result-place { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; border-radius:10px; background:var(--pale); font-weight:700; }
.result-place-top { background:var(--ui-info-bg); color:var(--blue); }
.competition-result-docs { margin-top:24px; }

.content-feed-filters { display:flex; flex-wrap:wrap; gap:16px; align-items:end; margin:24px 0; }
.content-feed-filters label { display:grid; gap:8px; font-size:14px; }
.content-feed-filters select { min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; }
.content-pagination { display:flex; flex-wrap:wrap; gap:16px; margin:30px 0; }
.content-pagination [aria-current=page] { font-weight:700; color:var(--blue); }
.media-card .media-cover { display:block; aspect-ratio:4/3; overflow:hidden; }
.media-card .media-cover img { width:100%; height:100%; object-fit:cover; }
.media-card>p:not(.kicker) { margin:12px 0; font-size:var(--site-body-font-size); }
.content-photo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:20px; }
.content-photo-grid img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.prose figure img { max-width:100%; height:auto; }
.prose figcaption { font-size:14px; color:var(--muted); margin-top:8px; }
.content-author { margin-top:32px; font-weight:600; }

.story-layout.content-story-full { grid-template-columns: minmax(0, 1fr); max-width: 960px; }

/* The editor already crops the cover: preserve that frame at every viewport width. */
.story-hero { height: auto; }
.story-hero img { display: block; width: 100%; height: auto; }

/* Keep article text readable, including the source stylesheet's mobile paragraph rule. */
.prose { --prose-font-size: 16px; font-size: var(--prose-font-size); }
.prose p,
.prose li,
.story-layout .prose p { font-size: var(--prose-font-size); }

/* Give the legal name its own row; keep auxiliary footer links below it. */
.footer-bottom { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; }
.footer-copyright { grid-column: 1 / -1; min-width: 0; font-size: 12px; line-height: 1.6; }
.footer-copyright > span { display: block; }
@media (max-width: 767px) {
  .footer-bottom { grid-template-columns: minmax(0, 1fr); }
}

.content-photo-dialog { background:var(--ink); color:#fff; }
.content-photo-toolbar { display:flex; align-items:center; gap:12px; padding:12px 16px; font-size:14px; }
.content-photo-toolbar>a { margin-left:auto; color:#fff; text-decoration:underline; }
.content-photo-dialog button { border:0; border-radius:8px; width:44px; height:44px; flex-shrink:0; color:#fff; background:#ffffff20; font-size:30px; cursor:pointer; }
.content-photo-dialog button:focus-visible,.content-photo-toolbar>a:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.content-photo-viewer { margin:0; }
.content-photo-stage { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:8px; padding:0 12px; touch-action:pan-y pinch-zoom; }
.content-photo-stage>img { grid-column:2; width:100%; height:min(65vh,680px); object-fit:contain; }
.content-photo-stage.is-single { grid-template-columns:minmax(0,1fr); }
.content-photo-stage.is-single>img { grid-column:1; }
#content-photo-caption { padding:16px; font-size:15px; line-height:1.6; max-height:20vh; overflow:auto; overflow-wrap:anywhere; white-space:pre-line; }
.content-table-scroll { max-width:100%; overflow-x:auto; margin:24px 0; }
.content-table { width:100%; border-collapse:collapse; font-size:16px; line-height:1.6; }
.content-table th,.content-table td { border:1px solid var(--line); padding:10px 14px; text-align:left; vertical-align:top; min-width:100px; overflow-wrap:anywhere; }
.content-table th { background:var(--pale,#f1f5fc); font-weight:700; }

.event-highlight .reference-banner-copy h2 { overflow-wrap:anywhere; }
.event-highlight .reference-banner-copy>p:not(.kicker) { font-size:var(--site-body-font-size); }
.event-highlight .reference-banner-copy .kicker:before { content:none; }

.content-video { max-width:960px; margin-bottom:40px; }
.content-video-frame { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:12px; background:var(--ink); }
.content-video-trigger { width:100%; height:100%; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; border:0; color:#fff; background:transparent; cursor:pointer; }
.content-video-trigger>img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:.8; }
.content-video-trigger>.play-circle,.content-video-label { position:relative; }
.content-video-trigger:focus-visible { outline:3px solid #fff; outline-offset:-6px; }
.content-video-label { padding:6px 12px; border-radius:6px; background:#14294ccc; font-size:16px; }
.content-video-frame>iframe { display:block; width:100%; height:100%; border:0; }
.media-card .media-cover { position:relative; }
.content-format-badge { position:absolute; left:12px; bottom:12px; border-radius:6px; background:#14294ce6; color:#fff; padding:6px 10px; font-size:13px; }

.event-broadcast { margin-top:32px; }
.broadcast-choices { display:flex; flex-wrap:wrap; gap:8px; }
.broadcast-choices>.button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.broadcast-choices>[aria-current=true] { background:var(--blue); border-color:var(--blue); color:#fff; }
.broadcast-select { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.broadcast-select select { min-width:0; max-width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-size:16px; }
.broadcast-selected { margin:0 0 16px; font-size:20px; overflow-wrap:anywhere; }
[data-broadcast-error] { margin:12px 0; color:#9f1239; }
[data-broadcast-submit][hidden] { display:none; }

/* Broadcast panel shares the site's dark blue palette; status is not inferred from a video URL. */
.event-broadcast { padding:28px; border-radius:16px; background:linear-gradient(120deg,#14294c,#1e305c); color:#fff; }
.event-broadcast .section-heading { margin-bottom:20px; }
.event-broadcast h2 { color:#fff; font-size:32px; }
.event-broadcast .broadcast-choices { margin-bottom:20px; }
.event-broadcast .broadcast-choices>.button { color:#e7edff; background:transparent; border-color:#ffffff40; }
.event-broadcast .broadcast-choices>[aria-current=true] { background:var(--blue); border-color:var(--blue); color:#fff; }
.event-broadcast .broadcast-select { margin-bottom:20px; }
.event-broadcast .broadcast-select select { background:#fff; color:var(--ink); flex:1; }
.broadcast-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:24px; align-items:stretch; }
.event-broadcast-player,.broadcast-info { min-width:0; }
.event-broadcast-player .content-video { max-width:none; margin:0; }
.event-broadcast-player .content-video-frame { border:1px solid #ffffff30; }
.broadcast-info { display:flex; flex-direction:column; padding:20px; background:#ffffff06; border:1px solid #ffffff18; border-radius:12px; }
.broadcast-eyebrow { margin:0 0 16px; color:#b9c8ee; font-size:12px; }
.event-broadcast .broadcast-selected { color:#fff; font-size:24px; line-height:1.25; margin-bottom:16px; }
.broadcast-description { color:#dce5fa; font-size:16px; line-height:1.65; white-space:pre-line; overflow-wrap:anywhere; margin:0 0 24px; }
.broadcast-choices>a:focus-visible { outline:2px solid #fff; outline-offset:4px; }
.event-broadcast #broadcast-loading { margin:0; min-height:0; height:0; overflow:hidden; }
.event-broadcast #broadcast-loading.htmx-request { height:auto; margin-bottom:16px; }
.event-broadcast [data-broadcast-error] { color:#fecaca; }
.event-metrics-real>div { display:flex; align-items:center; gap:20px; }
.event-metrics-real .metric-icon { width:36px; height:36px; flex-shrink:0; color:var(--blue); }
.event-metrics-real strong { font-size:34px; }
.event-metrics-real span { font-size:12px; }
@media(max-width:900px) {
 .broadcast-layout { grid-template-columns:1fr; gap:16px; }
 .broadcast-info { padding:16px; }
}
@media(max-width:700px) {
 .event-broadcast { padding:16px; border-radius:12px; }
 .event-broadcast h2 { font-size:28px; }
 .event-broadcast .broadcast-selected { font-size:22px; }
 .event-metrics-real { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .event-metrics-real>div { flex-direction:column; gap:8px; padding:0 4px; }
 .event-metrics-real .metric-icon { width:26px; height:26px; }
 .event-metrics-real strong { font-size:28px; margin-bottom:6px; }
 .event-metrics-real span { font-size:10px; }
}

/* Existing media cards in the article sidebar; stack below the text on mobile. */
.content-related .media-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.content-related .media-cover { height: auto; aspect-ratio: 4 / 3; }
.content-related .media-card h3 { font-size: 20px; margin-bottom: 10px; }
.content-related .media-card .card-meta { margin-bottom: 0; }

.content-story-sidebar { display: grid; gap: 24px; align-content: start; min-width: 0; }
