/* Beachhut PR - v2 shared stylesheet
 *
 * Palette locked 2026-05-13 by Niall + Megan (sign-off in 11/13 May email
 * thread): Megan's Palette 1 = Indigo + Coral on the shared yellow/teal/navy
 * anchor. See start of palettes.css history for the 4 options reviewed.
 */

:root{
  --dark:#111F29;       /* Megan's deep navy */
  --navy:#0B1620;
  --mid:#19293A;
  --gold:#EAB747;       /* Megan's yellow */
  --teal:#58CAB7;       /* Megan's teal */
  --accent:#6564DB;     /* Indigo (palette-1 accent) */
  --accent-2:#EF767A;   /* Coral (palette-1 accent-2) */
  --white:#fff;
  --text:.7;
  --muted:.45;
  --dim:.3;
  --glass:rgba(255,255,255,.04);
  --border:rgba(255,255,255,.07);
  --max:1200px;
  --london:#9F7AEA;
  --dublin:#48BB78;
  --amsterdam:#F56565;
}

/* Accent wiring for the locked palette.
 * .btn-primary, .nav-cta, .stat-n are overridden in place further down the
 * stylesheet (search for !important on .nav-cta). The rules here cover the
 * lighter-weight wiring that doesn't conflict with later-defined styles. */
.hero .eyebrow { color: var(--accent) }
.service:nth-child(3n+2) .service-icon {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}
section + section { border-top: 2px solid var(--accent) }

/* Informational banner - gradient bar pinned to the top of the page.
 * Apply class="has-preview-banner" on <body> to push the fixed nav down
 * by the banner height and pad the hero. Desktop only (hidden on mobile
 * so the small-screen hero stays as-is). */
.preview-banner {
  display: none;
}
@media(min-width:641px) {
  .preview-banner {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 110;
    height: 36px;
    padding: 0 20px;
    background: linear-gradient(90deg, var(--teal), var(--accent), var(--accent-2));
    color: var(--dark);
    font: 600 13px/36px 'Inter', sans-serif;
    letter-spacing: .02em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .preview-banner .pb-sep { opacity: .55 }
  .preview-banner a { color: var(--dark); text-decoration: underline }
  body.has-preview-banner { padding-top: 36px }
  body.has-preview-banner > nav { top: 36px }
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Inter',sans-serif;background:var(--dark);color:rgba(255,255,255,var(--text));line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--teal);color:var(--dark)}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit;-webkit-tap-highlight-color:rgba(0,201,183,.2)}
button,[role="button"]{-webkit-tap-highlight-color:rgba(0,201,183,.2)}
input,textarea,select{font-size:16px}
.filter-row{-webkit-overflow-scrolling:touch}

/* TYPOGRAPHY */
h1,h2{font-family:'DM Serif Display',serif;font-weight:400}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--teal);margin-bottom:20px}
.gold{color:var(--gold)}
.teal{color:var(--teal)}

/* LAYOUT */
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
section{padding:140px 0}

/* NAV - scoped to top-level page nav only (avoid cascading into drawer's <nav> child) */
body > nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 40px;padding-left:max(40px,env(safe-area-inset-left));padding-right:max(40px,env(safe-area-inset-right));padding-top:max(20px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;transition:all .3s}
body > nav.scrolled{background:rgba(5,21,37,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}
.nav-logo{height:80px;filter:brightness(0) invert(1);opacity:.85;transition:height .3s}
nav.scrolled .nav-logo{height:48px}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{font-size:14px;font-weight:500;color:rgba(255,255,255,.6);transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-cta{background:var(--accent-2)!important;color:#fff!important;font-weight:700!important;padding:10px 22px;border-radius:6px;transition:all .2s!important}
.nav-cta:hover{background:var(--accent)!important;box-shadow:0 4px 20px rgba(101,100,219,.3)}
/* Nav hover dropdowns (Services + Sectors) - menu DOM is injected by scripts.js */
.nav-dd{position:relative;display:inline-flex;align-items:center}
.nav-dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:232px;background:rgba(5,21,37,.97);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 16px 40px rgba(0,0,0,.4);z-index:200}
.nav-dd-menu::before{content:'';position:absolute;top:-12px;left:0;right:0;height:12px}
.nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(4px)}
.nav-dd-menu a{display:block;padding:9px 14px;border-radius:6px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.7);white-space:nowrap;transition:background .15s,color .15s}
.nav-dd-menu a:hover{background:rgba(101,100,219,.16);color:var(--white)}

/* HAMBURGER (mobile) */
.hamburger{display:none;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:8px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;padding:0;color:var(--white);transition:all .2s;flex-shrink:0;font-family:'Inter',sans-serif}
.hamburger:hover{border-color:rgba(255,255,255,.25)}
.hamburger svg{width:22px;height:22px;display:block}
.hamburger .ham-close{display:none}
.drawer-open .hamburger{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:1003;background:rgba(5,21,37,.85);backdrop-filter:blur(8px)}
.drawer-open .hamburger .ham-open{display:none}
.drawer-open .hamburger .ham-close{display:block}

/* DRAWER (mobile slide-in) - block layout, explicit widths to avoid flex squash bugs */
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);z-index:1001;opacity:0;pointer-events:none;transition:opacity .3s}
.drawer{position:fixed;top:0;left:0;bottom:0;width:min(86vw,360px);background:var(--dark);z-index:1002;transform:translateX(-100%);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(16px,calc(16px + env(safe-area-inset-top))) 0 max(20px,calc(20px + env(safe-area-inset-bottom)));box-shadow:12px 0 40px rgba(0,0,0,.4);box-sizing:border-box}
.drawer-logo{display:block;padding:0 24px 14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:14px}
.drawer-logo img{height:64px;width:auto;filter:brightness(0) invert(1);opacity:.95;display:block}
.drawer-open .drawer-backdrop{opacity:1;pointer-events:auto}
.drawer-open .drawer{transform:translateX(0)}
.drawer-open{overflow:hidden}
.drawer-section{display:block;position:static;padding:0 24px;margin-bottom:18px;width:100%;box-sizing:border-box}
.drawer-section-label{display:block;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.35);font-weight:700;margin-bottom:8px}

/* Page link list */
.drawer-links{display:block;width:100%}
.drawer-links a{display:block;width:100%;box-sizing:border-box;font-family:'DM Serif Display',serif;font-size:18px;color:rgba(255,255,255,.85);padding:9px 0;line-height:1.2;border-bottom:1px solid rgba(255,255,255,.06);transition:color .2s,padding-left .2s;text-decoration:none}
.drawer-links a:last-child{border-bottom:none}
.drawer-links a:hover,.drawer-links a:focus{color:var(--teal);padding-left:6px}
.drawer-links a.active{color:var(--teal)}

/* Region 2-col grid */
.drawer-region{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;box-sizing:border-box}
.drawer-region a{display:flex;align-items:center;gap:8px;padding:12px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;color:rgba(255,255,255,.7);transition:all .2s;font-family:'Inter',sans-serif;text-decoration:none;box-sizing:border-box;min-width:0}
.drawer-region a:hover{border-color:rgba(0,201,183,.4);color:var(--white)}
.drawer-region a.current{border-color:var(--teal);background:rgba(0,201,183,.08);color:var(--white)}
.drawer-region a .region-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.drawer-region a .region-dot.global{background:rgba(255,255,255,.5)}
.drawer-region a .region-dot.london{background:var(--london)}
.drawer-region a .region-dot.dublin{background:var(--dublin)}
.drawer-region a .region-dot.amsterdam{background:var(--amsterdam)}

/* CTA + foot - block layout, no flex auto-margin */
.drawer-cta{display:block;padding:12px 24px 0;margin-top:6px;border-top:1px solid var(--border);width:100%;box-sizing:border-box}
.drawer-cta a{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--teal);color:var(--dark);font-weight:700;padding:12px;border-radius:8px;font-size:14px;text-decoration:none;transition:all .2s}
.drawer-cta a:hover{background:#00dbc7}
.drawer-foot{display:block;padding:12px 24px 0;font-size:11px;color:rgba(255,255,255,.4);line-height:1.6;width:100%;box-sizing:border-box}
.drawer-foot a{color:rgba(255,255,255,.55);transition:color .2s}
.drawer-foot a:hover{color:var(--teal)}

/* Show hamburger + hide inline nav links on tablet/mobile */
@media(max-width:768px){
  .hamburger{display:inline-flex}
  .nav-links a:not(.nav-cta){display:none}
  .nav-links .region-toggle{display:none}
  .nav-links .nav-dd{display:none}
  /* Hamburger is at the start of <nav>; cluster it with the logo on the left and push the rest right.
   * Tighten nav gutters so the hamburger sits close to the screen edge. */
  body > nav{
    justify-content:flex-start;
    gap:10px;
    padding:14px 12px;
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  body > nav .nav-links{margin-left:auto}
}

/* REGION TOGGLE */
.region-toggle{position:relative;display:inline-block}
.region-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:rgba(255,255,255,.75);font-size:13px;font-weight:500;cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s}
.region-btn:hover{border-color:rgba(255,255,255,.25);color:var(--white)}
.region-btn .region-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.region-btn .region-dot.global{background:rgba(255,255,255,.5)}
.region-btn .region-dot.london{background:var(--london)}
.region-btn .region-dot.dublin{background:var(--dublin)}
.region-btn .region-dot.amsterdam{background:var(--amsterdam)}
.region-btn .chev{width:10px;height:10px;transition:transform .2s;opacity:.5}
.region-toggle.open .region-btn .chev{transform:rotate(180deg)}
.region-toggle.open .region-btn{border-color:var(--teal);color:var(--white)}
.region-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:rgba(5,21,37,.97);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:8px;padding:6px;display:none;z-index:200;box-shadow:0 12px 32px rgba(0,0,0,.4)}
.region-toggle.open .region-menu{display:block}
.region-menu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:5px;font-size:13px;color:rgba(255,255,255,.7);transition:all .15s}
.region-menu a:hover{background:rgba(255,255,255,.06);color:var(--white)}
.region-menu a.current{background:rgba(0,201,183,.08);color:var(--white)}
.region-menu a.current::after{content:'•';margin-left:auto;color:var(--teal);font-weight:700}
.region-menu .region-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.region-menu .region-dot.global{background:rgba(255,255,255,.5)}
.region-menu .region-dot.london{background:var(--london)}
.region-menu .region-dot.dublin{background:var(--dublin)}
.region-menu .region-dot.amsterdam{background:var(--amsterdam)}
.region-menu .region-divider{height:1px;background:var(--border);margin:6px 4px}
.region-menu .region-section{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.3);padding:8px 12px 4px;font-weight:700}

/* LANGUAGE TOGGLE (Amsterdam only) */
.lang-toggle{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(255,255,255,.12);border-radius:6px;overflow:hidden;font-family:'Inter',sans-serif}
.lang-toggle a{padding:8px 12px;font-size:12px;font-weight:600;color:rgba(255,255,255,.5);transition:all .2s;letter-spacing:.5px}
.lang-toggle a.active{background:var(--teal);color:var(--dark)}
.lang-toggle a:not(.active):hover{color:var(--white);background:rgba(255,255,255,.04)}

/* GEO SUGGESTION BANNER */
.geo-banner{position:fixed;top:80px;right:20px;max-width:340px;background:rgba(5,21,37,.97);backdrop-filter:blur(16px);border:1px solid rgba(0,201,183,.3);border-radius:10px;padding:18px 20px;z-index:99;box-shadow:0 16px 40px rgba(0,0,0,.4);transform:translateY(-20px);opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);pointer-events:none}
.geo-banner.in{transform:translateY(0);opacity:1;pointer-events:auto}
.geo-banner .geo-eyebrow{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--teal);margin-bottom:8px;font-weight:700}
.geo-banner .geo-msg{font-size:14px;color:var(--white);line-height:1.5;margin-bottom:14px}
.geo-banner .geo-actions{display:flex;gap:8px}
.geo-banner .geo-yes{padding:8px 16px;background:var(--teal);color:var(--dark);border-radius:5px;font-size:13px;font-weight:700;border:none;cursor:pointer;font-family:'Inter',sans-serif;transition:all .2s}
.geo-banner .geo-yes:hover{background:#00dbc7}
.geo-banner .geo-no{padding:8px 12px;background:transparent;color:rgba(255,255,255,.5);border:none;cursor:pointer;font-size:12px;font-family:'Inter',sans-serif;transition:color .2s}
.geo-banner .geo-no:hover{color:var(--white)}

@media(max-width:640px){
  .geo-banner{left:20px;right:20px;max-width:none;top:auto;bottom:20px}
  .region-btn .region-label{display:none}
  .region-menu{right:auto;left:0;min-width:180px}
}

/* PROGRESS */
.progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold));z-index:101;width:0}

/* HERO (homepage variant) */
.hero{min-height:100vh;min-height:100dvh;display:flex;align-items:flex-start;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg canvas{width:100%;height:100%}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,21,37,.4) 0%,rgba(5,21,37,.8) 100%)}
.hero .wrap{position:relative;z-index:2;padding-top:80px;padding-bottom:64px}
.hero .eyebrow{margin-bottom:12px}
@media(max-width:640px){
  /* Hero text sits just below the fixed nav (108px with 80px logo).
   * Wrap padding-top clears the nav with a small visual gap. */
  .hero{min-height:auto;align-items:flex-start}
  .hero .wrap{padding-top:0;padding-bottom:24px;margin-top:-69px}
  .hero h1{font-size:clamp(32px,7vw,44px);line-height:1.05;margin-bottom:14px}
  .hero-p{font-size:14px;line-height:1.6;margin-bottom:18px}
  .hero .eyebrow{margin-bottom:8px;font-size:10px;letter-spacing:2px}
}
.hero h1{font-size:clamp(44px,5.4vw,76px);line-height:1.05;color:var(--white);max-width:960px;margin-bottom:20px;letter-spacing:-.02em}
.hero-p{font-size:clamp(16px,1.3vw,18px);color:rgba(255,255,255,.55);max-width:540px;margin-bottom:28px;line-height:1.7}
.hero-ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap}

/* HERO (sub-page variant) */
.subhero{padding:200px 0 100px;position:relative;background:linear-gradient(180deg,var(--mid),var(--dark));overflow:hidden}
.subhero::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(0,201,183,.08),transparent 70%);border-radius:50%;pointer-events:none}
.subhero::after{content:'';position:absolute;bottom:-100px;left:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(212,168,71,.06),transparent 70%);border-radius:50%;pointer-events:none}
.subhero .wrap{position:relative;z-index:1}
.subhero h1{font-size:clamp(40px,6vw,72px);line-height:1.05;color:var(--white);max-width:900px;margin-bottom:24px;letter-spacing:-.01em}
.subhero p{font-size:clamp(15px,1.3vw,18px);color:rgba(255,255,255,.55);max-width:640px;line-height:1.8}
.crumbs{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:24px}
.crumbs a{color:var(--teal)}
.crumbs span{margin:0 10px;color:rgba(255,255,255,.2)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;border-radius:6px;font-size:14px;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;cursor:pointer;border:none;font-family:'Inter',sans-serif}
.btn-primary{background:var(--accent-2);color:#fff}
.btn-primary:hover{background:var(--accent);box-shadow:0 12px 36px rgba(101,100,219,.3);transform:translateY(-2px)}
.btn-outline{border:1px solid rgba(255,255,255,.2);color:var(--white);background:transparent}
.btn-outline:hover{border-color:var(--teal);color:var(--teal);box-shadow:0 12px 36px rgba(0,201,183,.12);transform:translateY(-2px)}
.btn svg{width:16px;height:16px}

/* LOGOS STRIP */

/* FEATURED-IN STRIP */

/* STATS */
.stats{background:var(--mid);padding:80px 0}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:40px;max-width:900px;margin:0 auto}
.stat-n{font-family:'DM Serif Display',serif;font-size:clamp(48px,5vw,72px);color:var(--gold);line-height:1;margin-bottom:8px}
.stat-l{font-size:13px;color:rgba(255,255,255,var(--muted));font-weight:500}

/* SECTION HEADER */
.section-head{margin-bottom:48px}
.section-head h2{font-size:clamp(32px,4vw,52px);color:var(--white);line-height:1.1;margin-bottom:16px}
.section-head .lead{font-size:17px;color:rgba(255,255,255,.5);max-width:640px;line-height:1.8}
.section-head-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:32px;flex-wrap:wrap}
.section-head-row h2{font-size:clamp(32px,4vw,52px);color:var(--white);margin-bottom:0;line-height:1.1}
.viewall{font-size:14px;font-weight:600;color:var(--teal);display:flex;align-items:center;gap:8px;white-space:nowrap}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.services-grid.signals-3{grid-template-columns:repeat(3,1fr)}
.service{padding:40px;background:var(--glass);border:1px solid var(--border);border-radius:12px;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;display:block}
.service::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold));transform:scaleX(0);transition:transform .4s cubic-bezier(.16,1,.3,1);transform-origin:left}
.service:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.2)}
.service:hover::after{transform:scaleX(1)}
.service-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.service-icon svg{width:22px;height:22px}
.icon-teal{background:rgba(0,201,183,.1)}.icon-teal svg{stroke:var(--teal)}
.icon-gold{background:rgba(212,168,71,.1)}.icon-gold svg{stroke:var(--gold)}
.service h3{font-size:18px;font-weight:700;color:var(--white);margin-bottom:8px}
.service p{font-size:14px;color:rgba(255,255,255,var(--muted));line-height:1.8}
.service ul{margin-top:16px;list-style:none;padding:0}
.service ul li{font-size:13px;color:rgba(255,255,255,.5);padding:6px 0 6px 22px;position:relative}
.service ul li::before{content:'';position:absolute;left:0;top:14px;width:8px;height:1px;background:var(--teal)}

/* CASES */
.cases-section{background:linear-gradient(180deg,var(--dark),var(--mid))}
.cases-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.case{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;display:block}
.case img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .6s}
.case:hover img{transform:scale(1.06);filter:brightness(1.1) saturate(1.15)}
.case-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(5,21,37,.92));display:flex;flex-direction:column;justify-content:flex-end;padding:36px}
.case-tag{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.case h3{font-size:22px;font-weight:700;color:var(--white);margin-bottom:4px}
.case-overlay p{font-size:14px;color:rgba(255,255,255,var(--muted))}
.case-stats{display:flex;gap:24px;margin-top:16px;opacity:0;transform:translateY(8px);transition:all .3s}
.case:hover .case-stats{opacity:1;transform:translateY(0)}
.case-stats strong{font-family:'DM Serif Display',serif;font-size:24px;color:var(--gold);display:block;line-height:1.2}
.case-stats span{font-size:11px;color:rgba(255,255,255,var(--muted))}

/* PULL */

/* SECTORS LIST */
.vert-list{border-top:1px solid var(--border)}
.vert-item{display:flex;align-items:center;padding:32px 0;border-bottom:1px solid var(--border);gap:32px;transition:padding .3s;cursor:pointer}
.vert-item:hover{padding-left:16px}
.vert-num{font-size:13px;font-weight:700;color:var(--teal);min-width:32px;opacity:.5}
.vert-item h3{font-family:'DM Serif Display',serif;font-size:clamp(24px,3vw,40px);color:var(--white);flex:1;transition:color .2s}
.vert-item:hover h3{color:var(--teal)}
.vert-tags{display:flex;gap:8px;flex-wrap:wrap}
.vert-tag{font-size:11px;font-weight:600;padding:4px 12px;border-radius:100px;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,var(--muted));letter-spacing:.5px;transition:all .3s}
.vert-item:hover .vert-tag{border-color:rgba(0,201,183,.3);color:var(--teal)}
.vert-arrow{font-size:20px;color:rgba(255,255,255,.15);transition:all .3s}
.vert-item:hover .vert-arrow{color:var(--teal);transform:translateX(6px)}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:24px}
.team-card{text-align:center;display:block}
.team-card .photo{position:relative;border-radius:10px;overflow:hidden;margin-bottom:14px;border:2px solid transparent;transition:all .5s cubic-bezier(.16,1,.3,1)}
.team-card .photo img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(.3) brightness(.95);transition:all .5s cubic-bezier(.16,1,.3,1)}
.team-card:hover .photo{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.3)}
.team-card:hover .photo img{filter:grayscale(0) brightness(1.05)}
.team-card .office-flag{position:absolute;top:10px;right:10px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;padding:4px 8px;border-radius:4px;background:rgba(5,21,37,.7);backdrop-filter:blur(8px)}
/* Placeholder avatar (initials) for team members whose headshot isn't uploaded yet */
.photo-placeholder{aspect-ratio:3/4;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:flex;align-items:center;justify-content:center;border-radius:10px;margin-bottom:14px;position:relative}
.photo-placeholder .initials{font-family:'DM Serif Display',serif;font-size:48px;color:#fff;letter-spacing:1px}
.region-team-card .photo-placeholder{aspect-ratio:3/4;width:100%}
.flag-london{color:var(--london);border:1px solid rgba(159,122,234,.4)}
.flag-dublin{color:var(--dublin);border:1px solid rgba(72,187,120,.4)}
.flag-amsterdam{color:var(--amsterdam);border:1px solid rgba(245,101,101,.4)}
.flag-global{color:#eab94c;border:1px solid rgba(234,185,76,.4)}
.team-card h4{font-size:14px;font-weight:700;color:var(--white);margin-bottom:2px}
.team-card p{font-size:12px;color:rgba(255,255,255,var(--muted))}

/* TESTIMONIAL */

/* LOCATIONS */
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.loc{border-radius:12px;overflow:hidden;position:relative;display:block;aspect-ratio:4/5}
.loc img{width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(.6);transition:all .6s cubic-bezier(.16,1,.3,1)}
.loc:hover img{filter:brightness(.6) saturate(1.2);transform:scale(1.06)}
.loc-info{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:1;padding:24px}
.loc h3{font-family:'DM Serif Display',serif;font-size:32px;color:var(--white);margin-bottom:6px}
.loc p{font-size:12px;color:rgba(255,255,255,.6);font-weight:500;letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
.loc .loc-cta{font-size:13px;font-weight:600;color:var(--teal);display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid rgba(0,201,183,.4);border-radius:100px;backdrop-filter:blur(8px);transition:all .3s}
.loc:hover .loc-cta{background:var(--teal);color:var(--dark)}

/* INSIGHTS */
.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.insight{background:var(--glass);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:all .4s cubic-bezier(.16,1,.3,1);display:block}
.insight:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.2)}
.insight img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .5s}
.insight:hover img{transform:scale(1.04)}
.insight-body{padding:24px}
.insight-cat{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px;background:rgba(0,201,183,.1);color:var(--teal);margin-bottom:12px;letter-spacing:.5px;text-transform:uppercase}
.insight-body h3{font-size:17px;font-weight:700;color:var(--white);margin-bottom:8px;line-height:1.4}
.insight-body p{font-size:13px;color:rgba(255,255,255,var(--muted));margin-bottom:12px}
.insight-date{font-size:12px;color:rgba(255,255,255,var(--dim))}

/* FEATURED INSIGHT */
.featured-insight{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;background:var(--glass);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:48px;transition:all .4s}
.featured-insight:hover{border-color:rgba(255,255,255,.12);box-shadow:0 24px 48px rgba(0,0,0,.25)}
.featured-insight img{width:100%;height:100%;min-height:340px;object-fit:cover}
.featured-insight-body{padding:48px}
.featured-insight-body h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,40px);color:var(--white);line-height:1.15;margin-bottom:16px}
.featured-insight-body p{font-size:15px;color:rgba(255,255,255,.55);margin-bottom:20px;line-height:1.8}

/* SUBSCRIBE */
.subscribe-card{max-width:700px;margin:0 auto;padding:60px 48px;text-align:center;background:var(--glass);border:1px solid var(--border);border-radius:16px;position:relative;overflow:hidden}
.subscribe-card::before{content:'';position:absolute;inset:-2px;border-radius:18px;padding:2px;background:linear-gradient(135deg,var(--teal),var(--gold),var(--teal));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.25;animation:glow 3s ease-in-out infinite}
@keyframes glow{0%,100%{opacity:.15}50%{opacity:.4}}
.subscribe-card h2{font-family:'DM Serif Display',serif;font-size:32px;color:var(--white);margin-bottom:8px}
.subscribe-card>p{color:rgba(255,255,255,var(--muted));margin-bottom:28px;font-size:16px}
.subscribe-form{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto}
.subscribe-form .subscribe-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.subscribe-form input{padding:14px 20px;border-radius:100px;border:1px solid var(--border);background:var(--glass);font-size:14px;font-family:'Inter',sans-serif;outline:none;color:var(--white);transition:border-color .2s;width:100%;min-width:0}
.subscribe-form input::placeholder{color:rgba(255,255,255,var(--dim))}
.subscribe-form input:focus{border-color:var(--teal)}
.subscribe-form button{padding:14px 28px;border-radius:100px;border:none;background:var(--teal);color:var(--dark);font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;font-family:'Inter',sans-serif;align-self:center;margin-top:4px}
.subscribe-form button:hover{background:#00dbc7;box-shadow:0 8px 24px rgba(0,201,183,.25)}
@media(max-width:640px){.subscribe-form .subscribe-row{grid-template-columns:1fr}}

/* CONTACT */
.contact-section{background:var(--mid)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-left h2{font-size:clamp(32px,4vw,56px);color:var(--white);margin-bottom:20px;line-height:1.1}
.contact-left .desc{font-size:17px;color:rgba(255,255,255,.5);margin-bottom:40px;line-height:1.8}
.cd{margin-bottom:16px}
.cd-label{font-size:12px;color:rgba(255,255,255,var(--muted));margin-bottom:2px}
.cd-val{font-size:15px;color:var(--white);font-weight:500}
.contact-form{display:flex;flex-direction:column;gap:16px}
.contact-form input,.contact-form textarea,.contact-form select{padding:14px 20px;border-radius:8px;border:1px solid var(--border);background:var(--glass);color:var(--white);font-size:14px;font-family:'Inter',sans-serif;outline:none;transition:border-color .2s}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,var(--dim))}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--teal)}
.contact-form textarea{min-height:100px;resize:vertical}
.contact-form select{appearance:none;cursor:pointer;color:rgba(255,255,255,var(--muted))}
.contact-form select option{background:var(--dark);color:var(--white)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* OFFICE CARDS (contact page) */
.office-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:80px}
.office-card{background:var(--glass);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:all .4s}
.office-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.2)}
.office-card .head-photo{aspect-ratio:4/3;overflow:hidden;background:var(--mid)}
.office-card .head-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.95);transition:all .5s}
.office-card:hover .head-photo img{filter:grayscale(0) brightness(1.05);transform:scale(1.04)}
.office-card .body{padding:28px}
.office-card .city{font-family:'DM Serif Display',serif;font-size:28px;color:var(--white);margin-bottom:6px}
.office-card .head-name{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:20px}
.office-card .info{font-size:13px;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:6px}
.office-card .info strong{color:var(--white);font-weight:600;margin-right:6px}
.office-card a.email{color:var(--teal);font-weight:600}

/* CTA STRIP */
.cta-strip{padding:100px 0;background:linear-gradient(135deg,var(--mid),var(--navy));text-align:center;position:relative;overflow:hidden}
.cta-strip::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(0,201,183,.08),transparent 60%)}
.cta-strip>*{position:relative;z-index:1}
.cta-strip h2{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:var(--white);max-width:760px;margin:0 auto 16px;line-height:1.15}
.cta-strip p{font-size:17px;color:rgba(255,255,255,.5);max-width:560px;margin:0 auto 32px}

/* OFFICE COLOUR BLEED - regional homepages get a subtle tint of their office colour */
body.region-london::before,
body.region-dublin::before,
body.region-amsterdam::before{
  content:'';position:fixed;top:0;left:0;right:0;height:3px;z-index:101;pointer-events:none
}
body.region-london::before{background:linear-gradient(90deg,transparent,var(--london),transparent)}
body.region-dublin::before{background:linear-gradient(90deg,transparent,var(--dublin),transparent)}
body.region-amsterdam::before{background:linear-gradient(90deg,transparent,var(--amsterdam),transparent)}

/* Swap one of the subhero orbs for the office colour */
body.region-london .subhero::before{background:radial-gradient(circle,rgba(159,122,234,.12),transparent 70%)}
body.region-dublin .subhero::before{background:radial-gradient(circle,rgba(72,187,120,.12),transparent 70%)}
body.region-amsterdam .subhero::before{background:radial-gradient(circle,rgba(245,101,101,.12),transparent 70%)}

/* Subtle border accent on cards inside region pages */
body.region-london .why-img,
body.region-london .map-card{box-shadow:0 0 0 1px rgba(159,122,234,.12)}
body.region-dublin .why-img,
body.region-dublin .map-card{box-shadow:0 0 0 1px rgba(72,187,120,.12)}
body.region-amsterdam .why-img,
body.region-amsterdam .map-card{box-shadow:0 0 0 1px rgba(245,101,101,.12)}

/* Section eyebrows in regional pages pick up the office colour */
body.region-london .subhero .eyebrow:not([style]){color:var(--london)}
body.region-dublin .subhero .eyebrow:not([style]){color:var(--dublin)}
body.region-amsterdam .subhero .eyebrow:not([style]){color:var(--amsterdam)}

/* OFFICE MAPS (contact page) */
.maps-section{padding:100px 0;background:var(--dark)}
.maps-section .section-head{text-align:center;margin:0 auto 60px;max-width:680px}
.maps-section .section-head h2{font-size:clamp(28px,3.4vw,42px);margin-bottom:14px;font-family:'DM Serif Display',serif;color:var(--white)}
.maps-section .section-head p{font-size:15px;color:rgba(255,255,255,.5);line-height:1.7}
.maps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.map-card{background:var(--glass);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:all .4s}
.map-card:hover{border-color:rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.2);transform:translateY(-4px)}
.map-card .map-frame{aspect-ratio:4/3;width:100%;position:relative;overflow:hidden;background:var(--mid)}
.map-card .map-frame iframe{width:100%;height:100%;border:0;filter:invert(.92) hue-rotate(180deg) saturate(.85) brightness(.9);transition:filter .4s}
.map-card:hover .map-frame iframe{filter:invert(.92) hue-rotate(180deg) saturate(1) brightness(1)}
.map-card .map-body{padding:24px}
.map-card .map-flag{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:10px}
.map-card .map-flag .dot{width:8px;height:8px;border-radius:50%}
.map-card .map-flag.london{color:var(--london)}
.map-card .map-flag.london .dot{background:var(--london)}
.map-card .map-flag.dublin{color:var(--dublin)}
.map-card .map-flag.dublin .dot{background:var(--dublin)}
.map-card .map-flag.amsterdam{color:var(--amsterdam)}
.map-card .map-flag.amsterdam .dot{background:var(--amsterdam)}
.map-card h3{font-family:'DM Serif Display',serif;font-size:22px;color:var(--white);margin-bottom:6px}
.map-card .addr{font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;margin-bottom:14px}
.map-card .map-actions{display:flex;gap:14px;font-size:13px;font-weight:600}
.map-card .map-actions a{color:var(--teal);display:inline-flex;align-items:center;gap:4px;transition:opacity .2s}
.map-card .map-actions a:hover{opacity:.7}
@media(max-width:1024px){.maps-grid{grid-template-columns:1fr;gap:16px}}

/* INLINE CONTACT FORM CTA (auto-injected onto sub-pages without their own form) */
.cta-form-section{padding:120px 0;background:linear-gradient(135deg,var(--mid),var(--navy));position:relative;overflow:hidden}
.cta-form-section::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(0,201,183,.08),transparent 60%);pointer-events:none}
.cta-form-section .wrap{position:relative;z-index:1}
.cta-form-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.cta-form-left h2{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:var(--white);line-height:1.1;margin-bottom:20px}
.cta-form-left .desc{font-size:16px;color:rgba(255,255,255,.55);line-height:1.85;margin-bottom:32px;max-width:480px}
.cta-form-left .reasons{display:flex;flex-direction:column;gap:14px;margin-bottom:32px}
.cta-form-left .reason{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:rgba(255,255,255,.7);line-height:1.6}
.cta-form-left .reason::before{content:'';display:block;width:14px;height:1px;background:var(--gold);margin-top:11px;flex-shrink:0}
.cta-form-left .quick{font-size:13px;color:rgba(255,255,255,.45);padding-top:20px;border-top:1px solid var(--border)}
.cta-form-left .quick strong{color:var(--white)}
.cta-form-right form{display:flex;flex-direction:column;gap:14px;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:14px;padding:32px}
.cta-form-right .form-eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:6px}
.cta-form-right input,.cta-form-right textarea,.cta-form-right select{padding:14px 18px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--white);font-size:14px;font-family:'Inter',sans-serif;outline:none;transition:border-color .2s}
.cta-form-right input::placeholder,.cta-form-right textarea::placeholder{color:rgba(255,255,255,var(--dim))}
.cta-form-right input:focus,.cta-form-right textarea:focus,.cta-form-right select:focus{border-color:var(--teal)}
.cta-form-right textarea{min-height:90px;resize:vertical}
.cta-form-right select{appearance:none;cursor:pointer;color:rgba(255,255,255,var(--muted));background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3e%3cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23ffffff' stroke-opacity='.4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.cta-form-right select option{background:var(--dark);color:var(--white)}
.cta-form-right .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cta-form-right button[type="submit"]{padding:14px 28px;border-radius:8px;border:none;background:var(--gold);color:var(--dark);font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;font-family:'Inter',sans-serif;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;margin-top:6px}
.cta-form-right button[type="submit"]:hover{background:#e0b554;box-shadow:0 12px 36px rgba(212,168,71,.3);transform:translateY(-2px)}
.cta-form-right .form-fineprint{font-size:12px;color:rgba(255,255,255,.35);line-height:1.6;margin-top:4px}

/* FOOTER NEWSLETTER (auto-injected at top of every footer) */
.footer-newsletter{padding:48px 0;border-bottom:1px solid var(--border);margin-bottom:40px}
.footer-newsletter-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.footer-newsletter h3{font-family:'DM Serif Display',serif;font-size:clamp(24px,2.6vw,34px);color:var(--white);line-height:1.2;margin-bottom:8px}
.footer-newsletter p{font-size:14px;color:rgba(255,255,255,.5);line-height:1.7;max-width:480px}
.footer-newsletter form{display:flex;flex-direction:column;gap:10px;max-width:520px;justify-self:end;width:100%}
.footer-newsletter .newsletter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.footer-newsletter input{min-width:0;padding:13px 18px;border-radius:8px;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--white);font-size:14px;font-family:'Inter',sans-serif;outline:none;transition:border-color .2s}
.footer-newsletter input::placeholder{color:rgba(255,255,255,var(--dim))}
.footer-newsletter input:focus{border-color:var(--teal)}
.footer-newsletter button{padding:13px 22px;border-radius:8px;border:none;background:var(--teal);color:var(--dark);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:'Inter',sans-serif;white-space:nowrap;align-self:flex-start}
.footer-newsletter button:hover{background:#00dbc7;box-shadow:0 6px 20px rgba(0,201,183,.25)}

@media(max-width:1024px){
  .cta-form-grid{grid-template-columns:1fr;gap:40px}
  .footer-newsletter-grid{grid-template-columns:1fr;gap:24px}
  .footer-newsletter form{justify-self:stretch;max-width:none}
}
@media(max-width:640px){
  .cta-form-right form{padding:20px}
  .cta-form-right .form-row{grid-template-columns:1fr}
  .footer-newsletter .newsletter-row{grid-template-columns:1fr}
}

/* FOOTER */
footer{padding:60px 0;padding-bottom:max(60px,calc(60px + env(safe-area-inset-bottom)));border-top:1px solid var(--border);background:var(--dark)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.5fr;gap:40px;margin-bottom:48px}
.footer-col h4{font-size:12px;font-weight:700;color:var(--white);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:16px}
.footer-col a{display:block;font-size:13px;color:rgba(255,255,255,var(--muted));margin-bottom:8px;transition:color .2s}
.footer-col a:hover{color:var(--teal)}
.footer-logo{height:28px;filter:brightness(0) invert(1);opacity:.6;margin-bottom:14px}
.footer-desc{font-size:13px;color:rgba(255,255,255,var(--muted));line-height:1.8}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--border)}
.footer-bottom span{font-size:12px;color:rgba(255,255,255,var(--dim))}
.footer-bottom a{font-size:12px;color:rgba(255,255,255,var(--dim));margin-left:20px;transition:color .2s}
.footer-bottom a:hover{color:var(--teal)}

/* INTRO LOADER (homepage only) */
.intro{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.intro-panel{position:absolute;width:100%;height:100%}
.intro-panel-1{background:var(--navy);z-index:3}
.intro-panel-2{background:var(--mid);z-index:2}
.intro-panel-3{background:var(--dark);z-index:1}
.intro-logo{position:relative;z-index:4;height:96px;filter:brightness(0) invert(1);opacity:0;margin-top:-30px;order:2}
.intro-huts{position:relative;z-index:4;width:min(340px,90vw);height:auto;color:var(--teal);opacity:0;display:block;order:1}
.intro-huts .hut-stroke{stroke-dasharray:200;stroke-dashoffset:200}
.intro-huts .hut-ground{stroke-dasharray:360;stroke-dashoffset:360;opacity:.45;stroke-width:1}

/* ANIMATIONS */
.fade{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.fade.in{opacity:1;transform:none}
.fade-d1{transition-delay:.1s}.fade-d2{transition-delay:.2s}.fade-d3{transition-delay:.25s}.fade-d4{transition-delay:.3s}

/* CASE STUDY DETAIL */
.cs-hero{padding:200px 0 80px;position:relative;overflow:hidden;background:var(--mid)}
.cs-hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;filter:saturate(.6)}
.cs-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,21,37,.7),rgba(5,21,37,.95))}
.cs-hero .wrap{position:relative;z-index:1}
.cs-meta{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:24px;font-size:12px;letter-spacing:2px;text-transform:uppercase}
.cs-meta .item .lbl{color:rgba(255,255,255,.3);display:block;margin-bottom:4px}
.cs-meta .item .val{color:var(--teal);font-weight:700}
.cs-hero h1{font-family:'DM Serif Display',serif;font-size:clamp(40px,5vw,68px);color:var(--white);max-width:920px;line-height:1.1;margin-bottom:20px}
.cs-hero .lede{font-size:clamp(16px,1.4vw,20px);color:rgba(255,255,255,.6);max-width:680px;line-height:1.7}

.cs-stats{padding:80px 0;background:var(--dark);border-bottom:1px solid var(--border)}
.cs-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center}
.cs-stat .n{font-family:'DM Serif Display',serif;font-size:clamp(36px,4vw,56px);color:var(--gold);line-height:1}
.cs-stat .l{font-size:12px;color:rgba(255,255,255,.5);letter-spacing:1.5px;text-transform:uppercase;margin-top:6px}

.cs-body{padding:120px 0;background:var(--dark)}
.cs-body .grid{display:grid;grid-template-columns:300px 1fr;gap:80px;align-items:start}
.cs-toc{position:sticky;top:120px}
.cs-toc h4{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px}
.cs-toc a{display:block;padding:8px 0;font-size:14px;color:rgba(255,255,255,.55);border-left:2px solid var(--border);padding-left:16px;transition:all .2s}
.cs-toc a:hover,.cs-toc a.active{color:var(--white);border-left-color:var(--teal)}
.cs-section{margin-bottom:80px}
.cs-section .eyebrow{margin-bottom:12px}
.cs-section h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,40px);color:var(--white);margin-bottom:24px;line-height:1.15}
.cs-section p{font-size:16px;color:rgba(255,255,255,.65);line-height:1.85;margin-bottom:18px}
.cs-section ul{list-style:none;padding:0;margin:24px 0}
.cs-section ul li{padding:10px 0 10px 32px;position:relative;color:rgba(255,255,255,.7);font-size:15px;line-height:1.7}
.cs-section ul li::before{content:'';position:absolute;left:0;top:18px;width:18px;height:1px;background:var(--gold)}
.cs-quote{padding:32px;background:var(--glass);border-left:3px solid var(--gold);border-radius:8px;margin:32px 0}
.cs-quote .q{font-family:'DM Serif Display',serif;font-style:italic;font-size:20px;color:var(--white);line-height:1.5;margin-bottom:12px}
.cs-quote .a{font-size:13px;color:rgba(255,255,255,.5)}

/* BLOG POST DETAIL */
.bp-hero{padding:200px 0 80px;background:linear-gradient(180deg,var(--mid),var(--dark));position:relative;overflow:hidden}
.bp-hero .wrap{position:relative;z-index:1;max-width:840px}
.bp-hero .insight-cat{margin-bottom:24px}
.bp-hero h1{font-family:'DM Serif Display',serif;font-size:clamp(36px,4.5vw,60px);color:var(--white);line-height:1.1;margin-bottom:24px}
.bp-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.5)}
.bp-meta .author{display:flex;align-items:center;gap:10px}
.bp-meta .author img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.bp-meta .author strong{color:var(--white);font-weight:600;margin-right:4px}
.bp-meta .dot{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.3)}

.bp-cover{padding:0;margin:0 auto -120px;max-width:1080px;position:relative;z-index:2}
.bp-cover img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;box-shadow:0 30px 60px rgba(0,0,0,.4)}

.bp-body{padding:200px 0 100px;background:var(--dark)}
.bp-body .wrap{max-width:760px}
.bp-body p{font-size:18px;color:rgba(255,255,255,.75);line-height:1.85;margin-bottom:24px}
.bp-body h2{font-family:'DM Serif Display',serif;font-size:clamp(26px,3vw,38px);color:var(--white);margin:48px 0 20px;line-height:1.2}
.bp-body h3{font-size:22px;font-weight:700;color:var(--white);margin:32px 0 14px}
.bp-body blockquote{border-left:3px solid var(--gold);padding:8px 0 8px 28px;margin:32px 0;font-family:'DM Serif Display',serif;font-style:italic;font-size:24px;color:var(--white);line-height:1.4}
.bp-body ul,.bp-body ol{margin:18px 0 24px 24px}
.bp-body li{font-size:17px;color:rgba(255,255,255,.7);margin-bottom:10px;line-height:1.7}
.bp-body a{color:var(--teal);text-decoration:underline;text-decoration-color:rgba(0,201,183,.3);text-underline-offset:3px}
.bp-body a:hover{text-decoration-color:var(--teal)}

.bp-author-card{display:flex;gap:20px;align-items:center;background:var(--glass);border:1px solid var(--border);border-radius:14px;padding:24px;margin:60px 0}
.bp-author-card img{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0}
.bp-author-card .name{font-size:16px;font-weight:700;color:var(--white);margin-bottom:4px}
.bp-author-card .role{font-size:13px;color:var(--teal);margin-bottom:8px}
.bp-author-card .bio{font-size:14px;color:rgba(255,255,255,.55);line-height:1.6}

/* FILTER PILLS */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:48px}
.filter-pill{padding:8px 18px;border-radius:100px;border:1px solid var(--border);font-size:13px;color:rgba(255,255,255,.6);cursor:pointer;transition:all .2s;background:transparent;font-family:'Inter',sans-serif;font-weight:500}
.filter-pill:hover{color:var(--white);border-color:rgba(255,255,255,.2)}
.filter-pill.active{background:var(--teal);color:var(--dark);border-color:var(--teal);font-weight:700}

/* SECTORS DETAILED CARDS */
.sector-block{padding:80px 0;border-bottom:1px solid var(--border)}
.sector-block:last-child{border-bottom:none}
.sector-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.sector-img{aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--mid)}
.sector-img img{width:100%;height:100%;object-fit:cover}
.sector-block h2{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:var(--white);margin-bottom:18px;line-height:1.1}
.sector-block .desc{font-size:16px;color:rgba(255,255,255,.6);line-height:1.85;margin-bottom:24px}
.sector-block .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.sector-block .tags span{font-size:12px;font-weight:600;padding:6px 14px;border-radius:100px;border:1px solid rgba(0,201,183,.3);color:var(--teal)}
.sector-block .clients{font-size:13px;color:rgba(255,255,255,.4);letter-spacing:.5px}
.sector-block .clients strong{color:rgba(255,255,255,.7);margin-right:8px}

/* SERVICE DETAIL BLOCKS */
.service-detail{padding:80px 0;border-bottom:1px solid var(--border)}
.service-detail:last-child{border-bottom:none}
.service-detail-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}
.service-detail-num{font-family:'DM Serif Display',serif;font-size:120px;color:rgba(0,201,183,.2);line-height:.8;margin-bottom:24px}
.service-detail-grid h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,42px);color:var(--white);margin-bottom:18px;line-height:1.15}
.service-detail-grid .desc{font-size:16px;color:rgba(255,255,255,.65);line-height:1.85;margin-bottom:24px}
.service-detail-grid h4{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.service-detail-grid ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
.service-detail-grid ul li{padding:6px 0 6px 22px;position:relative;font-size:14px;color:rgba(255,255,255,.65);line-height:1.6}
.service-detail-grid ul li::before{content:'';position:absolute;left:0;top:14px;width:14px;height:1px;background:var(--gold)}

/* TEAM DETAIL */
.team-leadership{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;background:var(--glass);border:1px solid var(--border);border-radius:16px;padding:48px;margin-bottom:80px}
.team-leadership img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}
.team-leadership .lead-eyebrow{color:var(--gold)}
.team-leadership h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,42px);color:var(--white);margin-bottom:8px}
.team-leadership .role{font-size:14px;color:var(--teal);margin-bottom:20px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.team-leadership .bio{font-size:15px;color:rgba(255,255,255,.6);line-height:1.85;margin-bottom:14px}

/* CONSOLIDATED PAGE-SPECIFIC PATTERNS - extracted from inline <style> blocks for CSP tightening */

/* FAQ blocks (all sector + service pages) */
.faq{padding:80px 0;background:var(--mid)}
.faq-list{max-width:840px;margin:0 auto}
.faq-item{padding:28px 0;border-bottom:1px solid var(--border)}
.faq-item:last-child{border-bottom:none}
.faq-q{font-family:'DM Serif Display',serif;font-size:22px;color:var(--white);margin-bottom:12px;line-height:1.3}
.faq-a{font-size:15px;color:rgba(255,255,255,.65);line-height:1.85}

/* Tag pills (sector pages) */
.tag-pills{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0}
.tag-pills span{font-size:13px;font-weight:600;padding:8px 18px;border-radius:100px;border:1px solid rgba(0,201,183,.3);color:var(--teal)}

/* Included-grid + process-steps (service pages) */
.included-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;margin-top:24px;list-style:none;padding:0}
.included-grid li{padding:8px 0 8px 24px;position:relative;font-size:15px;color:rgba(255,255,255,.7);line-height:1.6}
.included-grid li::before{content:'';position:absolute;left:0;top:16px;width:14px;height:1px;background:var(--gold)}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px;position:relative}
.process-steps::before{content:'';position:absolute;top:24px;left:5%;right:5%;height:1px;background:linear-gradient(90deg,var(--teal),var(--gold));opacity:.25;z-index:0}
.process-steps .step{position:relative;z-index:1;text-align:center;padding:0 12px}
.process-steps .step .dot{width:48px;height:48px;border-radius:50%;background:var(--mid);border:2px solid var(--teal);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:'DM Serif Display',serif;color:var(--teal);font-size:18px}
.process-steps .step h4{font-size:16px;font-weight:700;color:var(--white);margin-bottom:8px}
.process-steps .step p{font-size:13px;color:rgba(255,255,255,.5);line-height:1.7}

/* Why-grid (regional homepages) */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
/* min-width:0 lets grid items shrink below their content min-size. Without
   this, .logo-ticker-track (width:max-content, inside overflow:hidden) was
   forcing the right column past the viewport on Dublin / London. */
.why-grid > *{min-width:0}

/* Regional pages: full-width "The [City] team" strip below the .why-grid.
   Sits as a sibling of .why-grid inside the dark section's .wrap. */
.region-team{margin-top:80px}
.region-team .eyebrow{margin-bottom:24px;color:var(--teal)}
.region-team-grid{display:grid;gap:24px}
.region-team-grid.cols-2{grid-template-columns:repeat(2,1fr);max-width:600px}
.region-team-grid.cols-3{grid-template-columns:repeat(3,1fr);max-width:840px}
.region-team-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.region-team-card{margin:0}
.region-team-card img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;
  filter:grayscale(.15);transition:filter .4s,transform .4s cubic-bezier(.16,1,.3,1)}
.region-team-card:hover img{filter:grayscale(0);transform:translateY(-4px)}
.region-team-card figcaption{margin-top:12px}
.region-team-card .name{font-size:15px;font-weight:700;color:var(--white);margin-bottom:2px}
.region-team-card .role{font-size:13px;color:rgba(255,255,255,.55);line-height:1.5}
@media(max-width:768px){
  .region-team-grid.cols-3,.region-team-grid.cols-4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .region-team-grid.cols-2,.region-team-grid.cols-3,.region-team-grid.cols-4{grid-template-columns:1fr}
}

/* ============================================================
   FEEDBACK WIDGET (preview-only floating button + modal)
   Shows on bh5.primedirective.ai and preview.beachhutpr.com so the
   team can flag bugs / copy issues directly from the page they're
   looking at. JS auto-injects markup site-wide; this CSS handles
   appearance. Drops off automatically on production hostnames.
   ============================================================ */
.fb-btn{position:fixed;bottom:24px;right:24px;z-index:9998;
  background:var(--accent-2);color:#fff;font-weight:700;font-size:13px;
  padding:14px 20px;border-radius:999px;border:none;cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.35);letter-spacing:.3px;
  display:inline-flex;align-items:center;gap:10px;
  transition:transform .2s,box-shadow .2s,background .2s}
.fb-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.45);background:var(--accent)}
.fb-btn svg{width:16px;height:16px;flex-shrink:0;transition:transform .25s}
.fb-btn.fb-btn-open svg{transform:rotate(45deg)}
@media(max-width:640px){.fb-btn{padding:14px;border-radius:50%}.fb-btn .fb-btn-label{display:none}}

.fb-menu{position:fixed;bottom:80px;right:24px;z-index:9997;
  width:300px;max-width:calc(100vw - 48px);
  background:#0d1f33;border:1px solid rgba(255,255,255,.12);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.5);padding:8px;
  opacity:0;pointer-events:none;transform:translateY(8px) scale(.96);
  transform-origin:bottom right;transition:opacity .18s,transform .18s}
.fb-menu.fb-menu-open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.fb-menu-head{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(255,255,255,.5);padding:10px 12px 8px;margin:0}
.fb-menu-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;
  text-decoration:none;color:var(--white);transition:background .15s}
.fb-menu-item:hover{background:rgba(255,255,255,.06)}
.fb-menu-label{font-size:14px;font-weight:600}
.fb-menu-hint{font-size:11px;color:rgba(255,255,255,.5)}
.fb-menu-link{display:block;padding:12px 14px;margin-top:8px;border-top:1px solid rgba(255,255,255,.08);
  font-size:12px;font-weight:600;color:var(--accent-2);text-decoration:none;text-align:right}
.fb-menu-link:hover{color:var(--accent)}
.fb-overlay{position:fixed;inset:0;z-index:9999;background:rgba(5,21,37,.7);
  backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:24px}
.fb-overlay.open{display:flex}
.fb-modal{background:#0d1f33;border:1px solid rgba(255,255,255,.1);
  border-radius:14px;padding:32px;max-width:520px;width:100%;max-height:90vh;overflow:auto;
  color:var(--white);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.fb-modal h3{font-family:'DM Serif Display',serif;font-size:24px;margin-bottom:6px;color:var(--white)}
.fb-modal .fb-sub{font-size:13px;color:rgba(255,255,255,.6);margin-bottom:20px;line-height:1.6}
.fb-modal label{display:block;font-size:11px;font-weight:700;color:rgba(255,255,255,.7);
  letter-spacing:1px;text-transform:uppercase;margin:14px 0 6px}
.fb-modal input,.fb-modal select,.fb-modal textarea{
  width:100%;padding:11px 14px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--white);
  font-family:'Inter',sans-serif;font-size:14px;line-height:1.5;outline:none;transition:border .2s}
.fb-modal input:focus,.fb-modal select:focus,.fb-modal textarea:focus{border-color:var(--accent-2)}
.fb-modal textarea{min-height:110px;resize:vertical}
.fb-modal .fb-page{font-size:12px;color:rgba(255,255,255,.5);margin-top:14px;padding:8px 12px;
  background:rgba(255,255,255,.03);border-radius:6px;font-family:'JetBrains Mono',monospace;word-break:break-all}
.fb-modal .fb-actions{display:flex;gap:10px;margin-top:24px;justify-content:flex-end}
.fb-modal .fb-actions button{padding:10px 20px;border-radius:8px;border:none;font-weight:700;
  font-size:13px;cursor:pointer;transition:all .2s}
.fb-modal .fb-cancel{background:transparent;color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.15)!important}
.fb-modal .fb-submit{background:var(--accent-2);color:#fff}
.fb-modal .fb-submit:hover{background:var(--accent)}

/* Two-up leadership row on /team for Paul + Niall side by side.
   Inside the row, each .team-leadership goes single-column (image on top,
   text below) so the bios are readable at half the wrap width. */
.team-leadership-row{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:80px;align-items:stretch}
.team-leadership-row > .team-leadership{margin-bottom:0;grid-template-columns:1fr;padding:32px;gap:24px;display:flex;flex-direction:column}
/* Portrait headshots cropped to 4/5 (taller than square, matches the proportions
   of the source images) with the face anchored near the top of the crop so
   nobody's chin gets clipped. Niall flagged "my pic is cut off at the bottom"
   under the previous 4/3 landscape crop with object-position:center top. */
.team-leadership-row > .team-leadership img{aspect-ratio:4/5;max-height:420px;object-fit:cover;object-position:center 20%}
.team-leadership-row > .team-leadership h2{font-size:clamp(24px,2.4vw,32px)}
@media(max-width:1024px){
  .team-leadership-row{grid-template-columns:1fr;gap:24px}
}
.why-img{aspect-ratio:4/5;border-radius:14px;overflow:hidden}
.why-img img{width:100%;height:100%;object-fit:cover}
.why-block h2{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:var(--white);line-height:1.1;margin-bottom:24px}
.why-block p{font-size:16px;color:rgba(255,255,255,.65);line-height:1.85;margin-bottom:18px}
.why-block .pillars{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
.why-block .pillar{padding:16px 18px;background:var(--glass);border:1px solid var(--border);border-radius:10px}
.why-block .pillar h4{font-size:14px;font-weight:700;color:var(--white);margin-bottom:4px}
.why-block .pillar p{font-size:12px;color:rgba(255,255,255,.5);margin:0;line-height:1.6}

/* About page principles + process + story */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.principle{padding:36px;background:var(--glass);border:1px solid var(--border);border-radius:12px;transition:all .4s}
.principle:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.2)}
.principle .num{font-family:'DM Serif Display',serif;font-size:48px;color:var(--gold);line-height:.9;margin-bottom:16px;display:block}
.principle h3{font-size:20px;font-weight:700;color:var(--white);margin-bottom:10px}
.principle p{font-size:14px;color:rgba(255,255,255,.55);line-height:1.8}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px;position:relative}
.process::before{content:'';position:absolute;top:24px;left:5%;right:5%;height:1px;background:linear-gradient(90deg,var(--teal),var(--gold));opacity:.25;z-index:0}
.process .step{position:relative;z-index:1;text-align:center;padding:0 12px}
.process .step .dot{width:48px;height:48px;border-radius:50%;background:var(--mid);border:2px solid var(--teal);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:'DM Serif Display',serif;color:var(--teal);font-size:18px;font-weight:400}
.process .step h4{font-size:16px;font-weight:700;color:var(--white);margin-bottom:8px}
.process .step p{font-size:13px;color:rgba(255,255,255,.5);line-height:1.7}
.story{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-bottom:80px}
.story img{aspect-ratio:4/5;width:100%;object-fit:cover;border-radius:14px;filter:saturate(.9)}
.story h2{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:var(--white);margin-bottom:24px;line-height:1.1}
.story p{font-size:16px;color:rgba(255,255,255,.65);line-height:1.85;margin-bottom:18px}
.story p strong{color:var(--white);font-weight:600}

/* Team page office legend + colour swatches + culture story-row */
.office-legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:32px;font-size:13px;color:rgba(255,255,255,.55)}
.office-legend .item{display:flex;align-items:center;gap:8px}
.office-legend .swatch{width:10px;height:10px;border-radius:2px}
.swatch-london{background:var(--london)}
.swatch-dublin{background:var(--dublin)}
.swatch-amsterdam{background:var(--amsterdam)}
.story-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}

/* Crisis comms - urgent banner */
.urgent{background:rgba(212,168,71,.08);border:1px solid rgba(212,168,71,.3);border-radius:12px;padding:32px;margin-top:48px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.urgent .lbl{font-family:'DM Serif Display',serif;font-size:24px;color:var(--gold);margin-bottom:6px}
.urgent .num{font-size:14px;color:rgba(255,255,255,.7)}

/* LOGO TICKER (stubbed) - horizontal infinite-scroll marquee of publication or client names.
   Megan flagged the text-pillars as too text-heavy and asked for a logo ticker. This is the
   structural skeleton with text chips as placeholders; swap each .logo-chip's inner text
   for an <img src="..." alt="..." class="logo-chip-img"> when real assets are sourced. */
.logo-ticker{position:relative;overflow:hidden;padding:20px 0;margin:32px 0 8px;
  mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%)}
.logo-ticker-track{display:flex;gap:56px;width:max-content;animation:logoTickerScroll 45s linear infinite}
.logo-chip{flex:0 0 auto;font-family:'Inter',sans-serif;font-weight:700;font-size:18px;letter-spacing:.6px;color:rgba(255,255,255,.65);white-space:nowrap;text-transform:uppercase;padding:6px 0}
.logo-chip-img{height:32px;width:auto;flex:0 0 auto;opacity:.75;filter:brightness(0) invert(1)}
@keyframes logoTickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.logo-ticker-track{animation:none}}

/* RESPONSIVE for consolidated patterns */
@media(max-width:1024px){
  .principles{grid-template-columns:1fr 1fr}
  .process{grid-template-columns:1fr 1fr}
  .story{grid-template-columns:1fr;gap:32px}
  .why-grid{grid-template-columns:1fr;gap:32px}
  .why-block .pillars{grid-template-columns:1fr}
  .included-grid{grid-template-columns:1fr}
  .process-steps{grid-template-columns:1fr 1fr}
  .story-row{grid-template-columns:1fr}
}

/* RESPONSIVE */
@media(max-width:1024px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .services-grid{grid-template-columns:1fr}
  .services-grid.signals-3{grid-template-columns:1fr}
  .cases-grid-3{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .loc-grid{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .vert-item{flex-direction:column;align-items:flex-start;gap:12px}
  .insights-grid{grid-template-columns:1fr}
  .featured-insight{grid-template-columns:1fr}
  .featured-insight img{min-height:280px}
  .office-grid{grid-template-columns:1fr}
  .cs-body .grid{grid-template-columns:1fr;gap:32px}
  .cs-toc{position:static}
  .cs-stats-grid{grid-template-columns:1fr 1fr}
  .sector-grid{grid-template-columns:1fr}
  .service-detail-grid{grid-template-columns:1fr;gap:24px}
  .service-detail-grid ul{grid-template-columns:1fr}
  .team-leadership{grid-template-columns:1fr;padding:32px}
}
@media(max-width:640px){
  nav{padding:16px 20px}
  /* nav-links a:not(.nav-cta) hidden globally at 768px breakpoint above */
  .nav-cta{padding:8px 14px;font-size:12px}
  section{padding:80px 0}
  .wrap{padding:0 20px}
  .hero .wrap{padding-top:100px;padding-bottom:60px}
  .subhero{padding:140px 0 60px}
  .stats-grid{grid-template-columns:repeat(3,1fr);gap:16px;justify-items:center}
  .principles{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .loc-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:12px;text-align:center}
  .hero-ctas{flex-direction:column;align-items:flex-start}
  .cs-stats-grid{grid-template-columns:1fr}
}
