/* Refinements to the established MW site. Native controls and page content stay intact. */
:root{
  --bg:#fcfaf6;
  --surface:#f2eee6;
  --surface-2:#e9e2d7;
  --ink:#25221d;
  --ink-soft:#635e54;
  --ink-faint:#81786c;
  --line:#dcd4c8;
  --accent:#945831;
  --accent-hover:#754224;
}
body{ line-height:1.54; }
.mw-polished section[id]{ scroll-margin-top:calc(var(--mw-nav-height,52px) + 16px); }
.story-sticky,
.control-sticky,
.tech-sequence-sticky{
  top:var(--mw-nav-height,52px);
  height:calc(100svh - var(--mw-nav-height,52px));
}
.wrap{ max-width:1180px; }
.wrap-narrow{ max-width:810px; }
.hero{ padding-top:clamp(3.7rem,8.5vw,6.8rem); }
h1.h-hero{
  max-width:17ch;
  font-size:clamp(2.7rem,5.8vw,4.65rem);
  line-height:1.1;
  letter-spacing:-.042em;
}
p.lede{ max-width:43ch; font-size:clamp(1.12rem,1.8vw,1.25rem); line-height:1.6; margin-top:1.4rem; }
.eyebrow{ font-size:.75rem; line-height:1.6; letter-spacing:.055em; }
.hero-cta{ gap:1rem 1.6rem; }
.section-head{ max-width:710px; margin-bottom:clamp(2.5rem,5vw,3.7rem); }
.section-head.left{ max-width:710px; }
.section-head h2{ font-size:clamp(2rem,3.7vw,3.1rem); line-height:1.14; letter-spacing:-.035em; margin-bottom:1rem; }
.section-head p{ font-size:1.1rem; line-height:1.64; }
.feature-card{ padding:clamp(1.6rem,3vw,2.5rem); }
.feature-card h3{ margin-bottom:.8rem; line-height:1.3; }
.feature-card p{ line-height:1.65; }
.btn{
  min-height:44px;
  justify-content:center;
  padding:.68rem 1.25rem;
  font-weight:500;
  line-height:1.3;
  transition:background .2s ease,border-color .2s ease;
}
.btn.ghost,.btn.outline{ border-color:#bdb3a5; }
.link-more{ line-height:1.45; text-underline-offset:4px; }
.crumb{ line-height:1.7; }

/* Photographs lead the project pages; copy has room to breathe. */
.case-showcase-grid{ gap:clamp(2.8rem,5.5vw,4.7rem) clamp(1.7rem,4vw,3rem); }
.case-showcase .case-photo-card{ border-radius:20px; }
.case-showcase .body{ padding:1.5rem .1rem 0; }
.case-showcase .tag{ font-size:.74rem; line-height:1.5; }
.case-showcase h3{ margin:.5rem 0 .8rem; font-size:clamp(1.6rem,2.4vw,2rem); line-height:1.2; }
.case-showcase p{ font-size:1rem; line-height:1.65; margin-bottom:1rem; }
.case-showcase .go{ line-height:1.5; }
.case-actions .case-booking{
  min-height:44px; padding:.55rem 0;
  border-color:transparent; background:transparent;
  color:var(--ink-soft); font-size:.82rem;
  box-shadow:none;
}
.case-actions .case-booking:hover,
.case-actions .case-booking:focus-visible{ color:var(--ink); background:transparent; text-decoration:underline; }
.case-showcase.case-showcase-wide{
  padding:clamp(1rem,2.2vw,1.6rem);
  border-radius:22px;
  background:color-mix(in srgb,var(--case-accent) 7%,var(--bg));
  box-shadow:none;
}
.case-showcase.case-showcase-wide:hover{ box-shadow:none; }
.case-showcase.case-showcase-wide .body{ padding:clamp(.7rem,2vw,1.4rem); }
.case-showcase.case-showcase-wide h3{ font-size:clamp(1.85rem,3vw,2.7rem); line-height:1.14; }
.knowledge-card{ border-radius:20px; }
.knowledge-card figure{ height:180px; }
.knowledge-card .body{ padding:1.5rem; }
.knowledge-card h2,.knowledge-card h3{ font-size:1.38rem; line-height:1.23; }
.knowledge-card p{ font-size:.97rem; line-height:1.65; }
.proof-card,.path-card{ border-radius:20px; }
.proof-card p,.path-card p{ line-height:1.6; }
.article-body h2{ line-height:1.15; letter-spacing:-.033em; }
.article-body h3{ line-height:1.35; }
.article-body p,.article-body li{ font-size:1.08rem; line-height:1.78; }
.article-callout{ border-radius:16px; }
.article-cta{ border-radius:22px; }
.work-story-copy h2{ line-height:1.1; letter-spacing:-.039em; }
.work-story-copy h3{ line-height:1.45; }
.work-story-copy > p:not(.eyebrow){ font-size:1.01rem; line-height:1.75; }
.cinema-portrait,.cinema-landscape{ animation:none; }
.cinema-frame{ box-shadow:0 24px 64px -34px rgba(49,39,27,.38); }
.case-hero-label{ line-height:1.5; }
.contact-intro h1{ line-height:1.14; }
.contact-lede{ line-height:1.75; }
.scroll-story{ height:220svh; }
.control-scroll{ height:280svh; }
.impact-scroll{ height:auto; }
.impact-sticky{ position:relative; top:auto; height:auto; min-height:0; padding-top:clamp(3.5rem,7vw,6rem); padding-bottom:clamp(3.5rem,7vw,6rem); }
.impact-sticky h2{ max-width:25ch; font-size:clamp(2.15rem,4.1vw,3.15rem); line-height:1.17; }
.impact-sticky h2 span{ color:#f6f4ee; transform:none; }
.mw-photo-label{
  position:absolute; z-index:4;
  left:12px; bottom:12px;
  max-width:calc(100% - 24px);
  padding:.35rem .55rem;
  border:1px solid rgba(255,255,255,.16); border-radius:6px;
  background:rgba(27,24,20,.64); color:#fff;
  font-size:.7rem; font-weight:500; line-height:1.4;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* The centre label has its own intrinsic width, including longer PL/EN copy. */
.assembly-board .assembly-core{
  align-items:center;
  justify-content:center;
  padding:16px 12px;
  text-align:center;
}
.assembly-board .assembly-core > strong{
  position:static;
  display:block; align-self:center;
  width:auto; min-width:0; max-width:100%; margin:0; padding:0;
  line-height:1.25; text-align:center;
  transform:none;
}
.assembly-board .assembly-core > small{
  position:static; inset:auto;
  display:block; align-self:center;
  width:auto; min-width:0; max-width:100%; margin:.3rem 0 0; padding:0;
  color:var(--ink-soft);
  font-size:.74rem; line-height:1.4;
  white-space:normal; overflow-wrap:normal; word-break:normal;
  text-align:center;
  transform:none;
}

/* Scroll opens the photograph itself. Captions remain outside its crop. */
.mw-reveal-picture{ --mw-picture-hover:0; }
.mw-reveal-picture > img,
.mw-reveal-picture > picture > img{
  clip-path:inset(calc((1 - var(--mw-picture-progress,1)) * 8%) round 12px);
  transform:scale(calc(1.06 - var(--mw-picture-progress,1) * .06 + var(--mw-picture-hover,0) * .018))!important;
  transform-origin:50% 50%;
  transition:clip-path .22s linear,transform .32s cubic-bezier(.2,.65,.3,1);
}
.mw-reveal-picture .mw-photo-label{ clip-path:none; transform:none; }
.case-showcase:focus-visible,
.knowledge-card:focus-visible{ outline:2px solid var(--accent); outline-offset:6px; }
.case-showcase:focus-visible .mw-reveal-picture,
.knowledge-card:focus-visible .mw-reveal-picture{ --mw-picture-hover:1; }
.case-showcase:focus-visible .go,
.case-showcase:focus-within .go{ text-decoration:underline; text-underline-offset:4px; }
@media (hover:hover) and (pointer:fine){
  .mw-reveal-picture:hover,
  .case-showcase:hover .mw-reveal-picture,
  .knowledge-card:hover .mw-reveal-picture{ --mw-picture-hover:1; }
}

/* Navigation keeps the established light palette and adds an actual side drawer. */
header.nav{ background:rgba(252,250,246,.94); border-bottom-color:var(--line); }
.nav-links{ gap:clamp(1.2rem,2.15vw,2.1rem); }
.nav-links a{ padding:.8rem 0; }
.logo{ letter-spacing:-.015em; }
.logo .dot{ box-shadow:none; }
.nav-actions{ gap:.75rem; }
.nav-actions .btn{ min-height:36px; padding:.48rem .95rem; font-size:.75rem; }
.lang-switch{ gap:.32rem; }
.lang-switch a,.lang-switch .is-current{ min-height:32px; display:inline-flex; align-items:center; }
.nav-toggle{ width:44px; height:44px; border-radius:50%; }
.nav-toggle:hover{ background:rgba(98,82,61,.055); }
.mw-nav-scrim{
  position:fixed; z-index:55; inset:0;
  border:0; background:rgba(32,27,21,.27);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s ease,visibility .25s;
}
.nav-mobile{
  position:fixed; z-index:65;
  top:0; right:0; bottom:0; left:auto;
  display:flex; flex-direction:column;
  width:min(390px,calc(100vw - 26px)); height:100dvh;
  max-height:none;
  padding:80px clamp(1.5rem,4vw,2rem) max(1.7rem,env(safe-area-inset-bottom));
  overflow-y:auto; overscroll-behavior:contain;
  background:#f8f5ee;
  border:0; border-left:1px solid #d4cbbd;
  box-shadow:-24px 0 70px -42px rgba(32,27,21,.48);
  backdrop-filter:none; -webkit-backdrop-filter:none;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateX(104%);
  transition:transform .38s cubic-bezier(.2,.75,.25,1),opacity .22s ease,visibility .38s;
}
.nav-mobile a{
  display:flex; justify-content:space-between; align-items:center;
  min-height:54px; padding:.9rem 0;
  font-size:1.08rem; font-weight:500; line-height:1.4;
  border-bottom:1px solid #ded5c8;
}
.nav-mobile a::after{ content:"→"; color:#a08467; font-weight:400; }
.nav-mobile a.active{ color:var(--accent); }
.nav-mobile .sub{ min-height:44px; font-size:.94rem; padding-left:.85rem; }
.mw-drawer-head{
  position:absolute; top:22px; left:clamp(1.5rem,4vw,2rem); right:clamp(1.5rem,4vw,2rem);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  color:var(--ink-faint); font-size:.7rem; letter-spacing:.065em;
}
.mw-drawer-close{
  position:absolute; top:17px; right:clamp(1.3rem,4vw,1.8rem);
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  border:1px solid #c9bfaf; border-radius:50%;
  background:transparent; color:var(--ink);
  font:400 1.45rem/1 var(--sans);
  cursor:pointer;
}
.mw-drawer-head .mw-drawer-close{ position:relative; top:auto; right:auto; }
.mw-drawer-close svg{ width:19px; height:19px; }
body.nav-open header.nav{ z-index:60; background:var(--bg); backdrop-filter:none; -webkit-backdrop-filter:none; }
body.nav-open .nav-mobile{ display:flex; opacity:1; visibility:visible; pointer-events:auto; transform:none; }
body.nav-open .mw-nav-scrim{ opacity:1; visibility:visible; pointer-events:auto; }
footer.site{ padding-top:2.6rem; background:#f1ede5; }
footer.site .foot-col a{ min-height:30px; font-size:.88rem; line-height:1.5; }
footer.site .foot-brand p{ line-height:1.65; }
footer.site .foot-bottom{ line-height:1.6; }

/* Small screens use a readable photograph and every narrative step in document order. */
.scroll-story.mw-mobile-flow{ height:auto; background:var(--bg); }
.mw-mobile-flow .story-sticky{
  position:relative; top:auto;
  display:flex; flex-direction:column;
  height:auto; min-height:0; overflow:visible; background:var(--bg);
}
.mw-mobile-flow .story-media{ position:relative; inset:auto; order:0; height:clamp(260px,64vw,480px); overflow:hidden; }
.mw-mobile-flow .story-image{ opacity:1; transform:none; transition:none; }
.mw-mobile-flow .story-image:first-child{ position:static; display:block; width:100%; height:100%; }
.mw-mobile-flow .story-image:not(:first-child){ display:none; }
.mw-mobile-flow .story-shade,.mw-mobile-flow .story-meter{ display:none; }
.mw-mobile-flow .story-content{
  position:relative; order:1;
  display:grid; gap:0;
  height:auto; min-height:0;
  padding:1rem clamp(1.3rem,5vw,2rem) 2.4rem;
}
.mw-mobile-flow .story-step{
  position:static; inset:auto;
  max-width:none;
  padding:1.5rem 0;
  border-bottom:1px solid var(--line);
  color:var(--ink); opacity:1; transform:none; pointer-events:auto;
}
.mw-mobile-flow .story-step:last-child{ border-bottom:0; }
.mw-mobile-flow .story-step > span{ margin-bottom:.7rem; color:var(--accent); font-size:.72rem; }
.mw-mobile-flow .story-step h2{ max-width:20ch; color:var(--ink); font-size:clamp(1.95rem,7.5vw,2.6rem); line-height:1.12; }
.mw-mobile-flow .story-step p{ max-width:52ch; color:var(--ink-soft); font-size:1.03rem; line-height:1.65; }
.control-scroll.mw-mobile-flow{ height:auto; }
.mw-mobile-flow .control-sticky{
  position:relative; top:auto;
  display:flex; flex-direction:column;
  height:auto; min-height:0; overflow:visible;
}
.mw-mobile-flow .control-copy{ position:relative; width:100%; padding:2.7rem clamp(1.3rem,5vw,2rem) 1rem; }
.mw-mobile-flow .control-steps{ display:grid; gap:0; min-height:0; }
.mw-mobile-flow .control-step{
  position:static; inset:auto; max-width:none;
  padding:1.4rem 0;
  border-bottom:1px solid var(--line);
  opacity:1; transform:none; pointer-events:auto;
}
.mw-mobile-flow .control-step:last-child{ border-bottom:0; }
.mw-mobile-flow .control-step h2{ max-width:20ch; font-size:clamp(1.9rem,7.4vw,2.65rem); line-height:1.12; }
.mw-mobile-flow .control-step p{ max-width:52ch; font-size:1.03rem; line-height:1.65; }
.mw-mobile-flow .control-stage{
  position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem;
  height:auto; min-height:0; width:100%;
  padding:1rem clamp(1.3rem,5vw,2rem) 2.7rem; overflow:visible;
}
.mw-mobile-flow .control-stage::before,.mw-mobile-flow .control-progress{ display:none; }
.mw-mobile-flow .control-photo{
  position:relative; inset:auto; grid-column:1 / -1;
  width:100%; margin:0 0 .4rem; aspect-ratio:16/10;
  border-width:5px; border-radius:19px; transform:none;
}
.mw-mobile-flow .control-card{
  position:static; inset:auto; width:auto; min-width:0; min-height:94px;
  padding:1rem; border-radius:13px;
  background:#fbf9f5;
  opacity:1; filter:none; transform:none;
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
.mw-mobile-flow .control-card span{ font-size:.73rem; }
.mw-mobile-flow .control-card b{ font-size:.95rem; line-height:1.3; }
.mw-mobile-flow .control-card small{ font-size:.73rem; line-height:1.4; }

@media (max-width:860px){
  header.nav{ gap:.5rem; padding:0 1rem; }
  .nav-links{ display:none; }
  .nav-actions{ gap:.45rem; }
  .nav-actions .btn{ display:inline-flex; min-height:44px; padding:.48rem .72rem; font-size:.72rem; }
  .nav-toggle{ display:inline-flex; width:44px; height:44px; }
  .logo{ font-size:.8rem; }
  .lang-switch{ font-size:.65rem; gap:.25rem; }
  .lang-switch a,.lang-switch .is-current{ min-height:44px; }
}
@media (max-width:820px){
  .hero{ padding-top:3.3rem; }
  .hero-grid{ gap:2rem; }
  h1.h-hero{ font-size:clamp(2.45rem,8.7vw,3.7rem); line-height:1.11; max-width:17ch; }
  p.lede{ font-size:1.09rem; line-height:1.65; }
  .section-head h2{ font-size:clamp(1.95rem,7.6vw,2.65rem); line-height:1.15; }
  .section-head p{ font-size:1.03rem; line-height:1.65; }
  .case-showcase h3{ font-size:1.7rem; }
  .case-showcase .body{ padding-top:1.2rem; }
  .case-showcase:nth-child(even){ margin-top:0; }
  .impact-scroll{ height:auto; }
  .impact-sticky{ position:relative; top:auto; height:auto; min-height:0; padding-top:3.7rem; padding-bottom:3.7rem; }
  .impact-sticky h2{ max-width:100%; font-size:clamp(2rem,7.8vw,3rem); line-height:1.16; }
  .impact-sticky h2 span{ color:#f6f4ee; transform:none; }
  .work-story-copy h2{ font-size:clamp(2rem,7.8vw,3rem); line-height:1.13; }
  .article-body p,.article-body li{ font-size:1.03rem; }
}
@media (max-width:560px){
  .hero{ padding-top:2.8rem; }
  h1.h-hero{ max-width:100%; font-size:clamp(2.3rem,9.4vw,3.1rem); }
  .hero-cta{ gap:.9rem; }
  .hero-cta .btn{ width:auto; min-width:170px; }
  .knowledge-card figure{ height:180px; }
  .case-showcase.case-showcase-wide{ padding:.85rem; }
  .case-showcase.case-showcase-wide h3{ font-size:1.85rem; }
  .case-showcase.case-showcase-wide .body{ padding:1.2rem .2rem .3rem; }
  .feature-card{ padding:1.6rem 1.15rem; }
  .mw-photo-label{ left:8px; bottom:8px; max-width:calc(100% - 16px); padding:.28rem .42rem; font-size:.62rem; }
  footer.site .foot-col a{ min-height:36px; }
}
@media (max-width:370px){
  header.nav{ padding:0 .7rem; gap:.2rem; }
  .logo{ font-size:.74rem; gap:.38rem; }
  .nav-actions{ gap:.25rem; }
  .nav-actions .btn{ padding:.48rem .6rem; font-size:.68rem; }
  .lang-switch{ font-size:.61rem; gap:.16rem; }
  .nav-toggle{ width:44px; }
}
@media (prefers-reduced-motion:reduce){
  .tech-sequence-sticky{ position:relative; top:auto; height:auto; min-height:0; }
  .nav-mobile,.mw-nav-scrim{ transition:none; }
  .mw-reveal-picture > img,
  .mw-reveal-picture > picture > img{ clip-path:none; transform:none!important; transition:none; }
  .control-scroll{ height:auto; }
  .control-sticky{ position:relative; top:auto; height:auto; min-height:0; display:block; overflow:visible; }
  .control-copy{ width:100%; padding:3rem clamp(1.3rem,5vw,3rem); }
  .control-steps{ display:grid; gap:2.2rem; min-height:0; }
  .control-step,.control-step:first-child{ position:static; opacity:1; transform:none; pointer-events:auto; }
  .control-step h2{ max-width:21ch; line-height:1.14; }
  .control-stage{ display:none; }
  .scroll-story{ height:auto; }
  .story-sticky{ position:relative; top:auto; height:auto; min-height:0; }
  .story-content{ min-height:0; padding-top:4rem; padding-bottom:4rem; gap:2rem; }
  .story-step{ position:static; opacity:1; transform:none; pointer-events:auto; }
  .story-step h2{ line-height:1.14; }
  .story-image:not(:first-child){ display:none; }
}
