/* Public summaries and dedicated detail pages. Keep the existing brand palette. */
.concise-page .page-banner {
    min-height: 0;
    padding: clamp(8rem, 14vw, 11rem) 1rem 3.5rem;
}
.concise-page .page-banner .banner-content { max-width: 52rem; }
.concise-page .page-banner h1 {
    font-size: clamp(1.65rem, 5vw, 3rem);
    line-height: 1.3;
    background: none;
    color: #fff !important;
    -webkit-text-fill-color: currentColor;
    text-shadow: none;
    filter: none;
    animation: none;
}
.concise-page .page-banner .banner-content > p:last-child { font-size: 1.0625rem; line-height: 1.85; }
.concise-hero {
    background: radial-gradient(ellipse at 12% 20%, #ffe8f0, transparent 65%), linear-gradient(115deg, #fffafb, #eef8ff);
    color: var(--dyc-ink, #20243a);
}
.concise-hero::before, .concise-hero::after { display: none; }
.concise-page .concise-hero h1 { color: var(--dyc-ink, #20243a) !important; }
.concise-page .concise-hero .banner-content > p { color: var(--dyc-ink, #20243a); text-shadow: none; }
.concise-page .concise-hero .banner-content { padding: 0; }
/* Light image banners need solid ink; keep white titles on the dark plan banner. */
.resources-banner .banner-content h1,
.contact-banner .banner-content h1,
.qualification-banner .banner-content h1,
.company-detail-page .about-banner .banner-content h1 {
    background: none !important;
    color: #20243a !important;
    -webkit-text-fill-color: #20243a;
    text-shadow: none;
    filter: none;
    animation: none;
}
.resources-banner .banner-content p,
.contact-banner .banner-content p,
.qualification-banner .banner-content p { color: #4e4350; }
.resources-page .section-title,
.resources-page .resource-side-card h3,
.contact-page .section-title,
.contact-page .contact-card h3 {
    background: none !important;
    color: #20243a !important;
    -webkit-text-fill-color: #20243a;
    text-shadow: none;
    filter: none;
    animation: none;
}
.contact-page .contact-card__primary--link { color: #a42b56; }
.contact-page .contact-card__primary--link:hover { color: #7c2041; }
.contact-page .section-kicker,
.resources-page .section-kicker,
.contact-page .contact-card__index { color: #9a385d; }
.contact-page .contact-card__secondary,
.resources-page .intro-card p { color: #525b6d; }
.intro-section { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.intro-section .container { max-width: 1200px; }
.intro-heading { margin-bottom: 1.5rem; max-width: 46rem; }
.intro-heading h2 { text-align: left; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.4; margin-bottom: .65rem; }
.intro-heading p { color: var(--dyc-muted, #667085); line-height: 1.85; }
.intro-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.intro-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.intro-card { min-width: 0; padding: 1.65rem; border: 1px solid rgba(108, 125, 160, .15); border-radius: 20px; background: rgba(255, 255, 255, .92); }
.intro-card h3 { margin: 0 0 .75rem; font-size: 1.1875rem; line-height: 1.5; color: var(--dyc-ink, #20243a); }
.intro-card .intro-card__title { text-align: left; font-size: 1.1875rem; line-height: 1.5; }
.intro-card p { margin: 0 0 1rem; color: var(--dyc-muted, #667085); line-height: 1.8; overflow-wrap: anywhere; }
.intro-link { display: inline-block; font-weight: 600; color: #b83260; line-height: 1.7; text-decoration: underline; text-underline-offset: .2em; }
.intro-link:hover { color: #78233f; }
.intro-link:focus-visible { outline: 2px solid #b83260; outline-offset: 5px; border-radius: 3px; }
.intro-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.intro-actions .btn { padding: .85rem 1.5rem; font-size: 1rem; }
.intro-note { color: var(--dyc-muted, #667085); line-height: 1.85; margin-top: 1.25rem; }
.intro-inline { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 2rem; border-radius: 20px; background: #f8f9fc; }
.intro-inline h2 { text-align: left; font-size: 1.5rem; margin-bottom: .5rem; }
.intro-inline p { max-width: 45rem; color: var(--dyc-muted, #667085); line-height: 1.85; }
.intro-inline > .intro-link { flex-shrink: 0; }
.intro-detail { padding: 2rem 0; border-top: 1px solid rgba(108, 125, 160, .18); scroll-margin-top: 7rem; }
.intro-detail h2 { text-align: left; font-size: 1.65rem; margin-bottom: 1rem; }
.intro-detail p, .intro-detail li { max-width: 50rem; line-height: 1.9; color: var(--dyc-muted, #667085); }
.intro-detail ul { padding-left: 1.25rem; list-style: disc; margin: 1rem 0; }
.intro-detail li + li { margin-top: .4rem; }
.intro-subnav { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding: 1.5rem 0; }
.intro-step { display: block; margin-bottom: .75rem; font-size: .875rem; color: #b83260; font-weight: 700; }
.intro-legacy-anchor { display: block; scroll-margin-top: 7rem; }
/* Keep the original dynamic deck, with balanced summary and visual columns. */
.home-page .home-service-preview { padding: 4rem 0; }
.home-page .home-service-preview .services-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); min-height: 350px; gap: 2.5rem; }
.home-page .home-service-preview .services-copy { max-width: 26rem; }
.home-page .home-service-preview .services-card-swap { height: 360px; }
.home-page .home-service-preview h2 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.2; }
.home-page .home-service-preview .section-desc { margin: 1rem 0 1.5rem; font-size: 1.0625rem; line-height: 1.8; }
.home-page .home-service-preview .intro-link { color: #ffb0ce; }
.home-service-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 1rem; padding-top: 1.25rem; }
.home-service-controls button { border: 1px solid #c8a3bb; border-radius: 999px; background: transparent; color: #ffb0ce; min-height: 44px; padding: .6rem 1rem; font: inherit; cursor: pointer; }
.home-service-controls button[hidden] { display: none; }
.home-service-controls button:focus-visible, .home-service-controls a:focus-visible { outline: 2px solid #ffb0ce; outline-offset: 3px; }
.home-page .home-service-preview .services-card-swap--static { height: auto; }
.home-service-preview .services-card-swap--static .service-swap-card { min-height: 220px; }
.home-service-preview .services-card-swap--static .service-swap-panel { opacity: 1; transform: none; }
@media (max-width: 900px) {
    .home-page .home-service-preview .services-layout { grid-template-columns: 1fr; gap: 1.5rem; min-height: 0; }
    .home-page .home-service-preview .services-card-swap-stage { min-height: 0; }
    .home-page .home-service-preview .services-card-swap:not(.services-card-swap--static) { height: 295px; }
}
@media (max-width: 520px) {
    .home-service-preview .services-card-swap--static { grid-template-columns: 1fr; }
}
.home-page .banner h1 { font-size: clamp(2rem, 4.4vw, 4rem); }
.home-page .banner {
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 0;
    max-height: none;
    padding: 0;
}
.home-page .banner-bg,
.home-page .banner-bg img { height: 100%; }
.concise-page .contact-section-heading .section-title,
.concise-page .resources-heading .section-title { font-size: clamp(1.5rem, 3vw, 2rem); }
.concise-page .contact-overview,
.concise-page .contact-main { padding: 3rem 0; }
.concise-page .news-ledger { padding: 1.75rem 0; }
.concise-page .news-ledger__note .section-title { font-size: 1.5rem; }
@media (max-width: 1000px) {
    .intro-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .intro-grid { grid-template-columns: 1fr; }
    .intro-inline { align-items: flex-start; flex-direction: column; padding: 1.5rem; }
    .intro-card { padding: 1.35rem; }
    .intro-actions { align-items: flex-start; }
    .intro-detail { padding: 1.5rem 0; }
    .concise-page .page-banner { padding: 7.5rem 1rem 2.5rem; }
    .home-page .home-service-preview { padding: 2.5rem 0; }
}
