/* All desktop measurements use the 1448px reference canvas. */
:root { --u: var(--design-unit); --fine-line: #e7e7e9; --section-ink: #606572; }
.section-pad { padding-inline:var(--page-gutter); }
h2,h3,p,blockquote { margin-top:0; }
h2 { margin-bottom:0; font-size:calc(34 * var(--u)); font-weight:500; line-height:1.07; letter-spacing:-.05em; }
h2 em { font-family:var(--serif); font-size:1.04em; font-weight:500; font-style:normal; color:var(--orange); letter-spacing:-.045em; }
h3 { font-weight:500; }
.icon { display:block; flex:none; width:calc(34 * var(--u)); height:calc(34 * var(--u)); object-fit:contain; }
.button .icon { width:calc(18 * var(--u)); height:calc(18 * var(--u)); }
button.button { border:0; cursor:pointer; }
.logo-lockup { display:inline-flex; align-items:center; gap:calc(4 * var(--u)); white-space:nowrap; vertical-align:middle; }
.logo-lockup > img { width:calc(159 * var(--u)); height:auto; }
.division-name { font-family:var(--serif); font-size:calc(29 * var(--u)); font-weight:500; color:var(--orange); letter-spacing:-.045em; }
.division-name.digital { font-family:var(--sans); font-size:calc(28 * var(--u)); letter-spacing:-.045em; }
.division-gateways { display:grid; grid-template-columns:1fr 1fr; gap:calc(15 * var(--u)); padding:calc(15 * var(--u)) calc(45 * var(--u)); }
.division-card { display:grid; grid-template-columns:36.2% minmax(0,1fr); min-width:0; height:calc(261 * var(--u)); border:1px solid var(--fine-line); background:#fafafa; }
.division-card:nth-child(2) { grid-template-columns:39.5% minmax(0,1fr); }
.division-photo { display:block; min-width:0; overflow:hidden; }
.division-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.division-copy { position:relative; min-width:0; padding:calc(18 * var(--u)) calc(30 * var(--u)) calc(20 * var(--u)); }
.division-copy .eyebrow { font-size:calc(7 * var(--u)); letter-spacing:.45em; margin-bottom:calc(7 * var(--u)); }
.division-copy h2 { margin:0 0 calc(6 * var(--u)); line-height:1; }
.division-tagline { margin:0 0 calc(8 * var(--u)); font-size:calc(16 * var(--u)); font-weight:400; white-space:nowrap; }
.division-description { max-width:calc(288 * var(--u)); margin:0 0 calc(10 * var(--u)); color:var(--section-ink); font-size:calc(13.5 * var(--u)); line-height:1.33; }
.division-copy .button { position:absolute; bottom:calc(22 * var(--u)); min-width:calc(132 * var(--u)); min-height:calc(41 * var(--u)); }
.division-motto { position:absolute; right:calc(21 * var(--u)); bottom:calc(20 * var(--u)); width:calc(67 * var(--u)); font-size:calc(6.5 * var(--u)); letter-spacing:.32em; line-height:1.6; color:#637083; }
.division-motto::before { content:''; display:block; height:1px; width:calc(29 * var(--u)); margin-bottom:calc(8 * var(--u)); background:var(--orange); }
.home-difference { display:grid; grid-template-columns:36.5% 38% 25.5%; align-items:center; min-height:calc(141 * var(--u)); background:var(--surface); }
.home-difference .eyebrow { margin-bottom:calc(13 * var(--u)); }
.home-difference h2 { font-size:calc(34 * var(--u)); }
.home-difference > p { padding-right:calc(86 * var(--u)); margin:0; color:var(--section-ink); font-size:calc(13.5 * var(--u)); line-height:1.43; }
.story-trigger { display:flex; align-items:center; gap:calc(21 * var(--u)); border:0; border-left:1px solid #d9dade; min-height:calc(72 * var(--u)); padding:0 0 0 calc(89 * var(--u)); text-align:left; color:var(--navy); background:none; font-size:calc(15 * var(--u)); cursor:pointer; white-space:nowrap; }
.play-circle { display:grid; place-items:center; flex:none; width:calc(48 * var(--u)); height:calc(48 * var(--u)); border:1px solid #8b96a8; border-radius:50%; }
.play-circle .icon { width:calc(17 * var(--u)); height:calc(17 * var(--u)); }
.story-trigger small { display:block; font-size:calc(7 * var(--u)); letter-spacing:.25em; margin-top:calc(6 * var(--u)); }
.capability-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.capability { display:flex; gap:calc(23 * var(--u)); min-width:0; padding-inline:calc(32 * var(--u)); border-left:1px solid var(--fine-line); }
.capability:first-child { padding-left:0; border-left:0; }
.capability:last-child { padding-right:0; }
.capability > .icon { width:calc(42 * var(--u)); height:calc(42 * var(--u)); }
.capability h3 { margin:0 0 calc(4 * var(--u)); font-size:calc(13 * var(--u)); line-height:1.2; font-weight:600; letter-spacing:-.025em; }
.capability p { margin:0; color:#777e8b; font-size:calc(12.5 * var(--u)); line-height:1.35; }
.home-capabilities { display:flex; align-items:center; min-height:calc(90 * var(--u)); }
.home-capabilities .capability-grid { width:100%; }
.home-capabilities .capability { padding-block:calc(7 * var(--u)); gap:calc(30 * var(--u)); }
.home-capabilities .capability:first-child { padding-left:calc(8 * var(--u)); }
.home-capabilities .capability:first-child > .icon { margin-right:calc(2 * var(--u)); }

/* About */
.page-about .hero { min-height:calc(366 * var(--u)); }
.page-about .hero-copy { padding-top:calc(30 * var(--u)); padding-bottom:calc(12 * var(--u)); }
.page-about .hero-copy .eyebrow { margin-bottom:calc(6 * var(--u)); }
.page-about h1 { font-size:calc(57 * var(--u)); line-height:.98; }
.page-about h1 em { font-size:1.04em; }
.page-about .hero-description { font-size:calc(16.5 * var(--u)); line-height:1.23; margin-top:calc(12 * var(--u)); }
.page-about .microline { margin-top:calc(30 * var(--u)); }
.about-identity { min-height:calc(148 * var(--u)); display:grid; grid-template-columns:31% 36.5% 32.5%; align-items:center; }
.about-identity h2 { font-size:calc(29 * var(--u)); line-height:1.03; }
.about-identity .eyebrow { font-size:calc(7.5 * var(--u)); margin-bottom:calc(11 * var(--u)); }
.about-identity > p { border-left:1px solid var(--fine-line); border-right:1px solid var(--fine-line); padding:0 calc(33 * var(--u)); margin:0; font-size:calc(13.5 * var(--u)); line-height:1.34; color:#737d8e; }
.about-identity > div:last-child { padding-left:calc(72 * var(--u)); }
.about-difference { min-height:calc(119 * var(--u)); background:var(--surface); padding-top:calc(17 * var(--u)); }
.about-difference > .eyebrow { font-size:calc(7 * var(--u)); margin-bottom:calc(17 * var(--u)); }
.about-difference .capability { gap:calc(22 * var(--u)); }
.about-difference .capability h3 { font-size:calc(13.5 * var(--u)); }
.about-difference .capability p { font-size:calc(13 * var(--u)); }
.about-structure { display:grid; grid-template-columns:33% 67%; align-items:center; min-height:calc(169 * var(--u)); }
.about-structure h2 { font-size:calc(29 * var(--u)); line-height:1.12; }
.about-structure .eyebrow { font-size:calc(7 * var(--u)); margin-bottom:calc(10 * var(--u)); }
.structure-parent { display:flex; align-items:center; justify-content:center; gap:calc(15 * var(--u)); height:calc(45 * var(--u)); position:relative; }
.structure-parent .logo-lockup > img { width:calc(150 * var(--u)); }
.structure-parent > span:last-child { font-size:calc(7 * var(--u)); letter-spacing:.4em; font-weight:500; }
.structure-children { display:grid; grid-template-columns:1fr 1fr; gap:calc(32 * var(--u)); position:relative; padding-top:calc(17 * var(--u)); }
.structure-children::before { content:''; position:absolute; top:0; left:20%; right:25%; height:calc(17 * var(--u)); border:1px solid #c9cdd4; border-bottom:0; }
.structure-card { min-width:0; height:calc(94 * var(--u)); border:1px solid var(--fine-line); padding:calc(5 * var(--u)) calc(30 * var(--u)); }
.structure-card h3 { margin:0; }
.structure-card .logo-lockup > img { width:calc(124 * var(--u)); }
.structure-card .division-name { font-size:calc(22 * var(--u)); }
.structure-card strong { display:block; margin-left:calc(52 * var(--u)); font-size:calc(9 * var(--u)); letter-spacing:.07em; }
.structure-card p { margin:calc(6 * var(--u)) 0 0 calc(52 * var(--u)); color:#717989; font-size:calc(11.5 * var(--u)); line-height:1.3; }
.about-principles { min-height:calc(102 * var(--u)); background:var(--surface); padding-top:calc(13 * var(--u)); }
.about-principles > .eyebrow { font-size:calc(7 * var(--u)); margin-bottom:calc(12 * var(--u)); }
.about-principles .capability { gap:calc(23 * var(--u)); }

/* Divisions */
.page-divisions .hero { min-height:calc(349 * var(--u)); }
.page-divisions h1 { font-size:calc(54 * var(--u)); line-height:1.02; }
.page-divisions h1 em { font-size:1.08em; }
.page-divisions .hero-copy { padding-top:calc(35 * var(--u)); }
.page-divisions .hero-description { font-size:calc(17 * var(--u)); margin-top:calc(21 * var(--u)); }
.page-divisions .microline { margin-top:calc(26 * var(--u)); }
.divisions-gateways { padding-block:calc(14 * var(--u)); }
.divisions-gateways .division-card { height:calc(260 * var(--u)); }
.divisions-gateways .division-copy { padding-top:calc(17 * var(--u)); }
.divisions-gateways .division-description { margin-top:calc(10 * var(--u)); }
.divisions-together { display:grid; grid-template-columns:25% 34% 41%; min-height:calc(142 * var(--u)); align-items:center; padding-inline:calc(70 * var(--u)); background:var(--surface); }
.divisions-together h2 { font-size:calc(33 * var(--u)); }
.divisions-together .eyebrow { font-size:calc(7 * var(--u)); }
.divisions-together > p { margin:0; padding-right:calc(16 * var(--u)); color:#777f8f; font-size:calc(13 * var(--u)); line-height:1.33; }
.divisions-together .capability-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.divisions-together .capability { border-left:1px solid #d9dce2; padding:calc(14 * var(--u)) calc(15 * var(--u)); gap:calc(13 * var(--u)); }
.divisions-together .capability > .icon { width:calc(32 * var(--u)); height:calc(32 * var(--u)); }
.divisions-together .capability h3 { font-size:calc(10 * var(--u)); }
.divisions-together .capability p { font-size:calc(9 * var(--u)); line-height:1.4; }
.division-start { display:grid; grid-template-columns:36% 27% 37%; align-items:center; min-height:calc(122 * var(--u)); padding-inline:calc(73 * var(--u)); }
.division-start h2 { font-size:calc(29 * var(--u)); }
.division-start .eyebrow { font-size:calc(7 * var(--u)); }
.start-link { display:flex; gap:calc(38 * var(--u)); align-items:center; }
.start-link:last-child { border-left:1px solid #d9dce2; padding-left:calc(112 * var(--u)); }
.start-link > .icon { width:calc(47 * var(--u)); height:calc(47 * var(--u)); }
.start-link h3,.start-link p { margin:0 0 calc(5 * var(--u)); font-size:calc(14 * var(--u)); }
.start-link p { font-size:calc(13 * var(--u)); }
.text-link { display:inline-flex; align-items:center; gap:calc(14 * var(--u)); color:var(--orange); font-size:calc(13 * var(--u)); margin-top:calc(7 * var(--u)); }
.text-link .icon { width:calc(15 * var(--u)); height:calc(15 * var(--u)); }

/* Approach */
.page-approach { --header-height:calc(63 * var(--u)); }
.page-approach .nav-links a { padding-block:calc(21 * var(--u)); }
.page-approach .hero { min-height:calc(285 * var(--u)); grid-template-columns:44.2% 55.8%; }
.page-approach .hero-copy { padding-top:calc(32 * var(--u)); padding-bottom:calc(20 * var(--u)); }
.page-approach h1 { font-size:calc(51 * var(--u)); line-height:1.05; }
.page-approach h1 em { font-size:1.04em; }
.page-approach .hero-description { font-size:calc(16 * var(--u)); margin-top:calc(14 * var(--u)); line-height:1.33; }
.page-approach .microline { margin-top:calc(19 * var(--u)); }
.approach-process { display:grid; grid-template-columns:24% 76%; align-items:start; height:calc(182 * var(--u)); padding:calc(20 * var(--u)) calc(68 * var(--u)); background:#fafafa; border:calc(12 * var(--u)) solid white; border-left-width:calc(24 * var(--u)); border-right-width:calc(24 * var(--u)); }
.approach-process h2 { font-size:calc(36 * var(--u)); }
.approach-process .eyebrow { font-size:calc(7 * var(--u)); margin-bottom:calc(13 * var(--u)); }
.process-steps { margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; }
.process-steps li { position:relative; padding-left:calc(50 * var(--u)); border-left:1px solid var(--fine-line); min-height:calc(124 * var(--u)); }
.process-steps li:first-child { border:0; }
.process-steps .step-number { position:absolute; left:calc(1 * var(--u)); top:0; display:grid; place-items:center; width:calc(32 * var(--u)); height:calc(32 * var(--u)); border:1px solid #aab0b9; border-radius:50%; font-size:calc(11 * var(--u)); font-weight:600; }
.process-steps .icon { width:calc(32 * var(--u)); height:calc(32 * var(--u)); margin-bottom:calc(11 * var(--u)); }
.process-steps h3 { margin:0 0 calc(6 * var(--u)); font-size:calc(15 * var(--u)); }
.process-steps p { font-size:calc(12 * var(--u)); color:var(--section-ink); line-height:1.3; margin:0; }
.process-steps li::after { content:''; position:absolute; bottom:0; left:calc(50 * var(--u)); width:calc(29 * var(--u)); height:2px; background:var(--orange); }
.approach-value { min-height:calc(120 * var(--u)); display:grid; grid-template-columns:26% 74%; align-items:center; padding-inline:calc(68 * var(--u)); background:var(--surface); }
.approach-value h2 { font-size:calc(31 * var(--u)); }
.approach-value .eyebrow { font-size:calc(7 * var(--u)); }
.approach-value .capability { padding-inline:calc(29 * var(--u)); gap:calc(20 * var(--u)); }
.approach-value .capability:first-child { border-left:1px solid var(--fine-line); }
.approach-value .capability h3 { font-size:calc(12 * var(--u)); }
.approach-value .capability p { font-size:calc(12 * var(--u)); }
.approach-execution { display:grid; grid-template-columns:29% 24% 24% 23%; min-height:calc(230 * var(--u)); padding:calc(12 * var(--u)) calc(71 * var(--u)) calc(10 * var(--u)); }
.execution-intro { padding-right:calc(29 * var(--u)); }
.execution-intro .eyebrow { font-size:calc(7 * var(--u)); margin:calc(7 * var(--u)) 0 calc(8 * var(--u)); }
.execution-intro h2 { font-size:calc(31 * var(--u)); }
.execution-intro > p { color:#727989; font-size:calc(12.5 * var(--u)); line-height:1.35; margin:calc(11 * var(--u)) 0 calc(16 * var(--u)); }
.execution-micro { display:flex; align-items:center; gap:calc(10 * var(--u)); font-size:calc(6.5 * var(--u)); letter-spacing:.3em; white-space:nowrap; }
.execution-micro::before { content:''; flex:0 0 calc(47 * var(--u)); height:2px; background:var(--orange); }
.execution-card { border-left:1px solid var(--fine-line); padding:calc(6 * var(--u)) calc(12 * var(--u)); min-width:0; }
.execution-card picture { display:block; height:calc(94 * var(--u)); }
.execution-card picture img { width:100%; height:100%; object-fit:cover; }
.execution-card h3 { margin:calc(4 * var(--u)) 0 calc(2 * var(--u)); }
.execution-card .logo-lockup > img { width:calc(126 * var(--u)); }
.execution-card .division-name { font-size:calc(21 * var(--u)); }
.execution-card p { padding-left:calc(40 * var(--u)); color:#737c8b; font-size:calc(12 * var(--u)); line-height:1.26; margin:0; max-width:calc(250 * var(--u)); }
.execution-card > a { display:flex; align-items:center; gap:calc(9 * var(--u)); margin:calc(5 * var(--u)) 0 0 calc(40 * var(--u)); font-size:calc(11.5 * var(--u)); font-weight:600; }
.execution-card > a .icon { width:calc(13 * var(--u)); height:calc(13 * var(--u)); }
.approach-execution blockquote { background:var(--surface); margin:0 0 0 calc(15 * var(--u)); padding:calc(16 * var(--u)) calc(27 * var(--u)); }
.approach-execution blockquote > .icon { width:calc(24 * var(--u)); height:calc(24 * var(--u)); }
.approach-execution blockquote p { font-family:var(--serif); font-size:calc(19 * var(--u)); font-style:italic; line-height:1.28; margin:calc(7 * var(--u)) 0 calc(15 * var(--u)) calc(20 * var(--u)); white-space:nowrap; }
.approach-execution cite { display:block; margin-left:calc(20 * var(--u)); font-style:normal; font-size:calc(6.5 * var(--u)); letter-spacing:.35em; white-space:nowrap; }
.approach-execution cite::before { content:''; display:block; width:calc(40 * var(--u)); height:2px; background:var(--orange); margin-bottom:calc(12 * var(--u)); }
.approach-cta { min-height:calc(87 * var(--u)); display:grid; grid-template-columns:37% 42% 21%; align-items:center; padding-inline:calc(74 * var(--u)); background:var(--surface); }
.approach-cta h2 { font-size:calc(33 * var(--u)); }
.approach-cta .eyebrow { font-size:calc(7 * var(--u)); }
.approach-cta > p { font-size:calc(12.5 * var(--u)); line-height:1.35; border-left:1px solid var(--fine-line); padding-left:calc(30 * var(--u)); margin:0; color:#707783; }
.approach-cta .button { min-height:calc(48 * var(--u)); justify-self:end; width:calc(225 * var(--u)); }

/* Contact */
.page-contact .hero { min-height:calc(332 * var(--u)); grid-template-columns:43.8% 56.2%; }
.page-contact .hero-copy { padding-top:calc(30 * var(--u)); padding-bottom:calc(15 * var(--u)); }
.page-contact h1 { font-size:calc(64 * var(--u)); line-height:1.01; }
.page-contact h1 em { font-size:1.01em; }
.page-contact .hero-description { font-size:calc(16.5 * var(--u)); line-height:1.28; margin-top:calc(17 * var(--u)); }
.page-contact .microline { margin-top:calc(24 * var(--u)); }
.contact-gateways { padding:calc(15 * var(--u)) calc(48 * var(--u)) calc(19 * var(--u)); }
.contact-gateways .division-card { height:calc(210 * var(--u)); }
.contact-gateways .division-copy { padding-top:calc(15 * var(--u)); }
.contact-gateways .division-copy .eyebrow { font-size:calc(6.5 * var(--u)); letter-spacing:.35em; }
.contact-gateways .division-copy h2 { margin-bottom:calc(10 * var(--u)); }
.contact-gateways .division-description { font-size:calc(13.5 * var(--u)); max-width:calc(304 * var(--u)); }
.contact-gateways .division-copy .button { bottom:calc(16 * var(--u)); min-height:calc(38 * var(--u)); }
.contact-gateways .division-motto { bottom:calc(16 * var(--u)); }
.contact-enquiry { min-height:calc(276 * var(--u)); display:grid; grid-template-columns:26.5% 43% 30.5%; padding:calc(7 * var(--u)) calc(72 * var(--u)) calc(15 * var(--u)); }
.contact-enquiry > div { padding-right:calc(35 * var(--u)); }
.contact-enquiry > div > .eyebrow { font-size:calc(7 * var(--u)); margin:calc(6 * var(--u)) 0 calc(15 * var(--u)); }
.contact-enquiry h2 { font-size:calc(43 * var(--u)); line-height:1.0; }
.contact-enquiry > div > p:not(.eyebrow) { font-size:calc(14 * var(--u)); line-height:1.32; color:#7b8190; margin:calc(26 * var(--u)) 0 0; }
#enquiry-form { padding-right:calc(30 * var(--u)); min-width:0; scroll-margin-top:24px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:calc(15 * var(--u)) calc(22 * var(--u)); }
.form-grid label { display:block; font-size:calc(10 * var(--u)); color:#35435e; }
input,select,textarea { display:block; width:100%; min-width:0; font:inherit; color:var(--navy); background:#fff; border:1px solid #d8dce3; border-radius:2px; padding:calc(7 * var(--u)) calc(12 * var(--u)); margin-top:calc(4 * var(--u)); font-size:calc(11 * var(--u)); }
input,select { height:calc(32 * var(--u)); }
input::placeholder,textarea::placeholder { color:#9b9fac; opacity:1; }
textarea { height:calc(61 * var(--u)); resize:vertical; }
input:focus,select:focus,textarea:focus { outline:2px solid var(--orange); outline-offset:2px; }
.message-field { grid-column:1 / -1; }
.form-actions { display:flex; align-items:center; gap:calc(15 * var(--u)); margin-top:calc(6 * var(--u)); }
.form-actions .button { min-height:calc(38 * var(--u)); }
.form-actions small { color:#7a808d; font-size:calc(9 * var(--u)); }
.form-status { font-size:14px; padding-top:10px; line-height:1.4; }
.form-status a { text-decoration:underline; text-underline-offset:3px; }
.contact-routing { border-left:1px solid var(--fine-line); padding-left:calc(43 * var(--u)); }
.contact-routing > .eyebrow { font-size:calc(7 * var(--u)); margin-bottom:calc(14 * var(--u)); }
.contact-routing .capability-grid { display:flex; flex-direction:column; gap:calc(24 * var(--u)); }
.contact-routing .capability { border:0; padding:0; gap:calc(28 * var(--u)); }
.contact-routing .capability > .icon { width:calc(38 * var(--u)); height:calc(38 * var(--u)); }
.contact-routing .capability h3 { font-size:calc(13 * var(--u)); }
.contact-routing .capability p { font-size:calc(11.5 * var(--u)); }
.contact-help { min-height:calc(86 * var(--u)); display:grid; grid-template-columns:23% 26% 25% 26%; align-items:center; padding-inline:calc(68 * var(--u)); background:var(--surface); }
.contact-help .eyebrow { font-size:calc(7 * var(--u)); }
.contact-help h2 { font-size:calc(31 * var(--u)); }
.contact-help > a { display:flex; align-items:center; gap:calc(23 * var(--u)); border-left:1px solid #d9dce2; padding-left:calc(30 * var(--u)); }
.contact-help > a > .icon { width:calc(34 * var(--u)); height:calc(34 * var(--u)); }
.contact-help > a > .icon:last-child { width:calc(15 * var(--u)); height:calc(15 * var(--u)); margin-left:auto; margin-right:calc(28 * var(--u)); }
.contact-help strong { font-size:calc(11 * var(--u)); font-weight:500; }
.contact-help small { display:block; font-size:calc(11 * var(--u)); color:#7b8391; line-height:1.3; }

/* Shared footer and accessible dialogs. Original logo rendered in white for contrast. */
.site-footer { min-height:calc(86 * var(--u)); background:#1b3043; color:#e4e9ee; display:grid; grid-template-columns:35% 33% 11% 21%; grid-template-rows:auto auto; align-content:center; align-items:center; row-gap:calc(8 * var(--u)); }
.footer-brand .logo-lockup > img { width:calc(145 * var(--u)); filter:brightness(0) invert(1); }
.site-footer nav { display:flex; align-items:center; gap:calc(25 * var(--u)); font-size:calc(11 * var(--u)); }
.site-footer nav a:hover,.footer-legal a:hover,.footer-legal button:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-social { display:flex; gap:calc(17 * var(--u)); justify-content:flex-end; padding-right:calc(21 * var(--u)); }
.footer-social .icon { width:calc(14 * var(--u)); height:calc(14 * var(--u)); filter:invert(1); }
.footer-line { border-left:1px solid #91a0ad; padding-left:calc(23 * var(--u)); margin:0; font-size:calc(7 * var(--u)); letter-spacing:.33em; white-space:nowrap; }
.copyright { grid-column:1 / 3; font-size:calc(9 * var(--u)); letter-spacing:.015em; color:#bec8d1; }
.footer-legal { grid-column:3 / 5; justify-self:end; display:flex; align-items:center; gap:calc(10 * var(--u)); color:#c6cfd8; font-size:calc(8 * var(--u)); }
.footer-legal button { border:0; padding:0; background:none; color:inherit; cursor:pointer; font:inherit; }
.page-about .site-footer { min-height:calc(76 * var(--u)); }
.page-divisions .site-footer { min-height:calc(79 * var(--u)); }
.page-approach .site-footer { min-height:calc(81 * var(--u)); }
.compact-footer { min-height:calc(43 * var(--u)); grid-template-columns:11% 24% 31% 12% 22%; grid-template-rows:auto; column-gap:0; padding-inline:calc(46 * var(--u)); }
.compact-footer .footer-brand { grid-column:1; grid-row:1; }
.compact-footer .footer-brand .logo-lockup > img { width:calc(113 * var(--u)); }
.compact-footer .copyright { grid-column:2; grid-row:1; font-size:calc(8 * var(--u)); }
.compact-footer nav { grid-column:3; grid-row:1; }
.compact-footer .footer-social { grid-column:4; grid-row:1; }
.compact-footer .footer-line { grid-column:5; grid-row:1; padding-bottom:calc(12 * var(--u)); font-size:calc(6 * var(--u)); }
.compact-footer .footer-legal { grid-column:5; grid-row:1; align-self:end; font-size:calc(7 * var(--u)); margin-bottom:calc(4 * var(--u)); }
dialog { border:0; padding:0; max-width:calc(100vw - 40px); color:var(--navy); box-shadow:0 18px 80px #0005; }
dialog::backdrop { background:#071d3ab3; }
.dialog-close { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:42px; height:42px; background:white; color:var(--navy); border:1px solid #e0e3e8; cursor:pointer; z-index:1; }
.dialog-close .icon { width:20px; height:20px; }
.story-dialog { width:1000px; }
.story-dialog[open] { display:grid; grid-template-columns:1fr 1fr; }
.story-dialog .founder-photo { width:100%; height:100%; object-fit:cover; }
.story-dialog > div { padding:64px 38px 42px; }
.story-dialog h2 { font-size:32px; }
.story-dialog p:not(.eyebrow) { font-size:16px; line-height:1.5; color:#667082; margin-top:24px; }
.text-dialog { width:600px; padding:56px 36px 30px; }
.text-dialog h2 { font-size:30px; margin-bottom:24px; }
.text-dialog p { font-size:16px; line-height:1.6; }
.text-dialog a { text-decoration:underline; }

@media(max-width:1200px) {
  .division-tagline { font-size:14px; }
  .division-copy { padding-inline:18px; }
  .division-name { font-size:24px; }
  .division-name.digital { font-size:23px; }
  .logo-lockup > img { width:125px; }
  .division-description { font-size:12px; }
  .division-motto { display:none; }
  .home-difference > p { padding-right:26px; }
  .story-trigger { padding-left:24px; }
  .capability { gap:16px; padding-inline:20px; }
  .capability h3 { font-size:12px; }
  .capability p { font-size:11px; }
  .about-identity > div:last-child { padding-left:30px; }
  .page-about .hero-description,.page-divisions .hero-description,.page-approach .hero-description,.page-contact .hero-description { font-size:14px; }
  .page-about .hero-description > span,.page-divisions .hero-description > span,.page-approach .hero-description > span,.page-contact .hero-description > span { display:inline; }
  .page-approach h1 { font-size:calc(48 * var(--u)); }
  .page-contact h1 { font-size:calc(60 * var(--u)); }
  .page-divisions h1 { font-size:calc(51 * var(--u)); }
  .divisions-together { grid-template-columns:25% 30% 45%; }
  .divisions-together .capability { padding-inline:9px; gap:9px; }
  .start-link:last-child { padding-left:45px; }
  .contact-enquiry { padding-inline:35px; grid-template-columns:25% 43% 32%; }
  .contact-routing { padding-left:20px; }
  .contact-routing .capability { gap:15px; }
  .approach-value .capability { padding-inline:14px; gap:12px; }
  .approach-execution blockquote { padding-inline:12px; }
  .site-footer nav { gap:17px; }
}

@media(max-width:960px) {
  .page-about h1 { font-size:38px; }
  .page-divisions h1 { font-size:34px; }
  .page-approach h1 { font-size:33px; }
  .page-contact h1 { font-size:38px; }
  .page-about .hero,.page-divisions .hero,.page-approach .hero,.page-contact .hero { min-height:340px; }
  .page-about .hero-copy,.page-divisions .hero-copy,.page-approach .hero-copy,.page-contact .hero-copy { padding-top:30px; padding-bottom:28px; }
  .page-about .microline,.page-contact .microline { margin-top:22px; }
  .division-gateways { grid-template-columns:1fr; padding:20px 30px; gap:18px; }
  .division-card,.divisions-gateways .division-card,.contact-gateways .division-card { height:250px; grid-template-columns:36% 64%; }
  .division-card:nth-child(2) { grid-template-columns:36% 64%; }
  .division-copy { padding:22px 28px; }
  .division-copy .eyebrow { font-size:8px; }
  .division-copy .logo-lockup > img { width:165px; }
  .division-name,.division-name.digital { font-size:28px; }
  .division-tagline { font-size:16px; margin-top:8px; }
  .division-description,.contact-gateways .division-description { font-size:14px; max-width:330px; }
  .division-copy .button,.contact-gateways .division-copy .button { bottom:20px; min-height:40px; }
  .home-difference { grid-template-columns:1fr 1fr; gap:24px; padding-block:30px; }
  .home-difference h2 { font-size:30px; }
  .home-difference > p { font-size:14px; padding:0; }
  .story-trigger { grid-column:1 / -1; border-left:0; padding:0; min-height:48px; }
  .story-trigger small { font-size:8px; }
  .capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 0; }
  .capability:nth-child(3) { border-left:0; padding-left:0; }
  .capability h3 { font-size:14px; }
  .capability p { font-size:13px; }
  .home-capabilities,.about-difference,.about-principles { padding-block:28px; }
  .about-identity { padding-block:28px; grid-template-columns:1fr 1fr; gap:24px; }
  .about-identity > p { border-right:0; font-size:14px; }
  .about-identity > div:last-child { grid-column:1 / -1; padding-left:0; }
  .about-identity h2 { font-size:27px; }
  .about-structure { grid-template-columns:1fr; gap:25px; padding-block:30px; }
  .about-structure h2 br { display:none; }
  .structure-parent > span:last-child { font-size:7px; }
  .structure-card { height:110px; padding:10px 14px; }
  .structure-card p { font-size:12px; margin-left:30px; }
  .structure-card strong { margin-left:30px; font-size:9px; }
  .divisions-together { grid-template-columns:1fr 1fr; gap:24px; padding:30px; }
  .divisions-together > p { font-size:14px; }
  .divisions-together .capability-grid { grid-column:1 / -1; }
  .divisions-together .capability { padding:15px; }
  .divisions-together .capability h3 { font-size:12px; }
  .divisions-together .capability p { font-size:12px; }
  .division-start { grid-template-columns:1fr 1fr; gap:28px; padding:30px; }
  .division-start > div:first-child { grid-column:1 / -1; }
  .start-link:last-child { padding-left:25px; }
  .start-link { gap:20px; }
  .start-link h3,.start-link p,.text-link { font-size:14px; }
  .approach-process { height:auto; grid-template-columns:1fr; gap:25px; padding:25px; }
  .process-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 15px; }
  .process-steps li { min-height:145px; padding-left:42px; }
  .process-steps h3 { font-size:16px; }
  .process-steps p { font-size:13px; }
  .approach-value { grid-template-columns:1fr; gap:25px; padding:30px; }
  .approach-value .capability h3,.approach-value .capability p { font-size:13px; }
  .approach-value .capability:first-child { border-left:0; padding-left:0; }
  .approach-execution { grid-template-columns:1fr 1fr; gap:24px; padding:30px; }
  .execution-intro { grid-column:1 / -1; }
  .execution-intro > p { font-size:14px; max-width:580px; }
  .execution-card picture { height:120px; }
  .execution-card p { font-size:13px; max-width:none; padding-left:0; }
  .execution-card > a { font-size:13px; margin-left:0; }
  .approach-execution blockquote { grid-column:1 / -1; padding:25px; margin:0; }
  .approach-execution blockquote p { font-size:22px; }
  .approach-cta { grid-template-columns:1fr 1fr; gap:20px; padding:25px 30px; }
  .approach-cta > p { font-size:13px; }
  .approach-cta .button { justify-self:start; grid-column:1 / -1; min-height:44px; width:220px; }
  .contact-enquiry { grid-template-columns:1fr 1.4fr; gap:25px; padding:30px; }
  .contact-enquiry h2 { font-size:35px; }
  .contact-enquiry > div > p:not(.eyebrow) { font-size:14px; }
  .contact-routing { grid-column:1 / -1; padding:25px 0 0; border-left:0; border-top:1px solid var(--fine-line); }
  .contact-routing .capability-grid { flex-direction:row; }
  .contact-routing .capability { flex:1; }
  .contact-routing .capability h3,.contact-routing .capability p { font-size:12px; }
  #enquiry-form { padding-right:0; }
  .form-grid label { font-size:12px; }
  input,select,textarea { font-size:14px; padding:10px; }
  input,select { height:40px; }
  textarea { height:90px; }
  .form-actions small { font-size:10px; }
  .form-actions .button { min-height:40px; }
  .contact-help { grid-template-columns:1fr; gap:22px; padding:25px 30px; }
  .contact-help > a { border:0; padding:0; }
  .contact-help strong,.contact-help small { font-size:13px; }
  .site-footer,.compact-footer { display:flex; flex-wrap:wrap; gap:20px; padding:24px 30px; }
  .site-footer nav { font-size:12px; gap:20px; }
  .footer-brand { margin-right:auto; }
  .footer-social { margin-left:auto; }
  .footer-line { font-size:7px; }
  .copyright { font-size:10px; }
  .footer-legal { margin-left:auto; font-size:10px; }
  .compact-footer .footer-line,.compact-footer .footer-legal { font-size:9px; padding:0; margin:0; }
}

@media(max-width:700px) {
  .page-approach { --header-height:70px; }
  .page-about .hero,.page-divisions .hero,.page-approach .hero,.page-contact .hero { min-height:0; }
  .page-about .hero-copy,.page-divisions .hero-copy,.page-approach .hero-copy,.page-contact .hero-copy { padding:38px 24px; }
  .page-about h1 { font-size:clamp(31px,7.8vw,51px); line-height:1.06; }
  .page-divisions h1 { font-size:clamp(28px,6.9vw,48px); line-height:1.1; }
  .page-approach h1 { font-size:clamp(27px,6.5vw,47px); line-height:1.12; }
  .page-contact h1 { font-size:clamp(33px,8vw,54px); line-height:1.06; }
  .page-about .hero-description,.page-divisions .hero-description,.page-approach .hero-description,.page-contact .hero-description { font-size:16px; line-height:1.5; margin-top:22px; }
  .page-about .microline,.page-divisions .microline,.page-approach .microline,.page-contact .microline { margin-top:26px; }
  .division-gateways { padding:20px 18px; }
  .division-card,.divisions-gateways .division-card,.contact-gateways .division-card,.division-card:nth-child(2) { height:auto; display:flex; flex-direction:column; }
  .division-photo { height:210px; }
  .division-photo img { object-position:center 56%; }
  .division-copy { min-height:260px; padding:24px; }
  .division-copy .logo-lockup > img { width:160px; }
  .division-tagline { font-size:14px; white-space:normal; }
  .division-description,.contact-gateways .division-description { font-size:14px; max-width:none; margin-top:12px; margin-bottom:65px; }
  .division-copy .button,.contact-gateways .division-copy .button { bottom:24px; }
  .contact-gateways .division-copy { padding:24px; min-height:240px; }
  .contact-gateways .division-copy .eyebrow { font-size:7px; }
  .home-difference { grid-template-columns:1fr; gap:20px; padding-block:30px; }
  .home-difference h2 { font-size:29px; }
  .capability-grid { grid-template-columns:1fr; gap:25px; }
  .capability,.capability:first-child,.home-capabilities .capability:first-child { padding:0; border:0; }
  .capability > .icon { width:38px; height:38px; }
  .home-capabilities .capability { gap:25px; }
  .story-trigger { font-size:16px; }
  .play-circle { width:46px; height:46px; }
  .about-identity { grid-template-columns:1fr; }
  .about-identity > p { border:0; padding:0; }
  .about-identity h2 { font-size:28px; }
  .about-structure h2 { font-size:28px; }
  .about-structure h2 br { display:initial; }
  .structure-parent { flex-direction:column; gap:8px; height:auto; padding-bottom:20px; }
  .structure-parent .logo-lockup > img { width:180px; }
  .structure-children { grid-template-columns:1fr; gap:15px; padding-top:0; }
  .structure-children::before { display:none; }
  .structure-card { height:auto; padding:16px; }
  .structure-card .logo-lockup > img { width:145px; }
  .structure-card p { font-size:13px; margin-top:8px; }
  .structure-card strong { font-size:10px; }
  .divisions-together { grid-template-columns:1fr; padding:30px 24px; }
  .divisions-together .capability-grid { grid-template-columns:1fr; }
  .divisions-together .capability { padding:0; border:0; gap:18px; }
  .divisions-together .capability h3 { font-size:14px; }
  .divisions-together .capability p { font-size:13px; }
  .division-start { grid-template-columns:1fr; padding:30px 24px; }
  .start-link:last-child { border:0; padding:0; }
  .start-link > .icon { width:40px; height:40px; }
  .process-steps { grid-template-columns:1fr; gap:25px; }
  .process-steps li { border:0; padding-left:50px; }
  .process-steps h3 { font-size:18px; }
  .process-steps p { font-size:15px; }
  .process-steps .step-number { width:32px; height:32px; font-size:12px; }
  .process-steps .icon { width:32px; height:32px; }
  .approach-process { border-width:12px; padding:24px 12px; }
  .approach-value,.approach-execution,.approach-cta { padding:30px 24px; grid-template-columns:1fr; }
  .approach-value h2 { font-size:29px; }
  .approach-value .capability { padding:0; border:0; gap:20px; }
  .execution-card { padding:0; border:0; }
  .execution-card picture { height:150px; }
  .execution-card .logo-lockup > img { width:160px; }
  .execution-card h3 { margin-top:12px; }
  .execution-card p { font-size:15px; margin-top:10px; }
  .execution-card > a { font-size:14px; margin-top:12px; }
  .approach-execution blockquote p { font-size:20px; white-space:normal; }
  .approach-cta > p { border:0; padding:0; font-size:14px; }
  .contact-enquiry { grid-template-columns:1fr; padding:30px 24px; }
  .contact-enquiry > div { padding:0; }
  .contact-enquiry > div > p:not(.eyebrow) { margin-top:20px; }
  .form-grid { gap:18px 14px; }
  input,select,textarea { font-size:16px; }
  textarea { height:120px; }
  .contact-routing .capability-grid { flex-direction:column; gap:26px; }
  .contact-routing .capability h3 { font-size:14px; }
  .contact-routing .capability p { font-size:13px; }
  .contact-help { padding:30px 24px; }
  .site-footer,.compact-footer { padding:25px 24px; gap:20px; }
  .footer-brand .logo-lockup > img { width:150px; }
  .site-footer nav { width:100%; justify-content:space-between; gap:12px; }
  .footer-social { margin-left:0; padding-right:0; }
  .footer-social .icon { width:16px; height:16px; }
  .footer-line { font-size:6px; }
  .copyright { width:100%; font-size:10px; }
  .footer-legal { margin:0; font-size:10px; }
  .story-dialog[open] { display:block; }
  .story-dialog .founder-photo { height:250px; object-position:center 38%; }
  .story-dialog > div { padding:30px 24px; }
  .story-dialog h2 { font-size:27px; }
  .text-dialog { padding:60px 24px 24px; }
}

/* Editorial audit: visible founder story, readable copy and honest contact actions. */
.founder-section { display:grid; grid-template-columns:minmax(0,44%) minmax(0,1fr); gap:clamp(30px,5vw,85px); padding-block:64px; background:#f7f5f1; scroll-margin-top:24px; align-items:center; }
.founder-portrait { margin:0; }
.founder-portrait img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; }
.founder-portrait figcaption { padding-top:17px; font-size:10px; letter-spacing:.25em; color:#48556a; }
.founder-copy h2 { font-size:clamp(34px,3.1vw,52px); line-height:1.08; }
.founder-copy p:not(.eyebrow) { font-size:16px; line-height:1.65; color:#536071; margin:18px 0; max-width:680px; }
.founder-copy .founder-lead { color:var(--navy); font-size:20px; line-height:1.45; }
.founder-copy .text-link { display:inline-flex; align-items:center; gap:14px; color:var(--navy); font-size:14px; padding-block:10px; border-bottom:1px solid var(--orange); }
.founder-copy .text-link .icon { width:20px; height:20px; }
.story-trigger { text-decoration:none; }
.contact-routing a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.form-actions { flex-wrap:wrap; }
input::placeholder,textarea::placeholder { color:#687386; }
.form-actions small { color:#536071; }
@media(max-width:960px) { .founder-section { gap:30px; padding-block:40px; align-items:start; } .founder-copy p:not(.eyebrow) { font-size:15px; } }
@media(max-width:700px) { .founder-section { grid-template-columns:1fr; padding:32px 24px; } .founder-copy h2 { font-size:34px; } .founder-copy p:not(.eyebrow) { font-size:16px; } .founder-portrait figcaption { font-size:10px; } .form-grid { grid-template-columns:1fr; } }

/* Distinct page heroes, with subject-aware crops. */
.page-home .hero-visual img { object-position:50% 50%; }
.page-about .hero-visual img { object-position:50% 0%; }
.page-divisions .hero-visual img { object-position:50% 58%; }
.page-approach .hero-visual img { object-position:50% 50%; }
.page-contact .hero-visual img { object-position:50% 58%; }
.division-tagline { font-size:calc(14 * var(--u)); white-space:normal; }
@media(max-width:960px) { .division-tagline { font-size:14px; } }
@media(max-width:700px) { .page-about .hero-visual img { object-position:50% 20%; } .division-tagline { font-size:13px; } }

/* Division identities: parent logo stays unchanged; subset carries division brand. */
.brand-works { --division-primary:#24584a; --division-surface:#f2f0e9; --division-ink:#193b32; }
.brand-digital { --division-primary:#5145a6; --division-surface:#f3f1fc; --division-ink:#302565; }
.division-lockup { flex-direction:column; align-items:flex-start; gap:0; }
.division-subset { display:flex; flex-direction:column; border-top:1px solid var(--division-primary); margin:3px 0 0 5px; padding-top:4px; }
.division-lockup .division-name { color:var(--division-primary); font-size:calc(27 * var(--u)); letter-spacing:-.025em; line-height:1.1; }
.division-lockup .division-name.digital { font-family:var(--sans); font-weight:600; }
.division-descriptor { color:var(--division-primary); font:600 calc(6.5 * var(--u))/1.5 var(--sans); letter-spacing:.12em; margin-top:5px; }
.division-card { background:var(--division-surface); border-top:3px solid var(--division-primary); height:auto; min-height:calc(300 * var(--u)); }
.division-card .button { background:var(--division-primary); }
.division-card .button:hover { background:var(--division-ink); }
.division-card .division-description { margin-top:calc(12 * var(--u)); margin-bottom:calc(65 * var(--u)); }
.division-card .division-motto::before { background:var(--division-primary); }
.divisions-gateways .division-card,.contact-gateways .division-card { height:auto; min-height:calc(300 * var(--u)); }
.structure-card:has(.brand-works),.execution-card:has(.brand-works) { border-top:3px solid #24584a; }
.structure-card:has(.brand-digital),.execution-card:has(.brand-digital) { border-top:3px solid #5145a6; }
.page-home h1 { font-size:calc(49 * var(--u)); line-height:1.12; }
.page-home .hero-description { max-width:490px; font-size:calc(16 * var(--u)); line-height:1.45; }
@media(max-width:960px) { .division-lockup .division-name { font-size:25px; } .division-descriptor { font-size:7px; } .division-card { min-height:300px; } }
@media(max-width:700px) { .page-home h1 { font-size:clamp(31px,7.5vw,48px); } .page-home .hero-description { font-size:16px; } .division-copy { min-height:300px; } .division-lockup .division-name { font-size:28px; } .division-descriptor { font-size:8px; } }

/* Homepage copy: preserve the existing sections while allowing longer text to flow. */
.page-home .headline-line { white-space:normal; }
.page-home .hero-copy > .button { margin-top:20px; }
.page-home .home-difference { padding-block:40px; gap:28px; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,.85fr); align-items:start; }
.home-approach-copy p,.home-founder p,.home-contact p { color:var(--section-ink); font-size:15px; line-height:1.6; margin:0 0 16px; }
.home-founder h3 { margin:0 0 14px; font-size:20px; line-height:1.3; }
.home-founder .text-link { display:inline-flex; align-items:center; gap:10px; font-size:14px; }
.home-founder .text-link .icon { width:20px; height:20px; }
.page-home .home-capabilities { padding-block:32px; }
.home-capabilities strong { display:block; margin-bottom:8px; }
.home-contact { background:var(--surface); padding-block:40px; }
.home-contact h2 { margin-bottom:20px; }
.home-contact p { max-width:850px; }
.home-contact p a { text-decoration:underline; text-underline-offset:3px; }
.home-contact-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.page-home .site-footer { padding-block:24px; }
.footer-positioning { grid-column:1; grid-row:2; max-width:340px; padding-right:24px; margin:4px 0 12px; font-size:13px; line-height:1.5; }
.footer-positioning strong { display:block; margin-top:8px; font-weight:500; }
.page-home .copyright { grid-row:3; }
.page-home .footer-legal { grid-row:3; }
@media(max-width:960px) {
 .page-home .home-difference { grid-template-columns:1fr 1fr; }
 .home-founder { grid-column:1 / -1; max-width:650px; }
}
@media(max-width:700px) {
 .page-home .home-difference { grid-template-columns:1fr; padding-block:32px; }
 .home-founder { grid-column:auto; }
 .page-home h1 { font-size:clamp(29px,6.5vw,44px); }
 .home-contact { padding-block:32px; }
 .footer-positioning { flex-basis:100%; padding:0; max-width:100%; }
}
