/* Layouts absent from the existing component library. Shared container,
   typography, buttons, link states and reveal behavior remain authoritative. */
.hero-button-pair {display:flex;gap:30px;flex-wrap:wrap;}
/* Source-sized editorial actions are opt-in. Normal public/nav buttons retain
   their existing scale; navy uses the same brand token as the dark surfaces. */
.btn-navy {background:var(--color-secondary-dark);border:1px solid var(--color-secondary-dark);color:var(--color-white);}
.btn-navy:hover {background:var(--color-white);color:var(--color-secondary-dark);}
.btn-navy:focus-visible {outline:2px solid var(--color-secondary-dark);outline-offset:4px;box-shadow:0 0 0 2px var(--color-white);}
.btn-large {font-size:20px;line-height:30px;padding:21px 22px;min-height:74px;max-width:100%;}
.cta-section--landscape {min-height:56.25vw;display:flex;align-items:center;}
.cta-section--responsive-overlay {--photo-overlay:var(--photo-overlay-desktop);}
.services-container--copy > * {flex:1;min-width:0;}
.services-copy {display:flex;flex-direction:column;align-items:flex-start;gap:28px;}
.services-copy p {margin:0;}
.services-section--spaced {padding:120px 0 !important;}
.services-section--spaced > .services-container {margin-block:0 !important;}
.services-section--spaced .services-info {margin:0;}
.services-copy > .section-intro-copy {max-width:750px;}
/* Align the first visible capital letters, not differently sized line boxes.
   A real grid row ties the copy to the heading even when the eyebrow wraps. */
.section-split-intro {--intro-column-gap:20px;--intro-row-gap:28px;}
@media(min-width:992px) {
 .section-split-intro {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--intro-column-gap);row-gap:var(--intro-row-gap) !important;align-items:start;}
 .section-split-intro__heading {display:contents;}
 .section-split-intro .section-subtitle {grid-column:1;grid-row:1;margin:0;}
 .section-split-intro .section-title {grid-column:1;grid-row:2;margin:0;}
 .section-split-intro__copy {grid-column:2;grid-row:2;}
 .section-split-intro:not(:has(.section-subtitle)) .section-title,
 .section-split-intro:not(:has(.section-subtitle)) .section-split-intro__copy {grid-row:1;}
 .section-split-intro .section-title,
 .section-split-intro > .section-intro-copy,
 .section-split-intro__copy > .section-intro-copy {text-box-trim:trim-start;text-box-edge:cap alphabetic;}
}
.facts-overview {padding:90px 60px 0;}
/* At the 1920px source width: 80px panel inset, 102px column gap and 705px
   copy. Centre natural groups, not stretched grid boxes. The approved shared
   heading font/scale and symmetric outside gutters remain unchanged. */
.facts-overview__inner {background:var(--color-secondary-dark);color:var(--color-white);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:clamp(40px,5.3125vw,102px);padding:clamp(80px,8.489583vw,163px) clamp(24px,4.166667vw,80px);}
.facts-overview__copy {min-width:0;}
.facts-overview .section-title {color:inherit;margin:0 0 44px;}
.facts-overview .section-title,.facts-overview .section-intro-copy {max-width:705px;}
.facts-overview .section-intro-copy,.numbered-cards--dark .section-intro-copy {color:inherit;}
.facts-overview__list {margin:0;max-width:708px;min-width:0;}
.facts-overview__list > div {border-bottom:1px solid #ffffff66;padding:0 0 20px;margin:0 0 24px;}
.facts-overview__list > div:last-child {margin:0;}
.facts-overview dt {font-size:16px;font-weight:400;margin-bottom:16px;color:var(--color-light-blue);}
.facts-overview dd {font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.022em;margin:0;}
.numbered-cards {background:var(--color-light-blue);padding:120px 0;}
.numbered-cards--dark {background:var(--color-secondary-dark);color:var(--color-white);}
.numbered-cards--dark .section-title {color:inherit;}
.numbered-cards__intro {--intro-column-gap:28px;margin-bottom:60px;}
.numbered-cards__intro > .section-intro-copy {width:88%;max-width:705px;margin:0;}
.numbered-cards__grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:20px;}
.numbered-cards__cell {min-width:0;overflow-wrap:anywhere;}
.numbered-cards__card {background:var(--color-white);color:var(--color-black);height:100%;display:flex;flex-direction:column;gap:28px;padding:45px 36px;min-width:0;}
.numbered-cards__number {color:#85b6e7;font-size:24px;font-weight:600;line-height:1.5;letter-spacing:-.022em;}
.numbered-cards__card h3 {font-size:32px;font-weight:600;line-height:1.3;letter-spacing:-.022em;margin:0;}
.numbered-cards__card p {font-size:var(--context-body-size);font-weight:400;line-height:1.5;margin:0;}
.numbered-cards__cta {background:var(--color-secondary-dark);color:var(--color-white);}
.numbered-cards--dark .numbered-cards__cta {background:var(--color-light-blue);color:var(--color-black);}
.numbered-cards__cta .btn {align-self:start;}
.compact-enquiry {padding:110px 0;scroll-margin-top:120px;}
.compact-enquiry__inner {background:var(--color-light-blue);border:14px solid #cddbe5;padding:100px 24px;text-align:center;}
.compact-enquiry__inner > p,.compact-enquiry form {max-width:750px;margin:0 auto;overflow-wrap:anywhere;}
.compact-enquiry .section-title {max-width:780px;margin:35px auto;}
.compact-enquiry__fields {display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:0;margin-top:35px;align-items:stretch;}
.compact-enquiry input[type=email] {min-width:0;width:100%;background:var(--color-white);border:1px solid transparent;border-radius:0;padding:15px 28px;margin:0;font:inherit;line-height:30px;box-sizing:border-box;}
.compact-enquiry__fields button:disabled {cursor:wait;opacity:.6;}
.compact-enquiry__fields button {font-family:inherit;}
.compact-enquiry .compact-enquiry__privacy {font-size:16px;color:#555;margin-top:30px;line-height:1.5;}
.compact-enquiry .compact-enquiry__error {color:#a71930;margin:20px 0 0;}
.compact-enquiry__success {max-width:750px;margin:35px auto 0;padding:28px;border:1px solid var(--color-secondary-dark);color:var(--color-secondary-dark);text-align:left;overflow-wrap:anywhere;}
.compact-enquiry__success h3 {margin:0 0 16px;font-size:28px;font-weight:600;line-height:1.3;}
.compact-enquiry__success p {margin:0;font-size:var(--context-body-size);line-height:var(--context-body-leading);}
.compact-enquiry__success:focus-visible {outline:2px solid var(--color-secondary-dark);outline-offset:4px;}
.compact-enquiry__trap {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.compact-enquiry__label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.compact-enquiry [hidden] {display:none !important;}
.compact-enquiry input:focus-visible {outline:2px solid var(--color-secondary-dark);outline-offset:2px;}
.photo-stack__image {display:none;}
.cta-section.photo-stack {background-image:var(--photo-panel-background);}
/* Same content/photo separation as the founders divider. Full intrinsic image
   geometry prevents face cropping; this is opt-in and leaves desktop untouched. */
@media(max-width:1200px) {
 .hero-section.photo-stack,.cta-section.photo-stack {display:flex;flex-direction:column;min-height:0 !important;height:auto;padding:0;background:var(--color-secondary-dark) !important;}
 .photo-stack__image {display:block;width:100%;height:auto;flex:none;}
 .photo-stack > .container {width:100%;height:auto;min-height:0;padding:60px 40px;margin:0;}
 /* A separated hero has no image behind navigation. Keep its top header in
    normal flow instead of compensating for legacy negative-margin offsets. */
 body:has(.hero-section.photo-stack) .main-header:not(#hidden_header) {margin-bottom:0;padding-block:20px;background:var(--color-secondary-dark);}
 .photo-stack .hero-content {margin:0 !important;max-width:100%;}
 .photo-stack .hero-button-pair {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;}
 .photo-stack .hero-button-pair > .btn {--button-width:100%;width:100%;height:100%;}
 /* This shared composition puts the actions on navy, not on the photo.
    Use the existing filled-light / outlined-light button language there. */
 .photo-stack .hero-button-pair > .hero-button-pair__primary {background-color:var(--color-white);border-color:var(--color-white);color:var(--color-black);}
 .photo-stack .hero-button-pair > .hero-button-pair__primary:hover {background-color:transparent;color:var(--color-white);}
 .photo-stack .hero-button-pair > .hero-button-pair__secondary {background-color:transparent;border-color:var(--color-white);color:var(--color-white);}
 .photo-stack .hero-button-pair > .hero-button-pair__secondary:hover {background-color:var(--color-white);color:var(--color-black);}
 .photo-stack .hero-button-pair > .btn:focus-visible {outline:2px solid var(--color-white);outline-offset:4px;box-shadow:none;}
 .services-section--spaced > .services-container {gap:40px;}
}
@media(max-width:1400px) {
 .numbered-cards__grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:991px) {
 .cta-section--responsive-overlay {--photo-overlay:var(--photo-overlay-small);}
 .facts-overview__inner,.numbered-cards__intro {grid-template-columns:1fr;gap:40px;}
 .numbered-cards__intro {display:grid;}
 .numbered-cards__intro .section-title {margin:28px 0 0;}
 .numbered-cards__intro .section-subtitle {margin:0;}
 .numbered-cards__intro > .section-intro-copy {width:100%;}
 .services-container--copy {flex-direction:column;}
 .facts-overview {padding:60px 40px 0;}
 .facts-overview__inner {padding:60px 40px;}
 .services-section--spaced {padding:80px 0 !important;}
}
@media(max-width:768px) {
 .numbered-cards__grid {grid-template-columns:1fr;grid-auto-rows:auto;}
 .numbered-cards__card h3 {font-size:28px;}
}
@media(max-width:600px) {
 .hero-button-pair {gap:16px;}
 .photo-stack > .container {padding:40px 20px;}
 .photo-stack .hero-button-pair {grid-template-columns:minmax(0,1fr);}
 .facts-overview {padding-inline:20px;}
 .facts-overview__inner {padding-inline:20px;}
 .facts-overview dd {font-size:20px;}
 .numbered-cards {padding:70px 0;}
 .compact-enquiry {padding:70px 0;}
 .compact-enquiry__inner {padding:60px 20px;border-width:7px;}
 .compact-enquiry__fields {grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;gap:16px;margin-top:30px;}
}
@media(max-width:500px) {
 .btn-large {min-height:62px;}
 .compact-enquiry input[type=email] {padding:10px;}
}
/* Respect motion preference without adding another reveal controller. */
/* Publication variant of the CMS cooperation component. Desktop source:
   1918 × 644, 100px inset, 850px copy, logos 105px high / 115px apart.
   The standard partner strip retains its existing layout and hover behavior. */
.cooperations-section--publications {position:relative;isolation:isolate;padding:0;}
.cooperations-section--publications > .cooperations-container {display:grid;grid-template-columns:minmax(0,850fr) minmax(0,720fr);gap:clamp(80px,7.8125vw,150px);max-width:1920px;padding:clamp(60px,5.208333vw,100px) clamp(60px,5.208333vw,100px);min-height:min(33.576642vw,644px);align-items:center;text-align:left;}
.cooperations-section--publications .cooperations-info {min-width:0;align-items:flex-start;}
.cooperations-section--publications .cooperations-info > * {margin:0;}
.cooperations-section--publications .section-intro-copy {max-width:705px;color:inherit;}
.cooperations-photo {position:absolute;inset:0;z-index:-1;display:block;overflow:hidden;}
.cooperations-photo img {display:block;width:100%;height:100%;object-fit:cover;}
.cooperations-photo::after {content:"";position:absolute;inset:0;background:linear-gradient(146.54deg,rgba(0,0,0,.4) 44.52%,rgba(255,255,255,0) 79.51%),linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2));}
.cooperations-section--publications .cooperations-logos {position:relative;flex-direction:row;gap:clamp(40px,5.989583vw,115px);justify-content:flex-start;}
.cooperations-section--publications .cooperations-logos img {width:auto !important;height:clamp(60px,5.46875vw,105px) !important;max-width:100%;object-fit:contain;}
.cooperations-section--publications .cooperations-logos > img.show:hover {transform:none;}
.cooperations-section--publications .cooperations-logos a img {display:block;}
.cooperations-section--publications .cooperations-logos a:focus-visible {outline:2px solid var(--color-white);outline-offset:6px;}
@media(max-width:1200px) {
 .cooperations-section--publications > .cooperations-container {display:flex;flex-direction:column;gap:0;padding:0;min-height:0;}
 .cooperations-section--publications .cooperations-info {width:100%;max-width:none;padding:60px 40px;}
 .cooperations-section--publications .cooperations-media {position:relative;isolation:isolate;width:100%;}
 .cooperations-section--publications .cooperations-photo {position:relative;inset:auto;}
 .cooperations-section--publications .cooperations-photo img {height:auto;aspect-ratio:2/1;object-fit:cover;}
 .cooperations-section--publications .cooperations-logos {position:absolute;top:10%;left:0;right:0;justify-content:center;gap:clamp(28px,6vw,115px);}
 .cooperations-section--publications .cooperations-logos img {height:clamp(60px,12vw,105px) !important;}
}
@media(max-width:600px) {
 .cooperations-section--publications .cooperations-info {padding:40px 20px;}
}
@media(prefers-reduced-motion:reduce) {
 .cooperations-section--publications .cooperations-logos a img {transition:none;}
 .cooperations-section--publications .cooperations-logos a:hover img {transform:none;}
 .btn-large,.section-split-intro .animate-item,.facts-overview .animate-item,
 .numbered-cards .animate-item,.compact-enquiry .animate-item,.photo-stack .animate-item,.cooperations-section--publications .animate-item {
  opacity:1;transform:none;animation:none;transition:none;
 }
}

/* Local correction scoped to the opt-in editorial page. */
.text-wrap-safe {overflow-wrap:anywhere;}
.accordion-header {gap:20px;}
.accordion-header > span {min-width:0;}
.accordion-header > .toggle-icon {flex-shrink:0;}
