/* ═══════════════════════════════════════════════════════════
   MALCOLM DUFFIN DESIGN — design-system tokens + signature helpers
   Loaded site-wide after bricks-frontend. Authoritative source of the
   brand's CSS custom properties (mirrors the _ds token files) plus the
   few signature utilities that aren't expressible as a Bricks element
   setting. Build pages with native Bricks elements that reference these
   var(--*) tokens and md- helper classes.
   ═══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap');

:root {
  /* ── Colour ── */
  --onyx:#111111; --warm-white:#F7F4EF; --steel:#8FA4AB; --linen:#C9BDAD;
  --graphite:#4A4A48; --mid-grey:#888888;
  --onyx-90:#1c1c1c; --onyx-80:#2a2a2a; --steel-dark:#748A91;
  --steel-tint:rgba(143,164,171,0.10); --linen-tint:rgba(201,189,173,0.18);
  --warm-white-2:#F0ECE6;
  --border:rgba(0,0,0,0.12); --border-light:rgba(0,0,0,0.07); --border-strong:rgba(0,0,0,0.22);
  --border-on-dark:rgba(255,255,255,0.35); --hairline-light:rgba(255,255,255,0.18);
  --overlay-dark:rgba(0,0,0,0.50); --overlay-soft:rgba(0,0,0,0.28); --overlay-steel:rgba(143,164,171,0.22);
  --bg-page:var(--warm-white); --bg-page-alt:var(--warm-white-2); --bg-inverse:var(--onyx);
  --text-primary:var(--onyx); --text-body:var(--graphite); --text-muted:var(--mid-grey);
  --text-on-dark:#ffffff; --text-on-dark-mut:rgba(255,255,255,0.45);
  --accent:var(--steel); --accent-hover:var(--steel-dark);
  --surface-card:var(--warm-white); --surface-inverse:var(--onyx);
  --divider:var(--border-light); --rule:var(--border);

  /* ── Type ── */
  --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-ui:'Inter',system-ui,-apple-system,sans-serif;
  --w-display:300; --w-display-med:500; --w-body:300; --w-nav:400; --w-label:500;
  --fs-hero:64px; --fs-display-1:48px; --fs-display-2:44px; --fs-display-3:32px;
  --fs-quote:22px; --fs-italic:20px;
  --fs-body:16px; --fs-body-sm:15px; --fs-nav:11px; --fs-label:10px; --fs-micro:9px;
  --fs-caption:13px;
  --track-display:0.04em; --track-display-tight:0.03em; --track-quote:0.05em;
  --track-nav:0.18em; --track-label:0.20em; --track-cta:0.22em;
  --lh-display:1.0; --lh-quote:1.65; --lh-body:1.75; --lh-tight:1.2;

  /* ── Spacing / radii / motion ── */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;
  --page-max:1280px; --measure:680px; --gutter:24px; --margin-page:40px; --section-y:96px;
  --radius-none:0px; --radius-sm:4px; --radius-pill:999px; --hairline:0.5px;
  --shadow-overlay:0 1px 0 rgba(0,0,0,0.06); --shadow-dialog:0 24px 64px rgba(17,17,17,0.18);
  --ease-out:cubic-bezier(0.22,0.61,0.36,1); --ease-in-out:cubic-bezier(0.45,0,0.55,1);
  --dur-fast:0.3s; --dur-base:0.4s; --dur-slow:0.6s; --dur-cross:1.2s;
  --reveal-shift:12px; --hover-scale:1.03;
}

/* Page baseline (Bricks theme styles also set these; this is the safety net) */
body { background:var(--bg-page); color:var(--text-body); font-family:var(--font-ui); font-weight:var(--w-body); -webkit-font-smoothing:antialiased; }
::selection { background:var(--steel); color:#fff; }

/* ── Display type helpers ── */
.md-display { font-family:var(--font-display); font-weight:var(--w-display); letter-spacing:var(--track-display); line-height:var(--lh-display); color:var(--text-primary); }
.md-italic  { font-family:var(--font-display); font-style:italic; font-weight:var(--w-display); letter-spacing:var(--track-quote); }
.md-eyebrow { font-family:var(--font-ui); font-weight:500; font-size:var(--fs-label); letter-spacing:var(--track-label); text-transform:uppercase; color:var(--text-muted); }
.md-body    { font-family:var(--font-ui); font-weight:var(--w-body); font-size:var(--fs-body); line-height:var(--lh-body); color:var(--text-body); }
.md-caption { font-family:var(--font-display); font-style:italic; font-weight:400; font-size:var(--fs-caption); letter-spacing:0.05em; color:var(--text-muted); }

/* ── Hairline text-only CTA (the brand button) ── */
.md-btn { display:inline-block; font-family:var(--font-ui); font-weight:400; font-size:var(--fs-label); letter-spacing:var(--track-cta); text-transform:uppercase; color:var(--onyx); background:transparent; border:var(--hairline) solid var(--border-strong); border-radius:var(--radius-none); padding:12px 24px; text-decoration:none; transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); cursor:pointer; }
.md-btn:hover { color:var(--steel-dark); border-color:var(--steel); }
.md-btn--inverse { color:#fff; border-color:var(--border-on-dark); }
.md-btn--inverse:hover { color:#fff; border-color:#fff; }
.md-btn--plain { border-color:transparent; padding-left:0; padding-right:0; }

/* ── Tonal photography placeholder (fallback before real imagery) ── */
.md-photo { position:relative; overflow:hidden; background:var(--linen);
  background-image:radial-gradient(120% 90% at 30% 15%,rgba(255,255,255,0.45),rgba(255,255,255,0) 55%),linear-gradient(160deg,#d9d0c4 0%,#c3b8a8 45%,#a99e8f 100%); }
.md-photo--cool { background-image:radial-gradient(120% 90% at 70% 10%,rgba(255,255,255,0.35),rgba(255,255,255,0) 55%),linear-gradient(160deg,#c4ccce 0%,#9fadb2 50%,#7c8b90 100%); }
.md-photo--dark { background-image:radial-gradient(120% 120% at 50% 0%,rgba(255,255,255,0.10),rgba(255,255,255,0) 50%),linear-gradient(165deg,#2c2a27 0%,#1a1815 60%,#100f0d 100%); }
.md-photo--warm { background-image:radial-gradient(120% 90% at 25% 20%,rgba(255,255,255,0.5),rgba(255,255,255,0) 55%),linear-gradient(160deg,#e0d4c2 0%,#cdbda4 50%,#b09a7d 100%); }
.md-photo__tag { position:absolute; left:14px; bottom:12px; z-index:2; font-family:var(--font-ui); font-size:9px; letter-spacing:var(--track-label); text-transform:uppercase; color:rgba(255,255,255,0.85); text-shadow:0 1px 2px rgba(0,0,0,0.3); }

/* ── Diamond separator — the studio motif ── */
.md-diamond { width:6px; height:6px; margin:var(--space-7) auto; background:var(--steel); transform:rotate(45deg); }

/* ── Centred heading flanked by hairlines ── */
.md-head-rule { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:var(--space-6); }
.md-head-rule::before, .md-head-rule::after { content:""; height:0.5px; background:var(--border); }

/* ── Portfolio tile hover (image scale + caption fade) ── */
.md-tile { position:relative; display:block; overflow:hidden; }
.md-tile__img { transition:transform var(--dur-base) var(--ease-out); }
.md-tile:hover .md-tile__img { transform:scale(var(--hover-scale)); }

/* ── Respect reduced motion globally for our helpers ── */
@media (prefers-reduced-motion: reduce) {
  .md-tile__img { transition:none; }
}

/* ═══ SITE CHROME — masthead, nav, footer, section heading ═══ */
.mast { position:relative; text-align:center; padding:var(--space-7) var(--space-7) 0; background:var(--bg-page); }
.mast__inner { max-width:var(--page-max); margin:0 auto; }
.mast__mark { height:50px; width:auto; display:inline-block; margin:0 auto var(--space-4); }
.mast__word { font-family:var(--font-display); font-weight:var(--w-display); text-transform:uppercase; letter-spacing:0.20em; color:var(--text-primary); font-size:clamp(30px,3.75vw,45px); line-height:1; margin:0; }
.mast__sub { margin:12px 0 0; font-family:var(--font-ui); font-weight:500; font-size:10px; letter-spacing:var(--track-label); text-transform:uppercase; color:var(--text-muted); }
.mast__sep { width:6px; height:6px; margin:var(--space-6) auto 0; background:var(--steel); transform:rotate(45deg); }
.mast__nav { margin-top:var(--space-7); border-top:var(--hairline) solid var(--border); border-bottom:var(--hairline) solid var(--border); display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(20px,3vw,44px); padding:18px var(--space-7); }
.navitem { font-family:var(--font-ui); font-weight:var(--w-nav); font-size:var(--fs-nav); letter-spacing:var(--track-nav); text-transform:uppercase; color:var(--text-primary); text-decoration:none; position:relative; padding-bottom:3px; transition:color var(--dur-fast) var(--ease-out); cursor:pointer; display:inline-block; }
.navitem::after { content:""; position:absolute; left:0; right:0; bottom:0; height:0.5px; background:var(--steel); transform:scaleX(0); transform-origin:center; transition:transform var(--dur-fast) var(--ease-out); }
.navitem:hover { color:var(--steel-dark); }
.navitem:hover::after, .navitem.is-active::after { transform:scaleX(1); }

/* Centred heading flanked by hairlines */
.head-rule { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:var(--space-6); }
.head-rule::before, .head-rule::after { content:""; height:0.5px; background:var(--border); }
.head-rule__title { font-family:var(--font-display); font-weight:var(--w-display); letter-spacing:0.14em; text-transform:uppercase; color:var(--text-primary); font-size:clamp(24px,3vw,34px); margin:0; white-space:nowrap; }

/* Footer */
.ft { background:var(--bg-inverse); color:var(--text-on-dark); padding:var(--space-9) 0 var(--space-7); text-align:center; }
.ft__inner { max-width:var(--page-max); margin:0 auto; padding:0 var(--space-7); }
.ft__mark { height:54px; margin:0 auto var(--space-5); display:inline-block; }
.ft__word { font-family:var(--font-display); font-weight:var(--w-display); text-transform:uppercase; letter-spacing:0.2em; color:#fff; font-size:clamp(22px,2.6vw,30px); margin:0; }
.ft__line { margin:14px 0 0; font-family:var(--font-ui); font-weight:500; font-size:var(--fs-micro); letter-spacing:var(--track-label); text-transform:uppercase; color:rgba(255,255,255,0.55); }
.ft__line a { color:rgba(255,255,255,0.75); text-decoration:none; transition:color var(--dur-fast) var(--ease-out); }
.ft__line a:hover { color:#fff; }
.ft__partners { margin-top:var(--space-7); padding-top:var(--space-5); border-top:var(--hairline) solid var(--border-on-dark); font-family:var(--font-ui); font-weight:500; font-size:var(--fs-micro); letter-spacing:var(--track-label); text-transform:uppercase; color:rgba(255,255,255,0.35); }

@media (max-width:720px){ .mast__nav{ gap:14px 20px; padding:14px var(--space-5); } }
/* logo image sizing (covers img + figure-wrapped) */
.mast__mark, .mast__mark img { height:50px !important; width:auto !important; object-fit:contain; }
.ft__mark, .ft__mark img { height:54px !important; width:auto !important; object-fit:contain; }
.mast__nav.brxe-block, .mast .brxe-block { background:transparent; }
.mast a, .ft a { text-decoration:none; }

/* ═══ CONTENT HELPERS (pages M5–M8) ═══ */
.md-section{padding:var(--section-y) 0;}
.md-section--tight{padding:var(--space-8) 0;}
.md-section--dark{background:var(--bg-inverse);color:var(--text-on-dark);}
.md-section--dark h1,.md-section--dark h2,.md-section--dark h3,.md-section--dark .md-display{color:#fff;}
.md-section--dark .md-eyebrow{color:rgba(255,255,255,0.5);}
.md-section--dark .md-body{color:rgba(255,255,255,0.72);}
.md-wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--space-7);width:100%;}
.md-wrap-narrow{max-width:var(--measure);margin:0 auto;padding:0 var(--space-7);width:100%;}
.md-eyebrow{display:block;}
.md-tc{text-align:center;}
.md-mt-5{margin-top:24px;}.md-mt-6{margin-top:32px;}.md-mt-7{margin-top:48px;}.md-mt-8{margin-top:64px;}
.md-mb-3{margin-bottom:12px;}.md-mb-4{margin-bottom:16px;}.md-mb-5{margin-bottom:24px;}.md-mb-6{margin-bottom:32px;}.md-mb-7{margin-bottom:48px;}

/* tags (pill) */
.md-tag{display:inline-block;font-family:var(--font-ui);font-weight:500;font-size:9px;letter-spacing:0.1em;text-transform:uppercase;padding:5px 12px;border:0.5px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text-primary);}
.md-tag--accent{background:var(--steel-tint);border-color:transparent;color:var(--steel-dark);}

/* pull quote */
.md-pullquote{margin:0;text-align:center;}
.md-quote{margin:0 auto;max-width:var(--measure);font-family:var(--font-display);font-style:italic;font-weight:var(--w-display);font-size:clamp(20px,2.4vw,26px);letter-spacing:var(--track-quote);line-height:var(--lh-quote);color:var(--text-primary);}
.md-section--dark .md-quote{color:#fff;}
.md-quote-cite{margin-top:18px;font-family:var(--font-ui);font-weight:500;font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);}

/* project detail */
.detail-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
.detail-tags{display:flex;gap:10px;}
.proj-title{font-size:clamp(36px,5.5vw,64px);margin:0;}
.proj-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);padding:20px 0;border-top:0.5px solid var(--border);border-bottom:0.5px solid var(--border);}
.proj-meta__k{font-family:var(--font-ui);font-weight:500;font-size:9px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.proj-meta__v{font-family:var(--font-ui);font-weight:300;font-size:15px;color:var(--text-primary);line-height:1.5;}
.intro-2col{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,5vw,80px);align-items:start;}
.brief p{margin:0 0 var(--space-5);}.brief p:last-child{margin-bottom:0;}
.featured img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;display:block;}
.md-cap{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-caption);letter-spacing:0.05em;color:var(--text-muted);}

/* gallery (Bricks image-gallery element) */
.md-gallery li,.md-gallery figure{margin:0;position:relative;list-style:none;}
.md-gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-radius:0;}
.md-gallery figcaption{position:absolute;left:14px;bottom:12px;right:14px;z-index:2;font-family:var(--font-ui);font-size:9px;letter-spacing:var(--track-label);text-transform:uppercase;color:rgba(255,255,255,0.92);text-shadow:0 1px 3px rgba(0,0,0,0.5);background:none;padding:0;margin:0;}
.md-gallery figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:48%;background:linear-gradient(to top,rgba(0,0,0,0.5),rgba(0,0,0,0));z-index:1;pointer-events:none;}

@media(max-width:980px){.intro-2col{grid-template-columns:1fr;gap:40px;}.proj-meta{grid-template-columns:repeat(2,1fr);gap:24px;}}
/* ═══ PORTFOLIO INDEX + CARDS ═══ */
.pf-head__title{font-size:clamp(34px,4.6vw,56px);margin:0 0 var(--space-6);max-width:760px;}
.pf-filter{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-top:var(--space-5);}
.pf-filter a{font-family:var(--font-ui);font-weight:400;font-size:var(--fs-nav);letter-spacing:var(--track-nav);text-transform:uppercase;color:var(--text-muted);text-decoration:none;padding-bottom:4px;border-bottom:0.5px solid transparent;transition:color var(--dur-fast) var(--ease-out);}
.pf-filter a:hover{color:var(--onyx);}
.pf-filter a.is-active{color:var(--onyx);border-bottom-color:var(--onyx);}
.pf-filter .sep{margin:0 16px;color:var(--linen);font-size:var(--fs-nav);}
.pf-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);}
.pf-card{display:block;text-decoration:none;color:inherit;}
.pf-card__img{position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--linen-tint);}
.pf-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--dur-base) var(--ease-out);}
.pf-card:hover .pf-card__img img{transform:scale(var(--hover-scale));}
.pf-card__title{font-family:var(--font-display);font-weight:var(--w-display);letter-spacing:var(--track-display);font-size:22px;color:var(--text-primary);margin:16px 0 4px;line-height:1.2;}
.pf-card__loc{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);}
.pf-empty{min-height:320px;display:flex;align-items:center;justify-content:center;text-align:center;border:0.5px solid var(--border);border-radius:var(--radius-sm);}
.pf-empty p{font-family:var(--font-display);font-style:italic;font-size:24px;color:var(--text-muted);margin:0;}
@media(max-width:880px){.pf-tiles{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.pf-tiles{grid-template-columns:1fr;}}
/* ═══ HOME ═══ */
.md-hero{position:relative;height:78vh;min-height:520px;overflow:hidden;background:var(--onyx);}
.md-hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:mdHeroFade 14s infinite;}
.md-hero__slide.md-delay-7{animation-delay:7s;}
.md-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(to top,rgba(0,0,0,0.55),rgba(0,0,0,0));z-index:3;pointer-events:none;}
.md-hero__cap{position:absolute;left:var(--space-7);right:var(--space-7);bottom:var(--space-6);z-index:4;margin:0;font-family:var(--font-display);font-style:italic;font-weight:var(--w-display);font-size:calc(var(--fs-caption)*1.25);letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.95);text-shadow:0 1px 3px rgba(0,0,0,0.45);opacity:0;animation:mdHeroFade 14s infinite;}
.md-hero__cap.md-delay-7{animation-delay:7s;}
@keyframes mdHeroFade{0%{opacity:0;}6%{opacity:1;}46%{opacity:1;}54%{opacity:0;}100%{opacity:0;}}
@media(prefers-reduced-motion:reduce){.md-hero__slide,.md-hero__cap{animation:none!important;}.md-hero__slide:first-of-type,.md-hero__cap:first-of-type{opacity:1!important;}}

.md-intro-display{font-size:clamp(28px,3.6vw,44px);line-height:1.32;margin:0;}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);}
.cat{margin:0;display:block;text-decoration:none;color:inherit;}
.cat__img{position:relative;overflow:hidden;width:100%;height:280px;background:var(--linen-tint);}
.cat__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--dur-base) var(--ease-out);}
.cat:hover .cat__img img{transform:scale(var(--hover-scale));}
.cat__cap{margin-top:16px;text-align:center;font-family:var(--font-ui);font-weight:500;font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-primary);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,104px);align-items:center;}
.split__img{width:100%;margin:0;}
.split__img img{width:100%;display:block;object-fit:cover;}
.split--portrait .split__img img{aspect-ratio:1/1;object-position:center;margin:0 auto;}
.split--wide .split__img img{aspect-ratio:1/1;object-position:center;margin:0 auto;}
.split__body{max-width:460px;}
.split--right .split__body{margin-left:auto;}
.band{position:relative;min-height:440px;height:64vh;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;}
.band__scrim{position:absolute;inset:0;background:var(--overlay-dark);z-index:1;}
.band__inner{position:relative;z-index:2;}
.news{max-width:520px;margin:0 auto;text-align:center;}
.news__row{display:flex;gap:0;align-items:center;border-bottom:0.5px solid var(--border-on-dark);margin-top:var(--space-6);}
.news__row input{flex:1;border:none;background:transparent;outline:none;font-family:var(--font-ui);font-weight:300;font-size:var(--fs-body);color:#fff;padding:12px 0;}
.news__row input::placeholder{color:var(--text-on-dark-mut);}
.news__row button{border:none;background:transparent;font-family:var(--font-ui);font-weight:400;font-size:var(--fs-label);letter-spacing:var(--track-cta);text-transform:uppercase;color:#fff;cursor:pointer;padding:12px 0 12px 20px;white-space:nowrap;}
@media(max-width:880px){.cat-grid{grid-template-columns:repeat(2,1fr);}.split{grid-template-columns:1fr;gap:36px;}.split--right .split__img{order:-1;}}
/* ═══ SERVICES ═══ */
.disciplines{display:grid;grid-template-columns:repeat(3,1fr);border-top:0.5px solid var(--border);}
.disc{padding:var(--space-7) var(--space-6);border-bottom:0.5px solid var(--border);border-right:0.5px solid var(--border);}
.disc:last-child{border-right:0;}
.disc__title{font-family:var(--font-display);font-weight:var(--w-display);font-size:26px;letter-spacing:var(--track-display);color:var(--text-primary);margin:0 0 12px;}
.disc__desc{font-family:var(--font-ui);font-weight:300;font-size:15px;line-height:1.7;color:var(--text-body);}
.process{counter-reset:step;border-top:0.5px solid var(--border);}
.step{counter-increment:step;display:grid;grid-template-columns:64px 220px 1fr;gap:clamp(16px,3vw,40px);align-items:baseline;padding:28px 0;border-bottom:0.5px solid var(--border);}
.step__num{font-family:var(--font-display);font-style:italic;font-weight:var(--w-display);font-size:24px;color:var(--steel-dark);}
.step__num::before{content:"0" counter(step);}
.step__label{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-primary);}
.step__desc{font-family:var(--font-ui);font-weight:300;font-size:15px;line-height:1.7;color:var(--text-body);}
.heritage-callout{position:relative;min-height:380px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.heritage-callout__scrim{position:absolute;inset:0;background:var(--overlay-dark);z-index:1;}
.heritage-callout__inner{position:relative;z-index:2;max-width:680px;padding:0 var(--space-7);}
@media(max-width:760px){.disciplines{grid-template-columns:1fr;}.disc{border-right:0;}.step{grid-template-columns:44px 1fr;}.step__desc{grid-column:2;}}
/* ═══ ABOUT / TEAM ═══ */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-7);}
.team__photo,.team__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;}
.team__photo{background:var(--linen-tint);margin-bottom:16px;}
.team__name{font-family:var(--font-display);font-weight:var(--w-display);font-size:22px;letter-spacing:var(--track-display);color:var(--text-primary);margin:0 0 4px;}
.team__role{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.team__bio{font-family:var(--font-ui);font-weight:300;font-size:14px;line-height:1.7;color:var(--text-body);}
.about-intro p{margin:0 0 var(--space-5);}
@media(max-width:760px){.team-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto;}}

/* ═══ CONTACT ═══ */
.contact-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:start;}
.contact-detail{margin-bottom:var(--space-6);}
.contact-detail__k{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.contact-detail__v{font-family:var(--font-ui);font-weight:300;font-size:16px;line-height:1.6;color:var(--text-primary);}
.contact-detail__v a{color:var(--text-primary);text-decoration:none;border-bottom:0.5px solid var(--border);}
.md-contact-form .form-group{margin-bottom:var(--space-5);}
.md-contact-form input,.md-contact-form textarea,.md-contact-form select{border:none;border-bottom:0.5px solid var(--border-strong);border-radius:0;background:transparent;font-family:var(--font-ui);font-weight:300;font-size:var(--fs-body-sm);color:var(--text-primary);padding:10px 0;width:100%;outline:none;transition:border-color var(--dur-fast) var(--ease-out);}
.md-contact-form input:focus,.md-contact-form textarea:focus,.md-contact-form select:focus{border-bottom-color:var(--onyx);}
.md-contact-form label{display:block;font-family:var(--font-ui);font-weight:500;font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;}
.md-contact-form textarea{min-height:120px;resize:vertical;}
.md-contact-form button[type="submit"]{margin-top:var(--space-4);display:inline-block;font-family:var(--font-ui);font-weight:400;font-size:var(--fs-label);letter-spacing:var(--track-cta);text-transform:uppercase;color:var(--onyx);background:transparent;border:0.5px solid var(--border-strong);border-radius:0;padding:14px 28px;cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast);}
.md-contact-form button[type="submit"]:hover{color:var(--steel-dark);border-color:var(--steel);}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;gap:48px;}}
/* ═══ JOURNAL ═══ */
.journal-list{max-width:var(--measure);margin:0 auto;}
.journal-item{display:block;text-decoration:none;color:inherit;padding:var(--space-6) 0;border-bottom:0.5px solid var(--border);}
.journal-item:hover .journal-item__title{color:var(--steel-dark);}
.journal-item__date{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-micro);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.journal-item__title{font-family:var(--font-display);font-weight:var(--w-display);letter-spacing:var(--track-display);font-size:clamp(24px,3vw,32px);color:var(--text-primary);margin:0 0 10px;line-height:1.2;transition:color var(--dur-fast) var(--ease-out);}
.journal-item__excerpt{font-family:var(--font-ui);font-weight:300;font-size:16px;line-height:1.75;color:var(--text-body);}
.journal-single{max-width:var(--measure);margin:0 auto;}
.journal-single__body p{margin:0 0 var(--space-5);font-family:var(--font-ui);font-weight:300;font-size:17px;line-height:1.8;color:var(--text-body);}

/* ═══ FLEX DIRECTION FIX — Bricks .brxe-block defaults to column ═══ */
.mast__nav{flex-direction:row !important;align-items:center;}
.pf-filter{flex-direction:row !important;align-items:center;}
.detail-foot{flex-direction:row !important;}
.detail-tags{flex-direction:row !important;}
.news__row{flex-direction:row !important;}
@media(max-width:720px){
  .mast__nav{flex-wrap:wrap;}
}
/* ═══ MASTHEAD centring fix (mast__inner is a flex column) ═══ */
.mast__inner{display:flex;flex-direction:column;align-items:center;text-align:center;}
.mast__brand{align-items:center;}
.mast__sub{align-self:center;text-align:center;}
.mast__sep{align-self:center;}
.mast__nav{align-self:stretch;}
/* mast diamond — fixed 6px, centred, not flex-squished */
.mast__sep{flex:0 0 auto;width:6px;height:6px;min-width:6px;align-self:center;margin:var(--space-6) auto 0;background:var(--steel);transform:rotate(45deg);display:block;}
/* diamond colour — win over Bricks block background */
.mast .mast__sep,.brxe-block.mast__sep{background:var(--steel) !important;background-color:var(--steel) !important;}
/* ═══ FIXES: centring + missing spacing utilities ═══ */
/* missing margin utilities (were used but undefined — silently 0) */
.md-mb-8{margin-bottom:64px;}
.md-mb-9{margin-bottom:96px;}
.md-mt-9{margin-top:96px;}

/* centred content blocks: center flex-column children, not just text */
.md-tc{align-items:center;}
.band__inner{align-items:center;text-align:center;}
.heritage-callout__inner{align-items:center;text-align:center;}
.news{align-items:center;}
.news__row{align-self:stretch;width:100%;}

/* full-width layout containers must not shrink inside flex-column wraps */
.head-rule,.cat-grid,.pf-tiles,.pf-filter,.disciplines,.process,.team-grid,.contact-grid,.journal-list,.proj-meta,.split,.intro-2col,.detail-foot,.journal-item{width:100%;}
/* footer: centre all info (flex-column block) */
.ft__inner{align-items:center;text-align:center;}
.ft__line,.ft__partners{width:100%;text-align:center;}

/* pull-quote / testimonial: centre the attribution under the quote */
.md-pullquote{align-items:center;text-align:center;}
.md-quote-cite{width:100%;text-align:center;}
/* band/heritage full-bleed photo layer (was undefined — collapsed to nothing) */
/* band/heritage backdrop layer. Home "Discover our world" = design's .photo--dark gradient (NO image, per approved mockup). Services heritage keeps its own element-level image, which overrides this background-image via Bricks' higher-specificity ID rule. */
.band__photo{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat;background-image:radial-gradient(120% 120% at 50% 0%, rgba(255,255,255,0.10), rgba(255,255,255,0) 50%), linear-gradient(165deg, #2c2a27 0%, #1a1815 60%, #100f0d 100%);}
.band{background:var(--onyx);}
.heritage-callout{background:var(--onyx);}


/* orphan-class fixes (audit): undefined utilities collapsed silently */
.md-mt-4{margin-top:16px;}
/* team member card — had no rule, so inherited Bricks column-left default; center under portrait to match the editorial grid */
.team-member{display:flex;flex-direction:column;align-items:center;text-align:center;}


/* photo__tag — bottom-left overlay caption on images (design parity: cat cards, Malcolm portrait, About image) */
.split__img{position:relative;}
.photo__tag{position:absolute;left:14px;bottom:12px;z-index:2;font-family:var(--font-ui);font-weight:500;font-size:9px;letter-spacing:var(--track-label);text-transform:uppercase;color:rgba(255,255,255,0.85);text-shadow:0 1px 2px rgba(0,0,0,0.35);}


/* Discover band text — match design: white heading at clamp(36px,5.4vw,64px); band is .band (not .md-section--dark) so base dark color/size applied */
.band .md-display{color:#fff;font-size:clamp(36px,5.4vw,64px);line-height:1.05;}
.band .md-eyebrow{color:rgba(255,255,255,0.6);}


/* editable heritage band image fills the band (home Discover band has no img child = gradient stays) */
.band__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}


/* Testimonials carousel (home) — fading quotes + dots, wired to Studio Content repeater */
.md-tcar{position:relative;width:100%;}
.md-tcar__viewport{position:relative;overflow:hidden;transition:height .6s var(--ease-out,ease);}
.md-tcar__item{position:absolute;left:0;right:0;top:0;margin:0;opacity:0;transition:opacity .8s var(--ease-out,ease);pointer-events:none;display:flex;flex-direction:column;align-items:center;text-align:center;}
.md-tcar__item.is-active{opacity:1;pointer-events:auto;}
/* testimonials run longer than the original poetic line — ease the display size + spacing */
.md-tcar .md-quote{font-size:clamp(19px,2.2vw,28px);line-height:1.5;}
.md-tcar .md-quote-cite{margin-top:var(--space-5,24px);}
.md-tcar__dots{display:flex;justify-content:center;gap:10px;margin-top:var(--space-6,32px);}
.md-tcar__dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:var(--linen,#C9BDAD);opacity:.55;cursor:pointer;transition:opacity .3s,background .3s,transform .3s;}
.md-tcar__dot:hover{opacity:.9;}
.md-tcar__dot.is-active{opacity:1;background:var(--steel,#8FA4AB);transform:scale(1.15);}

/* testimonials block ~50% wider to accommodate longer quotes */
.md-wrap-narrow:has(.md-tcar){max-width:calc(var(--measure) * 1.5);}


/* Journal article — lead (featured) image + rich body content incl. inline images */
.journal-single__lead{margin:0 0 var(--space-7);}
.journal-single__lead img{width:100%;height:auto;display:block;}
.journal-single__body img{max-width:100%;height:auto;display:block;}
.journal-single__body figure{margin:var(--space-6) 0;}
.journal-single__body figcaption,.journal-single__body .wp-caption-text{margin-top:10px;font-family:var(--font-ui);font-weight:300;font-size:13px;letter-spacing:0.02em;color:var(--text-muted);text-align:center;}
.journal-single__body .aligncenter{margin-left:auto;margin-right:auto;}
.journal-single__body .alignleft{float:left;margin:6px var(--space-6) var(--space-4) 0;max-width:48%;}
.journal-single__body .alignright{float:right;margin:6px 0 var(--space-4) var(--space-6);max-width:48%;}
.journal-single__body .alignwide{width:min(calc(var(--measure) + 220px),92vw);position:relative;left:50%;transform:translateX(-50%);}
.journal-single__body .alignfull{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;max-width:100vw;}
.journal-single__body h2{font-family:var(--font-display);font-weight:var(--w-display);font-size:clamp(24px,3vw,32px);letter-spacing:var(--track-display);color:var(--text-primary);margin:var(--space-7) 0 var(--space-4);}
.journal-single__body h3{font-family:var(--font-display);font-weight:var(--w-display);font-size:22px;color:var(--text-primary);margin:var(--space-6) 0 12px;}
.journal-single__body ul,.journal-single__body ol{margin:0 0 var(--space-5) 1.2em;font-family:var(--font-ui);font-weight:300;font-size:17px;line-height:1.8;color:var(--text-body);}
.journal-single__body li{margin:0 0 8px;}
.journal-single__body blockquote{margin:var(--space-6) 0;padding-left:var(--space-5);border-left:2px solid var(--steel);font-family:var(--font-display);font-style:italic;font-size:22px;line-height:1.5;color:var(--text-primary);}
.journal-single__body a{color:var(--steel-dark);text-decoration:underline;text-underline-offset:3px;}


/* Services heritage framed panel */
.heritage-callout__scrim{background:rgba(0,0,0,0.30);}
.heritage-callout__inner{background:rgba(17,17,17,0.55);border:0.5px solid rgba(255,255,255,0.45);padding:clamp(36px,5vw,60px);max-width:620px;}
.heritage-callout .md-eyebrow{color:rgba(255,255,255,0.72);}
.heritage-callout .md-display{color:#fff;}

/* Services process — cards (3 per row; 5 steps = 3 + 2) instead of a list */
.process{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter,28px);border-top:none;}
.step{display:flex;flex-direction:column;align-items:flex-start;gap:14px;grid-template-columns:none;padding:clamp(24px,3vw,34px);border:0.5px solid var(--border);}
.step__num{font-size:clamp(28px,3vw,38px);line-height:1;}
@media(max-width:900px){.process{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.process{grid-template-columns:1fr;}}


/* Disciplines card image */
.disc__img{display:block;margin:0 0 var(--space-5);aspect-ratio:4/3;overflow:hidden;background:var(--linen-tint);}
.disc__img img{width:100%;height:100%;object-fit:cover;display:block;}


/* Journal list thumbnails */
.journal-item{display:flex;gap:clamp(20px,3vw,40px);align-items:center;}
.journal-item__thumb{flex:0 0 auto;width:clamp(120px,22vw,210px);aspect-ratio:4/3;overflow:hidden;background:var(--linen-tint);}
.journal-item__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-base) var(--ease-out);}
.journal-item:hover .journal-item__thumb img{transform:scale(var(--hover-scale,1.04));}
.journal-item__text{flex:1 1 auto;min-width:0;}
@media(max-width:600px){.journal-item{flex-direction:column;align-items:flex-start;}.journal-item__thumb{width:100%;}}


/* Contact social icons + studio map */
.social-row{display:inline-flex;gap:14px;align-items:center;}
.social-link{display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);transition:color var(--dur-fast) var(--ease-out);}
.social-link:hover{color:var(--steel-dark);}
.md-map{margin-top:var(--space-6);border:0.5px solid var(--border);overflow:hidden;}
.md-map iframe{display:block;width:100%;height:240px;border:0;filter:grayscale(0.15);}


/* process 3-then-2 */
.process{grid-template-columns:repeat(6,1fr);}
.process .step{grid-column:span 2;}
.process .step:nth-child(4),.process .step:nth-child(5){grid-column:span 3;}
@media(max-width:900px){.process{grid-template-columns:repeat(2,1fr);}.process .step,.process .step:nth-child(4),.process .step:nth-child(5){grid-column:auto;}}
@media(max-width:600px){.process{grid-template-columns:1fr;}.process .step,.process .step:nth-child(4),.process .step:nth-child(5){grid-column:auto;}}
