@import url("https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,ital,wght@6..96,400;6..96,500;6..96,600&family=Google+Sans+Flex:opsz,wght@6..144,300..700&display=swap");

:root {
  --peacock:#0e9691;
  --deep-peacock:#006f70;
  --breeze:#9bd7ea;
  --breeze-mist:#eaf5f7;
  --reverse:#173f54;
  --white:#fff;
  --ivory:#f6f3ed;
  --architectural:#faf0e8;
  --grey:#484b4d;
  --soft-charcoal:#272928;
  --soft-black:#242628;
  --near-black:#101212;
  --gold:#d4af37;
  --brass:#b38d4f;
  --ultramarine:#455cc7;
  --line:rgba(72,75,77,.22);
  --line-light:rgba(255,255,255,.2);
  --display:"Bodoni Moda", Didot, serif;
  --sans:Inter, Arial, sans-serif;
  --gutter:clamp(21.6px,4.8px + 3.25vw,80px);
  --grid-gap:clamp(13.6px,7.2px + 1.1vw,28px);
  --header-height:85.6px;
}

/* Bricks production adapters: preserve the prototype geometry while keeping each
   object editable as a native element. */
body.home { overflow-x:hidden; }
body.home main#brx-content { margin:0; }
body.home .brxe-section { width:100%; }
body.home .gateway-image { position:absolute;inset:0;width:100%;height:100%; }
body.home .gateway-image img { width:100%;height:100%;object-fit:cover; }
body.home .gateway-system .brxe-text-basic { display:block; }
body.home .gateway-pillars { display:flex; }
body.home .closing-cta { appearance:none; }
body.home .agf-community { background:var(--ivory);color:var(--charcoal); }
body.home .agf-community .agf-community-image { margin-inline:auto; }
@media(max-width:760px){
 body.home .gateway-pillars { display:grid; }
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ivory); }
body { margin:0; color:var(--soft-charcoal); background:var(--ivory); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
body.menu-open, body.contact-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { color:inherit; }
img { max-width:100%; }
.container { width:min(calc(100% - (2 * var(--gutter))),1440px); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:12px 16px; color:white; background:var(--near-black); transform:translateY(-180%); transition:transform .2s; }
.skip-link:focus { transform:none; }
.section-index { margin:0; font-size:10.56px; font-weight:620; letter-spacing:.16em; line-height:1.3; text-transform:uppercase; }

/* Header */
.site-header { position:fixed; z-index:50; inset:0 0 auto; height:var(--header-height); padding-inline:var(--gutter); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; color:var(--soft-charcoal); background:rgba(246,243,237,.76); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); transition:color .35s,background .35s,border-color .35s; }
.masthead-row { display:contents; }
.identity { justify-self:start; display:flex; align-items:center; gap:15.2px; }
.site-header .identity { animation:identity-settle .65s .08s both cubic-bezier(.22,.75,.22,1); }
.ag-mark { position:relative; display:block; width:44px; height:39.2px; flex:0 0 auto; }
.ag-mark img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transition:opacity .3s; }
.mark-light { opacity:0; }
.identity-type { display:grid; gap:4.48px; text-transform:uppercase; white-space:nowrap; }
.identity-type strong { font-size:10.4px; font-weight:680; letter-spacing:.17em; line-height:1; }
.identity-type small { color:var(--grey); font-size:7.68px; font-weight:560; letter-spacing:.125em; line-height:1; transition:color .35s; }
.utility-row { display:contents; }
.site-header nav { justify-self:center; display:flex; gap:clamp(25.6px,2.7vw,49.6px); }
.site-header nav a,.header-conversation,.menu-trigger { font-size:9.92px; font-weight:620; letter-spacing:.135em; text-transform:uppercase; }
.site-header nav a { transition:color .25s; }
.site-header nav a:hover { color:var(--peacock); }
.conversation-trigger,.menu-trigger { appearance:none; margin:0; padding:0; border:0; background:none; cursor:pointer; }
.header-conversation { justify-self:end; display:flex; align-items:center; gap:16px; padding-block:8.8px; background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat; transition:background-size .3s cubic-bezier(.22,.75,.22,1); }
.header-conversation i { font-style:normal; transition:transform .3s cubic-bezier(.22,.75,.22,1); }
.header-conversation:hover { background-size:100% 1px; }
.header-conversation:hover i { transform:translateX(5px); }
.menu-trigger { display:none; }
.site-header[data-tone="reverse"] { color:white; background:rgba(16,18,18,.54); border-color:var(--line-light); }
.site-header[data-tone="reverse"] .mark-dark { opacity:0; }
.site-header[data-tone="reverse"] .mark-light { opacity:1; }
.site-header[data-tone="reverse"] .identity-type small { color:rgba(255,255,255,.62); }
.site-header[data-tone="reverse"] nav a:hover { color:var(--breeze); }

/* Hero */
.hero { position:relative; min-height:max(784px,100svh); padding:calc(var(--header-height) + 64px) 0 48px; display:flex; align-items:center; overflow:hidden; background:var(--ivory); isolation:isolate; }
.hero-blue-field { position:absolute; z-index:-1; inset:0 0 0 50%; overflow:hidden; background:var(--breeze); transform:translateX(102%); animation:blue-field-in 1.05s .34s forwards cubic-bezier(.22,.75,.22,1); }
.hero-blue-field::before,.hero-blue-field::after { content:""; position:absolute; inset:0; }
.hero-blue-field::before { background:linear-gradient(90deg,rgba(255,255,255,.3),transparent 21%),linear-gradient(145deg,transparent 0 68%,rgba(23,63,84,.09) 68% 100%); }
.hero-blue-field::after { left:28%; width:1px; background:rgba(23,63,84,.18); transform:scaleY(0); transform-origin:top; animation:vertical-rule-in .7s 1.05s forwards cubic-bezier(.22,.75,.22,1); }
.hero-blue-field i { position:absolute; left:28%; top:28%; width:clamp(80px,11vw,160px); height:1px; background:var(--brass); transform:scaleX(0); transform-origin:left; animation:rule-in .55s 1.22s forwards cubic-bezier(.22,.75,.22,1); }
.hero-blue-field span { position:absolute; right:var(--gutter); bottom:36.8px; color:rgba(23,63,84,.58); font-size:8px; font-weight:620; letter-spacing:.17em; text-transform:uppercase; opacity:0; animation:resolve-in .5s 1.35s forwards; }
.hero-grid { min-height:calc(100svh - var(--header-height) - 112px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:1fr auto; gap:var(--grid-gap); align-items:center; }
.hero-copy { position:relative; z-index:2; grid-column:1/span 10; padding-top:32px; }
.descriptor { margin:0 0 clamp(32px,4vw,70.4px); display:flex; align-items:center; gap:13.6px; color:var(--grey); font-size:10.08px; font-weight:600; letter-spacing:.15em; line-height:1.4; text-transform:uppercase; }
.descriptor span { display:inline-block; width:43.2px; height:1px; background:var(--brass); transform-origin:left; animation:rule-in .7s .25s both cubic-bezier(.22,.75,.22,1); }
.hero h1 { max-width:10.3ch; margin:0; font:500 clamp(82.4px,8.8vw,155.2px)/.92 var(--display); letter-spacing:-.052em; }
.hero h1 span,.hero h1 em { display:inline-block; clip-path:inset(0 100% 0 0); animation:text-reveal .85s .38s forwards cubic-bezier(.22,.75,.22,1); }
.hero h1 em { color:var(--peacock); font-weight:400; animation-delay:.58s; }
.hero-proposition { width:min(496px,82%); margin:clamp(40px,4.6vw,76px) 0 0; color:var(--grey); font-size:clamp(16px,1.2vw,17.92px); line-height:1.65; animation:resolve-in .6s 1.02s both ease-out; }
.hero-coordinate { position:absolute; z-index:2; right:var(--gutter); top:50%; margin:0; display:flex; align-items:center; gap:12.8px; color:var(--reverse); font-size:7.84px; font-weight:620; letter-spacing:.15em; text-transform:uppercase; writing-mode:vertical-rl; opacity:0; animation:resolve-in .5s 1.35s forwards; }
.hero-coordinate i { width:1px; height:41.6px; background:var(--brass); }
.enter-cue { grid-column:10/-1; grid-row:2; z-index:2; justify-self:end; display:flex; align-items:center; gap:16px; color:var(--reverse); font-size:9.28px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.enter-cue i { width:40.8px; aspect-ratio:1; display:grid; place-items:center; border:1px solid var(--line); font-style:normal; animation:cue 2.6s 1.8s infinite ease-in-out; }

/* Outcomes */
.outcomes { padding:clamp(88px,8vw,128px) 0 0; background:linear-gradient(135deg,var(--breeze-mist),#f3f8f7 64%,var(--architectural)); }
.outcomes-head { min-height:0; padding-bottom:clamp(64px,6vw,96px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); align-items:end; }
.outcomes-head .section-index { grid-column:1/span 3; padding-top:16px; color:var(--grey); }
.outcomes-head h2 { grid-column:3/span 6; margin:0; color:var(--reverse); font:400 clamp(64px,6.4vw,108.8px)/.91 var(--display); letter-spacing:-.05em; }
.outcomes-head h2 em { color:var(--deep-peacock); font-weight:400; }
.outcomes-head>p:last-child { grid-column:9/-1; margin:0 0 8px; color:var(--grey); font-size:14.4px; line-height:1.65; }
.outcome-list { border-top:1px solid var(--line); }
.outcome-row { min-height:134.4px; display:grid; grid-template-columns:1fr 5fr 3fr auto; gap:var(--grid-gap); align-items:center; border-bottom:1px solid var(--line); transition:color .25s,background .25s; }
.outcome-row>span { align-self:start; padding-top:23.2px; color:var(--brass); font-size:9.44px; letter-spacing:.16em; }
.outcome-row h3 { margin:0; font:400 clamp(38.4px,4vw,69.6px)/.95 var(--display); letter-spacing:-.045em; }
.outcome-row h3 em { color:var(--peacock); font-weight:400; }
.outcome-row p { margin:0; color:var(--grey); font-size:14.08px; line-height:1.55; }
.outcome-row>i { width:40px; aspect-ratio:1; display:grid; place-items:center; border:1px solid var(--line); font-style:normal; transition:transform .3s,background .3s,color .3s; }
.outcome-row:hover { background:rgba(155,215,234,.16); }
.outcome-row:hover>i { color:white; background:var(--peacock); transform:rotate(-45deg); }

/* Capabilities */
.capabilities { position:relative; padding:clamp(112px,11vw,176px) 0; overflow:hidden; color:white; background:var(--reverse); }
.capabilities::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 76% 46%,rgba(155,215,234,.17),transparent 28%),linear-gradient(135deg,transparent 0 66%,rgba(69,92,199,.13) 66% 100%); }
.capabilities-grid { position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); }
.capabilities-title { grid-column:1/span 8; }
.capabilities .section-index { color:var(--breeze); }
.capabilities h2 { margin:56px 0 0; font:400 clamp(64px,7vw,118.4px)/.9 var(--display); letter-spacing:-.05em; }
.capabilities h2 em { color:var(--breeze); font-weight:400; }
.capabilities h2 span { color:rgba(255,255,255,.52); font-size:.65em; }
.capabilities-intro { grid-column:9/-1; align-self:end; margin:0 0 12.8px; max-width:368px; color:rgba(255,255,255,.65); font-size:15.2px; line-height:1.65; }
.capability-system { position:relative; grid-column:1/-1; min-height:1088px; margin-top:128px; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:repeat(6,1fr); gap:var(--grid-gap); }
.system-axis { position:absolute; z-index:0; left:50%; top:16px; bottom:16px; width:1px; background:rgba(255,255,255,.2); }
.system-axis::before,.system-axis::after { content:""; position:absolute; left:50%; width:8.8px; aspect-ratio:1; border-radius:50%; background:var(--gold); transform:translateX(-50%); }
.system-axis::before { top:0; }
.system-axis::after { bottom:0; background:var(--peacock); }
.system-axis span { position:absolute; top:0; left:0; width:1px; height:0; background:var(--breeze); transition:height 1.4s cubic-bezier(.22,.75,.22,1); }
.capability-system.in-view .system-axis span { height:100%; }
.capability { position:relative; z-index:1; align-self:center; max-width:480px; }
.capability::after { content:""; position:absolute; top:16.8px; width:var(--connector,96px); height:1px; background:rgba(255,255,255,.25); }
.capability>span { color:var(--gold); font-size:8.8px; letter-spacing:.16em; }
.capability h3 { margin:9.6px 0 12px; font:400 clamp(32px,3.4vw,60.8px)/1 var(--display); letter-spacing:-.035em; }
.capability p { max-width:352px; margin:0; color:rgba(255,255,255,.58); font-size:13.28px; line-height:1.55; }
.capability-ai { grid-column:1/span 5; grid-row:1; }
.capability-workflow { grid-column:8/-1; grid-row:2; }
.capability-cx { grid-column:1/span 5; grid-row:3; }
.capability-design { grid-column:8/-1; grid-row:4; }
.capability-enable { grid-column:1/span 5; grid-row:5; }
.capability-ai::after,.capability-cx::after,.capability-enable::after { left:calc(100% + 16px); }
.capability-workflow::after,.capability-design::after { right:calc(100% + 16px); }
.system-centre { grid-column:5/span 4; grid-row:6; align-self:end; margin:0; padding:25.6px; display:flex; justify-content:space-between; align-items:center; gap:16px; color:var(--reverse); background:var(--breeze); font-size:8.96px; font-weight:630; letter-spacing:.13em; text-transform:uppercase; }
.system-centre i { font-style:normal; }

/* Thinking + process */
.thinking { color:white; background:var(--soft-charcoal); }
.thinking-statement { min-height:82svh; padding-block:clamp(112px,10vw,160px) clamp(64px,7vw,112px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); align-content:center; }
.thinking-statement .section-index { grid-column:1/span 4; align-self:start; color:var(--breeze); }
.thinking-statement h2 { grid-column:2/-1; margin:64px 0 0; font:400 clamp(60.8px,6.75vw,113.6px)/.93 var(--display); letter-spacing:-.05em; }
.thinking-statement h2 em { color:var(--breeze); font-weight:400; }
.principles { padding-bottom:clamp(80px,8vw,128px); display:grid; grid-template-columns:repeat(3,1fr); gap:0 clamp(32px,5vw,96px); }
.principles p { margin:0; min-height:105.6px; display:flex; gap:21.6px; align-items:center; border-top:1px solid var(--line-light); font:400 clamp(20.8px,1.85vw,32px)/1.13 var(--display); }
.principles p:nth-child(even) { transform:none; }
.principles p span { color:var(--gold); font:600 8.64px/1 var(--sans); letter-spacing:.15em; }
.process { position:relative; color:var(--soft-charcoal); background:linear-gradient(145deg,var(--breeze-mist),#dceff2); }
.process-sticky { min-height:94svh; padding-block:calc(var(--header-height) + 56px) 64px; display:grid; grid-template-rows:auto 1fr; align-content:center; }
.process-copy { display:grid; grid-template-columns:1fr 1fr; align-items:end; }
.process-copy p { margin:0; font:400 clamp(44.8px,5.2vw,92.8px)/.94 var(--display); letter-spacing:-.045em; }
.process-copy p em { color:var(--deep-peacock); font-weight:400; }
.process-copy span { justify-self:end; max-width:320px; color:var(--reverse); font-size:14.4px; line-height:1.6; }
.process-graph { position:relative; min-height:clamp(288px,26vw,384px); margin-top:clamp(48px,5vw,80px); display:grid; grid-template-rows:1fr auto; align-items:center; }
.process-rail { position:absolute; left:0; right:0; top:40%; height:1px; overflow:hidden; background:rgba(23,63,84,.18); }
.process-rail i { display:block; width:100%; height:100%; background:linear-gradient(90deg,var(--deep-peacock),var(--peacock) 78%,var(--gold)); transform-origin:left; }
.process-steps { position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--grid-gap); margin:0; padding:0; list-style:none; }
.process-steps li { position:relative; display:flex; flex-direction:column; gap:11.52px; padding:36px 12px 0 0; }
.process-steps li::before { content:""; position:absolute; left:0; top:-9.92px; width:1px; height:20px; background:var(--deep-peacock); }
.process-steps span { color:var(--deep-peacock); font-size:8.8px; font-weight:650; letter-spacing:.15em; }
.process-steps strong { font:400 clamp(23.2px,2.25vw,42.4px)/1 var(--display); white-space:nowrap; }
.process-result { justify-self:end; min-width:min(384px,34vw); margin:0; padding:22.4px 25.6px; display:flex; justify-content:space-between; align-items:center; gap:16px; color:white; background:var(--deep-peacock); font-size:8.8px; font-weight:620; letter-spacing:.13em; text-transform:uppercase; }
.process-result i { color:var(--gold); font-style:normal; }
.process-graph.motion-ready .process-rail i { transform:scaleX(0); }
.process-graph.motion-ready .process-steps li { opacity:0; transform:translateX(40px); clip-path:inset(0 100% 0 0); }
.process-graph.motion-ready .process-result { opacity:0; transform:translateY(16px); }
.process-graph.motion-ready.in-view .process-rail i { animation:process-scan .85s cubic-bezier(.22,.75,.23,1) both; }
.process-graph.motion-ready.in-view .process-steps li { animation:process-stage-in .58s cubic-bezier(.22,.75,.23,1) both; }
.process-graph.motion-ready.in-view .process-steps li:nth-child(1) { animation-delay:.16s; }
.process-graph.motion-ready.in-view .process-steps li:nth-child(2) { animation-delay:.27s; }
.process-graph.motion-ready.in-view .process-steps li:nth-child(3) { animation-delay:.38s; }
.process-graph.motion-ready.in-view .process-steps li:nth-child(4) { animation-delay:.49s; }
.process-graph.motion-ready.in-view .process-steps li:nth-child(5) { animation-delay:.6s; }
.process-graph.motion-ready.in-view .process-result { animation:process-result-in .55s .84s cubic-bezier(.22,.75,.23,1) both; }
@keyframes process-scan { to { transform:scaleX(1); } }
@keyframes process-stage-in { to { opacity:1; transform:translateX(0); clip-path:inset(0 0 0 0); } }
@keyframes process-result-in { to { opacity:1; transform:translateY(0); } }

/* Real Estate gateway */
.vertical-gateway { position:relative; min-height:125svh; overflow:hidden; color:white; background:var(--near-black); }
.vertical-gateway>.gateway-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 56%; transform:scale(1.04); }
.vertical-gateway>.gateway-image img { width:100%;height:100%;object-fit:cover;object-position:inherit; }
.gateway-scrim { position:absolute; inset:0; background:linear-gradient(90deg,rgba(16,18,18,.82) 0 36%,rgba(16,18,18,.3) 64%,rgba(16,18,18,.55) 100%),linear-gradient(0deg,rgba(16,18,18,.85),transparent 42%); }
.gateway-system { position:absolute; z-index:2; inset:0; display:grid; grid-template-columns:repeat(6,1fr); opacity:.34; transition:opacity 1s; }
.gateway-system i { border-left:1px solid rgba(155,215,234,.4); transform:translateY(-100%); animation:grid-drop 1.2s both cubic-bezier(.22,.75,.22,1); animation-timeline:view(); animation-range:entry 0% cover 38%; }
.gateway-system i:last-child { border-right:1px solid rgba(155,215,234,.4); }
.gateway-content { position:relative; z-index:3; min-height:125svh; padding-block:calc(var(--header-height) + 80px) 48px; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto 1fr auto; gap:var(--grid-gap); }
.gateway-content .section-index { grid-column:1/span 4; color:var(--breeze); }
.gateway-super { grid-column:8/-1; justify-self:end; margin:0; text-align:right; font:400 clamp(32px,3.3vw,57.6px)/1 var(--display); letter-spacing:-.03em; }
.gateway-super em { color:var(--breeze); font-weight:400; }
.gateway-title { grid-column:1/span 8; align-self:center; }
.gateway-title>span { display:block; margin-bottom:16px; font-size:10.24px; font-weight:620; letter-spacing:.18em; text-transform:uppercase; }
.gateway-title h2 { margin:0; font:400 clamp(96px,12.5vw,224px)/.74 var(--display); letter-spacing:-.065em; }
.gateway-title p { max-width:496px; margin:48px 0 36px; font-size:clamp(16.8px,1.6vw,21.6px); line-height:1.55; }
.gateway-title a { display:inline-flex; align-items:center; gap:16px; padding-bottom:11.2px; border-bottom:1px solid var(--gold); font-size:10.08px; font-weight:620; letter-spacing:.14em; text-transform:uppercase; }
.gateway-title a i { font-style:normal; transition:transform .3s; }
.gateway-title a:hover i { transform:translateX(6.4px); }
.gateway-pillars { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-light); }
.gateway-pillars span { padding-top:20px; font-size:9.28px; letter-spacing:.13em; text-transform:uppercase; }

/* Legacy work layout retained for design-history compatibility; no longer used on the master-brand page. */
.work { padding:clamp(112px,11vw,176px) 0; background:var(--ivory); }
.work-heading { min-height:58svh; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); align-content:start; }
.work-heading .section-index { grid-column:1/span 3; padding-top:16px; color:var(--grey); }
.work-heading h2 { grid-column:3/span 8; margin:0; font:400 clamp(64px,7vw,118.4px)/.92 var(--display); letter-spacing:-.05em; }
.work-heading h2 em { color:var(--peacock); font-weight:400; }
.work-heading>p:last-child { grid-column:9/-1; align-self:end; margin:48px 0 0; color:var(--grey); font-size:14.4px; line-height:1.6; }
.project { margin-bottom:clamp(112px,11vw,176px); }
.project-dalgety { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); }
.project-image { position:relative; display:block; overflow:hidden; background:var(--reverse); }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.22,.75,.22,1); }
.project-image:hover img { transform:scale(1.025); }
.project-image>span { position:absolute; right:16px; bottom:16px; padding:10.4px 12.8px; color:white; background:rgba(16,18,18,.7); font-size:8.32px; letter-spacing:.12em; text-transform:uppercase; }
.project-dalgety .project-image { grid-column:1/span 9; height:min(68svh,736px); }
.project-dalgety .project-image img { object-position:center 68%; }
.project-copy { align-self:end; }
.project-dalgety .project-copy { grid-column:10/-1; }
.project-copy>span { color:var(--brass); font-size:8.8px; font-weight:620; letter-spacing:.14em; text-transform:uppercase; }
.project-copy h3 { margin:19.2px 0 16px; font:400 clamp(44.8px,5vw,83.2px)/.94 var(--display); letter-spacing:-.045em; }
.project-copy p { margin:0; color:var(--grey); font-size:12.48px; line-height:1.65; text-transform:none; }
.project-pair { display:grid; grid-template-columns:5fr 4fr; gap:clamp(32px,6vw,128px); align-items:start; }
.project-pair .project { margin:0; }
.project-pair .project-image { height:min(58svh,640px); }
.project-macro { margin-top:128px !important; }
.project-housing .project-image { aspect-ratio:.9; height:auto; }
.project-pair .project-copy { margin-top:28px; }
.project-pair .project-copy h3 { font-size:clamp(38.4px,4vw,70.4px); }

/* About and purpose */
.boutique { padding:0; background:var(--soft-charcoal); color:white; overflow:hidden; }
.boutique-grid { min-height:96svh; padding-block:clamp(112px,11vw,176px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto 1fr auto auto; gap:var(--grid-gap); }
.boutique-grid .section-index { grid-column:1/span 3; color:rgba(255,255,255,.42); }
.boutique-grid h2 { grid-column:1/-1; align-self:center; margin:0; font:400 clamp(80px,11vw,184px)/.82 var(--display); letter-spacing:-.07em; }
.boutique-grid h2 em { color:var(--breeze); font-weight:400; }
.boutique-copy { grid-column:5/span 4; max-width:496px; }
.boutique-copy p { margin:0 0 40px; color:rgba(255,255,255,.62); font-size:13.44px; line-height:1.8; }
.boutique-copy strong { display:block; color:white; font:400 clamp(26.4px,2.4vw,37.6px)/1.2 var(--display); letter-spacing:-.025em; }
.boutique-place { grid-column:10/-1; align-self:end; justify-self:end; color:rgba(179,141,79,.82); font-size:8.96px; line-height:1.7; letter-spacing:.15em; text-align:right; text-transform:uppercase; }

/* Transitional Community Housing — moved intact from the specialist experience */
.community { padding-top:clamp(72px,7vw,112px); overflow:hidden; color:var(--charcoal); background:var(--ivory); }
.community-pause { min-height:0; padding-bottom:clamp(64px,6vw,96px); display:grid; grid-template-columns:auto 1fr; align-items:start; gap:clamp(32px,6vw,112px); color:var(--grey); font-size:9.28px; letter-spacing:.15em; text-transform:uppercase; }
.community-pause i { height:1px; margin-top:6.4px; background:linear-gradient(90deg,rgba(72,75,77,.28) 0 82%,rgba(179,141,79,.72) 100%); }
.community-statement { min-height:62svh; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto 1fr; gap:var(--grid-gap); }
.community-index { grid-column:9/span 3; margin:0; color:var(--grey); font-size:9.76px; letter-spacing:.14em; text-transform:uppercase; }
.community-statement h2 { grid-column:2/span 10; align-self:center; margin:0; font:400 clamp(65.6px,8vw,134.4px)/.91 var(--display); letter-spacing:-.055em; }
.community-image { position:relative; width:82vw; height:auto; aspect-ratio:15/8; margin:0 0 0 auto; overflow:hidden; background:var(--ivory); }
.community-image::after { display:none; }
.community-image picture,.community-image img { display:block; width:100%; height:100%; }
.community-image img { object-fit:contain; object-position:center; filter:none; }
.community-image figcaption { position:absolute; z-index:2; left:24px; bottom:24px; padding:8px 11.2px; color:var(--charcoal); background:rgba(250,247,240,.92); font-size:8.8px; letter-spacing:.15em; text-transform:uppercase; }
.community-note { min-height:38svh; padding-block:clamp(64px,6vw,96px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--grid-gap); }
.community-note p { grid-column:8/span 4; align-self:start; margin:0; padding-top:24px; border-top:1px solid rgba(72,75,77,.28); color:var(--grey); font-size:13.28px; line-height:1.8; }

/* Closing */
.closing { min-height:100svh; padding:calc(var(--header-height) + 80px) 0 40px; display:flex; color:white; background:var(--deep-peacock); }
.closing-grid { flex:none; width:min(1312px,86vw); margin-inline:auto; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:auto 1fr auto; gap:var(--grid-gap); align-items:start; }
.closing .section-index { grid-column:1/span 3; color:rgba(255,255,255,.65); }
.closing h2 { grid-column:2/span 9; align-self:center; margin:0; font:400 clamp(80px,9vw,160px)/.84 var(--display); letter-spacing:-.06em; }
.closing h2 em { color:var(--breeze); font-weight:400; }
.closing-cta { grid-column:10/-1; align-self:center; justify-self:end; display:flex; align-items:center; gap:19.2px; padding:14.4px 0; border:0; border-bottom:1px solid var(--gold); color:inherit; background:transparent; cursor:pointer; font-size:10.72px; font-weight:620; letter-spacing:.14em; text-transform:uppercase; }
.closing-cta span { transition:transform .3s; }
.closing-cta:hover span { transform:translateX(5.6px); }
.closing footer { grid-column:1/-1; padding-top:32px; display:grid; grid-template-columns:2fr 2fr 1fr; border-top:1px solid var(--line-light); font-size:10.88px; line-height:1.65; }
.closing footer address { font-style:normal; }
.closing footer>span { text-align:right; color:rgba(255,255,255,.65); text-transform:uppercase; letter-spacing:.1em; }

/* Contact */
.contact-overlay { position:fixed; z-index:100; inset:0; display:flex; justify-content:flex-end; visibility:hidden; opacity:0; background:rgba(16,18,18,.58); transition:opacity .32s,visibility .32s; }
.contact-overlay[data-open="true"] { visibility:visible; opacity:1; }
.contact-panel { width:min(1040px,88vw); height:100%; padding:32px clamp(24px,4vw,64px); overflow:auto; color:white; background:var(--reverse); transform:translateX(48px); transition:transform .36s cubic-bezier(.22,.75,.22,1); outline:none; }
.contact-overlay[data-open="true"] .contact-panel { transform:none; }
.contact-close { width:100%; display:flex; justify-content:space-between; align-items:center; padding:0 0 16px; border:0; border-bottom:1px solid var(--line-light); color:white; background:none; cursor:pointer; font-size:9.28px; letter-spacing:.14em; text-transform:uppercase; }
.contact-close i { font:400 27.2px/1 var(--display); }
.contact-content { padding-top:clamp(48px,7vh,96px); display:grid; grid-template-columns:5fr 6fr; gap:clamp(32px,6vw,112px); }
.contact-intro p,.contact-success>span { margin:0 0 24px; color:var(--breeze); font-size:9.28px; letter-spacing:.15em; text-transform:uppercase; }
.contact-intro h2,.contact-success h2 { margin:0; font:400 clamp(57.6px,6vw,108.8px)/.88 var(--display); letter-spacing:-.05em; }
.contact-intro h2 em { color:var(--breeze); font-weight:400; }
.contact-content form { display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; }
.contact-content label { display:grid; gap:10.4px; color:rgba(255,255,255,.75); font-size:9.44px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.contact-content label span { justify-self:end; color:rgba(255,255,255,.38); font-size:7.68px; }
.contact-content input,.contact-content textarea { width:100%; padding:12px 0; border:0; border-bottom:1px solid rgba(255,255,255,.34); border-radius:0; color:white; background:transparent; outline:none; resize:vertical; text-transform:none; }
.contact-content input:focus,.contact-content textarea:focus { border-color:var(--breeze); }
.form-message { grid-column:1/-1; }
.form-message>p { margin:9.6px 0 22.4px; color:rgba(255,255,255,.55); font:400 18.4px/1.45 var(--display); }
.form-error { grid-column:1/-1; margin:0; color:#ffd7c6; font-size:12px; }
.form-submit { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; margin-top:8px; padding:16px 0; border:0; border-bottom:1px solid var(--gold); color:white; background:none; cursor:pointer; font-size:10.08px; font-weight:620; letter-spacing:.14em; text-transform:uppercase; }
.form-submit i { font-style:normal; }
.contact-direct { grid-column:2; margin-top:32px; display:grid; gap:7.2px; font-style:normal; font-size:12.48px; }
.contact-direct span { margin-bottom:8px; color:rgba(255,255,255,.55); font-size:8.96px; letter-spacing:.13em; text-transform:uppercase; }
.contact-success { padding-top:clamp(80px,13vh,160px); }
.contact-success button { margin-top:80px; padding:12.8px 0; border:0; border-bottom:1px solid var(--gold); color:white; background:none; cursor:pointer; font-size:9.6px; letter-spacing:.13em; text-transform:uppercase; }

/* Mobile menu */
.menu-panel { position:fixed; z-index:45; inset:0; padding:192px var(--gutter) 48px; visibility:hidden; opacity:0; color:white; background:var(--reverse); transition:opacity .3s,visibility .3s; }
.menu-panel[data-open="true"] { visibility:visible; opacity:1; }
.menu-panel nav { display:grid; border-top:1px solid var(--line-light); }
.menu-panel a { min-height:73.6px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line-light); font:400 clamp(29.6px,8vw,48px)/1 var(--display); }
.menu-panel a span { font:600 8.32px/1 var(--sans); letter-spacing:.14em; }

@keyframes rule-in { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes identity-settle { from { opacity:0; transform:translateY(-7.2px); } to { opacity:1; transform:none; } }
@keyframes blue-field-in { from { transform:translateX(102%); } to { transform:none; } }
@keyframes vertical-rule-in { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes text-reveal { from { clip-path:inset(0 100% 0 0); transform:translateX(-6.4px); } to { clip-path:inset(0); transform:none; } }
@keyframes resolve-in { from { opacity:0; transform:translateY(11.2px); } to { opacity:1; transform:none; } }
@keyframes draw-line { to { stroke-dashoffset:0; } }
@keyframes node-in { to { opacity:1; } }
@keyframes resolution-in { to { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-3deg); } }
@keyframes cue { 0%,72%,100% { transform:translateY(0); } 84% { transform:translateY(3.52px); } }
@keyframes grid-drop { from { transform:translateY(-100%); } to { transform:none; } }
@keyframes gateway-drift { from { transform:scale(1.12) translateY(-1.25%); } to { transform:scale(1.04) translateY(1.25%); } }
@supports (animation-timeline:view()) {
  .vertical-gateway>.gateway-image { animation:gateway-drift linear both; animation-timeline:view(); animation-range:entry exit; }
}
.vertical-gateway.motion-ready>img,
.vertical-gateway.motion-ready .gateway-system i { animation:none !important; }
.vertical-gateway.motion-ready .gateway-title,
.vertical-gateway.motion-ready .gateway-super { will-change:transform,opacity; }

@media (max-width:980px) {
  .hero-copy { grid-column:1/span 11; }
  .outcome-row { grid-template-columns:.7fr 4.4fr 3fr auto; }
  .capability-system { min-height:960px; }
  .gateway-title { grid-column:1/span 10; }
  .project-dalgety .project-image { grid-column:1/span 8; }
  .project-dalgety .project-copy { grid-column:9/-1; }
}

@media (max-width:760px) {
  :root { --header-height:142.4px; }
  .site-header { height:var(--header-height); padding:0 var(--gutter); display:grid; grid-template-columns:1fr; grid-template-rows:84.8px 57.6px; align-items:stretch; }
  .masthead-row { display:flex; align-items:center; border-bottom:1px solid var(--line); }
  .site-header[data-tone="reverse"] .masthead-row { border-color:var(--line-light); }
  .identity { gap:15.2px; }
  .ag-mark { width:51.2px; height:45.6px; }
  .identity-type strong { font-size:10.72px; }
  .identity-type small { font-size:7.36px; }
  .utility-row { display:grid; grid-template-columns:1fr auto; align-items:center; }
  .site-header nav { display:none; }
  .menu-trigger { display:block; justify-self:start; min-height:43.2px; }
  .header-conversation { font-size:8.8px; letter-spacing:.095em; }
  .header-conversation i { margin-left:5.6px; }

  .hero { min-height:100svh; padding:calc(var(--header-height) + 44.8px) 0 40px; }
  .hero-grid { min-height:calc(100svh - var(--header-height) - 84.8px); grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:auto 1fr auto; }
  .hero-copy { grid-column:1/-1; grid-row:1; padding:0; }
  .hero-blue-field { inset:46% 0 0 24%; }
  .hero-blue-field::after,.hero-blue-field i { left:18%; }
  .hero-blue-field span { bottom:16px; }
  .descriptor { margin-bottom:33.6px; gap:9.6px; font-size:7.68px; }
  .descriptor span { width:19.2px; }
  .hero h1 { font-size:clamp(46px,13vw,60px); line-height:.91; }
  .hero-proposition { width:88%; margin-top:32px; font-size:14.72px; }
  .hero-coordinate { display:none; }
  .enter-cue { grid-column:2/-1; grid-row:3; }

  .outcomes { padding-top:88px; }
  .outcomes-head { min-height:0; padding-bottom:64px; grid-template-columns:repeat(4,1fr); }
  .outcomes-head .section-index { grid-column:1/span 2; }
  .outcomes-head h2 { grid-column:1/-1; margin-top:36px; font-size:clamp(60.8px,16vw,92.8px); }
  .outcomes-head>p:last-child { grid-column:1/-1; margin-top:40px; }
  .outcome-row { min-height:168px; grid-template-columns:32px 1fr auto; align-content:center; }
  .outcome-row>span { padding-top:8.8px; }
  .outcome-row h3 { font-size:clamp(43.2px,12vw,64px); }
  .outcome-row p { grid-column:2/-1; margin-top:-4.8px; padding-bottom:20px; }
  .outcome-row>i { grid-column:3; grid-row:1; }

  .capabilities { padding:104px 0; }
  .capabilities-grid { grid-template-columns:repeat(4,1fr); }
  .capabilities-title,.capabilities-intro,.capability-system { grid-column:1/-1; }
  .capabilities h2 { margin-top:40px; font-size:clamp(60.8px,16vw,92.8px); }
  .capabilities-intro { margin-top:48px; }
  .capability-system { min-height:1120px; margin-top:80px; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(7,1fr); }
  .system-axis { left:17.6px; }
  .capability { grid-column:2/-1 !important; max-width:none; }
  .capability::after { left:auto !important; right:calc(100% + 16px) !important; width:35.2px; }
  .capability-ai { grid-row:1; }
  .capability-workflow { grid-row:2; }
  .capability-cx { grid-row:3; }
  .capability-design { grid-row:4; }
  .capability-enable { grid-row:5; }
  .capability h3 { font-size:clamp(35.2px,10.5vw,56px); }
  .system-centre { grid-column:1/-1; grid-row:7; }

  .thinking-statement { min-height:82svh; grid-template-columns:repeat(4,1fr); }
  .thinking-statement .section-index { grid-column:1/-1; }
  .thinking-statement h2 { grid-column:1/-1; margin-top:48px; font-size:clamp(54.4px,14vw,80px); }
  .principles { grid-template-columns:1fr; }
  .principles p,.principles p:nth-child(even) { min-height:112px; transform:none; }
  .process { height:auto; }
  .process-sticky { min-height:0; padding:96px 0; }
  .process-copy { grid-template-columns:1fr; gap:32px; }
  .process-copy span { justify-self:start; }
  .process-graph { min-height:0; margin-top:72px; display:block; padding-left:20px; }
  .process-rail { left:0; right:auto; top:0; bottom:0; width:1px; height:auto; }
  .process-rail i { width:100%; height:100%; transform-origin:top; }
  .process-steps { grid-template-columns:1fr; gap:33.6px; }
  .process-steps li { padding:0 0 0 32px; }
  .process-steps li::before { left:0; top:12px; width:16px; height:1px; }
  .process-result { min-width:0; margin-top:64px; }
  .process-graph.motion-ready .process-rail i { transform:scaleY(0); }
  .process-graph.motion-ready.in-view .process-rail i { animation-name:process-scan-mobile; }
  @keyframes process-scan-mobile { to { transform:scaleY(1); } }

  .vertical-gateway { min-height:120svh; }
  .vertical-gateway>.gateway-image { object-position:58% center; }
  .gateway-scrim { background:linear-gradient(0deg,rgba(16,18,18,.9) 0 52%,rgba(16,18,18,.32) 100%); }
  .gateway-content { min-height:120svh; padding-top:calc(var(--header-height) + 48px); grid-template-columns:repeat(4,1fr); grid-template-rows:auto auto 1fr auto; }
  .gateway-content .section-index { grid-column:1/-1; }
  .gateway-super { grid-column:1/-1; justify-self:start; margin-top:32px; text-align:left; }
  .gateway-title { grid-column:1/-1; align-self:end; margin-bottom:56px; }
  .gateway-title h2 { font-size:clamp(88px,23vw,128px); }
  .gateway-pillars { grid-column:1/-1; grid-template-columns:1fr 1fr; gap:16px; }

  .work { padding:104px 0; }
  .work-heading { min-height:52svh; grid-template-columns:repeat(4,1fr); }
  .work-heading .section-index,.work-heading h2,.work-heading>p:last-child { grid-column:1/-1; }
  .work-heading h2 { margin-top:32px; font-size:clamp(60.8px,16vw,92.8px); }
  .work-heading>p:last-child { margin-top:32px; }
  .project-dalgety { grid-template-columns:repeat(4,1fr); }
  .project-dalgety .project-image { grid-column:1/-1; height:57svh; }
  .project-dalgety .project-copy { grid-column:1/-1; margin-top:24px; }
  .project-pair { grid-template-columns:1fr; gap:96px; }
  .project-macro { margin-top:0 !important; }
  .project-pair .project-image { height:54svh; }
  .project-housing .project-image { height:54svh; aspect-ratio:auto; }

  .boutique { padding:0; }
  .boutique-grid { min-height:100svh; padding-block:112px; grid-template-columns:repeat(4,1fr); }
  .boutique-grid .section-index,.boutique-grid h2,.boutique-copy { grid-column:1/-1; }
  .boutique-grid h2 { margin-top:32px; font-size:clamp(64px,17vw,96px); }
  .boutique-copy { margin-top:48px; }
  .boutique-place { grid-column:2/-1; margin-top:48px; }
  .community-pause { min-height:0; padding-bottom:64px; grid-template-columns:1fr; }
  .community-pause i { width:100%; }
  .community-statement { min-height:64svh; grid-template-columns:repeat(4,1fr); }
  .community-index { grid-column:3/-1; }
  .community-statement h2 { grid-column:1/-1; font-size:clamp(59.2px,15vw,92.8px); }
  .community-image { width:92vw; height:auto; aspect-ratio:390/844; }
  .community-image img { object-position:center; }
  .community-note { min-height:40svh; padding-block:64px; grid-template-columns:repeat(4,1fr); }
  .community-note p { grid-column:2/-1; }

  .closing { min-height:100svh; padding-top:calc(var(--header-height) + 48px); }
  .closing-grid { width:calc(100% - 48px); grid-template-columns:repeat(4,1fr); grid-template-rows:auto 1fr auto auto; }
  .closing .section-index { grid-column:1/-1; }
  .closing h2 { grid-column:1/-1; font-size:clamp(72px,19vw,108.8px); }
  .closing-cta { grid-column:1/-1; justify-self:start; }
  .closing footer { grid-column:1/-1; grid-template-columns:1fr 1fr; gap:32px; }
  .closing footer>span { grid-column:1/-1; text-align:left; }

  .contact-panel { width:100%; }
  .contact-content { grid-template-columns:1fr; }
  .contact-content form { grid-template-columns:1fr; }
  .form-message,.form-submit,.form-error { grid-column:1; }
  .contact-direct { grid-column:1; }
}

@media (max-width:360px) {
  .header-conversation { font-size:7.84px; letter-spacing:.06em; }
  .identity-type small { letter-spacing:.08em; }
  .hero h1 { font-size:46px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .hero h1 span,.hero h1 em { clip-path:none; }
  .process { height:auto; }
  .process-sticky { position:relative; }
  .process-graph.motion-ready .process-rail i { transform:none; }
  .process-graph.motion-ready .process-steps li,.process-graph.motion-ready .process-result { opacity:1; transform:none; clip-path:none; }
  .vertical-gateway>.gateway-image { animation:none; transform:scale(1.04); }
}
