/* Content-driven editorial rhythm. Heroes retain their established visual scale. */
:root {
  --abc-section-compact: clamp(1.75rem, 3vw, 2.75rem);
  --abc-section-standard: clamp(2.5rem, 4vw, 3.75rem);
  --abc-section-major: clamp(3.25rem, 5vw, 5rem);
  --abc-panel-space: clamp(1.25rem, 2.5vw, 2.25rem);
  --abc-content-gap: clamp(1.25rem, 2.5vw, 2.25rem);
  --abc-section-space: var(--abc-section-standard);
}
.section { padding-block: var(--abc-section-standard); }
.section--compact, .related-section { padding-block: var(--abc-section-compact); }
.section--major { padding-block: var(--abc-section-major); }
.section-head { margin-bottom: var(--abc-content-gap); }
/* A standalone introduction is content, not a heading for an absent grid. */
.container > .section-head:only-child { max-width: var(--abc-reading); margin: 0 auto; }
.section-head > div > :last-child,
.editorial-split > div > :last-child,
.feature-band > div > :last-child,
.policy-callout > :last-child,
.callout > :last-child { margin-bottom: 0; }
.section h2 { text-wrap: balance; }
.editorial-split, .feature-band { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--abc-content-gap); align-items:start; }
.editorial-split h2 { max-width:22ch; }
/* A sticky child offset from the clipped feature panel cut off the final line. */
.feature-band > div:first-child { position:static; top:auto; }
.feature-band { padding:var(--abc-panel-space); }
.feature-band h2 { max-width:22ch; }
.policy-callout { padding:var(--abc-panel-space); }
.policy-callout--editorial { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--abc-content-gap); }
.policy-callout--editorial > .eyebrow, .policy-callout--editorial > h2 { grid-column:1/-1; }
.policy-callout--editorial > p:not(.eyebrow) { margin-bottom:0; }
.preparation-panel { padding:var(--abc-panel-space); border:1px solid var(--abc-border); border-radius:var(--abc-visual-radius); background:var(--abc-surface); }
.preparation-panel > h2 { max-width:none; }
.preparation-panel .check-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem var(--abc-content-gap); margin-block:var(--abc-content-gap); }
.preparation-panel .callout { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:var(--abc-content-gap); }
.preparation-panel .callout h2 { margin:0; text-wrap:initial; }
/* Related-resource counts vary; do not reserve an empty fourth desktop column. */
.related-section .resource-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr)); }
.related-section + .section:has(.candidate-form) { padding-top:var(--abc-section-compact); }
.section:has(> .container > .policy-callout) { padding-block:var(--abc-section-compact); }
.detail-grid:not(:has(> :nth-child(2))) { grid-template-columns:minmax(0,1fr); max-width:var(--abc-reading); }
/* Application choices are a compact grid, not tall sticky presentation slides. */
.qdsi-sticky-stack { display:grid!important; grid-template-columns:repeat(6,minmax(0,1fr)); max-width:none; gap:var(--abc-content-gap); }
.qdsi-sticky-stack > .application-path-card,
.qdsi-sticky-stack > .application-path-card:nth-child(even),
.qdsi-sticky-stack > .application-path-card:nth-child(odd) { position:static; min-height:0; grid-column:span 2; margin:0; padding:var(--abc-panel-space); }
.qdsi-sticky-stack > .application-path-card:nth-child(4),
.qdsi-sticky-stack > .application-path-card:nth-child(5) { grid-column:span 3; }
.qdsi-sticky-stack:not(:has(> .application-path-card)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.qdsi-horizontal-story > .resource-card { min-height:0; }
/* One stable card frame; portrait facade framing is supplied per photograph. */
.property-card__media { position:relative; aspect-ratio:5/4; flex-shrink:0; }
.property-card__media img { width:100%; height:100%; object-fit:cover; }
.property-main-image:not(.property-card__placeholder) { aspect-ratio:5/4; width:100%; height:auto; max-height:none; object-fit:cover; }
.property-media { min-width:0; }
.gallery img { object-fit:contain; background:var(--abc-surface-muted); }
/* Keep contact actions readable over the dark photographic contact panel. */
.site-contact-card__link:hover, .site-contact-card__link:focus-visible { color:var(--abc-accent-light); text-decoration:underline; }
@media(max-width:1180px) {
  .qdsi-sticky-stack, .qdsi-sticky-stack:not(:has(> .application-path-card)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qdsi-sticky-stack > .application-path-card:nth-child(n) { grid-column:auto; }
}
@media(max-width:980px) {
  .editorial-split, .feature-band { grid-template-columns:1fr; }
  .editorial-split h2, .feature-band h2 { max-width:30ch; }
}
@media(max-width:720px) {
  .policy-callout--editorial, .preparation-panel .check-list,
  .preparation-panel .callout, .qdsi-sticky-stack { grid-template-columns:1fr; }
  .qdsi-sticky-stack:not(:has(> .application-path-card)) { grid-template-columns:1fr; }
  .policy-callout--editorial { gap:0; }
  .policy-callout--editorial > p:not(.eyebrow) + p { margin-top:1.25rem; }
}
