/* One system: display / section / title / reading / supporting. */
:root{--body:Montserrat,Arial,sans-serif;--type-title:21px;--type-body:17px;--type-small:14px}
body{font-family:var(--body);font-size:var(--type-body);line-height:1.7}
h1{font-size:clamp(42px,5vw,68px);line-height:1.08}
h2{font-size:clamp(34px,3.5vw,46px);line-height:1.15}
h3,.why-item h3,.modes h3,.audiences h3,.project-rate h3,.expert h3{font-family:var(--body);font-size:var(--type-title);line-height:1.3;font-weight:600;letter-spacing:-.025em}
.why-item p,.modes p,.audiences p,.expert p{font-size:var(--type-body);line-height:1.7}
.experts h2,.related h2,.profile-services h2,.contact-block h2,.team-member h2{font-size:clamp(32px,3.2vw,42px)}
.eyebrow{font-size:var(--type-small);font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.lead,.hero-lead,.pagehero .lead{font-size:19px;line-height:1.65}
.hero-portrait strong{font:600 20px/1.4 var(--body);letter-spacing:-.025em}
.hero-portrait figcaption span{font-size:var(--type-small);margin-top:4px;color:var(--muted)}
.section-heading>p{max-width:56ch;margin-top:24px;margin-bottom:0}
.offer-section .section-heading{max-width:100%;display:flex;gap:60px;align-items:end;justify-content:space-between;margin-bottom:48px}
.offer-section .section-heading h2{flex:1;margin-bottom:0}.offer-section .section-heading>p{flex:1;max-width:440px;margin:0}
.service-network{display:grid;grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);grid-template-rows:repeat(3,140px);gap:8px 0;position:relative;max-width:none;margin:0;padding:0 0 16px}
.network-hub{grid-column:2;grid-row:1/4;align-self:center;justify-self:center;width:160px;text-align:center;z-index:1}
.network-hub img{width:142px;margin:auto;background:var(--paper)}.network-hub p{font-size:var(--type-small);line-height:1.5;margin:12px 0 0;background:var(--paper)}
.service-node{position:relative;display:flex;align-items:center;gap:18px;padding:24px 26px;text-decoration:none;isolation:isolate;border:2px solid var(--ink);border-radius:35% 7% 30% 6% / 9% 27% 10% 24%;background:var(--paper);transition:background-color .2s ease,border-color .2s ease}
.service-node:nth-of-type(odd){grid-column:1}.service-node:nth-of-type(even){grid-column:3}.service-node:nth-of-type(-n+2){grid-row:1}.service-node:nth-of-type(n+3):nth-of-type(-n+4){grid-row:2}.service-node:nth-of-type(n+5){grid-row:3}
.node-symbol{width:43px;flex-shrink:0}.node-symbol .service-icon{width:43px;height:43px}.node-copy{min-width:0;display:block}.node-copy strong{display:block;font:600 var(--type-title)/1.3 var(--body);letter-spacing:-.025em}.node-copy>span{display:block;font-size:var(--type-small);line-height:1.5;margin-top:7px}.service-node>.link-arrow{width:24px;margin-left:auto}
.network-wires{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--yellow);stroke-width:4;stroke-linecap:round;pointer-events:none;z-index:0}
.service-combinations{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.combination-intro{grid-column:1/-1;font-size:var(--type-small);color:var(--muted);margin:0 0 20px}
.combination{display:flex;gap:24px;align-items:center;justify-content:space-between;text-decoration:none;padding:4px 0 18px;border-bottom:0}
.combination-label{display:block;font-size:var(--type-small);line-height:1.5;margin-bottom:7px;color:var(--muted)}.combination strong{font:600 var(--type-title)/1.3 var(--body);letter-spacing:-.025em}.combination>.link-arrow{width:32px}
.service-node:hover,.service-node:focus-visible,.service-node.is-related{background:var(--yellow)}.combination:hover,.combination:focus-visible{border-color:var(--ink)}
.service-node:focus-visible{outline-offset:5px}.network-wires .is-connected{stroke:var(--ink)}
.cta-doodle{transform:none}
@media(max-width:1100px){.service-network{grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);grid-template-rows:repeat(3,148px)}.service-node{padding:20px 18px;gap:14px}.network-hub{width:120px}.network-hub img{width:110px}.node-symbol,.node-symbol .service-icon{width:36px;height:36px}.service-node>.link-arrow{display:none}}
@media(max-width:900px){.service-network{grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr)}.network-hub{width:85px}.network-hub img{width:85px}.network-hub p{font-size:12px}.node-symbol{display:none}.offer-section .section-heading{display:block}.offer-section .section-heading>p{margin-top:28px}.network-wires{display:block}.service-combinations{gap:0 30px}}
@media(max-width:600px){:root{--type-title:20px;--type-body:16px}.offer-section .section-heading{margin-bottom:30px}.service-network{display:flex;flex-direction:column;gap:13px;padding:0 0 0 24px;max-width:none;margin:0}.network-hub{width:auto;display:flex;align-items:center;gap:18px;align-self:start;text-align:left;margin-left:-17px;margin-bottom:12px}.network-hub img{width:85px;margin:0}.network-hub p{font-size:var(--type-small);margin:0}.network-wires{display:none}.service-node{min-height:110px;padding:19px 17px;gap:16px;border-radius:18% 4% 17% 4% / 8% 22% 9% 20%}.node-symbol{display:block;width:34px}.node-symbol .service-icon{width:34px;height:34px}.node-copy strong{font-size:18px}.node-copy>span{font-size:13px;margin-top:5px}.service-node>.link-arrow{display:block;width:20px}.service-combinations{grid-template-columns:1fr;gap:24px;margin-top:30px;padding-top:24px}.combination-intro{margin-bottom:0}.combination{padding-bottom:18px}.combination strong{font-size:20px}.combination-label{font-size:13px}.hero-lead,.lead,.pagehero .lead{font-size:18px}.hero-portrait strong{font-size:20px}.section-heading>p{font-size:16px}.service-node .link-arrow{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.service-node{transition:none}}
/* R2: a pen outline, with a real speech-tail; text always keeps its baseline. */
.service-node{border:0;background:none;border-radius:0;padding:24px 30px 32px;gap:18px}
.node-outline{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.node-paper{fill:var(--paper);stroke:none;transition:fill .2s ease}.node-grain{stroke-width:.65;opacity:.55}
.service-node:hover,.service-node:focus-visible,.service-node.is-related{background:none}
.service-node:is(:focus-visible,.is-related) .node-paper{fill:var(--yellow)}
@media(hover:hover) and (pointer:fine){.service-node:hover .node-paper{fill:var(--yellow)}}
.network-hub{width:180px}.network-hub img{width:158px}
.combination-intro{font-size:17px;color:var(--ink);margin-bottom:24px;font-weight:500}
.service-combinations{margin-top:24px;padding-top:26px}
.combination strong{display:block;margin-bottom:8px}.combination-label{margin:0;color:var(--muted)}
.service-guide h2{font:600 var(--type-title)/1.3 var(--body);letter-spacing:-.025em}.service-guide p{font-size:var(--type-small)}
.page-jumps{font-size:var(--type-small)}.profile-head h1,.pagehero h1{font-size:clamp(42px,5vw,68px)}
.prose>h2{font-size:clamp(30px,3vw,40px)}.prose h3{margin-top:0}.service-block{padding:28px 0}.service-block h3{margin-bottom:12px}
.footer h2{font-size:var(--type-small);text-transform:none;letter-spacing:0;font-weight:600}
@media(max-width:1100px){.network-hub{width:130px}.network-hub img{width:120px}.service-node{padding:24px 25px 32px;gap:14px}}
@media(max-width:900px){.network-hub{width:85px}.network-hub img{width:85px}}
@media(max-width:600px){.service-node{padding:24px 21px 32px;min-height:124px;gap:14px}.service-network{gap:3px}.network-hub{width:auto}.node-copy strong{font-size:18px}.node-copy>span{font-size:13px}.node-symbol,.node-symbol .service-icon{width:31px;height:31px}.service-node>.link-arrow{width:18px}.combination-intro{font-size:16px}.pagehero h1,.profile-head h1{font-size:40px}.network-hub img{width:85px}.service-node:before{top:46%}}

.node-guide{opacity:.16;stroke-width:2.4}.node-grain{stroke-width:.65;opacity:.55}
/* R4: descriptions are reading text, not tiny interface labels. */
.node-copy>span{font-size:16px;line-height:1.5}
.service-combinations{position:relative}.combination{min-height:86px}
.why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 72px}.why-item{display:flex;gap:24px}.why-item .service-icon{margin:0;width:48px;height:48px}.why-item h3{margin-bottom:12px}.why-item p{max-width:44ch}
@media(max-width:1100px){.service-network{grid-template-rows:repeat(3,166px)}.node-copy>span{font-size:15px}.service-node{padding:24px 24px 35px}.why-grid{gap:34px 40px}}
@media(max-width:600px){.node-copy>span{font-size:14px}.service-node{min-height:142px;padding:24px 21px 34px}.why-grid{grid-template-columns:1fr;gap:30px}.why-item{gap:20px}.why-item .service-icon{width:42px;height:42px}.service-combinations{margin-top:26px}}
/* R5: retain the explanatory service drawings on phones as well. */
@media(max-width:600px){.page-art:has(.story-illustration){display:block;width:210px;max-width:70%;margin:26px 0 0;justify-self:end}.page-art:has(.story-illustration) .story-illustration{width:100%}.page-jumps{gap:12px 22px}.page-jumps a{padding-block:10px}.related-links .btn{min-height:48px}.footer a{min-height:44px}.footer-bottom a{min-height:24px}}

/* R6: independent visual review — avoid a one-word orphan and place action after reasons. */
.node-copy>span{text-wrap:balance}.why-section>.wrap>.text-link{margin-top:30px}.why-section .section-heading{margin-bottom:42px}

/* Client photographs, supplied 20 October: retain the complete portraits. */
.hero-photo img{aspect-ratio:11/10;object-fit:contain}
.person-image{aspect-ratio:11/10;object-fit:contain}
.team-member .person-image{max-height:none;object-fit:contain}
.expert .person-image{object-fit:contain;border-radius:0}
.team-hero .pagehero-grid{grid-template-columns:minmax(0,1fr) 390px;align-items:center;gap:80px}
.team-photo{position:relative;isolation:isolate}.team-photo>img{width:100%;height:auto}
@media(max-width:900px){.team-hero .pagehero-grid{grid-template-columns:minmax(0,1fr) 290px;gap:40px}}
@media(max-width:700px){.team-hero .pagehero-grid{grid-template-columns:1fr;gap:36px}.team-photo{width:min(100%,390px);justify-self:center}.team-hero .pagehero-grid h1{max-width:16ch}}

/* October contrast pass: offer -> reasons -> cooperation -> invitation. */
.why-section{background:var(--ink);color:var(--paper);border:0;position:relative;--muted:#d9d9d9;padding-block:90px 96px}
.why-section .section-heading{margin-bottom:48px}
.why-section .why-item p{color:#d9d9d9}
.why-section .why-icon,.why-section .text-link{color:var(--yellow)}
.why-section .text-link{margin-top:36px}
.why-section a:focus-visible{outline-color:var(--yellow)}
@media(hover:hover) and (pointer:fine){.why-section .text-link:hover{color:var(--paper)}.why-section .text-link:hover .text-ink{stroke:var(--paper)}}
.home-cooperation{padding-block:90px}.home-cooperation .modes{padding-block:32px 0;border-top:1px solid var(--line)}
@media(max-width:700px){.why-section{padding-block:64px 70px}.why-section .section-heading{margin-bottom:38px}.home-cooperation{padding-block:64px}.photo-outline{inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px)}}

/* Mobile footer: one contact block, paired service links, a compact signature. */
@media(max-width:700px){
 .footer{padding-top:74px}
 .footer-grid{grid-template-columns:minmax(0,1fr) 94px;gap:22px 16px;padding-bottom:26px}
 .footer-grid>div:first-child{grid-column:1/-1;grid-row:1}
 .footer h2{font-size:14px;margin-bottom:10px}
 .footer p{font-size:14px;margin-bottom:4px}
 .footer a{font-size:13px;min-height:44px;display:flex;align-items:center;padding-block:8px;line-height:1.5}
 .footer .company-address{font-size:12px;line-height:1.6;margin:12px 0 0;max-width:calc(100% - 110px)}
 .footer-brand{grid-column:2;grid-row:1;align-self:end;justify-self:end;width:94px;max-width:94px;padding:0!important;margin-bottom:2px}
 .footer-about,.footer-services{grid-column:1/-1;padding-top:20px;border-top:1px solid #465059}
 .footer-about{display:flex;flex-wrap:wrap;column-gap:22px}
 .footer-about h2{flex-basis:100%;margin-bottom:2px}
 .footer-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
 .footer-services h2{grid-column:1/-1;margin-bottom:4px}
 .footer-bottom{padding-block:20px 26px;gap:6px;flex-direction:column;font-size:11px}
 .footer-bottom a{font-size:12px;min-height:44px;padding-block:8px}
}
@media(min-width:540px) and (max-width:900px){
 .footer{padding-top:80px}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;padding-bottom:28px}
 .footer-grid>div:first-child{grid-column:1;grid-row:1}
 .footer h2{font-size:14px;margin-bottom:10px}
 .footer p{font-size:14px;margin-bottom:4px}
 .footer a{font-size:13px;min-height:44px;display:flex;align-items:center;padding-block:8px;line-height:1.5}
 .footer .company-address{font-size:12px;line-height:1.6;margin:12px 0 0;max-width:none}
 .footer-about{grid-column:2;grid-row:1;display:block;align-self:start;padding-top:0;border:0}
 .footer-brand{grid-column:2;grid-row:1;align-self:end;justify-self:start;width:120px;max-width:120px;padding:0!important;margin:172px 0 0}
 .footer-services{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;padding-top:20px;border-top:1px solid #465059}
 .footer-services h2{grid-column:1/-1;margin-bottom:4px}
 .footer-bottom{padding-block:20px 26px;gap:4px 24px;flex-direction:row;flex-wrap:wrap;font-size:11px;align-items:center}
 .footer-bottom a{font-size:12px;min-height:44px;padding-block:8px}
}
