/* ═══════════════════════════════════════════════════════
   DESIGN PARTNERSHIP — Fluid Glass Inspired Styles
   ═══════════════════════════════════════════════════════ */

/* ── Reset & Base ──────────────────────────────────── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* On Webflow, the platform's own base CSS sets element defaults (h1-h3
   margin-top 20px, h4-h6 10px, p/ul/blockquote margin-bottom 10px,
   blockquote padding and a grey left border, fixed heading font sizes).
   Those element selectors outrank the universal reset above, so they leaked
   into every page as extra space. Resetting the same elements here ties
   them on specificity and wins by loading later, and any class rule still
   overrides it. The result matches the hand-coded build. */
h1, h2, h3, h4, h5, h6,
p, blockquote, figure,
ul, ol {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  line-height: inherit;
}

blockquote {
  padding: 0;
  border: 0;
  font-size: inherit;
  line-height: inherit;
}

:root {
  /* ── DP Brand Palette (from credentials deck) ── */
  --color-bg: #E7E6DE;          /* Warm sand/beige */
  --color-bg-alt: #D6D1C4;      /* Slightly deeper sand */
  --color-surface: #F0EFE9;
  --color-surface-light: #F4F3F0;   /* About + Stats band */
  --color-text-secondary: #515151;  /* secondary body copy */
  --color-dark: #231F20;        /* DP charcoal */
  --color-dark-surface: #2E2A2B;
  --color-text: #231F20;        /* Near-black */
  --color-text-muted: #6B645F;  /* Warm grey */
  --color-text-on-dark: #E7E6DE;
  --color-text-muted-on-dark: #A9A29B;

  /* ── Signature accents ── */
  --color-copper: #B45B38;      /* DP terracotta/copper */
  --color-copper-light: #C96B47;
  --color-gold: #B08A5F;        /* Warm bronze-gold */
  --color-green: #231F20;       /* Charcoal (used for dark sections) */
  --color-green-light: #35302F;
  --color-coral: #B45B38;       /* Maps to copper for compatibility */
  --color-coral-light: #C96B47;

  --color-border: rgba(35, 31, 32, 0.12);
  --color-border-hover: rgba(35, 31, 32, 0.28);
  --color-border-on-dark: rgba(255, 255, 255, 0.12);

  --font-sans: 'Marcellus', Georgia, serif;
  --font-serif: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration: 0.8s;

  --container: 1740px;   /* design canvas is 1920 wide; content = 1580 + 80 gutters */
  /* Mockup content box measured at x=120..1246 on a 1366 canvas -> 8.8vw
     gutters (content 82.4% of viewport). 4vw left content ~131px too wide,
     which changed every text wrap and section height. */
  --gutter: clamp(20px, 7.216vw, 139.4px);

  /* ── Buttons ──
     One size for every CTA button: the size approved on the hero "Explore"
     button (15 Sept). Pinned in px deliberately. It was tuned against the old
     16px root, and the root is now 14px for the sitewide text scale-down, so
     rem values here would shrink buttons below the approved size.
     min-width is a floor, not a target: buttons size to their label. */
  --btn-font-size: 14.432px;   /* = 0.902rem at the old 16px root */
  --btn-padding: 16px 19.2px;  /* = 1rem 1.2rem at the old 16px root */
  --btn-min-width: 21px;
}

html {
  /* Sitewide scale-down from the 10 Sept design review ("everything smaller,
     text and button wise"). Nearly all type, button padding and ~130 spacing
     values are rem, so they all scale from this one number; the layout grid
     (container max-width, gutters) is px/vw and deliberately does not move.
     Was 16px. */
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-sans);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  overflow-x: hidden;
}

::selection {
  background: var(--color-copper);
  color: #fff;
}

a {
  color: inherit;
  text-decoration: none;
}

img, video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

button {
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  font-family: inherit;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.section {
  /* Measured off the 1366-wide Canva mockups: section padding there runs
     78–116px (mean ~95px). 12vw gave 164px at 1366 — roughly 1.7x too much,
     which alone made each page ~1,800px longer than its mockup. */
  padding: clamp(56px, 5.74vw, 123px) 0;
}

.section-label {
  font-family: var(--font-sans);          /* Marcellus, per brand font pairing */
  font-size: 0.9225rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-copper);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.section-label::before {
  content: '';
  width: 32px;
  height: 1.5px;
  flex: 0 0 auto;
  background: var(--color-copper);
}

/* On dark and copper bands the label reverses to white — copper is only
   ever used on the light backgrounds. Measured off both the Home and the
   Workplace mockups. */
.clients .section-label,
.awards .section-label,
.contact .section-label,
.wp-audience .section-label,
.wp-services .section-label,
.wp-cta-band .section-label,
.wp-fullimage .section-label,
.rt-segments .section-label,
.rt-services .section-label,
.rt-cta-band .section-label,
.rt-fullimage .section-label,
.hp-segments .section-label,
.hp-services .section-label,
.hp-cta-band .section-label,
.hp-fullimage .section-label,
.hp-projects .section-label,
.about-facts .section-label,
.about-directors .section-label,
.pp-filters .section-label,
.section--dark .section-label {
  color: #ffffff;
}

.clients .section-label::before,
.awards .section-label::before,
.contact .section-label::before,
.wp-audience .section-label::before,
.wp-services .section-label::before,
.wp-cta-band .section-label::before,
.wp-fullimage .section-label::before,
.rt-segments .section-label::before,
.rt-services .section-label::before,
.rt-cta-band .section-label::before,
.rt-fullimage .section-label::before,
.hp-segments .section-label::before,
.hp-services .section-label::before,
.hp-cta-band .section-label::before,
.hp-fullimage .section-label::before,
.hp-projects .section-label::before,
.about-facts .section-label::before,
.about-directors .section-label::before,
.pp-filters .section-label::before,
.section--dark .section-label::before {
  background: #ffffff;
}

/* Dark section variant */
.section--dark .section-label {
  color: var(--color-copper-light);
}

.section--dark .section-label::before {
  background: var(--color-copper-light);
}

/* ── Reveal Animation Base ────────────────────────── */
/* The hidden state is scoped to .js-anim, which main.js's loader adds to
   <html>. Without JavaScript (e.g. the Webflow Designer canvas, which does
   not run custom code) the content simply renders in place instead of
   sitting at opacity 0 waiting for a scroll trigger that never fires. */
.js-anim .reveal-up {
  opacity: 0;
  transform: translateY(60px);
  transition: opacity var(--duration) var(--ease-out),
              transform var(--duration) var(--ease-out);
}

.reveal-up.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ── Button ───────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: var(--btn-font-size);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--color-copper);
  color: #fff;
  border: 1.5px solid var(--color-copper);
  padding: var(--btn-padding);
  border-radius: 999px;
  transition: all 0.4s var(--ease-out);
  position: relative;
  overflow: hidden;
  min-width: var(--btn-min-width);
  justify-content: center;
  line-height: 1;
}

.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--color-dark);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease-out);
  z-index: 0;
}

.btn:hover::before {
  transform: scaleX(1);
}

.btn:hover {
  color: #fff;
  border-color: var(--color-dark);
}

.btn span, .btn svg {
  position: relative;
  z-index: 1;
}

/* 17 Sept: on black backgrounds a dark hover wipe is invisible, so buttons
   there fill with the site cream instead, with charcoal text. The doubled
   .btn.btn outranks the page stylesheets' own dark-band hover rules. The
   contact form's Submit is an <input> on Webflow, which can't draw the
   ::before wipe, so it takes the cream as its background directly. */
:is(.contact, .section--dark, .portfolio, .awards, .about-directors,
    .wp-services, .hp-services, .rt-services, .wp-cta, .pp-profile,
    .aw-main, .cpg-join) .btn.btn::before {
  background: var(--color-bg);
}

:is(.contact, .section--dark, .portfolio, .awards, .about-directors,
    .wp-services, .hp-services, .rt-services, .wp-cta, .pp-profile,
    .aw-main, .cpg-join) .btn.btn:is(:hover, :focus-visible) {
  color: var(--color-dark);
  border-color: var(--color-bg);
}

:is(.contact, .section--dark, .portfolio, .awards, .about-directors,
    .wp-services, .hp-services, .rt-services, .wp-cta, .pp-profile,
    .aw-main, .cpg-join) input.btn.btn:is(:hover, :focus-visible) {
  background: var(--color-bg);
}

.btn--primary {
  background: var(--color-copper);
  color: #fff;
  border-color: var(--color-copper);
}

/* Outlined pill — copper rule, no fill, fills on hover.
   Used on the About director cards and anywhere the mockup shows a
   hollow button sitting on a dark band. */
.btn--outline {
  background: rgba(255, 255, 255, 0);
  border-color: var(--color-copper);
  color: #fff;
}

.btn--outline::before { background: var(--color-copper); }
.btn--outline:hover { color: #fff; border-color: var(--color-copper); }

/* On dark backgrounds */
.section--dark .btn {
  background: var(--color-copper);
  color: #fff;
  border-color: var(--color-copper);
}

.section--dark .btn::before {
  background: #fff;
}

.section--dark .btn:hover {
  color: var(--color-dark);
  border-color: #fff;
}


/* ═══════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════ */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 1.5rem 0;
  transition: all 0.5s var(--ease-out);
}

/* Nav starts transparent over hero (dark bg) */
.nav--hero {
  color: var(--color-text-on-dark);
}

.nav--hero .nav__link {
  color: #ffffff;
}

.nav--hero .nav__link:hover {
  color: #ffffff;
}   

.nav--hero .nav__menu-btn span {
  background: #ffffff;
}

.nav--hero .nav__logo-wordmark--light {
  display: block;
}

.nav--hero .nav__logo-wordmark--dark {
  display: none;
}

/* ── Scrolled state ────────────────────────────────────
   Transparent over the hero, then a solid cream band drops in as soon
   as the page moves. These rules sit after .nav--hero deliberately:
   both are (0,2,0) specificity, so source order decides, and the band
   must win even when the nav happens to be over a dark section. */
.nav.scrolled,
.nav--solid {
  background: #ffffff;
  border-bottom: 1px solid rgba(35, 31, 32, 0.08);
  box-shadow: 0 2px 18px rgba(35, 31, 32, 0.07);
  color: var(--color-text);
}

.nav.scrolled .nav__link,
.nav--solid .nav__link {
  color: var(--color-text-muted);
}

.nav.scrolled .nav__link:hover,
.nav--solid .nav__link:hover {
  color: var(--color-text);
}

.nav.scrolled .nav__menu-btn span,
.nav--solid .nav__menu-btn span {
  background: var(--color-text);
}

.nav.scrolled .nav__logo-wordmark--light,
.nav--solid .nav__logo-wordmark--light {
  display: none;
}

.nav.scrolled .nav__logo-wordmark--dark,
.nav--solid .nav__logo-wordmark--dark {
  display: block;
}

.nav__inner {
  /* the nav runs wider than the body content — measured off the mockup,
     logo starts at x73 and the last link ends at x1848 on the 1920 canvas */
  max-width: none;
  margin: 0 auto;
  padding: 0 clamp(20px, 3.075vw, 59.04px);
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.nav__logo {
  display: flex;
  align-items: center;
  margin-right: auto;      /* pins the logo left, links sit hard right */
}

.nav__logo-wordmark {
  height: 36px;   /* 17 Sept: a little bigger than the ~32px the squeezed cream logo showed at */
  transition: opacity 0.3s ease;
  width: auto;
  object-fit: contain;
}

/* Default (no modifier) = dark logo, for pages/sections with a light
   background at rest. .nav--hero flips this to the light logo for pages
   that start over a dark hero image/video. */
.nav__logo-wordmark--light {
  display: none;
}

.nav__logo-wordmark--dark {
  display: block;
}

.nav__links {
  display: flex;
  gap: 3rem;               /* measured 48px between links on the 1920 canvas */
}

.nav__link {
  font-family: 'Montserrat', var(--font-sans);
  font-size: clamp(0.9375rem, 1.0496vw, 1.23rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  transition: color 0.3s ease;
  position: relative;
}

.nav__link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--color-coral);
  transition: width 0.4s var(--ease-out);
}

.nav__link:hover {
  color: var(--color-text);
}

.nav__link:hover::after {
  width: 100%;
}

/* ── Nav dropdowns (About, Expertise) ────────────────
   Opens on hover and on keyboard focus. The invisible ::before strip
   bridges the gap between the link and the panel so the pointer can
   travel down without the menu closing. */
.nav__item {
  position: relative;
  display: flex;
  align-items: center;
}

.nav__dropdown {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  min-width: 200px;
  padding: 0.6rem 0;
  background: #fff;
  box-shadow: 0 10px 30px rgba(35, 31, 32, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity 0.25s ease, transform 0.25s var(--ease-out), visibility 0.25s;
  z-index: 10;
}

.nav__dropdown::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -16px;
  height: 16px;
}

.nav__item:hover .nav__dropdown,
.nav__item:focus-within .nav__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.nav__item:hover > .nav__link::after,
.nav__item:focus-within > .nav__link::after {
  width: 100%;
}

.nav .nav__dropdown-link {
  display: block;
  padding: 0.6rem 1.5rem;
  font-family: 'Montserrat', var(--font-sans);
  font-size: 0.93rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--color-dark);
  transition: color 0.2s ease, background 0.2s ease;
}

.nav .nav__dropdown-link:hover,
.nav .nav__dropdown-link:focus-visible {
  color: var(--color-copper);
  background: var(--color-surface-light);
}

.nav__right {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav__cta {
  font-size: 0.615rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.6rem 1.25rem;
  border: 1.5px solid currentColor;
  transition: all 0.3s var(--ease-out);
}

.nav__cta:hover {
  background: var(--color-copper);
  border-color: var(--color-copper);
  color: #fff !important;
}

.nav__cta::after {
  display: none;
}

.nav__menu-btn {
  display: none;
  flex-direction: column;
  gap: 6px;
  width: 28px;
  padding: 4px 0;
}

.nav__menu-btn span {
  display: block;
  width: 100%;
  height: 1.5px;
  background: var(--color-text);
  transition: all 0.4s var(--ease-out);
  transform-origin: center;
}

.nav__menu-btn.active span:first-child {
  transform: rotate(45deg) translate(2.5px, 2.5px);
}

.nav__menu-btn.active span:last-child {
  transform: rotate(-45deg) translate(2.5px, -2.5px);
}

/* ── Mobile Menu ─────────────────────────────────── */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: var(--color-green);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s var(--ease-out);
  color: var(--color-text-on-dark);
}

.mobile-menu.open {
  opacity: 1;
  pointer-events: all;
}

.mobile-menu__inner {
  text-align: center;
}

.mobile-menu__link {
  display: block;
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4.92vw, 3.28rem);
  font-weight: 400;
  margin-bottom: 1rem;
  transform: translateY(30px);
  opacity: 0;
  transition: all 0.5s var(--ease-out);
}

.mobile-menu.open .mobile-menu__link {
  transform: translateY(0);
  opacity: 1;
}

.mobile-menu.open .mobile-menu__link:nth-child(1) { transition-delay: 0.1s; }
.mobile-menu.open .mobile-menu__link:nth-child(2) { transition-delay: 0.15s; }
.mobile-menu.open .mobile-menu__link:nth-child(3) { transition-delay: 0.2s; }
.mobile-menu.open .mobile-menu__link:nth-child(4) { transition-delay: 0.25s; }
.mobile-menu.open .mobile-menu__link:nth-child(5) { transition-delay: 0.3s; }

.mobile-menu__contact {
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.9rem;   /* was 0.7175rem; 16 Sept responsive pass: 12.6px floor */
  color: rgba(255,255,255,0.5);
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.5s var(--ease-out) 0.35s;
}

.mobile-menu.open .mobile-menu__contact {
  transform: translateY(0);
  opacity: 1;
}

/* ═══════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════ */
.hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
}

.hero__slider {
  position: absolute;
  inset: 0;
}

.hero__slide {
  position: absolute;
  inset: 0;
  height: 100%;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.2s ease, visibility 0s 1.2s;
}

.hero__slide.active {
  opacity: 1;
  visibility: visible;
  transition: opacity 1.2s ease, visibility 0s 0s;
}

.hero__dots {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.hero__dot {
  width: 32px;
  height: 3px;
  border: none;
  padding: 0;
  background: rgba(255,255,255,0.35);
  cursor: pointer;
  transition: background 0.3s ease;
}

.hero__dot.active {
  background: #fff;
}

.hero__slide-bg {
  position: absolute;
  inset: 0;
}

.hero__slide-bg img,
.hero__slide-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(35, 31, 32, 0.7) 0%,
    rgba(35, 31, 32, 0.5) 50%,
    rgba(35, 31, 32, 0.8) 100%
  );
}

.hero__slide-content {
  position: absolute;
  bottom: 3.5rem;
  left: var(--gutter);
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;}

.hero__tagline {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.7306vw, 3.28rem);
  font-weight: 700;
  font-style: normal;
  line-height: 1.08;
  color: #fff;
  max-width: none;}

/* 22 Sept: the homepage hero heading is an H1 for SEO. Webflow stores its line break as a
   newline rather than a <br>, so newlines are honoured here; the hand-coded page uses a real
   <br> and is unaffected. Every other visual property is inherited from .hero__tagline, so the
   H1 and the sibling taglines render identically. */
h1.hero__tagline {
  white-space: pre-line;
}

.hero__explore-btn {
  display: inline-flex;
  font-size: var(--btn-font-size);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--color-copper);
  color: #fff;
  border: 1.5px solid var(--color-copper);
  padding: var(--btn-padding);
  border-radius: 999px;
  transition: all 0.4s var(--ease-out);
  width: fit-content;
  margin-top: 0.5rem;
  min-width: var(--btn-min-width);
  justify-content: center;
  line-height: 1;
  gap: 0.75rem;
  align-items: center;
}

.hero__explore-btn:hover {
  background: #fff;
  border-color: #fff;
  color: var(--color-dark);
}

.hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  cursor: pointer;
  transition: all 0.3s ease;
  backdrop-filter: blur(4px);
}

.hero__arrow:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.6);
}

.hero__arrow--prev {
  left: 2rem;
}

.hero__arrow--next {
  right: 2rem;
}

.hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.hero__scroll span {
  font-size: 0.5637rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.4);
}

.hero__scroll-line {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.15);
  position: relative;
  overflow: hidden;
}

.hero__scroll-line::after {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--color-copper);
  animation: scrollLine 2s ease-in-out infinite;
}

@keyframes scrollLine {
  0% { top: -100%; }
  50% { top: 100%; }
  100% { top: 100%; }
}

/* ═══════════════════════════════════════════════════════
   ABOUT
   ═══════════════════════════════════════════════════════ */
.about {
  background: var(--color-surface-light);
  padding-bottom: 0;
}

.about__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(2.5rem, 4.92vw, 5.74rem);
}

.about__heading {
  font-family: var(--font-serif);
  /* capped so "Different perspectives." always fits the column on one line */
  font-size: clamp(1.75rem, 2.788vw, 2.8946rem);
  font-weight: 700;
  line-height: 1.07;
  position: sticky;
  top: 120px;
}

.about__text {
  font-size: clamp(1.0496rem, 0.8774vw, 1.0496rem);
  font-weight: 400;
  color: var(--color-text-secondary);
  line-height: 1.55;
  margin-bottom: 1.75rem;
}

.about__text--lead {
  font-size: clamp(1.125rem, 1.025vw, 1.23rem);
  color: var(--color-text);
  line-height: 1.5;
}

.about__right .btn {
  margin-top: 0.75rem;
}

/* ═══════════════════════════════════════════════════════
   THREE PILLARS / EXPERTISE
   ═══════════════════════════════════════════════════════ */
.pillars {
  background: var(--color-bg);
  position: relative;
  overflow: hidden;
}


.pillars__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.87vw, 3.0012rem);
  font-weight: 700;
  line-height: 1.08;
  /* Extra clearance below (on top of the usual 1.5rem gap) so the sketch
     underline's scribble tail — sized in em relative to this heading's
     own large font-size — never dips down into the pillar cards below. */
  margin-bottom: calc(1rem + 0.9em);
}
.pillars__sub {
  font-size: clamp(2rem, 2.87vw, 3.0012rem);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.08;
  max-width: 600px;
  margin-bottom: clamp(3rem, 4.92vw, 4.1rem);
}

.pillars__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.15rem;
}

.pillar {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all 0.5s var(--ease-out);
  gap: 1.15rem;
}

.pillar:hover {
  transform: translateY(-4px);
}

.pillar__img {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  /* Square corners, per the mockup. A radius here also left a hairline of page
     background visible along the bottom edge, because the ::after scrim is
     inset:0 (square) inside a rounded box. */
  margin-bottom: 2.25rem;
}

.pillar__img img {
  /* display:block guards against a sub-pixel seam: aspect-ratio can compute a
     fractional height, and rounding the image and its container differently
     exposes a 1px line of whatever sits behind. */
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out);
}

.pillar:hover .pillar__img img {
  transform: scale(1.05);
}

/* Scrim behind the card titles. Kept deliberately weak and fading over most of
   the image height: the old version hit 0.75 opacity at the bottom edge, which
   read as a hard dark band under the text rather than a gradient. Legibility is
   carried mainly by the title's text-shadow now, so this only has to lift
   contrast slightly. */
.pillar__img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
              rgba(20, 18, 17, 0.42) 0%,
              rgba(20, 18, 17, 0.22) 30%,
              rgba(20, 18, 17, 0.06) 58%,
              rgba(20, 18, 17, 0) 80%);
}

.pillar__title {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.35rem;
  z-index: 1;
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 1.312vw, 1.3366rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.2;
  color: #fff;
  /* Carries legibility on light images (the retail floor especially) now that
     the scrim behind is much weaker. */
  text-shadow: 0 1px 10px rgba(20, 18, 17, 0.65), 0 1px 2px rgba(20, 18, 17, 0.45);
}

.pillar__desc {
  font-size: clamp(0.9922rem, 0.943vw, 0.9922rem);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.5;
  margin-bottom: 1.75rem;
  flex-grow: 1;
}

.pillar__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: var(--btn-font-size);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--color-copper);
  color: #fff;
  border: 1.5px solid var(--color-copper);
  padding: var(--btn-padding);
  border-radius: 999px;
  transition: all 0.4s var(--ease-out);
  width: fit-content;
  min-width: var(--btn-min-width);
  justify-content: center;
  line-height: 1;
}

.pillar:hover .pillar__cta {
  background: var(--color-dark);
  border-color: var(--color-dark);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════
   STATS
   ═══════════════════════════════════════════════════════ */
.stats {
  background: var(--color-surface-light);
  color: var(--color-text);
  padding: clamp(5rem, 8.2vw, 9.84rem) 0 clamp(4rem, 4.92vw, 5.74rem);
  position: relative;
  overflow: hidden;
  border-top: none;
  border-bottom: none;
}

.stats::before {
  display: none;
}

/* Stats band runs wider than the About block, close to the page edge */
.stats__container {
  width: 100%;
  padding: 0 clamp(16px, 1.148vw, 22.96px);
}

.stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.stat {
  padding-left: clamp(1.25rem, 4.018vw, 4.838rem);
  padding-right: clamp(1rem, 1.64vw, 2.05rem);
  border-left: 1px solid rgba(35, 31, 32, 0.25);
}

.stat:first-child {
  border-left: none;
}

.stat__label-top {
  font-family: var(--font-serif);
  font-size: clamp(0.875rem, 0.8528vw, 1.025rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text);
  margin-bottom: 1rem;
}

.stat__number {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 2.4764vw, 2.9725rem);
  font-weight: 600;
  display: inline;
  color: var(--color-copper);
}

.stat__suffix {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 2.4764vw, 2.9725rem);
  font-weight: 600;
  color: var(--color-copper);
}

.stat__unit {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 2.4764vw, 2.9725rem);
  font-weight: 600;
  color: var(--color-copper);
  margin-left: 0.25rem;
}

.stat__desc {
  display: block;
  font-size: clamp(0.9225rem, 0.7954vw, 0.9225rem);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.5;
  margin-top: 1rem;
}

/* ═══════════════════════════════════════════════════════
   PROJECTS
   ═══════════════════════════════════════════════════════ */
.projects__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: clamp(3rem, 4.92vw, 4.1rem);
}

.projects__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.87vw, 2.87rem);
  font-weight: 600;
  line-height: 1.15;
  max-width: 600px;
}

.projects__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 var(--gutter);
}

.projects__scroll::-webkit-scrollbar {
  display: none;
}

.projects__track {
  display: flex;
  gap: 1.5rem;
  width: max-content;
}

.project-card {
  display: block;
  width: clamp(320px, 24.6vw, 360.8px);
  flex-shrink: 0;
}

.project-card__img {
  aspect-ratio: 3/4;
  border-radius: 0;
  overflow: hidden;
  margin-bottom: 1.25rem;
  position: relative;
}

.project-card__img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(35, 31, 32, 0.5) 0%, transparent 40%);
  z-index: 1;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.project-card:hover .project-card__img::before {
  opacity: 1;
}

.project-card__img img {
  transition: transform 0.8s var(--ease-out);
}

.project-card:hover .project-card__img img {
  transform: scale(1.06);
}
.project-card__tags {
  font-size: 0.86rem;   /* was 0.615rem; 16 Sept responsive pass: 12px floor */
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-text);
  margin-bottom: 0.5rem;
  display: block;
}

.project-card__title {
  font-family: var(--font-serif);
  font-size: 1.23rem;
  font-weight: 600;
}

/* ═══════════════════════════════════════════════════════
   PORTFOLIO — FULL-BLEED DOT CAROUSEL
   ═══════════════════════════════════════════════════════ */
.portfolio {
  padding: 0;
  background: var(--color-dark);
}

.portfolio__slides {
  position: relative;
  width: 100%;
  height: 80vh;
  min-height: 600px;
  overflow: hidden;
}

.portfolio__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s ease, visibility 0s 1s;
}

.portfolio__slide.active {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease, visibility 0s 0s;
}

.portfolio__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

.portfolio__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(20,18,17,0.35) 0%, rgba(20,18,17,0.15) 40%, rgba(20,18,17,0.75) 100%);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(2rem, 3.28vw, 2.46rem);
  z-index: 2;
}

.portfolio__overlay .section-label {
  color: rgba(255,255,255,0.85);
  margin-bottom: 0;
}

.portfolio__overlay .section-label::before {
  background: var(--color-copper);
}

.portfolio__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.portfolio__dots {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.portfolio__dot {
  width: 40px;
  height: 3px;
  background: rgba(255,255,255,0.3);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.3s ease;
}

.portfolio__dot.active {
  background: #fff;
}

.portfolio__overlay .btn {
  color: #fff;
}

/* ═══════════════════════════════════════════════════════
   WHY CHOOSE US (DARK TEAL)
   ═══════════════════════════════════════════════════════ */
.section--dark-teal {
  background: var(--color-dark);
  color: #fff;
  padding: clamp(5rem, 8.2vw, 6.56rem) 0;
}

.why-us__content {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.why-us__quote {
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 2.05vw, 1.435rem);
  font-weight: 400;
  line-height: 1.7;
  color: rgba(255,255,255,0.9);
}

/* ═══════════════════════════════════════════════════════
   TESTIMONIALS
   ═══════════════════════════════════════════════════════ */
.testimonials {
  background: var(--color-bg);
  color: var(--color-text);
}

.testimonials__carousel {
  position: relative;
  margin-bottom: 2.5rem;
}

.testimonial {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  transform: translateY(30px);
  transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out), visibility 0s 0.6s;
  pointer-events: none;
  height: 0;
  overflow: hidden;
}

.testimonial.active {
  position: relative;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: all;
  height: auto;
  overflow: visible;
  transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out), visibility 0s 0s;
}

.testimonial__grid {
  display: grid;
  grid-template-columns: minmax(200px, 309px) 1fr;
  gap: clamp(3rem, 6.56vw, 8.118rem);
  align-items: start;
}

.testimonial__logo {
  display: flex;
  /* 25 Sept: the client mark sits in a 309x283 box, but at max-height 60% the
     artwork only fills 170px of it. Centring left the logo floating ~57px below
     the first line of the quote, which read as a misalignment. Top-align it so
     the mark and the opening line of the quote share a baseline edge. */
  align-items: flex-start;
  justify-content: center;
  /* the mockups show the client mark sitting straight on the band —
     there is no white plate behind it */
  background: none;
  width: 100%;
  max-width: 309px;
  aspect-ratio: 309 / 283;
  padding: 0;
}
.testimonial__logo-text {
  font-family: var(--font-serif);
  font-size: 0.9225rem;
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
}

.testimonial__logo-img {
  /* 25 Sept: width/height auto so the box hugs the artwork instead of being
     stretched to the full 309x170 slot. Without this, object-fit letterboxes a
     wide mark inside a tall box and the logo floats below the quote's first
     line even though the box itself is top-aligned. */
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 60%;
  object-fit: contain;
  opacity: 0.92;
}

/* 26 Sept: this used to carry filter: brightness(0) on every client logo, on
   the assumption the brand files were all white artwork for a dark band. Only
   one of them is. Measured mean luminance of the supplied files:

     Gold Fields  228   white artwork  — needs inverting to read here
     Norcros      103   dark artwork
     Edgars        34   dark artwork
     TFG            5   dark artwork
     Spur               greyscale SVG, five tones from #292929 to #A2A2A2

   brightness(0) multiplies every channel by zero, so it flattened the four
   dark marks and crushed Spur's shading into a solid black silhouette. The
   filter now applies only to the one file that needs it, matched on its
   filename so no markup has to change. If that asset is ever re-uploaded
   under a different name, move this selector with it. */
.testimonial__logo-img[src*="goldfields"] {
  filter: brightness(0);
}

.testimonial__quote {
  position: relative;
  font-family: var(--font-serif);
  font-size: clamp(1.375rem, 1.8696vw, 2.2468rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--color-text);
  margin-bottom: 2rem;
}

/* Quote mark supplied as artwork rather than a typographic glyph, so the
   shape matches the mockup exactly. Sized in em so it tracks the quote text.
   quote-mark.png is the supplied PNG with an alpha channel derived from its
   luminance: the original is 24-bit with a solid white background, which would
   otherwise show as a white box on the beige band. */
.testimonial__quote::before {
  content: '';
  display: block;
  position: absolute;
  /* 1.3em wide sitting at -1.75em leaves a 0.45em gap before the text */
  left: -1.75em;
  top: -0.05em;
  width: 1.3em;
  /* source is 50 x 43, so height = width / 1.163 */
  height: 1.118em;
  /* 26 Sept: this was a relative path. The stylesheet is served from Webflow's
     CDN, so the browser resolved it against the CDN root and got a 403 — the
     quote mark simply never appeared on any page with Client Stories. An
     absolute URL works from both the Webflow build and the hand-coded pages. */
  background: url('https://cdn.prod.website-files.com/6a918a4796c239c90b4a06dc/6ab76db9b9190b5f664a5ac8_quote-mark.png') no-repeat left top / contain;
}

.testimonial__author {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.testimonial__name {
  font-size: clamp(1.05rem, 1.0496vw, 1.2546rem);
  font-weight: 400;
  color: var(--color-text);
}

.testimonial__role {
  font-size: clamp(0.8rem, 0.7708vw, 0.9184rem);
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.testimonials__nav {
  display: flex;
  align-items: center;
  gap: clamp(1.5rem, 2.624vw, 3.116rem);
}

.testimonials__btn {
  width: clamp(44px, 2.624vw, 50.84px);
  height: clamp(44px, 2.624vw, 50.84px);
  border-radius: 0;
  /* Both arrows are rust orange. The previous arrow had no background of its
     own, so on Webflow it showed the platform's default .w-button blue
     (10 Sept review: "Make this blue the Rust orange"). */
  border: 1px solid var(--color-copper);
  background: var(--color-copper);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  color: #fff;
}

.testimonials__btn:hover {
  border-color: #9A4B2D;
  background: #9A4B2D;
  color: #fff;
}

.testimonials__btn--next {
  background: var(--color-copper);
  border-color: var(--color-copper);
  color: #fff;
}

.testimonials__counter {
  font-size: clamp(0.9375rem, 0.902vw, 1.066rem);
  font-variant-numeric: tabular-nums;
  color: var(--color-text);
}

/* ═══════════════════════════════════════════════════════
   INSIGHTS
   ═══════════════════════════════════════════════════════ */
.insights__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: clamp(3rem, 4.92vw, 4.1rem);
}

.insights__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.87vw, 2.87rem);
  font-weight: 600;
  line-height: 1.15;
  max-width: 600px;
}

.insights {
  background: var(--color-surface-light);
}

.insights--white {
  background: #ffffff;
}

/* 25 Sept: on Webflow these cards come from a CMS Collection List, which
   inserts .w-dyn-list and .w-dyn-items between this grid and the cards. The
   grid then has a single child and does nothing, so the cards stacked in one
   column on the Workplace, Hospitality and Retail pages. Declaring the grid on
   the items wrapper as well fixes it — the same treatment the Insights page
   already uses. The hand-coded pages have the cards as direct children and are
   unaffected. */
.insights__grid,
.insights__grid .w-dyn-items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.insights__grid > .w-dyn-list {
  grid-column: 1 / -1;
}

.insight-card {
  display: block;
  position: relative;
  container-type: inline-size;
  border-radius: 0;
  overflow: visible;
  background: rgba(255, 255, 255, 0);
  border: none;
  transition: all 0.5s var(--ease-out);
}

.insight-card__img {
  position: relative;
  aspect-ratio: 377 / 365;
  overflow: hidden;
}

.insight-card__img img {
  transition: transform 0.8s var(--ease-out);
}

.insight-card:hover .insight-card__img img {
  transform: scale(1.06);
}

/* Read More rests below the card copy and, on hover, rises to the
   vertical centre of the picture.
   The image is 16/10, so its height is 62.5% of the card's width and
   its midpoint is 31.25cqw down from the top — exact regardless of how
   many lines the title wraps to. */
.insight-card:hover .insight-card__readmore,
.insight-card:focus-within .insight-card__readmore {
  opacity: 1;
  pointer-events: auto;
}

.insight-card__readmore {
  position: absolute;
  top: 48.4cqw;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  transition: opacity 0.35s var(--ease-out);
  opacity: 0;
  pointer-events: none;
}



/* Fallback where container units are unavailable: centre of the card */
@supports not (container-type: inline-size) {
  
}

@media (prefers-reduced-motion: reduce) {
  .insight-card__readmore { transition: none; }
}

.insight-card__content {
  padding: 1.1rem 0 0;
}

.insight-card__tag {
  font-size: clamp(0.875rem, 0.8364vw, 1.0004rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text);
  margin-bottom: 0.35rem;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}

.insight-card__tag::before {
  content: '';
  width: 7px;
  height: 17px;
  background: var(--color-copper);
  display: inline-block;
}

.insight-card__tag--article::before { background: #1800AD; }
.insight-card__tag--review::before  { background: #1800AD; }
.insight-card__tag--news::before    { background: #7ED957; }
.insight-card__tag--guide::before   { background: #FF914D; }

.insight-card__title {
  font-family: var(--font-serif);
  font-size: clamp(1.1rem, 1.1vw, 1.35rem);   /* 10 Sept review: smaller, tighter */
  font-weight: 600;
  line-height: 1.25;
  margin-bottom: 0;
}
.insight-card__date {
  font-size: 0.86rem;   /* was 0.6663rem; 16 Sept responsive pass: 12px floor */
  color: var(--color-text);
}

/* ═══════════════════════════════════════════════════════
   CTA
   ═══════════════════════════════════════════════════════ */
.cta {
  text-align: center;
  background: var(--color-dark);
  color: var(--color-text-on-dark);
  position: relative;
  overflow: hidden;
}

.cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 100%, rgba(180, 91, 56, 0.15) 0%, transparent 60%);
  pointer-events: none;
}

.cta__heading {
  font-family: var(--font-serif);
  font-size: clamp(2.5rem, 4.92vw, 4.1rem);
  font-weight: 600;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  position: relative;
}

.cta__text {
  font-size: 0.9225rem;
  font-weight: 400;
  color: var(--color-text-muted-on-dark);
  margin-bottom: 3rem;
  position: relative;
}

.cta__buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  position: relative;
}

/* ═══════════════════════════════════════════════════════
   CLIENT LOGOS
   ═══════════════════════════════════════════════════════ */
.clients {
  background: var(--color-dark);
  color: #fff;
}

.clients__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
  margin-bottom: clamp(3rem, 4.92vw, 4.1rem);
}

.clients .section-label {
  color: rgba(255, 255, 255, 0.85);
}

.clients .section-label::before {
  background: rgba(255, 255, 255, 0.85);
}

.clients__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.87vw, 3.0012rem);
  font-weight: 700;
  line-height: 0.95;
  color: #fff;
}

.clients__text {
  font-size: clamp(1rem, 1.0414vw, 1.23rem);
  font-weight: 400;
  color: rgba(255,255,255,0.9);
  line-height: 1.5;
}

.clients__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.5rem 1.5rem;
}

.clients__logo,
.clients__logo--light,
.clients__logo--dark {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  background: rgba(255, 255, 255, 0);
  min-height: 120px;
}

.clients__logo img,
.clients__logo svg {
  width: 100%;
  max-width: 170px;   /* was 230px; 10 Sept review: smaller logos */
  height: auto;
  max-height: 100px;  /* was 140px */
  object-fit: contain;
  /* Force any logo (regardless of source colour) to render as a soft,
     off-white silhouette so the row reads as one consistent set. */
  filter: brightness(0) invert(1);
  opacity: 0.7;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

/* 26 Sept: the blanket treatment above is right for the flat wordmarks on this
   wall, but Spur's mark carries internal detail — a headdress figure inside the
   starburst — drawn in five greys from #292929 to #A2A2A2. brightness(0)
   collapses all five to one value before invert(1) turns them white, so the
   figure vanished into a featureless blob. Inverting alone keeps the tonal
   separation that makes the mark readable, and the small brightness lift brings
   its weight back into line with the solid-white logos beside it. */
.clients__logo img[src*="spur"] {
  filter: invert(1) brightness(1.25);
}

.clients__logo:hover img,
.clients__logo:hover svg {
  opacity: 1;
  transform: translateY(-2px);
}

/* ═══════════════════════════════════════════════════════
   AWARDS
   ═══════════════════════════════════════════════════════ */
.awards {
  background: var(--color-dark);
  color: #fff;
}

.awards__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.3288vw, 2.788rem);
  font-weight: 700;
  line-height: 1.11;
  margin-bottom: 1rem;
  color: #fff;
}

.awards__sub {
  font-size: clamp(1rem, 1.0414vw, 1.2546rem);
  font-weight: 400;
  color: rgba(255,255,255,0.9);
  line-height: 1.5;
  max-width: 26em;
  margin-bottom: clamp(2rem, 3.28vw, 2.46rem);
}

.awards__list {
  border-top: 1px solid rgba(255,255,255,0.1);
}

.awards__row {
  display: grid;
  grid-template-columns: 144px 1fr 1fr 40px;
  align-items: center;
  gap: 2rem;
  padding: 1.75rem 0.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  border-radius: 0;
  transition: all 0.3s ease;
}

.awards__row:hover {
  background: #3A3635;
}

.awards__year {
  font-size: clamp(1.1rem, 1.1726vw, 1.4022rem);
  font-weight: 600;
  color: var(--color-copper);
  transition: color 0.3s ease;
}

.awards__row:hover .awards__year {
  color: #fff;
}

.awards__name {
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 1.804vw, 2.1648rem);
  font-weight: 700;
  color: #fff;
}

.awards__category {
  font-size: clamp(1rem, 1.3366vw, 1.6072rem);
  font-weight: 400;
  color: #ffffff;
  text-align: right;
  transition: color 0.3s ease;
}

.awards__row:hover .awards__category {
  color: rgba(255,255,255,0.95);
}

.awards__arrow {
  opacity: 0.9;
  color: #fff;
  transition: opacity 0.3s ease;
}

.awards__cta {
  margin-top: 2rem;
}

.awards__row:hover .awards__arrow {
  opacity: 1;
}

/* ═══════════════════════════════════════════════════════
   WHY CHOOSE DESIGN PARTNERSHIP — ACCORDION
   ═══════════════════════════════════════════════════════ */
.why-choose {
  background: var(--color-bg);
}

.why-choose__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.583vw, 2.706rem);
  font-weight: 700;
  line-height: 1.08;
  margin-bottom: clamp(2.5rem, 4.1vw, 3.28rem);
}

.why-choose__item {
  border-bottom: 1px solid rgba(35, 31, 32, 0.08);
  transition: background 0.4s var(--ease-out);
}

.why-choose__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
  padding: 2rem 1.5rem;
}

.why-choose__title {
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 1.599vw, 1.8614rem);
  font-weight: 400;
  color: var(--color-text);
  transition: color 0.4s ease;
  line-height: 1.25;
}

.why-choose__desc {
  font-size: clamp(0.9102rem, 0.779vw, 0.9102rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--color-text);
  opacity: 1;
  transition: all 0.4s var(--ease-out);
}

.why-choose__item:hover {
  background: var(--color-copper);
}

.why-choose__item:hover .why-choose__title {
  color: #fff;
}

.why-choose__item:hover .why-choose__desc {
  color: rgba(255, 255, 255, 0.92);
}

/* ═══════════════════════════════════════════════════════
   CAREERS BANNER
   ═══════════════════════════════════════════════════════ */
.careers {
  background: var(--color-copper);
  color: #fff;
}

.careers .section-label {
  color: rgba(255,255,255,0.85);
}

.careers .section-label::before {
  background: rgba(255,255,255,0.85);
}

.careers__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(2rem, 4.1vw, 3.28rem);
  align-items: center;
}

.careers__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.2796vw, 2.7388rem);
  font-weight: 700;
  line-height: 1.08;
}

.careers__text {
  font-size: clamp(1rem, 1.0414vw, 1.2546rem);
  line-height: 1.5;
  color: #ffffff;
  margin-bottom: 2rem;
}

.careers__buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.careers__buttons .btn,
.ct-careers__buttons .btn {
  background: rgba(255, 255, 255, 0);
  border-color: #ffffff;
  color: #ffffff;
}

/* 16 Sept: matched to the Canva mockups (Contact, Locations, Our People): on the copper careers band the first button is filled charcoal and
   the second is a charcoal outline. */
.ct-careers__buttons .btn:first-child {
  background: var(--color-dark);
  border-color: var(--color-dark);
}

.ct-careers__buttons .btn + .btn {
  border-color: var(--color-dark);
}

/* ═══════════════════════════════════════════════════════
   FAQ — ACCORDION
   ═══════════════════════════════════════════════════════ */
.faq {
  background: var(--color-bg);
}

.faq__grid {
  display: grid;
  grid-template-columns: 0.55fr 1fr;
  gap: clamp(2rem, 4.1vw, 4.92rem);
}

.faq__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 2.3944vw, 2.87rem);
  font-weight: 700;
  line-height: 1.08;
}

.faq__list {
  display: flex;
  flex-direction: column;
}

.faq__item {
  border-bottom: 1px solid var(--color-border);
}

.faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  cursor: pointer;
  /* mockup FAQ row pitch measured at ~71px: ~21px padding + 27px line box */
  padding-top: 1.35rem;
  padding-bottom: 1.35rem;
  padding-left: 0;
  padding-right: 0;
}

.faq__question-text {
  font-size: clamp(1.15rem, 1.54vw, 1.6rem);   /* 16 Sept: ~21px at 1366 per mockups */
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.3;
}

.faq__icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.faq__icon::before,
.faq__icon::after {
  content: '';
  position: absolute;
  background: var(--color-text);
  transition: transform 0.3s var(--ease-out);
}

.faq__icon::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 1.5px;
  transform: translateY(-50%);
}

.faq__icon::after {
  left: 50%;
  top: 0;
  width: 1.5px;
  height: 100%;
  transform: translateX(-50%);
}

.faq__item.active .faq__icon::after {
  transform: translateX(-50%) rotate(90deg);
  opacity: 0;
}

.faq__answer {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.4s var(--ease-out);
}

.faq__item.active .faq__answer {
  max-height: 200px;
  opacity: 1;
  padding-bottom: 1.5rem;
}
.faq__answer p {
  font-size: clamp(1rem, 1.2382vw, 1.4862rem);
  line-height: 1.55;
  color: var(--color-text);
  max-width: 640px;
}

/* ═══════════════════════════════════════════════════════
   CONTACT FORM
   ═══════════════════════════════════════════════════════ */
.contact {
  background: var(--color-dark);
  color: #fff;
}

.contact__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 4.92vw, 4.92rem);
  align-items: start;
}

.contact__heading {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3.28vw, 2.46rem);
  font-weight: 700;
  line-height: 1.08;
  margin-bottom: 2rem;
  color: #fff;
}

.contact__text {
  font-size: clamp(1rem, 1.0414vw, 1.2546rem);
  font-weight: 400;
  color: rgba(255,255,255,0.9);
  line-height: 1.5;
  max-width: 22em;
}

.contact__illustration {
  margin-top: 2.5rem;
  max-width: 450px;
}

.contact__illustration img {
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
  opacity: 0.7;
  filter: sepia(0.2) contrast(1.1);
}

.contact__form {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.contact__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.35rem;
}

.contact__input,
.contact__select,
.contact__textarea {
  width: 100%;
  padding: 1.1rem 1rem;
  border: none;
  border-radius: 0;
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: 0.9225rem;
  font-weight: 400;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transition: box-shadow 0.3s ease;
  outline: none;
  appearance: none;
  line-height: normal;
}

/* Webflow's own form CSS gives .w-input and .w-select a fixed 38px height
   and a 1.43 line-height. With this padding that leaves ~7px for the text,
   which clips the LOCATION / INTERESTED IN selects. Let the fields size to
   their content (48px) as they do in the hand-coded build. The textarea
   keeps its min-height. */
.contact__input,
.contact__select {
  height: auto;
}

.contact__input:focus,
.contact__select:focus,
.contact__textarea:focus {
  box-shadow: 0 0 0 2px var(--color-copper);
}

.contact__input::placeholder,
.contact__select::placeholder,
.contact__textarea::placeholder {
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 1;
  transition: color 0.2s ease, opacity 0.2s ease;
}

/* Clear the label the moment the field is clicked into, rather than waiting
   for the first keystroke (the browser default). */
.contact__input:focus::placeholder,
.contact__textarea:focus::placeholder {
  color: transparent;
  opacity: 0;
}

.contact__select {
  cursor: pointer;
}

.contact__textarea {
  resize: vertical;
  min-height: 10.5rem;
  padding-top: 3.4rem;   /* keeps MESSAGE sitting centre-ish, as in the mockup */
}

.contact__submit {
  align-self: flex-start;
  margin-top: 0.65rem;   /* 10 Sept review: a little more gap above the button */
}

/* ═══════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════ */
/* 10 Sept review: "Reduce overall size of text and spacing in the footer."
   Type is ~15% smaller and the vertical rhythm ~25% tighter. */
.footer {
  background: var(--color-dark);
  color: #fff;
  padding: clamp(48px, 5vw, 64px) 0 1.5rem;
}

.footer__top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.footer__col--brand {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.footer__brand-icon {
  width: 140px;
  height: 140px;
  object-fit: contain;
}

.footer__heading {
  font-size: clamp(0.93rem, 0.94vw, 1.14rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #ffffff;
  margin-bottom: 1.25rem;
  font-family: var(--font-serif);
}

.footer__link {
  display: block;
  font-size: clamp(0.93rem, 0.9vw, 1.1rem);
  font-weight: 400;
  color: #fff;
  margin-bottom: 0.25rem;
  transition: color 0.3s ease;
  line-height: 1.5;
}

.footer__link:hover {
  color: var(--color-copper-light);
}

.footer__address {
  font-size: clamp(0.93rem, 0.9vw, 1.1rem);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.5;
  margin-top: 1.1rem;
}

.footer__offices {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1.25rem 0;
  font-size: clamp(0.93rem, 0.9vw, 1.1rem);
  font-weight: 500;
  color: var(--color-copper-light);
  padding-top: 0;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

.footer__pipe {
  color: var(--color-copper-light);
  opacity: 0.6;
}

.footer__copy {
  display: block;
  text-align: center;
  font-size: clamp(0.85rem, 0.75vw, 0.95rem);
  color: rgba(255,255,255,0.5);
  padding-top: 1.25rem;
}

.footer__socials {
  display: flex;
  gap: 1.1rem;
  margin-top: 1.1rem;
}

.footer__social {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  color: #fff;
}

.footer__social:hover {
  border-color: var(--color-copper);
  background: var(--color-copper);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .nav__links {
    display: none;
  }

  .nav__cta {
    display: none;
  }

  .insights__grid,
  .insights__grid .w-dyn-items {
    grid-template-columns: repeat(2, 1fr);
  }

  .nav__menu-btn {
    display: flex;
    /* 25 Sept: the bars are 28 x 17, which is a small target for a thumb —
       both Apple and Google ask for 44-48px. Grow the hit area with a
       centred pseudo-element rather than padding, so the button catches
       taps at 48 x 48 while the bars stay exactly where they are drawn. */
    position: relative;
  }

  .nav__menu-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%);
  }

  .about__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .about__heading {
    position: static;
  }

  .pillars__list {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .clients__header {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .clients__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .awards__row {
    grid-template-columns: 60px 1fr auto;
  }

  .awards__category {
    display: none;
  }

  .testimonial__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  /* Single column here, so the quote starts hard against the container edge and
     there is no margin left to hang the mark in. Bring it inside and indent the
     text instead, otherwise it is clipped off the left of the viewport. */
  .testimonial__quote {
    padding-left: 1.75em;
  }

  .testimonial__quote::before {
    left: 0;
  }

  .contact__inner {
    grid-template-columns: 1fr;
  }

  .insights__grid,
  .insights__grid .w-dyn-items {
    grid-template-columns: 1fr;
  }

  .footer__top {
    grid-template-columns: repeat(2, 1fr);
  }

  .stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem 0;
  }

  .stat:nth-child(3) {
    border-left: none;
  }

  .why-choose__row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .careers__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .faq__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/* Clients logos always sit in two rows above phone width (15 Sept review:
   "2 rows of logos, not 3"). The column count follows the logo count:
   up to 8 logos use 4 columns, 9-10 use 5, 11-12 use 6. Kept above 768px
   so phones keep their 2-column stack. Placed after the 1024px block so it
   overrides that block's 3-column tablet rule. */
@media (min-width: 769px) {
  .clients__grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .clients__grid:has(> :nth-child(9)) {
    grid-template-columns: repeat(5, 1fr);
  }

  .clients__grid:has(> :nth-child(11)) {
    grid-template-columns: repeat(6, 1fr);
  }
}

@media (max-width: 768px) {
  .clients__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .contact__row {
    grid-template-columns: 1fr;
  }

  .portfolio__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .why-choose__row {
    padding: 1.25rem 0;
  }

  .projects__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
  }

  .insights__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
  }

  .cta__buttons {
    flex-direction: column;
  }

  .footer__top {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .footer__offices {
    flex-wrap: wrap;
    font-size: 0.86rem;   /* was 0.82rem; 16 Sept responsive pass: 12px floor */
  }
}

@media (max-width: 480px) {
  .stats__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .stat {
    padding-left: 0;
    border-left: none;
  }
}

/* ═══════════════════════════════════════════════════════
   PRELOADER
   ═══════════════════════════════════════════════════════ */
.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--color-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

.preloader.done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader__inner {
  text-align: center;
  color: var(--color-text-on-dark);
}

.preloader__logo {
  display: flex;
  justify-content: center;
  margin-bottom: 1.5rem;
}

.preloader__icon {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 4px;
  opacity: 0;
  animation: iconReveal 0.8s var(--ease-out) 0.2s forwards;
}

@keyframes iconReveal {
  to {
    opacity: 1;
  }
}

.preloader__tagline {
  font-size: 0.615rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  opacity: 0;
  animation: fadeUp 0.6s var(--ease-out) 0.4s forwards;
  margin-bottom: 3rem;
  color: rgba(255,255,255,0.6);
}

.preloader__bar {
  width: 200px;
  height: 2px;
  background: rgba(255,255,255,0.15);
  margin: 0 auto 1rem;
  overflow: hidden;
}

.preloader__bar-fill {
  width: 0%;
  height: 100%;
  background: var(--color-copper);
  transition: width 0.1s linear;
}

.preloader__counter {
  font-family: var(--font-serif);
  font-size: 0.7175rem;
  font-variant-numeric: tabular-nums;
  color: rgba(255,255,255,0.4);
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(15px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════════
   CUSTOM CURSOR
   ═══════════════════════════════════════════════════════ */
.cursor {
  display: none;
}

.cursor__dot {
  width: 8px;
  height: 8px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: -4px;
  left: -4px;
  transition: transform 0.15s ease;
}

.cursor__ring {
  width: 48px;
  height: 48px;
  border: 1.5px solid rgba(255,255,255,0.5);
  border-radius: 50%;
  position: absolute;
  top: -24px;
  left: -24px;
  transition: all 0.3s var(--ease-out);
}

.cursor.hovering .cursor__ring {
  width: 80px;
  height: 80px;
  top: -40px;
  left: -40px;
  border-color: var(--color-copper);
  background: rgba(180, 91, 56, 0.1);
}

.cursor.hovering .cursor__dot {
  transform: scale(0);
}

.cursor__label {
  position: absolute;
  top: -10px;
  left: 50px;
  font-size: 0.5637rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #fff;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s var(--ease-out);
}

.cursor.hovering .cursor__label {
  opacity: 1;
  transform: translateX(0);
}

/* Hide cursor on touch devices */
@media (hover: none) {
  .cursor { display: none; }
}

/* ═══════════════════════════════════════════════════════
   SCROLL PROGRESS BAR
   ═══════════════════════════════════════════════════════ */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--color-dark), var(--color-copper));
  z-index: 1001;
  transition: width 0.05s linear;
}

/* ═══════════════════════════════════════════════════════
   FILM GRAIN OVERLAY
   ═══════════════════════════════════════════════════════ */
.grain {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9990;
  pointer-events: none;
  opacity: 0.03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  will-change: opacity;
}

/* ═══════════════════════════════════════════════════════
   HAND-DRAWN SKETCH MARKS (underline / circle)
   Draw themselves on when the section scrolls into view.
   ═══════════════════════════════════════════════════════ */
.sketch-wrap {
  position: relative;
  display: inline-block;
}

.sketch-svg {
  position: absolute;
  overflow: visible;
  pointer-events: none;
}

.sketch-svg path {
  fill: none;
  stroke: var(--color-copper);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  /* stroke-dasharray / stroke-dashoffset and the draw-on animation itself
     are handled entirely by GSAP in JS (see main.js) — not a CSS
     transition — so there's no risk of the browser skipping the animation
     when the hidden and revealed states get set in quick succession. */
}

.sketch-svg--careers {
  left: 0;
  top: 100%;
  margin-top: -0.10em;
  width: 100%;
  height: 0.35em;
}

.sketch-svg--careers path {
  stroke: var(--color-dark);
  stroke-width: 2.6;
}

.sketch-svg--underline {
  left: -2%;
  top: 100%;
  margin-top: -0.1em;
  width: 104%;
  height: 1em;
}

.sketch-svg--circle path {
  stroke-width: 9;
}

.sketch-svg--circle {
  left: -5.2%;
  top: -7.5%;
  width: 120%;
  height: 146.5%;
}

/* The clients heading sits on the dark section, so use a brighter stroke */
.clients__heading .sketch-svg path {
  stroke: var(--color-copper-light);
}

/* ═══════════════════════════════════════════════════════
   CHARACTER ANIMATION (HERO)
   ═══════════════════════════════════════════════════════ */
.char-wrap {
  display: inline-block;
  overflow: hidden;
}

.char {
  display: inline-block;
  transform: translateY(120%);
  transition: transform 1s var(--ease-out);
}

.hero.loaded .char {
  transform: translateY(0);
}

/* Stagger each character */
.hero__title-line:first-child .char-wrap:nth-child(1) .char { transition-delay: 0.5s; }
.hero__title-line:first-child .char-wrap:nth-child(2) .char { transition-delay: 0.55s; }
.hero__title-line:first-child .char-wrap:nth-child(3) .char { transition-delay: 0.6s; }
.hero__title-line:first-child .char-wrap:nth-child(4) .char { transition-delay: 0.65s; }
.hero__title-line:first-child .char-wrap:nth-child(5) .char { transition-delay: 0.7s; }
.hero__title-line:first-child .char-wrap:nth-child(6) .char { transition-delay: 0.75s; }
.hero__title-line:first-child .char-wrap:nth-child(7) .char { transition-delay: 0.8s; }

.hero__title-line--italic .char-wrap:nth-child(1) .char { transition-delay: 0.85s; }
.hero__title-line--italic .char-wrap:nth-child(2) .char { transition-delay: 0.9s; }
.hero__title-line--italic .char-wrap:nth-child(3) .char { transition-delay: 0.95s; }
.hero__title-line--italic .char-wrap:nth-child(4) .char { transition-delay: 1.0s; }
.hero__title-line--italic .char-wrap:nth-child(5) .char { transition-delay: 1.05s; }

/* ═══════════════════════════════════════════════════════
   MARQUEE TICKER STRIP
   ═══════════════════════════════════════════════════════ */
.marquee {
  overflow: hidden;
  white-space: nowrap;
  background: var(--color-dark);
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--color-border);
}

.marquee__track {
  display: inline-flex;
  align-items: center;
  animation: marqueeScroll 25s linear infinite;
}

.marquee__item {
  font-family: var(--font-serif);
  font-size: clamp(1rem, 1.64vw, 1.23rem);
  font-style: italic;
  color: var(--color-text-on-dark);
  padding: 0 1rem;
  flex-shrink: 0;
}

.marquee__separator {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-coral);
  flex-shrink: 0;
}

@keyframes marqueeScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

.marquee:hover .marquee__track {
  animation-play-state: paused;
}

/* ═══════════════════════════════════════════════════════
   SHARED CROSS-PAGE COMPONENTS
   Used by contact.html, locations.html, people.html and any
   future page that reuses the copper "Careers CTA" band.
   ═══════════════════════════════════════════════════════ */

/* ── Squiggle underline (decorative accent under a phrase) ── */
.ct-squiggle {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

.ct-squiggle::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.15em;
  height: 0.4em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M0 8 Q10 0 20 8 T40 8 T60 8 T80 8 T100 8 T120 8 T140 8 T160 8 T180 8 T200 8' fill='none' stroke='%23C07B50' stroke-width='3'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

/* ── Hand-drawn scribble underline ─────────────────────
   This is the actual mark from the Canva mockup, lifted out of
   "Workplace (1).png" and keyed to transparency, so the dry-marker
   texture is the real thing rather than a vector approximation.
   Geometry measured off the mockup: 204px wide under a 140px word
   (so 145.7% wide, starting 17.9% before it), sitting 14px under
   the baseline. It wipes on left-to-right as the heading reveals. */
.scribble {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

.scribble__ink {
  position: absolute;
  left: -17.9%;
  bottom: -0.62em;
  width: 145.7%;
  height: auto;              /* overrides the global img { height: 100% } */
  object-fit: fill;
  pointer-events: none;
  user-select: none;
}

/* Starts clipped only when the wipe animation can actually run. */
.js-anim .scribble__ink {
  clip-path: inset(0 100% 0 0);
}

@keyframes scribble-wipe { to { clip-path: inset(0 0 0 0); } }

/* the heading carries .reveal-up, so .revealed fires as it scrolls in */
.revealed .scribble__ink {
  animation: scribble-wipe 0.72s cubic-bezier(0.36, 0.05, 0.28, 1) 0.24s forwards;
}

@media (prefers-reduced-motion: reduce) {
  .scribble__ink { clip-path: none; }
  .revealed .scribble__ink { animation: none; }
}

/* ── Careers CTA band (copper) ─────────────────────── */
.ct-careers {
  background: var(--color-copper);
  color: #fff;
}

.ct-careers .section-label {
  color: rgba(255, 255, 255, 0.85);
}

.ct-careers .section-label::before {
  background: rgba(255, 255, 255, 0.85);
}

.ct-careers__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(2rem, 3.28vw, 3.28rem);
  align-items: center;
}

/* 18 Sept: mockups start the band's content at x121 and the right-hand
   column at x805 on the 1366 canvas. */
@media (min-width: 1025px) {
  .ct-careers > .container {
    max-width: none;
    padding: 0 8.86vw;
  }

  .ct-careers__grid {
    grid-template-columns: 50.1vw 1fr;
    gap: 0;
  }

  .ct-careers__text { max-width: 23em; }
}

.ct-careers__heading {
  font-family: var(--font-serif);
  font-size: clamp(1.9rem, 2.93vw, 3rem);      /* 18 Sept: re-measured on the Contact and Our People mockups: ~40px at 1366 */
  font-weight: 600;
  line-height: 1.05;
  text-wrap: balance;   /* "Great places start / with great people." as in the mockups */
  color: #fff;
}

/* 18 Sept: the underline under "great people." is the actual marker
   stroke from the Our People / Contact mockups (images/scribble-underline-
   charcoal-design-partnership.png, keyed to transparency), embedded so the
   Webflow copy of this stylesheet needs no image path. Measured off the
   mockup: it starts 0.3em before "great", runs 0.25em past "people." and
   sits 0.9em below the top of the line, behind the g and p descenders.
   Like the FAQ scribble it wipes on as the band reveals. */
.ct-careers__heading .ct-squiggle {
  isolation: isolate;
}

.ct-careers__heading .ct-squiggle::after {
  top: 0.9em;
  bottom: auto;
  left: -0.3em;
  right: -0.25em;
  height: 0.425em;
  z-index: -1;
  background-image: url("data:image/png;base64,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");
  background-size: 100% 100%;
}

.js-anim .ct-careers__heading .ct-squiggle::after {
  clip-path: inset(0 100% 0 0);
}

.revealed .ct-careers__heading .ct-squiggle::after,
.ct-careers__heading.revealed .ct-squiggle::after {
  animation: scribble-wipe 0.72s cubic-bezier(0.36, 0.05, 0.28, 1) 0.24s forwards;
}

@media (prefers-reduced-motion: reduce) {
  .ct-careers__heading .ct-squiggle::after { clip-path: none; animation: none; }
}

.ct-careers__text {
  font-size: clamp(1.1rem, 1.39vw, 1.4rem);    /* 16 Sept: matched to the Canva mockups (Contact, Locations, Our People): ~19px at 1366 */
  line-height: 1.37;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 2rem;
  max-width: 460px;
}

.ct-careers__buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

@media (max-width: 1024px) {
  .ct-careers__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .ct-careers__buttons {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ═══════════════════════════════════════════════════════
   PRIVACY POLICY  (/privacy-policy)
   Long-form legal prose. Deliberately carries no .reveal-up
   so the page renders with or without JavaScript, including
   in the Webflow Designer canvas.
   ═══════════════════════════════════════════════════════ */
.pp-legal { background: var(--color-bg); }
.pp-legal__title {
  font-family: var(--font-sans);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.05;
  color: var(--color-text);
  margin: 0 0 1rem;
}
.pp-legal__meta {
  font-family: var(--font-serif);
  font-size: 0.86rem;   /* was 0.8rem; 16 Sept responsive pass: 12px floor */
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 4rem;
}
.pp-legal__body { max-width: 68ch; }
.pp-legal__h2 {
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.25;
  color: var(--color-text);
  margin: 3.25rem 0 1rem;
}
.pp-legal__p {
  font-family: var(--font-serif);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-text-secondary);
  margin: 0 0 1.25rem;
}
.pp-legal__list { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.pp-legal__li {
  font-family: var(--font-serif);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-text-secondary);
  margin-bottom: 0.5rem;
}
.pp-legal__link { color: var(--color-copper); text-decoration: underline; }

/* ═══════════════════════════════════════════════════════
   25 Sept: touch target sizes.

   Audited on a 390px viewport: the footer navigation links were 334 x 20,
   the social icons 24 x 24, and the phone and email in the mobile menu
   130 x 20. Apple asks for 44px and Google for 48px, so all of them were
   comfortably under. Nothing here changes how anything looks at a glance —
   the links gain vertical padding, which also opens the footer up a little,
   and the icons keep their 24px artwork inside a larger invisible hit area.
   ═══════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .footer .footer__link {
    padding: 0.75rem 0;
    margin-bottom: 0;
  }

  .footer .footer__socials {
    gap: 1.5rem;
  }

  .footer .footer__social {
    position: relative;
  }

  /* 40px centred on the 24px icon, and the wider gap above keeps
     neighbouring hit areas from overlapping each other */
  .footer .footer__social::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    transform: translate(-50%, -50%);
  }

  .mobile-menu a[href^="tel:"],
  .mobile-menu a[href^="mailto:"] {
    padding: 0.7rem 0;
  }
}

/* -------------------------------------------------------------------------
   Mobile menu — expandable sections (rows built by main.js section 17h)
   ------------------------------------------------------------------------- */
.mobile-menu {
  align-items: center;
  align-items: safe center;      /* a long open section must never clip the top */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 5.5rem 1.5rem 3rem;
}

.mobile-menu__link.has-sub {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  cursor: pointer;
}

.mobile-menu__link.has-sub::after {
  content: '';
  width: 0.4em;
  height: 0.4em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.14em) rotate(45deg);
  transition: transform 0.3s var(--ease-out);
}

.mobile-menu__link.has-sub.expanded::after {
  transform: translateY(0.08em) rotate(-135deg);
}

.mobile-menu__link.has-sub.expanded {
  margin-bottom: 0.4rem;
}

.mobile-menu__sub {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s var(--ease-out);
}

.mobile-menu__link.has-sub.expanded + .mobile-menu__sub {
  grid-template-rows: 1fr;
}

.mobile-menu__sub-inner {
  min-height: 0;
  overflow: hidden;
}

.mobile-menu__sub-link {
  display: block;
  font-family: var(--font-serif);
  font-size: clamp(1rem, 3.4vw, 1.25rem);
  letter-spacing: 0.04em;
  padding: 0.8rem 0;               /* keeps the tap target above 44px */
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.mobile-menu__sub-link:hover,
.mobile-menu__sub-link:focus {
  opacity: 1;
}

.mobile-menu__sub-inner .mobile-menu__sub-link:last-child {
  margin-bottom: 0.6rem;
}
