/* ==========================================================================
   Pearl Coast theme – mobile first.
   Breakpoints: 600px (large phone / small tablet), 768px (tablet),
   1024px (laptop), 1280px (desktop). Logical properties keep Arabic (RTL) correct.
   ========================================================================== */

/* ---------- fonts (self-hosted, no Google request) ---------- */
@font-face{font-family:"Jost";src:url(../fonts/jost-latin-300-normal.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-300-normal.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Newsreader";src:url(../fonts/newsreader-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --pearl:#FAFAF8; --white:#fff; --stone:#E8E3DA; --stone2:#F2EEE8; --mist:#EEF0F1;
  --ink:#1D2327; --ink2:#3A4146; --muted:#6B7277; --line:#DCDAD5;
  --blue:#2394C0; --blue-d:#1B7AA0; --navy:#10293A;
  --sage:#8B9683; --sage-l:#E4E8E0; --cloud:#C9CED1; --cloud-l:#F1F3F4;
  --linen:#D6CAB6; --linen-l:#F5F0E8; --walnut:#5B4331; --char:#2B2D2E; --moss:#666B4F; --moss-l:#E7E6DC;
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Jost","Avenir Next","Century Gothic","Segoe UI",Tahoma,sans-serif;
  --gutter:20px;
  --max:1280px;
  --header-h:68px;
  --logo-h:56px;
}
@media (min-width:768px){:root{--gutter:40px;--header-h:80px}}
@media (min-width:1280px){:root{--gutter:72px;--header-h:96px}}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--pearl);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%;height:auto}
video.pc-video{object-fit:cover;background:var(--stone)}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,dl,dd,ul{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;inset-inline-start:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px}
.skip-link:focus{top:12px}
.container{width:100%;max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- type ---------- */
.h1{font:300 clamp(36px,7vw,64px)/1.04 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.h2{font:300 clamp(32px,5.2vw,54px)/1.06 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.kicker{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.kicker--light{color:rgba(255,255,255,.85)}
.tw{display:inline-block;min-width:1px;white-space:pre}
.tw.is-typing::after{content:"";display:inline-block;width:1.5px;height:1.15em;margin-inline-start:.35em;vertical-align:-.2em;background:currentColor;animation:tw-caret 1s steps(1) infinite}
@keyframes tw-caret{50%{opacity:0}}
.lead{font-size:17px;line-height:1.65;color:var(--ink2);margin:20px 0 32px;max-width:46ch}
.link{display:inline-block;font-size:13px;letter-spacing:.04em;border-bottom:1px solid currentColor;padding-bottom:3px}

/* ---------- buttons (min 44px tall for fingers) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;font:500 12.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);background:transparent;transition:background .2s,color .2s,border-color .2s;text-align:center}
.btn--sm{min-height:40px;padding:0 16px;font-size:11.5px}
.btn--solid{background:var(--ink);color:#fff}
.btn--solid:hover{background:var(--navy);border-color:var(--navy)}
.btn--outline:hover{background:var(--ink);color:#fff}
.btn--blue{background:var(--blue);border-color:var(--blue);color:#fff}
.btn--blue:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn--white{background:#fff;border-color:#fff;color:var(--ink)}
.btn--white:hover{background:transparent;color:#fff}
.btn--light{border-color:rgba(255,255,255,.85);color:#fff}
.btn--light:hover{background:#fff;color:var(--ink)}
.btn--ghost{color:inherit;border-color:currentColor}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* ---------- brand wordmarks (text, or the uploaded logo) ---------- */
.wm{display:inline-flex;align-items:center;gap:.4em;line-height:1}
.wm--s{font-size:14px}.wm--m{font-size:21px}.wm--l{font-size:32px}.wm--xl{font-size:44px}
.wm-ld{font-family:var(--serif);font-style:italic;font-weight:300;letter-spacing:.02em}
.wm-ld.wm--m{font-size:26px}
.wm-lx{font-family:var(--sans);font-weight:500;letter-spacing:.42em}
.wm-lp{font-family:var(--serif);font-weight:300;letter-spacing:.34em}
.wm-vs{font-family:var(--sans);font-weight:600;letter-spacing:.3em}
.wm-ea{font-family:var(--sans);font-weight:400;letter-spacing:.3em;color:var(--ink)}
.wm--logo :is(img,video){height:1.5em;width:auto}
.wm--s.wm--logo :is(img,video){height:1.7em}
.wm__sfx{font:500 .6em/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;font-style:normal}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:50;background:#fff;color:var(--ink);transition:background .25s,box-shadow .25s,color .25s}
.admin-bar .site-header{top:46px}
@media (min-width:783px){.admin-bar .site-header{top:32px}}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--header-h);max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.site-header__logo{display:flex;align-items:center;flex:none;position:relative;z-index:2}
.logo{height:calc(var(--header-h) - 22px);max-height:var(--logo-h);width:auto}
.logo--dark{display:none}
.logo-text{font:400 20px/1 var(--serif);letter-spacing:.2em;text-transform:uppercase}

/* Homepage: header sits over the photo until you scroll. */
.has-hero .site-header{position:fixed;inset-inline:0;background:transparent;color:#fff}
.has-hero .site-header::before{content:"";position:absolute;inset:0 0 -40px;background:linear-gradient(180deg,rgba(14,22,27,.55),rgba(14,22,27,0));pointer-events:none;transition:opacity .25s}
.has-hero .site-header .logo--default{display:none}
.has-hero .site-header .logo--dark{display:block}
.has-hero .site-header.is-solid{background:#fff;color:var(--ink);box-shadow:0 1px 0 var(--line)}
.has-hero .site-header.is-solid::before{opacity:0}
.has-hero .site-header.is-solid .logo--default{display:block}
.has-hero .site-header.is-solid .logo--dark{display:none}

/* Burger */
.menu-toggle{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-inline-end:-12px;background:none;border:0;cursor:pointer}
.menu-toggle__bars,.menu-toggle__bars::before,.menu-toggle__bars::after{display:block;width:24px;height:1.5px;background:currentColor;transition:transform .25s,opacity .2s}
.menu-toggle__bars{position:relative}
.menu-toggle__bars::before,.menu-toggle__bars::after{content:"";position:absolute;inset-inline-start:0}
.menu-toggle__bars::before{top:-7px}.menu-toggle__bars::after{top:7px}
.menu-open .menu-toggle__bars{background:transparent}
.menu-open .menu-toggle__bars::before{transform:translateY(7px) rotate(45deg)}
.menu-open .menu-toggle__bars::after{transform:translateY(-7px) rotate(-45deg)}

/* Phone / tablet menu: full-screen panel */
.site-nav{position:fixed;inset:0;z-index:1;display:flex;flex-direction:column;gap:32px;padding:calc(var(--header-h) + 24px) var(--gutter) calc(32px + env(safe-area-inset-bottom,0px));background:#fff;color:var(--ink);overflow-y:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
.admin-bar .site-nav{top:46px}
.menu-open .site-nav{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .25s}
.menu-open{overflow:hidden}
.menu-open .site-header{color:var(--ink)}
.menu-open.has-hero .site-header .logo--default{display:block}
.menu-open.has-hero .site-header .logo--dark{display:none}
.menu-open.has-hero .site-header::before{opacity:0}
.site-nav .menu{display:flex;flex-direction:column}
.site-nav .menu>li{border-bottom:1px solid var(--line)}
.site-nav .menu a{display:block;padding:16px 0;font:300 28px/1.15 var(--serif)}
.site-nav .menu .sub-menu a{font:400 16px/1.4 var(--sans);padding-block:10px;padding-inline:16px 0;color:var(--ink2)}
.site-nav .menu .current-menu-item>a{color:var(--blue)}
.site-nav__actions{display:flex;flex-direction:column;gap:12px}
.site-nav__actions .btn{min-height:52px;font-size:12.5px}
.site-nav__contact{display:flex;flex-direction:column;gap:6px;margin-top:auto;font-size:15px;color:var(--muted)}
.lang{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding-inline:14px;border:1px solid currentColor;border-radius:999px;font-size:13px;line-height:1;white-space:nowrap;opacity:.9}
.lang:hover{opacity:1}
.lang[lang|="ar"],.lang[hreflang="ar"]{font-family:"Noto Kufi Arabic",system-ui,sans-serif;font-size:14px}
.site-header__lang{position:relative;z-index:2;display:flex;margin-inline-start:auto}
.site-nav .lang--nav{display:none}

@media (min-width:1100px){
  .menu-toggle{display:none}
  .site-nav{position:static;flex-direction:row;align-items:center;justify-content:space-between;flex:1;gap:32px;padding:0;background:none;color:inherit;overflow:visible;visibility:visible;opacity:1;transform:none;transition:none}
  .site-nav .menu{flex-direction:row;gap:30px;margin-inline:auto}
  .site-nav .menu>li{border:0;position:relative}
  .site-nav .menu a{padding:8px 0;font:400 14px/1 var(--sans);letter-spacing:.02em}
  .site-nav .menu>li>a{border-bottom:1px solid transparent}
  .site-nav .menu>li>a:hover,.site-nav .menu>.current-menu-item>a{border-bottom-color:currentColor;color:inherit}
  .site-nav .menu .sub-menu{position:absolute;inset-inline-start:-18px;top:100%;min-width:220px;padding:10px 0;background:#fff;color:var(--ink);box-shadow:0 18px 40px -18px rgba(16,41,58,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
  .site-nav .menu li:hover>.sub-menu,.site-nav .menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
  .site-nav .menu .sub-menu a{padding:10px 18px;font-size:14px}
  .site-nav__actions{flex-direction:row;align-items:center;gap:14px}
  .site-nav__actions .btn{min-height:40px;font-size:11.5px}
  .site-nav__contact{display:none}
  .site-header__lang{display:none}
  .site-nav .lang--nav{display:inline-flex}
  .has-hero .site-header:not(.is-solid) .btn--solid{background:transparent;border-color:rgba(255,255,255,.85);color:#fff}
  .has-hero .site-header:not(.is-solid) .btn--solid:hover{background:#fff;color:var(--ink)}
  .has-hero .site-header:not(.is-solid) .btn--ghost:hover{background:#fff;border-color:#fff;color:var(--ink)}
}

/* ==========================================================================
   Homepage
   ========================================================================== */
/* Hero */
.hero{position:relative;display:flex;align-items:flex-end;min-height:max(560px,88svh);color:#fff;overflow:hidden;background:var(--navy)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,22,27,.82) 0%,rgba(14,22,27,.35) 55%,rgba(14,22,27,.15) 100%)}
.hero__in{position:relative;z-index:2;padding-block:calc(var(--header-h) + 40px) 56px}
.hero__title{font:300 clamp(42px,9vw,82px)/1.02 var(--serif);letter-spacing:-.015em;margin:4px 0 18px;max-width:14ch;text-wrap:balance}
.hero__text{font-size:17px;line-height:1.55;max-width:44ch;opacity:.92}
.hero__ctas{display:flex;flex-direction:column;gap:12px;margin-top:30px}
.hero__side{display:none}
@media (min-width:600px){.hero__ctas{flex-direction:row;flex-wrap:wrap}}
@media (min-width:1024px){
  .hero{min-height:min(760px,100svh);align-items:center}
  .hero::after{background:linear-gradient(90deg,rgba(14,22,27,.72) 0%,rgba(14,22,27,.35) 45%,rgba(14,22,27,0) 75%),linear-gradient(0deg,rgba(14,22,27,.35),rgba(14,22,27,0) 40%)}
  .hero__in{padding-block:calc(var(--header-h) + 32px) 56px} /* text sits in the middle of the photo, below the menu */
  .hero__title{max-width:18ch}
  .hero__side{display:block;position:absolute;z-index:2;right:var(--gutter);bottom:88px;max-height:calc(100% - var(--header-h) - 150px);overflow:hidden;font-size:12px;letter-spacing:.14em;opacity:.8;writing-mode:vertical-rl}
}

/* Facts */
.facts__grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.fact{padding:22px 0;border-bottom:1px solid var(--line)}
.fact:nth-child(odd){padding-inline-end:16px}
.fact:nth-last-child(-n+2){border-bottom:0}
.fact dt{font:400 clamp(24px,4vw,30px)/1.1 var(--serif);margin-bottom:4px}
.fact dd{font-size:13px;color:var(--muted);line-height:1.4}
@media (min-width:900px){
  .facts__grid{grid-template-columns:repeat(4,1fr);border-top:0}
  .fact{padding:28px 24px;border-bottom:0;border-inline-start:1px solid var(--line)}
  .fact:first-child{border-inline-start:0;padding-inline-start:0}
  .facts__grid:not(:has(> :nth-child(4))){grid-template-columns:repeat(3,1fr)}
}
/* Three facts on phones: the last one spans the row. */
@media (max-width:899px){
  .facts__grid:not(:has(> :nth-child(4))) > .fact:nth-child(3){grid-column:1/-1;border-top:1px solid var(--line)}
  .facts__grid:not(:has(> :nth-child(4))) > .fact:nth-child(1),.facts__grid:not(:has(> :nth-child(4))) > .fact:nth-child(2){border-bottom:0}
}

/* Sections */
.section{padding-block:72px}
.section--white{background:#fff}
.section--earth{background:var(--moss-l)}
@media (min-width:1024px){.section{padding-block:120px}}
.sec-head{display:flex;flex-direction:column;gap:18px;margin-bottom:36px}
.sec-head__text{max-width:40ch;color:var(--ink2);font-size:16px}
.sec-head__side{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
@media (min-width:900px){.sec-head{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px}}

/* Brand cards: swipe on phones, grid from tablet up */
.brands{display:grid;grid-auto-flow:column;grid-auto-columns:78%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);padding-bottom:8px;scrollbar-width:none}
.brands::-webkit-scrollbar{display:none}
.brand-card{scroll-snap-align:start;display:flex;flex-direction:column}
.brand-card__ph{aspect-ratio:3/4;overflow:hidden;background:var(--stone)}
.brand-card__ph :is(img,video){width:100%;height:100%;object-fit:cover;transition:transform .6s}
.brand-card:hover .brand-card__ph :is(img,video){transform:scale(1.03)}
.brand-card__meta{padding-top:20px;display:flex;flex-direction:column;align-items:flex-start}
.brand-card__meta .wm{min-height:36px}
.brand-card__cat{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:14px}
.brand-card__line{font:300 22px/1.3 var(--serif);margin:6px 0 16px}
.brand-card::after{content:"";display:block;height:3px;width:40px;margin-top:18px;background:var(--sage)}
.brand-card--lx::after{background:var(--cloud)}.brand-card--lp::after{background:var(--linen)}.brand-card--vs::after{background:var(--walnut)}
@media (min-width:600px){.brands{grid-auto-flow:row;grid-template-columns:1fr 1fr;gap:28px 18px;overflow:visible;margin:0;padding:0}}
@media (min-width:1024px){.brands{grid-template-columns:repeat(4,1fr)}}

/* Difference */
.diff{display:grid;gap:36px;align-items:center}
.diff__ph{aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.diff__ph :is(img,video){width:100%;height:100%;object-fit:cover}
.caps{display:grid;gap:24px;border-top:1px solid var(--line);padding-top:28px}
.caps__h{font:500 12.5px/1.3 var(--sans);letter-spacing:.24em;text-transform:uppercase;margin-bottom:6px}
.caps p{font-size:15px;color:var(--ink2)}
@media (min-width:600px){.caps{grid-template-columns:1fr 1fr;gap:30px 36px}}
@media (min-width:768px){.diff__ph{aspect-ratio:16/10}}
@media (min-width:1024px){.diff{grid-template-columns:1.1fr 1fr;gap:80px}.diff__ph{aspect-ratio:4/5}}

/* Supply mosaic */
.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:170px;gap:10px}
.tile{position:relative;overflow:hidden;color:#fff;background:var(--navy)}
.tile :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.tile:hover :is(img,video){transform:scale(1.04)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,22,27,.66),rgba(14,22,27,0) 60%)}
.tile__lbl{position:absolute;z-index:2;inset-inline:16px;bottom:14px}
.tile__lbl h3{font:400 clamp(20px,3vw,26px)/1.15 var(--serif)}
.tile__lbl p{font-size:12.5px;opacity:.88;margin-top:2px;line-height:1.35}
.tile--1{grid-column:span 2;grid-row:span 2}
.tile--8{grid-column:span 2}
.tile:not(.tile--1):not(.tile--8) .tile__lbl p{display:none}
@media (min-width:768px){.mosaic{grid-auto-rows:210px;gap:14px}.tile__lbl{inset-inline:22px;bottom:18px}}
@media (min-width:1024px){.mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:230px}}

/* Projects */
.projects{display:grid;gap:14px}
.pcard{position:relative;min-height:340px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;background:var(--navy)}
.pcard :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,22,27,.72),rgba(14,22,27,.05) 62%)}
.pcard__lbl{position:relative;z-index:2;padding:24px}
.pcard__lbl h3{font:300 clamp(28px,4vw,36px)/1.1 var(--serif)}
.pcard__lbl p:last-child{font-size:14px;opacity:.88;max-width:40ch;margin-top:6px}
@media (min-width:768px){.projects{grid-template-columns:1fr 1fr;gap:18px}.pcard{min-height:420px}.pcard__lbl{padding:30px}}

/* Projects slideshow (home): full-width, one photo at a time. Changing slide
   uses View Transitions (the web version of PowerPoint Morph): the new photo
   wipes in, the old one recedes, the text lifts out and the new text rises.
   Browsers without it get a cross-fade. */
.pcs-sec{background:var(--navy)}
.pcs{--pad:max(var(--gutter),calc((100% - var(--max)) / 2));position:relative;height:min(88svh,760px);min-height:560px;overflow:hidden;color:#fff;touch-action:pan-y;isolation:isolate}
.pcs__item{position:absolute;inset:0;display:none;background:var(--navy)}
.pcs__item.is-main{display:block}
.pcs__item img,.pcs__item video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pcs__item.is-main img{animation:pcs-kb 14s ease-out both}
@keyframes pcs-kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.pcs::before,.pcs::after{content:"";position:absolute;inset-inline:0;z-index:1;pointer-events:none}
.pcs::before{top:0;height:42%;background:linear-gradient(180deg,rgba(11,23,32,.62),rgba(11,23,32,0))}
.pcs::after{bottom:0;height:72%;background:linear-gradient(0deg,rgba(11,23,32,.9) 0%,rgba(11,23,32,.45) 50%,rgba(11,23,32,0))}
.pcs__head{position:absolute;z-index:3;top:0;inset-inline:0;padding:28px var(--pad) 0;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.pcs__h2{font:300 clamp(26px,4vw,44px)/1.08 var(--serif);margin:0;max-width:18ch}
.pcs__head .btn{display:none}
.pcs__caps{position:absolute;z-index:2;inset-inline:0;bottom:64px;display:grid;padding-inline:var(--pad);pointer-events:none}
.pcs__cap{grid-area:1/1;align-self:end;display:flex;flex-direction:column;gap:10px;padding-bottom:22px;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
.pcs__cap.is-on{opacity:1;visibility:visible;pointer-events:auto;view-transition-name:pcs-cap}
.pcs__count{font-size:12px;letter-spacing:.2em;color:#AEBAC2}
.pcs__count span{color:#fff}
.pcs__title{font:300 clamp(48px,11vw,128px)/.92 var(--serif);margin:0;letter-spacing:-.01em}
.pcs__text{font-size:15px;line-height:1.55;color:#E6EBEE;max-width:48ch}
.pcs__chips{display:none;flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none}
.pcs__chips li{font-size:12.5px;padding:7px 12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);backdrop-filter:blur(4px)}
.pcs__link{color:#fff;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;margin-top:6px;align-self:flex-start;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}
.pcs__link:hover{color:#fff;border-color:#fff}
.pcs__tabs{position:absolute;z-index:3;inset-inline:0;bottom:0;height:64px;display:flex;align-items:stretch;padding-inline:var(--pad);overflow-x:auto;scrollbar-width:none}
.pcs__tabs::-webkit-scrollbar{display:none}
.pcs__tabs::before{content:"";position:absolute;inset-inline:var(--pad);top:0;height:1px;background:rgba(255,255,255,.25)}
.pcs__tab{position:relative;flex:0 0 auto;padding:18px 28px 0 0;border:0;background:none;font:400 14px/1.2 var(--sans);color:rgba(255,255,255,.62);cursor:pointer;text-align:start;white-space:nowrap}
[dir=rtl] .pcs__tab{padding:18px 0 0 28px}
.pcs__tab:hover,.pcs__tab.is-on{color:#fff}
.pcs__tabn{font-size:11px;letter-spacing:.14em;margin-inline-end:6px;opacity:.7}
.pcs__bar{position:absolute;inset-inline:0 28px;top:0;height:2px;background:transparent;transform-origin:left}
[dir=rtl] .pcs__bar{inset-inline:0 28px;transform-origin:right}
.pcs__tab.is-on .pcs__bar{background:#fff;view-transition-name:pcs-bar}
.pcs.is-auto .pcs__tab.is-on .pcs__bar{animation:pcs-fill var(--pcs-dur,7s) linear both}
.pcs.is-paused .pcs__tab.is-on .pcs__bar{animation-play-state:paused}
@keyframes pcs-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.pcs__arrows{display:none;align-items:center;gap:8px;margin-inline-start:auto;padding-inline-start:16px}
.pcs__arrow{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;cursor:pointer}
.pcs__arrow:hover{background:#fff;color:var(--navy);border-color:#fff}
[dir=rtl] .pcs__arrow svg,[dir=rtl] .pcs__link span{display:inline-block;transform:scaleX(-1)}
.pcs__pause .i-play{display:none}
.pcs.is-stopped .pcs__pause .i-pause{display:none}
.pcs.is-stopped .pcs__pause .i-play{display:inline}
.pcs:not(.is-auto):not(.is-stopped) .pcs__pause{display:none}
@media (min-width:640px){.pcs__chips{display:flex}.pcs__head .btn{display:inline-flex}}
@media (min-width:900px){
  .pcs{height:min(calc(100svh - var(--header-h)),920px);min-height:620px}
  .pcs__head{padding-top:48px;flex-direction:row;justify-content:space-between;align-items:flex-end}
  .pcs__caps{bottom:84px}
  .pcs__cap{padding-bottom:36px;gap:12px}
  .pcs__text{font-size:17px}
  .pcs__tabs{height:84px;align-items:center;overflow:visible}
  .pcs__tab{padding-top:0;align-self:stretch;display:flex;align-items:center;padding-inline-end:44px;font-size:15px}
  [dir=rtl] .pcs__tab{padding:0 0 0 44px}
  .pcs__bar{inset-inline:0 44px}
  [dir=rtl] .pcs__bar{inset-inline:0 44px}
  .pcs__arrows{display:inline-flex}
}
@media (prefers-reduced-motion:reduce){.pcs__cap{transition:none}.pcs__item.is-main img{animation:none}}
/* Morph timing. Only the slideshow takes part; the rest of the page stays live. */
html.pcs-vt{view-transition-name:none}
html.pcs-vt::view-transition{pointer-events:none}
::view-transition-group(pcs-ph-0),::view-transition-group(pcs-ph-1),::view-transition-group(pcs-ph-2),::view-transition-group(pcs-ph-3),::view-transition-group(pcs-bar){animation-duration:.8s;animation-timing-function:cubic-bezier(.7,0,.2,1)}
::view-transition-image-pair(pcs-ph-0),::view-transition-image-pair(pcs-ph-1),::view-transition-image-pair(pcs-ph-2),::view-transition-image-pair(pcs-ph-3){overflow:hidden}
::view-transition-old(pcs-ph-0),::view-transition-old(pcs-ph-1),::view-transition-old(pcs-ph-2),::view-transition-old(pcs-ph-3),::view-transition-new(pcs-ph-0),::view-transition-new(pcs-ph-1),::view-transition-new(pcs-ph-2),::view-transition-new(pcs-ph-3){height:100%;object-fit:cover;animation-duration:.8s}
/* Phones show one photo, so the new one wipes in over the old (a photo that exists in only one state is ":only-child"). */
::view-transition-new(pcs-ph-0):only-child,::view-transition-new(pcs-ph-1):only-child,::view-transition-new(pcs-ph-2):only-child,::view-transition-new(pcs-ph-3):only-child{animation:pcs-wipe .8s cubic-bezier(.7,0,.2,1) both}
::view-transition-old(pcs-ph-0):only-child,::view-transition-old(pcs-ph-1):only-child,::view-transition-old(pcs-ph-2):only-child,::view-transition-old(pcs-ph-3):only-child{animation:pcs-recede .8s cubic-bezier(.7,0,.2,1) both}
@keyframes pcs-wipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@keyframes pcs-recede{to{transform:scale(1.06);filter:brightness(.6)}}
[dir=rtl]::view-transition-new(pcs-ph-0):only-child,[dir=rtl]::view-transition-new(pcs-ph-1):only-child,[dir=rtl]::view-transition-new(pcs-ph-2):only-child,[dir=rtl]::view-transition-new(pcs-ph-3):only-child{animation-name:pcs-wipe-rtl}
@keyframes pcs-wipe-rtl{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
::view-transition-group(pcs-cap){animation:none}
::view-transition-old(pcs-cap){animation:pcs-out .3s ease-in both}
::view-transition-new(pcs-cap){animation:pcs-in .7s .25s cubic-bezier(.2,.7,.2,1) both}
@keyframes pcs-out{to{opacity:0;transform:translateY(-14px)}}
@keyframes pcs-in{from{opacity:0;transform:translateY(28px)}}
@media (prefers-reduced-motion:reduce){.pcs__cap{transition:none}}

/* Earth */
.earth{display:grid;grid-template-columns:1fr 1fr;gap:28px 14px}
.ecard__ph{aspect-ratio:1;overflow:hidden;background:var(--stone);margin-bottom:16px}
.ecard__ph :is(img,video){width:100%;height:100%;object-fit:cover}
.ecard .wm{min-height:24px;flex-wrap:wrap;row-gap:4px}
.ecard .wm-lx,.ecard .wm-lp,.ecard .wm-vs{letter-spacing:.2em}
.ecard p{font-size:14px;color:var(--ink2);margin-top:8px;line-height:1.5}
@media (min-width:1024px){.earth{grid-template-columns:repeat(4,1fr);gap:18px}}

.ticks li{position:relative;padding-block:14px;padding-inline:30px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink2)}
.ticks li::before{content:"";position:absolute;inset-inline-start:2px;top:21px;width:14px;height:8px;border-left:1.5px solid var(--blue);border-bottom:1.5px solid var(--blue);transform:rotate(-45deg)}

/* Quote strip: text + framed photos gliding right to left */
.quote-strip{background:var(--stone2);padding-block:72px;overflow:hidden}
.quote-strip__in{display:grid;gap:44px;--edge:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)))}
.quote-strip__copy{padding-inline:var(--edge)}
.quote-strip__title{color:var(--navy)}
.quote-strip__title em{display:block;font-style:italic}
.quote-strip__text{margin:22px 0 30px;color:var(--ink2);max-width:46ch;font-weight:300;font-size:17px;line-height:1.65}
.quote-strip__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.quote-strip__wa{font-size:15px;color:var(--navy);border-bottom:1px solid currentColor;padding-bottom:3px}
.quote-strip__wa:hover{color:var(--blue-d)}
.qloop{overflow:hidden;padding-bottom:14px;direction:ltr}
.qloop__track{display:flex;gap:40px;width:max-content;padding-inline-start:var(--edge);direction:ltr;animation:qloop var(--qloop-dur,36s) linear infinite}
[dir="rtl"] .qloop__track{animation-direction:reverse}
[dir="rtl"] .qloop__item{direction:rtl}
.qloop:hover .qloop__track,body.pce-on .qloop__track{animation-play-state:paused}
@keyframes qloop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.qloop__item{margin:0;width:200px;flex:none;display:flex;flex-direction:column;gap:26px}
.qloop__ph{position:relative;aspect-ratio:25/36}
.qloop__ph::before{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid color-mix(in srgb,var(--walnut) 45%,transparent);pointer-events:none}
.qloop__ph :is(img,video){position:relative;width:100%;height:100%;object-fit:cover;display:block}
.qloop__cap{font:300 italic 20px/1.3 var(--serif);color:var(--navy);padding-inline-end:10px}
@media (min-width:1024px){
  .quote-strip{padding-block:110px}
  .quote-strip.has-loop .quote-strip__in{grid-template-columns:calc(var(--edge) + 480px) minmax(0,1fr);gap:56px;align-items:center}
  .quote-strip.has-loop .quote-strip__copy{padding-inline-end:0}
  .quote-strip.has-loop .qloop{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 70px);mask-image:linear-gradient(90deg,transparent 0,#000 70px)}
  [dir="rtl"] .quote-strip.has-loop .qloop{-webkit-mask-image:linear-gradient(270deg,transparent 0,#000 70px);mask-image:linear-gradient(270deg,transparent 0,#000 70px)}
  .quote-strip.has-loop .qloop__track{padding-inline-start:40px}
  .qloop__item{width:250px}
  .qloop__cap{font-size:22px}
}
@media (prefers-reduced-motion:reduce){.qloop__track{animation:none}}
@media (prefers-reduced-motion:reduce){.pc-anim-force .qloop__track{animation:qloop var(--qloop-dur,36s) linear infinite!important}.pc-anim-force[dir="rtl"] .qloop__track{animation-direction:reverse!important}}

/* ==========================================================================
   Products
   ========================================================================== */
.crumbs{display:flex;flex-wrap:wrap;gap:10px;padding-block:22px 0;font-size:13px;color:var(--muted)}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--ink)}
.crumbs [aria-current]{color:var(--ink)}
.prod{display:grid;gap:36px;padding-block:24px 72px}
.prod__main{background:var(--stone)}
.prod__img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.prod__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.prod__thumb{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.prod__ph{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:linear-gradient(180deg,var(--stone2),var(--stone));color:var(--navy)}
.prod__ph span{font:300 clamp(28px,4vw,44px)/1.1 var(--serif)}
.prod__ph small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.prod__ph--sm span{font-size:24px}
.prod__title{font:300 clamp(40px,6vw,64px)/1 var(--serif);color:var(--navy);margin:6px 0 0}
.prod__lead{font-size:18px;line-height:1.6;color:var(--ink2);font-weight:300;margin:20px 0 28px;max-width:52ch}
.prod__label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.opts{margin:0;display:flex;flex-direction:column;gap:16px}
.opts__row dt{font-size:14px;font-weight:500;margin-bottom:8px}
.opts__row dd{margin:0}
.opts__chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.opts__chips li{padding:8px 14px;border:1px solid var(--line);background:#fff;font-size:14px}
.prod__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.enq-add{display:inline-flex;align-items:center;gap:10px;cursor:pointer;background:transparent}
.enq-add.is-added{background:var(--navy);border-color:var(--navy);color:#fff}
.prod__note{font-size:14px;color:var(--muted);margin-top:12px}
@media (min-width:1024px){.prod{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:72px;align-items:start}.prod__info{padding-top:12px;position:sticky;top:calc(var(--header-h) + 24px)}}
.pres__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;margin:0;padding:0;list-style:none}
@media (min-width:700px){.pres__list{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}}
.pres__item{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink2)}
.pres__item strong{font-weight:500;color:var(--ink);margin-top:8px}
.pres__sw{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:var(--stone2)}
.pres__sw span{width:46%;aspect-ratio:1.3/1;background:var(--sw);box-shadow:0 14px 26px -14px rgba(16,41,58,.45),inset 0 0 0 1px rgba(0,0,0,.06)}
.pres__sw--stone span{border-radius:2px 2px 10px 10px}
.cx{background:var(--stone2);padding-block:80px}
.cx__title em{display:block;font-style:italic}
.cx__grid{display:grid;gap:20px}
.cx__card{background:#fff;padding:32px 30px;display:flex;flex-direction:column;gap:14px}
.cx__card--dark{background:var(--navy);color:#F4F1EA}
.cx__name{font:300 30px/1.1 var(--serif);margin:0}
.cx__line{margin:0;font-size:15px;color:var(--ink2)}
.cx__card--dark .cx__line{color:#C9D2D8}
.cx__list{margin:4px 0 0;padding:16px 0 0 18px;border-top:1px solid var(--line);font-size:15px;line-height:1.9;color:var(--ink2)}
.cx__card--dark .cx__list{border-color:rgba(255,255,255,.2);color:#E6EBEE}
.cx__terms{margin:auto 0 0;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:14px}
.cx__card--dark .cx__terms{border-color:rgba(255,255,255,.2)}
.cx__terms div{display:flex;justify-content:space-between;gap:16px}
.cx__terms dt{color:var(--muted)}.cx__card--dark .cx__terms dt{color:#AEBAC2}
.cx__terms dd{margin:0;text-align:end}
@media (min-width:900px){.cx{padding-block:110px}.cx__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}}
.spec{display:grid;gap:36px}
.spec__earth{margin-top:28px;padding:22px 24px;background:var(--moss-l);display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--ink2);max-width:44ch}
.spec__table{margin:0;border-top:1px solid var(--line)}
.spec__table div{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.spec__table dt{color:var(--muted)}.spec__table dd{margin:0}
@media (min-width:1024px){.spec{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:80px}}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}
@media (min-width:900px){.pgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px}}
.pcard2{display:flex;flex-direction:column;gap:12px;color:var(--ink)}
.pcard2__ph{overflow:hidden;background:var(--stone)}
.pcard2__ph img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .6s}
.pcard2:hover .pcard2__ph img{transform:scale(1.04)}
.pcard2__h{font:300 22px/1.2 var(--serif);margin:0}
.pcard2__meta{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.range-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.range-nav a{display:inline-flex;gap:8px;padding:9px 16px;border:1px solid var(--line);font-size:14px;color:var(--ink)}
.range-nav a:hover{border-color:var(--ink)}
.range-nav span{color:var(--muted)}
.range{padding-top:48px;margin-top:48px;border-top:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 20px)}
.range:first-of-type{margin-top:0;border-top:0;padding-top:0}
.range__head{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.range__h{font:300 34px/1.1 var(--serif);color:var(--navy);margin:0}
.range__head p{margin:0;color:var(--ink2);max-width:60ch}
@media (min-width:900px){.range__head{flex-direction:row;justify-content:space-between;align-items:baseline;gap:40px}}
/* Enquiry list */
.enq-pill{position:fixed;z-index:39;inset-inline-start:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:8px;padding:12px 18px;background:var(--navy);color:#fff;font-size:14px;box-shadow:0 10px 24px -8px rgba(0,0,0,.4)}
.enq-pill:hover{color:#fff;background:var(--ink)}
.enq-pill[hidden]{display:none}
.enq-pill b{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;background:#fff;color:var(--navy);font-size:12px}
.enq-box{border:1px solid var(--line);background:var(--stone2);padding:18px 20px;margin-bottom:22px}
.enq-box p{margin:0 0 10px;font-size:14px;font-weight:500}
.enq-box ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.enq-box li{display:inline-flex;align-items:center;gap:6px;padding:6px 6px 6px 12px;background:#fff;border:1px solid var(--line);font-size:14px}
.enq-box button{border:0;background:none;cursor:pointer;font-size:18px;line-height:1;color:var(--muted);padding:2px 6px}

/* ==========================================================================
   Projects (success stories)
   ========================================================================== */
.pj-intro{display:grid;gap:36px;padding-block:64px 48px}
.pj-intro__text{font-size:18px;line-height:1.65;color:var(--ink2);font-weight:300;margin-top:20px;max-width:56ch}
.pj-stats{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-self:end}
.pj-stats dt{font:300 clamp(34px,4vw,46px)/1 var(--serif);color:var(--navy)}
.pj-stats dd{margin:8px 0 0;font-size:13px;color:var(--muted)}
@media (min-width:1024px){.pj-intro{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:80px;padding-block:96px 72px}}
.pj-feat{position:relative;min-height:560px;display:flex;align-items:flex-end;color:#fff;background:var(--navy);overflow:hidden}
.pj-feat__ph{position:absolute;inset:0}
.pj-feat__ph :is(img,video),.pj-feat__ph .pj-noimg{width:100%;height:100%;object-fit:cover;display:block}
.pj-feat::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,23,32,.85) 0%,rgba(11,23,32,.25) 60%,rgba(11,23,32,.3) 100%);pointer-events:none}
.pj-feat__in{position:relative;z-index:1;padding-block:120px 56px;display:flex;flex-direction:column;gap:16px}
.pj-feat__kicker{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:#E3CB98}
.pj-feat__title{font:300 clamp(44px,7vw,92px)/.98 var(--serif);margin:0;max-width:16ch}
.pj-feat__text{font-size:18px;line-height:1.6;color:#E6EBEE;font-weight:300;max-width:60ch}
.pj-feat__link{align-self:flex-start;margin-top:6px;color:#fff;border-bottom:1px solid #fff;padding-bottom:3px}
.pj-feat__link:hover{color:#E3CB98;border-color:#E3CB98}
@media (min-width:1024px){.pj-feat{min-height:700px}.pj-feat__in{padding-block:160px 80px}}
.pj-feat--page{min-height:620px}
@media (min-width:1024px){.pj-feat--page{min-height:760px}}
.pj-back{position:absolute;z-index:2;top:28px;inset-inline-start:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)));display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:14px}
[dir="rtl"] .pj-back svg{transform:scaleX(-1)}
.pj-noimg{background:linear-gradient(135deg,var(--navy),#1d3a4f)}
.pj-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0;padding:0;list-style:none}
.pj-chips li{padding:7px 12px;border:1px solid rgba(255,255,255,.45);font-size:14px}
.pj-chips--dark{margin-top:28px}.pj-chips--dark li{border-color:var(--line);background:#fff;color:var(--ink)}
.pj-grid{display:grid;gap:18px}
.pj-card{position:relative;display:block;min-height:420px;overflow:hidden;color:#fff;background:var(--navy)}
.pj-card>:is(img,video),.pj-card>.pj-noimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pj-card:hover>:is(img,video){transform:scale(1.03)}
.pj-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,23,32,.82),rgba(11,23,32,0) 65%)}
.pj-card__lbl{position:absolute;z-index:1;inset-inline:28px;bottom:26px;display:flex;flex-direction:column;gap:8px}
.pj-card__kicker{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#D5DCE0}
.pj-card__title{font:300 clamp(26px,3vw,34px)/1.08 var(--serif)}
.pj-card__text{font-size:14px;color:#D5DCE0;max-width:52ch}
.pj-card .tag-example{position:absolute;z-index:1;top:16px;inset-inline:auto 16px}
@media (min-width:900px){.pj-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.pj-card{min-height:500px}.pj-card:nth-child(4n+1),.pj-card:nth-child(4n+4){grid-column:span 2}}
.pj-groups__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}
.pj-groups__grid li{background:#fff;border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line);padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px;min-height:140px}
.pj-groups__grid strong{font:300 26px/1.1 var(--serif);color:var(--navy)}
.pj-groups__grid span{font-size:14px;line-height:1.55;color:var(--muted)}
.pj-clients{border-top:1px solid var(--line)}
.filters__n{margin-inline-start:6px;opacity:.6;font-size:12px}
.pj-logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}
.pj-logos li{background:#fff;border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line);height:132px;display:flex;align-items:center;justify-content:center;padding:22px 26px}
.pj-logos li[hidden]{display:none}
.pj-logos img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.62;mix-blend-mode:multiply;transition:filter .4s,opacity .4s}
.pj-logos li:hover img{filter:none;opacity:1}
.pj-logos__name{font:300 19px/1.2 var(--serif);color:var(--navy);text-align:center}
.pj-logos__note{margin-top:18px;font-size:12.5px;color:var(--muted)}
@media (min-width:640px){.pj-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:900px){.pj-logos{grid-template-columns:repeat(5,minmax(0,1fr))}.pj-logos li{height:150px}}
@media (min-width:1200px){.pj-logos{grid-template-columns:repeat(6,minmax(0,1fr))}}
.pj-facts{margin:0;background:var(--navy);color:#F4F1EA}
.pj-facts__in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pj-facts__in div{padding:22px 16px 22px 0;display:flex;flex-direction:column;gap:6px}
.pj-facts dt{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#AEBAC2}
.pj-facts dd{margin:0;font-size:16px}
@media (min-width:900px){.pj-facts__in{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.pj-facts__in div{padding:30px 24px 30px 0;border-inline-end:1px solid rgba(255,255,255,.15)}.pj-facts__in div+div{padding-inline-start:24px}.pj-facts__in div:last-child{border:0}}
/* Project case study: pull-quote lead (5/12) + brief / what we did (7/12) */
.pj-case__in{display:grid;gap:44px}
.pj-case__lead{border-top:1px solid var(--blue);padding-top:26px}
.pj-case__pull{font:300 clamp(28px,3.6vw,44px)/1.22 var(--serif);color:var(--navy);letter-spacing:-.005em;text-wrap:pretty;max-width:22ch}
.pj-case__blocks{display:grid}
.pj-case__block{padding-block:28px;border-top:1px solid var(--line)}
.pj-case__block:first-child{padding-top:0;border-top:0}
.pj-case__block:last-child{padding-bottom:0}
.pj-case__p{font:400 clamp(19px,1.9vw,22px)/1.55 var(--serif);color:var(--ink);max-width:58ch}
@media (min-width:1024px){
  .pj-case__in{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
  .pj-case__lead{grid-column:1/span 5;position:sticky;top:calc(var(--header-h) + 32px);align-self:start}
  .pj-case__blocks{grid-column:7/span 6}
  .pj-case__in--single .pj-case__lead,.pj-case__in--single .pj-case__blocks{grid-column:1/-1}
  .pj-case__in--single .pj-case__pull{max-width:30ch}
}
/* Supplied: product cards, item grid, gallery */
.pj-supplied__part+.pj-supplied__part{margin-top:56px}
.pj-supplied__h{font:500 12.5px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.pj-items{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.pj-items li{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;background:var(--pearl);border:1px solid var(--line);font-size:16px;line-height:1.5;color:var(--ink)}
.pj-items__ic{flex:none;color:var(--navy);margin-top:1px}
@media (min-width:600px){.pj-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media (min-width:1024px){.pj-items{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pj-gallery{display:grid;gap:16px}
.pj-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
@media (min-width:600px){.pj-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:900px){.pj-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
.pj-quote{background:var(--stone2);padding-block:88px;text-align:center}
.pj-quote figure{margin-inline:auto;max-width:900px}
.pj-quote blockquote{margin:0;font:300 italic clamp(26px,3.4vw,36px)/1.3 var(--serif);color:var(--navy)}
.pj-quote blockquote::before{content:"\201C";display:block;font-size:64px;line-height:.6;color:#C9C1B4;margin-bottom:18px;font-style:normal}
.pj-quote figcaption{margin-top:22px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pj-next{display:flex;flex-direction:column;gap:10px;padding-block:72px}
.pj-next a{font:300 clamp(34px,4.6vw,52px)/1.1 var(--serif);color:var(--navy)}
.pj-next a:hover{color:var(--blue-d)}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--navy);color:#DDE6EB;padding-block:64px calc(28px + env(safe-area-inset-bottom,0px));font-size:14px}
.site-footer__cols{display:grid;gap:36px}
.site-footer__logo .logo{height:auto;max-height:none;width:auto;max-width:200px;display:block}
.site-footer__brand p{margin-top:20px;max-width:32ch;opacity:.75}
.site-footer__h{font:500 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.site-footer li{margin-bottom:9px;opacity:.85}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.social{display:flex;gap:18px;margin-top:18px}
.site-footer__legal{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(255,255,255,.14);margin-top:48px;padding-top:22px;font-size:12.5px;opacity:.65}
@media (min-width:600px){.site-footer__cols{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){
  .site-footer{padding-top:80px}
  .site-footer__cols{grid-template-columns:1.3fr;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:36px}
  .site-footer__legal{flex-direction:row;justify-content:space-between;margin-top:60px}
}

/* WhatsApp button */
.whatsapp{position:fixed;z-index:40;inset-inline-end:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.4);transition:transform .2s}
.whatsapp:hover{transform:scale(1.06)}
.wa__dot{position:absolute;top:3px;inset-inline-end:3px;width:12px;height:12px;border-radius:50%;background:#9aa0a6;border:2px solid #fff}
.wa.is-online .wa__dot{background:#31d158}
.wa__card{position:fixed;z-index:41;inset-inline-end:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(340px,calc(100vw - 32px));background:#fff;color:var(--ink);box-shadow:0 24px 60px -20px rgba(16,41,58,.45);border-radius:14px;overflow:hidden;transform-origin:bottom right;animation:wa-in .22s ease}
[dir="rtl"] .wa__card{transform-origin:bottom left}
@keyframes wa-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.wa__head{display:flex;align-items:center;gap:12px;padding:16px 16px 14px;background:#075E54;color:#fff}
.wa__avatar{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#fff;overflow:hidden}
.wa__avatar img{width:34px;height:auto;max-height:34px;object-fit:contain}
.wa__avatar .logo-text{font-size:8px;color:var(--ink);letter-spacing:.05em}
.wa__title{font:500 16px/1.25 var(--sans);margin:0}
.wa__status{display:flex;align-items:center;gap:6px;margin:3px 0 0;font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.85)}
.wa__status::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#9aa0a6}
.wa.is-online .wa__status::before{background:#31d158}
.wa__x{margin-inline-start:auto;align-self:flex-start;width:32px;height:32px;margin-top:-6px;margin-inline-end:-6px;border:0;border-radius:50%;background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer}
.wa__x:hover{background:rgba(255,255,255,.15)}
.wa__text{margin:0;padding:16px;font-size:14.5px;line-height:1.55;color:var(--ink2);background:#efeae2}
.wa__btns{display:grid;gap:8px;padding:14px 16px 16px}
.wa__go{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border-radius:999px;background:#25D366;color:#fff;font-weight:500;font-size:14.5px;transition:background .2s}
.wa__go:hover{background:#1ebe5a}
@media (prefers-reduced-motion:reduce){.wa__card{animation:none}}

/* Newsletter band at the top of the footer */
.site-footer__news{display:grid;gap:20px;padding-bottom:40px;margin-bottom:44px;border-bottom:1px solid rgba(255,255,255,.14)}
.site-footer__news-title{font:300 clamp(26px,3.4vw,34px)/1.15 var(--serif);color:#fff;margin-bottom:8px}
.site-footer__news p{color:rgba(255,255,255,.72);max-width:48ch}
@media (min-width:900px){.site-footer__news{grid-template-columns:1fr 1.1fr;align-items:center;gap:48px}}
.pc-news-form{display:grid;gap:10px}
.pc-news-form__row{display:flex;gap:8px}
.pc-news-form__input{flex:1;min-width:0;min-height:50px;padding:0 16px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);color:#fff;font:inherit;font-size:15px}
.pc-news-form__input::placeholder{color:rgba(255,255,255,.55)}
.pc-news-form__input:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
.pc-news-form__btn{flex:none;min-height:50px;padding:0 22px;border:1px solid #fff;background:#fff;color:var(--ink);font:500 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.pc-news-form__btn:hover{background:transparent;color:#fff}
.pc-news-form__btn[disabled]{opacity:.6;cursor:default}
.pc-news-form__consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:rgba(255,255,255,.7);cursor:pointer}
.pc-news-form__consent input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--blue)}
.pc-news-form__msg{font-size:14px;color:#fff;min-height:1.2em}
.pc-news-form__msg.is-bad{color:#ffb4a9}
.pc-news-form__hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media (max-width:479px){.pc-news-form__row{flex-direction:column}}
.pc-notice{position:fixed;z-index:60;left:50%;top:calc(var(--header-h) + 16px);transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:14px 20px;background:var(--navy);color:#fff;box-shadow:0 18px 40px -18px rgba(0,0,0,.5);font-size:15px}

/* ==========================================================================
   Inner pages
   ========================================================================== */
.page-head{padding-block:56px 36px;border-bottom:1px solid var(--line);background:#fff}
.page-head__lead{margin-top:18px;max-width:56ch;color:var(--ink2);font-size:17px}
.page-head--center{text-align:center;padding-block:120px}
.page-head--center .h1,.page-head--center .page-head__lead{margin-inline:auto}
@media (min-width:1024px){.page-head{padding-block:90px 50px}}
.page-cover :is(img,video){width:100%;max-height:70svh;object-fit:cover}
/* Content written in the block editor: a readable column, wide and full-width blocks break out. */
.entry{padding-block:48px 80px;font-size:17px;line-height:1.7;color:var(--ink2)}
.entry{--edge:max(var(--gutter),(100% - var(--max))/2)}
.entry>*{width:min(720px,100% - 2*var(--gutter));margin-inline:var(--edge) auto}
.entry>*+*{margin-top:1.1em}
.entry>.alignwide{width:auto;margin-inline:var(--edge)}
.entry>.alignfull{width:100%;margin-inline:0}
.entry>.alignwide,.entry>.alignfull,.entry>.alignwide+*,.entry>.alignfull+*{margin-top:clamp(40px,6vw,72px)}
.entry>.alignfull:last-child{margin-bottom:-80px}
.entry>:first-child{margin-top:0}
.entry h2{font:300 clamp(28px,4vw,40px)/1.15 var(--serif);color:var(--ink);margin-top:1.6em}
.entry h3{font:400 24px/1.25 var(--serif);color:var(--ink);margin-top:1.4em}
.entry h2+*,.entry h3+*{margin-top:.6em}
.entry a:not(.wp-block-button__link){color:var(--blue-d);text-decoration:underline;text-underline-offset:3px}
.entry ul{list-style:disc;padding-inline-start:1.2em}
.entry ol{padding-inline-start:1.2em}
.entry :is(img,video){height:auto}
:where(.entry figure){margin:0}
.entry figure :is(img,video){width:100%}
.entry figcaption{margin-top:10px;font-size:14px;color:var(--muted)}
.entry blockquote{border-inline-start:2px solid var(--blue);padding-inline-start:22px;font:300 clamp(22px,2.6vw,28px)/1.35 var(--serif);color:var(--ink)}
.entry blockquote cite{display:block;margin-top:12px;font:400 14px/1.4 var(--sans);font-style:normal;color:var(--muted)}
.entry hr{border:0;border-top:1px solid var(--line)}
.entry table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.entry th,.entry td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:start}
.entry__date{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}

/* Buttons from the editor look like the site's buttons */
.entry .wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px}
.entry .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:#fff;font:500 12.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .2s,color .2s}
.entry .wp-block-button__link:hover{background:transparent;color:var(--ink)}
.entry .is-style-outline .wp-block-button__link{background:transparent;color:var(--ink)}
.entry .is-style-outline .wp-block-button__link:hover{background:var(--ink);color:#fff}
.entry .pc-btn-blue .wp-block-button__link{background:var(--blue);border-color:var(--blue);color:#fff}
.entry .pc-btn-blue .wp-block-button__link:hover{background:var(--blue-d);border-color:var(--blue-d);color:#fff}

/* Pearl Coast patterns */
.pc-kicker{font-size:12px!important;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.entry .pc-kicker+h2{margin-top:.4em}
.entry .pc-lead{font-size:clamp(19px,2vw,22px);line-height:1.55;color:var(--ink)}
.entry .wp-block-columns{display:flex;flex-wrap:wrap;gap:28px 40px}
.entry .wp-block-column{flex:1 1 240px;min-width:0}
.entry .wp-block-column>*+*{margin-top:1em}
.entry .wp-block-column>h2:first-child,.entry .wp-block-column>h3:first-child{margin-top:0}
.pc-split .wp-block-column{flex-basis:320px}
.pc-points .wp-block-column{border-top:1px solid var(--line);padding-top:22px}
.pc-points h3{font-size:22px}
.pc-facts{border-block:1px solid var(--line);padding-block:28px}
.pc-facts .wp-block-column{flex-basis:140px}
.entry .pc-fact-value{font:300 clamp(30px,3.6vw,44px)/1.05 var(--serif);color:var(--ink)}
.entry .pc-fact-value+.pc-fact-label{margin-top:8px}
.pc-fact-label{font-size:14px;color:var(--muted)}
.pc-photos .wp-block-column{flex-basis:200px}
.pc-photos :is(img,video){aspect-ratio:4/3;object-fit:cover}
.pc-band{padding:clamp(56px,8vw,96px) var(--gutter)}
.pc-band>*{max-width:var(--max);margin-inline:auto}
.pc-band>*+*{margin-top:1em}
.pc-band h2{margin-top:0}
.pc-band--stone{background:var(--stone2)}
.pc-band--navy{background:var(--navy);color:rgba(255,255,255,.8)}
.pc-band--navy h2,.pc-band--navy h3{color:#fff}
.pc-band--navy .pc-kicker{color:rgba(255,255,255,.6)}
.pc-band--navy .wp-block-button__link{background:#fff;border-color:#fff;color:var(--ink)}
.pc-band--navy .wp-block-button__link:hover{background:transparent;color:#fff}
.pc-band--navy .is-style-outline .wp-block-button__link{background:transparent;border-color:rgba(255,255,255,.8);color:#fff}
.pc-band--navy .is-style-outline .wp-block-button__link:hover{background:#fff;color:var(--ink)}
.has-navy-background-color{background-color:var(--navy)}.has-navy-color{color:var(--navy)}
.has-blue-background-color{background-color:var(--blue)}.has-blue-color{color:var(--blue)}
.has-ink-background-color{background-color:var(--ink)}.has-ink-color{color:var(--ink)}
.has-stone-background-color{background-color:var(--stone2)}.has-stone-color{color:var(--stone2)}
.has-pearl-background-color{background-color:var(--pearl)}.has-pearl-color{color:var(--pearl)}
.has-moss-background-color{background-color:var(--moss)}.has-moss-color{color:var(--moss)}
.has-white-background-color{background-color:#fff}.has-white-color{color:#fff}

/* News */
.post-list{display:grid;gap:40px 28px}
.post-card__link{display:flex;flex-direction:column;height:100%}
.post-card__ph{aspect-ratio:16/10;overflow:hidden;margin-bottom:18px;background:var(--stone)}
.post-card__ph :is(img,video){width:100%;height:100%;object-fit:cover;transition:transform .6s}
.post-card__link:hover .post-card__ph :is(img,video){transform:scale(1.03)}
.post-card__noimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--stone2),var(--stone))}
.post-card__meta{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.post-card__title{font:400 clamp(22px,2.2vw,26px)/1.2 var(--serif);color:var(--ink);margin-bottom:10px;text-wrap:balance}
.post-card__text{color:var(--ink2);font-size:15.5px;line-height:1.6}
.post-card__more{display:inline-block;margin-top:14px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;align-self:flex-start}
@media (min-width:768px){.post-list{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){
  .post-list{grid-template-columns:repeat(3,1fr)}
  .post-card--big{grid-column:1/-1}
  .post-card--big .post-card__link{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:center}
  .post-card--big .post-card__ph{margin-bottom:0}
  .post-card--big .post-card__title{font-size:clamp(30px,3vw,40px)}
}
a.filters__btn{display:inline-flex;align-items:center}
.empty-note{padding-block:24px;color:var(--muted)}
.post-head{padding-block:40px 32px;background:#fff}
.post-head__in>*{max-width:720px}
.post-head .post-head__back{max-width:none}
.post-head__back{display:inline-flex;gap:8px;align-items:center;min-height:44px;margin-bottom:18px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.post-head__back:hover{color:var(--ink)}
.post-head .h1{font-size:clamp(34px,5.4vw,56px)}
.post-head__lead{margin-top:18px;font-size:clamp(18px,1.8vw,21px);line-height:1.55;color:var(--ink2)}
@media (min-width:1024px){.post-head{padding-block:64px 44px}}
.post-cover{padding-inline:0}
.post-cover :is(img,video){width:100%;max-height:72svh;object-fit:cover}
@media (min-width:768px){.post-cover{padding-inline:var(--gutter)}}
.pager{padding-bottom:64px}
.pager .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pager .page-numbers{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--line)}
.pager .current{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ==========================================================================
   Inner page layouts
   ========================================================================== */
.section--tight{padding-block:56px}
@media (min-width:1024px){.section--tight{padding-block:90px}}
.note{font-size:13px;color:var(--muted);margin-top:16px;max-width:60ch}

/* Page intro (Supply, Projects, Our Brands, About) */
.page-intro{background:#fff;border-bottom:1px solid var(--line);padding-block:48px 36px}
.page-intro__in{display:grid;gap:18px}
.page-intro__text{font-size:17px;line-height:1.6;color:var(--ink2);max-width:46ch}
@media (min-width:900px){.page-intro{padding-block:80px 52px}.page-intro__in{grid-template-columns:1.3fr 1fr;align-items:end;gap:60px}}

/* Full-width photo hero with coloured fade (brand pages) */
.phero{--tint:228,232,224;position:relative;display:flex;align-items:flex-end;min-height:min(620px,86svh);overflow:hidden;background:rgb(var(--tint));color:var(--ink)}
.phero--cloud{--tint:241,243,244}.phero--linen{--tint:245,240,232}.phero--char{--tint:43,45,46}.phero--navy{--tint:16,41,58}
.phero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(var(--tint),.97) 0%,rgba(var(--tint),.88) 42%,rgba(var(--tint),.1) 78%)}
.phero__in{position:relative;z-index:2;padding-block:120px 48px}
.phero__kicker{margin-bottom:22px}
.phero__kicker .wm--xl{font-size:clamp(30px,6vw,52px)}
.phero__kicker .wm--logo :is(img,video){height:1.35em}
.phero__title{font:300 clamp(38px,7vw,64px)/1.04 var(--serif);letter-spacing:-.01em;max-width:14ch;text-wrap:balance}
.phero__text{font-size:16px;color:var(--ink2);margin-top:14px;max-width:44ch}
.phero__ctas{display:flex;flex-direction:column;gap:12px;margin-top:28px}
.phero--dark{color:#fff}.phero--dark .phero__text{color:rgba(255,255,255,.8)}
@media (min-width:600px){.phero__ctas{flex-direction:row;flex-wrap:wrap}}
@media (min-width:1024px){
  .phero{min-height:620px}
  .phero::after{background:linear-gradient(90deg,rgba(var(--tint),.97) 0%,rgba(var(--tint),.86) 36%,rgba(var(--tint),0) 64%)}
  .phero__in{padding-block:140px 84px}
}
@media (min-width:1024px){[dir=rtl] .phero::after{background:linear-gradient(270deg,rgba(var(--tint),.97) 0%,rgba(var(--tint),.86) 36%,rgba(var(--tint),0) 64%)}}

/* In-page links under a hero */
.subnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:var(--header-h);z-index:10}
.admin-bar .subnav{top:calc(var(--header-h) + 46px)}
@media (min-width:783px){.admin-bar .subnav{top:calc(var(--header-h) + 32px)}}
.subnav__in{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.subnav__in::-webkit-scrollbar{display:none}
.subnav a{display:inline-flex;align-items:center;min-height:52px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent}
.subnav a:hover{color:var(--ink);border-bottom-color:var(--ink)}
[id]{scroll-margin-top:calc(var(--header-h) + 64px)}

/* Story */
.story{padding-block:64px;background:var(--pearl)}
.story__in{display:grid;gap:24px}
.story__body p{font:300 clamp(19px,2.4vw,21px)/1.6 var(--serif);color:var(--ink2);max-width:40ch}
.story__body p+p{margin-top:16px}
@media (min-width:1024px){.story{padding-block:110px}.story__in{grid-template-columns:1fr 1.3fr;gap:90px}}

/* Collections */
.coll{display:grid;gap:32px 18px}
.coll__ph{aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.coll__ph :is(img,video){width:100%;height:100%;object-fit:cover;transition:transform .6s}
.coll__item:hover .coll__ph :is(img,video){transform:scale(1.03)}
.coll__h{font:500 12.5px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:16px}
.coll__item p{font-size:14.5px;color:var(--muted);margin-top:4px}
@media (min-width:600px){.coll{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.coll{grid-template-columns:repeat(3,1fr)}}

/* Specs / range */
.details{display:grid;gap:28px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips li{border:1px solid var(--line);background:var(--pearl);padding:12px 18px;font-size:14px}
@media (min-width:1024px){.details{grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}}

/* Earth band on brand pages */
.earth-band{background:var(--moss);color:#fff;padding-block:40px}
.earth-band__in{display:grid;gap:14px;align-items:center}
.earth-band .wm,.earth-band .wm-ea{color:#fff}
.earth-band .wm--logo :is(img,video){filter:brightness(0) invert(1)}
.earth-band p{max-width:60ch;opacity:.92}
@media (min-width:900px){.earth-band__in{grid-template-columns:auto 1fr auto;gap:40px}}

/* Enquiry band */
.cta-band{background:var(--stone2);padding-block:56px}
.cta-band__in{display:grid;gap:24px;align-items:center}
.cta-band p{margin-top:12px;color:var(--ink2);max-width:52ch}
@media (min-width:900px){.cta-band{padding-block:80px}.cta-band__in{grid-template-columns:1fr auto;gap:60px}}

/* Our Brands quadrants */
.quads{display:grid}
.quad{position:relative;display:flex;align-items:flex-end;min-height:420px;overflow:hidden;color:#fff;background:var(--navy)}
.quad__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.quad:hover .quad__img{transform:scale(1.03)}
.quad::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,22,27,.75),rgba(14,22,27,.05) 62%)}
.quad__in{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:28px var(--gutter)}
.quad .wm{color:#fff}
.quad .wm--logo :is(img,video){filter:brightness(0) invert(1)}
.quad__line{font:300 clamp(22px,3vw,28px)/1.2 var(--serif)}
@media (min-width:768px){.quads{grid-template-columns:1fr 1fr}.quad{min-height:min(560px,60vw)}.quad__in{padding:40px}}
.earth-bar{background:var(--moss);color:#fff;padding-block:22px}
.earth-bar__in{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;align-items:center;font-size:14px}
.earth-bar .wm-ea{color:#fff}

/* Supply: tagged room */
.room{padding-block:48px 0}
.room__grid{display:grid;background:#fff;border:1px solid var(--line)}
.room__ph{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.room__ph :is(img,video){width:100%;height:100%;object-fit:cover}
.hs{position:absolute;transform:translate(-50%,-50%);z-index:2;width:44px;height:44px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font:inherit}
.hs__n{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ink);font-size:12px;font-weight:500;box-shadow:0 0 0 6px rgba(255,255,255,.3);transition:background .2s,color .2s,transform .2s,box-shadow .2s}
.hs__n::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,255,255,.8);animation:hs-pulse 2.6s ease-out infinite;pointer-events:none}
@keyframes hs-pulse{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.7);opacity:0}}
.hs:hover .hs__n,.hs:focus-visible .hs__n,.hs.is-active .hs__n{background:var(--ink);color:#fff;transform:scale(1.12);box-shadow:0 0 0 8px rgba(255,255,255,.45)}
.hs:focus-visible{outline:none}
.hs:focus-visible .hs__n{outline:2px solid #fff;outline-offset:4px}
.hs__label{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%,6px);padding:7px 12px;background:var(--ink);color:#fff;font-size:13px;line-height:1.2;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility 0s .2s;pointer-events:none}
.hs--below .hs__label{bottom:auto;top:calc(100% + 4px);transform:translate(-50%,-6px)}
.hs--start .hs__label{left:0;transform:translate(0,6px)}
.hs--end .hs__label{left:auto;right:0;transform:translate(0,6px)}
.hs--below.hs--start .hs__label,.hs--below.hs--end .hs__label{transform:translate(0,-6px)}
.hs:hover .hs__label,.hs:focus-visible .hs__label,.hs.is-active .hs__label{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .2s,transform .2s}
.hs--start:hover .hs__label,.hs--start.is-active .hs__label,.hs--start:focus-visible .hs__label,.hs--end:hover .hs__label,.hs--end.is-active .hs__label,.hs--end:focus-visible .hs__label{transform:translate(0,0)}
.room__ph.has-active .hs:not(.is-active):not(:hover) .hs__n{opacity:.75}
@media (prefers-reduced-motion:reduce){.hs__n::after{animation:none;opacity:0}}
.room__list{padding:28px 24px}
.room__items{list-style:none;padding:0;margin:0 0 24px;border-top:1px solid var(--line)}
.room__items li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:13px 10px;margin-inline:-10px;border-bottom:1px solid var(--line);font-size:15px;cursor:pointer;transition:background .2s}
.room__items li:hover,.room__items li.is-active{background:var(--stone2)}
.room__n{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;color:var(--muted);transition:background .2s,color .2s}
.room__items li.is-active .room__n{background:var(--ink);color:#fff}
.room__items li.is-active .room__name{color:var(--ink);font-weight:500}
.room__tag{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (min-width:1024px){.room{padding-top:72px}.room__grid{grid-template-columns:1.7fr 1fr}.room__ph{aspect-ratio:auto;min-height:540px}.room__list{padding:36px 32px}}
.mosaic--supply .tile--s1{grid-column:span 2}
.mosaic--supply .tile--s8{grid-column:span 2}
.mosaic--supply .tile__lbl h2{font:400 clamp(20px,3vw,26px)/1.15 var(--serif)}
.mosaic--supply .tile:not(.tile--s1):not(.tile--s8) .tile__lbl p{display:none}
.steps{list-style:none;padding:0;display:grid;gap:0;border-top:1px solid var(--ink)}
.steps li{padding:18px 0;border-bottom:1px solid var(--line)}
.steps h3{font:400 20px/1.2 var(--serif)}
.steps h3 span{color:var(--muted);margin-inline-end:6px}
.steps p{font-size:13.5px;color:var(--muted);margin-top:4px}
@media (min-width:768px){.steps{grid-template-columns:repeat(4,1fr);column-gap:24px}}
@media (min-width:1200px){.steps{grid-template-columns:repeat(7,1fr);column-gap:16px}.steps li{border-bottom:0}}

/* Projects */
.filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:24px;padding-bottom:4px}
.filters__btn{flex:none;min-height:44px;padding:0 18px;border:1px solid var(--line);background:#fff;font-size:13.5px;cursor:pointer}
.filters__btn.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.projects--list .pcard{min-height:360px}
.projects--list .pcard h2{font:300 clamp(26px,3.6vw,34px)/1.1 var(--serif)}
.pcard[hidden]{display:none}
.tag-example{position:absolute;z-index:3;top:18px;inset-inline-start:18px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border:1px solid #9A6B2F;color:#9A6B2F;background:#FFF8EC}
.tag-example--inline{position:static;display:inline-block;margin-inline-start:8px;vertical-align:middle}
.empty-note{font-size:17px;color:var(--ink2);max-width:52ch;padding:24px;border:1px dashed var(--line);background:#fff}
.case{display:grid;gap:32px}
.case__facts{display:grid;border-top:1px solid var(--line)}
.case__facts div{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.case__facts dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.case__facts dd{font-size:16px;line-height:1.55}
.entry--flush{padding-block:0}
@media (min-width:768px){.case__facts div{grid-template-columns:200px 1fr;gap:24px}}
@media (min-width:1024px){.case{grid-template-columns:1.1fr 1fr;gap:60px;align-items:start}}

/* Earth page */
.earth-hero{display:grid;background:var(--moss-l)}
.earth-hero__txt{display:flex;align-items:flex-end;padding:48px var(--gutter)}
.earth-hero__in{max-width:560px;display:grid;gap:20px}
.earth-hero__grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:clamp(150px,30vw,280px)}
.mat{position:relative;overflow:hidden}
.mat :is(img,video){position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mat__lbl{position:absolute;z-index:2;inset-inline-start:12px;bottom:10px;font-size:11px;letter-spacing:.04em;color:rgba(0,0,0,.6)}
.tx-wood .mat__lbl{color:rgba(255,255,255,.75)}
.tx-wood{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='400'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .09' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .29 0 0 0 0 .2 0 0 0 1.2 -.2'/%3E%3C/filter%3E%3Crect width='600' height='400' filter='url(%23w)'/%3E%3C/svg%3E") center/cover,linear-gradient(160deg,#7A5A42,#4A3526)}
.tx-terry{background-color:#F4F4F2;background-image:radial-gradient(circle at 50% 50%,#fff 0 38%,transparent 42%),radial-gradient(circle at 50% 50%,#E3E3DF 0 45%,transparent 50%);background-size:9px 9px,9px 9px;background-position:0 0,4.5px 4.5px}
.tx-paper{background:#D8CDB9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .45 0 0 0 0 .4 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
.tx-alu{background:linear-gradient(115deg,#C8CCCF 0%,#F3F4F5 38%,#AEB4B8 60%,#E5E7E8 100%)}
@media (min-width:1024px){.earth-hero{grid-template-columns:1fr 1fr;min-height:560px}.earth-hero__txt{padding:0 72px 80px var(--gutter)}.earth-hero__grid{grid-auto-rows:1fr}}
.principles{display:grid;gap:0;border-top:1px solid rgba(0,0,0,.12);margin-top:48px}
.principles div{padding:18px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.principles h2{font:400 19px/1.25 var(--serif);margin-bottom:6px}
.principles p{font-size:14px;color:var(--ink2)}
@media (min-width:768px){.principles{grid-template-columns:1fr 1fr;column-gap:32px}}
@media (min-width:1200px){.principles{grid-template-columns:repeat(5,1fr);column-gap:18px}.principles div{border-bottom:0}}

/* About */
/* About – Leadership cards (from the Count-up plugin): photo and text centred, no quote mark */
#leadership .pcx-ld__c{align-items:center;text-align:center}
#leadership .pcx-ld__q{margin-top:26px}
#leadership .pcx-ld__q:before{content:none;display:none}
#leadership .pcx-ld{align-items:center}
#leadership .pcx-ld__c--owner{position:relative;border:1px solid #B08D57;background:linear-gradient(180deg,#fff 0%,#FBF8F1 100%);box-shadow:0 22px 50px rgba(15,42,61,.10)}
#leadership .pcx-ld__c--owner::before{content:"";position:absolute;inset:8px;border:1px solid rgba(176,141,87,.35);pointer-events:none}
#leadership .pcx-ld__c--owner .pcx-ld__ph{width:124px;height:124px;box-shadow:0 0 0 4px #fff,0 0 0 6px #B08D57,0 10px 24px rgba(15,42,61,.18)}
#leadership .pcx-ld__c--owner .pcx-ld__q{margin-top:28px}
@media (min-width:900px){
  #leadership .pcx-ld__c:nth-child(2){order:1}
  #leadership .pcx-ld__c--owner{order:2;padding-block:44px 40px;transform:translateY(-10px)}
  #leadership .pcx-ld__c--owner:hover{transform:translateY(-14px)}
  #leadership .pcx-ld__c:nth-child(3){order:3}
}

/* About – Our story (editorial) */
.ab-story{background:var(--pearl);padding-block:72px 64px}
.ab-story__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;max-width:980px}
.ab-story__title{font:300 clamp(40px,7vw,84px)/1.02 var(--serif);color:var(--navy);margin:0;max-width:14ch}
.ab-story__lead{font:300 clamp(20px,2.4vw,26px)/1.5 var(--serif);color:var(--ink2);max-width:40ch;margin:0}
.ab-figs{display:grid;margin-top:56px;margin-bottom:0}
.ab-figs div{border-top:1px solid var(--line);padding:28px 0;display:flex;flex-direction:column;gap:10px}
.ab-figs dt{font:300 clamp(44px,6vw,60px)/1 var(--serif);color:var(--navy)}
.ab-figs dd{margin:0;font-size:16px;line-height:1.65;color:var(--ink2);max-width:36ch}
.ab-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px}
.ab-strip__ph{overflow:hidden;background:var(--stone)}
.ab-strip__ph :is(img,video){display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover}
.ab-strip__ph:first-child{grid-column:1/-1}
.ab-strip__ph:first-child :is(img,video){aspect-ratio:16/10}
.ab-cols{display:grid;gap:40px;margin-top:64px}
.ab-cols .kicker{margin-bottom:12px}
.ab-leaders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.ab-leaders li{display:flex;flex-direction:column;gap:2px}
.ab-leaders strong{font:300 clamp(24px,2.6vw,30px)/1.2 var(--serif);color:var(--navy)}
.ab-leaders span{font-size:14px;color:var(--muted)}
.ab-cols__text{font-size:17px;line-height:1.7;color:var(--ink2);max-width:46ch}
.ab-promise{background:var(--navy);color:#F4F1EA;padding-block:88px;text-align:center}
.ab-promise .container{display:flex;flex-direction:column;align-items:center;gap:20px}
.ab-promise__text{font:300 italic clamp(28px,4vw,46px)/1.22 var(--serif);max-width:24ch;margin:0}
@media (min-width:900px){
  .ab-story{padding-block:130px 110px}
  .ab-figs{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:80px}
  .ab-figs div{padding:36px 40px}
  .ab-figs div:first-child{padding-inline-start:0}
  .ab-figs div+div{border-inline-start:1px solid var(--line)}
  .ab-strip{grid-template-columns:2fr 1fr 1fr;gap:16px;height:440px;margin-top:20px}
  .ab-strip__ph:first-child{grid-column:auto}
  .ab-strip__ph :is(img,video),.ab-strip__ph:first-child :is(img,video){aspect-ratio:auto;height:440px}
  .ab-cols{grid-template-columns:1fr 1fr;gap:80px;margin-top:100px}
  .ab-promise{padding-block:110px}
}

.about-cover :is(img,video){width:100%;height:clamp(240px,48vw,560px);object-fit:cover}
.facts--band{background:#fff}
.caps--4{border-top:0;padding-top:0}
@media (min-width:1024px){.caps--4{grid-template-columns:repeat(4,1fr)}}

/* Quote form */
.quote{padding-block:48px 72px;background:var(--pearl)}
.quote__grid{display:grid;gap:40px}
.quote__intro .ticks{margin-top:24px}
.quote__contact{margin-top:28px;display:grid;gap:8px;font-size:15px}
.quote__contact span{display:inline-block;min-width:110px;color:var(--muted)}
.quote__form{background:#fff;border:1px solid var(--line);padding:24px}
@media (min-width:1024px){.quote{padding-block:90px 110px}.quote__grid{grid-template-columns:1fr 1.25fr;gap:72px;align-items:start}.quote__form{padding:40px}.quote__intro{position:sticky;top:calc(var(--header-h) + 32px)}}
.form{display:grid;gap:20px}
.form__row{display:grid;gap:20px}
@media (min-width:600px){.form__row{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:6px;border:0;padding:0;margin:0;min-width:0}
.field label,.field legend{font-size:14px;font-weight:500}
.field legend{margin-bottom:10px;padding:0}
.req{color:#B3452F}
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid #C9C6C0;border-radius:0;background:#fff;font:400 16px/1.4 var(--sans);color:var(--ink);appearance:none}
.field select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231D2327' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center;padding-inline-end:40px}
[dir=rtl] .field select{background-position:left 14px center}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
.has-err input,.has-err textarea{border-color:#B3452F}
.field input[type=date]{display:block;line-height:1.4;min-width:0}
.field input[type=date]::-webkit-date-and-time-value{text-align:start}
.field__err{font-size:13.5px;color:#B3452F}
.field__hint{font-size:13px;color:var(--muted)}
.checks{display:grid;gap:4px}
@media (min-width:600px){.checks{grid-template-columns:1fr 1fr;column-gap:16px}}
.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:400;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--blue);flex:none}
.file{position:relative;display:flex;align-items:center;gap:14px;min-height:54px;padding:6px;border:1px dashed #C9C6C0;background:var(--pearl);cursor:pointer}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.file__btn{flex:none;padding:10px 16px;background:var(--ink);color:#fff;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.file__name{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file:focus-within{outline:2px solid var(--blue)}
.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none}
.btn--wide{width:100%;min-height:54px}
.btn.is-busy{opacity:.6;pointer-events:none}
.form-alert{padding:14px 16px;background:#FBEDEA;border-inline-start:3px solid #B3452F;color:#7A2A1C;font-size:15px}
.form-done{display:grid;gap:18px;justify-items:start;padding-block:24px}
.form-done p{color:var(--ink2);font-size:17px;max-width:44ch}

/* ==========================================================================
   Landing pages (1.10.0): product categories, industries, hubs
   ========================================================================== */
.lp-hero{background:var(--stone2);border-bottom:1px solid var(--line)}
.lp-hero__in{display:grid;gap:32px;padding-block:40px 48px}
.lp-hero__txt{display:flex;flex-direction:column;align-items:flex-start}
.lp-hero .h1{font-size:clamp(34px,5.4vw,58px);max-width:18ch}
.lp-hero__text{font-size:17px;line-height:1.65;color:var(--ink2);max-width:52ch;margin-top:22px}
.lp-hero__ctas{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.lp-hero__ph{margin:0;overflow:hidden;background:var(--stone);aspect-ratio:4/3}
.lp-hero__ph :is(img,video){width:100%;height:100%;object-fit:cover}
@media (min-width:1024px){.lp-hero__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:center;padding-block:72px}.lp-hero__ph{aspect-ratio:5/4}}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px;font-size:13px;color:var(--muted)}
.crumbs a{border-bottom:1px solid transparent}
.crumbs a:hover{color:var(--ink);border-bottom-color:currentColor}
.crumbs [aria-current]{color:var(--ink2)}
/* Range items: photo cards, or numbered text items when there is no photo */
.lp-range{align-items:start}
.lp-range__item--text{border-top:1px solid var(--ink);padding-top:18px}
.lp-range__item--text .coll__h{margin-top:12px}
.lp-range__n{display:block;font:300 34px/1 var(--serif);color:var(--navy)}
@media (min-width:1024px){.lp-range:not(:has(.coll__ph)){grid-template-columns:repeat(4,1fr)}}
.story.section--white{background:#fff}
/* Related brand card */
.lp-brand{background:var(--stone);padding-block:44px}
.lp-brand__in{display:grid;gap:14px;align-items:center}
.lp-brand p{max-width:56ch;color:var(--ink2);font-size:16px}
@media (min-width:900px){.lp-brand__in{grid-template-columns:auto 1fr auto;gap:48px}}
/* FAQ accordion */
.lp-faq{display:grid;gap:28px}
@media (min-width:1024px){.lp-faq{grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}}
.faq{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{position:relative;display:block;list-style:none;cursor:pointer;padding-block:22px;padding-inline:0 44px;font:400 clamp(19px,2vw,22px)/1.4 var(--serif);color:var(--ink)}
.faq__q::-webkit-details-marker{display:none}
.faq__q::before,.faq__q::after{content:"";position:absolute;inset-inline-end:8px;top:50%;width:16px;height:1.5px;background:var(--blue);transition:transform .3s}
.faq__q::after{transform:rotate(90deg)}
.faq__item[open] .faq__q::after{transform:rotate(0)}
.faq__q:hover{color:var(--navy)}
.faq__a{padding-block:0 24px;padding-inline:0 44px}
.faq__a p{font-size:16px;line-height:1.7;color:var(--ink2);max-width:62ch}
/* Industry: what we supply */
.lp-supply{display:grid;gap:0;border-top:1px solid var(--line)}
.lp-supply li{border-bottom:1px solid var(--line)}
.lp-supply__item{display:grid;grid-template-columns:auto 1fr;column-gap:20px;row-gap:6px;padding-block:24px;color:var(--ink);height:100%}
.lp-supply__n{grid-row:span 3;font:300 22px/1.3 var(--serif);color:var(--muted)}
.lp-supply__h{font:300 clamp(22px,2.4vw,28px)/1.2 var(--serif);margin:0}
.lp-supply__text{font-size:16px;color:var(--ink2)}
.lp-supply .link{justify-self:start;margin-top:8px}
a.lp-supply__item:hover .lp-supply__h{color:var(--blue-d)}
@media (min-width:768px){.lp-supply{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}
@media (min-width:1280px){.lp-supply{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Industry: related projects – fewer than four cards */
@media (min-width:900px){
  .lp-projects--1{grid-template-columns:1fr}.lp-projects--1 .pj-card{grid-column:auto}
  .lp-projects--2{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-projects--2 .pj-card{grid-column:auto}
  .lp-projects--3 .pj-card{grid-column:auto}
}
/* Hub cards */
.lp-cards{display:grid;gap:36px 20px}
.lp-card{display:flex;flex-direction:column;color:var(--ink)}
.lp-card__ph{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.lp-card__ph :is(img,video){width:100%;height:100%;object-fit:cover;transition:transform .6s}
.lp-card:hover .lp-card__ph :is(img,video){transform:scale(1.03)}
.lp-card__body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:18px}
.lp-card__h{font:300 clamp(24px,2.4vw,30px)/1.15 var(--serif)}
.lp-card__text{font-size:16px;color:var(--ink2)}
.lp-card .link{margin-top:6px}
@media (min-width:600px){.lp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.lp-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 28px}}

/* ---------------------------------------------------------------- motion
   html.pc-anim is set in <head> (inc/motion.php); main.js reveals each element
   as it scrolls into view (.a-in). pc-anim-off = live editor is open.
   --a-dur is set per element (text and photo durations are separate). */
.pc-anim:not(.pc-anim-off) #main :is(h1,h2,h3,h4,h5,h6,p,blockquote,figcaption,li,dt,dd,.kicker,.btn,.wp-block-button,img,video):not(.a-in):not(form *):not(.a-live *){opacity:0}
.pc-anim:not(.pc-anim-off) #main [data-a]{--a-e:cubic-bezier(.16,1,.3,1);transition:opacity var(--a-dur,1.2s) ease,transform var(--a-dur,1.2s) var(--a-e),filter var(--a-dur,1.2s) ease,clip-path var(--a-dur,1.2s) cubic-bezier(.77,0,.18,1);transition-delay:var(--a-sd,0s)}
.pc-anim:not(.pc-anim-off) #main [data-a="fade-up"]:not(.a-in){transform:translateY(70px)}
.pc-anim:not(.pc-anim-off) #main [data-a="fade-down"]:not(.a-in){transform:translateY(-70px)}
.pc-anim:not(.pc-anim-off) #main [data-a="from-left"]:not(.a-in){transform:translateX(-110px)}
.pc-anim:not(.pc-anim-off) #main [data-a="from-right"]:not(.a-in){transform:translateX(110px)}
.pc-anim:not(.pc-anim-off) #main [data-a="zoom-in"]:not(.a-in){transform:scale(.7)}
.pc-anim:not(.pc-anim-off) #main [data-a="zoom-out"]:not(.a-in){transform:scale(1.3)}
.pc-anim:not(.pc-anim-off) #main [data-a="zoom"]:not(.a-in){transform:scale(1.25)}
.pc-anim:not(.pc-anim-off) #main [data-a="bounce"]{--a-e:cubic-bezier(.34,1.8,.5,1)}
.pc-anim:not(.pc-anim-off) #main [data-a="bounce"]:not(.a-in){transform:translateY(90px) scale(.92)}
.pc-anim:not(.pc-anim-off) #main [data-a="flip"]:not(.a-in){transform:perspective(900px) rotateX(-75deg);transform-origin:50% 0}
.pc-anim:not(.pc-anim-off) #main [data-a="blur"]:not(.a-in){filter:blur(18px);transform:scale(1.04)}
.pc-anim:not(.pc-anim-off) #main :is([data-a="reveal"],[data-a="reveal-up"]){clip-path:inset(0 0 0 0)}
.pc-anim:not(.pc-anim-off) #main [data-a="reveal"]:not(.a-in){opacity:1;clip-path:inset(0 100% 0 0)}
[dir="rtl"].pc-anim:not(.pc-anim-off) #main [data-a="reveal"]:not(.a-in){clip-path:inset(0 0 0 100%)}
.pc-anim:not(.pc-anim-off) #main [data-a="reveal-up"]:not(.a-in){opacity:1;clip-path:inset(100% 0 0 0)}

/* Heading text effects: the heading stays, its words or letters animate. */
.pc-anim:not(.pc-anim-off) #main :is(h1,h2,h3)[data-a^="fx-"]{opacity:1}
.a-u{display:inline-block;white-space:pre}
.a-wd{display:inline-block;white-space:nowrap}
.a-m{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.a-m>.a-u{white-space:normal}
.pc-anim:not(.pc-anim-off) #main [data-a^="fx-"] .a-u{transition:opacity var(--a-u,.6s) ease,transform var(--a-u,.6s) cubic-bezier(.16,1,.3,1),filter var(--a-u,.6s) ease;transition-delay:var(--a-d,0s)}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-words"]:not(.a-in) .a-u{opacity:0;transform:translateY(.7em);filter:blur(6px)}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-letters"]:not(.a-in) .a-u{opacity:0;transform:translateY(.5em) rotate(8deg);filter:blur(4px)}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-rise"]:not(.a-in) .a-u{transform:translateY(105%)}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-typewriter"] .a-u{transition:none}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-typewriter"] .a-u{visibility:hidden}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-typewriter"].a-in .a-u{animation:a-type 0s linear var(--a-d,0s) forwards}
@keyframes a-type{to{visibility:visible}}
.pc-anim:not(.pc-anim-off) #main [data-a="fx-typewriter"]::after{content:"";display:inline-block;width:.06em;height:.9em;margin-inline-start:.05em;vertical-align:-.05em;background:currentColor;animation:a-caret .8s steps(1) infinite}
@keyframes a-caret{50%{opacity:0}}
/* "Play for everyone" (and the editor preview): undo the reduce-motion switch-off above. */
@media (prefers-reduced-motion:reduce){
  .pc-anim-force:not(.pc-anim-off) #main [data-a]{transition:opacity var(--a-dur,1.2s) ease var(--a-sd,0s),transform var(--a-dur,1.2s) var(--a-e) var(--a-sd,0s),filter var(--a-dur,1.2s) ease var(--a-sd,0s),clip-path var(--a-dur,1.2s) cubic-bezier(.77,0,.18,1) var(--a-sd,0s)!important}
  .pc-anim-force:not(.pc-anim-off) #main [data-a^="fx-"] .a-u{transition:opacity var(--a-u,.6s) ease var(--a-d,0s),transform var(--a-u,.6s) cubic-bezier(.16,1,.3,1) var(--a-d,0s),filter var(--a-u,.6s) ease var(--a-d,0s)!important}
  .pc-anim-force:not(.pc-anim-off) #main [data-a="fx-typewriter"] .a-u{transition:none!important}
  .pc-anim-force:not(.pc-anim-off) #main [data-a="fx-typewriter"].a-in .a-u{animation:a-type 0s linear var(--a-d,0s) forwards!important}
  .pc-anim-force:not(.pc-anim-off) #main [data-a="fx-typewriter"]::after{animation:a-caret .8s steps(1) infinite!important}
}
html.pc-anim-snap:not(.x):not(.y) #main :is([data-a],[data-a] .a-u){transition:none!important}
html:not(.x):not(.y) #main :is(.a-snap,.a-snap .a-u){transition:none!important;animation:none!important}
@media print{.pc-anim #main *{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;visibility:visible!important}}

/* Only two brands shown (others on hold): two wide cards fill the row instead of half a row of four. */
@media (min-width:1024px){
  .earth:not(:has(> :nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .earth:not(:has(> :nth-child(3))) .ecard__ph{aspect-ratio:16/10}
  .earth:not(:has(> :nth-child(3))) .ecard p{font-size:15.5px;max-width:52ch}
  .brands:not(:has(> :nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .brands:not(:has(> :nth-child(3))) .brand-card__ph{aspect-ratio:4/3}
}
@media (min-width:600px) and (max-width:1023px){
  .earth:not(:has(> :nth-child(3))) .ecard__ph{aspect-ratio:4/3}
}

/* About – Where we are (Count-up plugin section): left – offices as 3-column cards,
   then the client network as its own block; right – the globe. */
#where-we-are .pcx-net{margin-top:36px}
#where-we-are .pcx-net .kicker{color:#C9A46A}
#where-we-are .pcx-net__head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:8px 0 6px}
#where-we-are .pcx-net__big{font:300 clamp(40px,4.4vw,56px)/1 var(--serif);margin:0}
#where-we-are .pcx-net__big span{color:#9ED8EA}
#where-we-are .pcx-net__text{font-size:14.5px;line-height:1.6;opacity:.75;max-width:52ch;margin:0}
#where-we-are .pcx-net__list{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#where-we-are .pcx-net__list li{display:grid;grid-template-columns:12px 1fr;column-gap:10px;align-items:baseline;padding:14px 14px;border:1px solid rgba(127,127,127,.28);cursor:default;outline:0;transition:background .3s,border-color .3s}
#where-we-are .pcx-net__list li:first-child{grid-column:1/-1}
#where-we-are .pcx-net__mk{width:8px;height:8px;border-radius:50%;background:#6CC3DC;box-shadow:0 0 0 4px rgba(108,195,220,.18);align-self:center}
#where-we-are .pcx-net__n{font:300 20px/1.1 var(--serif)}
#where-we-are .pcx-net__sub{grid-column:2;font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-top:6px}
#where-we-are .pcx-net__list li:hover,#where-we-are .pcx-net__list li:focus-visible{border-color:#6CC3DC;background:rgba(108,195,220,.08)}
@media (min-width:900px){
  #where-we-are .pcx-loc__body{grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-areas:"list globe" "net globe";column-gap:48px;row-gap:0;align-items:start;margin-top:32px}
  #where-we-are .pcx-loc__grid{grid-area:list;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:0;margin:0}
  #where-we-are .pcx-loc__item,#where-we-are .pcx-loc__item:hover{padding:16px 16px 18px;border:1px solid rgba(255,255,255,.14);grid-template-columns:12px 1fr;column-gap:8px}
  #where-we-are .pcx-loc__item:hover{background:rgba(255,255,255,.05)}
  #where-we-are .pcx-loc__city{font-size:22px}
  #where-we-are .pcx-loc__meta{font-size:10.5px;letter-spacing:.14em}
  #where-we-are .pcx-loc__role{font-size:13.5px}
  #where-we-are .pcx-net{grid-area:net}
  #where-we-are .pcx-net__list{grid-template-columns:repeat(3,minmax(0,1fr))}
  #where-we-are .pcx-net__list li{border-color:rgba(255,255,255,.14)}
  #where-we-are .pcx-globe{grid-area:globe;align-self:center;max-width:600px;width:100%;aspect-ratio:1/1;margin:0;justify-self:end}
}

/* Jump links (About sub-menu): land below the sticky header, scroll smoothly. */
main [id],body > section[id]{scroll-margin-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.cx__note{margin:28px 0 0;max-width:720px;font-size:15px;color:var(--muted,#5b6470)}
.post-list__intro{grid-column:1/-1;margin:0 0 8px;max-width:720px}
