/*
 * Polyrheo internal-page system.
 * Header and footer remain shared partials; this file only controls page content.
 */
.cms-page {
    --site-shell: 1200px;
    --site-inset: 128px;
    --site-red: #ed1c24;
    --site-coral: #d94d40;
    --site-ink: #103640;
    --site-navy: #071f28;
    --site-paper: #f5f2ea;
    --site-line: rgba(16, 54, 64, .16);
    background: var(--site-paper);
    color: var(--site-ink);
    font-family: Manrope, Arial, sans-serif;
}

/* Header presentation belongs exclusively to option4-header-lock.css. */

.cms-page .internal-banner-content,
.cms-page .managed-page > .page-breadcrumb,
.cms-page .managed-page > .page-builder,
.cms-page .managed-page > .managed-copy,
.cms-page .managed-page > .contact-layout,
.cms-page .managed-page > .related-pages,
.cms-page .managed-page > .proof-strip,
.cms-page .managed-page > .vision-compass,
.cms-page .managed-page > .commitment-band,
.cms-page .managed-page > .quality-system,
.cms-page .managed-page > .network-stage,
.cms-page .managed-page > .impact-wheel,
.cms-page .managed-page > .catalogue-showcase,
.cms-page .managed-page > .markets-showcase,
.cms-page .managed-page > .resource-showcase,
.cms-page .managed-page > .career-culture,
.cms-page .managed-page > .utility-route,
.cms-page .about-story > section,
.cms-page .about-story > blockquote {
    width: min(var(--site-shell), calc(100% - var(--site-inset)));
    max-width: none;
    margin-inline: auto;
}

/* Compact, image-led banners with one consistent scale. */
.cms-page .internal-banner,
.cms-page .internal-banner.design-editorial,
.cms-page .internal-banner.design-manifesto,
.cms-page .internal-banner.design-precision,
.cms-page .internal-banner.design-network,
.cms-page .internal-banner.design-nature,
.cms-page .internal-banner.design-catalogue,
.cms-page .internal-banner.design-markets,
.cms-page .internal-banner.design-journal,
.cms-page .internal-banner.design-people,
.cms-page .internal-banner.design-contact,
.page-about-us .internal-banner {
    min-height: 410px !important;
    border-radius: 0;
}

.cms-page .internal-banner-content,
.page-about-us .internal-banner-content {
    display: block;
    align-self: end;
    padding: 165px 0 48px;
}

.cms-page .internal-banner .mono {
    margin: 0 0 15px;
    color: #f0aaa5;
    font: 700 9px/1.4 'DM Mono', monospace;
    letter-spacing: .17em;
}

.cms-page .internal-banner h1,
.cms-page .design-manifesto .internal-banner-content h1,
.cms-page .design-people .internal-banner-content h1,
.page-about-us .internal-banner-content > h1 {
    max-width: 760px;
    margin: 0;
    color: inherit;
    font: 600 clamp(44px, 5vw, 66px)/.98 Georgia, serif;
    letter-spacing: -.045em;
}

.cms-page .internal-banner-content > p:last-of-type,
.page-about-us .internal-banner-content > p:not(.mono) {
    max-width: 660px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 15px;
    line-height: 1.65;
}

.cms-page .internal-banner.design-catalogue .internal-banner-content > p:last-of-type,
.cms-page .internal-banner.design-journal .internal-banner-content > p:last-of-type,
.cms-page .internal-banner.design-precision .internal-banner-content > p:last-of-type {
    color: #586e72;
}

.cms-page .internal-banner .banner-index {
    right: 0;
    bottom: 51px;
    color: rgba(255, 255, 255, .58);
    font: 700 9px 'DM Mono', monospace;
}
.cms-page .internal-banner.design-catalogue .banner-index,
.cms-page .internal-banner.design-journal .banner-index,
.cms-page .internal-banner.design-precision .banner-index { color: rgba(16,54,64,.52); }

.cms-page .internal-banner:after { opacity: .55; }
.cms-page .internal-banner.design-nature { border-radius: 0; }
.cms-page .internal-banner.design-nature .internal-banner-shade {
    background: linear-gradient(90deg, rgba(7, 43, 36, .94) 0 46%, rgba(7, 43, 36, .54) 70%, rgba(7, 43, 36, .18));
}
.cms-page .internal-banner.design-nature .internal-banner-content > p:last-of-type {
    color: rgba(255, 255, 255, .82);
    text-shadow: 0 1px 12px rgba(0, 0, 0, .26);
}
.cms-page .internal-banner.design-manifesto { background: linear-gradient(135deg, #c63e34, #e56051); }
.cms-page .internal-banner.design-markets .internal-banner-shade {
    background: linear-gradient(100deg, rgba(7, 35, 44, .97) 0 42%, rgba(7, 35, 44, .58) 73%, rgba(7, 35, 44, .18));
}

/* About hero keeps the feature card, but treats it as supporting content. */
.page-about-us .internal-banner-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 188px;
    column-gap: 44px;
    align-items: end;
}
.page-about-us .internal-banner-content > p:first-child,
.page-about-us .internal-banner-content > h1,
.page-about-us .internal-banner-content > p:not(.banner-index) { grid-column: 1; }
.page-about-us .internal-banner-content > p:first-child { grid-row: 1; }
.page-about-us .internal-banner-content > h1 { grid-row: 2; }
.page-about-us .internal-banner-content > p:not(.mono) { grid-row: 3; }
.page-about-us .about-hero-proof {
    grid-column: 2;
    grid-row: 1 / 4;
    min-height: 170px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .28);
    background: rgba(5, 31, 39, .62);
    box-shadow: 0 20px 48px rgba(1, 20, 26, .2);
    backdrop-filter: blur(12px);
}
.page-about-us .about-hero-proof strong { margin: 10px 0; font-size: 23px; }

/* Section rhythm mirrors the home page: compact, readable, and deliberate. */
.cms-page .managed-page { padding: 0 0 94px; }
.cms-page .page-breadcrumb {
    min-height: 74px;
    padding: 0;
    border-bottom: 1px solid var(--site-line);
    color: #718186;
    font: 600 9px 'DM Mono', monospace;
}
.cms-page .page-breadcrumb strong { color: var(--site-ink); }
.cms-page .page-breadcrumb a { color: #ca463b; }

.cms-page .page-builder {
    padding-top: 64px;
    color: var(--site-ink);
    font-size: 16px;
    line-height: 1.72;
}
.cms-page .page-builder > * { margin-bottom: 26px; }
.cms-page .page-builder > h2,
.cms-page .managed-page h2 {
    letter-spacing: -.035em;
}
.cms-page .page-builder > h2 {
    max-width: 790px;
    margin-top: 50px;
    font: 600 clamp(38px, 4vw, 52px)/1.03 Georgia, serif;
}
.cms-page .page-builder > h2:first-of-type { margin-top: 0; }
.cms-page .page-builder > h3 {
    margin-top: 42px;
    font: 600 27px/1.12 Georgia, serif;
}
.cms-page .page-builder > p {
    max-width: 820px;
    color: #5d7175;
    font-size: 16px;
}

.cms-page .builder-columns {
    gap: 1px;
    margin: 34px 0 !important;
    overflow: hidden;
    border: 1px solid var(--site-line);
    border-radius: 8px;
    background: var(--site-line);
    box-shadow: 0 16px 45px rgba(11, 48, 58, .07);
}
.cms-page .builder-columns p {
    min-height: 150px;
    padding: 32px;
    color: #5d7075;
    background: rgba(255, 255, 255, .9);
    font-size: 14px;
}
.cms-page .builder-columns p:first-line { color: var(--site-ink); font-size: 22px; }
.cms-page .page-builder > ul {
    gap: 10px;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.cms-page .page-builder > ul li {
    min-height: 92px;
    padding: 25px 25px 23px 58px;
    border: 1px solid var(--site-line);
    border-radius: 7px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 10px 30px rgba(11, 48, 58, .045);
}
.cms-page .page-builder > ul li:before { left: 24px; top: 26px; }
.cms-page .page-builder figure {
    overflow: hidden;
    border-radius: 8px;
    background: #d9ded9;
}
.cms-page .page-builder figure img { max-height: 540px; }
.cms-page .page-builder figcaption { margin: 0; padding: 11px 15px; background: #fff; }
.cms-page .page-builder blockquote {
    margin: 45px 0 !important;
    padding: 38px 42px;
    border: 0;
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 4px 0 #d64c40, 0 18px 48px rgba(11, 48, 58, .07);
    font-size: 25px;
}
.cms-page .builder-cta {
    margin-top: 54px !important;
    padding: 42px 46px;
    overflow: hidden;
    border-radius: 8px;
    background: linear-gradient(115deg, #0b323c, #164954);
    box-shadow: 0 22px 55px rgba(7, 36, 45, .16);
}
.cms-page .builder-cta h2 { font-size: 34px; }
.cms-page .builder-cta > a,
.cms-page .builder-button {
    border-radius: 5px;
    transition: transform .2s ease, box-shadow .2s ease;
}
.cms-page .builder-cta > a:hover,
.cms-page .builder-button:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0, 0, 0, .16); }

/* Premium showcase surfaces, with different compositions per page family. */
.cms-page :is(.vision-compass,.commitment-band,.quality-system,.network-stage,.impact-wheel,.catalogue-showcase,.markets-showcase,.resource-showcase,.career-culture,.utility-route) {
    margin-top: 72px;
}
.cms-page :is(.vision-compass,.commitment-band,.network-stage,.career-culture,.utility-route) {
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 24px 62px rgba(8, 42, 51, .12);
}
.cms-page .vision-compass { grid-template-columns: 300px 1fr; gap: 60px; padding: 58px; }
.cms-page .vision-compass h2,
.cms-page .quality-system h2,
.cms-page .network-copy h2,
.cms-page .impact-wheel h2,
.cms-page .catalogue-showcase h2,
.cms-page .markets-showcase h2,
.cms-page .resource-showcase h2,
.cms-page .career-statement h2,
.cms-page .utility-route h2 {
    font-size: clamp(36px, 3.7vw, 48px);
    line-height: 1.03;
}
.cms-page .commitment-band { padding: 58px 7%; }
.cms-page .commitment-band h2 { font-size: clamp(38px, 4.5vw, 58px); }
.cms-page .quality-system header { margin-bottom: 30px; }
.cms-page .quality-system li { min-height: 205px; padding: 25px; background: rgba(255,255,255,.9); }
.cms-page .quality-system li b { margin: 36px 0 10px; font-size: 23px; }
.cms-page .network-stage { min-height: 430px; }
.cms-page .network-copy { padding: 48px; }
.cms-page .impact-wheel { grid-template-columns: 340px 1fr; gap: 68px; }
.cms-page .impact-orbit { width: 320px; height: 320px; }
.cms-page .catalogue-showcase header,
.cms-page .resource-showcase > header { margin-bottom: 32px; }
.cms-page .catalogue-grid { gap: 10px; background: transparent; }
.cms-page .catalogue-grid article {
    min-height: 260px;
    padding: 26px;
    border: 1px solid var(--site-line);
    border-radius: 7px;
    box-shadow: 0 12px 34px rgba(11, 48, 58, .05);
}
.cms-page .catalogue-grid h3 { margin: 45px 0 14px; font-size: 23px; }
.cms-page .market-list article { min-height: 110px; border-color: rgba(255,255,255,.16); }
.cms-page .market-list h3 { font-size: 25px; }
.cms-page .resource-magazine { gap: 10px; background: transparent; }
.cms-page .resource-magazine article {
    min-height: 275px;
    border: 1px solid var(--site-line);
    border-radius: 7px;
    box-shadow: 0 12px 36px rgba(11, 48, 58, .05);
}
.cms-page .resource-magazine article.lead { min-height: 560px; }
.cms-page .resource-magazine h3 { font-size: 26px; }
.cms-page .resource-magazine .lead h3 { font-size: 40px; }
.cms-page .career-statement { padding: 52px; }
.cms-page .culture-values article { padding: 35px 25px; }
.cms-page .culture-values h3 { margin: 52px 0 13px; font-size: 24px; }
.cms-page .utility-route { padding: 38px 42px; }

/* Contact and policy pages receive purpose-built readable proportions. */
.cms-page .contact-layout {
    margin-top: 68px;
    overflow: hidden;
    border: 1px solid var(--site-line);
    border-radius: 10px;
    box-shadow: 0 24px 64px rgba(8, 42, 51, .12);
}
.cms-page .contact-card,
.cms-page .contact-form { padding: 44px; }
.cms-page .contact-card h2,
.cms-page .contact-form h2 { font-size: 36px; }
.cms-page .contact-fields input,
.cms-page .contact-fields select,
.cms-page .contact-fields textarea { border-radius: 4px; }
.cms-page .managed-page.design-policy > .page-builder {
    max-width: 860px;
    padding: 62px 58px;
    border: 1px solid var(--site-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(11, 48, 58, .06);
}

/* Related navigation looks editorial rather than like repeated utility cards. */
.cms-page .related-pages,
.page-about-us .related-pages {
    margin-top: 82px;
    margin-bottom: 0;
    padding-top: 52px;
    border-top: 1px solid var(--site-line);
}
.cms-page .related-pages > div:first-child h2,
.page-about-us .related-pages > div:first-child h2 {
    max-width: 650px;
    font-size: clamp(35px, 3.8vw, 48px);
}
.cms-page .related-grid,
.page-about-us .related-grid { gap: 10px; background: transparent; }
.cms-page .related-grid > a,
.page-about-us .related-grid > a {
    min-height: 285px;
    margin: 0;
    padding: 27px;
    overflow: hidden;
    border: 1px solid var(--site-line);
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 12px 36px rgba(11, 48, 58, .045);
}
.cms-page .related-grid > a:nth-child(4n+1) { background: #103b45; color: #fff; }
.cms-page .related-grid > a:nth-child(4n+3) { background: #d94d40; color: #fff; }
.cms-page .related-grid > a:nth-child(4n+1) p,
.cms-page .related-grid > a:nth-child(4n+3) p { color: rgba(255,255,255,.72); }
.cms-page .related-grid h3 { margin: 46px 0 14px; font-size: 23px; }
.cms-page .related-grid p { font-size: 12px; }

/* About page: keep the rich story but bring it to the shared scale. */
.page-about-us .about-opening { grid-template-columns: 160px 1fr; gap: 48px; padding: 58px 0 66px; }
.page-about-us .about-opening h2 { max-width: 740px; font-size: clamp(36px, 3.8vw, 50px); }
.page-about-us .about-opening p { max-width: 720px; margin-top: 22px; font-size: 16px; }
.page-about-us .about-editorial { min-height: 500px; border-radius: 9px; }
.page-about-us .about-editorial-image { min-height: 500px; }
.page-about-us .about-capabilities { padding: 72px 0; }
.page-about-us .about-capabilities h2,
.page-about-us .about-history-lead h2,
.page-about-us .about-global h2 { font-size: 40px; }
.page-about-us .about-capability-grid { gap: 9px; background: transparent; }
.page-about-us .about-capability-grid article { min-height: 225px; border: 1px solid var(--site-line); border-radius: 7px; }
.page-about-us .about-history,
.page-about-us .about-global,
.page-about-us .about-final-cta { overflow: hidden; border-radius: 9px; }
.page-about-us .about-history { min-height: 570px; }
.page-about-us .about-timeline article { min-height: 285px; }
.page-about-us .about-quote { padding: 70px 8%; }
.page-about-us .about-final-cta h2 { font-size: 36px; }

@media (max-width: 1100px) {
    .cms-page { --site-inset: 64px; }
    .cms-page .catalogue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-about-us .internal-banner-content { grid-template-columns: minmax(0,1fr) 175px; column-gap: 28px; }
}

@media (max-width: 800px) {
    .cms-page .internal-banner,
    .cms-page .internal-banner.design-editorial,
    .cms-page .internal-banner.design-manifesto,
    .cms-page .internal-banner.design-precision,
    .cms-page .internal-banner.design-network,
    .cms-page .internal-banner.design-nature,
    .cms-page .internal-banner.design-catalogue,
    .cms-page .internal-banner.design-markets,
    .cms-page .internal-banner.design-journal,
    .cms-page .internal-banner.design-people,
    .cms-page .internal-banner.design-contact,
    .page-about-us .internal-banner { min-height: 355px !important; }
    .cms-page .internal-banner-content,
    .page-about-us .internal-banner-content { padding: 145px 0 38px; }
    .cms-page .internal-banner h1,
    .cms-page .design-manifesto .internal-banner-content h1,
    .cms-page .design-people .internal-banner-content h1 { font-size: clamp(40px, 8vw, 54px); }
    .page-about-us .about-hero-proof { display: none; }
    .page-about-us .internal-banner-content { display: block; }
    .cms-page .page-builder > ul { grid-template-columns: 1fr; }
    .cms-page .vision-compass,
    .cms-page .impact-wheel,
    .cms-page .network-stage,
    .cms-page .career-culture { grid-template-columns: 1fr; }
    .cms-page .resource-magazine { grid-template-columns: 1fr 1fr; }
    .cms-page .resource-magazine article.lead { grid-column: 1 / -1; min-height: 380px; }
}

@media (max-width: 640px) {
    .cms-page { --site-inset: 40px; }
    .cms-page .internal-banner,
    .cms-page .internal-banner.design-editorial,
    .cms-page .internal-banner.design-manifesto,
    .cms-page .internal-banner.design-precision,
    .cms-page .internal-banner.design-network,
    .cms-page .internal-banner.design-nature,
    .cms-page .internal-banner.design-catalogue,
    .cms-page .internal-banner.design-markets,
    .cms-page .internal-banner.design-journal,
    .cms-page .internal-banner.design-people,
    .cms-page .internal-banner.design-contact,
    .page-about-us .internal-banner { min-height: 330px !important; }
    .cms-page .internal-banner-content,
    .page-about-us .internal-banner-content { padding: 132px 0 32px; }
    .cms-page .internal-banner h1,
    .cms-page .design-manifesto .internal-banner-content h1,
    .cms-page .design-people .internal-banner-content h1,
    .page-about-us .internal-banner-content > h1 { font-size: 38px; }
    .cms-page .internal-banner-content > p:last-of-type,
    .page-about-us .internal-banner-content > p:not(.mono) { font-size: 13px; line-height: 1.55; }
    .cms-page .page-breadcrumb { min-height: 62px; overflow: hidden; }
    .cms-page .page-builder { padding-top: 46px; }
    .cms-page .page-builder > h2 { font-size: 34px; }
    .cms-page .builder-columns,
    .cms-page .contact-layout,
    .cms-page .contact-fields { grid-template-columns: 1fr; }
    .cms-page .builder-cta { padding: 30px 24px; }
    .cms-page .vision-compass { padding: 36px 24px; }
    .cms-page .impact-orbit { width: 270px; height: 270px; margin-inline: auto; }
    .cms-page .impact-orbit span:first-child { left: 39%; }
    .cms-page .impact-orbit span:nth-child(2) { right: 2px; }
    .cms-page .impact-orbit span:nth-child(3) { left: 2px; }
    .cms-page .catalogue-grid,
    .cms-page .quality-system ol,
    .cms-page .resource-magazine,
    .cms-page .culture-values,
    .cms-page .related-grid { grid-template-columns: 1fr; }
    .cms-page .resource-magazine article.lead { grid-column: auto; min-height: 330px; }
    .cms-page .contact-card,
    .cms-page .contact-form { padding: 32px 24px; }
    .cms-page .managed-page.design-policy > .page-builder { padding: 38px 24px; }
    .page-about-us .about-opening { display: block; padding: 46px 0 52px; }
    .page-about-us .about-opening h2 { font-size: 34px; }
}
