
/* OFICIAL v2 / revision 13. Brand colors adapted from the supplied identity PDF. */
/* R2D / selected direction / revision 12. Earlier assets stay unchanged. */
.chosen-site { --selection-ink: #231f20; --selection-accent: #c2a36b; --selection-paper: #f3f0ea; }
.chosen-site .site-header .container { gap: 26px; }
.chosen-site .nav-main { gap: clamp(17px, 1.65vw, 28px); }
.chosen-site .nav-main a { white-space: nowrap; }
.chosen-site .nav-main a[aria-current="page"] { color: #231f20; }
.chosen-site .nav-main a[aria-current="page"]::after { background: #765c30; }
.interior-page { background: #fff; color: #231f20; }
.interior-page h1, .interior-page h2, .interior-page h3, .interior-page p { margin: 0; }
.interior-page h1, .interior-page h2, .interior-page h3 { font-family: Montserrat, sans-serif; font-weight: 500; }
.interior-page a, .interior-page button, .interior-page summary { -webkit-tap-highlight-color: transparent; }
.interior-page section[id] { scroll-margin-top: 112px; }
.selection-wrap { width: calc(100% - 96px); max-width: 1600px; margin-inline: auto; }
.selection-label { font-size: 11px; line-height: 1.6; font-weight: 600; letter-spacing: .095em; text-transform: uppercase; }
.selection-arrow { display: inline-block; font-family: Arial, sans-serif; font-weight: 400; }
.selection-section { padding-block: 110px; }
.selection-heading { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; align-items: start; margin-bottom: 66px; }
.selection-heading > .selection-label { margin-top: 10px; }
.interior-page .selection-heading h2 { font-size: clamp(42px, 4.2vw, 68px); line-height: 1.08; letter-spacing: -.06em; }
.selection-intro { font-size: 16px; line-height: 1.85; max-width: 55ch; color: #514b48; }
.selection-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 50px; padding-block: 10px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 600; }
.selection-link .selection-arrow { font-size: 25px; }
.selection-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.selection-button { display: inline-flex; justify-content: space-between; align-items: center; gap: 35px; min-height: 60px; padding: 17px 23px; background: #c2a36b; color: #231f20; font-size: 12px; line-height: 1.5; font-weight: 600; }
.selection-button .selection-arrow { font-size: 26px; }
.selection-button:hover { background: #d1b681; }
.selection-button--dark { background: #231f20; color: #fff; }
.selection-button--dark:hover { background: #393233; }

/* Approach: the method in front, the working documents behind it. */
.method-hero { position: relative; isolation: isolate; min-height: 755px; padding-block: 45px 40px; background: #231f20; color: #fff; overflow: hidden; }
.method-hero__photo { position: absolute; z-index: -2; inset: 0 0 0 44%; }
.method-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
.method-hero::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #231f20 12%, rgba(35,31,32,.96) 39%, rgba(35,31,32,.63) 67%, rgba(35,31,32,.26)); }
.method-hero__top { display: flex; justify-content: space-between; align-items: start; gap: 24px; }
.method-hero__top > p:last-child { text-align: right; font-size: 11px; line-height: 1.6; padding: 10px 14px; background: #231f20; }
.method-hero__title { position: relative; margin-top: 65px; }
.interior-page .method-hero h1 { font-size: clamp(90px, 9.2vw, 146px); line-height: .94; letter-spacing: -.07em; color: #fff; }
.method-hero h1 span { color: #c2a36b; }
.method-hero__arrow { position: absolute; right: 5%; top: 44px; width: 150px; height: 150px; color: #c2a36b; }
.interior-page .method-hero__description { margin-top: 36px; max-width: 42ch; font-size: 16px; line-height: 1.85; color: #fff; }
.method-hero__bottom { margin-top: 45px; display: flex; justify-content: space-between; gap: 32px; align-items: end; }
.method-hero__bottom .selection-link { color: #c2a36b; min-width: 230px; }
.method-hero__caption { max-width: 30ch; padding: 12px 16px; font-size: 11px; line-height: 1.7; background: #231f20; color: #fff; }
.method-hero :focus-visible { outline-color: #c2a36b; }
.method-note { background: #c2a36b; }
.method-note .selection-wrap { display: flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 101px; padding-block: 22px; }
.method-note strong { font-size: clamp(22px, 2.1vw, 32px); letter-spacing: -.035em; font-weight: 500; }
.method-note p { font-size: 12px; font-weight: 600; }
.discipline-list { list-style: none; margin: 0; padding: 0; }
.discipline-list li { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 45px; align-items: start; padding-block: 48px 55px; border-top: 1px solid #d8d0c6; }
.discipline-list li:last-child { border-bottom: 1px solid #d8d0c6; }
.discipline-list__number { font-size: 12px; font-weight: 600; padding-top: 13px; display: flex; gap: 15px; align-items: center; }
.discipline-list__number::before { content: ''; display: block; width: 28px; height: 1px; background: #765c30; }
.interior-page .discipline-list h3 { font-size: clamp(42px, 4.4vw, 66px); line-height: 1; letter-spacing: -.055em; }
.discipline-list h3 span { color: #765c30; }
.discipline-list p { font-size: 16px; line-height: 1.9; max-width: 50ch; }
.engagement-process { background: #231f20; color: #fff; }
.engagement-process .selection-label { color: #c2a36b; }
.engagement-process h2 { color: #fff; }
.engagement-process .process-route__steps p { max-width: 37ch; }
.engagement-process .process-route__steps h3 { font-size: clamp(34px, 3.2vw, 48px); line-height: 1.12; }
.engagement-process .process-route__steps li { padding-right: 40px; }
.engagement-process .process-route__steps li:last-child { padding-right: 0; }
.interior-page .engagement-process__note { max-width: 56ch; margin: 56px 0 0 auto; padding-top: 24px; border-top: 1px solid #8d7959; font-size: 14px; line-height: 1.85; color: #ebe5dc; }
.engagement-rules { background: #f3f0ea; }
.rules-layout { display: grid; grid-template-columns: 1fr 1.55fr; gap: 90px; align-items: start; }
.rules-layout__intro .selection-label { margin-bottom: 28px; }
.interior-page .rules-layout__intro h2 { font-size: clamp(40px, 4vw, 63px); line-height: 1.06; letter-spacing: -.055em; }
.rules-layout__intro > p:last-child { margin-top: 25px; font-size: 15px; line-height: 1.85; max-width: 38ch; }
.rules-layout__intro .selection-link { margin-top: 25px; }
.rule { border-top: 1px solid #d8d0c6; }
.rule:last-child { border-bottom: 1px solid #d8d0c6; }
.rule summary { display: grid; grid-template-columns: 32px 1fr 26px; gap: 22px; align-items: center; padding-block: 28px; list-style: none; cursor: pointer; }
.rule summary::-webkit-details-marker { display: none; }
.rule__number { font-size: 10px; font-weight: 600; align-self: start; padding-top: 7px; }
.interior-page .rule h3 { font-size: clamp(21px, 1.9vw, 28px); line-height: 1.3; letter-spacing: -.035em; }
.rule__toggle { position: relative; width: 24px; height: 24px; }
.rule__toggle::before, .rule__toggle::after { content: ''; position: absolute; top: 11px; left: 3px; height: 1.5px; width: 18px; background: #231f20; }
.rule__toggle::after { transform: rotate(90deg); }
.rule[open] .rule__toggle::after { transform: rotate(0deg); }
.rule summary:hover h3 { color: #765c30; }
.interior-page .rule > p { margin: -2px 48px 30px 54px; max-width: 55ch; font-size: 15px; line-height: 1.85; }
.method-principle { background: #c2a36b; padding-block: 74px 80px; }
.method-principle .selection-wrap { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; }
.method-principle .selection-label { margin-top: 12px; }
.method-principle blockquote { font-size: clamp(27px, 2.8vw, 43px); font-weight: 500; line-height: 1.35; letter-spacing: -.045em; margin: 0; max-width: 30ch; }

/* Services: four capabilities, two entry tracks, clear outputs. */
.services-hero { background: #f3f0ea; padding-top: 56px; }
.services-hero__opening { display: grid; grid-template-columns: 1.2fr .8fr; gap: 100px; padding-bottom: 72px; }
.services-hero .selection-label { margin-bottom: 44px; }
.interior-page .services-hero h1 { font-size: clamp(69px, 6.55vw, 106px); line-height: 1.01; letter-spacing: -.07em; }
.services-hero h1 span { color: #765c30; }
.interior-page .services-hero__description { margin-top: 27px; max-width: 43ch; font-size: 16px; line-height: 1.85; }
.services-index { padding-top: 7px; }
.services-index .selection-label { margin-bottom: 28px; color: #514b48; }
.services-index a { display: grid; grid-template-columns: 25px 1fr 25px; gap: 14px; align-items: center; padding-block: 23px; border-top: 1px solid #d8d0c6; min-height: 77px; }
.services-index a:last-child { border-bottom: 1px solid #d8d0c6; }
.services-index__number { font-size: 10px; font-weight: 600; align-self: start; padding-top: 5px; }
.services-index strong { font-size: 20px; letter-spacing: -.025em; font-weight: 500; line-height: 1.35; }
.services-index .selection-arrow { font-size: 24px; }
.services-index a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.services-hero__photo { position: relative; height: 290px; overflow: hidden; }
.services-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 66%; }
.services-hero__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(35,31,32,.6), transparent 75%); }
.services-hero__caption { position: absolute; inset: auto 48px 27px; z-index: 1; display: flex; justify-content: space-between; gap: 25px; color: #fff; font-size: 11px; font-weight: 600; line-height: 1.6; }
.service-track { padding-block: 112px; }
.service-track__opening { display: grid; grid-template-columns: .95fr 1.05fr; gap: 86px; align-items: center; }
.service-track__photo { height: 630px; overflow: hidden; }
.service-track__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.service-track__content > .selection-label { margin-bottom: 35px; }
.interior-page .service-track h2 { font-size: clamp(65px, 6.4vw, 96px); line-height: .97; letter-spacing: -.07em; }
.service-track h2 span { color: #765c30; }
.service-track__time { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 15px 25px; padding-block: 22px; margin-top: 29px; border-top: 1px solid #d8d0c6; border-bottom: 1px solid #d8d0c6; font-size: 12px; line-height: 1.6; font-weight: 600; }
.service-track__time strong { font-size: 19px; line-height: 1; font-weight: 500; letter-spacing: -.035em; }
.interior-page .service-track__content > p:not(.selection-label) { margin-top: 26px; font-size: 15px; line-height: 1.9; color: #514b48; }
.service-track__content > .selection-button { margin-top: 26px; }
.route-portfolio { margin-top: 73px; }
.route-portfolio__heading { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 20px 45px; margin-bottom: 32px; }
.interior-page .route-portfolio__heading h3 { font-size: clamp(30px, 3vw, 44px); line-height: 1.2; letter-spacing: -.045em; }
.route-portfolio__heading p { font-size: 12px; line-height: 1.7; max-width: 33ch; }
.route-row { display: grid; grid-template-columns: 70px 1fr 1.2fr; gap: 40px; align-items: start; padding-block: 28px; border-top: 1px solid #d8d0c6; }
.route-row:last-child { border-bottom: 1px solid #d8d0c6; }
.route-row__letter { font-size: 34px; font-weight: 500; line-height: 1; letter-spacing: -.045em; }
.interior-page .route-row h4 { margin: 0; font-size: 19px; line-height: 1.4; font-family: Montserrat, sans-serif; font-weight: 500; letter-spacing: -.025em; }
.route-row h4 span { display: block; margin-top: 5px; font-size: 11px; letter-spacing: 0; font-weight: 600; color: #765c30; }
.route-row p { font-size: 14px; line-height: 1.8; color: #514b48; }
.track-outputs { margin-top: 28px; display: grid; grid-template-columns: 110px 1fr; gap: 35px; }
.track-outputs .selection-label { padding-top: 2px; }
.track-outputs p { font-size: 13px; line-height: 1.9; color: #514b48; }
.service-track--entry { background: #231f20; color: #fff; }
.service-track--entry .service-track__opening { grid-template-columns: 1.05fr .95fr; }
.service-track--entry .service-track__photo { height: 610px; }
.service-track--entry .service-track__photo img { object-position: 66% 50%; }
.service-track--entry h2 { color: #fff; }
.service-track--entry h2 span, .service-track--entry .selection-label { color: #c2a36b; }
.service-track--entry .service-track__content > p:not(.selection-label) { color: #ebe5dc; }
.service-track--entry .service-track__time { border-color: #8d7959; }
.service-track--entry :focus-visible { outline-color: #c2a36b; }
.entry-deliverables { margin-top: 72px; }
.entry-deliverables > .selection-label { margin-bottom: 29px; }
.entry-deliverables dl { margin: 0; }
.entry-deliverables dl > div { display: grid; grid-template-columns: 1fr 1.4fr; gap: 50px; padding-block: 25px; border-top: 1px solid #8d7959; }
.entry-deliverables dl > div:last-child { border-bottom: 1px solid #8d7959; }
.entry-deliverables dt { font-size: 21px; letter-spacing: -.035em; font-weight: 500; }
.entry-deliverables dd { margin: 0; color: #ebe5dc; font-size: 14px; line-height: 1.9; }
.operating-capabilities { padding-block: 110px; background: #f3f0ea; }
.operating-capabilities__grid { display: grid; grid-template-columns: 1fr 1fr; }
.capability { padding: 0 66px 10px 0; }
.capability + .capability { padding: 0 0 10px 66px; border-left: 1px solid #d8d0c6; }
.capability .selection-label { margin-bottom: 39px; }
.interior-page .capability h2 { font-size: clamp(40px, 4.2vw, 62px); line-height: 1.03; letter-spacing: -.055em; }
.interior-page .capability > p:not(.selection-label) { font-size: 15px; line-height: 1.9; max-width: 49ch; margin-top: 28px; }
.capability .selection-link { margin-top: 25px; width: min(100%, 360px); }
.interior-page .impact-intake h2 { color: #fff; }
.interior-page .impact-intake > .impact-container > p:last-child { margin-top: 34px; }
.interior-page .site-footer p, .interior-page .site-footer h2 { margin-bottom: revert; }
.chosen-site .nav-main { overflow-y: auto; }

@media (prefers-reduced-motion: no-preference) {
  .selection-link .selection-arrow, .selection-button .selection-arrow, .services-index .selection-arrow { transition: transform 220ms ease; }
  .selection-link:hover .selection-arrow, .selection-button:hover .selection-arrow, .services-index a:hover .selection-arrow { transform: translate(3px, -3px); }
  .interior-page [data-appear="ready"] { opacity: 0; transform: translateY(20px); }
  .interior-page [data-appear="visible"] { transition: opacity 600ms ease, transform 700ms cubic-bezier(.2,.6,.3,1); opacity: 1; transform: none; }
}
@media (max-width: 1200px) {
  .selection-wrap { width: calc(100% - 72px); }
  .chosen-site .site-header .container { gap: 20px; }
  .chosen-site .header-cta { gap: 16px; }
  .chosen-site .nav-main { gap: 18px; }
  .method-hero__arrow { width: 110px; height: 110px; right: 2%; }
  .services-hero__opening { gap: 56px; grid-template-columns: 1.25fr .75fr; }
  .services-index strong { font-size: 18px; }
  .rules-layout, .service-track__opening { gap: 55px; }
  .service-track__photo { height: 590px; }
  .capability { padding-right: 44px; }
  .capability + .capability { padding-left: 44px; }
}
@media (min-width: 981px) and (max-width: 1100px) {
  .chosen-site .site-header .container { padding-inline: 24px; gap: 18px; }
  .chosen-site .nav-main { gap: 15px; }
  .chosen-site .nav-main a { font-size: 11px; }
  .chosen-site .header-cta { gap: 12px; }
  .chosen-site .header-cta .language-label { display: none; }
}
@media (max-width: 980px) {
  .selection-wrap { width: calc(100% - 48px); }
  .chosen-site .nav-main { gap: 0; top: 88px; max-height: calc(100dvh - 88px); }
  .chosen-site .nav-main a { font-size: 17px; padding-block: 18px; }
  .selection-section, .service-track, .operating-capabilities { padding-block: 78px; }
  .selection-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 48px; }
  .selection-heading > .selection-label { margin: 0; }
  .method-hero { min-height: 720px; }
  .interior-page .method-hero h1 { font-size: clamp(76px, 11.2vw, 110px); }
  .method-hero__arrow { top: 35px; width: 85px; height: 85px; right: 0; }
  .method-hero__photo { left: 30%; }
  .method-note .selection-wrap { align-items: start; flex-direction: column; gap: 12px; }
  .discipline-list li { grid-template-columns: 60px 1fr 1.25fr; gap: 28px; padding-block: 36px; }
  .discipline-list__number::before { display: none; }
  .interior-page .discipline-list h3 { font-size: 43px; }
  .discipline-list p { font-size: 14px; }
  .engagement-process .process-route__steps li { padding-right: 0; }
  .engagement-process .process-route__steps h3 { font-size: 40px; }
  .rules-layout { grid-template-columns: 1fr; gap: 42px; }
  .rules-layout__intro > p:last-child { max-width: 57ch; }
  .method-principle .selection-wrap { grid-template-columns: 1fr; gap: 30px; }
  .services-hero__opening { grid-template-columns: 1fr; gap: 45px; }
  .interior-page .services-hero h1 { font-size: clamp(68px, 10vw, 98px); }
  .services-index { display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; }
  .services-index > .selection-label { grid-column: 1 / -1; margin-bottom: 22px; }
  .services-index a:nth-last-child(2) { border-bottom: 1px solid #d8d0c6; }
  .services-hero__photo { height: 260px; }
  .services-hero__caption { inset-inline: 24px; }
  .service-track__opening, .service-track--entry .service-track__opening { grid-template-columns: 1fr 1fr; gap: 32px; }
  .service-track__photo, .service-track--entry .service-track__photo { height: 590px; }
  .interior-page .service-track h2 { font-size: 64px; }
  .service-track__content > .selection-label { margin-bottom: 25px; }
  .service-track__time { align-items: start; flex-direction: column; }
  .interior-page .service-track__content > p:not(.selection-label) { font-size: 14px; }
  .route-row { grid-template-columns: 45px 1fr 1.3fr; gap: 24px; }
  .entry-deliverables dl > div { gap: 30px; }
  .capability { padding-right: 28px; }
  .capability + .capability { padding-left: 28px; }
  .interior-page .capability h2 { font-size: 42px; }
}
@media (max-width: 600px) {
  .selection-wrap { width: calc(100% - 40px); }
  .chosen-site .site-header .container { height: 80px; padding-inline: 20px; gap: 12px; }
  .chosen-site .nav-main { top: 80px; max-height: calc(100dvh - 80px); padding-inline: 24px; }
  .chosen-site .header-cta { gap: 12px; }
  .selection-section, .service-track, .operating-capabilities { padding-block: 62px; }
  .selection-heading { gap: 24px; margin-bottom: 36px; }
  .interior-page .selection-heading h2 { font-size: 40px; }
  .selection-label { font-size: 10px; }
  .method-hero { min-height: 720px; padding-block: 30px; }
  .method-hero__top > p:last-child { font-size: 9px; padding: 8px 10px; max-width: 130px; }
  .method-hero__photo { inset: 0; }
  .method-hero__photo img { object-position: 68% 50%; }
  .method-hero::before { background: linear-gradient(90deg, rgba(35,31,32,.95), rgba(35,31,32,.69)); }
  .method-hero__title { margin-top: 64px; }
  .interior-page .method-hero h1 { font-size: clamp(62px, 14.5vw, 85px); line-height: 1; }
  .method-hero__arrow { display: none; }
  .interior-page .method-hero__description { font-size: 15px; line-height: 1.8; margin-top: 30px; }
  .method-hero__bottom { margin-top: 32px; flex-direction: column; align-items: start; gap: 28px; }
  .method-hero__caption { max-width: none; font-size: 10px; }
  .method-note .selection-wrap { padding-block: 25px; }
  .method-note strong { font-size: 25px; }
  .method-note p { font-size: 10px; line-height: 1.8; }
  .discipline-list li { grid-template-columns: 32px 1fr; gap: 18px; padding-block: 29px 34px; }
  .discipline-list__number { grid-row: 1 / 3; padding-top: 8px; }
  .interior-page .discipline-list h3 { font-size: 44px; }
  .discipline-list p { grid-column: 2; font-size: 15px; line-height: 1.85; }
  .engagement-process .process-route__steps li { grid-template-columns: 36px 1fr; column-gap: 18px; }
  .engagement-process .process-route__steps h3 { font-size: 34px; }
  .engagement-process .process-route__steps p { font-size: 15px; }
  .interior-page .engagement-process__note { margin-top: 26px; font-size: 13px; }
  .interior-page .rules-layout__intro h2 { font-size: 42px; }
  .rule summary { grid-template-columns: 22px 1fr 22px; gap: 14px; padding-block: 23px; }
  .interior-page .rule h3 { font-size: 21px; }
  .interior-page .rule > p { margin: 0 0 26px 36px; font-size: 14px; }
  .method-principle { padding-block: 48px 55px; }
  .method-principle blockquote { font-size: 28px; }
  .services-hero { padding-top: 33px; }
  .services-hero__opening { padding-bottom: 43px; gap: 40px; }
  .services-hero .selection-label { margin-bottom: 28px; }
  .interior-page .services-hero h1 { font-size: clamp(48px, 12vw, 72px); }
  .interior-page .services-hero__description { font-size: 15px; margin-top: 24px; }
  .services-index { display: block; }
  .services-index > .selection-label { margin-bottom: 18px; }
  .services-index a { padding-block: 19px; min-height: 68px; gap: 16px; }
  .services-index a:nth-last-child(2) { border-bottom: 0; }
  .services-index strong { font-size: 19px; }
  .services-hero__photo { height: 220px; }
  .services-hero__caption { inset: auto 20px 20px; font-size: 10px; }
  .services-hero__caption > span:last-child { display: none; }
  .service-track__opening, .service-track--entry .service-track__opening { display: flex; flex-direction: column; gap: 34px; align-items: stretch; }
  .service-track__photo { height: 310px; }
  .service-track--entry .service-track__photo { height: 310px; }
  .service-track__content > .selection-label { margin-bottom: 23px; }
  .interior-page .service-track h2 { font-size: 67px; }
  .service-track__time { flex-direction: row; align-items: center; margin-top: 25px; }
  .interior-page .service-track__content > p:not(.selection-label) { font-size: 15px; }
  .service-track__content > .selection-button { width: 100%; }
  .route-portfolio, .entry-deliverables { margin-top: 49px; }
  .route-portfolio__heading { margin-bottom: 25px; gap: 17px; }
  .route-row { grid-template-columns: 34px 1fr; gap: 14px 18px; padding-block: 25px; }
  .route-row__letter { grid-row: 1 / 3; font-size: 31px; }
  .route-row p { grid-column: 2; }
  .track-outputs { grid-template-columns: 1fr; gap: 13px; }
  .entry-deliverables dl > div { grid-template-columns: 1fr; gap: 13px; padding-block: 22px; }
  .entry-deliverables dt { font-size: 22px; }
  .operating-capabilities__grid { grid-template-columns: 1fr; }
  .capability { padding: 0 0 45px; }
  .capability + .capability { padding: 43px 0 0; border-left: 0; border-top: 1px solid #d8d0c6; }
  .capability .selection-label { margin-bottom: 26px; }
  .interior-page .capability h2 { font-size: 46px; }
}

