@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  /* ComLab color system */
  --blue-1:#00B9E8;
  --blue-2:#0070FF;
  --blue-3:#1F75FE;
  --blue-4:#4666FF;
  --purple-1:#9400D3;
  --purple-2:#800080;
  --green-1:#00A86B;
  --green-2:#008000;
  --green-3:#009E60;
  --red-1:#C51E3A;
  --red-2:#DC143C;
  --red-3:#DC343B;
  --turquoise-1:#00CCCC;
  --turquoise-2:#40E0D0;

  /* semantic aliases */
  --coral:var(--red-3);
  --butter:var(--purple-1);
  --sage:var(--green-1);
  --mist:var(--turquoise-2);
  --aqua:var(--turquoise-1);
  --ink:#102422;
  --muted:#687775;
  --paper:#ffffff;
  --line:rgba(16,36,34,.14);
  --line-strong:rgba(16,36,34,.28);
  --max:1320px;
  --pad:clamp(20px,4vw,64px);
  --section-y:clamp(78px,9vw,132px);
  --header-h:104px;
  font-family:'Manrope',Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:inherit;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
img,svg{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
summary{list-style:none}
summary::-webkit-details-marker{display:none}

.section{
  width:100%;
  padding:var(--section-y) max(var(--pad),calc((100vw - var(--max))/2));
  position:relative;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.eyebrow::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  flex:0 0 auto;
}

h1,h2,h3{font-weight:800;letter-spacing:-.055em;text-wrap:balance}
h1{font-size:clamp(50px,6vw,92px);line-height:.94}
h2{font-size:clamp(38px,4.6vw,68px);line-height:.98}
h3{font-size:clamp(26px,2.6vw,42px);line-height:1.02}
p{line-height:1.65}

.reveal{opacity:0;transform:translateY(22px)}
.hero .reveal,.service-hero .reveal{opacity:1;transform:none}
.reveal.is-visible{opacity:1;transform:none;transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1)}

/* header */
.site-header{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  min-height:var(--header-h);
  padding:14px max(var(--pad),calc((100vw - var(--max))/2));
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .28s ease,border-color .28s ease,min-height .28s ease,padding .28s ease;
}
.site-header.is-scrolled{
  min-height:82px;
  padding-top:9px;
  padding-bottom:9px;
  background:rgba(255,255,255,.92);
  border-color:var(--line);
  backdrop-filter:blur(14px);
}
.brand{
  position:relative;
  display:block;
  width:max-content;
  line-height:0;
  margin-left:-8px;
}
.brand img{
  width:auto;
  height:150px;
  transition:height .55s cubic-bezier(.2,.72,.18,1), transform .55s cubic-bezier(.2,.72,.18,1);
  transform-origin:top left;
}
.site-header.is-scrolled .brand img{height:54px}
.header-actions{display:flex;align-items:center;gap:12px;padding-top:8px}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.7)}
.lang-switch a{padding:9px 11px;font-size:11px;font-weight:800;letter-spacing:.08em}
.lang-switch a.active{background:var(--ink);color:#fff}
.menu-button,.back-home{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:0 15px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--ink);
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.menu-button{cursor:pointer}
.menu-button i{width:4px;height:4px;border-radius:50%;background:var(--ink)}
.back-home{border-radius:0;border-width:0 0 1px;padding-inline:0;background:transparent}

/* menu */
.menu-overlay{
  position:fixed;
  z-index:950;
  inset:0;
  background:linear-gradient(135deg,color-mix(in srgb,var(--purple-1) 18%,#fff) 0%,color-mix(in srgb,var(--blue-1) 18%,#fff) 46%,color-mix(in srgb,var(--turquoise-2) 22%,#fff) 100%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .36s ease,visibility .36s ease;
}
body.menu-open .menu-overlay{opacity:1;visibility:visible;pointer-events:auto}
.menu-inner{
  min-height:100%;
  padding:120px max(var(--pad),calc((100vw - var(--max))/2)) 42px;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.menu-label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,36,34,.55)}
.overlay-nav{align-self:center;max-width:820px}
.overlay-nav a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding:13px 0;
  border-bottom:1px solid rgba(16,36,34,.16);
  font-size:clamp(34px,4vw,58px);
  line-height:1;
  font-weight:800;
  letter-spacing:-.05em;
}
.overlay-nav a:hover{color:var(--purple-1)}
.overlay-nav span{font-size:11px;letter-spacing:.12em;color:rgba(16,36,34,.48)}
.menu-foot{display:flex;justify-content:space-between;gap:20px;font-size:14px;color:rgba(16,36,34,.64)}

/* shared slider */
.content-slider{position:relative}
.content-slider-track{display:grid;min-height:min(67vh,620px)}
.content-slide{
  grid-area:1/1;
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr);
  gap:clamp(38px,6vw,96px);
  align-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(16px);
  transition:opacity .58s ease,transform .58s ease,visibility .58s ease;
}
.content-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.slide-copy{max-width:900px}
.slide-copy .eyebrow{margin-bottom:16px}
.slide-copy h1{max-width:11ch}
.slide-lead{margin-top:22px;max-width:38ch;color:var(--muted);font-size:clamp(17px,1.45vw,21px)}
.slide-visual{display:grid;place-items:center;justify-self:end}
.hero-illustration{
  width:clamp(230px,25vw,340px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  position:relative;
  animation:illustrationFloat 7s ease-in-out infinite;
}
.hero-illustration::before{
  content:"";
  position:absolute;
  inset:7%;
  border:1px solid var(--line);
  border-radius:50%;
  animation:illustrationSpin 20s linear infinite;
}
.hero-illustration::after{
  content:"";
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  top:14%;
  right:16%;
  background:var(--turquoise-2);
  box-shadow:-150px 120px 0 var(--red-3),-78px 205px 0 var(--purple-1);
  animation:illustrationDots 8s ease-in-out infinite;
}
.hero-illustration svg{width:55%;height:55%;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* hero PNG icon system: equal-size monochrome illustrations */
.hero-illustration.hero-image-art{
  width:clamp(320px,31vw,450px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  isolation:isolate;
  animation:heroIconFloat 6.8s ease-in-out infinite;
}
.hero-illustration.hero-image-art::before,
.hero-illustration.hero-image-art::after{
  content:none;
}
.hero-illustration.hero-image-art img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  filter:none;
  animation:heroIconBreath 6.8s ease-in-out infinite;
}
.hero-art-integrated,
.hero-art-system,
.hero-art-ai{
  --hero-art-accent:#000000;
  --hero-art-accent-2:#000000;
}
@keyframes heroIconFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes heroIconBreath{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.018)}
}

@keyframes illustrationFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes illustrationSpin{to{transform:rotate(360deg)}}
@keyframes illustrationDots{0%,100%{transform:translate(0,0)}50%{transform:translate(9px,-7px)}}
.hero-cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:26px;
  padding:13px 0 8px;
  border-bottom:1px solid var(--ink);
  font-size:14px;
  font-weight:800;
}
.content-slider-ui{display:flex;align-items:center;gap:16px;margin-top:18px}
.content-slider-dots{display:flex;align-items:center;gap:8px}
.content-slider-dot,.reference-coverflow-dot{border:0;padding:0;margin:0;cursor:pointer;background:rgba(16,36,34,.16)}
.content-slider-dot{width:9px;height:9px;border-radius:999px;transition:width .25s ease,background .25s ease}
.content-slider-dot.is-active{width:26px;background:var(--ink)}
.content-slider-count{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.content-slider-count .sep{width:24px;height:1px;background:var(--line-strong)}

/* home hero */
.hero{
  min-height:100svh;
  padding-top:calc(var(--header-h) + 22px);
  padding-bottom:78px;
  display:grid;
  align-items:center;
  overflow:hidden;
}
.hero-copy{position:relative;z-index:2}
.hero .slide-copy h1{font-size:clamp(50px,5.8vw,88px);max-width:10.5ch}
.hero-color-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.color-field{position:absolute;border-radius:50%;filter:blur(16px);opacity:.7}
.field-coral{width:36vw;height:36vw;right:-8vw;top:-12vw;background:color-mix(in srgb,var(--red-3) 18%,transparent);animation:blobA 15s ease-in-out infinite}
.field-aqua{width:28vw;height:28vw;right:20vw;bottom:-14vw;background:color-mix(in srgb,var(--turquoise-1) 18%,transparent);animation:blobB 17s ease-in-out infinite}
.field-butter{width:28vw;height:28vw;left:5vw;top:12vw;background:color-mix(in srgb,var(--purple-1) 15%,transparent);animation:blobC 16s ease-in-out infinite}
.field-sage{width:18vw;height:18vw;left:-6vw;bottom:16vw;background:color-mix(in srgb,var(--green-1) 18%,transparent)}
.hero-flow-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.45}
.hero-flow-lines path{stroke:rgba(16,36,34,.12);stroke-width:1.2;stroke-dasharray:9 18;animation:dash 22s linear infinite}
@keyframes blobA{50%{transform:translate(-3vw,2vw) scale(1.07)}}
@keyframes blobB{50%{transform:translate(-2vw,-2vw) scale(1.08)}}
@keyframes blobC{50%{transform:translate(2vw,-1vw) scale(1.05)}}
@keyframes dash{to{stroke-dashoffset:-180}}
.scroll-cue{
  position:fixed;
  z-index:70;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 15px;
  border:1px solid rgba(16,36,34,.08);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 10px 24px rgba(16,36,34,.08);
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:opacity .25s ease,transform .25s ease;
}
.scroll-cue::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--aqua);animation:pulse 2s ease-in-out infinite}
.scroll-cue i{width:54px;height:1px;background:var(--line-strong)}
.page-scrolled .scroll-cue{opacity:0;pointer-events:none;transform:translate(-50%,12px)}
@keyframes pulse{50%{transform:scale(1.35);opacity:.55}}

/* section headers */
.section-intro{display:grid;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:18px 36px;align-items:start;margin-bottom:44px}
.section-intro .eyebrow{grid-column:1}
.section-intro h2{grid-column:2}
.section-intro>p:last-child{grid-column:2;max-width:64ch;color:var(--muted);font-size:17px}

/* about */
.about-section{background:#fff}
.about-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:clamp(44px,7vw,100px);align-items:start}
.about-copy{max-width:760px}
.about-copy p{color:var(--muted);font-size:17px;margin-top:18px}
.about-copy .about-lead{margin-top:0;color:var(--ink);font-size:clamp(20px,1.8vw,27px);font-weight:600;line-height:1.5}
.belief-grid{border-top:1px solid var(--ink)}
.belief-item{display:grid;grid-template-columns:56px minmax(160px,.5fr) 1fr;gap:20px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.belief-item>span{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.belief-item h3{font-size:20px}
.belief-item p{position:relative;color:var(--muted);font-size:15px;padding-bottom:18px}
.belief-butter{--belief-accent:linear-gradient(90deg,var(--red-2),var(--purple-1))}
.belief-sage{--belief-accent:linear-gradient(90deg,var(--green-1),var(--turquoise-1))}
.belief-aqua{--belief-accent:linear-gradient(90deg,var(--blue-2),var(--turquoise-2))}
.belief-item p::after{content:"";position:absolute;left:0;bottom:0;width:76px;height:4px;border-radius:999px;background:var(--belief-accent);background-size:200% 100%;animation:accentShift 5s ease-in-out infinite alternate}

/* services */
.services-section{background:#fff}
.service-panels{border-top:1px solid var(--ink)}
.service-panel{
  --accent:var(--coral);
  display:grid;
  grid-template-columns:122px minmax(290px,.78fr) minmax(0,1fr);
  gap:24px 34px;
  align-items:start;
  padding:34px 0;
  border-bottom:1px solid var(--line);
}
.service-panel.theme-butter{--accent:var(--purple-1)}
.service-panel.theme-sage{--accent:var(--green-1)}
.service-panel.theme-aqua{--accent:var(--blue-2)}
.service-panel.theme-coral{--accent:var(--red-3)}
.service-panel-top{display:grid;gap:12px;justify-items:start}
.vicon{display:grid;place-items:center;width:58px;height:58px}
.vicon svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-panel-top .vicon{color:var(--accent)}
.service-arrow{opacity:0;transform:translateX(-6px);transition:opacity .24s ease,transform .24s ease}
.service-arrow svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:2}
.service-panel:hover .service-arrow{opacity:1;transform:none}
.service-panel-copy h3{font-size:clamp(32px,3.1vw,50px);max-width:12ch}
.service-panel-copy p{margin-top:14px;color:var(--muted);font-size:17px;max-width:54ch}
.service-tags{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start;padding-top:3px}
.service-tag{
  display:inline-grid;
  grid-template-columns:auto 22px;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:7px 8px 7px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  transition:border-color .2s ease,background .2s ease,transform .2s ease;
}
.service-tag-arrow{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:color-mix(in srgb,var(--accent) 10%,#fff);
  color:var(--accent);
  font-size:11px;
  line-height:1;
  font-weight:800;
}
.service-panel:hover .service-tag{border-color:rgba(16,36,34,.24);background:color-mix(in srgb,var(--accent) 4%,#fff)}
.service-tag:hover{transform:translateY(-1px)}


/* Service artwork: approved transparent PNG icon system */
.service-art-strategy{--service-art-accent:var(--red-3);--service-art-accent-2:var(--purple-1)}
.service-art-pr{--service-art-accent:var(--purple-1);--service-art-accent-2:var(--blue-4)}
.service-art-social{--service-art-accent:var(--green-1);--service-art-accent-2:var(--turquoise-2)}
.service-art-digital{--service-art-accent:var(--blue-2);--service-art-accent-2:var(--turquoise-1)}

.service-icon-art{
  position:relative;
  width:108px;
  aspect-ratio:1.15;
  display:grid;
  place-items:center;
  transform-origin:50% 58%;
  transition:transform .32s cubic-bezier(.2,.8,.2,1);
}
.service-icon-art::before{
  content:"";
  position:absolute;
  width:72%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--service-art-accent) 16%,transparent) 0,transparent 70%);
  animation:serviceArtGlow 4.8s ease-in-out infinite;
}
.service-icon-art img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 11px 16px color-mix(in srgb,var(--service-art-accent) 17%,transparent));
  animation:serviceArtFloat 5.2s ease-in-out infinite;
}
.service-panel:nth-child(2) .service-icon-art img{animation-delay:-1.2s}
.service-panel:nth-child(3) .service-icon-art img{animation-delay:-2.4s}
.service-panel:nth-child(4) .service-icon-art img{animation-delay:-3.6s}
.service-panel:hover .service-icon-art{transform:scale(1.06) rotate(-1.5deg)}

.service-hero-art{
  position:relative;
  width:clamp(360px,31vw,520px);
  aspect-ratio:1.34;
  display:grid;
  place-items:center;
  isolation:isolate;
}
.service-hero-art::before{
  content:"";
  position:absolute;
  inset:7% 12%;
  border:1px solid color-mix(in srgb,var(--service-art-accent) 28%,transparent);
  border-radius:50%;
  animation:serviceArtOrbit 13s linear infinite;
}
.service-hero-art::after{
  content:"";
  position:absolute;
  width:58%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--service-art-accent-2) 18%,transparent),transparent 68%);
  filter:blur(7px);
  animation:serviceArtGlow 4.6s ease-in-out infinite;
  z-index:-1;
}
.service-hero-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 20px 28px color-mix(in srgb,var(--service-art-accent) 18%,transparent));
  animation:serviceHeroArtFloat 6s ease-in-out infinite;
}
.content-slide:nth-child(2) .service-hero-art img{animation-delay:-1.8s}
.content-slide:nth-child(3) .service-hero-art img{animation-delay:-3.6s}

.service-contact-art{
  position:relative;
  z-index:2;
  width:180px;
  height:150px;
  display:grid;
  place-items:center;
}
.service-contact-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  animation:serviceHeroArtFloat 5.4s ease-in-out infinite;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.12));
}

@keyframes serviceArtFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-6px,0) rotate(1.4deg)}
}
@keyframes serviceHeroArtFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-12px,0) rotate(1deg)}
}
@keyframes serviceArtGlow{
  0%,100%{transform:scale(.92);opacity:.55}
  50%{transform:scale(1.08);opacity:1}
}
@keyframes serviceArtOrbit{
  from{transform:rotate(0deg) scale(.98)}
  50%{transform:rotate(180deg) scale(1.04)}
  to{transform:rotate(360deg) scale(.98)}
}

/* process */
.process-section{background:var(--blue-3);color:#fff;display:grid;grid-template-columns:minmax(0,.78fr) minmax(420px,.9fr);gap:clamp(42px,6vw,84px);align-items:start}
.process-sticky{position:sticky;top:104px;display:grid;align-content:start;gap:26px;padding-top:4px}
.process-copy h2{color:#fff}
.process-copy p:last-child{margin-top:20px;max-width:44ch;color:rgba(255,255,255,.82)}
.process-copy .eyebrow{color:rgba(255,255,255,.74)}
.process-center{position:relative;width:180px;height:180px;display:grid;place-items:center}
.process-center .vicon{width:64px;height:64px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.12)}
.process-center .vicon svg{stroke:#fff}
.process-orbit{position:absolute;inset:16px;border:1px dashed rgba(255,255,255,.36);border-radius:50%}
.process-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.45)}
.process-dot.dot-1{top:0;left:50%}.process-dot.dot-2{right:0;top:50%}.process-dot.dot-3{bottom:0;left:50%}.process-dot.dot-4{left:0;top:50%}.process-dot.active{background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.12)}
.process-step{display:grid;align-content:start;gap:8px;padding:38px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.process-step span{font-size:11px;font-weight:800;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.process-step h3{margin-top:8px;color:#fff;max-width:12ch;font-size:clamp(32px,3.4vw,50px)}
.process-step p{margin-top:8px;color:rgba(255,255,255,.78);max-width:46ch}

/* why */
.why-section{background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--turquoise-2) 10%,#fff) 100%)}
.why-section .section-intro{grid-template-columns:1fr;margin-bottom:56px}
.why-section .section-intro .eyebrow,.why-section .section-intro h2{grid-column:1}
.why-section .section-intro h2{width:100%;max-width:none;font-size:clamp(44px,4.4vw,66px);line-height:.96;text-wrap:balance}
.why-scroll{overflow:visible}
.why-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.why-card{position:relative;padding-top:4px}
.why-card::after{content:"";position:absolute;left:0;bottom:-10px;width:72px;height:3px;border-radius:999px;background:var(--why-accent);opacity:.8;animation:accentShift 6s ease-in-out infinite alternate}
.why-card.theme-coral{--why-accent:linear-gradient(90deg,var(--red-3),var(--purple-1))}
.why-card.theme-butter{--why-accent:linear-gradient(90deg,var(--purple-1),var(--blue-4))}
.why-card.theme-sage{--why-accent:linear-gradient(90deg,var(--green-1),var(--turquoise-2))}
.why-card.theme-aqua{--why-accent:linear-gradient(90deg,var(--blue-2),var(--turquoise-1))}
.why-card>div{display:flex;align-items:center;margin-bottom:18px}
.why-card>div>span:last-child{display:none}
.why-card .vicon{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--why-accent, var(--turquoise-1)) 8%,#fff);border:1px solid color-mix(in srgb,var(--why-accent, var(--turquoise-1)) 24%, rgba(16,36,34,.08));padding:12px;animation:whyFloat 5.5s ease-in-out infinite}
.why-card .vicon svg{width:32px;height:32px}
.why-card h3{font-size:28px;line-height:1.08;max-width:13ch;min-height:2.2em}
.why-card p{margin-top:12px;color:var(--muted);font-size:16px;max-width:30ch}

/* AI */
.ai-section{background:linear-gradient(180deg,color-mix(in srgb,var(--purple-1) 7%,#fff),color-mix(in srgb,var(--turquoise-2) 7%,#fff) 55%,#fff)}
.ai-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:clamp(48px,8vw,110px);align-items:center}
.ai-copy h2{margin-top:16px;max-width:11ch}
.ai-copy p:last-child{margin-top:20px;color:var(--muted);max-width:62ch}
.ai-diagram{position:relative;min-height:480px;display:grid;place-items:center}
.ai-diagram>svg{position:absolute;inset:0;width:100%;height:100%}
.ai-ring,.ai-cross,.ai-path{fill:none;stroke:rgba(16,36,34,.16);stroke-width:1.2}
.ai-ring.r3{stroke-dasharray:3 14}.ai-path{stroke-dasharray:6 12}
.ai-core{width:124px;height:124px;border-radius:36px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:800;z-index:2;box-shadow:0 18px 40px rgba(16,36,34,.16)}
.ai-label{position:absolute;padding:8px 0;border-bottom:2px solid var(--ink);font-size:13px;font-weight:700}.ai-label.l1{left:7%;top:28%}.ai-label.l2{right:8%;top:24%}.ai-label.l3{left:10%;bottom:27%}.ai-label.l4{right:5%;bottom:24%}
.ai-node{position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;border:4px solid var(--aqua);box-shadow:0 0 0 9px color-mix(in srgb,var(--turquoise-1) 12%,transparent);z-index:2}.ai-node.n1{left:18%;top:18%}.ai-node.n2{right:17%;top:26%}.ai-node.n3{right:23%;bottom:19%}.ai-node.n4{left:20%;bottom:23%}

/* references */
.clients-section{background:#fff;overflow:hidden}
.reference-coverflow{outline:none}
.reference-coverflow-stage{position:relative;height:470px;perspective:1200px;transform-style:preserve-3d}
.reference-slide{
  --ref-x:0%;--ref-y:0px;--ref-z:0px;--ref-scale:1;--ref-rotate:0deg;--ref-opacity:1;
  position:absolute;left:50%;top:50%;width:clamp(260px,25vw,360px);min-height:330px;padding:26px;
  display:flex;flex-direction:column;justify-content:flex-end;gap:14px;
  transform:translate(-50%,-50%) translateX(var(--ref-x)) translateY(var(--ref-y)) translateZ(var(--ref-z)) rotateY(var(--ref-rotate)) scale(var(--ref-scale));
  opacity:var(--ref-opacity);transition:transform .7s cubic-bezier(.2,.72,.18,1),opacity .5s ease,filter .5s ease;
  background:rgba(255,255,255,.94);box-shadow:0 18px 38px rgba(16,36,34,.07);overflow:hidden;
}
.reference-slide::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,248,248,.94))}
.reference-slide::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-42px;top:-40px;z-index:-1;background:color-mix(in srgb,var(--turquoise-1) 12%,transparent)}
.reference-slide:nth-child(1)::after{background:color-mix(in srgb,var(--blue-2) 15%,transparent)}
.reference-slide:nth-child(2)::after{background:color-mix(in srgb,var(--blue-4) 14%,transparent)}
.reference-slide:nth-child(3)::after{background:color-mix(in srgb,var(--red-2) 14%,transparent)}
.reference-slide:nth-child(4)::after{background:color-mix(in srgb,var(--purple-1) 13%,transparent)}
.reference-slide:nth-child(5)::after{background:color-mix(in srgb,var(--red-1) 12%,transparent)}
.reference-slide:nth-child(6)::after{background:color-mix(in srgb,var(--blue-3) 13%,transparent)}
.reference-logo{min-height:72px;display:grid;align-items:center}
.reference-logo img{max-width:190px;max-height:62px}
.reference-slide p{font-size:17px;line-height:1.58}
.reference-slide strong{font-size:11px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.reference-coverflow-ui{display:flex;justify-content:center;margin-top:8px}
.reference-coverflow-dots{display:flex;gap:8px}
.reference-coverflow-dot{width:8px;height:8px;border-radius:50%}.reference-coverflow-dot.is-active{background:var(--ink)}

/* FAQ */
.faq-section{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--blue-1) 5%,#fff))}
.faq-list{max-width:900px;margin-left:auto;border-top:1px solid var(--ink)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:22px 0;font-size:18px;font-weight:700;cursor:pointer}
.faq-list summary::after{content:"+";font-size:26px;font-weight:400}.faq-list details[open] summary::after{content:"−"}
.faq-list details p{padding:0 48px 24px 0;color:var(--muted);max-width:72ch}

@keyframes accentShift{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@keyframes whyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* leadership */
.leadership-section .section-intro h2{font-size:clamp(28px,2.7vw,42px);max-width:20ch}
.person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.person-card{background:transparent}
.person-image{aspect-ratio:1/.92;overflow:hidden}.person-image img{width:100%;height:100%;object-fit:contain}
.person-copy{padding-top:16px}.person-copy h3{font-size:32px}.person-copy .role{margin-top:5px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.person-copy>p:last-of-type{margin-top:7px;color:var(--muted)}
.person-links{display:flex;gap:16px;margin-top:12px}.person-links a{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink)}

/* contact */
.contact-section,.service-contact{background:var(--red-3);color:#fff}
.contact-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:50px;align-items:center}
.contact-card h2{margin-top:16px;max-width:10ch}.contact-card p:not(.eyebrow){margin-top:18px;max-width:54ch}.contact-email{display:inline-flex;align-items:center;gap:12px;margin-top:24px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.72);font-size:22px;font-weight:800}.contact-email span{width:32px;height:32px;display:grid;place-items:center}.contact-email svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2}
.contact-visual{min-height:240px;position:relative;display:grid;place-items:center}.contact-visual .vicon{width:120px;height:120px}.contact-visual .vicon svg{width:64px;height:64px}.pulse{position:absolute;border:1px solid rgba(255,255,255,.35);border-radius:50%;animation:pulseRing 4s ease-out infinite}.pulse.p1{width:130px;height:130px}.pulse.p2{width:180px;height:180px;animation-delay:.8s}.pulse.p3{width:230px;height:230px;animation-delay:1.6s}@keyframes pulseRing{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.1);opacity:0}}

.site-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px max(var(--pad),calc((100vw - var(--max))/2));font-size:12px;color:var(--muted);border-top:1px solid var(--line)}

/* service pages */
.service-page{background:#fff}
.service-hero{
  min-height:100svh;
  padding-top:calc(var(--header-h) + 18px);
  padding-bottom:60px;
  display:grid;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,color-mix(in srgb,var(--blue-1) 14%,#fff),#fff 58%,color-mix(in srgb,var(--turquoise-2) 12%,#fff));
}
.service-hero.theme-coral{background:linear-gradient(135deg,color-mix(in srgb,var(--red-3) 11%,#fff),#fff 58%,color-mix(in srgb,var(--purple-1) 8%,#fff))}
.service-hero.theme-butter{background:linear-gradient(135deg,color-mix(in srgb,var(--purple-1) 11%,#fff),#fff 60%,color-mix(in srgb,var(--blue-4) 7%,#fff))}
.service-hero.theme-sage{background:linear-gradient(135deg,color-mix(in srgb,var(--green-1) 12%,#fff),#fff 58%,color-mix(in srgb,var(--turquoise-1) 8%,#fff))}
.service-slider .content-slider-track{min-height:min(78vh,760px)}
.service-slider .content-slide{grid-template-columns:minmax(0,2.15fr) minmax(300px,.68fr);gap:clamp(56px,6vw,104px);align-items:center}
.service-slider .slide-copy{width:100%;max-width:1100px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.service-slider .slide-copy h1{width:100%;max-width:none;font-size:clamp(48px,4.8vw,76px);line-height:.94;text-wrap:balance}
.service-slider .slide-lead{max-width:46ch;font-size:clamp(18px,1.35vw,21px)}
.service-slider .slide-visual{align-self:center;justify-self:end;width:100%;display:flex;justify-content:flex-end;margin-top:-24px;margin-right:-2vw}
.service-illustration{width:clamp(260px,22vw,350px)}
.service-scroll-cue{bottom:18px}
.service-detail{display:grid;grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);gap:clamp(42px,7vw,100px);align-items:start}
.service-detail-head{position:sticky;top:118px}
.service-detail-head h2{margin-top:16px;font-size:40px;max-width:11ch}
.service-list{border-top:1px solid var(--ink)}
.service-item{border-bottom:1px solid var(--line);background:transparent}
.service-item summary{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:20px;
  padding:24px 0;
  cursor:pointer;
  font-size:clamp(20px,1.8vw,29px);
  font-weight:800;
  letter-spacing:-.025em;
  transition:color .22s ease;
}
.service-item summary::after{content:none}
.service-item:hover summary{color:var(--blue-4)}
.service-item[open] summary{color:var(--ink)}
.service-item-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:14px;
  color:var(--blue-2);
  transition:transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease;
}
.service-item:hover .service-item-icon{border-color:color-mix(in srgb,var(--blue-2) 35%,var(--line));background:color-mix(in srgb,var(--blue-1) 7%,#fff)}
.service-item[open] .service-item-icon{transform:rotate(90deg);border-color:var(--purple-1);color:var(--purple-1)}
.service-item p{padding:0 64px 22px 0;color:var(--muted);max-width:64ch;animation:detailsIn .3s ease both}
@keyframes detailsIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.service-approach{--approach-bg:var(--purple-2);--approach-bg-end:var(--purple-1);background:linear-gradient(135deg,var(--approach-bg),var(--approach-bg-end));color:#fff}
.service-approach.theme-coral{--approach-bg:var(--red-1);--approach-bg-end:var(--red-3)}
.service-approach.theme-butter{--approach-bg:var(--purple-2);--approach-bg-end:var(--purple-1)}
.service-approach.theme-sage{--approach-bg:var(--green-2);--approach-bg-end:var(--green-1)}
.service-approach.theme-aqua{--approach-bg:var(--blue-3);--approach-bg-end:var(--turquoise-1)}
.approach-card{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(260px,.95fr) minmax(360px,1.25fr);gap:26px 64px;align-items:start}.approach-card .eyebrow{grid-column:1 / -1;color:rgba(255,255,255,.62)}.approach-card h2{grid-column:1;margin-top:6px;color:#fff;max-width:11ch}.approach-card p:last-child{grid-column:2;margin-top:8px;color:rgba(255,255,255,.8);max-width:56ch;padding-top:16px}
.service-contact .contact-card{max-width:1100px;margin:0 auto}

.cursor-dot{display:none}

@media (max-width:1100px){
  :root{--header-h:92px}
  .brand img{height:140px}.site-header.is-scrolled .brand img{height:56px}
  .content-slider-track{min-height:650px}
  .content-slide,.service-slider .content-slide{grid-template-columns:1fr;gap:26px}
  .slide-visual,.service-slider .slide-visual{justify-self:start;order:-1;margin-top:0}
  .hero-illustration,.service-illustration{width:200px}
  .brand img{height:112px}.site-header.is-scrolled .brand img{height:50px}
  .hero .slide-copy h1,.service-slider .slide-copy h1{max-width:14ch}
  .section-intro{grid-template-columns:1fr}.section-intro .eyebrow,.section-intro h2,.section-intro>p:last-child{grid-column:1}
  .about-stage{grid-template-columns:1fr}
  .service-panel{grid-template-columns:94px minmax(240px,.9fr) 1fr}.service-icon-art{width:84px}.service-hero-art{width:300px}
  .process-section{grid-template-columns:1fr}.process-sticky{position:relative;top:auto}.process-step{padding:34px 0}
  .why-track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ai-shell{grid-template-columns:1fr}
  .person-grid{grid-template-columns:1fr 1fr}
  .service-detail{grid-template-columns:1fr}.service-detail-head{position:relative;top:auto}
}

@media (max-width:760px){
  :root{--pad:16px;--section-y:68px;--header-h:82px}
  .site-header{padding-inline:14px}
  .brand{margin-left:0}
  .brand img{height:76px}.site-header.is-scrolled .brand img{height:44px}
  .lang-switch{display:none}
  .overlay-nav a{font-size:36px}.menu-inner{padding-top:100px}
  .hero,.service-hero{min-height:auto;padding-top:108px;padding-bottom:82px}
  .content-slider-track,.service-slider .content-slider-track{min-height:590px}
  .slide-copy h1,.hero .slide-copy h1,.service-slider .slide-copy h1{font-size:clamp(38px,11vw,56px)}
  .slide-lead,.service-slider .slide-lead{font-size:16px;max-width:none}
  .hero-illustration,.service-illustration{width:150px}
  .scroll-cue{left:16px;right:16px;transform:none;justify-content:center}.page-scrolled .scroll-cue{transform:translateY(12px)}
  .belief-item{grid-template-columns:44px 1fr}.belief-item p{grid-column:2}
  .service-panel{grid-template-columns:72px 1fr;gap:16px 18px}.service-icon-art{width:66px}.service-hero-art{width:210px}.service-panel-copy{grid-column:2}.service-tags{grid-column:2}.service-panel-top{grid-row:1 / span 2}.service-panel-copy h3{font-size:32px}
  .service-tags span{white-space:normal}
  .why-track{grid-template-columns:1fr}.why-card h3{min-height:0;font-size:26px}.why-section .section-intro h2{font-size:clamp(38px,10vw,54px)}
  .ai-diagram{min-height:390px}.ai-core{width:100px;height:100px}.ai-label{font-size:11px}
  .reference-coverflow{overflow:hidden}
  .reference-coverflow-stage{height:auto;min-height:0;display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:6px 12px 10px 0;perspective:none;transform:none;scrollbar-width:none;-ms-overflow-style:none}
  .reference-coverflow-stage::-webkit-scrollbar{display:none}
  .reference-slide{position:relative;left:auto;top:auto;width:auto;min-height:300px;padding:22px;transform:none;opacity:1;scroll-snap-align:center;scroll-snap-stop:always;pointer-events:auto}
  .person-grid{grid-template-columns:1fr}
  .contact-card{grid-template-columns:1fr}.contact-visual{min-height:180px}
  .service-detail-head h2{font-size:34px}.service-item summary{font-size:21px}.service-item p{padding-right:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .service-icon-art img,.service-icon-art::before,.service-hero-art img,.service-hero-art::before,.service-hero-art::after,.service-contact-art img{animation:none}
  *,*::before,*::after{animation:none;transition-duration:.01ms}
  .reveal{opacity:1;transform:none}
}

/* palette-specific contrast */
.contact-section .eyebrow,.service-contact .eyebrow{color:rgba(255,255,255,.72)}
.contact-section h2,.service-contact h2,.contact-section .contact-email,.service-contact .contact-email{color:#fff}
.process-center .vicon{background:color-mix(in srgb,var(--blue-4) 28%,transparent)}
.process-dot{background:color-mix(in srgb,var(--turquoise-2) 70%,#fff)}
.process-dot.active{background:#fff}
.ai-core{background:var(--purple-2)}
.ai-label:nth-of-type(1){border-color:var(--blue-2)}
.ai-label:nth-of-type(2){border-color:var(--purple-1)}
.ai-label:nth-of-type(3){border-color:var(--green-1)}
.ai-label:nth-of-type(4){border-color:var(--turquoise-1)}

@media (max-width: 980px){.approach-card{grid-template-columns:1fr;gap:18px}.approach-card .eyebrow,.approach-card h2,.approach-card p:last-child{grid-column:1}.approach-card p:last-child{padding-top:0}}

/* ComLab logo, approved Vivus v8 integration */
.brand-logo-shell{
  position:relative;
  display:block;
  width:150px;
  height:150px;
  line-height:0;
  transition:width .55s cubic-bezier(.2,.72,.18,1),height .55s cubic-bezier(.2,.72,.18,1);
}
.site-header.is-scrolled .brand-logo-shell{width:54px;height:54px}
.brand-logo-final,
.brand-logo-outline{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.brand .brand-logo-final{
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:0;
  filter:brightness(0) saturate(100%) opacity(.24);
  transition:opacity 160ms ease,filter 900ms cubic-bezier(.22,.8,.2,1);
}
.brand-logo-outline{
  overflow:visible;
  opacity:1;
  transition:opacity 900ms ease;
}
.brand-logo-outline .vivus-part{
  fill:none;
  stroke:rgba(16,36,34,.58);
  stroke-width:1.2px;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.brand-logo-shell.is-hold .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(.24);
}
.brand-logo-shell.is-colorized .brand-logo-final,
.brand-logo-shell.is-complete .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(1);
}
.brand-logo-shell.is-colorized .brand-logo-outline,
.brand-logo-shell.is-complete .brand-logo-outline{
  opacity:0;
}
.brand-logo-shell.is-fallback .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(1);
}
.brand-logo-shell.is-fallback .brand-logo-outline{opacity:0}

@media (max-width:1200px){
  .brand-logo-shell{width:140px;height:140px}
  .site-header.is-scrolled .brand-logo-shell{width:56px;height:56px}
}
@media (max-width:980px){
  .brand-logo-shell{width:112px;height:112px}
  .site-header.is-scrolled .brand-logo-shell{width:50px;height:50px}
}
@media (max-width:760px){
  .brand-logo-shell{width:76px;height:76px}
  .site-header.is-scrolled .brand-logo-shell{width:44px;height:44px}
}
@media (prefers-reduced-motion:reduce){
  .brand .brand-logo-final{
    opacity:1;
    filter:brightness(0) saturate(100%) opacity(1);
  }
  .brand-logo-outline{display:none}
}



.service-panel .service-icon-art img,
.service-hero-art img{
  will-change:transform,filter;
}
.service-panel:hover .service-icon-art img,
.service-panel:focus-visible .service-icon-art img{
  transform:scale(1.04) rotate(-1deg);
}


@media (max-width: 760px){
  .hero-illustration.hero-image-art{
    width:min(74vw,330px);
  }
  .hero-illustration.hero-image-art img{
    width:100%;
    height:100%;
  }
}


/* Service page link colors */
.service-page-strategy{--service-link:var(--red-3);--service-link-soft:var(--red-1)}
.service-page-pr{--service-link:var(--purple-1);--service-link-soft:var(--purple-2)}
.service-page-social{--service-link:var(--green-1);--service-link-soft:var(--green-2)}
.service-page-digital{--service-link:var(--blue-2);--service-link-soft:var(--turquoise-1)}

.service-page a:not(.brand):not(.contact-email){
  color:var(--service-link);
}
.service-page .hero-cta,
.service-page .back-home{
  border-color:currentColor;
}
.service-page .service-item:hover summary{
  color:var(--service-link);
}
.service-page .service-item-icon{
  color:var(--service-link);
}
.service-page .service-item:hover .service-item-icon{
  color:var(--service-link);
  border-color:color-mix(in srgb,var(--service-link) 38%,var(--line));
  background:color-mix(in srgb,var(--service-link) 6%,#fff);
}
.service-page .service-item[open] .service-item-icon{
  color:var(--service-link);
  border-color:var(--service-link);
}
.service-page .service-contact{
  background:var(--service-link);
}
.service-page .service-contact .contact-email{
  color:#fff;
  border-color:rgba(255,255,255,.72);
}


/* v40: mobile header, menu, hero and service-link refinements */
.site-header.is-scrolled{
  min-height:70px;
  padding-top:7px;
  padding-bottom:7px;
}
.site-header.is-scrolled .brand-logo-shell{width:50px;height:50px}
.site-header.is-scrolled .brand .brand-logo-final{width:100%;height:100%;filter:none;opacity:1}
.brand .brand-logo-final{filter:none}

.service-main-link{color:var(--ink);text-decoration:none;transition:color .2s ease}
.service-main-link:hover{color:var(--accent)}
.service-main-icon-link{display:inline-grid;color:inherit}
.service-panel{cursor:default}
.service-tag{color:var(--ink);text-decoration:none}
.service-tag-arrow{display:block;width:18px;height:18px;padding:3px;border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,#fff);stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.service-tag:hover .service-tag-arrow{background:color-mix(in srgb,var(--accent) 18%,#fff)}
.service-item-icon{font-size:0}
.service-item-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inline-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.service-item{scroll-margin-top:88px}

@media (max-width:760px){
  :root{--header-h:72px}
  .site-header{min-height:72px;padding:8px 14px;align-items:flex-start}
  .site-header.is-scrolled{min-height:58px;padding:5px 14px;background:rgba(255,255,255,.96)}
  .brand-logo-shell{width:60px;height:60px}
  .site-header.is-scrolled .brand-logo-shell{width:46px;height:46px}
  .brand .brand-logo-final,
  .brand-logo-shell.is-hold .brand-logo-final,
  .brand-logo-shell.is-colorized .brand-logo-final,
  .brand-logo-shell.is-complete .brand-logo-final,
  .brand-logo-shell.is-fallback .brand-logo-final{
    opacity:1;
    filter:none;
    width:100%;
    height:100%;
  }
  .brand-logo-outline{display:none}
  .header-actions{padding-top:0;align-items:center}
  .menu-button,.back-home{min-height:36px;padding-inline:12px}
  .menu-inner{padding:142px 16px 28px;grid-template-rows:auto 1fr auto}
  .menu-label{margin:0 0 24px}
  .overlay-nav{align-self:start;width:100%;max-width:none}
  .overlay-nav a{font-size:clamp(31px,10vw,43px);padding:12px 0}
  .menu-foot{padding-top:24px}
  .hero .slide-visual,.service-slider .slide-visual{justify-self:center;width:100%;justify-content:center}
  .hero .hero-illustration-image,.hero .hero-image-art,.service-hero-art{margin-inline:auto}
  .hero .hero-illustration.hero-image-art{width:min(74vw,310px)}
  .content-slider-track,.service-slider .content-slider-track{min-height:620px}
  .service-panel{grid-template-columns:62px 1fr;gap:14px 16px}
  .service-icon-art{width:58px}
  .service-panel-copy{grid-column:2}
  .service-tags{grid-column:1 / -1;padding-top:8px}
  .service-panel-top{grid-row:1;grid-column:1}
  .service-panel-copy h3{font-size:30px}
  .service-tag{white-space:normal;min-height:34px}
}


/* v41: keep the open-menu label clear of the large logo */
@media (min-width:761px){
  .menu-inner{position:relative;grid-template-rows:1fr auto;overflow-y:auto}
  .menu-label{position:absolute;top:calc(var(--header-h) + 72px);left:max(var(--pad),calc((100vw - var(--max))/2));margin:0;z-index:2}
  .overlay-nav{grid-row:1}
  .menu-foot{grid-row:2}
}
@media (max-width:760px){
  .menu-inner{position:relative;grid-template-rows:auto 1fr auto;overflow-y:auto}
  .menu-label{position:static;margin:0 0 24px}
}


/* Subservice detail pages */
.compact-content-header{min-height:76px;padding-top:9px;padding-bottom:9px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.compact-content-header .brand img{height:58px}
.compact-content-header.is-scrolled .brand img{height:46px}
.subservice-page{--subservice-tint:color-mix(in srgb,var(--service-link) 7%,#fff)}
.subservice-page .subservice-hero{padding-top:150px;padding-bottom:clamp(58px,7vw,94px);background:linear-gradient(135deg,var(--subservice-tint),#fff 68%);border-bottom:1px solid var(--line)}
.content-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:clamp(42px,6vw,76px);font-size:12px;color:var(--muted)}
.content-breadcrumb a{color:var(--ink)}
.content-breadcrumb a:hover{color:var(--service-link,var(--blue-2))}
.subservice-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);gap:clamp(40px,8vw,120px);align-items:center}
.subservice-hero-copy h1{margin-top:18px;font-size:clamp(54px,7vw,100px);max-width:10ch}
.subservice-lead{margin-top:26px;max-width:62ch;font-size:clamp(18px,1.55vw,23px);color:var(--muted)}
.subservice-back-link,.subservice-readmore{display:inline-flex;align-items:center;gap:9px;color:var(--service-link);font-size:13px;font-weight:800}
.subservice-back-link{margin-top:28px;border-bottom:1px solid currentColor;padding-bottom:5px}
.subservice-hero-art{position:relative;display:grid;place-items:center;min-height:280px}
.subservice-hero-art img{position:relative;z-index:2;width:min(280px,80%);filter:drop-shadow(0 18px 34px color-mix(in srgb,var(--service-link) 18%,transparent));animation:serviceArtFloat 6s ease-in-out infinite}
.subservice-icon-halo{position:absolute;width:230px;height:230px;border-radius:50%;background:color-mix(in srgb,var(--service-link) 11%,transparent);animation:serviceArtGlow 5s ease-in-out infinite}
.subservice-explain{display:grid;grid-template-columns:minmax(260px,.55fr) minmax(0,1fr);gap:clamp(42px,8vw,120px);align-items:start}
.subservice-explain h2{margin-top:18px;font-size:clamp(34px,4vw,58px)}
.subservice-explain-copy{display:grid;gap:18px;font-size:clamp(17px,1.25vw,20px)}
.subservice-explain-copy p:last-child{color:var(--muted)}
.subservice-method{background:#f7f9f9;display:grid;grid-template-columns:minmax(260px,.6fr) minmax(0,1fr);gap:clamp(46px,8vw,120px)}
.subservice-method-copy h2{margin:18px 0 22px;font-size:clamp(34px,4vw,58px)}
.subservice-method-copy p:last-child{max-width:52ch;color:var(--muted)}
.subservice-steps ol{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line-strong)}
.subservice-steps li{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.subservice-steps li span{color:var(--service-link);font-size:11px;font-weight:800;letter-spacing:.12em}
.subservice-steps li p{font-size:clamp(17px,1.3vw,20px);font-weight:700}
.subservice-rich-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,8vw,120px);align-items:start}
.subservice-rich-copy h2{margin:18px 0 22px;font-size:clamp(38px,4.5vw,64px)}
.subservice-rich-copy p:last-child{color:var(--muted);max-width:56ch}
.subservice-point-grid{display:grid;gap:0;border-top:1px solid var(--line-strong)}
.subservice-point-grid article{padding:22px 0;border-bottom:1px solid var(--line)}
.subservice-point-grid span{font-size:11px;font-weight:800;color:var(--service-link)}
.subservice-point-grid h3{margin:7px 0 8px;font-size:26px}
.subservice-point-grid p{color:var(--muted)}
.subservice-related{width:min(760px,calc(100% - 2*var(--pad)));margin:0 auto var(--section-y);padding:34px;border:1px solid var(--line);border-left:4px solid var(--service-link);background:#fff}
.subservice-related h3{margin:14px 0 24px;font-size:clamp(26px,3vw,40px)}
.subservice-related a{color:var(--service-link);font-weight:800}
.subservice-readmore{margin:10px 0 22px;padding-bottom:4px;border-bottom:1px solid color-mix(in srgb,var(--service-link) 42%,transparent);width:max-content}
.subservice-contact{background:var(--service-link)}

/* Blog listing and article */
.blog-page .compact-content-header{background:rgba(255,255,255,.94)}
.blog-list-hero{padding-top:170px;padding-bottom:70px;background:linear-gradient(135deg,#f2f0ff 0,#eefcff 100%)}
.blog-list-intro{max-width:980px}
.blog-list-intro h1{margin:20px 0 26px;max-width:13ch;font-size:clamp(50px,6vw,88px)}
.blog-list-intro>p:last-child{max-width:62ch;color:var(--muted);font-size:clamp(18px,1.45vw,22px)}
.blog-grid-section{padding-top:72px}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.blog-card{display:flex;flex-direction:column;min-height:330px;padding:32px;border-bottom:1px solid var(--line-strong);transition:background .25s ease,transform .25s ease}
.blog-card:nth-child(odd){border-right:1px solid var(--line-strong)}
a.blog-card:hover{background:#f7f9f9;transform:translateY(-3px)}
.blog-category{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue-2)}
.blog-card h2{margin:30px 0 20px;font-size:clamp(28px,3vw,42px)}
.blog-card p{color:var(--muted)}
.blog-card-link{margin-top:auto;padding-top:28px;font-size:13px;font-weight:800}
.blog-card-soon .blog-card-link{color:var(--muted)}
.article-hero{padding-top:170px;padding-bottom:80px;background:#fff}
.article-hero h1{margin:24px 0 28px;font-size:clamp(52px,6.5vw,92px)}
.article-lead{font-size:clamp(19px,1.6vw,24px);color:var(--muted)}
.article-meta{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}
.article-body{width:min(850px,calc(100% - 2*var(--pad)));margin:0 auto;padding:40px 0 var(--section-y)}
.article-section{padding:42px 0;border-bottom:1px solid var(--line)}
.article-section h2{font-size:clamp(32px,4vw,52px);margin-bottom:22px}
.article-section p{font-size:clamp(17px,1.25vw,20px);color:#344745}
.article-related{margin-top:60px;padding:32px;background:#f3f8ff;border-left:4px solid var(--blue-2)}
.article-related span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted)}
.article-related h3{margin:10px 0 20px}
.article-related a{color:var(--blue-2);font-weight:800}

@media(max-width:760px){
 .compact-content-header{min-height:62px;padding:7px var(--pad)}
 .compact-content-header .brand img{height:48px}
 .subservice-page .subservice-hero,.blog-list-hero,.article-hero{padding-top:120px}
 .content-breadcrumb{margin-bottom:34px}
 .subservice-hero-grid,.subservice-explain,.subservice-method,.subservice-rich-section{grid-template-columns:1fr}
 .subservice-hero-art{min-height:210px;order:-1;justify-content:start}
 .subservice-hero-art img{width:190px}
 .subservice-icon-halo{width:165px;height:165px}
 .blog-grid{grid-template-columns:1fr}
 .blog-card:nth-child(odd){border-right:0}
 .blog-card{min-height:280px;padding:26px 0}
}


/* v45 reference mosaic: editorial, aligned, borderless */
.reference-mosaic-section{background:#fff}
.reference-mosaic{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:row;
  align-items:start;
  column-gap:clamp(34px,4vw,64px);
  row-gap:clamp(58px,5vw,84px);
  margin-top:58px;
}
.reference-tile{
  position:relative;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:visible;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.reference-tile:hover{transform:translateY(-3px)}
.reference-tile.has-image{background:transparent}
.reference-media{
  width:100%;
  aspect-ratio:16/10;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin:0 0 clamp(18px,2vw,28px);
  padding:0;
  overflow:hidden;
  background:transparent;
}
.reference-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center bottom;
}
.reference-tile-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  min-width:0;
  height:auto;
  padding:0;
}
.reference-brand{
  min-height:30px;
  display:flex;
  align-items:center;
  margin:0;
}
.reference-brand img{
  width:auto;
  max-width:132px;
  max-height:30px;
  object-fit:contain;
  object-position:left center;
  display:block;
}
.reference-brand-large{
  min-height:48px;
  display:flex;
  align-items:center;
  margin:0 0 4px;
}
.reference-brand-large img{
  width:auto;
  max-width:160px;
  max-height:44px;
}
.reference-tile p{
  margin:0;
  max-width:62ch;
  color:#344745;
  font-size:15px;
  line-height:1.68;
}
.reference-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:6px;
}
.reference-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
  transition:border-color .2s ease,transform .2s ease;
}
.reference-tag:hover{
  background:#fff;
  border-color:var(--ink);
  transform:translateY(-1px);
}
.reference-project-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  width:max-content;
  margin-top:2px;
  font-size:12px;
  font-weight:800;
}
.reference-project-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.tile-bramac{grid-column:span 6}
.tile-cofidis{grid-column:span 6}
.tile-lactalis,.tile-cchbc,.tile-purina{grid-column:span 4}
.tile-piaggio{grid-column:2 / span 8}
.tile-piaggio .reference-tile-body{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:start;
  column-gap:34px;
  row-gap:12px;
}
.tile-piaggio .reference-brand-large{
  grid-column:1;
  grid-row:1 / span 2;
  margin:0;
}
.tile-piaggio p{grid-column:2;grid-row:1}
.tile-piaggio .reference-tags{grid-column:2;grid-row:2;margin-top:0}

.service-references{background:#fff}
.reference-context-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:clamp(44px,4vw,64px) clamp(28px,3vw,48px);
  margin-top:42px;
}
.reference-tile-compact{min-height:0}
.reference-tile-compact .reference-media{
  aspect-ratio:16/10;
  margin-bottom:18px;
}
.reference-tile-compact .reference-tile-body{
  gap:12px;
}
.reference-tile-compact p{
  font-size:14px;
  line-height:1.65;
}
.reference-tile-compact .reference-brand-large{
  min-height:42px;
  margin-bottom:2px;
}
.reference-tile-compact .reference-brand-large img{
  max-height:38px;
  max-width:150px;
}
.article-featured{width:min(1180px,calc(100% - 2*var(--pad)));margin:0 auto 20px;border-radius:24px;overflow:hidden;background:#f2f6f8}
.article-featured img{width:100%;aspect-ratio:1.9/1;object-fit:cover;display:block}
.article-keypoints{margin:38px 0;padding:26px 28px;background:#f3f8ff;border-radius:18px;border-left:4px solid var(--blue-2)}
.article-keypoints ul{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}
.article-keypoints li{position:relative;padding-left:22px;color:#344745;line-height:1.6}
.article-keypoints li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--blue-2)}
.article-pullquote{margin:44px 0;padding:34px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.article-pullquote p{margin:0;font-size:clamp(25px,3vw,38px);font-weight:800;letter-spacing:-.035em;line-height:1.15;color:var(--ink)}
.article-embed-section{border-bottom:0}
.article-embed{position:relative;aspect-ratio:16/9;margin-top:24px;overflow:hidden;border-radius:20px;border:1px solid var(--line-strong);background:#f6f8f8}
.article-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.embed-caption{margin-top:12px;font-size:13px;color:var(--muted)}
.article-reference-section{
  width:100%;
  margin:72px 0 0;
  padding:48px 0 0;
  border-top:1px solid var(--line);
}
.article-reference-head{
  max-width:720px;
  margin:0 0 34px;
}
.article-reference-head h2{
  margin-top:14px;
  font-size:clamp(30px,3.6vw,46px);
  line-height:1.02;
}
.article-reference-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:46px 34px;
  margin-top:0;
}
.article-form-section{margin-top:80px;padding:42px;border-radius:24px;background:#f5f8f8;border:1px solid var(--line)}
.article-form-copy{max-width:650px;margin-bottom:30px}
.article-form-copy h2{margin:12px 0 16px;font-size:clamp(32px,4vw,54px)}
.article-form-copy p:last-child{color:var(--muted)}
.demo-contact-form{display:grid;gap:24px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid label{display:grid;gap:8px}
.form-grid label>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink);padding:14px 15px;font:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--blue-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue-2) 12%,transparent)}
.form-grid textarea{resize:vertical;min-height:130px}
.form-field-wide{grid-column:1/-1}
.form-checks{display:grid;gap:12px}
.check-row{display:flex;align-items:flex-start;gap:11px;font-size:13px;color:#344745;cursor:pointer}
.check-row input{position:absolute;opacity:0;pointer-events:none}
.check-box{position:relative;flex:0 0 20px;width:20px;height:20px;border:1px solid var(--line-strong);border-radius:5px;background:#fff}
.check-row input:checked+.check-box{background:var(--blue-2);border-color:var(--blue-2)}
.check-row input:checked+.check-box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.form-submit{display:inline-flex;align-items:center;gap:12px;width:max-content;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:14px 20px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:transform .2s ease,opacity .2s ease}
.form-submit:hover{transform:translateY(-2px)}
.form-submit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form-status{margin:0;color:var(--blue-2);font-size:13px;font-weight:700}
.blog-card-featured{padding-top:20px}
.blog-card-media{margin:-10px -10px 26px;overflow:hidden;border-radius:16px;background:#f2f6f8}
.blog-card-media img{width:100%;aspect-ratio:16/8;object-fit:cover;display:block;transition:transform .45s ease}
a.blog-card-featured:hover .blog-card-media img{transform:scale(1.025)}
@media(max-width:980px){
 .reference-mosaic{
   grid-template-columns:repeat(2,minmax(0,1fr));
   column-gap:34px;
   row-gap:58px;
 }
 .tile-bramac,.tile-cofidis,.tile-lactalis,.tile-cchbc,.tile-purina,.tile-piaggio{
   grid-column:span 1;
 }
 .tile-piaggio .reference-tile-body{
   display:flex;
 }
 .tile-piaggio .reference-tags{
   margin-top:6px;
 }
 .reference-context-grid{
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:44px 30px;
 }
}
@media(max-width:680px){
 .reference-mosaic,.reference-context-grid,.article-reference-grid{
   grid-template-columns:1fr;
 }
 .reference-mosaic{
   row-gap:52px;
   margin-top:42px;
 }
 .reference-media{
   aspect-ratio:16/10;
   margin-bottom:18px;
 }
 .reference-tile-body{
   padding:0;
 }
 .article-reference-section{
   width:100%;
   margin:56px 0 0;
   padding-top:40px;
 }
 .article-form-section{padding:26px 20px;border-radius:18px}
 .form-grid{grid-template-columns:1fr}
 .form-field-wide{grid-column:auto}
 .article-featured{width:calc(100% - 2*var(--pad));border-radius:16px}
}


/* v46 portfolio system */
.portfolio-section{background:#fff}
.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:dense;
  align-items:stretch;
  gap:clamp(28px,3vw,44px);
  margin-top:clamp(48px,5vw,72px);
}
.portfolio-card{
  min-width:0;
  min-height:370px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.portfolio-card:hover{transform:translateY(-4px)}
.portfolio-media{
  height:215px;
  margin:0 0 22px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.portfolio-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center bottom;
}
.portfolio-content{
  min-height:0;
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.portfolio-card--text .portfolio-content{
  padding-top:20px;
  border-top:1px solid var(--line);
}
.portfolio-brand{
  min-height:34px;
  display:flex;
  align-items:center;
}
.portfolio-brand img{
  width:auto;
  max-width:150px;
  max-height:34px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.portfolio-description{
  margin:0;
  color:#344745;
}
.portfolio-card--media .portfolio-description{
  max-width:60ch;
  font-size:14px;
  line-height:1.65;
}
.portfolio-card--text .portfolio-description{
  margin:auto 0;
  max-width:23ch;
  font-size:clamp(20px,1.65vw,28px);
  font-weight:750;
  letter-spacing:-.035em;
  line-height:1.15;
  color:var(--ink);
}
.portfolio-card--text.p-lactalis .portfolio-description,
.portfolio-card--text.p-piaggio .portfolio-description{
  max-width:25ch;
  font-size:clamp(23px,2vw,33px);
}
.portfolio-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:auto;
}
.portfolio-tag{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
  font-weight:800;
  letter-spacing:.035em;
  transition:transform .2s ease,border-color .2s ease;
}
.portfolio-tag:hover{transform:translateY(-1px);border-color:var(--ink)}
.portfolio-project-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:2px;
  color:var(--ink);
  font-size:11px;
  font-weight:800;
}
.portfolio-project-link svg,
.section-link-button svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.p-bramac{grid-column:1 / span 7}
.p-lactalis{grid-column:8 / span 5}
.p-cofidis{grid-column:1 / span 6}
.p-cchbc{grid-column:7 / span 3}
.p-purina{grid-column:10 / span 3}
.p-piaggio{grid-column:3 / span 8}

.section-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(44px,5vw,70px);
}
.section-link-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:13px 18px;
  border:1px solid var(--ink);
  border-radius:999px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.section-link-button:hover{
  background:var(--ink);
  color:#fff;
  transform:translateY(-2px);
}

/* portfolio collection page */
.collection-page-hero,
.team-page-hero{
  padding-top:130px;
  padding-bottom:clamp(54px,7vw,96px);
}
.collection-page-intro,
.team-page-intro{max-width:920px}
.collection-page-intro h1,
.team-page-intro h1{
  margin-top:18px;
  font-size:clamp(52px,7vw,94px);
}
.collection-page-intro>p:last-child,
.team-page-intro>p:last-child{
  margin-top:22px;
  color:var(--muted);
  font-size:clamp(17px,1.4vw,21px);
}
.portfolio-filter{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:4px 0 0;
}
.portfolio-filter button{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:8px 12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.portfolio-filter button.is-active{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.portfolio-card.is-filtered-out{display:none}

/* team page */
.team-preview-section .section-actions{margin-top:42px}
.team-page-main{background:#fff}
.team-page-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(34px,4vw,60px);
}
.team-page-grid .person-card{min-width:0}
.team-page-grid .person-image{
  aspect-ratio:1/.95;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.team-page-grid .person-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}
.team-page-grid .person-copy h2{
  margin-top:18px;
  font-size:clamp(29px,2.4vw,40px);
}
.team-page-grid .person-copy .role{
  margin-top:6px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.team-page-grid .person-copy>p:not(.role){
  margin-top:10px;
  color:var(--muted);
}
.team-page-note{
  margin-top:clamp(70px,8vw,120px);
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(40px,7vw,100px);
  padding-top:42px;
  border-top:1px solid var(--line);
}
.team-page-note h2{font-size:clamp(34px,4vw,58px)}
.team-page-note p{max-width:60ch;color:var(--muted);font-size:18px}

@media(max-width:980px){
  .portfolio-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .p-bramac,.p-lactalis,.p-cofidis,.p-cchbc,.p-purina,.p-piaggio{
    grid-column:auto;
  }
  .portfolio-card{min-height:350px}
  .team-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .portfolio-grid{grid-template-columns:1fr;gap:50px}
  .portfolio-card{min-height:0}
  .portfolio-media{height:auto;aspect-ratio:16/10}
  .portfolio-card--text .portfolio-description,
  .portfolio-card--text.p-lactalis .portfolio-description,
  .portfolio-card--text.p-piaggio .portfolio-description{
    margin:24px 0 30px;
    font-size:clamp(24px,7vw,34px);
  }
  .team-page-grid{grid-template-columns:1fr}
  .team-page-note{grid-template-columns:1fr}
  .collection-page-hero,.team-page-hero{padding-top:108px}
}


/* v47 editorial reference system */
.reference-editorial{
  display:grid;
  gap:clamp(64px,7vw,108px);
  margin-top:clamp(52px,6vw,82px);
}
.reference-feature{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);
  gap:clamp(42px,6vw,92px);
  align-items:center;
  min-width:0;
}
.reference-feature.is-reverse{
  grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);
}
.reference-feature.is-reverse .reference-feature-media{order:2}
.reference-feature.is-reverse .reference-feature-copy{order:1}

.reference-feature-media{
  min-width:0;
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.reference-feature-media img{
  width:100%;
  height:auto;
  max-height:520px;
  display:block;
  object-fit:contain;
}
.reference-feature-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
}
.reference-feature-brand{
  min-height:38px;
  display:flex;
  align-items:center;
}
.reference-feature-brand img{
  width:auto;
  max-width:160px;
  max-height:36px;
  display:block;
  object-fit:contain;
}
.reference-feature-copy h3{
  font-size:clamp(34px,3.8vw,58px);
  line-height:1;
}
.reference-feature-copy p{
  margin:0;
  color:#344745;
  font-size:clamp(16px,1.25vw,19px);
  line-height:1.7;
}
.reference-feature-tags,
.reference-text-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.reference-feature-tag,
.reference-text-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  color:var(--ink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
}
.reference-feature-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:2px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
}
.reference-feature-link svg,
.reference-overview-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.reference-text-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(30px,3vw,48px);
  align-items:stretch;
}
.reference-text-item{
  min-width:0;
  min-height:310px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.reference-text-item:nth-child(1){grid-column:span 7}
.reference-text-item:nth-child(2){grid-column:span 5}
.reference-text-item:nth-child(3){grid-column:span 5}
.reference-text-item:nth-child(4){grid-column:span 7}
.reference-text-brand{
  min-height:42px;
  display:flex;
  align-items:center;
}
.reference-text-brand img{
  width:auto;
  max-width:165px;
  max-height:42px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.reference-text-item p{
  margin:auto 0;
  color:var(--ink);
  font-size:clamp(24px,2.2vw,38px);
  font-weight:750;
  letter-spacing:-.04em;
  line-height:1.08;
}
.reference-text-item:nth-child(2) p,
.reference-text-item:nth-child(3) p{
  font-size:clamp(21px,1.8vw,31px);
}
.reference-overview-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-bottom:7px;
  border-bottom:1px solid var(--ink);
  color:var(--ink);
  font-size:13px;
  font-weight:800;
}
.reference-editorial-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(46px,5vw,72px);
}

/* Reference collection page uses the same visual language. */
.reference-collection .reference-editorial{
  margin-top:42px;
}
.reference-collection [data-reference-unit].is-filtered-out{
  display:none;
}

@media(max-width:980px){
  .reference-feature,
  .reference-feature.is-reverse{
    grid-template-columns:1fr;
    gap:30px;
  }
  .reference-feature.is-reverse .reference-feature-media,
  .reference-feature.is-reverse .reference-feature-copy{
    order:initial;
  }
  .reference-feature-media{
    min-height:0;
  }
  .reference-text-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reference-text-item:nth-child(n){
    grid-column:auto;
  }
}
@media(max-width:680px){
  .reference-editorial{
    gap:62px;
  }
  .reference-feature-copy h3{
    font-size:clamp(32px,10vw,48px);
  }
  .reference-text-grid{
    grid-template-columns:1fr;
    gap:48px;
  }
  .reference-text-item{
    min-height:0;
  }
  .reference-text-item p,
  .reference-text-item:nth-child(2) p,
  .reference-text-item:nth-child(3) p{
    margin:24px 0 28px;
    font-size:clamp(25px,7.5vw,36px);
  }
}


/* v47 team profile pages */
.person-name-link{
  color:inherit;
  text-decoration:none;
}
.person-name-link:hover{
  opacity:.68;
}
.person-image-link{
  display:block;
  height:100%;
}
.member-page{background:#fff}
.member-hero{
  padding-top:130px;
  padding-bottom:clamp(54px,7vw,96px);
}
.member-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.65fr);
  gap:clamp(50px,8vw,120px);
  align-items:end;
}
.member-hero-copy h1{
  margin-top:18px;
  font-size:clamp(56px,7.5vw,108px);
  line-height:.92;
}
.member-role{
  margin-top:22px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.member-lead{
  margin-top:22px;
  font-size:clamp(18px,1.5vw,23px);
  line-height:1.65;
  color:#344745;
}
.member-hero-image{
  min-height:420px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.member-hero-image img{
  width:100%;
  height:100%;
  max-height:620px;
  object-fit:contain;
  object-position:center bottom;
}
.member-content{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  gap:clamp(50px,8vw,120px);
  align-items:start;
}
.member-aside{
  position:sticky;
  top:110px;
  display:grid;
  gap:10px;
}
.member-aside a{
  width:max-content;
  font-size:13px;
  font-weight:800;
  border-bottom:1px solid var(--ink);
}
.member-main{
  display:grid;
  gap:48px;
}
.member-block{
  padding-top:30px;
  border-top:1px solid var(--line);
}
.member-block h2{
  font-size:clamp(30px,3.5vw,50px);
}
.member-block p{
  margin-top:18px;
  color:#344745;
  font-size:18px;
  line-height:1.75;
}
.member-focus{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:22px;
}
.member-focus span{
  padding:8px 11px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
@media(max-width:760px){
  .member-hero{padding-top:108px}
  .member-hero-grid,
  .member-content{
    grid-template-columns:1fr;
  }
  .member-hero-image{
    min-height:260px;
    order:-1;
  }
  .member-aside{
    position:static;
  }
}



/* v49 reference mosaic: isolated component */
.refx-shell{
  width:100%;
  margin-top:clamp(46px,5vw,72px);
}
.refx-layout{
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(46px,5vw,68px);
}
.refx-layout-main{
  width:100%;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.62fr);
  gap:clamp(30px,3.5vw,52px);
  align-items:start;
}
.refx-layout-right{
  min-width:0;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(28px,3vw,42px);
}
.refx-layout-split{
  min-width:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,2.4vw,34px);
}
.refx-tile{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:0 0 28px;
  margin:0;
  border:0;
  border-bottom:1px solid rgba(11,35,32,.13);
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.refx-media{
  width:100%;
  min-width:0;
  margin:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
}
.refx-media img{
  width:100%;
  height:auto;
  max-height:440px;
  display:block;
  object-fit:contain;
  object-position:center;
}
.refx-body{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
}
.refx-brand{
  min-width:0;
  min-height:30px;
  display:flex;
  align-items:center;
}
.refx-brand img{
  width:auto;
  max-width:160px;
  max-height:34px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.refx-tile h3{
  width:100%;
  margin:0;
  font-size:clamp(31px,3vw,49px);
  line-height:1.02;
  letter-spacing:-.045em;
  overflow-wrap:break-word;
}
.refx-tile p{
  width:100%;
  max-width:none;
  margin:0;
  color:#374845;
  font-size:clamp(15px,1.08vw,18px);
  line-height:1.66;
  overflow-wrap:break-word;
}
.refx-text{
  min-height:250px;
  justify-content:space-between;
}
.refx-text h3{
  margin:auto 0;
  font-size:clamp(28px,2.8vw,44px);
  line-height:1.04;
}
.refx-layout-split .refx-text h3{
  font-size:clamp(25px,2.25vw,36px);
}
.refx-footer{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  margin-top:auto;
}
.refx-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.refx-tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:7px 10px;
  border:1px solid rgba(11,35,32,.2);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.025em;
}
.refx-link,
.refx-overview-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  text-decoration:none;
}
.refx-link svg,
.refx-overview-link svg{
  width:15px;
  height:15px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.refx-overview-wrap{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(42px,5vw,62px);
}
.refx-overview-link{
  padding-bottom:8px;
  border-bottom:1px solid var(--ink);
}

/* The right-hand featured project follows the supplied tile reference: image and copy side by side. */
.refx-layout-right > .refx-tile:not(.refx-text){
  display:grid;
  grid-template-columns:minmax(240px,.95fr) minmax(0,1.05fr);
  column-gap:clamp(26px,3vw,42px);
  row-gap:0;
  align-items:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
  grid-column:1;
  align-self:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
  grid-column:2;
  align-self:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-media img{
  max-height:360px;
}
.refx-layout-right > .refx-tile:not(.refx-text) h3{
  font-size:clamp(29px,2.7vw,44px);
}

.service-references .section-intro,
.article-reference-section .article-reference-head{
  max-width:none;
}
.service-references .section-intro h2,
.article-reference-section .article-reference-head h2{
  max-width:none;
}
.refx-article-wrap{
  display:block;
  width:100%;
  margin-top:clamp(34px,4vw,54px);
}
.refx-article-wrap .refx-shell{
  margin-top:0;
}
.reference-collection [data-reference-unit].is-filtered-out{
  display:none;
}

@media(max-width:1120px){
  .refx-layout-main{
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.35fr);
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    grid-template-columns:1fr;
    gap:18px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media,
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:1;
  }
}
@media(max-width:860px){
  .refx-layout-main{
    grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr);
    gap:24px;
  }
  .refx-layout-split{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .refx-text{
    min-height:200px;
  }
  .refx-layout-right{
    gap:24px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);
    gap:22px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}
@media(max-width:680px){
  .refx-layout,
  .refx-layout-right{
    gap:36px;
  }
  .refx-layout-split{
    grid-template-columns:1fr;
    gap:34px;
  }
  .refx-tile{
    gap:15px;
    padding-bottom:22px;
  }
  .refx-text{
    min-height:0;
  }
  .refx-tile h3,
  .refx-text h3,
  .refx-layout-split .refx-text h3{
    margin:0;
    font-size:clamp(29px,8.8vw,42px);
  }
  .refx-media img{
    max-height:none;
  }
}


/* v50: explicit desktop mosaic placement */
@media (min-width:1121px){
  .refx-layout-main{
    grid-template-columns:minmax(300px,.82fr) minmax(0,1.58fr);
    align-items:start;
  }
  .refx-layout-right{
    grid-template-columns:1fr;
    align-content:start;
  }
  .refx-layout-split{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .refx-layout-main > .refx-tile:first-child{
    align-self:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(250px,.95fr) minmax(0,1.05fr);
    column-gap:clamp(28px,3vw,46px);
    align-items:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}


/* v51: mosaic remains multi-column until true mobile */
@media (min-width:681px){
  .refx-layout-main{
    display:grid;
    grid-template-columns:minmax(230px,.8fr) minmax(0,1.45fr);
    gap:clamp(24px,3vw,48px);
    align-items:start;
  }
  .refx-layout-right{
    display:grid;
    grid-template-columns:1fr;
    gap:clamp(24px,3vw,40px);
    min-width:0;
  }
  .refx-layout-split{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(18px,2.2vw,32px);
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);
    column-gap:clamp(22px,2.7vw,42px);
    align-items:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}
@media (min-width:1200px){
  .refx-layout-main{
    grid-template-columns:minmax(330px,.78fr) minmax(0,1.62fr);
  }
}
/* Reference collection should use the full section width, not an article-style narrow column. */
.collection-page .portfolio-collection,
.collection-page .reference-collection{
  width:100%;
}
.collection-page .refx-shell,
.collection-page .refx-layout{
  width:100%;
  max-width:none;
}


/* v52: stable three-column reference grid */
.refx-layout{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,3.4vw,52px);
  align-items:stretch;
}
.refx-layout-main,
.refx-layout-right,
.refx-layout-split{
  display:contents;
}
.refx-layout .refx-tile,
.refx-layout-right > .refx-tile:not(.refx-text){
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  min-height:100%;
  gap:16px;
  padding:0 0 28px;
  border-bottom:1px solid rgba(11,35,32,.13);
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-media,
.refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
  grid-column:auto;
}
.refx-media{
  width:100%;
  aspect-ratio:16/10;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin:0;
  overflow:hidden;
}
.refx-media img{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  object-position:center bottom;
}
.refx-body{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}
.refx-brand{
  min-height:34px;
}
.refx-brand img{
  max-width:150px;
  max-height:32px;
}
.refx-tile h3,
.refx-layout-right > .refx-tile:not(.refx-text) h3{
  margin:0;
  font-size:clamp(27px,2.35vw,38px);
  line-height:1.02;
}
.refx-text{
  min-height:0;
}
.refx-text h3,
.refx-layout-split .refx-text h3{
  margin:8px 0 18px;
  font-size:clamp(29px,2.7vw,43px);
  line-height:1.03;
}
.refx-tile p{
  font-size:15px;
  line-height:1.65;
}
.refx-footer{
  margin-top:auto;
}
.refx-article-wrap{
  width:min(var(--max),calc(100vw - 2*var(--pad)));
  margin-left:50%;
  transform:translateX(-50%);
}
@media(max-width:980px){
  .refx-layout{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .refx-layout{
    grid-template-columns:1fr;
    gap:42px;
  }
  .refx-layout .refx-tile,
  .refx-layout-right > .refx-tile:not(.refx-text){
    min-height:0;
  }
  .refx-media{
    aspect-ratio:16/10;
  }
  .refx-tile h3,
  .refx-text h3,
  .refx-layout-split .refx-text h3,
  .refx-layout-right > .refx-tile:not(.refx-text) h3{
    font-size:clamp(29px,9vw,42px);
  }
  .refx-article-wrap{
    width:100%;
    margin-left:0;
    transform:none;
  }
}

/* Latest posts component */
.latest-posts-section{
  background:#fff;
}
.latest-posts-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,3.4vw,52px);
  margin-top:clamp(42px,5vw,64px);
}
.latest-post-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  color:var(--ink);
  text-decoration:none;
  padding-bottom:26px;
  border-bottom:1px solid rgba(11,35,32,.13);
  transition:transform .25s ease;
}
.latest-post-card:hover{
  transform:translateY(-4px);
}
.latest-post-media{
  width:100%;
  aspect-ratio:16/10;
  margin:0 0 22px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.latest-post-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.latest-post-card.is-icon .latest-post-media{
  background:#f5f8f8;
}
.latest-post-card.is-icon .latest-post-media img{
  width:68%;
  height:68%;
  object-fit:contain;
}
.latest-post-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-bottom:16px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.latest-post-card h3{
  margin:0;
  font-size:clamp(27px,2.45vw,40px);
  line-height:1.03;
}
.latest-post-card p{
  margin:16px 0 24px;
  color:#3a4c49;
  font-size:15px;
  line-height:1.65;
}
.latest-post-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:auto;
  font-size:12px;
  font-weight:800;
}
.latest-post-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.latest-posts-actions{
  margin-top:38px;
}
.article-featured.article-featured-icon{
  background:#f5f8f8;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:clamp(360px,48vw,620px);
}
.article-featured.article-featured-icon img{
  width:min(54%,560px);
  height:min(72%,480px);
  object-fit:contain;
}
@media(max-width:980px){
  .latest-posts-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .latest-posts-grid{
    grid-template-columns:1fr;
    gap:42px;
  }
  .latest-post-card h3{
    font-size:clamp(29px,9vw,42px);
  }
}


/* WordPress form embeds / WPForms */
.comlab-form-embed{
  width:100%;
  margin-top:28px;
}
.comlab-form-embed .wpforms-container{
  margin:0;
}
.comlab-form-embed .wpforms-field{
  padding:0 0 18px;
}
.comlab-form-embed .wpforms-field-label,
.comlab-form-embed .wpforms-field-sublabel{
  color:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.comlab-form-embed .wpforms-field input:not([type=checkbox]):not([type=radio]),
.comlab-form-embed .wpforms-field select,
.comlab-form-embed .wpforms-field textarea{
  width:100%;
  max-width:none;
  min-height:50px;
  padding:13px 15px;
  border:1px solid rgba(11,35,32,.2);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  box-shadow:none;
  font:inherit;
}
.comlab-form-embed .wpforms-field textarea{
  min-height:140px;
  resize:vertical;
}
.comlab-form-embed .wpforms-submit-container{
  padding-top:4px;
}
.comlab-form-embed button[type=submit],
.comlab-form-embed .wpforms-submit{
  min-height:48px;
  padding:12px 20px;
  border:1px solid var(--ink);
  border-radius:999px;
  background:var(--ink);
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.contact-section .comlab-form-embed,
.service-contact .comlab-form-embed{
  max-width:680px;
}
.contact-section .comlab-form-embed .wpforms-field-label,
.contact-section .comlab-form-embed .wpforms-field-sublabel,
.service-contact .comlab-form-embed .wpforms-field-label,
.service-contact .comlab-form-embed .wpforms-field-sublabel{
  color:#fff;
}
.contact-section .comlab-form-embed button[type=submit],
.contact-section .comlab-form-embed .wpforms-submit,
.service-contact .comlab-form-embed button[type=submit],
.service-contact .comlab-form-embed .wpforms-submit{
  border-color:#fff;
  background:#fff;
  color:var(--ink);
}
.contact-page-grid{
  display:grid;
  grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);
  gap:clamp(44px,7vw,110px);
  align-items:start;
}
.contact-page-details{
  display:grid;
  gap:18px;
}
.contact-page-email{
  color:var(--ink);
  font-size:clamp(24px,2.2vw,36px);
  font-weight:800;
}
.contact-page-form .comlab-form-embed{
  margin-top:0;
}
@media(max-width:760px){
  .contact-page-grid{
    grid-template-columns:1fr;
  }
}

/* Quick summary + reusable FAQ modules */
.quick-summary-section{
  padding-top:clamp(36px,5vw,70px);
  padding-bottom:clamp(36px,5vw,70px);
}
.quick-summary-card{
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);
  gap:clamp(32px,6vw,90px);
  align-items:start;
  padding:clamp(28px,4vw,52px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.quick-summary-heading h2{
  margin-top:14px;
  font-size:clamp(30px,3.4vw,50px);
}
.quick-summary-content{
  color:#344745;
  font-size:clamp(17px,1.35vw,20px);
  line-height:1.72;
}
.quick-summary-content > :first-child{margin-top:0}
.quick-summary-content > :last-child{margin-bottom:0}
.quick-summary-content p{margin:0 0 18px}
.quick-summary-content ul,
.quick-summary-content ol{
  margin:18px 0 0;
  padding-left:1.25em;
}
.quick-summary-content li+li{margin-top:8px}
.quick-summary-content a{
  color:currentColor;
  text-decoration:underline;
  text-underline-offset:3px;
}
.content-faq-section{
  background:#fff;
}
.content-faq-list{
  margin-top:clamp(34px,4vw,52px);
  border-top:1px solid var(--line);
}
.content-faq-list details{
  border-bottom:1px solid var(--line);
}
.content-faq-list summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 0;
  cursor:pointer;
  list-style:none;
  font-size:clamp(20px,1.8vw,28px);
  font-weight:800;
  line-height:1.2;
}
.content-faq-list summary::-webkit-details-marker{display:none}
.content-faq-list summary::after{
  content:"+";
  flex:0 0 auto;
  font-size:24px;
  font-weight:500;
  transition:transform .2s ease;
}
.content-faq-list details[open] summary::after{transform:rotate(45deg)}
.content-faq-answer{
  max-width:900px;
  padding:0 0 26px;
  color:#344745;
  line-height:1.72;
}
.content-faq-answer > :first-child{margin-top:0}
.content-faq-answer > :last-child{margin-bottom:0}
.content-faq-answer p{margin:0 0 14px}
.content-faq-answer ul,
.content-faq-answer ol{padding-left:1.25em}
.content-faq-answer a{
  color:currentColor;
  text-decoration:underline;
  text-underline-offset:3px;
}
.faq-answer{
  padding:0 0 24px;
  color:#344745;
}
.faq-answer > :first-child{margin-top:0}
.faq-answer > :last-child{margin-bottom:0}
@media(max-width:760px){
  .quick-summary-card{
    grid-template-columns:1fr;
    gap:24px;
  }
  .content-faq-list summary{
    padding:18px 0;
  }
}


/* v1.0.3 flexible homepage custom blocks */
.custom-home-section{
  position:relative;
}
.custom-home-section--white{background:#fff}
.custom-home-section--soft{background:#f5f8f8}
.custom-home-section--aqua{background:#eefbfe}
.custom-home-section--sage{background:#eff8f3}
.custom-home-section--butter{background:#f7f1fb}
.custom-home-section .section-intro{
  max-width:none;
}
.custom-home-intro{
  margin-top:20px;
  color:#3a4c49;
  font-size:clamp(17px,1.35vw,21px);
}
.custom-home-intro > *:first-child,
.custom-home-column-content > *:first-child{margin-top:0}
.custom-home-intro > *:last-child,
.custom-home-column-content > *:last-child{margin-bottom:0}
.custom-home-grid{
  display:grid;
  gap:clamp(28px,3.5vw,52px);
  margin-top:clamp(38px,4vw,58px);
  align-items:start;
}
.custom-home-grid--1{grid-template-columns:minmax(0,1fr)}
.custom-home-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.custom-home-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.custom-home-column{
  min-width:0;
  padding-top:22px;
  border-top:1px solid rgba(11,35,32,.14);
}
.custom-home-column h3{
  margin:0 0 18px;
  font-size:clamp(27px,2.45vw,40px);
}
.custom-home-column-content{
  color:#344745;
  font-size:16px;
  line-height:1.7;
}
.custom-home-column-content h2,
.custom-home-column-content h3,
.custom-home-column-content h4{
  color:var(--ink);
}
.custom-home-column-content ul,
.custom-home-column-content ol{
  padding-left:1.2em;
}
.custom-home-column--form .comlab-form-embed{
  margin-top:22px;
}
@media(max-width:900px){
  .custom-home-grid--3{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .custom-home-grid--2,
  .custom-home-grid--3{
    grid-template-columns:1fr;
  }
  .custom-home-grid{
    gap:34px;
  }
}

/* v1.0.5 live layout stabilization */
.comlab-wp .service-parent-page .service-hero{
  min-height:auto;
  padding-top:clamp(138px,12vw,178px);
  padding-bottom:clamp(76px,8vw,112px);
}
.comlab-wp .service-parent-page .service-slider .content-slider-track{
  min-height:clamp(430px,52vw,610px);
}
.comlab-wp .service-parent-page .service-slider .content-slide{
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:clamp(40px,6vw,88px);
  align-items:center;
}
.comlab-wp .service-parent-page .service-slider .slide-copy{
  max-width:900px;
}
.comlab-wp .service-parent-page .service-slider .slide-copy h1,
.comlab-wp .service-parent-page .service-slider .slide-copy h2{
  max-width:13ch;
  font-size:clamp(50px,5.1vw,78px);
}
.comlab-wp .service-parent-page .service-slider .slide-visual{
  justify-self:end;
  margin:0;
}
.comlab-wp .service-parent-page .service-hero-art{
  width:clamp(260px,26vw,390px);
}
.comlab-wp .service-parent-page .content-slider-ui{
  margin-top:20px;
}
.comlab-wp .service-detail{
  grid-template-columns:minmax(260px,.52fr) minmax(0,1.48fr);
  gap:clamp(48px,7vw,96px);
}
.comlab-wp .service-detail-head h2{
  max-width:13ch;
}
.comlab-wp .service-item-body{
  padding:0 0 24px;
}
.comlab-wp .service-item-body p{
  padding:0 64px 14px 0;
}
.comlab-wp .service-item-body a{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  font-weight:800;
  color:var(--service-link,var(--blue-2));
}
.comlab-wp .service-item-body a svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.comlab-wp .service-contact-inner{
  width:min(1080px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.28fr);
  gap:clamp(36px,6vw,78px);
  align-items:center;
}
.comlab-wp .service-contact-copy h2{
  margin-top:16px;
  max-width:13ch;
  color:#fff;
}
.comlab-wp .service-contact-copy > p:not(.eyebrow){
  margin-top:18px;
  max-width:58ch;
  color:rgba(255,255,255,.82);
}
.comlab-wp .service-contact-art{
  justify-self:end;
}

.comlab-wp .subservice-page .subservice-hero{
  padding-top:clamp(128px,11vw,164px);
  padding-bottom:clamp(64px,8vw,96px);
  background:linear-gradient(135deg,color-mix(in srgb,var(--service-link) 7%,#fff),#fff 68%);
  border-bottom:1px solid var(--line);
}
.comlab-wp .subservice-page .content-breadcrumb{
  margin-bottom:clamp(38px,5vw,64px);
}
.comlab-wp .subservice-page .subservice-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);
  gap:clamp(40px,7vw,100px);
  align-items:center;
}
.comlab-wp .subservice-page .subservice-hero-copy h1{
  margin-top:16px;
  max-width:12ch;
  font-size:clamp(50px,6vw,84px);
}
.comlab-wp .subservice-page .subservice-hero-art{
  min-height:260px;
  justify-self:end;
  width:100%;
  max-width:340px;
}
.comlab-wp .subservice-page .subservice-hero-art img{
  width:min(300px,88%);
  height:auto;
  object-fit:contain;
}
.comlab-wp .subservice-page .subservice-icon-halo{
  width:220px;
  height:220px;
}
.comlab-wp .subservice-page .subservice-back-link{
  margin-top:26px;
}
.comlab-wp .subservice-explain{
  display:grid;
  grid-template-columns:minmax(250px,.55fr) minmax(0,1.45fr);
  gap:clamp(42px,7vw,96px);
  align-items:start;
}
.comlab-wp .subservice-explain-head h2{
  margin-top:16px;
  font-size:clamp(34px,3.8vw,54px);
}
.comlab-wp .subservice-explain-copy{
  display:grid;
  gap:18px;
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.7;
}
.comlab-wp .subservice-explain-copy p{
  margin:0;
}
.comlab-wp .subservice-method{
  display:grid;
  grid-template-columns:minmax(250px,.62fr) minmax(0,1.38fr);
  gap:clamp(46px,7vw,96px);
  align-items:start;
  background:#f7f9f9;
}
.comlab-wp .subservice-method-copy h2{
  margin:16px 0 18px;
  font-size:clamp(34px,3.8vw,54px);
}
.comlab-wp .subservice-method-copy > p:last-child{
  color:var(--muted);
  max-width:50ch;
}
.comlab-wp .subservice-steps ol{
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line-strong);
}
.comlab-wp .subservice-steps li{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:18px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.comlab-wp .subservice-steps li > span{
  color:var(--service-link);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
}
.comlab-wp .subservice-steps h3{
  margin:0 0 8px;
  font-size:clamp(22px,2vw,30px);
}
.comlab-wp .subservice-steps p{
  margin:0;
  color:var(--muted);
}
.comlab-wp .subservice-rich-section{
  display:block;
}
.comlab-wp .subservice-rich-copy{
  max-width:900px;
  margin:0 auto;
}
.comlab-wp .subservice-contact{
  background:var(--service-link);
}

/* Keep relationship-driven grids language-safe and visually stable. */
.comlab-wp .refx-layout,
.comlab-wp .latest-posts-grid,
.comlab-wp .person-grid{
  align-items:stretch;
}
.comlab-wp .latest-post-card,
.comlab-wp .refx-tile{
  min-width:0;
}
.comlab-wp .latest-post-card h3,
.comlab-wp .refx-tile h3{
  overflow-wrap:anywhere;
}

@media(max-width:1100px){
  .comlab-wp .service-parent-page .service-slider .content-slide{
    grid-template-columns:minmax(0,1.2fr) minmax(220px,.6fr);
  }
  .comlab-wp .service-detail{
    grid-template-columns:1fr;
  }
  .comlab-wp .service-detail-head{
    position:relative;
    top:auto;
  }
  .comlab-wp .subservice-page .subservice-hero-grid{
    grid-template-columns:minmax(0,1.2fr) minmax(220px,.5fr);
  }
}
@media(max-width:760px){
  .comlab-wp .service-parent-page .service-hero{
    padding-top:112px;
    padding-bottom:64px;
  }
  .comlab-wp .service-parent-page .service-slider .content-slider-track{
    min-height:0;
  }
  .comlab-wp .service-parent-page .service-slider .content-slide{
    grid-template-columns:1fr;
    gap:28px;
  }
  .comlab-wp .service-parent-page .service-slider .slide-visual{
    order:-1;
    justify-self:start;
  }
  .comlab-wp .service-parent-page .service-hero-art{
    width:190px;
  }
  .comlab-wp .service-parent-page .service-slider .slide-copy h1,
  .comlab-wp .service-parent-page .service-slider .slide-copy h2{
    font-size:clamp(42px,12vw,60px);
  }
  .comlab-wp .subservice-page .subservice-hero{
    padding-top:104px;
    padding-bottom:60px;
  }
  .comlab-wp .subservice-page .subservice-hero-grid,
  .comlab-wp .subservice-explain,
  .comlab-wp .subservice-method,
  .comlab-wp .service-contact-inner{
    grid-template-columns:1fr;
  }
  .comlab-wp .subservice-page .subservice-hero-art{
    order:-1;
    justify-self:start;
    min-height:170px;
    width:190px;
  }
  .comlab-wp .subservice-page .subservice-hero-art img{
    width:180px;
  }
  .comlab-wp .subservice-page .subservice-icon-halo{
    width:150px;
    height:150px;
  }
  .comlab-wp .subservice-page .subservice-hero-copy h1{
    font-size:clamp(42px,12vw,60px);
  }
  .comlab-wp .service-contact-art{
    justify-self:start;
  }
}


/* v1.0.6 live alignment fixes */

/* Restore the animated colour field behind the editable homepage hero. */
.comlab-wp .hero{
  position:relative;
  isolation:isolate;
}
.comlab-wp .hero .hero-color-stage{
  z-index:0;
}
.comlab-wp .hero .hero-copy{
  position:relative;
  z-index:2;
  width:100%;
  min-width:0;
}
.comlab-wp .hero .scroll-cue{
  z-index:70;
}

/* The process markup again matches the original two-column desktop composition. */
.comlab-wp .process-section{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(420px,.9fr);
  gap:clamp(42px,6vw,84px);
  align-items:start;
}
.comlab-wp .process-sticky{
  position:sticky;
  top:96px;
  display:grid;
  align-content:start;
  gap:26px;
  min-width:0;
}
.comlab-wp .process-steps{
  min-width:0;
}
.comlab-wp .process-visual{
  position:relative;
  width:220px;
  height:220px;
  display:grid;
  place-items:center;
}
.comlab-wp .process-visual .process-orbit{
  inset:20px;
}

/* Every inner page uses a genuinely compact fixed header.
   The logo shell, not only the image inside it, must shrink. */
.comlab-wp .compact-content-header{
  min-height:68px;
  height:68px;
  padding-top:7px;
  padding-bottom:7px;
  align-items:center;
  background:rgba(255,255,255,.96);
}
.comlab-wp .compact-content-header .brand{
  margin-left:0;
}
.comlab-wp .compact-content-header .brand-logo-shell,
.comlab-wp .compact-content-header.is-scrolled .brand-logo-shell{
  width:52px;
  height:52px;
}
.comlab-wp .compact-content-header .brand-logo-outline{
  display:none;
}
.comlab-wp .compact-content-header .brand .brand-logo-final,
.comlab-wp .compact-content-header .brand-logo-shell.is-hold .brand-logo-final,
.comlab-wp .compact-content-header .brand-logo-shell.is-colorized .brand-logo-final,
.comlab-wp .compact-content-header .brand-logo-shell.is-complete .brand-logo-final,
.comlab-wp .compact-content-header .brand-logo-shell.is-fallback .brand-logo-final{
  width:100%;
  height:100%;
  opacity:1;
  filter:none;
}
.comlab-wp .compact-content-header .header-actions{
  padding-top:0;
  align-items:center;
}

/* Content starts clearly below the compact fixed header. */
.comlab-wp .service-parent-page .service-hero{
  padding-top:clamp(112px,8.5vw,138px);
}
.comlab-wp .subservice-page .subservice-hero{
  padding-top:clamp(110px,8vw,134px);
}
.comlab-wp .article-hero,
.comlab-wp .blog-list-hero,
.comlab-wp .collection-page-hero,
.comlab-wp .team-page-hero,
.comlab-wp .member-hero,
.comlab-wp .contact-page-hero{
  padding-top:clamp(112px,8vw,132px);
}

/* Related work never visually sticks to the preceding content block. */
.comlab-wp .service-page .service-references{
  margin-top:clamp(34px,5vw,74px);
  padding-top:clamp(88px,8vw,124px);
  border-top:1px solid var(--line);
}
.comlab-wp .service-page .service-references .section-intro{
  margin-bottom:clamp(44px,5vw,68px);
}
.comlab-wp .article-reference-section{
  margin-top:clamp(86px,9vw,128px);
  padding-top:clamp(54px,6vw,78px);
}

/* Preserve clear spacing around the homepage editorial sections. */
.comlab-wp .latest-posts-section .section-intro,
.comlab-wp .team-preview-section .section-intro{
  margin-bottom:clamp(40px,5vw,62px);
}
.comlab-wp .contact-section .contact-copy > p:not(.eyebrow){
  color:rgba(255,255,255,.86);
}

@media(max-width:980px){
  .comlab-wp .process-section{
    grid-template-columns:minmax(0,.85fr) minmax(330px,1fr);
    gap:38px;
  }
}
@media(max-width:760px){
  .comlab-wp .compact-content-header{
    min-height:60px;
    height:60px;
    padding:5px 14px;
  }
  .comlab-wp .compact-content-header .brand-logo-shell,
  .comlab-wp .compact-content-header.is-scrolled .brand-logo-shell{
    width:46px;
    height:46px;
  }
  .comlab-wp .service-parent-page .service-hero,
  .comlab-wp .subservice-page .subservice-hero,
  .comlab-wp .article-hero,
  .comlab-wp .blog-list-hero,
  .comlab-wp .collection-page-hero,
  .comlab-wp .team-page-hero,
  .comlab-wp .member-hero,
  .comlab-wp .contact-page-hero{
    padding-top:96px;
  }
  .comlab-wp .process-section{
    grid-template-columns:1fr;
  }
  .comlab-wp .process-sticky{
    position:relative;
    top:auto;
  }
  .comlab-wp .process-visual{
    width:170px;
    height:170px;
  }
  .comlab-wp .service-page .service-references{
    margin-top:20px;
    padding-top:72px;
  }
}


/* v1.0.7 team profile and subservice cleanup */
.comlab-wp .member-details-section{
  padding-top:clamp(64px,7vw,96px);
  padding-bottom:clamp(68px,8vw,108px);
}
.comlab-wp .member-references{
  margin-top:0;
  padding-top:clamp(78px,8vw,118px);
  padding-bottom:clamp(82px,9vw,126px);
  border-top:1px solid var(--line);
}
.comlab-wp .member-references .section-intro{
  margin-bottom:clamp(42px,5vw,66px);
}
.comlab-wp .member-references .refx-shell{
  width:100%;
  margin-top:0;
}
.comlab-wp .member-references .refx-layout{
  width:100%;
  max-width:none;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,3.4vw,52px);
  align-items:stretch;
}
.comlab-wp .member-references .refx-tile{
  min-width:0;
  width:100%;
}
.comlab-wp .member-references .refx-tile h3{
  font-size:clamp(27px,2.2vw,37px);
  overflow-wrap:anywhere;
}
.comlab-wp .member-references .refx-media{
  width:100%;
  aspect-ratio:16/10;
}
@media(max-width:980px){
  .comlab-wp .member-references .refx-layout{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .comlab-wp .member-references{
    padding-top:68px;
  }
  .comlab-wp .member-references .refx-layout{
    grid-template-columns:1fr;
    gap:42px;
  }
}


/* v1.0.8 reference descriptions */
.comlab-wp .refx-summary{
  width:100%;
  max-width:none;
  margin:0;
  color:#374845;
  font-size:15px;
  line-height:1.65;
}
.comlab-wp .refx-text .refx-summary{
  margin:0 0 20px;
  max-width:46ch;
}
.comlab-wp .refx-text h3{
  margin-bottom:4px;
}

/* v1.0.9 reference detail images keep their original aspect ratio */
.comlab-wp .reference-detail-media{
  width:min(1180px,calc(100% - 2*var(--pad)));
  margin:0 auto clamp(42px,5vw,70px);
  overflow:visible;
  background:transparent;
}
.comlab-wp .reference-detail-media img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
}
@media(max-width:760px){
  .comlab-wp .reference-detail-media{
    width:calc(100% - 2*var(--pad));
    margin-bottom:42px;
  }
}


/* v1.0.11 article authors */
.article-meta-author a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}
.article-author{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:clamp(28px,4vw,54px);
  align-items:start;
  margin:clamp(60px,7vw,92px) 0;
  padding:clamp(30px,3.5vw,48px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.article-author-media{
  min-width:0;
}
.article-author-image{
  display:flex;
  width:100%;
  aspect-ratio:1/1;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
  background:#f4f7f7;
}
.article-author-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center bottom;
}
.article-author-copy{
  min-width:0;
}
.article-author-copy h2{
  margin:10px 0 5px;
  font-size:clamp(30px,3.4vw,48px);
  line-height:1;
}
.article-author-copy h2 a{
  color:inherit;
  text-decoration:none;
}
.article-author-role{
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.article-author-bio{
  max-width:62ch;
  margin:18px 0 0;
  color:#344745;
  font-size:16px;
  line-height:1.7;
}
.article-author-links{
  display:flex;
  flex-wrap:wrap;
  gap:14px 24px;
  margin-top:24px;
}
.article-author-profile-link,
.article-author-linkedin{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
}
.article-author-profile-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
@media(max-width:680px){
  .article-author{
    grid-template-columns:96px minmax(0,1fr);
    gap:22px;
  }
  .article-author-copy h2{
    font-size:30px;
  }
}


/* ===== ComLab WordPress v2: accepted v21 frontend overrides ===== */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  /* ComLab color system */
  --blue-1:#00B9E8;
  --blue-2:#0070FF;
  --blue-3:#1F75FE;
  --blue-4:#4666FF;
  --purple-1:#9400D3;
  --purple-2:#800080;
  --green-1:#00A86B;
  --green-2:#008000;
  --green-3:#009E60;
  --red-1:#C51E3A;
  --red-2:#DC143C;
  --red-3:#DC343B;
  --turquoise-1:#00CCCC;
  --turquoise-2:#40E0D0;

  /* semantic aliases */
  --coral:var(--red-3);
  --butter:var(--purple-1);
  --sage:var(--green-1);
  --mist:var(--turquoise-2);
  --aqua:var(--turquoise-1);
  --ink:#102422;
  --muted:#687775;
  --paper:#ffffff;
  --line:rgba(16,36,34,.14);
  --line-strong:rgba(16,36,34,.28);
  --max:1320px;
  --pad:clamp(20px,4vw,64px);
  --section-y:clamp(78px,9vw,132px);
  --header-h:104px;
  font-family:'Manrope',Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:inherit;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
img,svg{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
summary{list-style:none}
summary::-webkit-details-marker{display:none}

.section{
  width:100%;
  padding:var(--section-y) max(var(--pad),calc((100vw - var(--max))/2));
  position:relative;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.eyebrow::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  flex:0 0 auto;
}

h1,h2,h3{font-weight:800;letter-spacing:-.055em;text-wrap:balance}
h1{font-size:clamp(50px,6vw,92px);line-height:.94}
h2{font-size:clamp(38px,4.6vw,68px);line-height:.98}
h3{font-size:clamp(26px,2.6vw,42px);line-height:1.02}
p{line-height:1.65}

.reveal{opacity:0;transform:translateY(22px)}
.hero .reveal,.service-hero .reveal{opacity:1;transform:none}
.reveal.is-visible{opacity:1;transform:none;transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1)}

/* header */
.site-header{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  min-height:var(--header-h);
  padding:14px max(var(--pad),calc((100vw - var(--max))/2));
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .28s ease,border-color .28s ease,min-height .28s ease,padding .28s ease;
}
.site-header.is-scrolled{
  min-height:82px;
  padding-top:9px;
  padding-bottom:9px;
  background:rgba(255,255,255,.92);
  border-color:var(--line);
  backdrop-filter:blur(14px);
}
.brand{
  position:relative;
  display:block;
  width:max-content;
  line-height:0;
  margin-left:-8px;
}
.brand img{
  width:auto;
  height:150px;
  transition:height .55s cubic-bezier(.2,.72,.18,1), transform .55s cubic-bezier(.2,.72,.18,1);
  transform-origin:top left;
}
.site-header.is-scrolled .brand img{height:54px}
.header-actions{display:flex;align-items:center;gap:12px;padding-top:8px}
.lang-switch{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.7)}
.lang-switch a{padding:9px 11px;font-size:11px;font-weight:800;letter-spacing:.08em}
.lang-switch a.active{background:var(--ink);color:#fff}
.menu-button,.back-home{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:0 15px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:var(--ink);
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.menu-button{cursor:pointer}
.menu-button i{width:4px;height:4px;border-radius:50%;background:var(--ink)}
.back-home{border-radius:0;border-width:0 0 1px;padding-inline:0;background:transparent}

/* menu */
.menu-overlay{
  position:fixed;
  z-index:950;
  inset:0;
  background:#fff;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .36s ease,visibility .36s ease;
}
body.menu-open .menu-overlay{opacity:1;visibility:visible;pointer-events:auto}
.menu-inner{
  min-height:100%;
  padding:120px max(var(--pad),calc((100vw - var(--max))/2)) 42px;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.menu-label{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,36,34,.55)}
.overlay-nav{align-self:center;max-width:820px}
.overlay-nav a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding:13px 0;
  border-bottom:1px solid rgba(16,36,34,.16);
  font-size:clamp(34px,4vw,58px);
  line-height:1;
  font-weight:800;
  letter-spacing:-.05em;
}
.overlay-nav a:hover{color:var(--purple-1)}
.overlay-nav span{font-size:11px;letter-spacing:.12em;color:rgba(16,36,34,.48)}
.menu-foot{display:flex;justify-content:space-between;gap:20px;font-size:14px;color:rgba(16,36,34,.64)}

/* shared slider */
.content-slider{position:relative}
.content-slider-track{display:grid;min-height:min(67vh,620px)}
.content-slide{
  grid-area:1/1;
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr);
  gap:clamp(38px,6vw,96px);
  align-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(16px);
  transition:opacity .58s ease,transform .58s ease,visibility .58s ease;
}
.content-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.slide-copy{max-width:900px}
.slide-copy .eyebrow{margin-bottom:16px}
.slide-copy h1{max-width:11ch}
.slide-lead{margin-top:22px;max-width:38ch;color:var(--muted);font-size:clamp(17px,1.45vw,21px)}
.slide-visual{display:grid;place-items:center;justify-self:end}
.hero-illustration{
  width:clamp(230px,25vw,340px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  position:relative;
  animation:illustrationFloat 7s ease-in-out infinite;
}
.hero-illustration::before{
  content:"";
  position:absolute;
  inset:7%;
  border:1px solid var(--line);
  border-radius:50%;
  animation:illustrationSpin 20s linear infinite;
}
.hero-illustration::after{
  content:"";
  position:absolute;
  width:14px;
  height:14px;
  border-radius:50%;
  top:14%;
  right:16%;
  background:var(--turquoise-2);
  box-shadow:-150px 120px 0 var(--red-3),-78px 205px 0 var(--purple-1);
  animation:illustrationDots 8s ease-in-out infinite;
}
.hero-illustration svg{width:55%;height:55%;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* hero PNG icon system: equal-size monochrome illustrations */
.hero-illustration.hero-image-art{
  width:clamp(320px,31vw,450px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  isolation:isolate;
  animation:heroIconFloat 6.8s ease-in-out infinite;
}
.hero-illustration.hero-image-art::before,
.hero-illustration.hero-image-art::after{
  content:none;
}
.hero-illustration.hero-image-art img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  filter:none;
  animation:heroIconBreath 6.8s ease-in-out infinite;
}
.hero-art-integrated,
.hero-art-system,
.hero-art-ai{
  --hero-art-accent:#000000;
  --hero-art-accent-2:#000000;
}
@keyframes heroIconFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes heroIconBreath{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.018)}
}
@keyframes illustrationFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes illustrationSpin{to{transform:rotate(360deg)}}
@keyframes illustrationDots{0%,100%{transform:translate(0,0)}50%{transform:translate(9px,-7px)}}
.hero-cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:26px;
  padding:13px 0 8px;
  border-bottom:1px solid var(--ink);
  font-size:14px;
  font-weight:800;
}
.content-slider-ui{display:flex;align-items:center;gap:16px;margin-top:18px}
.content-slider-dots{display:flex;align-items:center;gap:8px}
.content-slider-dot,.reference-coverflow-dot{border:0;padding:0;margin:0;cursor:pointer;background:rgba(16,36,34,.16)}
.content-slider-dot{width:9px;height:9px;border-radius:999px;transition:width .25s ease,background .25s ease}
.content-slider-dot.is-active{width:26px;background:var(--ink)}
.content-slider-count{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.content-slider-count .sep{width:24px;height:1px;background:var(--line-strong)}

/* home hero */
.hero{
  min-height:100svh;
  padding-top:calc(var(--header-h) + 22px);
  padding-bottom:78px;
  display:grid;
  align-items:center;
  overflow:hidden;
}
.hero-copy{position:relative;z-index:2}
.hero .slide-copy h1{font-size:clamp(50px,5.8vw,88px);max-width:10.5ch}
.hero-color-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.color-field{position:absolute;border-radius:50%;filter:blur(16px);opacity:.7}
.field-coral{width:36vw;height:36vw;right:-8vw;top:-12vw;background:color-mix(in srgb,var(--red-3) 18%,transparent);animation:blobA 15s ease-in-out infinite}
.field-aqua{width:28vw;height:28vw;right:20vw;bottom:-14vw;background:color-mix(in srgb,var(--turquoise-1) 18%,transparent);animation:blobB 17s ease-in-out infinite}
.field-butter{width:28vw;height:28vw;left:5vw;top:12vw;background:color-mix(in srgb,var(--purple-1) 15%,transparent);animation:blobC 16s ease-in-out infinite}
.field-sage{width:18vw;height:18vw;left:-6vw;bottom:16vw;background:color-mix(in srgb,var(--green-1) 18%,transparent)}
.hero-flow-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.45}
.hero-flow-lines path{stroke:rgba(16,36,34,.12);stroke-width:1.2;stroke-dasharray:9 18;animation:dash 22s linear infinite}
@keyframes blobA{50%{transform:translate(-3vw,2vw) scale(1.07)}}
@keyframes blobB{50%{transform:translate(-2vw,-2vw) scale(1.08)}}
@keyframes blobC{50%{transform:translate(2vw,-1vw) scale(1.05)}}
@keyframes dash{to{stroke-dashoffset:-180}}
.scroll-cue{
  position:fixed;
  z-index:70;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 15px;
  border:1px solid rgba(16,36,34,.08);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 10px 24px rgba(16,36,34,.08);
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:opacity .25s ease,transform .25s ease;
}
.scroll-cue::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--aqua);animation:pulse 2s ease-in-out infinite}
.scroll-cue i{width:54px;height:1px;background:var(--line-strong)}
.page-scrolled .scroll-cue{opacity:0;pointer-events:none;transform:translate(-50%,12px)}
@keyframes pulse{50%{transform:scale(1.35);opacity:.55}}

/* section headers */
.section-intro{display:grid;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:18px 36px;align-items:start;margin-bottom:44px}
.section-intro .eyebrow{grid-column:1}
.section-intro h2{grid-column:2}
.section-intro>p:last-child{grid-column:2;max-width:64ch;color:var(--muted);font-size:17px}

/* about */
.about-section{background:#fff}
.about-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:clamp(44px,7vw,100px);align-items:start}
.about-copy{max-width:760px}
.about-copy p{color:var(--muted);font-size:17px;margin-top:18px}
.about-copy .about-lead{margin-top:0;color:var(--ink);font-size:clamp(20px,1.8vw,27px);font-weight:600;line-height:1.5}
.belief-grid{border-top:1px solid var(--ink)}
.belief-item{display:grid;grid-template-columns:56px minmax(160px,.5fr) 1fr;gap:20px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line)}
.belief-item>span{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.belief-item h3{font-size:20px}
.belief-item p{position:relative;color:var(--muted);font-size:15px;padding-bottom:18px}
.belief-butter{--belief-accent:var(--red-2)}
.belief-sage{--belief-accent:var(--green-1)}
.belief-aqua{--belief-accent:var(--blue-2)}
.belief-item p::after{content:"";position:absolute;left:0;bottom:0;width:76px;height:4px;border-radius:999px;background:var(--belief-accent);background-size:200% 100%;animation:accentShift 5s ease-in-out infinite alternate}

/* services */
.services-section{background:#fff}
.service-panels{border-top:1px solid var(--ink)}
.service-panel{
  --accent:var(--coral);
  display:grid;
  grid-template-columns:122px minmax(290px,.78fr) minmax(0,1fr);
  gap:24px 34px;
  align-items:start;
  padding:34px 0;
  border-bottom:1px solid var(--line);
}
.service-panel.theme-butter{--accent:var(--purple-1)}
.service-panel.theme-sage{--accent:var(--green-1)}
.service-panel.theme-aqua{--accent:var(--blue-2)}
.service-panel.theme-coral{--accent:var(--red-3)}
.service-panel-top{display:grid;gap:12px;justify-items:start}
.vicon{display:grid;place-items:center;width:58px;height:58px}
.vicon svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-panel-top .vicon{color:var(--accent)}
.service-arrow{opacity:0;transform:translateX(-6px);transition:opacity .24s ease,transform .24s ease}
.service-arrow svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:2}
.service-panel:hover .service-arrow{opacity:1;transform:none}
.service-panel-copy h3{font-size:clamp(32px,3.1vw,50px);max-width:12ch}
.service-panel-copy p{margin-top:14px;color:var(--muted);font-size:17px;max-width:54ch}
.service-tags{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start;padding-top:3px}
.service-tag{
  display:inline-grid;
  grid-template-columns:auto 22px;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:7px 8px 7px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  transition:border-color .2s ease,background .2s ease,transform .2s ease;
}
.service-tag-arrow{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:color-mix(in srgb,var(--accent) 10%,#fff);
  color:var(--accent);
  font-size:11px;
  line-height:1;
  font-weight:800;
}
.service-panel:hover .service-tag{border-color:rgba(16,36,34,.24);background:color-mix(in srgb,var(--accent) 4%,#fff)}
.service-tag:hover{transform:translateY(-1px)}


/* Service artwork: approved transparent PNG icon system */
.service-art-strategy{--service-art-accent:var(--red-3);--service-art-accent-2:var(--purple-1)}
.service-art-pr{--service-art-accent:var(--purple-1);--service-art-accent-2:var(--blue-4)}
.service-art-social{--service-art-accent:var(--green-1);--service-art-accent-2:var(--turquoise-2)}
.service-art-digital{--service-art-accent:var(--blue-2);--service-art-accent-2:var(--turquoise-1)}

.service-icon-art{
  position:relative;
  width:108px;
  aspect-ratio:1.15;
  display:grid;
  place-items:center;
  transform-origin:50% 58%;
  transition:transform .32s cubic-bezier(.2,.8,.2,1);
}
.service-icon-art::before{
  content:"";
  position:absolute;
  width:72%;
  aspect-ratio:1;
  border-radius:50%;
  background:transparent;
  animation:serviceArtGlow 4.8s ease-in-out infinite;
}
.service-icon-art img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 11px 16px color-mix(in srgb,var(--service-art-accent) 17%,transparent));
  animation:serviceArtFloat 5.2s ease-in-out infinite;
}
.service-panel:nth-child(2) .service-icon-art img{animation-delay:-1.2s}
.service-panel:nth-child(3) .service-icon-art img{animation-delay:-2.4s}
.service-panel:nth-child(4) .service-icon-art img{animation-delay:-3.6s}
.service-panel:hover .service-icon-art{transform:scale(1.06) rotate(-1.5deg)}

.service-hero-art{
  position:relative;
  width:clamp(360px,31vw,520px);
  aspect-ratio:1.34;
  display:grid;
  place-items:center;
  isolation:isolate;
}
.service-hero-art::before{
  content:"";
  position:absolute;
  inset:7% 12%;
  border:1px solid color-mix(in srgb,var(--service-art-accent) 28%,transparent);
  border-radius:50%;
  animation:serviceArtOrbit 13s linear infinite;
}
.service-hero-art::after{
  content:"";
  position:absolute;
  width:58%;
  aspect-ratio:1;
  border-radius:50%;
  background:transparent;
  filter:blur(7px);
  animation:serviceArtGlow 4.6s ease-in-out infinite;
  z-index:-1;
}
.service-hero-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 20px 28px color-mix(in srgb,var(--service-art-accent) 18%,transparent));
  animation:serviceHeroArtFloat 6s ease-in-out infinite;
}
.content-slide:nth-child(2) .service-hero-art img{animation-delay:-1.8s}
.content-slide:nth-child(3) .service-hero-art img{animation-delay:-3.6s}

.service-contact-art{
  position:relative;
  z-index:2;
  width:180px;
  height:150px;
  display:grid;
  place-items:center;
}
.service-contact-art img{
  width:100%;
  height:100%;
  object-fit:contain;
  animation:serviceHeroArtFloat 5.4s ease-in-out infinite;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.12));
}

@keyframes serviceArtFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-6px,0) rotate(1.4deg)}
}
@keyframes serviceHeroArtFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  50%{transform:translate3d(0,-12px,0) rotate(1deg)}
}
@keyframes serviceArtGlow{
  0%,100%{transform:scale(.92);opacity:.55}
  50%{transform:scale(1.08);opacity:1}
}
@keyframes serviceArtOrbit{
  from{transform:rotate(0deg) scale(.98)}
  50%{transform:rotate(180deg) scale(1.04)}
  to{transform:rotate(360deg) scale(.98)}
}

/* process */
.process-section{background:var(--blue-3);color:#fff;display:grid;grid-template-columns:minmax(0,.78fr) minmax(420px,.9fr);gap:clamp(42px,6vw,84px);align-items:start}
.process-sticky{position:sticky;top:104px;display:grid;align-content:start;gap:26px;padding-top:4px}
.process-copy h2{color:#fff}
.process-copy p:last-child{margin-top:20px;max-width:44ch;color:rgba(255,255,255,.82)}
.process-copy .eyebrow{color:rgba(255,255,255,.74)}
.process-center{position:relative;width:180px;height:180px;display:grid;place-items:center}
.process-center .vicon{width:64px;height:64px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.12)}
.process-center .vicon svg{stroke:#fff}
.process-orbit{position:absolute;inset:16px;border:1px dashed rgba(255,255,255,.36);border-radius:50%}
.process-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.45)}
.process-dot.dot-1{top:0;left:50%}.process-dot.dot-2{right:0;top:50%}.process-dot.dot-3{bottom:0;left:50%}.process-dot.dot-4{left:0;top:50%}.process-dot.active{background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.12)}
.process-step{display:grid;align-content:start;gap:8px;padding:38px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.process-step span{font-size:11px;font-weight:800;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.process-step h3{margin-top:8px;color:#fff;max-width:12ch;font-size:clamp(32px,3.4vw,50px)}
.process-step p{margin-top:8px;color:rgba(255,255,255,.78);max-width:46ch}

/* why */
.why-section{background:#fff}
.why-section .section-intro{grid-template-columns:1fr;margin-bottom:56px}
.why-section .section-intro .eyebrow,.why-section .section-intro h2{grid-column:1}
.why-section .section-intro h2{width:100%;max-width:none;font-size:clamp(44px,4.4vw,66px);line-height:.96;text-wrap:balance}
.why-scroll{overflow:visible}
.why-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.why-card{position:relative;padding-top:4px}
.why-card::after{content:"";position:absolute;left:0;bottom:-10px;width:72px;height:3px;border-radius:999px;background:var(--why-accent);opacity:.8;animation:accentShift 6s ease-in-out infinite alternate}
.why-card.theme-coral{--why-accent:var(--red-3)}
.why-card.theme-butter{--why-accent:var(--purple-1)}
.why-card.theme-sage{--why-accent:var(--green-1)}
.why-card.theme-aqua{--why-accent:var(--blue-2)}
.why-card>div{display:flex;align-items:center;margin-bottom:18px}
.why-card>div>span:last-child{display:none}
.why-card .vicon{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--why-accent, var(--turquoise-1)) 8%,#fff);border:1px solid color-mix(in srgb,var(--why-accent, var(--turquoise-1)) 24%, rgba(16,36,34,.08));padding:12px;animation:whyFloat 5.5s ease-in-out infinite}
.why-card .vicon svg{width:32px;height:32px}
.why-card h3{font-size:28px;line-height:1.08;max-width:13ch;min-height:2.2em}
.why-card p{margin-top:12px;color:var(--muted);font-size:16px;max-width:30ch}

/* AI */
.ai-section{background:#fff}
.ai-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:clamp(48px,8vw,110px);align-items:center}
.ai-copy h2{margin-top:16px;max-width:11ch}
.ai-copy p:last-child{margin-top:20px;color:var(--muted);max-width:62ch}
.ai-diagram{position:relative;min-height:480px;display:grid;place-items:center}
.ai-diagram>svg{position:absolute;inset:0;width:100%;height:100%}
.ai-ring,.ai-cross,.ai-path{fill:none;stroke:rgba(16,36,34,.16);stroke-width:1.2}
.ai-ring.r3{stroke-dasharray:3 14}.ai-path{stroke-dasharray:6 12}
.ai-core{width:124px;height:124px;border-radius:36px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:800;z-index:2;box-shadow:0 18px 40px rgba(16,36,34,.16)}
.ai-label{position:absolute;padding:8px 0;border-bottom:2px solid var(--ink);font-size:13px;font-weight:700}.ai-label.l1{left:7%;top:28%}.ai-label.l2{right:8%;top:24%}.ai-label.l3{left:10%;bottom:27%}.ai-label.l4{right:5%;bottom:24%}
.ai-node{position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;border:4px solid var(--aqua);box-shadow:0 0 0 9px color-mix(in srgb,var(--turquoise-1) 12%,transparent);z-index:2}.ai-node.n1{left:18%;top:18%}.ai-node.n2{right:17%;top:26%}.ai-node.n3{right:23%;bottom:19%}.ai-node.n4{left:20%;bottom:23%}

/* references */
.clients-section{background:#fff;overflow:hidden}
.reference-coverflow{outline:none}
.reference-coverflow-stage{position:relative;height:470px;perspective:1200px;transform-style:preserve-3d}
.reference-slide{
  --ref-x:0%;--ref-y:0px;--ref-z:0px;--ref-scale:1;--ref-rotate:0deg;--ref-opacity:1;
  position:absolute;left:50%;top:50%;width:clamp(260px,25vw,360px);min-height:330px;padding:26px;
  display:flex;flex-direction:column;justify-content:flex-end;gap:14px;
  transform:translate(-50%,-50%) translateX(var(--ref-x)) translateY(var(--ref-y)) translateZ(var(--ref-z)) rotateY(var(--ref-rotate)) scale(var(--ref-scale));
  opacity:var(--ref-opacity);transition:transform .7s cubic-bezier(.2,.72,.18,1),opacity .5s ease,filter .5s ease;
  background:rgba(255,255,255,.94);box-shadow:0 18px 38px rgba(16,36,34,.07);overflow:hidden;
}
.reference-slide::before{content:"";position:absolute;inset:0;z-index:-2;background:#fff}
.reference-slide::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-42px;top:-40px;z-index:-1;background:color-mix(in srgb,var(--turquoise-1) 12%,transparent)}
.reference-slide:nth-child(1)::after{background:color-mix(in srgb,var(--blue-2) 15%,transparent)}
.reference-slide:nth-child(2)::after{background:color-mix(in srgb,var(--blue-4) 14%,transparent)}
.reference-slide:nth-child(3)::after{background:color-mix(in srgb,var(--red-2) 14%,transparent)}
.reference-slide:nth-child(4)::after{background:color-mix(in srgb,var(--purple-1) 13%,transparent)}
.reference-slide:nth-child(5)::after{background:color-mix(in srgb,var(--red-1) 12%,transparent)}
.reference-slide:nth-child(6)::after{background:color-mix(in srgb,var(--blue-3) 13%,transparent)}
.reference-logo{min-height:72px;display:grid;align-items:center}
.reference-logo img{max-width:190px;max-height:62px}
.reference-slide p{font-size:17px;line-height:1.58}
.reference-slide strong{font-size:11px;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.reference-coverflow-ui{display:flex;justify-content:center;margin-top:8px}
.reference-coverflow-dots{display:flex;gap:8px}
.reference-coverflow-dot{width:8px;height:8px;border-radius:50%}.reference-coverflow-dot.is-active{background:var(--ink)}

/* FAQ */
.faq-section{background:#fff}
.faq-list{max-width:900px;margin-left:auto;border-top:1px solid var(--ink)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:22px 0;font-size:18px;font-weight:700;cursor:pointer}
.faq-list summary::after{content:"+";font-size:26px;font-weight:400}.faq-list details[open] summary::after{content:"−"}
.faq-list details p{padding:0 48px 24px 0;color:var(--muted);max-width:72ch}

@keyframes accentShift{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@keyframes whyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* leadership */
.leadership-section .section-intro h2{font-size:clamp(28px,2.7vw,42px);max-width:20ch}
.person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.person-card{background:transparent}
.person-image{aspect-ratio:1/.92;overflow:hidden}.person-image img{width:100%;height:100%;object-fit:contain}
.person-copy{padding-top:16px}.person-copy h3{font-size:32px}.person-copy .role{margin-top:5px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.person-copy>p:last-of-type{margin-top:7px;color:var(--muted)}
.person-links{display:flex;gap:16px;margin-top:12px}.person-links a{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink)}

/* contact */
.contact-section,.service-contact{background:var(--red-3);color:#fff}
.contact-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:50px;align-items:center}
.contact-card h2{margin-top:16px;max-width:10ch}.contact-card p:not(.eyebrow){margin-top:18px;max-width:54ch}.contact-email{display:inline-flex;align-items:center;gap:12px;margin-top:24px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.72);font-size:22px;font-weight:800}.contact-email span{width:32px;height:32px;display:grid;place-items:center}.contact-email svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2}
.contact-visual{min-height:240px;position:relative;display:grid;place-items:center}.contact-visual .vicon{width:120px;height:120px}.contact-visual .vicon svg{width:64px;height:64px}.pulse{position:absolute;border:1px solid rgba(255,255,255,.35);border-radius:50%;animation:pulseRing 4s ease-out infinite}.pulse.p1{width:130px;height:130px}.pulse.p2{width:180px;height:180px;animation-delay:.8s}.pulse.p3{width:230px;height:230px;animation-delay:1.6s}@keyframes pulseRing{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.1);opacity:0}}

.site-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px max(var(--pad),calc((100vw - var(--max))/2));font-size:12px;color:var(--muted);border-top:1px solid var(--line)}

/* service pages */
.service-page{background:#fff}
.service-hero{
  min-height:100svh;
  padding-top:calc(var(--header-h) + 18px);
  padding-bottom:60px;
  display:grid;
  align-items:center;
  overflow:hidden;
  background:#fff;
}
.service-hero.theme-coral{background:#fff}
.service-hero.theme-butter{background:#fff}
.service-hero.theme-sage{background:#fff}
.service-slider .content-slider-track{min-height:min(78vh,760px)}
.service-slider .content-slide{grid-template-columns:minmax(0,2.15fr) minmax(300px,.68fr);gap:clamp(56px,6vw,104px);align-items:center}
.service-slider .slide-copy{width:100%;max-width:1100px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.service-slider .slide-copy h1{width:100%;max-width:none;font-size:clamp(48px,4.8vw,76px);line-height:.94;text-wrap:balance}
.service-slider .slide-lead{max-width:46ch;font-size:clamp(18px,1.35vw,21px)}
.service-slider .slide-visual{align-self:center;justify-self:end;width:100%;display:flex;justify-content:flex-end;margin-top:-24px;margin-right:-2vw}
.service-illustration{width:clamp(260px,22vw,350px)}
.service-scroll-cue{bottom:18px}
.service-detail{display:grid;grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);gap:clamp(42px,7vw,100px);align-items:start}
.service-detail-head{position:sticky;top:118px}
.service-detail-head h2{margin-top:16px;font-size:40px;max-width:11ch}
.service-list{border-top:1px solid var(--ink)}
.service-item{border-bottom:1px solid var(--line);background:transparent}
.service-item summary{
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:20px;
  padding:24px 0;
  cursor:pointer;
  font-size:clamp(20px,1.8vw,29px);
  font-weight:800;
  letter-spacing:-.025em;
  transition:color .22s ease;
}
.service-item summary::after{content:none}
.service-item:hover summary{color:var(--blue-4)}
.service-item[open] summary{color:var(--ink)}
.service-item-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:14px;
  color:var(--blue-2);
  transition:transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease;
}
.service-item:hover .service-item-icon{border-color:color-mix(in srgb,var(--blue-2) 35%,var(--line));background:color-mix(in srgb,var(--blue-1) 7%,#fff)}
.service-item[open] .service-item-icon{transform:rotate(90deg);border-color:var(--purple-1);color:var(--purple-1)}
.service-item p{padding:0 64px 22px 0;color:var(--muted);max-width:64ch;animation:detailsIn .3s ease both}
@keyframes detailsIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.service-approach{--approach-bg:var(--purple-2);background:var(--approach-bg);color:#fff}
.service-approach.theme-coral{--approach-bg:var(--red-1);--approach-bg-end:var(--red-3)}
.service-approach.theme-butter{--approach-bg:var(--purple-2);--approach-bg-end:var(--purple-1)}
.service-approach.theme-sage{--approach-bg:var(--green-2);--approach-bg-end:var(--green-1)}
.service-approach.theme-aqua{--approach-bg:var(--blue-3);--approach-bg-end:var(--turquoise-1)}
.approach-card{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(260px,.95fr) minmax(360px,1.25fr);gap:26px 64px;align-items:start}.approach-card .eyebrow{grid-column:1 / -1;color:rgba(255,255,255,.62)}.approach-card h2{grid-column:1;margin-top:6px;color:#fff;max-width:11ch}.approach-card p:last-child{grid-column:2;margin-top:8px;color:rgba(255,255,255,.8);max-width:56ch;padding-top:16px}
.service-contact .contact-card{max-width:1100px;margin:0 auto}

.cursor-dot{display:none}

@media (max-width:1100px){
  :root{--header-h:92px}
  .brand img{height:140px}.site-header.is-scrolled .brand img{height:56px}
  .content-slider-track{min-height:650px}
  .content-slide,.service-slider .content-slide{grid-template-columns:1fr;gap:26px}
  .slide-visual,.service-slider .slide-visual{justify-self:start;order:-1;margin-top:0}
  .hero-illustration,.service-illustration{width:200px}
  .brand img{height:112px}.site-header.is-scrolled .brand img{height:50px}
  .hero .slide-copy h1,.service-slider .slide-copy h1{max-width:14ch}
  .section-intro{grid-template-columns:1fr}.section-intro .eyebrow,.section-intro h2,.section-intro>p:last-child{grid-column:1}
  .about-stage{grid-template-columns:1fr}
  .service-panel{grid-template-columns:94px minmax(240px,.9fr) 1fr}.service-icon-art{width:84px}.service-hero-art{width:300px}
  .process-section{grid-template-columns:1fr}.process-sticky{position:relative;top:auto}.process-step{padding:34px 0}
  .why-track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ai-shell{grid-template-columns:1fr}
  .person-grid{grid-template-columns:1fr 1fr}
  .service-detail{grid-template-columns:1fr}.service-detail-head{position:relative;top:auto}
}

@media (max-width:760px){
  :root{--pad:16px;--section-y:68px;--header-h:82px}
  .site-header{padding-inline:14px}
  .brand{margin-left:0}
  .brand img{height:76px}.site-header.is-scrolled .brand img{height:44px}
  .lang-switch{display:none}
  .overlay-nav a{font-size:36px}.menu-inner{padding-top:100px}
  .hero,.service-hero{min-height:auto;padding-top:108px;padding-bottom:82px}
  .content-slider-track,.service-slider .content-slider-track{min-height:590px}
  .slide-copy h1,.hero .slide-copy h1,.service-slider .slide-copy h1{font-size:clamp(38px,11vw,56px)}
  .slide-lead,.service-slider .slide-lead{font-size:16px;max-width:none}
  .hero-illustration,.service-illustration{width:150px}
  .scroll-cue{left:16px;right:16px;transform:none;justify-content:center}.page-scrolled .scroll-cue{transform:translateY(12px)}
  .belief-item{grid-template-columns:44px 1fr}.belief-item p{grid-column:2}
  .service-panel{grid-template-columns:72px 1fr;gap:16px 18px}.service-icon-art{width:66px}.service-hero-art{width:210px}.service-panel-copy{grid-column:2}.service-tags{grid-column:2}.service-panel-top{grid-row:1 / span 2}.service-panel-copy h3{font-size:32px}
  .service-tags span{white-space:normal}
  .why-track{grid-template-columns:1fr}.why-card h3{min-height:0;font-size:26px}.why-section .section-intro h2{font-size:clamp(38px,10vw,54px)}
  .ai-diagram{min-height:390px}.ai-core{width:100px;height:100px}.ai-label{font-size:11px}
  .reference-coverflow{overflow:hidden}
  .reference-coverflow-stage{height:auto;min-height:0;display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:6px 12px 10px 0;perspective:none;transform:none;scrollbar-width:none;-ms-overflow-style:none}
  .reference-coverflow-stage::-webkit-scrollbar{display:none}
  .reference-slide{position:relative;left:auto;top:auto;width:auto;min-height:300px;padding:22px;transform:none;opacity:1;scroll-snap-align:center;scroll-snap-stop:always;pointer-events:auto}
  .person-grid{grid-template-columns:1fr}
  .contact-card{grid-template-columns:1fr}.contact-visual{min-height:180px}
  .service-detail-head h2{font-size:34px}.service-item summary{font-size:21px}.service-item p{padding-right:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .service-icon-art img,.service-icon-art::before,.service-hero-art img,.service-hero-art::before,.service-hero-art::after,.service-contact-art img{animation:none}
  *,*::before,*::after{animation:none;transition-duration:.01ms}
  .reveal{opacity:1;transform:none}
}

/* palette-specific contrast */
.contact-section .eyebrow,.service-contact .eyebrow{color:rgba(255,255,255,.72)}
.contact-section h2,.service-contact h2,.contact-section .contact-email,.service-contact .contact-email{color:#fff}
.process-center .vicon{background:color-mix(in srgb,var(--blue-4) 28%,transparent)}
.process-dot{background:color-mix(in srgb,var(--turquoise-2) 70%,#fff)}
.process-dot.active{background:#fff}
.ai-core{background:var(--purple-2)}
.ai-label:nth-of-type(1){border-color:var(--blue-2)}
.ai-label:nth-of-type(2){border-color:var(--purple-1)}
.ai-label:nth-of-type(3){border-color:var(--green-1)}
.ai-label:nth-of-type(4){border-color:var(--turquoise-1)}

@media (max-width: 980px){.approach-card{grid-template-columns:1fr;gap:18px}.approach-card .eyebrow,.approach-card h2,.approach-card p:last-child{grid-column:1}.approach-card p:last-child{padding-top:0}}

/* ComLab logo, approved Vivus v8 integration */
.brand-logo-shell{
  position:relative;
  display:block;
  width:150px;
  height:150px;
  line-height:0;
  transition:width .55s cubic-bezier(.2,.72,.18,1),height .55s cubic-bezier(.2,.72,.18,1);
}
.site-header.is-scrolled .brand-logo-shell{width:54px;height:54px}
.brand-logo-final,
.brand-logo-outline{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.brand .brand-logo-final{
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:0;
  filter:brightness(0) saturate(100%) opacity(.24);
  transition:opacity 160ms ease,filter 900ms cubic-bezier(.22,.8,.2,1);
}
.brand-logo-outline{
  overflow:visible;
  opacity:1;
  transition:opacity 900ms ease;
}
.brand-logo-outline .vivus-part{
  fill:none;
  stroke:rgba(16,36,34,.58);
  stroke-width:1.2px;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.brand-logo-shell.is-hold .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(.24);
}
.brand-logo-shell.is-colorized .brand-logo-final,
.brand-logo-shell.is-complete .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(1);
}
.brand-logo-shell.is-colorized .brand-logo-outline,
.brand-logo-shell.is-complete .brand-logo-outline{
  opacity:0;
}
.brand-logo-shell.is-fallback .brand-logo-final{
  opacity:1;
  filter:brightness(0) saturate(100%) opacity(1);
}
.brand-logo-shell.is-fallback .brand-logo-outline{opacity:0}

@media (max-width:1200px){
  .brand-logo-shell{width:140px;height:140px}
  .site-header.is-scrolled .brand-logo-shell{width:56px;height:56px}
}
@media (max-width:980px){
  .brand-logo-shell{width:112px;height:112px}
  .site-header.is-scrolled .brand-logo-shell{width:50px;height:50px}
}
@media (max-width:760px){
  .brand-logo-shell{width:76px;height:76px}
  .site-header.is-scrolled .brand-logo-shell{width:44px;height:44px}
}
@media (prefers-reduced-motion:reduce){
  .brand .brand-logo-final{
    opacity:1;
    filter:brightness(0) saturate(100%) opacity(1);
  }
  .brand-logo-outline{display:none}
}



.service-panel .service-icon-art img,
.service-hero-art img{
  will-change:transform,filter;
}
.service-panel:hover .service-icon-art img,
.service-panel:focus-visible .service-icon-art img{
  transform:scale(1.04) rotate(-1deg);
}


@media (max-width: 760px){
  .hero-illustration.hero-image-art{
    width:min(74vw,330px);
  }
  .hero-illustration.hero-image-art img{
    width:100%;
    height:100%;
  }
}


/* Service page link colors */
.service-page-strategy{--service-link:var(--red-3);--service-link-soft:var(--red-1)}
.service-page-pr{--service-link:var(--purple-1);--service-link-soft:var(--purple-2)}
.service-page-social{--service-link:var(--green-1);--service-link-soft:var(--green-2)}
.service-page-digital{--service-link:var(--blue-2);--service-link-soft:var(--turquoise-1)}

.service-page a:not(.brand):not(.contact-email){
  color:var(--service-link);
}
.service-page .hero-cta,
.service-page .back-home{
  border-color:currentColor;
}
.service-page .service-item:hover summary{
  color:var(--service-link);
}
.service-page .service-item-icon{
  color:var(--service-link);
}
.service-page .service-item:hover .service-item-icon{
  color:var(--service-link);
  border-color:color-mix(in srgb,var(--service-link) 38%,var(--line));
  background:color-mix(in srgb,var(--service-link) 6%,#fff);
}
.service-page .service-item[open] .service-item-icon{
  color:var(--service-link);
  border-color:var(--service-link);
}
.service-page .service-contact{
  background:var(--service-link);
}
.service-page .service-contact .contact-email{
  color:#fff;
  border-color:rgba(255,255,255,.72);
}


/* v40: mobile header, menu, hero and service-link refinements */
.site-header.is-scrolled{
  min-height:70px;
  padding-top:7px;
  padding-bottom:7px;
}
.site-header.is-scrolled .brand-logo-shell{width:50px;height:50px}
.site-header.is-scrolled .brand .brand-logo-final{width:100%;height:100%;filter:none;opacity:1}
.brand .brand-logo-final{filter:none}

.service-main-link{color:var(--ink);text-decoration:none;transition:color .2s ease}
.service-main-link:hover{color:var(--accent)}
.service-main-icon-link{display:inline-grid;color:inherit}
.service-panel{cursor:default}
.service-tag{color:var(--ink);text-decoration:none}
.service-tag-arrow{display:block;width:18px;height:18px;padding:3px;border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,#fff);stroke:var(--accent);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.service-tag:hover .service-tag-arrow{background:color-mix(in srgb,var(--accent) 18%,#fff)}
.service-item-icon{font-size:0}
.service-item-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.inline-arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.service-item{scroll-margin-top:88px}

@media (max-width:760px){
  :root{--header-h:72px}
  .site-header{min-height:72px;padding:8px 14px;align-items:flex-start}
  .site-header.is-scrolled{min-height:58px;padding:5px 14px;background:rgba(255,255,255,.96)}
  .brand-logo-shell{width:60px;height:60px}
  .site-header.is-scrolled .brand-logo-shell{width:46px;height:46px}
  .brand .brand-logo-final,
  .brand-logo-shell.is-hold .brand-logo-final,
  .brand-logo-shell.is-colorized .brand-logo-final,
  .brand-logo-shell.is-complete .brand-logo-final,
  .brand-logo-shell.is-fallback .brand-logo-final{
    opacity:1;
    filter:none;
    width:100%;
    height:100%;
  }
  .brand-logo-outline{display:none}
  .header-actions{padding-top:0;align-items:center}
  .menu-button,.back-home{min-height:36px;padding-inline:12px}
  .menu-inner{padding:142px 16px 28px;grid-template-rows:auto 1fr auto}
  .menu-label{margin:0 0 24px}
  .overlay-nav{align-self:start;width:100%;max-width:none}
  .overlay-nav a{font-size:clamp(31px,10vw,43px);padding:12px 0}
  .menu-foot{padding-top:24px}
  .hero .slide-visual,.service-slider .slide-visual{justify-self:center;width:100%;justify-content:center}
  .hero .hero-illustration-image,.hero .hero-image-art,.service-hero-art{margin-inline:auto}
  .hero .hero-illustration.hero-image-art{width:min(74vw,310px)}
  .content-slider-track,.service-slider .content-slider-track{min-height:620px}
  .service-panel{grid-template-columns:62px 1fr;gap:14px 16px}
  .service-icon-art{width:58px}
  .service-panel-copy{grid-column:2}
  .service-tags{grid-column:1 / -1;padding-top:8px}
  .service-panel-top{grid-row:1;grid-column:1}
  .service-panel-copy h3{font-size:30px}
  .service-tag{white-space:normal;min-height:34px}
}


/* v41: keep the open-menu label clear of the large logo */
@media (min-width:761px){
  .menu-inner{position:relative;grid-template-rows:1fr auto;overflow-y:auto}
  .menu-label{position:absolute;top:calc(var(--header-h) + 72px);left:max(var(--pad),calc((100vw - var(--max))/2));margin:0;z-index:2}
  .overlay-nav{grid-row:1}
  .menu-foot{grid-row:2}
}
@media (max-width:760px){
  .menu-inner{position:relative;grid-template-rows:auto 1fr auto;overflow-y:auto}
  .menu-label{position:static;margin:0 0 24px}
}


/* Subservice detail pages */
.compact-content-header{min-height:76px;padding-top:9px;padding-bottom:9px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.compact-content-header .brand img{height:58px}
.compact-content-header.is-scrolled .brand img{height:46px}
.subservice-page{--subservice-tint:color-mix(in srgb,var(--service-link) 7%,#fff)}
.subservice-page .subservice-hero{padding-top:150px;padding-bottom:clamp(58px,7vw,94px);background:#fff;border-bottom:1px solid var(--line)}
.content-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:clamp(42px,6vw,76px);font-size:12px;color:var(--muted)}
.content-breadcrumb a{color:var(--ink)}
.content-breadcrumb a:hover{color:var(--service-link,var(--blue-2))}
.subservice-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);gap:clamp(40px,8vw,120px);align-items:center}
.subservice-hero-copy h1{margin-top:18px;font-size:clamp(54px,7vw,100px);max-width:10ch}
.subservice-lead{margin-top:26px;max-width:62ch;font-size:clamp(18px,1.55vw,23px);color:var(--muted)}
.subservice-back-link,.subservice-readmore{display:inline-flex;align-items:center;gap:9px;color:var(--service-link);font-size:13px;font-weight:800}
.subservice-back-link{margin-top:28px;border-bottom:1px solid currentColor;padding-bottom:5px}
.subservice-hero-art{position:relative;display:grid;place-items:center;min-height:280px}
.subservice-hero-art img{position:relative;z-index:2;width:min(280px,80%);filter:drop-shadow(0 18px 34px color-mix(in srgb,var(--service-link) 18%,transparent));animation:serviceArtFloat 6s ease-in-out infinite}
.subservice-icon-halo{position:absolute;width:230px;height:230px;border-radius:50%;background:color-mix(in srgb,var(--service-link) 11%,transparent);animation:serviceArtGlow 5s ease-in-out infinite}
.subservice-explain{display:grid;grid-template-columns:minmax(260px,.55fr) minmax(0,1fr);gap:clamp(42px,8vw,120px);align-items:start}
.subservice-explain h2{margin-top:18px;font-size:clamp(34px,4vw,58px)}
.subservice-explain-copy{display:grid;gap:18px;font-size:clamp(17px,1.25vw,20px)}
.subservice-explain-copy p:last-child{color:var(--muted)}
.subservice-method{background:#f7f9f9;display:grid;grid-template-columns:minmax(260px,.6fr) minmax(0,1fr);gap:clamp(46px,8vw,120px)}
.subservice-method-copy h2{margin:18px 0 22px;font-size:clamp(34px,4vw,58px)}
.subservice-method-copy p:last-child{max-width:52ch;color:var(--muted)}
.subservice-steps ol{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line-strong)}
.subservice-steps li{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.subservice-steps li span{color:var(--service-link);font-size:11px;font-weight:800;letter-spacing:.12em}
.subservice-steps li p{font-size:clamp(17px,1.3vw,20px);font-weight:700}
.subservice-rich-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(48px,8vw,120px);align-items:start}
.subservice-rich-copy h2{margin:18px 0 22px;font-size:clamp(38px,4.5vw,64px)}
.subservice-rich-copy p:last-child{color:var(--muted);max-width:56ch}
.subservice-point-grid{display:grid;gap:0;border-top:1px solid var(--line-strong)}
.subservice-point-grid article{padding:22px 0;border-bottom:1px solid var(--line)}
.subservice-point-grid span{font-size:11px;font-weight:800;color:var(--service-link)}
.subservice-point-grid h3{margin:7px 0 8px;font-size:26px}
.subservice-point-grid p{color:var(--muted)}
.subservice-related{width:min(760px,calc(100% - 2*var(--pad)));margin:0 auto var(--section-y);padding:34px;border:1px solid var(--line);border-left:4px solid var(--service-link);background:#fff}
.subservice-related h3{margin:14px 0 24px;font-size:clamp(26px,3vw,40px)}
.subservice-related a{color:var(--service-link);font-weight:800}
.subservice-readmore{margin:10px 0 22px;padding-bottom:4px;border-bottom:1px solid color-mix(in srgb,var(--service-link) 42%,transparent);width:max-content}
.subservice-contact{background:var(--service-link)}

/* Blog listing and article */
.blog-page .compact-content-header{background:rgba(255,255,255,.94)}
.blog-list-hero{padding-top:170px;padding-bottom:70px;background:#fff}
.blog-list-intro{max-width:980px}
.blog-list-intro h1{margin:20px 0 26px;max-width:13ch;font-size:clamp(50px,6vw,88px)}
.blog-list-intro>p:last-child{max-width:62ch;color:var(--muted);font-size:clamp(18px,1.45vw,22px)}
.blog-grid-section{padding-top:72px}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.blog-card{display:flex;flex-direction:column;min-height:330px;padding:32px;border-bottom:1px solid var(--line-strong);transition:background .25s ease,transform .25s ease}
.blog-card:nth-child(odd){border-right:1px solid var(--line-strong)}
a.blog-card:hover{background:#f7f9f9;transform:translateY(-3px)}
.blog-category{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue-2)}
.blog-card h2{margin:30px 0 20px;font-size:clamp(28px,3vw,42px)}
.blog-card p{color:var(--muted)}
.blog-card-link{margin-top:auto;padding-top:28px;font-size:13px;font-weight:800}
.blog-card-soon .blog-card-link{color:var(--muted)}
.article-hero{padding-top:170px;padding-bottom:80px;background:#fff}
.article-hero h1{margin:24px 0 28px;font-size:clamp(52px,6.5vw,92px)}
.article-lead{font-size:clamp(19px,1.6vw,24px);color:var(--muted)}
.article-meta{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}
.article-body{width:min(850px,calc(100% - 2*var(--pad)));margin:0 auto;padding:40px 0 var(--section-y)}
.article-section{padding:42px 0;border-bottom:1px solid var(--line)}
.article-section h2{font-size:clamp(32px,4vw,52px);margin-bottom:22px}
.article-section p{font-size:clamp(17px,1.25vw,20px);color:#344745}
.article-related{margin-top:60px;padding:32px;background:#f3f8ff;border-left:4px solid var(--blue-2)}
.article-related span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted)}
.article-related h3{margin:10px 0 20px}
.article-related a{color:var(--blue-2);font-weight:800}

@media(max-width:760px){
 .compact-content-header{min-height:62px;padding:7px var(--pad)}
 .compact-content-header .brand img{height:48px}
 .subservice-page .subservice-hero,.blog-list-hero,.article-hero{padding-top:120px}
 .content-breadcrumb{margin-bottom:34px}
 .subservice-hero-grid,.subservice-explain,.subservice-method,.subservice-rich-section{grid-template-columns:1fr}
 .subservice-hero-art{min-height:210px;order:-1;justify-content:start}
 .subservice-hero-art img{width:190px}
 .subservice-icon-halo{width:165px;height:165px}
 .blog-grid{grid-template-columns:1fr}
 .blog-card:nth-child(odd){border-right:0}
 .blog-card{min-height:280px;padding:26px 0}
}


/* v45 reference mosaic: editorial, aligned, borderless */
.reference-mosaic-section{background:#fff}
.reference-mosaic{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:row;
  align-items:start;
  column-gap:clamp(34px,4vw,64px);
  row-gap:clamp(58px,5vw,84px);
  margin-top:58px;
}
.reference-tile{
  position:relative;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:visible;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.reference-tile:hover{transform:translateY(-3px)}
.reference-tile.has-image{background:transparent}
.reference-media{
  width:100%;
  aspect-ratio:16/10;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin:0 0 clamp(18px,2vw,28px);
  padding:0;
  overflow:hidden;
  background:transparent;
}
.reference-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center bottom;
}
.reference-tile-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  min-width:0;
  height:auto;
  padding:0;
}
.reference-brand{
  min-height:30px;
  display:flex;
  align-items:center;
  margin:0;
}
.reference-brand img{
  width:auto;
  max-width:132px;
  max-height:30px;
  object-fit:contain;
  object-position:left center;
  display:block;
}
.reference-brand-large{
  min-height:48px;
  display:flex;
  align-items:center;
  margin:0 0 4px;
}
.reference-brand-large img{
  width:auto;
  max-width:160px;
  max-height:44px;
}
.reference-tile p{
  margin:0;
  max-width:62ch;
  color:#344745;
  font-size:15px;
  line-height:1.68;
}
.reference-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:6px;
}
.reference-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
  transition:border-color .2s ease,transform .2s ease;
}
.reference-tag:hover{
  background:#fff;
  border-color:var(--ink);
  transform:translateY(-1px);
}
.reference-project-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  width:max-content;
  margin-top:2px;
  font-size:12px;
  font-weight:800;
}
.reference-project-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.tile-bramac{grid-column:span 6}
.tile-cofidis{grid-column:span 6}
.tile-lactalis,.tile-cchbc,.tile-purina{grid-column:span 4}
.tile-piaggio{grid-column:2 / span 8}
.tile-piaggio .reference-tile-body{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:start;
  column-gap:34px;
  row-gap:12px;
}
.tile-piaggio .reference-brand-large{
  grid-column:1;
  grid-row:1 / span 2;
  margin:0;
}
.tile-piaggio p{grid-column:2;grid-row:1}
.tile-piaggio .reference-tags{grid-column:2;grid-row:2;margin-top:0}

.service-references{background:#fff}
.reference-context-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:clamp(44px,4vw,64px) clamp(28px,3vw,48px);
  margin-top:42px;
}
.reference-tile-compact{min-height:0}
.reference-tile-compact .reference-media{
  aspect-ratio:16/10;
  margin-bottom:18px;
}
.reference-tile-compact .reference-tile-body{
  gap:12px;
}
.reference-tile-compact p{
  font-size:14px;
  line-height:1.65;
}
.reference-tile-compact .reference-brand-large{
  min-height:42px;
  margin-bottom:2px;
}
.reference-tile-compact .reference-brand-large img{
  max-height:38px;
  max-width:150px;
}
.article-featured{width:min(1180px,calc(100% - 2*var(--pad)));margin:0 auto 20px;border-radius:24px;overflow:hidden;background:#f2f6f8}
.article-featured img{width:100%;aspect-ratio:1.9/1;object-fit:cover;display:block}
.article-keypoints{margin:38px 0;padding:26px 28px;background:#f3f8ff;border-radius:18px;border-left:4px solid var(--blue-2)}
.article-keypoints ul{display:grid;gap:12px;margin:18px 0 0;padding:0;list-style:none}
.article-keypoints li{position:relative;padding-left:22px;color:#344745;line-height:1.6}
.article-keypoints li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--blue-2)}
.article-pullquote{margin:44px 0;padding:34px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.article-pullquote p{margin:0;font-size:clamp(25px,3vw,38px);font-weight:800;letter-spacing:-.035em;line-height:1.15;color:var(--ink)}
.article-embed-section{border-bottom:0}
.article-embed{position:relative;aspect-ratio:16/9;margin-top:24px;overflow:hidden;border-radius:20px;border:1px solid var(--line-strong);background:#f6f8f8}
.article-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.embed-caption{margin-top:12px;font-size:13px;color:var(--muted)}
.article-reference-section{
  width:100%;
  margin:72px 0 0;
  padding:48px 0 0;
  border-top:1px solid var(--line);
}
.article-reference-head{
  max-width:720px;
  margin:0 0 34px;
}
.article-reference-head h2{
  margin-top:14px;
  font-size:clamp(30px,3.6vw,46px);
  line-height:1.02;
}
.article-reference-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:46px 34px;
  margin-top:0;
}
.article-form-section{margin-top:80px;padding:42px;border-radius:24px;background:#f5f8f8;border:1px solid var(--line)}
.article-form-copy{max-width:650px;margin-bottom:30px}
.article-form-copy h2{margin:12px 0 16px;font-size:clamp(32px,4vw,54px)}
.article-form-copy p:last-child{color:var(--muted)}
.demo-contact-form{display:grid;gap:24px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form-grid label{display:grid;gap:8px}
.form-grid label>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink);padding:14px 15px;font:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--blue-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue-2) 12%,transparent)}
.form-grid textarea{resize:vertical;min-height:130px}
.form-field-wide{grid-column:1/-1}
.form-checks{display:grid;gap:12px}
.check-row{display:flex;align-items:flex-start;gap:11px;font-size:13px;color:#344745;cursor:pointer}
.check-row input{position:absolute;opacity:0;pointer-events:none}
.check-box{position:relative;flex:0 0 20px;width:20px;height:20px;border:1px solid var(--line-strong);border-radius:5px;background:#fff}
.check-row input:checked+.check-box{background:var(--blue-2);border-color:var(--blue-2)}
.check-row input:checked+.check-box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.form-submit{display:inline-flex;align-items:center;gap:12px;width:max-content;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:14px 20px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:transform .2s ease,opacity .2s ease}
.form-submit:hover{transform:translateY(-2px)}
.form-submit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form-status{margin:0;color:var(--blue-2);font-size:13px;font-weight:700}
.blog-card-featured{padding-top:20px}
.blog-card-media{margin:-10px -10px 26px;overflow:hidden;border-radius:16px;background:#f2f6f8}
.blog-card-media img{width:100%;aspect-ratio:16/8;object-fit:cover;display:block;transition:transform .45s ease}
a.blog-card-featured:hover .blog-card-media img{transform:scale(1.025)}
@media(max-width:980px){
 .reference-mosaic{
   grid-template-columns:repeat(2,minmax(0,1fr));
   column-gap:34px;
   row-gap:58px;
 }
 .tile-bramac,.tile-cofidis,.tile-lactalis,.tile-cchbc,.tile-purina,.tile-piaggio{
   grid-column:span 1;
 }
 .tile-piaggio .reference-tile-body{
   display:flex;
 }
 .tile-piaggio .reference-tags{
   margin-top:6px;
 }
 .reference-context-grid{
   grid-template-columns:repeat(2,minmax(0,1fr));
   gap:44px 30px;
 }
}
@media(max-width:680px){
 .reference-mosaic,.reference-context-grid,.article-reference-grid{
   grid-template-columns:1fr;
 }
 .reference-mosaic{
   row-gap:52px;
   margin-top:42px;
 }
 .reference-media{
   aspect-ratio:16/10;
   margin-bottom:18px;
 }
 .reference-tile-body{
   padding:0;
 }
 .article-reference-section{
   width:100%;
   margin:56px 0 0;
   padding-top:40px;
 }
 .article-form-section{padding:26px 20px;border-radius:18px}
 .form-grid{grid-template-columns:1fr}
 .form-field-wide{grid-column:auto}
 .article-featured{width:calc(100% - 2*var(--pad));border-radius:16px}
}


/* v46 portfolio system */
.portfolio-section{background:#fff}
.portfolio-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:dense;
  align-items:stretch;
  gap:clamp(28px,3vw,44px);
  margin-top:clamp(48px,5vw,72px);
}
.portfolio-card{
  min-width:0;
  min-height:370px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.portfolio-card:hover{transform:translateY(-4px)}
.portfolio-media{
  height:215px;
  margin:0 0 22px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.portfolio-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center bottom;
}
.portfolio-content{
  min-height:0;
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.portfolio-card--text .portfolio-content{
  padding-top:20px;
  border-top:1px solid var(--line);
}
.portfolio-brand{
  min-height:34px;
  display:flex;
  align-items:center;
}
.portfolio-brand img{
  width:auto;
  max-width:150px;
  max-height:34px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.portfolio-description{
  margin:0;
  color:#344745;
}
.portfolio-card--media .portfolio-description{
  max-width:60ch;
  font-size:14px;
  line-height:1.65;
}
.portfolio-card--text .portfolio-description{
  margin:auto 0;
  max-width:23ch;
  font-size:clamp(20px,1.65vw,28px);
  font-weight:750;
  letter-spacing:-.035em;
  line-height:1.15;
  color:var(--ink);
}
.portfolio-card--text.p-lactalis .portfolio-description,
.portfolio-card--text.p-piaggio .portfolio-description{
  max-width:25ch;
  font-size:clamp(23px,2vw,33px);
}
.portfolio-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:auto;
}
.portfolio-tag{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
  font-weight:800;
  letter-spacing:.035em;
  transition:transform .2s ease,border-color .2s ease;
}
.portfolio-tag:hover{transform:translateY(-1px);border-color:var(--ink)}
.portfolio-project-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:2px;
  color:var(--ink);
  font-size:11px;
  font-weight:800;
}
.portfolio-project-link svg,
.section-link-button svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.p-bramac{grid-column:1 / span 7}
.p-lactalis{grid-column:8 / span 5}
.p-cofidis{grid-column:1 / span 6}
.p-cchbc{grid-column:7 / span 3}
.p-purina{grid-column:10 / span 3}
.p-piaggio{grid-column:3 / span 8}

.section-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(44px,5vw,70px);
}
.section-link-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:13px 18px;
  border:1px solid var(--ink);
  border-radius:999px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.section-link-button:hover{
  background:var(--ink);
  color:#fff;
  transform:translateY(-2px);
}

/* portfolio collection page */
.collection-page-hero,
.team-page-hero{
  padding-top:130px;
  padding-bottom:clamp(54px,7vw,96px);
}
.collection-page-intro,
.team-page-intro{max-width:920px}
.collection-page-intro h1,
.team-page-intro h1{
  margin-top:18px;
  font-size:clamp(52px,7vw,94px);
}
.collection-page-intro>p:last-child,
.team-page-intro>p:last-child{
  margin-top:22px;
  color:var(--muted);
  font-size:clamp(17px,1.4vw,21px);
}
.portfolio-filter{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:4px 0 0;
}
.portfolio-filter button{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:8px 12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.portfolio-filter button.is-active{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.portfolio-card.is-filtered-out{display:none}

/* team page */
.team-preview-section .section-actions{margin-top:42px}
.team-page-main{background:#fff}
.team-page-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(34px,4vw,60px);
}
.team-page-grid .person-card{min-width:0}
.team-page-grid .person-image{
  aspect-ratio:1/.95;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.team-page-grid .person-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
}
.team-page-grid .person-copy h2{
  margin-top:18px;
  font-size:clamp(29px,2.4vw,40px);
}
.team-page-grid .person-copy .role{
  margin-top:6px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.team-page-grid .person-copy>p:not(.role){
  margin-top:10px;
  color:var(--muted);
}
.team-page-note{
  margin-top:clamp(70px,8vw,120px);
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(40px,7vw,100px);
  padding-top:42px;
  border-top:1px solid var(--line);
}
.team-page-note h2{font-size:clamp(34px,4vw,58px)}
.team-page-note p{max-width:60ch;color:var(--muted);font-size:18px}

@media(max-width:980px){
  .portfolio-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .p-bramac,.p-lactalis,.p-cofidis,.p-cchbc,.p-purina,.p-piaggio{
    grid-column:auto;
  }
  .portfolio-card{min-height:350px}
  .team-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .portfolio-grid{grid-template-columns:1fr;gap:50px}
  .portfolio-card{min-height:0}
  .portfolio-media{height:auto;aspect-ratio:16/10}
  .portfolio-card--text .portfolio-description,
  .portfolio-card--text.p-lactalis .portfolio-description,
  .portfolio-card--text.p-piaggio .portfolio-description{
    margin:24px 0 30px;
    font-size:clamp(24px,7vw,34px);
  }
  .team-page-grid{grid-template-columns:1fr}
  .team-page-note{grid-template-columns:1fr}
  .collection-page-hero,.team-page-hero{padding-top:108px}
}


/* v47 editorial reference system */
.reference-editorial{
  display:grid;
  gap:clamp(64px,7vw,108px);
  margin-top:clamp(52px,6vw,82px);
}
.reference-feature{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);
  gap:clamp(42px,6vw,92px);
  align-items:center;
  min-width:0;
}
.reference-feature.is-reverse{
  grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);
}
.reference-feature.is-reverse .reference-feature-media{order:2}
.reference-feature.is-reverse .reference-feature-copy{order:1}

.reference-feature-media{
  min-width:0;
  min-height:360px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.reference-feature-media img{
  width:100%;
  height:auto;
  max-height:520px;
  display:block;
  object-fit:contain;
}
.reference-feature-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
}
.reference-feature-brand{
  min-height:38px;
  display:flex;
  align-items:center;
}
.reference-feature-brand img{
  width:auto;
  max-width:160px;
  max-height:36px;
  display:block;
  object-fit:contain;
}
.reference-feature-copy h3{
  font-size:clamp(34px,3.8vw,58px);
  line-height:1;
}
.reference-feature-copy p{
  margin:0;
  color:#344745;
  font-size:clamp(16px,1.25vw,19px);
  line-height:1.7;
}
.reference-feature-tags,
.reference-text-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.reference-feature-tag,
.reference-text-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  color:var(--ink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
}
.reference-feature-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:2px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
}
.reference-feature-link svg,
.reference-overview-link svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.reference-text-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(30px,3vw,48px);
  align-items:stretch;
}
.reference-text-item{
  min-width:0;
  min-height:310px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.reference-text-item:nth-child(1){grid-column:span 7}
.reference-text-item:nth-child(2){grid-column:span 5}
.reference-text-item:nth-child(3){grid-column:span 5}
.reference-text-item:nth-child(4){grid-column:span 7}
.reference-text-brand{
  min-height:42px;
  display:flex;
  align-items:center;
}
.reference-text-brand img{
  width:auto;
  max-width:165px;
  max-height:42px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.reference-text-item p{
  margin:auto 0;
  color:var(--ink);
  font-size:clamp(24px,2.2vw,38px);
  font-weight:750;
  letter-spacing:-.04em;
  line-height:1.08;
}
.reference-text-item:nth-child(2) p,
.reference-text-item:nth-child(3) p{
  font-size:clamp(21px,1.8vw,31px);
}
.reference-overview-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-bottom:7px;
  border-bottom:1px solid var(--ink);
  color:var(--ink);
  font-size:13px;
  font-weight:800;
}
.reference-editorial-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(46px,5vw,72px);
}

/* Reference collection page uses the same visual language. */
.reference-collection .reference-editorial{
  margin-top:42px;
}
.reference-collection [data-reference-unit].is-filtered-out{
  display:none;
}

@media(max-width:980px){
  .reference-feature,
  .reference-feature.is-reverse{
    grid-template-columns:1fr;
    gap:30px;
  }
  .reference-feature.is-reverse .reference-feature-media,
  .reference-feature.is-reverse .reference-feature-copy{
    order:initial;
  }
  .reference-feature-media{
    min-height:0;
  }
  .reference-text-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reference-text-item:nth-child(n){
    grid-column:auto;
  }
}
@media(max-width:680px){
  .reference-editorial{
    gap:62px;
  }
  .reference-feature-copy h3{
    font-size:clamp(32px,10vw,48px);
  }
  .reference-text-grid{
    grid-template-columns:1fr;
    gap:48px;
  }
  .reference-text-item{
    min-height:0;
  }
  .reference-text-item p,
  .reference-text-item:nth-child(2) p,
  .reference-text-item:nth-child(3) p{
    margin:24px 0 28px;
    font-size:clamp(25px,7.5vw,36px);
  }
}


/* v47 team profile pages */
.person-name-link{
  color:inherit;
  text-decoration:none;
}
.person-name-link:hover{
  opacity:.68;
}
.person-image-link{
  display:block;
  height:100%;
}
.member-page{background:#fff}
.member-hero{
  padding-top:130px;
  padding-bottom:clamp(54px,7vw,96px);
}
.member-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.65fr);
  gap:clamp(50px,8vw,120px);
  align-items:end;
}
.member-hero-copy h1{
  margin-top:18px;
  font-size:clamp(56px,7.5vw,108px);
  line-height:.92;
}
.member-role{
  margin-top:22px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.member-lead{
  margin-top:22px;
  font-size:clamp(18px,1.5vw,23px);
  line-height:1.65;
  color:#344745;
}
.member-hero-image{
  min-height:420px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.member-hero-image img{
  width:100%;
  height:100%;
  max-height:620px;
  object-fit:contain;
  object-position:center bottom;
}
.member-content{
  display:grid;
  grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);
  gap:clamp(50px,8vw,120px);
  align-items:start;
}
.member-aside{
  position:sticky;
  top:110px;
  display:grid;
  gap:10px;
}
.member-aside a{
  width:max-content;
  font-size:13px;
  font-weight:800;
  border-bottom:1px solid var(--ink);
}
.member-main{
  display:grid;
  gap:48px;
}
.member-block{
  padding-top:30px;
  border-top:1px solid var(--line);
}
.member-block h2{
  font-size:clamp(30px,3.5vw,50px);
}
.member-block p{
  margin-top:18px;
  color:#344745;
  font-size:18px;
  line-height:1.75;
}
.member-focus{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:22px;
}
.member-focus span{
  padding:8px 11px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
@media(max-width:760px){
  .member-hero{padding-top:108px}
  .member-hero-grid,
  .member-content{
    grid-template-columns:1fr;
  }
  .member-hero-image{
    min-height:260px;
    order:-1;
  }
  .member-aside{
    position:static;
  }
}



/* v49 reference mosaic: isolated component */
.refx-shell{
  width:100%;
  margin-top:clamp(46px,5vw,72px);
}
.refx-layout{
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(46px,5vw,68px);
}
.refx-layout-main{
  width:100%;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.62fr);
  gap:clamp(30px,3.5vw,52px);
  align-items:start;
}
.refx-layout-right{
  min-width:0;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(28px,3vw,42px);
}
.refx-layout-split{
  min-width:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,2.4vw,34px);
}
.refx-tile{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:0 0 28px;
  margin:0;
  border:0;
  border-bottom:1px solid rgba(11,35,32,.13);
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.refx-media{
  width:100%;
  min-width:0;
  margin:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
}
.refx-media img{
  width:100%;
  height:auto;
  max-height:440px;
  display:block;
  object-fit:contain;
  object-position:center;
}
.refx-body{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
}
.refx-brand{
  min-width:0;
  min-height:30px;
  display:flex;
  align-items:center;
}
.refx-brand img{
  width:auto;
  max-width:160px;
  max-height:34px;
  display:block;
  object-fit:contain;
  object-position:left center;
}
.refx-tile h3{
  width:100%;
  margin:0;
  font-size:clamp(31px,3vw,49px);
  line-height:1.02;
  letter-spacing:-.045em;
  overflow-wrap:break-word;
}
.refx-tile p{
  width:100%;
  max-width:none;
  margin:0;
  color:#374845;
  font-size:clamp(15px,1.08vw,18px);
  line-height:1.66;
  overflow-wrap:break-word;
}
.refx-text{
  min-height:250px;
  justify-content:space-between;
}
.refx-text h3{
  margin:auto 0;
  font-size:clamp(28px,2.8vw,44px);
  line-height:1.04;
}
.refx-layout-split .refx-text h3{
  font-size:clamp(25px,2.25vw,36px);
}
.refx-footer{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
  margin-top:auto;
}
.refx-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.refx-tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:7px 10px;
  border:1px solid rgba(11,35,32,.2);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.025em;
}
.refx-link,
.refx-overview-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  text-decoration:none;
}
.refx-link svg,
.refx-overview-link svg{
  width:15px;
  height:15px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.refx-overview-wrap{
  display:flex;
  justify-content:flex-start;
  margin-top:clamp(42px,5vw,62px);
}
.refx-overview-link{
  padding-bottom:8px;
  border-bottom:1px solid var(--ink);
}

/* The right-hand featured project follows the supplied tile reference: image and copy side by side. */
.refx-layout-right > .refx-tile:not(.refx-text){
  display:grid;
  grid-template-columns:minmax(240px,.95fr) minmax(0,1.05fr);
  column-gap:clamp(26px,3vw,42px);
  row-gap:0;
  align-items:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
  grid-column:1;
  align-self:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
  grid-column:2;
  align-self:start;
}
.refx-layout-right > .refx-tile:not(.refx-text) .refx-media img{
  max-height:360px;
}
.refx-layout-right > .refx-tile:not(.refx-text) h3{
  font-size:clamp(29px,2.7vw,44px);
}

.service-references .section-intro,
.article-reference-section .article-reference-head{
  max-width:none;
}
.service-references .section-intro h2,
.article-reference-section .article-reference-head h2{
  max-width:none;
}
.refx-article-wrap{
  display:block;
  width:100%;
  margin-top:clamp(34px,4vw,54px);
}
.refx-article-wrap .refx-shell{
  margin-top:0;
}
.reference-collection [data-reference-unit].is-filtered-out{
  display:none;
}

@media(max-width:1120px){
  .refx-layout-main{
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.35fr);
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    grid-template-columns:1fr;
    gap:18px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media,
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:1;
  }
}
@media(max-width:860px){
  .refx-layout-main{
    grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr);
    gap:24px;
  }
  .refx-layout-split{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .refx-text{
    min-height:200px;
  }
  .refx-layout-right{
    gap:24px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);
    gap:22px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}
@media(max-width:680px){
  .refx-layout,
  .refx-layout-right{
    gap:36px;
  }
  .refx-layout-split{
    grid-template-columns:1fr;
    gap:34px;
  }
  .refx-tile{
    gap:15px;
    padding-bottom:22px;
  }
  .refx-text{
    min-height:0;
  }
  .refx-tile h3,
  .refx-text h3,
  .refx-layout-split .refx-text h3{
    margin:0;
    font-size:clamp(29px,8.8vw,42px);
  }
  .refx-media img{
    max-height:none;
  }
}


/* v50: explicit desktop mosaic placement */
@media (min-width:1121px){
  .refx-layout-main{
    grid-template-columns:minmax(300px,.82fr) minmax(0,1.58fr);
    align-items:start;
  }
  .refx-layout-right{
    grid-template-columns:1fr;
    align-content:start;
  }
  .refx-layout-split{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .refx-layout-main > .refx-tile:first-child{
    align-self:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(250px,.95fr) minmax(0,1.05fr);
    column-gap:clamp(28px,3vw,46px);
    align-items:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}


/* v51: mosaic remains multi-column until true mobile */
@media (min-width:681px){
  .refx-layout-main{
    display:grid;
    grid-template-columns:minmax(230px,.8fr) minmax(0,1.45fr);
    gap:clamp(24px,3vw,48px);
    align-items:start;
  }
  .refx-layout-right{
    display:grid;
    grid-template-columns:1fr;
    gap:clamp(24px,3vw,40px);
    min-width:0;
  }
  .refx-layout-split{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(18px,2.2vw,32px);
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);
    column-gap:clamp(22px,2.7vw,42px);
    align-items:start;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media{
    grid-column:1;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:2;
  }
}
@media (min-width:1200px){
  .refx-layout-main{
    grid-template-columns:minmax(330px,.78fr) minmax(0,1.62fr);
  }
}
/* Reference collection should use the full section width, not an article-style narrow column. */
.collection-page .portfolio-collection,
.collection-page .reference-collection{
  width:100%;
}
.collection-page .refx-shell,
.collection-page .refx-layout{
  width:100%;
  max-width:none;
}


/* ===== ComLab content refresh 2026-08-13 ===== */
/* Strong, flat color direction: white canvas + saturated ComLab accents; no gradients. */
.hero-single{background:#fff;min-height:100svh;padding-top:calc(var(--header-h) + 26px)}
.hero-single-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(340px,.72fr);gap:clamp(48px,7vw,110px);align-items:center}
.hero-single-copy h1{font-size:clamp(48px,5.25vw,82px);line-height:.96;max-width:15ch}
.hero-single-copy .slide-lead{max-width:58ch;font-size:clamp(17px,1.32vw,20px)}
.hero-single-visual{display:grid;place-items:center;min-height:520px;position:relative}
.hero-logo-animated{position:relative;width:clamp(310px,33vw,500px);aspect-ratio:1;display:grid;place-items:center;animation:heroLogoFloat 6s ease-in-out infinite}
.hero-logo-animated img{width:84%;height:84%;object-fit:contain;position:relative;z-index:2;animation:heroLogoPulse 6s ease-in-out infinite}
.hero-logo-orbit{position:absolute;border:2px solid currentColor;border-radius:50%;z-index:1;animation:heroLogoOrbit 16s linear infinite}
.hero-logo-orbit.orbit-one{width:92%;height:92%;color:var(--blue-2);border-left-color:transparent;border-bottom-color:transparent}
.hero-logo-orbit.orbit-two{width:72%;height:72%;color:var(--red-3);border-right-color:transparent;border-top-color:transparent;animation-direction:reverse;animation-duration:12s}
.hero-logo-animated::before,.hero-logo-animated::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;z-index:3}
.hero-logo-animated::before{right:4%;top:20%;background:var(--green-1);box-shadow:-310px 225px 0 var(--purple-1)}
.hero-logo-animated::after{right:14%;bottom:12%;background:var(--turquoise-1);box-shadow:-260px -250px 0 var(--red-3)}
@keyframes heroLogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes heroLogoPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@keyframes heroLogoOrbit{to{transform:rotate(360deg)}}

.about-longform{max-width:1080px;margin-left:auto;display:grid;gap:22px}
.about-longform p{font-size:clamp(16px,1.25vw,19px);color:var(--muted);max-width:82ch}
.about-longform .about-lead{font-size:clamp(21px,1.8vw,28px);line-height:1.5;color:var(--ink);font-weight:600}

.services-section .section-intro{grid-template-columns:minmax(150px,.28fr) minmax(0,1fr)}
.services-section .section-intro .eyebrow{grid-column:1}.services-section .section-intro h2{grid-column:2}
.service-panel{transition:background .22s ease}
.service-panel:hover{background:#f8f8f8}
.service-tag-arrow{background:transparent!important}

.why-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.why-card{padding-top:14px;border-top:5px solid var(--why-accent,var(--blue-2))}
.why-card::after{display:none}
.why-card.theme-blue{--why-accent:var(--blue-2)}
.why-card.theme-coral{--why-accent:var(--red-3)}.why-card.theme-butter{--why-accent:var(--purple-1)}.why-card.theme-sage{--why-accent:var(--green-1)}.why-card.theme-aqua{--why-accent:var(--turquoise-1)}
.why-accent-mark{display:block;width:14px;height:14px;border-radius:50%;background:var(--why-accent);margin-bottom:18px}
.why-card h3{min-height:3.25em;font-size:clamp(22px,1.8vw,28px);max-width:none}
.why-card p{max-width:none;font-size:15px}

.faq-section{border-top:1px solid var(--line)}
.faq-section .section-intro>p:last-child{display:block}

.service-detail-head .service-detail-intro{margin-top:20px;color:var(--muted);font-size:17px;max-width:38ch}
.subservice-readmore{display:inline-flex;margin:0 0 24px;padding-bottom:5px;border-bottom:1px solid var(--ink);font-size:12px;font-weight:800}
.service-useful{background:var(--blue-2);color:#fff}
.service-useful.theme-coral{background:var(--red-1)}.service-useful.theme-butter{background:var(--purple-2)}.service-useful.theme-sage{background:var(--green-2)}.service-useful.theme-aqua{background:var(--blue-3)}
.service-copy-block{max-width:1120px;display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1fr);gap:18px 60px;align-items:start}
.service-copy-block .eyebrow{grid-column:1/-1;color:rgba(255,255,255,.72)}
.service-copy-block h2{grid-column:1;color:#fff;font-size:clamp(38px,4vw,60px)}
.service-copy-block>p:last-child{grid-column:2;color:rgba(255,255,255,.88);font-size:18px;max-width:64ch;padding-top:8px}
.service-process{background:#fff}
.service-process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;border-top:1px solid var(--ink)}
.service-process-step{padding:28px 0;border-bottom:1px solid var(--line)}
.service-process-step>span{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--blue-2);margin-bottom:18px}
.service-process-step h3{font-size:clamp(24px,2.2vw,34px);min-height:2.2em}
.service-process-step p{margin-top:15px;color:var(--muted);font-size:15px}

/* Flat service hero accents */
.service-hero{background:#fff;border-bottom:1px solid var(--line)}
.service-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--blue-2)}
.service-page-strategy .service-hero::before{background:var(--red-3)}
.service-page-pr .service-hero::before{background:var(--purple-1)}
.service-page-social .service-hero::before{background:var(--green-1)}
.service-page-digital .service-hero::before{background:var(--blue-2)}
.service-icon-art::before,.service-hero-art::after{display:none}

@media (max-width:1100px){
  .hero-single-grid{grid-template-columns:1fr;gap:18px}.hero-single-visual{min-height:300px;justify-items:start}.hero-logo-animated{width:300px}
  .why-track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .hero-single{padding-top:118px}.hero-single-copy h1{font-size:clamp(38px,10.6vw,54px)}.hero-single-visual{min-height:240px}.hero-logo-animated{width:230px}
  .hero-logo-animated::before{box-shadow:-170px 140px 0 var(--purple-1)}.hero-logo-animated::after{box-shadow:-140px -145px 0 var(--red-3)}
  .about-longform{margin-left:0}.services-section .section-intro{grid-template-columns:1fr}.services-section .section-intro .eyebrow,.services-section .section-intro h2{grid-column:1}
  .why-track,.service-process-grid{grid-template-columns:1fr}.why-card h3,.service-process-step h3{min-height:0}
  .service-copy-block{grid-template-columns:1fr;gap:14px}.service-copy-block .eyebrow,.service-copy-block h2,.service-copy-block>p:last-child{grid-column:1}
}


/* --- v5 header, hero and section alignment refinements --- */
.site-header{align-items:center}
.header-actions{padding-top:0}
.brand{margin-left:0}
.brand.brand-horizontal{display:inline-flex;align-items:center}
.brand.brand-horizontal img,
.brand .brand-logo-header{height:58px;width:auto;max-width:min(44vw,420px);object-fit:contain;transition:height .28s ease,opacity .28s ease,transform .28s ease}
.site-header.is-scrolled .brand.brand-horizontal img,
.site-header.is-scrolled .brand .brand-logo-header{height:42px}

.hero-logo-animated{width:clamp(280px,30vw,460px)}
.hero-logo-animated .hero-logo-orbit{display:none !important}
.hero-logo-animated::before,
.hero-logo-animated::after{display:none !important}
.hero-logo-animated img{width:100%;height:100%;object-fit:contain}

.section-intro{grid-template-columns:1fr;gap:14px;margin-bottom:40px}
.section-intro .eyebrow,
.section-intro h2,
.section-intro > p:last-child{grid-column:1}
.section-intro h2{position:relative;padding-left:0;margin-left:0}
.section-intro h2::after{content:"";display:block;width:72px;height:4px;border-radius:999px;background:var(--section-accent,var(--ink));margin-top:16px}
.section-intro > p:last-child{max-width:70ch}
.about-longform,
.faq-list{margin-left:0}

.about-section{--section-accent:var(--red-3)}
.services-section{--section-accent:var(--purple-1)}
.why-section{--section-accent:var(--green-1)}
.clients-section{--section-accent:var(--blue-2)}
.faq-section{--section-accent:var(--turquoise-1)}
.leadership-section{--section-accent:var(--red-3)}
.contact-section{--section-accent:var(--purple-1)}
.about-section .section-intro .eyebrow,
.services-section .section-intro .eyebrow,
.why-section .section-intro .eyebrow,
.clients-section .section-intro .eyebrow,
.faq-section .section-intro .eyebrow,
.leadership-section .section-intro .eyebrow,
.contact-section .eyebrow{color:var(--section-accent,var(--muted))}

.why-section .section-intro{margin-bottom:48px}
.why-section .section-intro h2{font-size:clamp(40px,4vw,60px);line-height:1.02}
.why-section .section-intro h2::after{margin-top:18px}

@media (max-width: 1200px){
  .brand.brand-horizontal img,
  .brand .brand-logo-header{height:52px;max-width:min(48vw,360px)}
  .site-header.is-scrolled .brand.brand-horizontal img,
  .site-header.is-scrolled .brand .brand-logo-header{height:38px}
}
@media (max-width: 760px){
  .brand.brand-horizontal img,
  .brand .brand-logo-header{height:44px;max-width:56vw}
  .site-header.is-scrolled .brand.brand-horizontal img,
  .site-header.is-scrolled .brand .brand-logo-header{height:34px}
  .section-intro h2::after{width:60px}
}


/* --- v6 readability and section-layout refinements --- */
.services-section .section-intro{grid-template-columns:1fr !important}
.services-section .section-intro .eyebrow,
.services-section .section-intro h2,
.services-section .section-intro > p:last-child{grid-column:1 !important}

.section-intro h2{max-width:none !important}
.leadership-section .section-intro h2,
.clients-section .section-intro h2,
.faq-section .section-intro h2,
.services-section .section-intro h2{max-width:none !important}

.why-track{grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:32px 34px}
.why-card h3{max-width:none}
.why-card p{max-width:42ch}

.faq-list{max-width:none;margin-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 52px;align-items:start;border-top:0}
.faq-list details{border-top:1px solid var(--line)}
.faq-list summary{padding:22px 0 20px}
.faq-list details p{padding:0 32px 24px 0;max-width:none}

@media (max-width: 1180px){
  .why-track{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width: 900px){
  .faq-list{grid-template-columns:1fr;gap:0}
}
@media (max-width: 760px){
  .why-track{grid-template-columns:1fr !important}
}


/* --- v7 header transparency, random hero color and alternating section backgrounds --- */
.brand.brand-horizontal img,
.brand .brand-logo-header{
  background:transparent !important;
  border-radius:0 !important;
  mix-blend-mode:normal;
}

.hero-logo-animated{
  width:clamp(280px,30vw,460px);
  display:grid;
  place-items:center;
}
.hero-logo-animated .hero-logo-mark{
  width:100%;
  height:100%;
  display:block;
  background:var(--hero-logo-color,var(--ink));
  -webkit-mask:url('img/comlab-logo-stacked-black.svg') center/contain no-repeat;
  mask:url('img/comlab-logo-stacked-black.svg') center/contain no-repeat;
  animation:heroLogoPulse 6s ease-in-out infinite;
}
.en .hero-logo-animated .hero-logo-mark,
body .hero-logo-animated .hero-logo-mark{
  -webkit-mask-size:contain;
  mask-size:contain;
}
.hero-logo-animated img{display:none !important}

.about-section{
  --section-accent:var(--red-3);
  background:color-mix(in srgb,var(--red-3) 4%, #fff);
  color:#3a2025;
}
.about-section p{color:color-mix(in srgb,#3a2025 72%, #fff)}

.services-section{
  --section-accent:var(--purple-1);
  background:color-mix(in srgb,var(--purple-1) 5%, #fff);
  color:#251737;
}
.services-section p,
.services-section .service-panel-copy p,
.services-section .section-intro > p:last-child,
.services-section .service-tag{color:color-mix(in srgb,#251737 78%, #fff)}
.services-section .service-panel{border-color:color-mix(in srgb,var(--purple-1) 16%, rgba(16,36,34,.14));background:rgba(255,255,255,.42)}
.services-section .service-panel:hover{background:rgba(255,255,255,.78)}

.why-section{
  --section-accent:var(--green-1);
  background:color-mix(in srgb,var(--green-1) 4%, #fff);
  color:#17352c;
}
.why-section p{color:color-mix(in srgb,#17352c 72%, #fff)}

.clients-section{
  --section-accent:var(--blue-2);
  background:color-mix(in srgb,var(--blue-2) 5%, #fff);
  color:#102d54;
}
.clients-section .section-intro > p:last-child,
.clients-section .refx-body p,
.clients-section .refx-tag,
.clients-section .refx-link{color:color-mix(in srgb,#102d54 76%, #fff)}
.clients-section .refx-tile{background:rgba(255,255,255,.64);border-color:color-mix(in srgb,var(--blue-2) 16%, rgba(16,36,34,.12))}

.faq-section{
  --section-accent:var(--turquoise-1);
  background:color-mix(in srgb,var(--turquoise-1) 4%, #fff);
  color:#133639;
}
.faq-section .section-intro > p:last-child,
.faq-section .faq-list details p{color:color-mix(in srgb,#133639 74%, #fff)}

.leadership-section{
  --section-accent:var(--red-3);
  background:color-mix(in srgb,var(--red-3) 4%, #fff);
  color:#401d22;
}
.leadership-section .person-copy .role,
.leadership-section .person-copy > p:last-of-type{color:color-mix(in srgb,#401d22 70%, #fff)}

.contact-section{
  --section-accent:var(--purple-1);
  background:color-mix(in srgb,var(--purple-1) 88%, #0f1020);
  color:#fff;
}
.contact-section .contact-card p:not(.eyebrow),
.contact-section .eyebrow{color:rgba(255,255,255,.82)}


/* --- v8 hero visibility and why-card icons --- */
.hero-logo-animated{width:clamp(280px,30vw,460px);aspect-ratio:920 / 1450;display:grid;place-items:center}
.hero-logo-animated .hero-logo-random{width:100%;height:100%;object-fit:contain;display:block;animation:heroLogoPulse 3.5s ease-in-out infinite}
.hero-logo-animated .hero-logo-mark{display:none !important}

.why-section .section-intro h2::after{display:none}
.why-card{padding-top:14px;border-top:5px solid var(--why-accent,var(--blue-2))}
.why-card-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;margin-bottom:16px;background:color-mix(in srgb,var(--why-accent) 10%, #fff);border:1px solid color-mix(in srgb,var(--why-accent) 24%, rgba(16,36,34,.08));color:var(--why-accent)}
.why-card-icon svg{width:22px;height:22px}
.why-accent-mark{display:none !important}
.why-card h3{min-height:0}


/* --- v9 services columns, larger why icons, project card padding --- */
@media (min-width: 1101px){
  .service-panels{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:48px;
    row-gap:0;
    align-items:start;
  }
  .service-panel{
    height:100%;
    align-content:start;
  }
}

.why-card-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  margin-bottom:18px;
}
.why-card-icon svg{
  width:30px;
  height:30px;
}

.clients-section .refx-tile{
  overflow:hidden;
}
.clients-section .refx-body{
  padding:0 24px 24px;
}
.clients-section .refx-text .refx-body{
  padding-top:24px;
}
.clients-section .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
  padding:0 24px 24px 0;
}
@media (max-width: 980px){
  .clients-section .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    padding:0 24px 24px;
  }
}
@media (max-width: 760px){
  .clients-section .refx-body,
  .clients-section .refx-text .refx-body,
  .clients-section .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    padding:0 18px 18px;
  }
}


/* --- v10 service-tag placement and dynamic hero background --- */
.hero-single{
  background:var(--hero-bg, var(--blue-2));
  transition:background-color .7s ease;
}
.hero-single::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,0) 46%);
  pointer-events:none;
}
.hero-single-copy,
.hero-single-visual,
.hero-single .scroll-cue{position:relative;z-index:1}
.hero-single .eyebrow,
.hero-single h1,
.hero-single .slide-lead{color:#fff}
.hero-single .eyebrow::before{background:currentColor}
.hero-single .slide-lead{max-width:56ch;color:rgba(255,255,255,.88)}
.hero-single .scroll-cue{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.26);
  color:#fff;
  box-shadow:none;
  backdrop-filter:blur(10px);
}
.hero-single .scroll-cue::before{background:#fff}
.hero-single .scroll-cue i{background:rgba(255,255,255,.58)}
.hero-single .hero-logo-random{filter:drop-shadow(0 18px 28px rgba(0,0,0,.12))}

.service-panel{
  grid-template-columns:clamp(72px,8vw,122px) minmax(0,1fr);
  gap:24px 34px;
}
.service-panel-top{
  grid-column:1;
  grid-row:1 / span 2;
}
.service-panel-copy,
.service-tags{
  grid-column:2;
}
.service-tags{
  padding-top:14px;
}
.service-panel-copy h3{max-width:none}
.service-panel-copy p{max-width:none}

@media (max-width: 760px){
  .hero-single .scroll-cue{
    left:16px;
    right:16px;
    transform:none;
    justify-content:center;
  }
}


/* --- v11 hero simplification, service spacing, blog teaser --- */
.hero-single .eyebrow,
.service-hero .eyebrow{display:none !important}

.hero-single-copy h1{
  font-size:clamp(40px,4.1vw,64px) !important;
  max-width:16ch;
}
.hero-single-copy .slide-lead{
  max-width:52ch;
}

.hero-single .scroll-cue,
.service-hero .scroll-cue,
.service-scroll-cue{
  left:50% !important;
  right:auto !important;
  width:auto !important;
  max-width:none !important;
  transform:translateX(-50%) !important;
}
.page-scrolled .hero-single .scroll-cue,
.page-scrolled .service-hero .scroll-cue,
.page-scrolled .service-scroll-cue{
  transform:translate(-50%,12px) !important;
}

.hero-single-visual,
.service-slider .slide-visual{
  min-height:420px;
  display:grid;
  place-items:center;
}
.hero-logo-animated{
  width:min(100%, 420px) !important;
  max-width:420px;
  aspect-ratio:auto !important;
  min-height:unset !important;
  animation:heroLogoFloat 6s ease-in-out infinite !important;
}
.hero-logo-animated .hero-logo-random{
  display:block !important;
  width:100% !important;
  height:auto !important;
  object-fit:contain;
  opacity:1 !important;
  visibility:visible !important;
  animation:heroLogoPulse 4s ease-in-out infinite !important;
}

.services-section .section-intro h2::after{display:none !important}
.services-section .section-intro > p:last-child{padding-right:0}
.service-panels{border-top:1px solid var(--ink)}
.service-panel{
  padding:30px 24px !important;
  border:1px solid color-mix(in srgb,var(--purple-1) 12%, rgba(16,36,34,.12));
  border-radius:20px;
  margin-top:22px;
}
.service-panel-copy,
.service-tags{padding-right:8px}
.service-tags{padding-top:16px}
.service-tag{white-space:normal}

.blog-teaser-section{
  --section-accent:var(--blue-2);
  background:color-mix(in srgb,var(--blue-2) 4%, #fff);
}
.blog-teaser-grid{
  border-top:1px solid var(--ink);
  margin-top:18px;
}
.blog-teaser-grid .blog-card{
  min-height:280px;
  padding:28px 30px;
  background:rgba(255,255,255,.64);
}
.blog-teaser-grid .blog-card h2{
  font-size:clamp(28px,2.5vw,40px);
  margin:22px 0 16px;
}
.blog-teaser-grid .blog-card p{max-width:none}
.service-blog-teaser{background:color-mix(in srgb,var(--blue-2) 4%, #fff)}

/* mirror the calmer hero typography on service pages too */
.service-slider .slide-copy h1{
  font-size:clamp(40px,4vw,64px);
}
.service-slider .slide-lead{
  font-size:clamp(17px,1.2vw,19px);
}

@media (max-width: 760px){
  .hero-single .scroll-cue,
  .service-hero .scroll-cue,
  .service-scroll-cue{
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
  }
  .page-scrolled .hero-single .scroll-cue,
  .page-scrolled .service-hero .scroll-cue,
  .page-scrolled .service-scroll-cue{
    transform:translate(-50%,12px) !important;
  }
  .service-panel{
    padding:24px 18px !important;
    margin-top:16px;
  }
  .blog-teaser-grid .blog-card{padding:24px 20px}
}


/* --- v12 scroll cue sizing and borderless services --- */
.hero-single .scroll-cue,
.service-hero .scroll-cue,
.service-scroll-cue{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  width:max-content !important;
  min-width:0 !important;
  max-width:calc(100vw - 32px) !important;
  display:inline-flex !important;
  flex:0 0 auto !important;
  justify-content:center !important;
  transform:translateX(-50%) !important;
  white-space:nowrap !important;
}
.page-scrolled .hero-single .scroll-cue,
.page-scrolled .service-hero .scroll-cue,
.page-scrolled .service-scroll-cue{
  transform:translate(-50%,12px) !important;
}

.services-section .service-panel{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  margin-top:0 !important;
  padding:34px 24px !important;
  position:relative;
}
.services-section .service-panel:hover,
.services-section .service-panel:focus-within{
  background:transparent !important;
}
.services-section .service-panel::after{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  bottom:0;
  height:1px;
  background:color-mix(in srgb,var(--accent) 24%, rgba(16,36,34,.10));
}
.services-section .service-panel:nth-last-child(-n+2)::after{
  display:none;
}

@media (max-width: 1100px){
  .services-section .service-panel:nth-last-child(-n+2)::after{display:block}
  .services-section .service-panel:last-child::after{display:none}
}
@media (max-width: 760px){
  .hero-single .scroll-cue,
  .service-hero .scroll-cue,
  .service-scroll-cue{
    left:50% !important;
    right:auto !important;
    width:max-content !important;
    max-width:calc(100vw - 32px) !important;
    transform:translateX(-50%) !important;
  }
  .services-section .service-panel{
    padding:28px 18px !important;
  }
  .services-section .service-panel::after{
    left:18px;
    right:18px;
  }
}


/* --- v13 hero white looping logo with background-only color cycle --- */
.hero-logo-animated{
  animation:heroLogoFloat 6s ease-in-out infinite !important;
}
.hero-logo-animated .hero-logo-random{
  display:block !important;
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  opacity:1 !important;
  visibility:visible !important;
  animation:heroLogoPulse 4s ease-in-out infinite !important;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.12)) !important;
}


/* --- v14 animated draw SVG in hero --- */
.hero-logo-animated .hero-logo-random{
  width:min(100%, 420px) !important;
  height:auto !important;
}


/* --- v15 service/subservice full hero backgrounds and blog sections --- */
.service-page-strategy{--service-hero-bg:var(--red-3)}
.service-page-pr{--service-hero-bg:var(--purple-1)}
.service-page-social{--service-hero-bg:var(--green-1)}
.service-page-digital{--service-hero-bg:var(--blue-2)}

.service-hero,
.subservice-page .subservice-hero{
  position:relative;
  overflow:hidden;
  background:var(--service-hero-bg, var(--blue-2)) !important;
  border-bottom:0 !important;
}
.service-hero::before,
.subservice-page .subservice-hero::before{
  content:"";
  position:absolute;
  inset:0;
  width:auto !important;
  background:linear-gradient(135deg, rgba(255,255,255,.09), rgba(255,255,255,0) 46%);
  pointer-events:none;
}
.service-hero > *,
.subservice-page .subservice-hero > *{position:relative;z-index:1}
.service-hero .slide-copy h1,
.service-hero .slide-lead,
.service-hero .hero-cta,
.service-hero .content-slider-count,
.service-hero .content-slider-dot.is-active,
.subservice-page .subservice-hero h1,
.subservice-page .subservice-hero .subservice-lead,
.subservice-page .subservice-hero .subservice-back-link,
.subservice-page .subservice-hero .content-breadcrumb,
.subservice-page .subservice-hero .content-breadcrumb a,
.subservice-page .subservice-hero .content-breadcrumb span{
  color:#fff !important;
}
.service-hero .hero-cta{border-bottom-color:rgba(255,255,255,.45)}
.service-hero .slide-lead,
.subservice-page .subservice-hero .subservice-lead,
.service-hero .content-slider-count,
.subservice-page .subservice-hero .content-breadcrumb,
.subservice-page .subservice-hero .content-breadcrumb a,
.subservice-page .subservice-hero .content-breadcrumb span{color:rgba(255,255,255,.86) !important}
.service-hero .content-slider-dot{background:rgba(255,255,255,.34)}
.service-hero .content-slider-dot.is-active{background:#fff !important}
.service-hero .service-hero-art img,
.subservice-page .subservice-hero-art img{filter:drop-shadow(0 18px 34px rgba(0,0,0,.16))}
.subservice-page .subservice-hero .subservice-back-link{font-weight:800}
.subservice-page .subservice-hero .subservice-back-link:hover{opacity:.88}
.subservice-page .subservice-hero .eyebrow{color:rgba(255,255,255,.76)}
.subservice-page .subservice-hero .eyebrow::before{background:currentColor}

.subservice-blog-teaser{background:color-mix(in srgb,var(--service-hero-bg, var(--blue-2)) 4%, #fff)}
.subservice-blog-teaser .blog-teaser-grid .blog-card{min-height:250px}

.service-references .section-intro,
.subservice-blog-teaser .section-intro,
.service-blog-teaser .section-intro{max-width:none}

@media (max-width: 760px){
  .service-hero,
  .subservice-page .subservice-hero{padding-top:120px}
}

/* --- v19 unified subpage visual system: homepage-derived --- */

/* Shared content-page header: transparent over the saturated hero, compact after scroll. */
.compact-content-header,
.service-page .service-header{
  background:transparent !important;
  border-bottom-color:transparent !important;
  backdrop-filter:none !important;
}
.compact-content-header:not(.is-scrolled) .brand-logo-header,
.service-page .service-header:not(.is-scrolled) .brand-logo-header{
  filter:brightness(0) invert(1);
}
.compact-content-header:not(.is-scrolled) .back-home,
.compact-content-header:not(.is-scrolled) .lang-switch a,
.service-page .service-header:not(.is-scrolled) .back-home{
  color:#fff;
  border-color:rgba(255,255,255,.52);
}
.compact-content-header:not(.is-scrolled) .lang-switch{
  border-color:rgba(255,255,255,.34);
  background:rgba(255,255,255,.10);
}
.compact-content-header:not(.is-scrolled) .lang-switch a.active{
  background:#fff;
  color:var(--ink);
}
.compact-content-header.is-scrolled,
.service-page .service-header.is-scrolled{
  background:rgba(255,255,255,.94) !important;
  border-bottom-color:var(--line) !important;
  backdrop-filter:blur(14px) !important;
}
.compact-content-header.is-scrolled .brand-logo-header,
.service-page .service-header.is-scrolled .brand-logo-header{
  filter:none;
}

/* Hero language: full saturated field, white copy, no gradient decoration. */
.member-page{--content-hero-bg:var(--red-3)}
.team-page-main{--content-hero-bg:var(--red-3)}
.blog-page{--content-hero-bg:var(--blue-2)}
.collection-page{--content-hero-bg:var(--purple-1)}

.member-hero,
.team-page-hero,
.blog-list-hero,
.article-hero,
.collection-page-hero{
  position:relative;
  overflow:hidden;
  background:var(--content-hero-bg) !important;
  color:#fff;
  border:0 !important;
}
.member-hero::before,
.team-page-hero::before,
.blog-list-hero::before,
.article-hero::before,
.collection-page-hero::before,
.service-hero::before,
.subservice-page .subservice-hero::before{
  display:none !important;
}
.member-hero .content-breadcrumb,
.member-hero .content-breadcrumb a,
.member-hero .content-breadcrumb span,
.team-page-hero .content-breadcrumb,
.team-page-hero .content-breadcrumb a,
.team-page-hero .content-breadcrumb span,
.blog-list-hero .content-breadcrumb,
.blog-list-hero .content-breadcrumb a,
.blog-list-hero .content-breadcrumb span,
.article-hero .content-breadcrumb,
.article-hero .content-breadcrumb a,
.article-hero .content-breadcrumb span,
.collection-page-hero .content-breadcrumb,
.collection-page-hero .content-breadcrumb a,
.collection-page-hero .content-breadcrumb span{
  color:rgba(255,255,255,.78) !important;
}
.member-hero .eyebrow,
.team-page-hero .eyebrow,
.blog-list-hero .eyebrow,
.article-hero .eyebrow,
.collection-page-hero .eyebrow{
  color:rgba(255,255,255,.80) !important;
}
.member-hero .eyebrow::before,
.team-page-hero .eyebrow::before,
.blog-list-hero .eyebrow::before,
.article-hero .eyebrow::before,
.collection-page-hero .eyebrow::before{
  background:currentColor;
}
.member-hero h1,
.team-page-hero h1,
.blog-list-hero h1,
.article-hero h1,
.collection-page-hero h1{
  color:#fff !important;
}
.member-role,
.member-lead,
.team-page-intro>p:last-child,
.blog-list-intro>p:last-child,
.article-lead,
.collection-page-intro>p:last-child{
  color:rgba(255,255,255,.86) !important;
}

/* Keep subpage hero scale closer to the approved home hero. */
.member-hero,
.team-page-hero,
.blog-list-hero,
.collection-page-hero{
  min-height:clamp(520px,70svh,760px);
  padding-top:calc(var(--header-h) + 42px);
  padding-bottom:clamp(64px,8vw,106px);
  display:grid;
  align-items:center;
}
.member-hero-copy h1,
.team-page-intro h1,
.blog-list-intro h1,
.collection-page-intro h1{
  max-width:15ch;
  font-size:clamp(46px,5.2vw,76px) !important;
  line-height:.96;
  letter-spacing:-.05em;
}
.article-hero{
  padding-top:calc(var(--header-h) + 52px);
  padding-bottom:clamp(70px,8vw,110px);
}
.article-hero h1{
  max-width:15ch;
  font-size:clamp(44px,5vw,74px) !important;
  line-height:.98;
  letter-spacing:-.05em;
}
.article-meta{
  border-top-color:rgba(255,255,255,.30) !important;
  color:rgba(255,255,255,.72) !important;
}

/* Person profile pages: same open, editorial rhythm as home team section. */
.member-hero-grid{
  align-items:center;
}
.member-hero-image{
  min-height:460px;
}
.member-hero-image img{
  filter:drop-shadow(0 22px 38px rgba(0,0,0,.15));
}
.member-page main > .section:not(.member-hero){
  background:color-mix(in srgb,var(--red-3) 4%,#fff);
}
.member-content{
  max-width:var(--max);
  margin-inline:auto;
}
.member-aside{
  gap:12px;
}
.member-aside a{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:38px;
  padding:8px 13px;
  border:1px solid color-mix(in srgb,var(--red-3) 22%,var(--line));
  border-radius:999px;
  background:rgba(255,255,255,.55);
  color:#401d22;
  transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.member-aside a:hover{
  background:#fff;
  border-color:color-mix(in srgb,var(--red-3) 40%,var(--line));
  transform:translateY(-2px);
}
.member-main{gap:34px}
.member-block{
  padding:30px 0 8px;
  border-top:1px solid color-mix(in srgb,var(--red-3) 18%,var(--line));
}
.member-block:first-child{border-top:0;padding-top:0}
.member-block h2{max-width:18ch}
.member-focus span{
  padding:9px 13px;
  border-color:color-mix(in srgb,var(--red-3) 24%,var(--line));
  background:rgba(255,255,255,.62);
}

/* Team listing inherits the home leadership card treatment. */
.team-page-main main > .section:not(.team-page-hero){
  background:color-mix(in srgb,var(--red-3) 4%,#fff);
}
.team-page-grid{
  gap:clamp(30px,3.5vw,52px);
}
.team-page-grid .person-image{
  background:rgba(255,255,255,.34);
  border-radius:0;
}
.team-page-grid .person-copy{padding-top:18px}
.team-page-grid .person-copy h2{
  font-size:clamp(29px,2.6vw,40px);
  letter-spacing:-.04em;
}
.team-page-grid .person-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  margin-top:15px;
  font-size:12px;
  font-weight:800;
}
.team-page-grid .person-links a{border-bottom:1px solid currentColor}
.team-page-note{
  border-top-color:color-mix(in srgb,var(--red-3) 22%,var(--line));
}

/* Service pages: keep the approved category colors and remove older white/boxed feel. */
.service-hero,
.subservice-page .subservice-hero{
  background:var(--service-hero-bg,var(--blue-2)) !important;
}
.service-detail{
  background:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 4%,#fff);
}
.service-detail-head h2{
  max-width:none;
  font-size:clamp(34px,3.2vw,48px);
}
.service-list{
  border-top-color:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 24%,var(--line));
}
.service-item{
  border-bottom-color:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 16%,var(--line));
}
.service-item summary{
  padding:25px 0;
}
.service-item-icon{
  border-color:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 26%,var(--line));
  color:var(--service-hero-bg,var(--blue-2));
}
.service-item:hover summary{color:var(--service-hero-bg,var(--blue-2))}
.service-process-grid{
  border-top-color:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 30%,var(--line));
}
.service-process-step{
  border-bottom-color:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 16%,var(--line));
}
.service-process-step>span{color:var(--service-hero-bg,var(--blue-2))}
.subservice-method{
  background:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 5%,#fff) !important;
}
.subservice-explain,
.subservice-rich-section{
  background:#fff;
}
.service-references{
  background:color-mix(in srgb,var(--blue-2) 5%,#fff);
}
.service-blog-teaser{
  background:color-mix(in srgb,var(--service-hero-bg,var(--blue-2)) 4%,#fff) !important;
}

/* Reference cards on service and collection pages use the home reference spacing. */
.service-references .refx-tile,
.reference-collection .refx-tile{
  background:rgba(255,255,255,.64);
  border-color:color-mix(in srgb,var(--blue-2) 16%,rgba(16,36,34,.12));
  overflow:hidden;
}
.service-references .refx-body,
.reference-collection .refx-body{
  padding:0 24px 24px;
}
.service-references .refx-text .refx-body,
.reference-collection .refx-text .refx-body{
  padding-top:24px;
}

/* Blog listing: same two-column teaser system as on the home page. */
.blog-grid-section{
  background:color-mix(in srgb,var(--blue-2) 4%,#fff);
  padding-top:var(--section-y);
}
.blog-grid{
  gap:clamp(18px,2.2vw,28px);
  border-top:0;
}
.blog-grid-section .blog-card{
  min-height:320px;
  padding:30px;
  border:1px solid color-mix(in srgb,var(--blue-2) 14%,var(--line));
  background:rgba(255,255,255,.70);
}
.blog-grid-section .blog-card:nth-child(odd){border-right:1px solid color-mix(in srgb,var(--blue-2) 14%,var(--line))}
.blog-grid-section a.blog-card:hover{
  background:#fff;
  transform:translateY(-4px);
}
.blog-grid-section .blog-card-media{
  margin:-8px -8px 26px;
  border-radius:0;
}
.blog-grid-section .blog-category{color:var(--blue-2)}

/* Article: editorial content + contact treatment matching the home palette. */
.blog-article-page main{
  background:#fff;
}
.article-body{
  width:min(900px,calc(100% - 2*var(--pad)));
  padding-top:clamp(52px,6vw,80px);
}
.article-section{
  padding:40px 0;
  border-bottom-color:color-mix(in srgb,var(--blue-2) 12%,var(--line));
}
.article-section h2{
  position:relative;
  max-width:18ch;
}
.article-section h2::after{
  content:"";
  display:block;
  width:72px;
  height:4px;
  margin-top:16px;
  background:var(--blue-2);
  border-radius:999px;
}
.article-related{
  margin-top:54px;
  padding:30px;
  background:color-mix(in srgb,var(--blue-2) 6%,#fff);
  border:0;
}
.article-form-section{
  margin-top:70px;
  padding:clamp(28px,4vw,46px);
  border:0;
  border-radius:0;
  background:color-mix(in srgb,var(--purple-1) 88%,#0f1020);
  color:#fff;
}
.article-form-copy p:last-child,
.article-form-copy .eyebrow,
.article-form-section .form-grid label>span,
.article-form-section .check-row{
  color:rgba(255,255,255,.76) !important;
}
.article-form-copy h2{color:#fff}
.article-form-section .form-grid input,
.article-form-section .form-grid select,
.article-form-section .form-grid textarea{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.96);
}
.article-form-section .form-submit{
  background:#fff;
  color:var(--purple-2);
}

/* Listing pages: same saturated opening + light content field as home sections. */
.collection-page main > .portfolio-collection{
  background:color-mix(in srgb,var(--purple-1) 4%,#fff);
}
.portfolio-filter{
  gap:10px;
  margin-bottom:34px;
}
.portfolio-filter button{
  min-height:38px;
  padding:8px 14px;
  border-color:color-mix(in srgb,var(--purple-1) 22%,var(--line));
  background:rgba(255,255,255,.66);
}
.portfolio-filter button:hover{
  border-color:color-mix(in srgb,var(--purple-1) 44%,var(--line));
}
.portfolio-filter button.is-active{
  background:var(--purple-1);
  border-color:var(--purple-1);
}
.reference-collection .refx-shell{margin-top:0}

@media (max-width: 980px){
  .member-hero,
  .team-page-hero,
  .blog-list-hero,
  .collection-page-hero{
    min-height:auto;
  }
  .member-hero-image{min-height:340px}
}

@media (max-width: 760px){
  .compact-content-header:not(.is-scrolled) .brand-logo-header,
  .service-page .service-header:not(.is-scrolled) .brand-logo-header{
    filter:brightness(0) invert(1);
  }
  .member-hero,
  .team-page-hero,
  .blog-list-hero,
  .collection-page-hero{
    padding-top:112px;
    padding-bottom:64px;
  }
  .member-hero-copy h1,
  .team-page-intro h1,
  .blog-list-intro h1,
  .collection-page-intro h1,
  .article-hero h1{
    font-size:clamp(38px,10.5vw,52px) !important;
  }
  .member-hero-image{
    min-height:260px;
    order:initial;
  }
  .member-content{gap:34px}
  .member-aside{position:static;display:flex;flex-wrap:wrap}
  .blog-grid-section .blog-card{padding:22px;min-height:0}
  .blog-grid-section .blog-card:nth-child(odd){border-right:1px solid color-mix(in srgb,var(--blue-2) 14%,var(--line))}
  .service-references .refx-body,
  .reference-collection .refx-body,
  .service-references .refx-text .refx-body,
  .reference-collection .refx-text .refx-body{
    padding:0 18px 18px;
  }
  .service-references .refx-text .refx-body,
  .reference-collection .refx-text .refx-body{padding-top:18px}
}

/* --- v20 definitive mobile reference stacking fix --- */
@media (max-width: 760px){
  .refx-layout,
  .refx-layout-main,
  .refx-layout-right,
  .refx-layout-split{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    min-width:0 !important;
    gap:28px !important;
  }

  .refx-layout-main > *,
  .refx-layout-right > *,
  .refx-layout-split > *{
    grid-column:1 !important;
    min-width:0 !important;
    width:100% !important;
  }

  .refx-layout-right > .refx-tile:not(.refx-text){
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:none !important;
    gap:16px !important;
  }

  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media,
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:auto !important;
    width:100% !important;
  }

  .refx-tile{
    min-width:0 !important;
    width:100% !important;
  }

  .refx-media,
  .refx-media img{
    width:100% !important;
    min-width:0 !important;
  }

  .refx-media img{
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
  }

  .refx-tile h3,
  .refx-text h3,
  .refx-layout-split .refx-text h3{
    font-size:clamp(27px,8.2vw,38px) !important;
    overflow-wrap:anywhere;
  }

  .refx-tags{
    width:100%;
    gap:7px;
  }

  .refx-tag{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
  }
}


/* --- v21 blog featured image, HU names, mobile title sizing --- */
.article-hero .article-featured{
  width:100%;
  margin:clamp(32px,4vw,52px) 0 0;
  border-radius:22px;
  overflow:hidden;
  background:rgba(255,255,255,.10);
}
.article-hero .article-featured img{
  width:100%;
  aspect-ratio:1.9 / 1;
  object-fit:cover;
  display:block;
}

@media (max-width: 760px){
  .service-slider .slide-copy h1,
  .subservice-hero-copy h1,
  .member-hero-copy h1,
  .team-page-intro h1,
  .blog-list-intro h1,
  .article-hero h1,
  .collection-page-intro h1{
    font-size:clamp(28px,8.4vw,40px) !important;
    line-height:1.02 !important;
    letter-spacing:-.04em !important;
    max-width:none !important;
    overflow-wrap:normal;
    word-break:normal;
  }
  .subservice-hero-copy h1{
    margin-top:12px;
  }
  .article-hero .article-featured{
    margin-top:28px;
    border-radius:14px;
  }
}


/* v2.0.3 mobile reference stability fix */
@media(max-width:760px){
  .refx-shell{margin-top:32px}
  .refx-layout,
  .refx-layout-main,
  .refx-layout-right,
  .refx-layout-split,
  .refx-layout-extra{
    display:grid;
    grid-template-columns:1fr !important;
    gap:28px;
  }
  .refx-layout-main{align-items:start}
  .refx-layout-main > .refx-tile,
  .refx-layout-right > .refx-tile,
  .refx-layout-split > .refx-tile,
  .refx-layout-extra > .refx-tile{
    width:100%;
    min-width:0;
  }
  .refx-layout-right > .refx-tile:not(.refx-text){
    display:grid;
    grid-template-columns:1fr !important;
    gap:16px;
  }
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-media,
  .refx-layout-right > .refx-tile:not(.refx-text) .refx-body{
    grid-column:1 !important;
  }
  .refx-tile{
    gap:14px;
    padding-bottom:20px;
  }
  .refx-body{gap:14px}
  .refx-tile h3,
  .refx-text h3,
  .refx-layout-split .refx-text h3{
    font-size:clamp(24px,7.2vw,34px);
    line-height:1.06;
    letter-spacing:-0.04em;
  }
  .refx-tile p{
    font-size:15px;
    line-height:1.58;
  }
  .refx-tags{gap:6px}
  .refx-tag{font-size:9px;padding:7px 9px}
  .refx-media img{max-height:none}
}


/* v2.0.4 404 page + root redirect recovery */
.error404 .site-header{
  background:transparent !important;
  border-bottom-color:transparent !important;
  backdrop-filter:none !important;
}
.error404 .site-header:not(.is-scrolled) .brand-logo-header{filter:brightness(0) invert(1)}
.error404 .site-header:not(.is-scrolled) .back-home{color:#fff;border-color:rgba(255,255,255,.45)}
.error-404-page{min-height:100vh;background:#fff}
.error-404-hero{background:var(--purple-1);color:#fff;padding:clamp(150px,17vw,230px) 0 clamp(86px,10vw,140px)}
.error-404-inner{width:min(var(--content-width,1200px),calc(100% - 64px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:clamp(48px,8vw,120px);align-items:end}
.error-404-copy{max-width:820px}
.error-404-copy .eyebrow{color:#fff;opacity:.78}
.error-404-copy h1{margin:12px 0 24px;max-width:850px;color:#fff;font-size:clamp(54px,7.2vw,112px);line-height:.9;letter-spacing:-.065em}
.error-404-lead{max-width:650px;margin:0;color:rgba(255,255,255,.88);font-size:clamp(17px,1.5vw,22px);line-height:1.55}
.error-404-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.error-404-button{display:inline-flex;align-items:center;gap:10px;padding:13px 17px;border:1px solid rgba(255,255,255,.55);border-radius:999px;color:#fff;font-weight:800;font-size:12px;text-decoration:none}
.error-404-button-primary{background:#fff;color:var(--purple-1);border-color:#fff}
.error-404-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.error-404-mark{display:flex;justify-content:flex-end;align-items:flex-end;font-size:clamp(120px,17vw,260px);font-weight:500;line-height:.72;letter-spacing:-.12em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55);user-select:none}
.error-404-links{background:#f4f8ff}
.error-404-links-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(16,36,34,.14)}
.error-404-links-grid a{min-width:0;display:grid;grid-template-columns:1fr auto;gap:13px 24px;padding:34px 28px 34px 0;margin-right:28px;border-bottom:1px solid rgba(16,36,34,.14);color:var(--ink);text-decoration:none}
.error-404-links-grid a span{grid-column:1 / -1;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.error-404-links-grid a strong{font-size:clamp(20px,2vw,30px);line-height:1.05;letter-spacing:-.035em}
.error-404-links-grid a svg{width:18px;height:18px;align-self:end;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){
  .error-404-hero{padding:118px 0 72px}
  .error-404-inner{width:calc(100% - 36px);grid-template-columns:1fr;gap:38px}
  .error-404-copy h1{font-size:clamp(44px,13vw,64px);line-height:.94}
  .error-404-mark{justify-content:flex-start;font-size:clamp(100px,35vw,160px)}
  .error-404-links-grid{grid-template-columns:1fr}
  .error-404-links-grid a{margin-right:0;padding:28px 0}
}


/* v2.0.5 reference listing + reference detail rebuild */
.reference-list-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(28px,3vw,44px);
  align-items:stretch;
}
.reference-list-grid .refx-tile{
  min-width:0;
  width:100%;
  min-height:100%;
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  padding:0 !important;
  border:1px solid color-mix(in srgb,var(--purple-1) 14%,var(--line));
  background:rgba(255,255,255,.76);
  overflow:hidden;
}
.reference-list-grid .refx-media{
  width:100%;
  aspect-ratio:16/10;
  margin:0;
  background:rgba(255,255,255,.74);
}
.reference-list-grid .refx-media img{
  width:100%;
  height:100% !important;
  object-fit:contain !important;
  object-position:center;
}
.reference-list-grid .refx-body{
  width:100%;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:24px !important;
}
.reference-list-grid .refx-brand{min-height:32px}
.reference-list-grid .refx-brand img{max-width:145px;max-height:30px}
.reference-list-grid .refx-tile h3,
.reference-list-grid .refx-text h3{
  margin:0;
  font-size:clamp(25px,2.15vw,34px);
  line-height:1.05;
  letter-spacing:-.04em;
}
.reference-list-grid .refx-summary{
  font-size:15px;
  line-height:1.6;
}
.reference-list-grid .refx-footer{margin-top:auto;padding-top:4px}
.reference-list-grid [data-reference-unit].is-filtered-out{display:none !important}

.reference-detail-page-body{--content-hero-bg:var(--purple-1)}
.reference-detail-hero{
  min-height:auto;
  padding-top:calc(var(--header-h) + 54px);
  padding-bottom:clamp(64px,7vw,100px);
}
.reference-detail-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);
  gap:clamp(42px,6vw,88px);
  align-items:center;
  margin-top:clamp(42px,5vw,68px);
}
.reference-detail-hero-copy{min-width:0}
.reference-detail-client{
  display:flex;
  align-items:center;
  gap:14px;
  margin:18px 0 24px;
  color:rgba(255,255,255,.88);
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.reference-detail-client img{
  width:auto;
  max-width:150px;
  max-height:40px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.reference-detail-hero h1{
  max-width:12ch;
  margin:0;
  color:#fff;
  font-size:clamp(48px,5.6vw,82px) !important;
  line-height:.95;
  letter-spacing:-.055em;
}
.reference-detail-lead{
  max-width:680px;
  margin:24px 0 0;
  color:rgba(255,255,255,.86) !important;
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.55;
}
.reference-detail-hero-media{
  margin:0;
  min-width:0;
  background:rgba(255,255,255,.94);
  padding:clamp(18px,2.4vw,30px);
}
.reference-detail-hero-media img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
}
.reference-story-section{
  background:color-mix(in srgb,var(--purple-1) 4%,#fff);
}
.reference-story-grid{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);
  gap:clamp(48px,7vw,110px);
  align-items:start;
}
.reference-story-main{min-width:0}
.reference-story-content{
  margin-top:24px;
  color:#263b38;
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.72;
}
.reference-story-content > *{max-width:780px}
.reference-story-content p{margin:0 0 1.25em}
.reference-story-content h2,
.reference-story-content h3{
  margin:1.65em 0 .6em;
  color:var(--ink);
  letter-spacing:-.035em;
}
.reference-story-fallback{
  max-width:780px;
  margin:24px 0 0;
  font-size:clamp(20px,1.7vw,27px);
  line-height:1.5;
}
.reference-story-aside{
  position:sticky;
  top:calc(var(--header-h) + 28px);
  display:grid;
  gap:0;
  border-top:1px solid color-mix(in srgb,var(--purple-1) 26%,var(--line));
}
.reference-fact{
  display:grid;
  gap:10px;
  padding:22px 0;
  border-bottom:1px solid color-mix(in srgb,var(--purple-1) 16%,var(--line));
}
.reference-fact > span{
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.reference-fact strong{
  font-size:clamp(20px,1.8vw,28px);
  line-height:1.05;
  letter-spacing:-.035em;
}
.reference-detail-service-list{display:grid;gap:4px}
.reference-detail-service-list a{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
  color:var(--ink);
  font-size:13px;
  font-weight:800;
  border-bottom:1px solid rgba(16,36,34,.08);
}
.reference-detail-service-list a:last-child{border-bottom:0}
.reference-detail-service-list svg,
.reference-detail-external svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.reference-detail-external{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:22px;
  padding-bottom:7px;
  border-bottom:1px solid currentColor;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  width:max-content;
}
.reference-people{background:#fff}
.reference-contact{background:var(--purple-1) !important}
.reference-contact .contact-card{max-width:980px;margin:0 auto}

@media(max-width:1020px){
  .reference-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reference-detail-hero-grid,
  .reference-story-grid{grid-template-columns:1fr}
  .reference-detail-hero-media{max-width:720px}
  .reference-story-aside{position:static}
}
@media(max-width:680px){
  .reference-list-grid{grid-template-columns:1fr;gap:24px}
  .reference-list-grid .refx-body{padding:20px !important}
  .reference-list-grid .refx-tile h3,
  .reference-list-grid .refx-text h3{font-size:clamp(25px,7.2vw,34px)}
  .reference-detail-hero{padding-top:112px;padding-bottom:58px}
  .reference-detail-hero-grid{margin-top:30px;gap:28px}
  .reference-detail-client{margin:14px 0 18px}
  .reference-detail-client img{max-width:120px;max-height:34px}
  .reference-detail-hero h1{font-size:clamp(34px,10vw,48px) !important;max-width:none}
  .reference-detail-lead{font-size:16px;line-height:1.55}
  .reference-detail-hero-media{padding:14px}
  .reference-story-grid{gap:38px}
  .reference-story-content{font-size:16px;line-height:1.65}
}


/* v2.0.6 homepage references: stable 3 > 2 > 1 card grid */
.clients-section .reference-list-grid{
  margin-top:clamp(38px,4vw,58px);
}
.clients-section .reference-list-grid .refx-tile{
  border-color:rgba(16,36,34,.10);
  background:rgba(255,255,255,.56);
}
.clients-section .reference-list-grid .refx-media{
  background:rgba(255,255,255,.72);
}
.clients-section .reference-list-grid .refx-body{
  padding:clamp(20px,2vw,28px) !important;
}
.clients-section .reference-list-grid .refx-tile h3,
.clients-section .reference-list-grid .refx-text h3{
  font-size:clamp(24px,2vw,32px);
}
.clients-section .reference-list-grid .refx-summary{
  font-size:14px;
  line-height:1.58;
}
.clients-section .refx-overview-wrap{
  margin-top:clamp(34px,4vw,52px);
}
@media(max-width:1020px){
  .clients-section .reference-list-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .clients-section .reference-list-grid{
    grid-template-columns:1fr;
    gap:22px;
    margin-top:30px;
  }
  .clients-section .reference-list-grid .refx-body{
    padding:20px !important;
  }
  .clients-section .reference-list-grid .refx-tile h3,
  .clients-section .reference-list-grid .refx-text h3{
    font-size:clamp(24px,7vw,32px);
  }
}

/* v2.0.7 contact page + form system */
.comlab-wp .contact-page-main{background:#fff}
.comlab-wp .contact-page-hero{
  position:relative;
  overflow:hidden;
  padding-top:clamp(118px,9vw,148px);
  padding-bottom:clamp(72px,8vw,118px);
  background:var(--purple-1);
  color:#fff;
}
.comlab-wp .contact-page-hero .content-breadcrumb,
.comlab-wp .contact-page-hero .content-breadcrumb a{color:rgba(255,255,255,.76)}
.comlab-wp .contact-page-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);
  gap:clamp(44px,7vw,100px);
  align-items:center;
}
.comlab-wp .contact-page-hero-copy{max-width:850px}
.comlab-wp .contact-page-hero-copy .eyebrow{color:rgba(255,255,255,.7)}
.comlab-wp .contact-page-hero-copy h1{
  max-width:12ch;
  margin:14px 0 22px;
  color:#fff;
  font-size:clamp(52px,7.2vw,104px);
  line-height:.9;
  letter-spacing:-.065em;
}
.comlab-wp .contact-page-hero-copy>p:last-child{
  max-width:58ch;
  color:rgba(255,255,255,.88);
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.6;
}
.comlab-wp .contact-page-hero-art{position:relative;min-height:330px;display:grid;place-items:center}
.comlab-wp .contact-orbit{position:absolute;border:1px solid rgba(255,255,255,.38);border-radius:50%}
.comlab-wp .contact-orbit-1{width:150px;height:150px}
.comlab-wp .contact-orbit-2{width:230px;height:230px}
.comlab-wp .contact-orbit-3{width:315px;height:315px}
.comlab-wp .contact-orbit-core{width:76px;height:76px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--purple-1);font-size:28px;font-weight:800}

.comlab-wp .contact-page-content{
  padding-top:clamp(76px,8vw,124px);
  padding-bottom:clamp(88px,9vw,138px);
  background:#fbf8fc;
}
.comlab-wp .contact-page-grid{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);
  gap:clamp(48px,7vw,112px);
  align-items:start;
}
.comlab-wp .contact-page-details{display:grid;gap:24px;position:sticky;top:112px}
.comlab-wp .contact-page-details h2{max-width:12ch;font-size:clamp(34px,4vw,58px);line-height:.98;letter-spacing:-.05em}
.comlab-wp .contact-detail-list{display:grid;border-top:1px solid rgba(16,36,34,.14);margin-top:12px}
.comlab-wp .contact-detail-item{
  display:grid;
  gap:7px;
  padding:20px 0;
  border-bottom:1px solid rgba(16,36,34,.14);
  color:var(--ink);
  text-decoration:none;
}
.comlab-wp .contact-detail-item>span{font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.comlab-wp .contact-detail-item>strong{font-size:clamp(17px,1.4vw,22px);line-height:1.35}
.comlab-wp a.contact-detail-item:hover strong{color:var(--purple-1)}
.comlab-wp .contact-social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.comlab-wp .contact-social-links a{display:inline-flex;padding:9px 12px;border:1px solid rgba(16,36,34,.18);border-radius:999px;font-size:11px;font-weight:800}

.comlab-wp .contact-page-form-card{
  padding:clamp(28px,4vw,54px);
  background:#fff;
  border:1px solid rgba(16,36,34,.1);
  box-shadow:0 28px 70px rgba(65,25,88,.08);
}
.comlab-wp .contact-form-head{max-width:680px;margin-bottom:30px}
.comlab-wp .contact-form-head h2{margin:10px 0 12px;font-size:clamp(38px,4.5vw,64px);line-height:.98;letter-spacing:-.05em}
.comlab-wp .contact-form-head>p:last-child{max-width:54ch;color:var(--muted);line-height:1.65}
.comlab-wp .contact-page-form .comlab-form-embed{margin:0;max-width:none}

/* WPForms: neutralise plugin defaults inside ComLab form cards. */
.comlab-wp .comlab-form-embed .wpforms-container,
.comlab-wp .comlab-form-embed div.wpforms-container-full,
.comlab-wp .comlab-form-embed .wpforms-form{margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.comlab-wp .contact-page-form .wpforms-field-container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.comlab-wp .contact-page-form .wpforms-field{padding:0!important;margin:0!important;min-width:0}
.comlab-wp .contact-page-form .wpforms-field-textarea,
.comlab-wp .contact-page-form .wpforms-field-checkbox,
.comlab-wp .contact-page-form .wpforms-field-gdpr-checkbox,
.comlab-wp .contact-page-form .wpforms-field-html{grid-column:1/-1}
.comlab-wp .comlab-form-embed .wpforms-field-label,
.comlab-wp .comlab-form-embed .wpforms-field-sublabel,
.comlab-wp .comlab-form-embed .wpforms-field-description{
  display:block!important;
  margin:0 0 8px!important;
  color:var(--ink)!important;
  font-family:inherit!important;
}
.comlab-wp .comlab-form-embed .wpforms-field-label{font-size:11px!important;font-weight:800!important;letter-spacing:.08em!important;text-transform:uppercase}
.comlab-wp .comlab-form-embed .wpforms-field-sublabel,
.comlab-wp .comlab-form-embed .wpforms-field-description{font-size:11px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none;color:var(--muted)!important}
.comlab-wp .comlab-form-embed input:not([type=checkbox]):not([type=radio]):not([type=submit]),
.comlab-wp .comlab-form-embed select,
.comlab-wp .comlab-form-embed textarea{
  width:100%!important;
  max-width:none!important;
  min-height:54px!important;
  margin:0!important;
  padding:14px 15px!important;
  border:1px solid rgba(16,36,34,.2)!important;
  border-radius:0!important;
  background:#fff!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  font:inherit!important;
  line-height:1.35!important;
  transition:border-color .2s ease,box-shadow .2s ease!important;
}
.comlab-wp .comlab-form-embed textarea{min-height:156px!important;resize:vertical}
.comlab-wp .comlab-form-embed input:focus,
.comlab-wp .comlab-form-embed select:focus,
.comlab-wp .comlab-form-embed textarea:focus{outline:none!important;border-color:var(--purple-1)!important;box-shadow:0 0 0 3px rgba(148,0,211,.08)!important}
.comlab-wp .comlab-form-embed input::placeholder,
.comlab-wp .comlab-form-embed textarea::placeholder{color:#8a9694!important;opacity:1}
.comlab-wp .comlab-form-embed ul,
.comlab-wp .comlab-form-embed .wpforms-field-row{max-width:none!important}
.comlab-wp .comlab-form-embed .wpforms-field-row-block{padding:0!important}
.comlab-wp .comlab-form-embed .wpforms-field-checkbox ul,
.comlab-wp .comlab-form-embed .wpforms-field-gdpr-checkbox ul{display:grid;gap:8px;margin:0!important;padding:0!important;list-style:none}
.comlab-wp .comlab-form-embed .wpforms-field-checkbox li,
.comlab-wp .comlab-form-embed .wpforms-field-gdpr-checkbox li{display:flex!important;align-items:flex-start;gap:9px;font-size:12px;line-height:1.5;color:#465653}
.comlab-wp .comlab-form-embed input[type=checkbox],
.comlab-wp .comlab-form-embed input[type=radio]{accent-color:var(--purple-1);margin-top:3px}
.comlab-wp .comlab-form-embed .wpforms-submit-container{padding:24px 0 0!important;margin:0!important}
.comlab-wp .comlab-form-embed button[type=submit],
.comlab-wp .comlab-form-embed input[type=submit],
.comlab-wp .comlab-form-embed .wpforms-submit{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:50px!important;
  padding:13px 22px!important;
  border:1px solid var(--ink)!important;
  border-radius:999px!important;
  background:var(--ink)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1!important;
  cursor:pointer!important;
}
.comlab-wp .comlab-form-embed button[type=submit]:hover,
.comlab-wp .comlab-form-embed .wpforms-submit:hover{transform:translateY(-1px);background:var(--purple-1)!important;border-color:var(--purple-1)!important}
.comlab-wp .comlab-form-embed .wpforms-error{color:var(--red-2)!important;font-size:11px!important}
.comlab-wp .comlab-form-embed label.wpforms-error{margin-top:6px!important}
.comlab-wp .comlab-form-embed .wpforms-confirmation-container-full,
.comlab-wp .comlab-form-embed .wpforms-confirmation-container{padding:18px 20px!important;border:0!important;background:#eef8f3!important;color:var(--ink)!important}

/* Contact Form 7 uses the same visual language. */
.comlab-wp .comlab-form-embed .wpcf7-form{display:grid;gap:18px}
.comlab-wp .comlab-form-embed .wpcf7-form p{margin:0}
.comlab-wp .comlab-form-embed .wpcf7-form label{display:grid;gap:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.comlab-wp .comlab-form-embed .wpcf7-not-valid-tip{margin-top:6px;color:var(--red-2);font-size:11px;text-transform:none;letter-spacing:0}
.comlab-wp .comlab-form-embed .wpcf7-response-output{margin:4px 0 0!important;padding:14px 16px!important;border:1px solid rgba(16,36,34,.18)!important;font-size:12px}

@media(max-width:860px){
  .comlab-wp .contact-page-hero-grid{grid-template-columns:1fr minmax(190px,.45fr);gap:28px}
  .comlab-wp .contact-page-grid{grid-template-columns:1fr;gap:52px}
  .comlab-wp .contact-page-details{position:static;max-width:700px}
}
@media(max-width:680px){
  .comlab-wp .contact-page-hero{padding-top:96px;padding-bottom:64px}
  .comlab-wp .contact-page-hero-grid{grid-template-columns:1fr}
  .comlab-wp .contact-page-hero-copy h1{font-size:clamp(43px,13vw,62px);max-width:11ch}
  .comlab-wp .contact-page-hero-art{display:none}
  .comlab-wp .contact-page-content{padding-top:62px;padding-bottom:80px}
  .comlab-wp .contact-page-form-card{padding:24px 18px}
  .comlab-wp .contact-page-form .wpforms-field-container{grid-template-columns:1fr;gap:16px}
  .comlab-wp .contact-page-form .wpforms-field{grid-column:1!important}
  .comlab-wp .form-grid{grid-template-columns:1fr}
  .comlab-wp .form-field-wide{grid-column:1}
}


/* v2.0.8 reference system: v5 is the visual source of truth */
/* Homepage: restore the accepted v5 open editorial mosaic. */
.clients-section .refx-shell{margin-top:clamp(46px,5vw,72px)}
.clients-section .refx-layout{display:grid;grid-template-columns:1fr;gap:clamp(46px,5vw,68px)}
.clients-section .refx-layout-main{display:grid;grid-template-columns:minmax(330px,.78fr) minmax(0,1.62fr);gap:clamp(30px,3.5vw,52px);align-items:start}
.clients-section .refx-layout-right{display:grid;grid-template-columns:1fr;gap:clamp(28px,3vw,42px);min-width:0}
.clients-section .refx-layout-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,2.4vw,34px)}
.clients-section .refx-tile{
  min-width:0;width:100%;display:flex!important;flex-direction:column!important;gap:18px!important;
  padding:0 0 28px!important;margin:0;border:0!important;border-bottom:1px solid rgba(11,35,32,.13)!important;
  background:transparent!important;box-shadow:none!important;overflow:visible!important;
}
.clients-section .refx-media{width:100%;min-width:0;margin:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;background:transparent!important;aspect-ratio:auto!important}
.clients-section .refx-media img{width:100%;height:auto!important;max-height:440px;display:block;object-fit:contain!important;object-position:center}
.clients-section .refx-body{min-width:0;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:0!important}
.clients-section .refx-brand{min-height:30px}.clients-section .refx-brand img{width:auto;max-width:160px;max-height:34px;object-fit:contain}
.clients-section .refx-tile h3,.clients-section .refx-text h3{margin:0;font-size:clamp(28px,2.8vw,44px);line-height:1.04;letter-spacing:-.045em}
.clients-section .refx-tile p{font-size:clamp(15px,1.08vw,18px);line-height:1.66;color:#374845}
.clients-section .refx-text{min-height:250px;justify-content:space-between}
.clients-section .refx-text h3{margin:auto 0}.clients-section .refx-layout-split .refx-text h3{font-size:clamp(25px,2.25vw,36px)}
.clients-section .refx-layout-right>.refx-tile:not(.refx-text){display:grid!important;grid-template-columns:minmax(250px,.95fr) minmax(0,1.05fr)!important;column-gap:clamp(28px,3vw,46px);row-gap:0;align-items:start}
.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-media{grid-column:1}.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-body{grid-column:2}
.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-media img{max-height:360px}
.clients-section .refx-layout-right>.refx-tile:not(.refx-text) h3{font-size:clamp(29px,2.7vw,44px)}

/* Related references on service, person and article pages: same v5 card language, but stable by count. */
.reference-v5-context-grid{
  width:100%;margin-top:clamp(38px,4vw,56px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,3.2vw,46px);align-items:start;
}
.reference-v5-context-grid.is-count-1{grid-template-columns:minmax(0,880px);max-width:880px}
.reference-v5-context-grid.is-count-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1120px}
.reference-v5-context-grid .refx-tile{
  min-width:0;width:100%;display:flex!important;flex-direction:column!important;gap:16px!important;padding:0 0 26px!important;
  margin:0;border:0!important;border-bottom:1px solid rgba(11,35,32,.13)!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;
}
.reference-v5-context-grid .refx-media{width:100%;margin:0;background:transparent!important;aspect-ratio:auto!important;overflow:hidden}
.reference-v5-context-grid .refx-media img{display:block;width:100%;height:auto!important;max-height:330px;object-fit:contain!important;object-position:left top}
.reference-v5-context-grid .refx-body{width:100%;display:flex;flex-direction:column;gap:14px;padding:0!important}
.reference-v5-context-grid .refx-brand img{max-width:145px;max-height:31px}
.reference-v5-context-grid .refx-tile h3,.reference-v5-context-grid .refx-text h3{margin:0;font-size:clamp(25px,2.2vw,34px);line-height:1.05;letter-spacing:-.04em}
.reference-v5-context-grid .refx-summary{font-size:15px;line-height:1.6;color:#374845}
.reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text){display:grid!important;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr)!important;gap:clamp(24px,3vw,42px)!important;align-items:start}
.reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text) .refx-media{grid-column:1}
.reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text) .refx-body{grid-column:2}
.reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text) .refx-media img{max-height:300px}
.reference-v5-context-grid.is-count-1 .refx-text{max-width:760px;min-height:0}

/* Reference archive: v5 editorial cards, predictable 3 > 2 > 1 grid. */
.reference-v5-archive-grid{
  width:100%;margin-top:clamp(38px,4vw,58px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(34px,3.5vw,52px);align-items:start;
}
.reference-v5-archive-grid .refx-tile{
  min-width:0;width:100%;display:flex!important;flex-direction:column!important;gap:16px!important;padding:0 0 28px!important;
  margin:0;border:0!important;border-bottom:1px solid rgba(11,35,32,.13)!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;
}
.reference-v5-archive-grid .refx-media{width:100%;margin:0;background:transparent!important;aspect-ratio:auto!important;overflow:hidden}
.reference-v5-archive-grid .refx-media img{display:block;width:100%;height:auto!important;max-height:330px;object-fit:contain!important;object-position:center}
.reference-v5-archive-grid .refx-body{width:100%;display:flex;flex-direction:column;gap:14px;padding:0!important}
.reference-v5-archive-grid .refx-brand img{max-width:145px;max-height:31px}
.reference-v5-archive-grid .refx-tile h3,.reference-v5-archive-grid .refx-text h3{margin:0;font-size:clamp(24px,2vw,32px);line-height:1.06;letter-spacing:-.04em}
.reference-v5-archive-grid .refx-summary{font-size:14px;line-height:1.6;color:#374845}
.reference-v5-archive-grid [data-reference-unit].is-filtered-out{display:none!important}

@media(max-width:1120px){
  .clients-section .refx-layout-main{grid-template-columns:minmax(260px,.85fr) minmax(0,1.35fr)}
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text){grid-template-columns:1fr!important;gap:18px}
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-media,.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-body{grid-column:1}
  .reference-v5-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .clients-section .refx-layout-main{grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr);gap:24px}
  .clients-section .refx-layout-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text){display:grid!important;grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr)!important;gap:22px}
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-media{grid-column:1}.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-body{grid-column:2}
  .reference-v5-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reference-v5-context-grid.is-count-1{grid-template-columns:minmax(0,760px)}
}
@media(max-width:680px){
  .clients-section .refx-layout,.clients-section .refx-layout-main,.clients-section .refx-layout-right,.clients-section .refx-layout-split,.clients-section .refx-layout-extra{
    display:grid!important;grid-template-columns:1fr!important;gap:30px!important;
  }
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text){display:grid!important;grid-template-columns:1fr!important;gap:15px!important}
  .clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-media,.clients-section .refx-layout-right>.refx-tile:not(.refx-text) .refx-body{grid-column:1!important}
  .clients-section .refx-text{min-height:0}.clients-section .refx-tile h3,.clients-section .refx-text h3,.clients-section .refx-layout-split .refx-text h3{font-size:clamp(25px,7.4vw,34px);margin:0}
  .reference-v5-context-grid,.reference-v5-context-grid.is-count-1,.reference-v5-context-grid.is-count-2,.reference-v5-archive-grid{
    grid-template-columns:1fr!important;max-width:none;gap:28px;margin-top:30px;
  }
  .reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text){display:grid!important;grid-template-columns:1fr!important;gap:15px!important}
  .reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text) .refx-media,.reference-v5-context-grid.is-count-1 .refx-tile:not(.refx-text) .refx-body{grid-column:1!important}
  .reference-v5-context-grid .refx-tile h3,.reference-v5-context-grid .refx-text h3,.reference-v5-archive-grid .refx-tile h3,.reference-v5-archive-grid .refx-text h3{font-size:clamp(24px,7vw,32px)}
  .reference-v5-context-grid .refx-media img,.reference-v5-archive-grid .refx-media img{max-height:none}
}


/* v2.0.9: homepage references use a flat editorial grid, no featured-column overhang */
.reference-v5-home-grid{
  width:100%;
  margin-top:clamp(42px,5vw,68px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(34px,3.8vw,58px) clamp(28px,3.4vw,52px);
  align-items:stretch;
}
.reference-v5-home-grid .refx-tile{
  min-width:0;
  width:100%;
  height:100%;
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
  padding:0 0 26px!important;
  margin:0!important;
  border:0!important;
  border-bottom:1px solid rgba(11,35,32,.13)!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.reference-v5-home-grid .refx-media{
  width:100%;margin:0;background:transparent!important;aspect-ratio:auto!important;overflow:hidden;
}
.reference-v5-home-grid .refx-media img{
  display:block;width:100%;height:auto!important;max-height:360px;object-fit:contain!important;object-position:center top;
}
.reference-v5-home-grid .refx-body{
  width:100%;min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:14px;padding:0!important;
}
.reference-v5-home-grid .refx-brand img{max-width:145px;max-height:31px}
.reference-v5-home-grid .refx-tile h3,.reference-v5-home-grid .refx-text h3{
  margin:0;font-size:clamp(26px,2.45vw,38px);line-height:1.05;letter-spacing:-.04em;
}
.reference-v5-home-grid .refx-text{min-height:0;justify-content:flex-start}
.reference-v5-home-grid .refx-text h3{margin:0}
.reference-v5-home-grid .refx-footer{margin-top:auto}
@media(max-width:760px){
  .reference-v5-home-grid{grid-template-columns:1fr;gap:28px;margin-top:30px}
  .reference-v5-home-grid .refx-tile{height:auto}
  .reference-v5-home-grid .refx-media img{max-height:none}
  .reference-v5-home-grid .refx-tile h3,.reference-v5-home-grid .refx-text h3{font-size:clamp(24px,7vw,32px)}
}

/* v2.0.10 reference media, logos and blog editorial cleanup */
/* Reference images must remain transparent so backgroundless PNG artwork can breathe. */
.comlab-wp .refx-media,
.comlab-wp .reference-v5-home-grid .refx-media,
.comlab-wp .reference-v5-context-grid .refx-media,
.comlab-wp .reference-v5-archive-grid .refx-media,
.comlab-wp .reference-list-grid .refx-media,
.comlab-wp .reference-detail-hero-media,
.comlab-wp .reference-detail-media{
  background:transparent !important;
  box-shadow:none !important;
}
.comlab-wp .reference-detail-hero-media{padding:0 !important}

/* Reference logos: consistent 100px visual height everywhere. */
.comlab-wp .refx-brand{
  min-height:100px !important;
  display:flex;
  align-items:center;
}
.comlab-wp .refx-brand img,
.comlab-wp .reference-v5-home-grid .refx-brand img,
.comlab-wp .reference-v5-context-grid .refx-brand img,
.comlab-wp .reference-v5-archive-grid .refx-brand img,
.comlab-wp .reference-list-grid .refx-brand img{
  width:auto !important;
  height:100px !important;
  max-width:min(240px,100%) !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:left center;
}
.comlab-wp .reference-detail-client{
  min-height:100px;
  align-items:center;
}
.comlab-wp .reference-detail-client img{
  width:auto !important;
  height:100px !important;
  max-width:min(280px,70vw) !important;
  max-height:none !important;
  object-fit:contain !important;
  filter:none !important;
}

/* Blog listings: open editorial tiles, no card backgrounds or outlines. */
.comlab-wp .blog-grid-section .blog-grid,
.comlab-wp .blog-teaser-grid{
  gap:clamp(34px,4vw,58px) !important;
}
.comlab-wp .blog-grid-section .blog-card,
.comlab-wp .blog-grid-section .blog-card:nth-child(odd),
.comlab-wp .blog-teaser-grid .blog-card,
.comlab-wp .latest-posts-section .blog-card{
  min-height:0 !important;
  padding:0 0 24px !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.comlab-wp .blog-grid-section a.blog-card:hover,
.comlab-wp .blog-teaser-grid a.blog-card:hover,
.comlab-wp .latest-posts-section a.blog-card:hover{
  background:transparent !important;
  box-shadow:none !important;
  transform:translateY(-2px);
}
.comlab-wp .blog-card-media{
  margin:0 0 22px !important;
  border-radius:0 !important;
  background:transparent !important;
}

/* Article featured image: never crop the image on phones. */
@media(max-width:760px){
  .comlab-wp .article-hero .article-featured,
  .comlab-wp .article-featured{
    width:100% !important;
    margin:26px 0 0 !important;
    border-radius:0 !important;
    overflow:visible !important;
    background:transparent !important;
  }
  .comlab-wp .article-hero .article-featured img,
  .comlab-wp .article-featured img{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    object-position:center !important;
  }
  .comlab-wp .reference-detail-client img{height:82px !important}
  .comlab-wp .refx-brand img,
  .comlab-wp .reference-v5-home-grid .refx-brand img,
  .comlab-wp .reference-v5-context-grid .refx-brand img,
  .comlab-wp .reference-v5-archive-grid .refx-brand img,
  .comlab-wp .reference-list-grid .refx-brand img{height:82px !important}
  .comlab-wp .refx-brand{min-height:82px !important}
}


/* v2.0.11 reference detail logo plate + full homepage team */
.comlab-wp .reference-detail-client{
  min-height:0 !important;
  flex-wrap:wrap;
}
.comlab-wp .reference-detail-logo-plate{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:10px 14px;
  background:#fff;
  box-sizing:border-box;
}
.comlab-wp .reference-detail-logo-plate img,
.comlab-wp .reference-detail-client .reference-detail-logo-plate img{
  display:block;
  width:auto !important;
  height:100px !important;
  max-width:min(280px,68vw) !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center;
  filter:none !important;
}
.comlab-wp .team-preview-section .person-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:980px){
  .comlab-wp .team-preview-section .person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .comlab-wp .reference-detail-logo-plate{padding:8px 12px}
  .comlab-wp .reference-detail-logo-plate img,
  .comlab-wp .reference-detail-client .reference-detail-logo-plate img{
    height:100px !important;
    max-width:min(260px,72vw) !important;
  }
  .comlab-wp .team-preview-section .person-grid{grid-template-columns:1fr}
}


/* v2.0.12 team member detail hierarchy */
.member-hero-focus{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 14px;
  margin-top:18px;
  color:#fff;
}
.member-hero-focus span{
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.68);
}
.member-hero-focus strong{
  font-size:clamp(16px,1.35vw,20px);
  line-height:1.45;
  font-weight:700;
  color:#fff;
}
.member-wp-content-section{
  background:#fff;
  padding-top:clamp(72px,8vw,118px);
  padding-bottom:clamp(72px,8vw,118px);
}
.member-wp-content{
  width:min(100%,920px);
  margin:0 auto;
  font-size:clamp(17px,1.25vw,20px);
  line-height:1.78;
  color:#344745;
}
.member-wp-content > :first-child{margin-top:0}
.member-wp-content > :last-child{margin-bottom:0}
.member-wp-content h2,
.member-wp-content h3,
.member-wp-content h4{
  color:var(--ink);
  letter-spacing:-.035em;
}
.member-wp-content h2{font-size:clamp(32px,3.4vw,50px);margin:1.35em 0 .5em}
.member-wp-content h3{font-size:clamp(25px,2.5vw,36px);margin:1.25em 0 .45em}
.member-wp-content p{margin:0 0 1.15em}
.member-wp-content ul,
.member-wp-content ol{padding-left:1.25em;margin:0 0 1.2em}

.member-page .content-faq-section{
  background:color-mix(in srgb,var(--red-3) 4%,#fff);
}
.member-services-section{
  background:#fff;
}
.member-services-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.member-service-card{
  --member-service-accent:var(--blue-2);
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
  padding:clamp(28px,4vw,48px);
  background:#fff;
}
.member-service-card.theme-coral{--member-service-accent:var(--red-3)}
.member-service-card.theme-butter{--member-service-accent:var(--purple-1)}
.member-service-card.theme-sage{--member-service-accent:var(--green-1)}
.member-service-card.theme-aqua{--member-service-accent:var(--blue-2)}
.member-service-type{
  margin:0;
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--member-service-accent);
}
.member-service-card h3{
  margin:0;
  font-size:clamp(28px,3vw,44px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.member-service-card h3 a{color:inherit;text-decoration:none}
.member-service-card > p:not(.member-service-type){
  margin:0;
  max-width:58ch;
  color:#5e6e6b;
  font-size:15px;
  line-height:1.65;
}
.member-service-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding-top:8px;
  color:var(--ink);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}
.member-service-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.member-references{background:color-mix(in srgb,var(--blue-2) 5%,#fff)}

@media(max-width:760px){
  .member-hero-focus{margin-top:14px;display:grid;gap:5px}
  .member-wp-content-section{padding-top:64px;padding-bottom:64px}
  .member-wp-content{font-size:16px;line-height:1.7}
  .member-services-grid{grid-template-columns:1fr}
  .member-service-card{padding:28px 0;background:#fff;border-bottom:1px solid var(--line)}
  .member-services-grid{gap:0;background:transparent;border:0}
}


/* v2.0.13 simplified child-service body */
.subservice-wp-content{background:#fff;padding-top:clamp(64px,8vw,112px);padding-bottom:clamp(64px,8vw,112px)}
.subservice-wp-content-inner{width:min(100%,940px);margin:0 auto;font-size:clamp(17px,1.3vw,20px);line-height:1.72;color:var(--ink)}
.subservice-wp-content-inner > :first-child{margin-top:0}
.subservice-wp-content-inner > :last-child{margin-bottom:0}
.subservice-wp-content-inner p{margin:0 0 1.25em;max-width:78ch}
.subservice-wp-content-inner h2{margin:1.7em 0 .55em;font-size:clamp(30px,3.4vw,52px);line-height:1.02;letter-spacing:-.045em}
.subservice-wp-content-inner h3{margin:1.5em 0 .5em;font-size:clamp(23px,2.2vw,34px);line-height:1.08;letter-spacing:-.03em}
.subservice-wp-content-inner ul,.subservice-wp-content-inner ol{margin:1.2em 0 1.5em;padding-left:1.35em;display:grid;gap:.65em}
.subservice-wp-content-inner a{text-decoration:underline;text-underline-offset:3px}
.subservice-wp-content-inner img{max-width:100%;height:auto}
@media(max-width:760px){
  .subservice-wp-content{padding-top:52px;padding-bottom:58px}
  .subservice-wp-content-inner{font-size:17px;line-height:1.68}
}
