/* /contact-map.css */
.contact-map{grid-column:1/-1;margin-top:0;width:100%;min-width:0;color:#fff;background:#012060;overflow:hidden;--map-x:57.25%;--map-y:26.46%}
.contact-map__stage{position:relative;isolation:isolate;aspect-ratio:2;min-height:430px;background:radial-gradient(ellipse at var(--map-x) var(--map-y),#074cad 0%,#052d70 29%,#012060 64%,#041938 100%);overflow:hidden}
.contact-map__stage:after{content:'';position:absolute;z-index:0;inset:0;pointer-events:none;background:linear-gradient(90deg,#031a47a6,transparent 35%),linear-gradient(0deg,#031b46bd,transparent 22%);box-shadow:inset 0 0 110px #00133040}
.contact-map__svg{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.contact-map__grid{stroke:#448bcc;stroke-opacity:.14;stroke-width:.6}
.contact-map__land{fill:url(#contact-map-land);stroke:#4385cf;stroke-width:.6;stroke-opacity:.58}
.contact-map__texture{fill:url(#contact-map-dots);stroke:none}
.contact-map__origin-glow{pointer-events:none}
.contact-map__readout{position:absolute;top:clamp(26px,3.3vw,54px);left:clamp(24px,3.4vw,54px);z-index:1;display:flex;flex-direction:column;pointer-events:none;max-width:48%}
.contact-map__eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.3;letter-spacing:.12em;color:#9cc7f4;margin-bottom:15px}
.contact-map__readout-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#76e3ff;box-shadow:0 0 14px #2fb6ff}
.contact-map__active-city{font-family:Haas,Arial,sans-serif;font-size:clamp(38px,5.1vw,84px);line-height:1;letter-spacing:var(--headline-letter-spacing);min-height:1em;color:#fff}
.contact-map__place{display:flex;flex-wrap:wrap;align-items:center;gap:10px 15px;margin-top:17px;font-size:13px;line-height:1.4;color:#c9e3ff}
.contact-map__coordinate{font-size:10px;letter-spacing:.035em;color:#82b6e8}
.contact-map__count{position:absolute;z-index:1;right:clamp(24px,3.4vw,54px);top:clamp(25px,3vw,48px);display:flex;align-items:center;gap:16px;pointer-events:none}
.contact-map__count>span:first-child{font-family:Haas,Arial,sans-serif;font-size:clamp(50px,5.8vw,90px);font-weight:400;letter-spacing:-.065em;line-height:1;color:transparent;-webkit-text-stroke:1px #6ca8df75}
.contact-map__count>span:last-child{font-size:9px;letter-spacing:.13em;line-height:1.8;color:#9dbfe5}
.contact-map__routes{pointer-events:none}
.contact-map__routes path{fill:none;stroke-linecap:round}
.contact-map__route-glow{stroke:#14a2ff;stroke-width:7;opacity:.42;filter:url(#contact-map-soft-glow)}
.contact-map__route-base{stroke:#128aff;stroke-width:1.15;opacity:.65}
.contact-map__route-beam{stroke:#7be4ff;stroke-width:1.25;opacity:.92}
.contact-map__traveler{fill:#fff;stroke:#5fdeff;stroke-width:1.3}
.contact-map__traveler-glow{fill:#39baff;opacity:.78;filter:url(#contact-map-pin-glow)}
.contact-map__pin{cursor:pointer}
.contact-map__pin-hit{fill:transparent;stroke:none;pointer-events:all}
.contact-map__dot{fill:#b1e5ff;stroke:#0b4b8c;stroke-width:1.5;transition:fill .2s,stroke .2s}
.contact-map__pin-light{fill:#149aff;filter:url(#contact-map-pin-glow);opacity:.2;pointer-events:none}
.contact-map__pin-ring{fill:none;stroke:#70d9ff;stroke-width:.7;opacity:.38;pointer-events:none}
.contact-map__halo{fill:none;stroke:#51c6ff;stroke-width:1;opacity:0;transform-origin:center;transform-box:fill-box;pointer-events:none}
.contact-map__pin.is-selected .contact-map__dot{fill:white;stroke:#7ff2ff;stroke-width:2;r:5.5}
.contact-map__pin.is-selected .contact-map__pin-light{opacity:.9}
.contact-map__pin.is-selected .contact-map__pin-ring{opacity:1;stroke:#d4f7ff;stroke-width:1.2;r:14}
.contact-map__pin.is-selected .contact-map__halo{opacity:.55}
.contact-map__stage-foot{position:absolute;z-index:1;bottom:clamp(18px,2.4vw,38px);left:clamp(24px,3.4vw,54px);right:clamp(24px,3.4vw,54px);display:flex;justify-content:space-between;align-items:center;gap:20px}
.contact-map__stage-note{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.1em;line-height:1.3;color:#78aee1}
.contact-map__stage-note>[data-map-index]{color:#fff}
.contact-map__stage-line{display:block;width:40px;height:1px;margin:0 3px;background:#539ed6}
.contact-map__motion{display:flex;align-items:center;justify-content:center;gap:13px;flex:none;min-height:36px;padding:9px 14px;border:1px solid #91bcec66;border-radius:100px;color:#d9ecff;background:#032257b3;font-family:inherit;font-size:10px;letter-spacing:.025em;cursor:pointer;transition:background .18s,border-color .18s}
.contact-map__motion[hidden]{display:none}
.contact-map__motion-icon{display:block;width:7px;height:9px;border-left:2px solid currentColor;border-right:2px solid currentColor}
.contact-map__motion[aria-pressed=true] .contact-map__motion-icon{width:0;height:0;border:0;border-left:7px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent}
.contact-map__directory{position:relative;z-index:1;padding:29px clamp(24px,3.4vw,54px) 35px;border-top:1px solid #5598dd47;background:#032153}
.contact-page .contact-map__directory h2{font-family:HelveticaLocal,Arial,sans-serif;font-weight:400;letter-spacing:.12em;font-size:10px;line-height:1.4;margin:0 0 18px;color:#8caed4}
.contact-map__cities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.contact-map__city{display:flex;flex-direction:column;align-items:stretch;gap:9px;min-width:0;min-height:115px;padding:15px 16px 17px;font-family:Haas,Arial,sans-serif;line-height:1.2;text-align:left;cursor:pointer;color:#b7d4f1;background:#08306a;border:1px solid #2d60985e;transition:background .2s,border-color .2s,color .2s,transform .15s}
.contact-map__city-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:HelveticaLocal,Arial,sans-serif;font-size:9px;letter-spacing:.07em;color:#7faadc}
.contact-map__city-arrow{font-size:17px;line-height:1;opacity:.6;transition:transform .2s,opacity .2s}
.contact-map__city-name{font-size:clamp(19px,1.65vw,27px);letter-spacing:var(--headline-letter-spacing);white-space:nowrap}
.contact-map__city-country{font-family:HelveticaLocal,Arial,sans-serif;font-size:10px;color:#78a5d6;line-height:1.3}
.contact-map__city[aria-pressed=true]{color:white;background:#0966ec;border-color:#4698ff}
.contact-map__city[aria-pressed=true] .contact-map__city-top,.contact-map__city[aria-pressed=true] .contact-map__city-country{color:#c6e4ff}
.contact-map__city[aria-pressed=true] .contact-map__city-arrow{opacity:1;transform:rotate(45deg)}
.contact-map__city:active{transform:scale(.975)}
.contact-map__city:focus-visible,.contact-map__motion:focus-visible{outline:2px solid #9aeaff;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.contact-map__city:hover{color:white;background:#124b96;border-color:#3981cd}.contact-map__city[aria-pressed=true]:hover{background:#0874fb}.contact-map__motion:hover{background:#0854b7;border-color:#67b4fb}.contact-map__pin:hover .contact-map__dot{fill:white;stroke:#a0f1ff}}
.contact-map.is-motion-on.is-inview .contact-map__pin.is-selected .contact-map__halo{animation:contact-map-pulse 3s cubic-bezier(.23,1,.32,1) infinite}
@keyframes contact-map-pulse{0%{transform:scale(.4);opacity:.85}78%,100%{transform:scale(1.6);opacity:0}}
@media(max-width:1100px){.contact-map__stage{min-height:390px}.contact-map__cities{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-map__city{min-height:102px}.contact-map__city-name{font-size:24px}.contact-map__count{gap:12px}}
@media(max-width:760px){.contact-map{margin-top:55px}.contact-map__stage{aspect-ratio:1.1;min-height:0}.contact-map__svg{height:76%;top:20%;width:130%;max-width:none;left:-15%}.contact-map__readout{top:24px;left:22px;max-width:75%}.contact-map__active-city{font-size:clamp(37px,8vw,55px)}.contact-map__eyebrow{font-size:8px;margin-bottom:12px}.contact-map__place{margin-top:12px;font-size:11px;gap:5px 12px}.contact-map__coordinate{font-size:8px}.contact-map__count{right:22px;top:26px;gap:0}.contact-map__count>span:first-child{font-size:48px}.contact-map__count>span:last-child{display:none}.contact-map__stage-foot{left:22px;right:22px;bottom:18px}.contact-map__stage-note{font-size:8px;gap:7px;max-width:165px;flex-wrap:wrap}.contact-map__stage-line{width:20px}.contact-map__motion{min-height:38px;padding:9px 12px;font-size:9px;gap:10px}.contact-map__directory{padding:22px 20px 24px}.contact-map__city{padding:12px;min-height:98px;gap:8px}.contact-map__city-name{font-size:20px}.contact-map__city-country{font-size:9px}.contact-map__cities{gap:8px}}
@media(max-width:390px){.contact-map__cities{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-map__stage{aspect-ratio:.94}.contact-map__svg{width:142%;left:-21%;top:22%;height:72%}.contact-map__stage-note{max-width:135px;letter-spacing:.025em}.contact-map__city-name{font-size:20px}.contact-map__coordinate{display:none}.contact-map__count{right:18px}.contact-map__readout{left:18px}}
@media(prefers-reduced-motion:reduce){.contact-map .contact-map__halo{animation:none!important}.contact-map__city,.contact-map__city-arrow,.contact-map__dot,.contact-map__motion{transition:none}}
@media(max-width:560px){.contact-map__cities{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-map__city{min-height:96px}}

/* /photo-motion.css */
/* Shared photographic motion: homepage entry zoom, clipped to each existing frame.
   Independent scale preserves portrait rotation and the approved image color grades. */
main :is(.photo-window,.scenario-photo,.feed-photo,.feature-image,.portrait-frame,.division-overview-photo)>img{
 scale:1;
 transition:scale 1.5s var(--ease),filter .45s ease;
}
@media(prefers-reduced-motion:no-preference){
 main .photo-zoom-ready:not(.is-visible)>img{scale:1.1}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 main :is(.photo-window,.scenario-photo,.feed-photo,.feature-image,.portrait-frame,.division-overview-photo):hover>img,
 main .feature:hover .feature-image>img,
 main .division-overview-row:hover .division-overview-photo>img{
  scale:1.055;
  transition-duration:1s,.45s;
 }
}
@media(prefers-reduced-motion:no-preference){
 main :is(.feature,.division-overview-row):focus-visible :is(.feature-image,.division-overview-photo)>img{
  scale:1.055;
  transition-duration:1s,.45s;
 }
 main .photo-window:focus-visible>img{scale:1.055;transition-duration:1s,.45s}
}
@media(prefers-reduced-motion:reduce){
 main :is(.photo-window,.scenario-photo,.feed-photo,.feature-image,.portrait-frame,.division-overview-photo)>img{scale:1;transition:none}
}

/* /ui-refinements.css */
/* Impactum navy anchors the Global South editorial section. */
.home .south-feature { background: #012060; }
.home .south-feature .why-heading h2 em {
  font-size: 1.15em;
  line-height: .95;
  letter-spacing: var(--headline-letter-spacing);
  margin: 18px 0 24px;
}
.division-overview-row:nth-child(odd)::before { background: #003cff; }
.division-overview-row:nth-child(even)::before { background: #012060; }
footer .footer-call { font-size: clamp(48px, 7.2vw, 116px); line-height: 1.02; letter-spacing: var(--headline-letter-spacing); }
footer .footer-top > .eyebrow { margin-bottom: 36px; }
footer .footer-contact { margin-top: 30px; }

/* Shared call-to-action treatment. */
.feature-articles .feature .text-link {
  color: #003cff;
  border-color: #003cff;
}
:root .button,
:root .button.secondary {
  background: #003cff;
  border-color: #003cff;
  border-radius: 999px;
  color: #fff;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
:root .button:hover,
:root .button:active,
.hero-actions .button:first-child:hover,
.south-feature .why-link .button:hover,
.project-photo-link:hover .project-photo-caption,
.cmmndr-stage:hover .cmmndr-site-link,
.growth-project-link:hover .growth-project-caption {
  background: #012060;
  border-color: #012060;
  color: #fff;
  transform: none;
}
:root .button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px #003cff;
}
:root footer .button.secondary { border-color: #ffffff99; }
:root footer .button.secondary:hover { border-color: #012060; }

/* Project actions occupy the lower right corner of their image. */
.project-photo-caption,
.project-photo-caption.project-article-button,
.cmmndr-preview .cmmndr-site-link,
.growth-project-caption,
.insight-project-button {
  position: absolute;
  z-index: 2;
  inset: auto 20px 20px auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: calc(100% - 40px);
  min-height: 36px;
  margin: 0;
  padding: 9px 15px;
  gap: 16px;
  border: 1px solid #003cff;
  border-radius: 999px;
  background: #003cff;
  color: #fff;
  font-size: 12px;
  line-height: 1.25;
  text-align: center;
}
.project-photo-caption > span,
.growth-project-caption > span:last-child,
.insight-project-button > span:last-child { font-size: 16px; line-height: 1; }
.project-photo-actions { justify-content: flex-end; align-items: flex-end; }
.project-photo-actions .project-photo-button { min-height: 36px; padding: 9px 15px; }

/* Keep the Evonomix action at the bottom left, below both films. */
.evonomix-preview .evonomix-site-link {
  inset: auto auto 20px 20px;
  min-height: 36px;
  max-width: calc(100% - 40px);
  padding: 9px 15px;
  gap: 16px;
  font-size: 12px;
}

/* Overlay the compact link without a full-width caption bar. */
.growth-project-link,
.growth-project-video { position: relative; display: block; overflow: hidden; }
.growth-project-link .growth-screen-stage,
.growth-project-video .growth-video-frame { height: 100%; }
.growth-project-link .growth-screen-stage { padding-bottom: 52px; }
.insight-film-preview video { object-fit: contain; }
.solutions-page .insight-film-preview { aspect-ratio: 16 / 9; }

/* Thin aluminium laptop, using the supplied application screenshot intact. */
.cmmndr-stage,
.solutions-page .cmmndr-stage {
  padding: clamp(24px, 5cqw, 44px) clamp(18px, 4cqw, 36px) 70px;
  gap: 0;
  background: radial-gradient(ellipse at 70% 22%, #146bdb 0%, #054290 36%, #012060 78%);
}
.cmmndr-laptop {
  display: block;
  position: relative;
  flex: none;
  width: 100%;
  max-width: 670px;
  padding-bottom: 2.8%;
  filter: drop-shadow(0 22px 20px #000b3066);
}
.cmmndr-laptop-lid {
  display: block;
  position: relative;
  width: 92%;
  margin: 0 auto;
  padding: clamp(6px, 1.25cqw, 10px);
  border: 1px solid #a1adba;
  border-bottom-color: #687689;
  border-radius: clamp(8px, 2cqw, 15px) clamp(8px, 2cqw, 15px) 3px 3px;
  background: linear-gradient(140deg, #303740, #0b1019 40%, #1c2531);
  box-shadow: inset 0 0 0 1px #111824, 0 0 0 1px #0b204055;
  overflow: hidden;
}
.cmmndr-laptop-camera {
  display: block;
  position: absolute;
  z-index: 2;
  top: 1px;
  left: 50%;
  width: clamp(22px, 5cqw, 40px);
  height: clamp(6px, 1.45cqw, 11px);
  border-radius: 0 0 5px 5px;
  background: #111824;
  transform: translateX(-50%);
}
.cmmndr-laptop-camera::after {
  content: '';
  position: absolute;
  width: 3px;
  height: 3px;
  left: calc(50% - 1.5px);
  top: 2px;
  border-radius: 50%;
  background: #293e58;
  box-shadow: 0 0 0 1px #050b12;
}
.cmmndr-laptop-display { display: block; overflow: hidden; border-radius: 4px; background: #f7f8fa; }
.cmmndr-preview .cmmndr-laptop-display img {
  display: block;
  position: static;
  width: 100%;
  height: auto;
  aspect-ratio: 1074 / 633;
  object-fit: contain;
  object-position: center;
  transform: none;
}
.cmmndr-laptop-base {
  display: block;
  position: relative;
  width: 100%;
  height: clamp(7px, 1.7cqw, 13px);
  margin-top: -1px;
  border-radius: 2px 2px 50% 50% / 2px 2px 80% 80%;
  border-top: 1px solid #e3eaf1;
  background: linear-gradient(#bfcbd7 0%, #8393a6 45%, #435163 95%);
  box-shadow: 0 3px 2px #000b3044;
}
.cmmndr-laptop-base::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 43%;
  width: 14%;
  height: 40%;
  border-radius: 0 0 5px 5px;
  background: #68788a;
  box-shadow: inset 0 -1px 1px #d6e0e9;
}
@media (max-width: 760px) {
  .project-photo-caption,
  .project-photo-caption.project-article-button,
  .cmmndr-preview .cmmndr-site-link,
  .growth-project-caption,
  .insight-project-button { inset: auto 12px 12px auto; max-width: calc(100% - 24px); font-size: 11px; min-height: 32px; padding: 8px 12px; gap: 12px; }
  .project-photo-actions { right: 12px; bottom: 12px; left: 12px; }
  .evonomix-preview .evonomix-site-link { inset: auto auto 12px 12px; min-height: 32px; padding: 8px 12px; font-size: 11px; }
}
@container (max-width: 300px) {
  .cmmndr-stage,
  .solutions-page .cmmndr-stage { padding: 18px 12px 56px; }
  .cmmndr-preview .cmmndr-site-link,
  .evonomix-preview .evonomix-site-link { min-height: 30px; padding: 7px 10px; font-size: 10px; gap: 10px; }
  .cmmndr-preview .cmmndr-site-link { inset: auto 10px 10px auto; }
  .evonomix-preview .evonomix-site-link { inset: auto auto 10px 10px; }
  .growth-screen-stage { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  :root .button { transition: none; }
}

/* A product family, composed from the real Gjirafa desktop and mobile UI. */
.growth-preview { container-type: inline-size; }
.growth-project-link { container-type: size; }
.problem-visual .growth-preview { grid-template-rows: 1.15fr 1fr; }
.gjirafa-device-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding: 18px 18px 52px;
  background: radial-gradient(ellipse at 72% 22%, #ffe0c2 0%, #eac09f 37%, transparent 73%), linear-gradient(135deg, #bf927d 0%, #d9a486 44%, #ab7161 100%);
}
.gjirafa-device-stage::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 82%;
  height: 24%;
  left: 9%;
  bottom: 15%;
  border-radius: 50%;
  background: #563b3d38;
  filter: blur(18px);
}
.gjirafa-device-scene {
  display: block;
  position: relative;
  width: min(96%, calc((100cqh - 66px) * 1.85));
  max-width: 680px;
  max-height: 100%;
  aspect-ratio: 1.85;
}
.gjirafa-laptop {
  display: block;
  position: absolute;
  width: 83%;
  left: 2%;
  top: 5%;
  filter: drop-shadow(0 15px 14px #513b4444);
}
.gjirafa-laptop-lid {
  display: block;
  position: relative;
  width: 92%;
  margin: auto;
  padding: clamp(5px, 1cqw, 9px);
  border: 1px solid #98a3ae;
  border-radius: 12px 12px 3px 3px;
  background: linear-gradient(120deg, #323a44, #101722 70%);
  box-shadow: inset 0 0 0 1px #111820;
}
.gjirafa-camera {
  position: absolute;
  top: 2px;
  left: calc(50% - 12px);
  width: 24px;
  height: 6px;
  z-index: 2;
  border-radius: 0 0 4px 4px;
  background: #111820;
}
.gjirafa-dashboard-crop { display: block; position: relative; width: 100%; aspect-ratio: 644 / 438; overflow: hidden; border-radius: 4px; background: #fff; }
.growth-preview .gjirafa-dashboard-crop img { position: absolute; width: 177.0186%; height: 153.653%; max-width: none; left: -64.5963%; top: -23.2877%; object-fit: fill; aspect-ratio: auto; }
.gjirafa-laptop-base {
  display: block;
  position: relative;
  height: clamp(6px, 1.3cqw, 10px);
  border-top: 1px solid #e7edf3;
  border-radius: 2px 2px 50% 50% / 2px 2px 80% 80%;
  background: linear-gradient(#bbc6d1, #7a899b 55%, #495666);
}
.gjirafa-laptop-base::after { content: ''; position: absolute; width: 14%; height: 35%; left: 43%; top: -1px; border-radius: 0 0 4px 4px; background: #66788b; }
.gjirafa-campaign-panel {
  display: block;
  position: absolute;
  z-index: 2;
  width: 43%;
  aspect-ratio: 336 / 197;
  left: 0;
  bottom: -6%;
  overflow: hidden;
  border: 1px solid #ffffffb3;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 10px 22px #48353d40;
}
.growth-preview .gjirafa-campaign-panel img { position: absolute; max-width: none; width: 314.2857%; height: 250.7614%; left: -21.7262%; top: -26.9036%; object-fit: fill; aspect-ratio: auto; }
.gjirafa-phone {
  display: block;
  position: absolute;
  z-index: 3;
  width: 21%;
  right: 2%;
  bottom: -4%;
  padding: clamp(3px, .65cqw, 6px);
  border: 1px solid #aeb9c6;
  border-radius: clamp(10px, 2.5cqw, 22px);
  background: #142030;
  box-shadow: 0 16px 24px #513b4450, inset 0 0 0 1px #020810;
  transform: rotate(4deg);
}
.gjirafa-phone::after { content: ''; position: absolute; z-index: 2; top: 5px; left: 35%; width: 30%; height: 4px; border-radius: 9px; background: #101722; }
.gjirafa-phone-screen { display: block; position: relative; aspect-ratio: 153 / 332; overflow: hidden; border-radius: clamp(7px, 2cqw, 18px); background: #fff; }
.growth-preview .gjirafa-phone-screen img { position: absolute; max-width: none; width: 690.1961%; height: 148.7952%; left: -537.9085%; top: -17.1687%; object-fit: fill; aspect-ratio: auto; }
.solutions-page .gjirafa-device-stage { aspect-ratio: 1.7; height: auto; min-height: 185px; }
.solutions-page .growth-project-link { aspect-ratio: 1.7; min-height: 185px; }
.solutions-page .growth-project-link .gjirafa-device-stage { height: 100%; aspect-ratio: auto; min-height: 0; }
@container (max-width: 320px) {
  .gjirafa-device-stage { padding: 12px 8px 46px; }
  .gjirafa-device-scene { width: min(100%, calc((100cqh - 58px) * 1.85)); }
  .growth-project-caption, .insight-project-button { right: 10px; bottom: 10px; max-width: calc(100% - 20px); min-height: 30px; padding: 7px 10px; gap: 10px; font-size: 10px; }
}
@media (max-width: 760px) {
  .problem-visual .growth-preview { height: 460px; }
}

/* Keep the supplied article photographs complete at their original proportions. */
.essay-photo-supplied .photo-window { height: auto; aspect-ratio: auto; }
.essay-photo-supplied .photo-window img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }

/* Haas has a compact space glyph: separate headline words at every viewport. */
:root { --headline-letter-spacing: -.015em; --headline-word-spacing: .14em; }
h1, h2, h3, h4, h5, h6,
:is(h1, h2, h3, h4, h5, h6) :is(span, em, strong, small),
.footer-call,
.feature-cover-title,
.division-overview-name,
.next-unit > a > span,
.solution > summary > span:not(.index):not(.plus),
.contact-map__active-city,
.contact-map__city-name {
  letter-spacing: var(--headline-letter-spacing);
  word-spacing: var(--headline-word-spacing);
}

/* Why now reads as one statement, followed by two aligned market stories. */
.home .south-feature .why-heading {
  display: block;
}
.home .south-feature .why-heading > .eyebrow {
  padding: 0;
  margin-bottom: 24px;
}
.home .south-feature .why-heading h2 {
  max-width: 24ch;
  font-size: clamp(44px, 5vw, 86px);
  line-height: 1.08;
  letter-spacing: var(--headline-letter-spacing);
  text-align: left;
  text-wrap: balance;
}
.home .south-feature .why-heading h2 em {
  display: inline;
  font-size: 1em;
  line-height: inherit;
  letter-spacing: inherit;
  margin: 0;
  text-align: inherit;
}
.home .south-feature .why-heading h2 > span {
  max-width: 28ch;
  margin-top: 24px;
  font-size: clamp(26px, 2.25vw, 36px);
  line-height: 1.3;
  letter-spacing: var(--headline-letter-spacing);
  text-wrap: pretty;
}
@media (min-width: 761px) {
  .home .south-feature :is(.why-images, .why-copy) {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: clamp(28px, 3.6vw, 64px);
    align-items: start;
  }
  .home .south-feature .why-images {
    margin: clamp(40px, 3.6vw, 64px) 0 0;
  }
  .home .south-feature :is(.why-wide-photo, .why-small-photo) {
    width: 100%;
    margin: 0;
    transform: none;
  }
  .home .south-feature :is(.why-wide-photo, .why-small-photo) .photo-window {
    height: clamp(280px, 28vw, 460px);
  }
  .home .south-feature :is(.why-wide-photo, .why-small-photo) img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .home .south-feature .why-copy {
    padding-top: 0;
    margin-top: 28px;
  }
  .home .south-feature .why-copy p,
  .home .south-feature .why-copy p + p {
    max-width: 62ch;
    margin: 0;
    font-size: clamp(17px, 1.2vw, 20px);
    line-height: 1.6;
  }
}
@media (max-width: 760px) {
  .home .south-feature .why-heading > .eyebrow { margin-bottom: 20px; }
  .home .south-feature .why-heading h2 {
    max-width: 18ch;
    font-size: clamp(38px, 9.2vw, 54px);
    line-height: 1.09;
  }
  .home .south-feature .why-heading h2 > span {
    margin-top: 20px;
    font-size: clamp(24px, 5.6vw, 28px);
  }
}

/* Keep the two flagship article covers level, with one shared image height. */
.feature-articles {
  --feature-image-height: 480px;
  align-items: start;
}
.feature-articles .feature:last-child { padding-top: 0; }
.feature-articles .feature .feature-image { height: var(--feature-image-height); }
@media (max-width: 1100px) {
  .feature-articles { --feature-image-height: 400px; }
}
@media (max-width: 760px) {
  .feature-articles {
    --feature-image-height: 370px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 50px;
  }
}
@media (max-width: 380px) {
  .feature-articles { --feature-image-height: 310px; }
}

/* /mobile-polish.css */
/* Mobile keeps the approved editorial composition, with room for real content. */
@media (max-width: 760px) {
  :root { --gutter: clamp(18px, 5.4vw, 32px); }
  html { scroll-padding-top: 92px; }
  .site-header { padding-inline: var(--gutter); }
  .site-header .logo { width: clamp(150px, 43vw, 190px); }
  .menu-button { width: 44px; height: 44px; flex: 0 0 44px; }
  .site-header nav {
    max-height: calc(100svh - 76px);
    max-height: calc(100dvh - 76px);
    overflow-y: auto;
    overscroll-behavior-y: contain;
    padding-bottom: max(24px, env(safe-area-inset-bottom));
  }
  .site-header nav a { min-height: 50px; font-size: clamp(27px, 7.4vw, 35px); }
  .site-header nav a:last-child { display: inline-flex; align-items: center; justify-content: center; }
  .home .hero {
    height: auto;
    min-height: 100svh;
    max-height: none;
    padding-top: 110px;
    padding-bottom: max(22px, env(safe-area-inset-bottom));
  }
  .home .hero-layout { min-width: 0; padding-top: 32px; margin: auto 0 28px; }
  .home .hero h1 { font-size: clamp(36px, 9.65vw, 64px); line-height: 1.055; word-spacing: var(--headline-word-spacing); }
  .home .hero-aside { padding-top: 24px; }
  .home .hero-aside p { max-width: 39ch; font-size: 16px; }
  .home .hero-actions { margin-top: 22px; }
  .hero-overline { font-size: 11px; }
  .inner-hero { min-height: 0; gap: 26px; }
  .inner-hero .eyebrow { margin-bottom: 0; }
  .inner-hero h1 { font-size: clamp(44px, 12.2vw, 80px); overflow-wrap: break-word; }
  .inner-hero > p { margin-top: 0; }
  .unit-hero h1 { font-size: clamp(36px, 11.2vw, 85px); }
  .section-heading, .portfolio-heading, .world-heading, .model-heading { min-width: 0; }
  :is(.section-heading, .portfolio-heading, .world-heading, .model-heading) h2 { text-wrap: pretty; }
  :is(.home-problem, .solution) summary > :not(.index):not(.plus) { min-width: 0; }
  .home-problem summary { padding-block: 16px; }
  .home-problem-description { padding-bottom: 16px; }
  .home-problem h3 { font-size: clamp(23px, 6.2vw, 30px); }
  .home-problems.mobile-expanded .home-problem summary { grid-template-columns: 20px minmax(0, 1fr); cursor: default; }
  .home-problems.mobile-expanded .home-problem summary .plus { display: none; }
  .home-problems.mobile-expanded .home-problem-description { padding-right: 0; }
  .solution summary { grid-template-columns: 23px minmax(0, 1fr) 30px; font-size: clamp(24px, 6.2vw, 30px); }
  .solutions-page .solution .solution-content { min-width: 0; }
  .solutions-page .solution-photo > .project-photo-actions { gap: 10px; }
  .solutions-page .solution-photo > .project-photo-actions > .button { min-height: 48px; }
  .project-ticker, .atlantico-ticker { max-width: 100%; }
  .problem-visual .problem-photo[aria-hidden="true"] { display: none; }
  .problem-visual .cmmndr-preview { aspect-ratio: 1; }
  .problem-visual .cmmndr-preview .cmmndr-film { aspect-ratio: 1; }
  /* Each expanded problem reads as title, description, media, then its links. */
  .home-problems .problem-layout { overflow-anchor: none; }
  .home-problem > .problem-visual { position: static; top: auto; width: 100%; min-width: 0; margin: 0 0 20px; }
  .home-problem > .problem-visual .problem-photo { height: auto; min-height: 0; overflow: visible; background: transparent; }
  .home-problem > .problem-visual :is(.insights-preview, .evonomix-preview) { grid-template-rows: auto; gap: 12px; }
  .home-problem > .problem-visual .photo-window { height: auto; }
  /* Expanded media uses its full width without a viewport-height budget. */
  .home-problem > .problem-visual .photo-window > img {
    display: block; width: 100%; height: auto;
    max-height: none; aspect-ratio: 1; object-fit: contain;
  }
  .home-problem > .problem-visual .project-photo-link { overflow: visible; }
  .home-problem > .problem-visual :is(.photo-window.rolin-film, .growth-video-frame, .cmmndr-film) {
    height: auto; max-height: none;
    min-height: 0; aspect-ratio: 1;
  }
  .home-problem > .problem-visual :is(.photo-window.rolin-film, .growth-video-frame, .cmmndr-film) > video {
    display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center;
  }
  .home-problem > .problem-visual .cmmndr-preview { aspect-ratio: auto; }
  .home-problem > .problem-visual .insights-preview .growth-video-frame { aspect-ratio: 1; }
  .home-problem > .problem-visual :is(.garuda-preview, .shein-preview) .project-ticker {
    width: 100%; height: auto; height: 100cqw; aspect-ratio: 1; max-height: none;
  }
  .home-problem > .problem-visual :is(.garuda-preview, .shein-preview) :is(.project-ticker-track, .project-ticker-group) { height: 100%; }
  .home-problem > .problem-visual :is(.garuda-preview, .shein-preview) .project-tile { width: auto; height: 100%; aspect-ratio: 740 / 1080; }
  .home-problem > .problem-visual :is(.garuda-preview, .shein-preview) .project-tile video { object-fit: cover; object-position: center; }
  :root .home .home-problem > .problem-visual :is(.project-photo-caption, .evonomix-site-link, .atlantico-project-button, .growth-project-caption, .project-photo-actions) {
    position: static; inset: auto; width: fit-content; max-width: 100%; margin: 14px 0 0; justify-self: start;
  }
  :root .home .home-problem > .problem-visual .project-photo-actions { width: 100%; justify-content: flex-start; }
  :root .home .home-problem > .problem-visual .project-photo-actions > .button { margin: 0; }
  .company-mark { min-width: 0; }
  .company-logo-grid .company-mark img { max-width: 100%; }
  :is(.person, .home-person) h3 { overflow-wrap: break-word; }
  .footer-bottom div { flex-wrap: wrap; row-gap: 14px; }
  footer .footer-call { font-size: clamp(38px, 10.5vw, 76px); overflow-wrap: break-word; }
  .form-bottom { flex-wrap: wrap; }
  .enquiry-form :is(input, select, textarea) { min-height: 48px; font-size: 16px; }

  /* The same two photographs and paragraphs alternate on mobile. */
  .south-feature.mobile-south-flow .why-images { grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 28px; margin: 36px 0 0; }
  .south-feature.mobile-south-flow .why-copy { display: none; }
  .south-feature.mobile-south-flow .mobile-south-copy { margin: 0; max-width: 620px; font-size: 18px; line-height: 1.65; }
  .south-feature.mobile-south-flow .south-photo-slot { min-width: 0; width: 100%; overflow: hidden; }
  .south-feature.mobile-south-flow :is(.why-wide-photo, .why-small-photo) { width: 100%; margin: 0; transform: none; opacity: 1; }
  .south-feature.mobile-south-flow .south-photo-slot .photo-window { height: auto; aspect-ratio: 16 / 10; clip-path: none; transition: none; }
  .south-feature.mobile-south-flow .south-photo-slot .photo-window > img { width: 100%; height: 100%; transform: none; scale: 1; transition: none; }
  .south-feature.mobile-south-flow .south-photo-slot figcaption { opacity: 1; transform: none; transition: none; }

  /* Compact chapter proportions allow genuine overlapping cards on taller phones. */
  .model-chapter { padding-top: 26px; padding-bottom: 32px; }
  .model-top { margin-bottom: 24px; align-items: baseline; }
  .model-top h3 { font-size: clamp(34px, 10vw, 70px); overflow-wrap: normal; }
  .model-chapters .model-photo .photo-window { height: clamp(180px, 52vw, 290px); }
  .model-content > div { margin-top: 24px; }
  .model-content > div h4 { margin-bottom: 18px; font-size: clamp(27px, 7vw, 36px); }
  .model-content > div p { font-size: 16px; line-height: 1.55; }
  .model-chapters .model-end p { max-width: none; }
  .home .problem-visual .button { backdrop-filter: none; -webkit-backdrop-filter: none; --cta-fill: #012060e8; }
}

@media (max-width: 380px) {
  .form-pair { grid-template-columns: minmax(0, 1fr); }
  .home .hero h1 { font-size: 36px; }
  .home .hero-aside p { font-size: 15px; }
  .solutions-page .process-illustrated .process-grid article { grid-template-columns: minmax(0, 1fr) 98px; gap: 0 12px; }
  .solutions-page .process-art { width: 98px; height: 82px; }
  .solutions-page .process-illustrated .process-grid h3 { font-size: 30px; }
}

@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  /* One-time arrivals; the two South photographs zoom with scroll in fixed frames. */
  .mobile-motion-on .mobile-reveal {
    opacity: .08;
    transform: translateY(18px);
    transition: opacity .55s ease-out, transform .7s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--mobile-reveal-delay, 0ms);
  }
  .mobile-motion-on .mobile-reveal.mobile-revealed,
  .mobile-motion-on .mobile-reveal:focus-within { opacity: 1; transform: none; }
  .mobile-motion-on .chapter-stack.mobile-stack-fit .model-chapter {
    position: sticky;
    top: var(--mobile-chapter-top, 88px);
    min-height: calc(100svh - var(--mobile-chapter-inset, 88px) - 12px);
    z-index: var(--chapter);
    box-shadow: 0 -1px 0 #ffffff40;
  }
  .mobile-motion-on .model-chapter::after {
    content: "";
    position: absolute;
    left: var(--gutter);
    right: var(--gutter);
    bottom: 14px;
    height: 2px;
    background: currentColor;
    opacity: .45;
    transform: scaleX(var(--mobile-chapter-progress, 0));
    transform-origin: left;
    pointer-events: none;
  }
  .mobile-motion-on main .mobile-photo-frame { overflow: hidden; }
  .mobile-motion-on main .mobile-photo-frame > img {
    scale: 1.14;
    transition: scale 1.8s cubic-bezier(.22, 1, .36, 1), filter .45s ease;
  }
  .mobile-motion-on main .mobile-photo-frame.mobile-photo-zoomed > img { scale: 1; }
  .mobile-motion-on .south-feature.mobile-south-flow .south-photo-slot .photo-window > img {
    scale: var(--mobile-south-scale, 1);
    transform: none;
    transition: none;
  }
  .mobile-motion-on .home .hero-photo {
    transform: translate3d(0, var(--mobile-hero-y, 0px), 0) scale(var(--mobile-hero-scale, 1.035));
  }
  .mobile-motion-on .approach-editorial .approach-row.is-visible::before { transform: scaleX(1); }
  .mobile-motion-on .problem-visual .problem-photo[aria-hidden="false"] {
    animation: mobile-project-arrive .4s cubic-bezier(.22, 1, .36, 1) both;
  }
  .site-header nav.open { animation: mobile-nav-arrive .22s cubic-bezier(.22, 1, .36, 1) both; }
  .menu-button:active, .button:active { scale: .975; }
  .button, .menu-button { transition: scale .12s ease-out, background-color .2s, border-color .2s, color .2s; }
  @keyframes mobile-project-arrive { from { opacity: .35; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
  @keyframes mobile-nav-arrive { from { opacity: .3; translate: 0 -8px; } to { opacity: 1; translate: 0 0; } }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-reveal { opacity: 1; transform: none; }
  .mobile-photo-frame > img { scale: 1; }
  .model-chapter::after { display: none; }
}

/* /form-polish.css */
/* Shared enquiry form: a quiet surface, complete field outlines and clear focus. */
body .enquiry-form {
  position: relative;
  display: flex;
  flex-direction: column;
  align-self: start;
  min-width: 0;
  gap: 24px;
  padding: clamp(24px, 2.6vw, 40px);
  border: 1px solid #dce4f1;
  border-radius: 16px;
  background: #f7f9fd;
  color: #012060;
  box-shadow: 0 12px 36px #01206006;
}
body .enquiry-form::before {
  content: "";
  position: absolute;
  top: -1px;
  left: clamp(24px, 2.6vw, 40px);
  width: 64px;
  height: 3px;
  background: #003cff;
}
body .contact-page .enquiry-form { margin-top: 36px; padding-top: clamp(24px, 2.6vw, 40px); }
body .enquiry-form .form-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
body .enquiry-form label {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 9px;
  color: #012060;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0;
}
body .enquiry-form :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 54px;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #c8d3e5;
  border-radius: 8px;
  background-color: #fff;
  color: #012060;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}
body .enquiry-form textarea { min-height: 152px; resize: vertical; }
body .enquiry-form select {
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%23012060' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}
body .enquiry-form :is(input, select, textarea):hover { border-color: #849cc4; }
body .enquiry-form :is(input, select, textarea):focus {
  border-color: #003cff;
  outline: 2px solid #003cff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #003cff0a;
}
body .enquiry-form .form-bottom {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 2px 0 0;
}
body .enquiry-form .form-bottom .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  min-height: 52px;
  padding: 14px 30px;
  border: 1px solid #003cff;
  border-radius: 999px;
  background: #003cff;
  color: #fff;
  font-size: 15px;
  line-height: 1.2;
  text-align: center;
}
body .enquiry-form .form-bottom .button:hover,
body .enquiry-form .form-bottom .button:active { background: #012060; border-color: #012060; }
body .enquiry-form .form-status {
  max-width: none;
  margin: 0;
  padding: 16px 18px;
  border-left: 3px solid #003cff;
  border-radius: 0 8px 8px 0;
  background: #edf2ff;
  color: #012060;
  font-size: 13px;
  line-height: 1.55;
}
body .enquiry-form .form-status:empty { display: none; }
@media (max-width: 760px) {
  body .enquiry-form { gap: 21px; padding: 24px 20px; }
  body .enquiry-form::before { left: 20px; }
  body .contact-page .enquiry-form { margin-top: 34px; padding-top: 24px; }
  body .enquiry-form .form-pair { grid-template-columns: minmax(0, 1fr); gap: 21px; }
  body .enquiry-form :is(input, select, textarea) { min-height: 52px; padding-inline: 14px; }
  body .enquiry-form select { padding-right: 42px; background-position: right 14px center; }
  body .enquiry-form textarea { min-height: 148px; }
}
@media (prefers-reduced-motion: reduce) {
  body .enquiry-form :is(input, select, textarea) { transition: none; }
}

/* /feedback.css */
/* Review version, 11 October: the shared public-facing layout refinements. */
.home .hero-aside { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.home .hero-aside p { flex: none; }
.home .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
:root .home .hero-actions .button { max-width: none; white-space: nowrap; }
.home .hero-ground { justify-content: flex-end; }
.feedback-section-heading { max-width: 920px; margin-bottom: 50px; }
.feedback-section-heading h2 { font-size: clamp(40px, 4.4vw, 70px); line-height: 1.08; margin: 0 0 24px; }
.feedback-section-heading p { max-width: 800px; font-size: clamp(21px, 2.3vw, 34px); line-height: 1.3; margin: 0; }
.home .feedback-problems .home-problem-list { width: 100%; max-width: 1180px; margin: 0; }
.home .feedback-problems .home-problem > summary { padding-block: 28px; }
.home .feedback-problems .home-problem h3 { font-size: clamp(27px, 3vw, 43px); max-width: 1000px; }
.home .feedback-problems .home-problem-description { display: grid; grid-template-columns: 175px minmax(0, 1fr); gap: 40px; align-items: center; margin: 0 0 0 65px; padding: 0 0 32px; }
.home .feedback-problems .home-problem-description p { max-width: 720px; font-size: 21px; line-height: 1.5; margin: 0; }
.home .feedback-problems .home-problem-list > .button { margin-top: 30px; }
.service-visual { display: grid; place-items: center; position: relative; isolation: isolate; aspect-ratio: 1; width: 100%; margin: 0; background: #eaf0ff; border-radius: 50%; }
.service-visual img { position: relative; display: block; width: 78%; height: 78%; object-fit: contain; z-index: 1; }
.service-visual-orbit { position: absolute; inset: 8%; border: 1px solid #003cff30; border-radius: 50%; }
.feedback-world-heading { display: block; }
.feedback-world-heading > div { max-width: 1050px; }
.feedback-world-heading p { max-width: 640px; font-size: 20px; line-height: 1.5; margin: 28px 0 0; }
.home .group-chapter-heading.feedback-group-heading { display: block; padding-block: 72px 30px; }
.home .feedback-group-heading > .eyebrow { margin-bottom: 26px; }
.home .feedback-group-heading h2 { font-size: clamp(38px, 4.8vw, 76px); max-width: 1080px; line-height: 1.08; margin: 0; }
.home .division-overview { padding-top: 12px; }
.home .division-overview-close { justify-content: flex-start; padding-block: 26px 0; }
.inner-hero > p { margin-left: 0; margin-right: 0; text-align: left; max-width: 800px; }
.solutions-page .inner-hero { text-align: left; }
.solutions-page .inner-hero h1 { max-width: 1050px; }
@media (min-width: 761px) {
  :root .home .south-feature :is(.why-images, .why-copy) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4vw; max-width: none; align-items: start; }
  :root .home .south-feature .why-images { margin: 54px 0 35px; }
  :root .home .south-feature :is(.why-wide-photo, .why-small-photo) { width: 100%; margin: 0; transform: none; }
  :root .home .south-feature :is(.why-wide-photo, .why-small-photo) .photo-window { height: auto; aspect-ratio: 16 / 10; }
  :root .home .south-feature :is(.why-wide-photo, .why-small-photo) img { width: 100%; height: 100%; object-fit: cover; }
  :root .home .south-feature .why-copy { padding: 0; }
  :root .home .south-feature .why-copy p { max-width: none; margin: 0; font-size: 18px; line-height: 1.65; text-align: justify; text-align-last: left; }
  footer { padding-top: 42px; }
  footer .footer-top > .eyebrow { margin-bottom: 30px; }
  footer .footer-call { font-size: clamp(48px, 5.7vw, 88px); line-height: 1.04; }
  footer .footer-contact { margin: 18px 0 38px; }
}

/* The three principles form a single horizontal narrative. */
.principles-section { --pin-top: 96px; --principle-gap: 24px; color: #fff; background: #012060; position: relative; }
.principles-pin { padding: 58px 0 42px; }
.principles-heading { margin: 0 var(--gutter) 34px; max-width: 1000px; }
.principles-heading > .eyebrow { margin-bottom: 23px; }
.principles-heading h2 { font-size: clamp(30px, 3.2vw, 48px); line-height: 1.12; margin: 0; }
.principles-viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; padding-inline: var(--gutter); }
.principles-viewport:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.principles-track { display: flex; gap: var(--principle-gap); width: max-content; padding-right: var(--gutter); }
.principle-card { flex: none; width: min(790px, 68vw); padding: 26px; background: #003cff; border: 1px solid #ffffff35; scroll-snap-align: start; }
.principle-card:nth-child(2) { background: #082d72; }
.principle-card:nth-child(3) { background: #003cff; }
.principle-top { display: flex; align-items: baseline; gap: 17px; margin-bottom: 25px; }
.principle-top .index { font-size: 12px; }
.principle-top h3 { font-size: clamp(30px, 3vw, 44px); line-height: 1.07; margin: 0; }
.principle-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: center; }
.principle-content .principle-photo { margin: 0; width: 100%; }
.principle-content .photo-window { width: 100%; height: auto; aspect-ratio: 4 / 3; }
.principle-content img { width: 100%; height: 100%; object-fit: cover; }
.principle-content h4 { font-size: clamp(22px, 2vw, 30px); line-height: 1.16; margin: 0 0 18px; }
.principle-content p { font-size: 16px; line-height: 1.5; margin: 0; }
.principles-controls { display: flex; gap: 24px; margin: 26px var(--gutter) 0; }
.principles-controls button { display: inline-flex; align-items: center; gap: 9px; border: 0; border-bottom: 2px solid transparent; color: #c3d1f0; background: transparent; padding: 9px 0; font-size: 13px; cursor: pointer; }
.principles-controls button[aria-pressed="true"] { color: #fff; border-color: #fff; }
.principles-controls .index { font-size: 11px; }
.principles-controls button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.principles-end { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin: 20px var(--gutter) 0; }
.principles-end p { max-width: 670px; font-size: 16px; line-height: 1.5; margin: 0; }
:root .home .principles-end .button { --cta-fill: #fff; --cta-text: #012060; --cta-border: #fff; white-space: nowrap; }
.principles-section.is-scroll-linked { height: var(--principles-scroll-height); }
.is-scroll-linked .principles-pin { position: sticky; top: var(--pin-top); }
.is-scroll-linked .principles-viewport { scroll-snap-type: none; scrollbar-width: none; }
.principles-viewport::-webkit-scrollbar { display: none; width: 0; height: 0; }
@media (min-width: 1001px) {
  .principles-track { padding-right: max(0px, calc(100vw - var(--gutter) - var(--gutter) - min(790px, 68vw))); }
  .principles-pin { padding-block: 32px 28px; }
  .principles-heading { margin-bottom: 24px; max-width: 1080px; }
  .principles-heading > .eyebrow { margin-bottom: 16px; }
  .principles-heading h2 { font-size: clamp(30px, 2.5vw, 36px); }
  .principle-card { padding: 22px; }
  .principle-top { margin-bottom: 18px; }
  .principle-top h3 { font-size: 36px; }
  .principle-content .photo-window { max-height: 200px; }
  .principles-controls { margin-top: 18px; }
  .principles-end { margin-top: 16px; }
}
@media (max-width: 1000px) {
  .principle-card { width: 78vw; }
  .principle-content { gap: 20px; }
  .principles-end { align-items: flex-start; }
}
@media (max-width: 760px) {
  .home .hero-aside { gap: 20px; }
  :root .home .hero-actions .button { font-size: 13px; padding-right: 16px; gap: 9px; }
  .home .hero-actions { gap: 9px; }
  .feedback-section-heading { margin-bottom: 34px; }
  .feedback-section-heading h2 { font-size: 40px; margin-bottom: 22px; }
  .feedback-section-heading p { font-size: 23px; }
  .home .feedback-problems .home-problem > summary { padding-block: 24px; }
  .home .feedback-problems .home-problem h3 { font-size: clamp(25px, 6.9vw, 34px); }
  .home .feedback-problems .home-problem-description { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-left: 37px; padding-bottom: 25px; }
  .home .feedback-problems .home-problem-description p { font-size: 17px; }
  .home .home-service-visual { width: 120px; grid-row: 2; }
  .feedback-world-heading p { font-size: 17px; margin-top: 24px; }
  .home .group-chapter-heading.feedback-group-heading { padding-block: 48px 26px; }
  .home .feedback-group-heading h2 { font-size: clamp(34px, 8.5vw, 52px); }
  .principles-pin { padding-block: 46px 38px; }
  .principles-heading { margin-bottom: 28px; }
  .principles-heading h2 { font-size: 31px; }
  .principle-card { width: calc(100vw - 64px); padding: 22px; }
  .principle-content { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .principle-top h3 { font-size: 32px; }
  .principle-content .photo-window { aspect-ratio: 16 / 9; max-height: 220px; }
  .principle-content h4 { font-size: 25px; }
  .principles-controls { gap: 16px; flex-wrap: wrap; }
  .principles-controls button { font-size: 11px; }
  .principles-controls button > span { display: none; }
  .principles-end { display: block; margin-top: 25px; }
  .principles-end p { font-size: 16px; }
  :root .home .principles-end .button { margin-top: 24px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .principles-section { height: auto !important; }
  .principles-pin { position: static; }
  .principles-viewport { overflow: visible; }
  .principles-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; padding-right: 0; }
  .principle-card { width: auto; }
  .principle-content { grid-template-columns: minmax(0, 1fr); }
  .principles-controls { display: none; }
}
@media (max-width: 1000px) and (prefers-reduced-motion: reduce) {
  .principles-track { grid-template-columns: minmax(0, 1fr); }
  .principle-card { width: auto; }
}

/* /feedback-group.css */
/* Consolidated feedback: one Group opening and explicit sibling-unit navigation. */
.group-variant .portfolio-editorial {
  padding-top: clamp(54px, 6vw, 96px);
}
.group-variant .portfolio-heading {
  display: block;
  margin-bottom: 30px;
}
.group-variant .portfolio-heading .group-title {
  max-width: 1120px;
  margin: 0;
  font-size: clamp(44px, 6.2vw, 96px);
  line-height: 1.04;
  letter-spacing: var(--headline-letter-spacing);
  text-wrap: pretty;
}
.group-variant .group-title-ending { white-space: nowrap; }
.group-variant .group-title-dot { color: var(--pink); }
.group-variant .portfolio-heading > p,
.group-variant .portfolio-intro {
  max-width: 820px;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}
.group-variant .portfolio-heading > p {
  margin-top: 32px;
  margin-bottom: 0;
  font-size: 20px;
  line-height: 1.5;
}
.group-variant .portfolio-intro { margin-bottom: 48px; }
.group-variant .variant-division-nav { scroll-margin-top: 132px; }

.unit-page .unit-hero { text-align: left; }
.unit-page .unit-hero > p {
  margin-left: 0;
  margin-right: 0;
  max-width: 720px;
}
.unit-page .unit-explore { padding-block: clamp(48px, 5vw, 80px); }
.unit-page .unit-siblings {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  margin-top: 32px;
}
.unit-page .unit-siblings .unit-sibling {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 22px 0 26px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  transition: color .2s ease, border-color .2s ease;
}
.unit-page .unit-sibling-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  color: var(--blue);
}
.unit-page .unit-sibling .index {
  font-family: HelveticaLocal, Helvetica, Arial, sans-serif;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}
.unit-page .unit-sibling h3 {
  margin: 0 0 12px;
  font-size: clamp(26px, 2.65vw, 42px);
  line-height: 1.12;
  overflow-wrap: normal;
}
.unit-page .unit-sibling p {
  max-width: 25ch;
  margin: 0;
  color: #536581;
  font-size: 15px;
  line-height: 1.5;
}
.unit-page .unit-sibling svg { transition: transform .2s ease; }
.unit-page .unit-sibling:hover { color: var(--blue); border-color: var(--blue); }
.unit-page .unit-sibling:hover svg { transform: translateX(4px); }
.unit-page .unit-sibling:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 6px;
}
@media (max-width: 1000px) {
  .unit-page .unit-siblings { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
  .unit-page .unit-sibling h3 { font-size: clamp(30px, 4vw, 40px); }
}
@media (max-width: 760px) {
  .group-variant .portfolio-heading .group-title { font-size: clamp(40px, 10.4vw, 70px); }
  .group-variant .portfolio-heading > p { margin-top: 25px; font-size: 17px; }
  .group-variant .portfolio-intro { margin-bottom: 34px; }
  .group-variant .variant-division-nav { scroll-margin-top: 100px; }
  .unit-page .unit-hero > p { max-width: 100%; }
  .unit-page .unit-siblings { margin-top: 26px; }
}
@media (max-width: 560px) {
  .unit-page .unit-siblings { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .unit-page .unit-siblings .unit-sibling { padding: 22px 0; border-bottom: 0; }
  .unit-page .unit-siblings .unit-sibling:last-child { border-bottom: 1px solid var(--line); }
  .unit-page .unit-sibling-meta { margin-bottom: 16px; }
  .unit-page .unit-sibling h3 { font-size: 32px; }
  .unit-page .unit-sibling p { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .unit-page .unit-sibling,
  .unit-page .unit-sibling svg { transition: none; }
}

/* /feedback-solutions.css */
/* October 2026 consolidated feedback: public capability visuals and Waves cycle. */
.solutions-page .solution.solution-service .solution-content {
  grid-template-columns: minmax(0, 1.6fr) minmax(160px, .7fr);
  align-items: center;
  gap: clamp(32px, 6vw, 100px);
  margin-left: 85px;
  padding: 0 0 38px;
}
.solutions-page .solution.solution-service .solution-copy { max-width: 780px; }
.solutions-page .solution-service-visual {
  width: min(100%, 250px);
  aspect-ratio: 1;
  justify-self: center;
  margin: 0;
}
.solutions-page .process-waves { background: #fff; }
.solutions-page .process-waves .section-heading { margin-bottom: 58px; }
.waves-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(46px, 7vw, 120px);
}
.waves-cycle { width: 100%; max-width: 630px; margin: 0; }
.waves-cycle svg { display: block; width: 100%; height: auto; overflow: visible; }
.waves-cycle text {
  text-anchor: middle;
  font-family: HelveticaLocal, Helvetica, Arial, sans-serif;
  letter-spacing: 0;
}
.waves-node circle { fill: #012060; }
.waves-node .waves-number { fill: #aec4ff; font-size: 14px; letter-spacing: 2px; }
.waves-node .waves-step { fill: #fff; font-size: 27px; font-weight: 400; }
.waves-center-name { fill: #012060; font-size: 25px; font-weight: 700; }
.waves-center-subtitle { fill: #012060; font-size: 30px; }
@media (prefers-reduced-motion: no-preference) {
  .waves-cycle.waves-motion-ready .waves-flow { opacity: .3; }
  .waves-cycle.waves-motion-ready .waves-stage-glow {
    animation: waves-stage-active 9s ease-in-out infinite both;
    animation-delay: var(--waves-phase);
    animation-play-state: paused;
  }
  .waves-cycle.waves-motion-ready .waves-travel {
    stroke-dasharray: 100 100;
    animation: waves-route-flow 9s linear infinite both;
    animation-delay: var(--waves-phase);
    animation-play-state: paused;
  }
  .waves-cycle.waves-motion-ready .waves-ripple {
    animation: waves-ripple-flow 2.25s ease-in-out infinite;
    animation-delay: var(--ripple-delay);
    animation-play-state: paused;
  }
  .waves-cycle.waves-running :is(.waves-stage-glow, .waves-travel, .waves-ripple) {
    animation-play-state: running;
  }
}
@keyframes waves-stage-active {
  0%, 25%, 100% { opacity: 0; }
  3%, 17% { opacity: .95; }
}
@keyframes waves-route-flow {
  0%, 15% { stroke-dashoffset: 100; opacity: 0; }
  16% { stroke-dashoffset: 100; opacity: 1; }
  24.5% { stroke-dashoffset: 0; opacity: 1; }
  26%, 100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes waves-ripple-flow {
  0%, 100% { opacity: .2; }
  45% { opacity: 1; }
}
.waves-descriptions { list-style: none; padding: 0; margin: 0; }
.waves-descriptions li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid var(--line);
}
.waves-descriptions li:first-child { padding-top: 0; border-top: 0; }
.waves-descriptions li:last-child { padding-bottom: 0; }
.waves-descriptions .index { color: var(--blue); font-size: 13px; padding-top: 6px; }
.waves-descriptions h3 { margin: 0 0 12px; font-size: clamp(27px, 2.4vw, 37px); }
.waves-descriptions p { margin: 0; max-width: 570px; font-size: 17px; line-height: 1.55; }
.perspectives-featured-only > .feature-articles { margin-bottom: 0; }
@media (max-width: 1000px) {
  .waves-layout { gap: 36px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .waves-descriptions li { gap: 14px; padding: 20px 0; }
  .waves-descriptions p { font-size: 16px; }
}
@media (max-width: 760px) {
  .solutions-page .solution.solution-service .solution-content {
    grid-template-columns: minmax(0, 1fr);
    margin-left: 37px;
    padding: 0 0 28px;
    gap: 18px;
  }
  .solutions-page .solution-service-visual { width: 164px; justify-self: start; }
  .solutions-page .process-waves .section-heading { margin-bottom: 34px; }
  .waves-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .waves-cycle { max-width: 460px; margin: 0 auto; }
  .waves-descriptions li { grid-template-columns: 26px minmax(0, 1fr); padding: 23px 0; }
  .waves-descriptions h3 { font-size: 29px; margin-bottom: 10px; }
  .waves-descriptions p { font-size: 16px; }
  .perspectives-featured-only > .feature-articles { margin-bottom: 0; }
}

/* /design-polish.css */
/* Measured brand accents for Group navigation and public capability rows.
   Company logos, case-study policy and approved editorial layouts stay intact. */

/* One left-aligned Group introduction, with its supporting copy below. */
body.group-variant .portfolio-heading {
  padding: clamp(30px, 4vw, 58px);
  background: #012060;
  border-top: 6px solid #003cff;
  color: #fff;
  margin-bottom: 30px;
}

body.group-variant .portfolio-heading .eyebrow {
  color: #b7caff;
}

body.group-variant .portfolio-heading .group-title,
body.group-variant .portfolio-heading > p {
  color: #fff;
}

body.group-variant .portfolio-heading > p {
  max-width: 800px;
}

/* Five clear destinations, alternating the two core brand colors. */
body.group-variant .variant-division-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  overflow: visible;
  padding: 0;
  margin-bottom: 64px;
}

body.group-variant .variant-division-nav > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  grid-template-rows: auto auto;
  align-content: space-between;
  align-items: center;
  gap: 20px 10px;
  min-width: 0;
  min-height: 118px;
  padding: 20px;
  border: 1px solid transparent;
  background: #003cff;
  color: #fff;
  font-size: 16px;
  line-height: 1.25;
  transition: background-color 180ms ease, border-color 180ms ease;
}

body.group-variant .variant-division-nav > a:nth-child(even) {
  background: #012060;
}

body.group-variant .variant-division-nav > a > .index {
  grid-column: 1 / -1;
  color: #dbe5ff;
  font-size: 11px;
}

body.group-variant .variant-division-nav > a > span:nth-child(2) {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.group-variant .variant-division-nav > a > span:last-child {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin: 0;
  color: #fff;
  font-size: 23px;
  line-height: 1;
  transition: transform 180ms ease;
}

body.group-variant .variant-division-nav > a:hover {
  color: #fff;
  background: #082d72;
  border-color: #658bff;
}

body.group-variant .variant-division-nav > a:hover > span:last-child {
  transform: translate(2px, 2px);
}

body.group-variant .variant-division-nav > a:focus-visible {
  outline: 3px solid #003cff;
  outline-offset: 4px;
}

/* Sibling BUs read as a set of compact, clearly clickable destinations. */
body.unit-page .unit-siblings {
  gap: 16px;
}

body.unit-page .unit-siblings > .unit-sibling {
  padding: 24px;
  border: 1px solid #dce4f3;
  border-top: 3px solid #003cff;
  background: #edf2ff;
  color: #012060;
  transition: background-color 180ms ease, border-color 180ms ease;
}

body.unit-page .unit-siblings > .unit-sibling:nth-child(even) {
  border-top-color: #012060;
  background: #f2f4f8;
}

body.unit-page .unit-sibling-meta {
  margin-bottom: 22px;
}

body.unit-page .unit-sibling h3 {
  font-size: clamp(26px, 2.15vw, 34px);
  line-height: 1.16;
}

body.unit-page .unit-sibling-meta > svg {
  width: 34px;
  height: 34px;
  padding: 6px;
  border: 1px solid #c9d7f5;
  border-radius: 50%;
  background: #fff;
}

body.unit-page .unit-siblings > .unit-sibling:hover {
  color: #003cff;
  border-color: #003cff;
  background: #e3ebff;
}

body.unit-page .unit-siblings > .unit-sibling:focus-visible {
  outline: 3px solid #003cff;
  outline-offset: 4px;
}

/* Restore the shared photograph on the left of the desktop service list. */
body.home .feedback-problems .problem-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr);
  gap: 7vw;
  align-items: start;
}
body.home .feedback-problems .home-problem,
body.home .feedback-problems .home-problem[open] {
  background: transparent;
  box-shadow: none;
}
body.home .feedback-problems .home-problem > summary {
  padding: 25px 0;
}
body.home .feedback-problems .home-problem h3 {
  font-size: clamp(25px, 2.15vw, 35px);
}
body.home .feedback-problems .home-problem-description {
  display: block;
  margin: 0;
  padding: 0 35px 28px 43px;
}
body.home .feedback-problems .home-problem-description p {
  font-size: 18px;
  line-height: 1.6;
}
body.home .feedback-problems .home-service-photo {
  width: 100%;
  min-width: 0;
  margin: 0;
}
body.home .feedback-problems .home-service-photo .photo-window {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  background: #012060;
}
body.home .feedback-problems .home-service-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.home .feedback-problems [data-problem-photo="0"] img {
  object-position: 55% 50%;
}
body.home .feedback-problems [data-problem-photo="1"] img {
  object-position: 55% 50%;
}
body.home .feedback-problems [data-problem-photo="2"] img {
  object-position: 72% 50%;
}
body.home .feedback-problems [data-problem-photo="5"] img {
  object-position: 40% 50%;
}

@media (max-width: 1100px) {
  body.group-variant .variant-division-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  body.group-variant .portfolio-heading {
    padding: 28px 22px;
    border-top-width: 4px;
    margin-bottom: 26px;
  }

  body.group-variant .variant-division-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 44px;
  }

  body.group-variant .variant-division-nav > a {
    padding: 18px;
    min-height: 106px;
    gap: 16px 8px;
    font-size: 15px;
  }

  body.group-variant .variant-division-nav > a:last-child {
    grid-column: 1 / -1;
  }

  body.unit-page .unit-siblings {
    gap: 12px;
  }

  body.unit-page .unit-siblings > .unit-sibling {
    padding: 22px;
  }

  body.unit-page .unit-sibling h3 {
    font-size: 30px;
  }

  body.home .feedback-problems .problem-layout {
    display: block;
  }
  body.home .feedback-problems .home-problem > summary {
    padding: 24px 0;
  }
  body.home .feedback-problems .home-problem h3 {
    font-size: clamp(25px, 6.9vw, 34px);
  }
  body.home .feedback-problems .home-problem-description {
    margin: 0;
    padding: 0 0 24px 30px;
  }
  body.home .feedback-problems .home-problem-description > p {
    margin: 0;
    font-size: 17px;
  }
  body.home .feedback-problems .home-service-photo .photo-window {
    aspect-ratio: 1;
  }
  body.home .feedback-problems .home-problem > .problem-visual {
    margin-bottom: 24px;
  }
}

@media (max-width: 480px) {
  body.group-variant .variant-division-nav {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  body.group-variant .variant-division-nav > a {
    grid-template-columns: 22px minmax(0, 1fr) 24px;
    grid-template-rows: auto;
    min-height: 68px;
    padding: 16px 18px;
    gap: 12px;
  }

  body.group-variant .variant-division-nav > a > .index {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.group-variant .variant-division-nav > a,
  body.group-variant .variant-division-nav > a > span:last-child,
  body.unit-page .unit-siblings > .unit-sibling,
  body.home .feedback-problems .home-problem {
    transition: none;
  }
}

/* Vivid, coordinated photographic treatment for the six What we solve images.
   Exposure and saturation are balanced per original; source photographs stay intact. */
body.home .feedback-problems .home-service-photo {
  --photo-contrast: 1.08;
  --photo-brightness: .98;
  --photo-saturation: .86;
  --photo-blue: .12;
}
body.home .feedback-problems .home-service-photo .photo-window {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
body.home .feedback-problems .home-service-photo img {
  filter: contrast(var(--photo-contrast)) brightness(var(--photo-brightness)) saturate(var(--photo-saturation));
}
body.home .feedback-problems .home-service-photo .photo-window::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(145deg, #003cff, #012060);
  mix-blend-mode: color;
  opacity: var(--photo-blue);
}
body.home .feedback-problems [data-problem-photo="0"] {
  --photo-contrast: 1.12; --photo-brightness: 1.03; --photo-saturation: 1.28; --photo-blue: 0.06;
}
body.home .feedback-problems [data-problem-photo="1"] {
  --photo-contrast: 1.18; --photo-brightness: 0.96; --photo-saturation: 1.18; --photo-blue: 0.04;
}
body.home .feedback-problems [data-problem-photo="2"] {
  --photo-contrast: 1.13; --photo-brightness: 1; --photo-saturation: 1.24; --photo-blue: 0.1;
}
body.home .feedback-problems [data-problem-photo="3"] {
  --photo-contrast: 1.07; --photo-brightness: 1.02; --photo-saturation: 1.12; --photo-blue: 0.06;
}
body.home .feedback-problems [data-problem-photo="4"] {
  --photo-contrast: 1.16; --photo-brightness: 1; --photo-saturation: 1.26; --photo-blue: 0.08;
}
body.home .feedback-problems [data-problem-photo="5"] {
  --photo-contrast: 1.17; --photo-brightness: 0.98; --photo-saturation: 1.22; --photo-blue: 0.07;
}

body.home .feedback-problems [data-problem-photo="4"] img {
  object-position: 60% 50%;
}

/* /typography-polish.css */
/* A quieter headline scale, applied after the existing component styles.
   Copy, component layouts, body text, cards and navigation remain unchanged. */

/* Long page titles share a clear, restrained maximum. */
body .inner-hero > h1,
body.unit-page .unit-hero > h1,
body .essay-hero > h1 {
  font-size: clamp(48px, 5.2vw, 80px);
  line-height: 1.1;
}

body.group-variant .portfolio-heading .group-title {
  font-size: clamp(46px, 5.2vw, 80px);
  line-height: 1.1;
}

body.contact .contact-page > div > h1 {
  font-size: clamp(46px, 5vw, 72px);
  line-height: 1.1;
}

body.leadership-page .leader-heading > h1 {
  font-size: clamp(42px, 4.4vw, 64px);
  line-height: 1.12;
}

/* Homepage statements remain distinct without becoming separate billboards. */
body.home .hero h1 {
  font-size: clamp(48px, 5.2vw, 80px);
  line-height: 1.1;
}

body.home .south-feature .why-heading > h2 {
  font-size: clamp(40px, 4.3vw, 64px);
  line-height: 1.12;
}

body.home .south-feature .why-heading > h2 em {
  font-size: 1em;
  line-height: inherit;
}

body.home .feedback-section-heading > h2 {
  font-size: clamp(38px, 4vw, 56px);
  line-height: 1.12;
}

body.home .feedback-group-heading > h2,
body .feedback-world-heading h2 {
  font-size: clamp(40px, 4.2vw, 60px);
  line-height: 1.12;
}

/* Major editorial headings, without touching cards or service titles. */
body.group-variant .leadership .section-heading h2,
body.solutions-page .expertise > .section-heading h2,
body.solutions-page .process-waves > .section-heading h2,
body .next-giants > div > h2 {
  font-size: clamp(38px, 4vw, 58px);
  line-height: 1.12;
}

body footer .footer-call {
  font-size: clamp(42px, 4.6vw, 68px);
  line-height: 1.12;
}

body.group-variant .division-editorial-copy > h4 {
  font-size: clamp(32px, 3.2vw, 48px);
  line-height: 1.14;
}

@media (max-width: 760px) {
  body .inner-hero > h1,
  body.unit-page .unit-hero > h1,
  body .essay-hero > h1,
  body.group-variant .portfolio-heading .group-title,
  body.contact .contact-page > div > h1 {
    font-size: clamp(38px, 9.8vw, 48px);
    line-height: 1.12;
  }

  body.home .hero h1 {
    font-size: clamp(36px, 9.2vw, 48px);
    line-height: 1.12;
  }

  body.leadership-page .leader-heading > h1 {
    font-size: clamp(36px, 9.2vw, 46px);
    line-height: 1.14;
  }

  body.home .south-feature .why-heading > h2,
  body.home .feedback-group-heading > h2,
  body .feedback-world-heading h2 {
    font-size: clamp(34px, 8.5vw, 44px);
    line-height: 1.14;
  }

  body.home .feedback-section-heading > h2,
  body.group-variant .leadership .section-heading h2,
  body.solutions-page .expertise > .section-heading h2,
  body.solutions-page .process-waves > .section-heading h2,
  body .next-giants > div > h2 {
    font-size: clamp(32px, 8.2vw, 40px);
    line-height: 1.14;
  }

  body footer .footer-call {
    font-size: clamp(34px, 8.8vw, 46px);
    line-height: 1.12;
  }
}

.contact-map__stage{width:100%;min-width:0}

@media(min-width:1001px){.principles-viewport{scroll-snap-type:none}}
