/* ============================================================
   IAI GROUP — "BLUEPRINT" MONOCHROME STYLESHEET
   A black-and-white redesign grounded in the language of
   architectural drawings: hairline rule, drafting-paper grid,
   crop/registration marks on every frame, coordinate-style
   mono captions. No colour anywhere — contrast does the work.
   ============================================================ */

:root{
  --paper:#f7f2e7;
  --paper-dim:#efe7d4;
  --paper-card:#ffffff;
  --ink:#0f0e0c;
  --ink-soft:#191712;
  --ink-card:#201d17;
  --line:rgba(180,140,60,.22);
  --line-strong:rgba(180,140,60,.4);
  --line-on-ink:rgba(232,198,127,.16);
  --line-on-ink-strong:rgba(232,198,127,.35);
  --gray:#71695a;
  --gray-on-ink:#a89d87;
  --white:#f7f2e7;
  --black:#0f0e0c;
  --focus:#c9a24d;
  --accent:#dcae4d;
  --accent-deep:#9c7420;
  --accent-soft:rgba(220,174,77,.14);
  --accent2:#4f8a7c;
  --accent2-deep:#2f5b50;
  --accent2-soft:rgba(79,138,124,.16);

  /* Elevation system — consistent shadow depth used across cards, dropdowns, modals */
  --shadow-sm:0 2px 8px rgba(13,12,10,.06), 0 1px 2px rgba(13,12,10,.04);
  --shadow-md:0 8px 24px rgba(13,12,10,.10), 0 2px 6px rgba(13,12,10,.06);
  --shadow-lg:0 20px 48px rgba(13,12,10,.16), 0 6px 16px rgba(13,12,10,.08);
  --shadow-gold:0 10px 30px rgba(220,174,77,.22);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}

/* ---------- LIGHT MODE (toggle) ----------
   Flips every "ink" / "paper" pairing, so dark chrome (nav, hero,
   footer) becomes warm cream and cream sections become charcoal —
   the same duo-tone gold + teal palette carries through both. */
html[data-theme="light"]{
  --paper:#0f0e0c;
  --paper-dim:#191712;
  --paper-card:#201d17;
  --ink:#f7f2e7;
  --ink-soft:#efe7d4;
  --ink-card:#ffffff;
  --line:rgba(232,198,127,.16);
  --line-strong:rgba(232,198,127,.35);
  --line-on-ink:rgba(180,140,60,.22);
  --line-on-ink-strong:rgba(180,140,60,.4);
  --gray:#a89d87;
  --gray-on-ink:#71695a;
}
html{transition:none;}
body{transition:background-color .4s ease, color .4s ease;}
nav, footer, .hero, .hero-split, .hero-full, .stats, .mini-stats, .cta-split, .marquee-strip, .topbar{
  transition:background-color .4s ease, border-color .4s ease;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .marquee-track{animation-duration:50s !important; animation-iteration-count:infinite !important;}
}
:focus-visible{outline:2px solid var(--ink); outline-offset:3px;}

/* Form field focus states — every text input, textarea and select
   across Contact / Careers / Apply forms was missing focus feedback. */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select{
  transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, input[type="url"]:focus, textarea:focus, select:focus{
  outline:none; border-color:var(--accent) !important; box-shadow:0 0 0 3px var(--accent-soft);
}
input[type="text"]:hover, input[type="email"]:hover, input[type="tel"]:hover, input[type="url"]:hover, textarea:hover, select:hover{
  border-color:var(--line-strong);
}
body{
  background:var(--paper); color:var(--ink); font-family:'Work Sans', sans-serif; font-weight:400;
  overflow-x:hidden; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Instrument Serif', serif; font-weight:400; letter-spacing:0; line-height:1.08;}
a{text-decoration:none; color:inherit;}
ul{list-style:none;}
img{max-width:100%; display:block;}
button{font-family:inherit;}
.container{max-width:1300px; margin:0 auto; padding:0 30px;}
[id]{scroll-margin-top:110px;}
.scroll-progress{position:fixed; top:0; left:0; height:3px; width:0%; background:var(--accent); z-index:300; transition:width .1s linear;}

/* ---------- Page entrance animation (plays once, on load) ----------
   Top-level sections cascade in with a short stagger instead of all
   fading together, so each page feels freshly assembled as it opens. */
body.page-enter > .site-header{animation:pageEnterFade .5s var(--ease-out) both;}
body.page-enter > section, body.page-enter > div.hero-wrap, body.page-enter > .stats,
body.page-enter > .mini-stats, body.page-enter > .cta-split, body.page-enter > .brochure-banner,
body.page-enter > .cta-banner, body.page-enter > footer{
  animation:pageEnterRise .7s var(--ease-out) both;
}
body.page-enter > section:nth-of-type(1), body.page-enter > div.hero-wrap:nth-of-type(1){animation-delay:.05s;}
body.page-enter > section:nth-of-type(2){animation-delay:.12s;}
body.page-enter > section:nth-of-type(3){animation-delay:.18s;}
body.page-enter > section:nth-of-type(4){animation-delay:.24s;}
body.page-enter > section:nth-of-type(n+5){animation-delay:.3s;}
@keyframes pageEnterFade{
  0%{opacity:0;}
  100%{opacity:1;}
}
@keyframes pageEnterRise{
  0%{opacity:0; transform:translateY(22px);}
  100%{opacity:1; transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  body.page-enter > * {animation:none !important;}
}

/* ---------- Page transition overlay (slide effect between pages) ---------- */
.page-transition{position:fixed; inset:0; z-index:9998; pointer-events:none; display:flex;}
.page-transition-panel{
  flex:1; background:var(--ink); transform:translateY(-100%); transition:none; position:relative;
}
.page-transition-panel::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--accent);
  opacity:0; transition:opacity .2s ease;
}
.page-transition.active .page-transition-panel::after{opacity:1; transition-delay:.4s;}
.page-transition-panel-2{background:var(--ink-soft);}
.page-transition.active .page-transition-panel{transition:transform .5s var(--ease-in-out);}
.page-transition.active .page-transition-panel-1{transform:translateY(0);}
.page-transition.active .page-transition-panel-2{transform:translateY(0); transition-delay:.08s;}
.page-transition-mark{
  position:absolute; top:50%; left:50%; width:150px; height:150px; transform:translate(-50%,-50%) scale(.7) rotate(-8deg); opacity:0;
  transition:opacity .3s ease .35s, transform .3s var(--ease-spring) .35s; z-index:2;
}
.page-transition-mark img{width:100%; height:100%; object-fit:contain; border-radius:14px; box-shadow:0 10px 40px rgba(220,174,77,.3);}

/* ---------- Persistent floating side badge (continuously drifts top-to-bottom) ---------- */
.side-float-badge{
  position:fixed; right:24px; bottom:28px; z-index:400; width:96px; pointer-events:auto;
  animation:sideBadgeFloat 3s ease-in-out infinite; transition:width .3s ease;
}
.side-float-badge img{width:100%; height:auto; display:block; filter:drop-shadow(0 8px 20px rgba(0,0,0,.4)); border-radius:50%;}
.side-float-badge-close{
  position:absolute; top:-6px; right:-6px; width:22px; height:22px; border-radius:50%; background:var(--ink);
  border:1.5px solid var(--accent); color:var(--paper); display:flex; align-items:center; justify-content:center;
  font-size:9px; cursor:pointer; transition:all .3s ease; z-index:2;
}
.side-float-badge-close:hover{background:var(--accent); color:var(--ink);}
.side-float-badge.hidden{display:none;}
@keyframes sideBadgeFloat{
  0%{transform:translateY(0);}
  50%{transform:translateY(-12px);}
  100%{transform:translateY(0);}
}
/* Desktop: comfortable size, clear of page edges */
@media (min-width:1200px){ .side-float-badge{width:104px; right:28px; bottom:32px;} }
/* Tablet */
@media (max-width:900px){ .side-float-badge{width:76px; right:16px; bottom:22px;} }
/* Mobile: compact, safe-area aware so it clears notches/home-bar */
@media (max-width:640px){
  .side-float-badge{
    width:58px; right:12px; bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  }
  .side-float-badge-close{width:18px; height:18px; font-size:8px; top:-4px; right:-4px;}
}
@media (prefers-reduced-motion: reduce){ .side-float-badge{animation:none;} }
.page-transition.active .page-transition-mark{opacity:1; transform:translate(-50%,-50%) scale(1) rotate(0deg);}
@media (max-width:640px){ .page-transition-mark{width:100px; height:100px;} }

/* ---------- Splash screen (shown once per browser session) ---------- */
.splash-screen{
  position:fixed; inset:0; z-index:9999; background:#0d0d0c; display:flex; align-items:center; justify-content:center;
  overflow:hidden; transition:transform .9s cubic-bezier(.6,0,.2,1), opacity .7s ease .1s;
}
.splash-grid{
  position:absolute; inset:0; opacity:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(232,198,127,.07) 0, rgba(232,198,127,.07) 1px, transparent 1px, transparent 64px),
    repeating-linear-gradient(90deg, rgba(232,198,127,.07) 0, rgba(232,198,127,.07) 1px, transparent 1px, transparent 64px);
  animation:splashFadeIn 1.4s ease forwards;
}
@keyframes splashFadeIn{ to{opacity:1;} }
.splash-crop{position:absolute; width:26px; height:26px; opacity:0; animation:splashFadeIn .8s ease forwards .3s;}
.splash-crop-tl{top:28px; left:28px; border-top:1.5px solid rgba(232,198,127,.4); border-left:1.5px solid rgba(232,198,127,.4);}
.splash-crop-tr{top:28px; right:28px; border-top:1.5px solid rgba(232,198,127,.4); border-right:1.5px solid rgba(232,198,127,.4);}
.splash-crop-bl{bottom:28px; left:28px; border-bottom:1.5px solid rgba(232,198,127,.4); border-left:1.5px solid rgba(232,198,127,.4);}
.splash-crop-br{bottom:28px; right:28px; border-bottom:1.5px solid rgba(232,198,127,.4); border-right:1.5px solid rgba(232,198,127,.4);}
.splash-inner{position:relative; display:flex; flex-direction:column; align-items:center; gap:22px;}
.splash-glow{
  position:absolute; top:50%; left:50%; width:340px; height:340px; transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(232,198,127,.16) 0%, transparent 70%); opacity:0;
  animation:splashGlowPulse 2.6s ease-in-out infinite .4s;
}
@keyframes splashGlowPulse{
  0%{opacity:0; transform:translate(-50%,-50%) scale(.85);}
  40%{opacity:1; transform:translate(-50%,-50%) scale(1);}
  100%{opacity:.4; transform:translate(-50%,-50%) scale(1.08);}
}
.splash-logo{
  position:relative; width:180px; height:auto; opacity:0; transform:translateY(46px) scale(.92);
  animation:splashLogoIn 1.3s cubic-bezier(.16,.9,.28,1) forwards .2s;
  filter:drop-shadow(0 8px 32px rgba(220,174,77,.25));
  border-radius:12px;
}
@keyframes splashLogoIn{
  0%{opacity:0; transform:translateY(46px) scale(.92);}
  70%{opacity:1; transform:translateY(-6px) scale(1.02);}
  100%{opacity:1; transform:translateY(0) scale(1);}
}
@media (max-width:480px){ .splash-logo{width:130px;} }
.splash-tagline{
  position:relative; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray-on-ink);
  text-transform:uppercase; opacity:0; letter-spacing:.2em; transform:translateY(10px);
  animation:splashTaglineIn .9s ease forwards 1.05s;
}
@keyframes splashTaglineIn{
  0%{opacity:0; letter-spacing:.5em; transform:translateY(10px);}
  100%{opacity:1; letter-spacing:.2em; transform:translateY(0);}
}
.splash-progress-row{
  position:relative; display:flex; align-items:center; gap:14px; opacity:0;
  animation:splashFadeIn .5s ease forwards 1.3s;
}
.splash-bar{width:150px; height:2px; background:rgba(232,198,127,.16); overflow:hidden; border-radius:2px;}
.splash-bar span{display:block; height:100%; width:0%; background:var(--accent); transition:width .1s linear;}
.splash-percent{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--accent); min-width:34px;}
.splash-screen.hide{transform:translateY(-100%); opacity:1; pointer-events:none;}
html.no-splash .splash-screen{display:none;}
@media (prefers-reduced-motion: reduce){
  .splash-logo, .splash-tagline, .splash-progress-row, .splash-grid, .splash-crop{animation:none; opacity:1; transform:none; letter-spacing:.2em;}
  .splash-glow{animation:none; opacity:.6;}
  .splash-screen{transition:opacity .4s ease;}
  .splash-screen.hide{transform:none; opacity:0;}
}
::selection{background:var(--ink); color:var(--paper);}

img{filter:saturate(1.05) contrast(1.03);}

.gold{font-style:italic;}

.eyebrow{
  display:inline-flex; align-items:center; gap:10px; font-family:'IBM Plex Mono', monospace; font-size:11px;
  letter-spacing:2.5px; text-transform:uppercase; font-weight:500; margin-bottom:18px; color:var(--accent-deep);
}
.eyebrow.center{justify-content:center;}
.eyebrow.on-dark{color:var(--accent);}
.eyebrow.on-light{color:var(--accent-deep);}

section{padding:110px 0; position:relative;}
.section-soft{background:var(--paper-dim);}
.section-light{background:var(--paper); color:var(--ink);}

.reveal{opacity:0; transform:translateY(26px) scale(.98); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); will-change:opacity, transform;}
.reveal.in{opacity:1; transform:translateY(0) scale(1);}

/* Stagger card entrances within grids so items cascade instead of popping together */
.card-grid > .reveal:nth-child(1), .icon-card-grid > .reveal:nth-child(1), .pgrid > .reveal:nth-child(1), .team-grid > .reveal:nth-child(1), .testi-grid > .reveal:nth-child(1), .process-grid > .reveal:nth-child(1){transition-delay:0s;}
.card-grid > .reveal:nth-child(2), .icon-card-grid > .reveal:nth-child(2), .pgrid > .reveal:nth-child(2), .team-grid > .reveal:nth-child(2), .testi-grid > .reveal:nth-child(2), .process-grid > .reveal:nth-child(2){transition-delay:.08s;}
.card-grid > .reveal:nth-child(3), .icon-card-grid > .reveal:nth-child(3), .pgrid > .reveal:nth-child(3), .team-grid > .reveal:nth-child(3), .testi-grid > .reveal:nth-child(3), .process-grid > .reveal:nth-child(3){transition-delay:.16s;}
.card-grid > .reveal:nth-child(4), .icon-card-grid > .reveal:nth-child(4), .pgrid > .reveal:nth-child(4), .team-grid > .reveal:nth-child(4), .testi-grid > .reveal:nth-child(4), .process-grid > .reveal:nth-child(4){transition-delay:.24s;}
.card-grid > .reveal:nth-child(5), .icon-card-grid > .reveal:nth-child(5), .pgrid > .reveal:nth-child(5), .team-grid > .reveal:nth-child(5){transition-delay:.32s;}
.card-grid > .reveal:nth-child(6), .icon-card-grid > .reveal:nth-child(6), .pgrid > .reveal:nth-child(6), .team-grid > .reveal:nth-child(6){transition-delay:.4s;}
.card-grid > .reveal:nth-child(7), .icon-card-grid > .reveal:nth-child(7), .pgrid > .reveal:nth-child(7){transition-delay:.48s;}
.card-grid > .reveal:nth-child(8), .icon-card-grid > .reveal:nth-child(8), .pgrid > .reveal:nth-child(8){transition-delay:.56s;}
.job-list > .reveal{transition-delay:0s;}

.btn{
  display:inline-flex; align-items:center; gap:10px; padding:15px 30px; font-size:12px; letter-spacing:1.6px;
  border-radius:0; transition:background-color .3s var(--ease-out), color .3s var(--ease-out), border-color .3s var(--ease-out), transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
  cursor:pointer; font-family:'IBM Plex Mono',monospace;
  text-transform:uppercase; font-weight:500; border:1px solid var(--ink); position:relative; overflow:hidden;
}
.btn::before{
  content:''; position:absolute; top:0; left:-120%; width:60%; height:100%; z-index:0;
  background:linear-gradient(115deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
  transform:skewX(-20deg); transition:left .6s ease;
}
.btn:hover::before{left:130%;}
.btn > *{position:relative; z-index:1;}
.btn i{transition:transform .3s ease; display:inline-block; font-size:13px; line-height:1; width:1em; text-align:center; flex-shrink:0;}
.btn:hover i.fa-arrow-right, .btn:hover i.fa-arrow-down-to-line, .btn:hover i.fa-paper-plane{transform:translateX(4px);}
.btn-gold{background:var(--ink); color:var(--paper);}
.btn-gold:hover{background:var(--accent); color:var(--ink); border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow-gold);}
.btn-outline{border:1px solid rgba(245,244,240,.5); color:var(--paper); background:transparent;}
.btn-outline:hover{border-color:var(--accent); background:var(--accent); color:var(--ink); transform:translateY(-2px);}
.btn-outline-dark{border:1px solid var(--ink); color:var(--ink); background:transparent;}
.btn-outline-dark:hover{background:var(--accent); border-color:var(--accent); color:var(--ink); transform:translateY(-2px);}

.framed{position:relative;}
.framed::before, .framed::after{content:''; position:absolute; width:16px; height:16px; pointer-events:none; z-index:3;}
.framed::before{top:-1px; left:-1px; border-top:1.5px solid var(--ink); border-left:1.5px solid var(--ink);}
.framed::after{bottom:-1px; right:-1px; border-bottom:1.5px solid var(--ink); border-right:1.5px solid var(--ink);}

.site-header{position:sticky; top:0; z-index:100; display:flex; align-items:stretch; background:rgba(13,13,12,.98); backdrop-filter:blur(10px); transition:box-shadow .3s ease;}
.site-header.scrolled{box-shadow:0 12px 34px rgba(0,0,0,.32);}
.header-right{flex:1; display:flex; flex-direction:column; min-width:0;}

.topbar{background:rgba(0,0,0,.35); font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gray-on-ink); border-bottom:1px solid var(--line-on-ink); display:flex; justify-content:space-between; align-items:center; padding:9px 28px; flex-wrap:wrap; gap:10px; max-height:340px; transition:max-height .3s ease, padding .3s ease, opacity .3s ease; overflow:hidden;}
.site-header.scrolled .topbar{max-height:0; padding-top:0; padding-bottom:0; opacity:0; border-bottom-color:transparent;}
.topbar-left{display:flex; gap:28px; flex-wrap:wrap;}
.topbar-left span{display:flex; align-items:center; gap:8px; letter-spacing:.3px; white-space:nowrap;}
.topbar-left i{color:var(--paper);}
.topbar-badge{color:var(--accent); font-weight:500;}
.topbar-badge-emergency{color:#ff8a65; position:relative; padding-left:2px;}
.topbar-badge-emergency i{color:#ff8a65; animation:emergencyPulse 1.8s ease-in-out infinite;}
@keyframes emergencyPulse{0%,100%{opacity:1;} 50%{opacity:.4;}}

/* ---------- Topbar phone number dropdown ---------- */
.phone-switch{position:relative;}
.phone-toggle{
  display:flex; align-items:center; gap:7px; background:transparent; border:none; color:var(--gray-on-ink);
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.3px; cursor:pointer; padding:0; transition:color .25s var(--ease-out);
}
.phone-toggle i:first-child{color:var(--paper);}
.phone-toggle:hover{color:var(--paper);}
.phone-menu{
  position:absolute; top:calc(100% + 12px); left:0; background:var(--ink-card); border:1px solid var(--line-on-ink);
  min-width:190px; padding:6px; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .25s var(--ease-out), visibility .25s var(--ease-out), transform .25s var(--ease-out); z-index:150; box-shadow:var(--shadow-lg);
}
.phone-switch:hover .phone-menu, .phone-switch.open .phone-menu{opacity:1; visibility:visible; transform:translateY(0);}
.phone-menu a{
  display:flex; align-items:center; gap:10px; padding:10px 12px; font-family:'IBM Plex Mono',monospace; font-size:12px;
  color:var(--paper); transition:background .2s ease;
}
.phone-menu a i{color:var(--accent);}
.phone-menu a:hover{background:var(--line-on-ink);}
.topbar-social{display:flex; gap:8px; flex-shrink:0;}
.topbar-social a{width:26px; height:26px; background:var(--accent-soft); border:1px solid transparent; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--accent); transition:all .25s;}
.topbar-social a:hover{background:var(--accent); color:var(--ink); transform:translateY(-2px);}

.logo-panel{
  flex-shrink:0; display:flex; align-items:center; justify-content:center; background:var(--ink-card);
  padding:16px 50px 16px 28px; position:relative; clip-path:polygon(0 0, 100% 0, 76% 100%, 0 100%);
  transition:padding .3s ease;
}
.logo-panel-img{height:92px; width:auto; object-fit:contain; transition:transform .35s ease; filter:saturate(1.1) contrast(1.05);}
.logo-panel:hover .logo-panel-img{transform:scale(1.05);}
.site-header.scrolled .logo-panel{padding:10px 40px 10px 24px;}

nav{display:flex; align-items:center; justify-content:space-between; padding:14px 28px; gap:22px;}
.footer-logo{display:flex; align-items:center; gap:11px; margin-bottom:22px;}
.footer-logo .logo-img{height:52px; width:52px; object-fit:cover; border-radius:8px; border:1px solid var(--line-on-ink-strong); filter:saturate(1.1) contrast(1.05);}
.nav-links{display:flex; gap:15px; align-items:center; flex-wrap:nowrap;}
.nav-links a{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:1px; color:var(--paper); transition:opacity .3s, color .3s; text-transform:uppercase; font-weight:400; white-space:nowrap; position:relative; opacity:.72; padding-bottom:4px;}
.nav-links a::before{content:''; position:absolute; left:0; right:100%; bottom:-6px; height:1px; background:var(--accent); transition:right .3s cubic-bezier(.2,.7,.2,1);}
.nav-links a:hover::before{right:0;}
.nav-cta-group{display:flex; align-items:center; gap:10px; flex-shrink:0;}
.nav-cta-group .get-in-touch-btn{
  height:40px !important; max-height:40px !important; min-height:40px !important; line-height:1 !important;
  box-sizing:border-box !important; padding:0 20px !important; align-self:center !important; flex-shrink:0 !important; white-space:nowrap !important;
}
.nav-links a:hover, .nav-links a.active{opacity:1; color:var(--accent);}
.nav-links a.active::after{content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--accent);}
.nav-dropdown{position:relative;}
.nav-dropdown-menu{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%); background:var(--ink-card);
  border:1px solid var(--line-on-ink); min-width:210px; padding:8px; opacity:0; visibility:hidden;
  transition:opacity .25s var(--ease-out), visibility .25s var(--ease-out), top .25s var(--ease-out); box-shadow:var(--shadow-lg);
}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1; visibility:visible; top:calc(100% + 8px);}
.nav-dropdown-menu a{display:block; padding:10px 12px; font-size:11px; opacity:.75;}
.nav-dropdown-menu a:hover{background:var(--line-on-ink); opacity:1;}
.hamburger{display:none; font-size:16px; cursor:pointer; color:var(--paper); background:transparent; border:1px solid var(--line-on-ink-strong); width:40px; height:40px; align-items:center; justify-content:center; transition:all .3s; flex-shrink:0;}
.hamburger:hover{border-color:var(--paper);}

/* ---------- WhatsApp quick-chat button (persistent nav row) ---------- */
.nav-whatsapp{
  display:flex; align-items:center; justify-content:center; width:40px; height:40px; flex-shrink:0;
  background:#25D366; color:#0d0d0c; font-size:18px; transition:transform .3s ease, background .3s ease;
}
.nav-whatsapp:hover{background:#1ebe5b; transform:translateY(-2px);}

/* ---------- Persistent call button (main nav row, always visible) ---------- */
.nav-call-switch{position:relative; flex-shrink:0;}
.nav-call-toggle{
  display:flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid var(--line-on-ink-strong);
  background:transparent; color:var(--paper); font-size:15px; cursor:pointer; transition:all .3s var(--ease-out);
}
.nav-call-toggle:hover{border-color:var(--accent); color:var(--accent);}
.nav-call-menu{
  position:absolute; top:calc(100% + 10px); left:0; background:var(--ink-card); border:1px solid var(--line-on-ink);
  min-width:190px; padding:6px; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .25s var(--ease-out), visibility .25s var(--ease-out), transform .25s var(--ease-out); z-index:150; box-shadow:var(--shadow-lg);
}
.nav-call-switch.open .nav-call-menu{opacity:1; visibility:visible; transform:translateY(0);}
.nav-call-menu a{
  display:flex; align-items:center; gap:10px; padding:10px 12px; font-family:'IBM Plex Mono',monospace; font-size:12px;
  color:var(--paper); transition:background .2s ease;
}
.nav-call-menu a i{color:var(--accent);}
.nav-call-menu a:hover{background:var(--line-on-ink);}

/* ---------- Gallery page: masonry grid + lightbox ---------- */
.gallery-masonry{columns:4 260px; column-gap:14px;}
.gallery-item{
  display:block; width:100%; margin:0 0 14px; padding:0; border:1px solid var(--line-strong); background:none;
  cursor:pointer; position:relative; break-inside:avoid; overflow:hidden;
}
.gallery-item img{width:100%; height:auto; display:block; transition:transform .5s ease, filter .5s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item-label{
  position:absolute; left:0; right:0; bottom:0; padding:10px 14px; font-family:'IBM Plex Mono',monospace; font-size:10.5px;
  color:var(--paper); text-transform:uppercase; letter-spacing:.4px; background:linear-gradient(0deg, rgba(13,13,12,.85), transparent);
  opacity:0; transform:translateY(8px); transition:all .3s ease; text-align:left;
}
.gallery-item:hover .gallery-item-label{opacity:1; transform:translateY(0);}
@media (max-width:1000px){ .gallery-masonry{columns:3 200px;} }
@media (max-width:640px){ .gallery-masonry{columns:2 140px; column-gap:10px;} .gallery-item{margin-bottom:10px;} }

.gallery-lightbox{
  position:fixed; inset:0; z-index:500; background:rgba(10,9,8,.94); display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; padding:40px;
}
.gallery-lightbox.open{opacity:1; visibility:visible;}
.gallery-lightbox-backdrop{position:absolute; inset:0;}
.gallery-lightbox-img{max-width:88vw; max-height:82vh; object-fit:contain; position:relative; z-index:2; border:1px solid var(--line-on-ink-strong);}
.gallery-lightbox-caption{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%); font-family:'IBM Plex Mono',monospace; font-size:11px;
  color:var(--gray-on-ink); text-transform:uppercase; letter-spacing:.5px; z-index:2;
}
.gallery-lightbox-close{
  position:absolute; top:24px; right:28px; width:44px; height:44px; border:1px solid var(--line-on-ink-strong); background:transparent;
  color:var(--paper); font-size:18px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2; transition:all .3s;
}
.gallery-lightbox-close:hover{border-color:var(--accent); color:var(--accent);}
.gallery-lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; border:1px solid var(--line-on-ink-strong);
  background:rgba(13,13,12,.6); color:var(--paper); font-size:16px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2; transition:all .3s;
}
.gallery-lightbox-nav:hover{background:var(--accent); color:var(--ink); border-color:var(--accent);}
.gallery-lightbox-prev{left:20px;}
.gallery-lightbox-next{right:20px;}
@media (max-width:640px){
  .gallery-lightbox{padding:16px;}
  .gallery-lightbox-nav{width:40px; height:40px; font-size:13px;}
  .gallery-lightbox-close{top:12px; right:12px; width:38px; height:38px;}
}

/* ---------- Language switcher ---------- */
.lang-switch{position:relative; flex-shrink:0;}
.lang-toggle{
  display:flex; align-items:center; gap:6px; height:40px; padding:0 12px; border:1px solid var(--line-on-ink-strong);
  background:transparent; color:var(--paper); cursor:pointer; transition:all .3s; font-family:'IBM Plex Mono',monospace;
  font-size:11px; letter-spacing:.5px;
}
.lang-toggle:hover{border-color:var(--accent); color:var(--accent);}
.lang-menu{
  position:absolute; top:calc(100% + 10px); right:0; background:var(--ink-card); border:1px solid var(--line-on-ink);
  min-width:150px; padding:6px; opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .25s var(--ease-out), visibility .25s var(--ease-out), transform .25s var(--ease-out); z-index:150; box-shadow:var(--shadow-lg);
}
.lang-menu.open{opacity:1; visibility:visible; transform:translateY(0);}
.lang-menu button{
  display:block; width:100%; text-align:left; padding:10px 12px; background:transparent; border:none; color:var(--paper);
  font-size:13px; cursor:pointer; transition:background .2s ease; font-family:'Work Sans',sans-serif;
}
.lang-menu button:hover{background:var(--line-on-ink);}
.lang-menu button.active{color:var(--accent);}
.lang-menu-wide{
  min-width:280px; max-height:360px; overflow-y:auto; display:grid; grid-template-columns:1fr 1fr; gap:2px;
}
.lang-menu-wide::-webkit-scrollbar{width:6px;}
.lang-menu-wide::-webkit-scrollbar-thumb{background:var(--line-on-ink-strong);}
@media (max-width:480px){ .lang-menu-wide{grid-template-columns:1fr; right:-40px; min-width:220px;} }

/* ---------- Basic RTL support (Arabic, Urdu, Persian) ---------- */
html[dir="rtl"] body{direction:rtl; text-align:right;}
html[dir="rtl"] .hero-split .container,
html[dir="rtl"] .split-gallery,
html[dir="rtl"] .footer-grid,
html[dir="rtl"] .card-grid,
html[dir="rtl"] .icon-card-grid{direction:rtl;}
html[dir="rtl"] .lang-menu{right:auto; left:0;}
html[dir="rtl"] .lang-menu button{text-align:right;}
html[dir="rtl"] .eyebrow::before{order:2;}
html[dir="rtl"] .checklist li, html[dir="rtl"] .footer-contact li, html[dir="rtl"] .hero-feature, html[dir="rtl"] .topbar-left span{flex-direction:row-reverse; text-align:right;}
html[dir="rtl"] .offer-icon{left:auto; right:22px;}
html[dir="rtl"] .pgrid-info, html[dir="rtl"] .project-modal-body{text-align:right;}

.hero{display:flex; width:100%; height:640px; overflow:hidden; background:var(--ink);}
.panel{position:relative; flex:1; min-width:60px; cursor:pointer; overflow:hidden; transition:flex .75s cubic-bezier(.22,.61,.36,1); border-right:1px solid var(--line-on-ink);}
.panel:last-child{border-right:none;}
.panel.active{flex:5;}
.panel .bg{position:absolute; inset:0; background-size:cover; background-position:center; filter:saturate(1.15) contrast(1.08) brightness(.62); transition:filter .75s ease, transform 9s ease; transform:scale(1.05);}
.panel.active .bg{filter:saturate(1.18) contrast(1.1) brightness(.8); transform:scale(1.12);}
.panel::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,13,12,.05) 0%, rgba(13,13,12,.15) 35%, rgba(13,13,12,.55) 70%, rgba(13,13,12,.94) 100%);}
.panel::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .5s ease .1s; z-index:4;}
.panel.active::before{transform:scaleX(1);}
.panel-content{position:absolute; left:0; right:0; bottom:0; padding:34px 28px; z-index:2; color:var(--paper); display:flex; flex-direction:column; align-items:flex-start; overflow:hidden;}
.panel-num{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); opacity:.9; margin-bottom:10px; white-space:nowrap; letter-spacing:1px; display:flex; align-items:center; gap:8px;}
.panel-num::before{content:''; width:18px; height:1px; background:var(--accent); display:inline-block; opacity:0; transition:opacity .4s ease .3s;}
.panel.active .panel-num::before{opacity:1;}
.p-title{font-family:'Instrument Serif',serif; font-size:28px; font-weight:400; margin:0 0 8px 0; white-space:nowrap; text-shadow:0 2px 24px rgba(0,0,0,.4); transition:opacity .25s ease, font-size .3s ease;}
.p-desc, .p-view{opacity:0; max-height:0; overflow:hidden; transition:opacity .3s ease, max-height .3s ease; white-space:nowrap;}
.panel.active .p-desc{opacity:1; max-height:60px; margin-bottom:16px; color:var(--gray-on-ink); font-size:13.5px; line-height:1.5; font-family:'Work Sans',sans-serif; transition:opacity .4s ease .35s, max-height .4s ease .35s;}
.panel.active .p-view{opacity:1; max-height:30px; transition:opacity .4s ease .4s, max-height .4s ease .4s;}
.p-view{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--paper); border-bottom:1px solid var(--accent); padding-bottom:2px; transition:color .25s ease, border-color .25s ease;}
.p-view:hover{color:var(--accent); border-color:var(--paper);}
.panel:not(.active) .panel-content{align-items:center; padding:26px 8px;}
.panel:not(.active) .p-title{writing-mode:vertical-rl; transform:rotate(180deg); font-size:16px; margin:0; white-space:nowrap; opacity:.85; transition:opacity .2s ease;}
.panel:not(.active) .p-desc, .panel:not(.active) .p-view{transition:opacity .15s ease, max-height .15s ease;}
.panel:not(.active) .panel-num{writing-mode:horizontal-tb; font-size:12px; margin-bottom:18px;}
.hero-wrap{position:relative;}
.hero-nav-btn{position:absolute; top:50%; transform:translateY(-50%); width:44px;height:44px; border-radius:50%; background:rgba(13,13,12,.6); border:1px solid var(--line-on-ink-strong); color:var(--paper); font-size:15px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:10; transition:all .3s;}
.hero-nav-btn:hover{background:var(--accent); color:var(--ink); border-color:var(--accent); transform:translateY(-50%) scale(1.08);}
.hero-nav-prev{left:22px;} .hero-nav-next{right:22px;}
.scroll-cue{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:10; display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--gray-on-ink); font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase;}
.scroll-cue .line{width:1px; height:34px; background:linear-gradient(180deg, var(--accent), transparent); animation:scrollLine 2s infinite;}
@keyframes scrollLine{0%{opacity:0; transform:scaleY(0); transform-origin:top;} 40%{opacity:1; transform:scaleY(1); transform-origin:top;} 100%{opacity:0; transform:scaleY(1); transform-origin:bottom;}}
.marquee-strip{background:var(--ink); border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink); padding:16px 0; overflow:hidden; white-space:nowrap;}
.marquee-track{display:inline-flex; gap:60px; animation:marquee 50s linear infinite;}
.marquee-track span{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:2px; color:var(--gray-on-ink); display:inline-flex; align-items:center; gap:60px; text-transform:uppercase;}
.marquee-track span i{color:var(--paper); font-size:5px;}
@keyframes marquee{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}
@media (max-width:760px){ .hero{height:440px;} }

.hero-split{background:var(--ink); color:var(--paper); position:relative; overflow:hidden; padding:74px 0 64px;}
.hero-watermark{
  position:absolute; right:-40px; bottom:-60px; font-size:340px; color:rgba(232,198,127,.05); z-index:0;
  pointer-events:none; line-height:1; transform:rotate(-8deg);
}
@media (max-width:1000px){ .hero-watermark{font-size:220px; right:-30px; bottom:-40px;} }
@media (max-width:640px){ .hero-watermark{display:none;} }

/* Subtle per-page accent variation — each service page gets a faint
   tint of a secondary hue so pages feel distinct while staying on-brand. */
.page-accent-interior_design .eyebrow{color:var(--accent);}
.page-accent-turnkey_projects .hero-watermark{color:rgba(79,138,124,.07);}
.page-accent-turnkey_projects .eyebrow{color:var(--accent2);}
.page-accent-real_estate .hero-watermark{color:rgba(232,198,127,.06); transform:rotate(6deg);}
.page-accent-commercial_projects .hero-watermark{color:rgba(79,138,124,.06); transform:rotate(4deg);}
.page-accent-commercial_projects .eyebrow{color:var(--accent2);}
.page-accent-residential_projects .hero-watermark{transform:rotate(-4deg);}
.page-accent-healthcare_projects .hero-watermark{color:rgba(79,138,124,.07);}
.page-accent-healthcare_projects .eyebrow{color:var(--accent2);}
.hero-split::before{
  content:''; position:absolute; top:-20%; right:-10%; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, var(--accent-soft) 0%, transparent 70%); pointer-events:none; z-index:0;
}
.hero-split::after{
  content:''; position:absolute; inset:0; opacity:.5; pointer-events:none; z-index:0;
  background-image:
    repeating-linear-gradient(0deg, var(--line-on-ink) 0, var(--line-on-ink) 1px, transparent 1px, transparent 56px),
    repeating-linear-gradient(90deg, var(--line-on-ink) 0, var(--line-on-ink) 1px, transparent 1px, transparent 56px);
  mask-image:linear-gradient(180deg, black, transparent 85%);
}
.hero-split .container{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; position:relative; z-index:2;}
.hero-split h1{font-size:clamp(28px, 4.2vw, 48px); font-weight:400; line-height:1.12; margin-bottom:20px; color:var(--paper); text-shadow:0 2px 20px rgba(0,0,0,.35);}
.hero-split p{color:var(--gray-on-ink); font-size:15px; line-height:1.85; max-width:480px; margin-bottom:30px;}
.hero-feature-row{display:flex; gap:30px; flex-wrap:wrap; margin-bottom:30px;}
.hero-feature{display:flex; align-items:center; gap:12px; max-width:150px;}
.hero-feature i{font-size:20px; color:var(--accent2-deep); flex-shrink:0;}
.hero-feature .n{font-family:'Instrument Serif',serif; font-size:18px; font-weight:400; color:var(--ink); line-height:1.2;}
.hero-feature .l{font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--gray); text-transform:uppercase; letter-spacing:.6px;}
.hero-split .hero-feature i, .hero-full .hero-feature i{color:var(--accent2);}
.hero-split .hero-feature .n, .hero-full .hero-feature .n{color:var(--paper);}
.hero-split .hero-feature .l, .hero-full .hero-feature .l{color:var(--gray-on-ink);}
.hero-btns{display:flex; gap:14px; flex-wrap:wrap;}
.hero-media{position:relative;}
.hero-media img{border:1px solid var(--line-on-ink-strong); width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s ease;}
.hero-media::before, .hero-media::after{content:''; position:absolute; width:22px; height:22px; pointer-events:none; z-index:3;}
.hero-media::before{top:-10px; left:-10px; border-top:1.5px solid var(--accent); border-left:1.5px solid var(--accent);}
.hero-media::after{bottom:-10px; right:-10px; border-bottom:1.5px solid var(--accent); border-right:1.5px solid var(--accent);}
.hero-logo-overlay{position:absolute; right:6%; bottom:8%; width:34%; opacity:.9; filter:contrast(1.05) invert(1);}

/* ---------- Video hero (home page, top of page) ---------- */
.hero-video{position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; background:var(--ink);}
.hero-video-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(1.1) contrast(1.05) brightness(.6);}
.hero-video-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(13,13,12,.92) 0%, rgba(13,13,12,.72) 45%, rgba(13,13,12,.4) 100%),
             linear-gradient(0deg, rgba(13,13,12,.7) 0%, transparent 35%);
}
.hero-video-grid{
  position:absolute; inset:0; z-index:1; opacity:.35; pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg, var(--line-on-ink) 0, var(--line-on-ink) 1px, transparent 1px, transparent 56px),
    repeating-linear-gradient(90deg, var(--line-on-ink) 0, var(--line-on-ink) 1px, transparent 1px, transparent 56px);
  mask-image:linear-gradient(180deg, black, transparent 85%);
}
.hero-video-content{position:relative; z-index:2; max-width:640px;}
.hero-video-content h1{font-size:clamp(28px, 4.6vw, 52px); font-weight:400; line-height:1.12; margin-bottom:20px; color:var(--paper); text-shadow:0 4px 30px rgba(0,0,0,.5);}
.hero-video-content p{color:var(--gray-on-ink); font-size:15.5px; line-height:1.85; margin-bottom:32px;}
.hero-video .scroll-cue{position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:2;}
@media (max-width:1000px){
  .hero-video{min-height:74vh;}
}
@media (max-width:640px){
  .hero-video{min-height:64vh;}
  .hero-video-content p{font-size:13.5px;}
}

.hero-full{position:relative; min-height:78vh; display:flex; align-items:center; overflow:hidden; background-size:cover; background-position:center;}
.hero-full::before{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(13,13,12,.95) 0%, rgba(13,13,12,.78) 45%, rgba(13,13,12,.4) 100%), linear-gradient(0deg, rgba(13,13,12,.5) 0%, transparent 30%);}
.hero-full::after{content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg, var(--accent), transparent);}
.hero-full .container{position:relative; z-index:2;}
.hero-full .hero-tag{max-width:640px;}
.hero-full h1{font-size:clamp(28px, 4.4vw, 50px); font-weight:400; line-height:1.15; margin-bottom:20px; color:var(--paper); text-shadow:0 4px 30px rgba(0,0,0,.5);}
.hero-full p{color:var(--gray-on-ink); font-size:15px; max-width:520px; margin-bottom:30px; line-height:1.85;}

.mini-stats{background:var(--ink); padding:36px 0; border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink);}
.mini-stats .container{display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; text-align:center;}
.mini-stat-item{flex:1; min-width:110px; display:flex; flex-direction:column; align-items:center; gap:6px;}
.mini-stat-item i{font-size:19px; color:var(--accent2);}
.mini-stat-item .n{font-family:'Instrument Serif',serif; font-size:26px; font-weight:400; color:var(--paper);}
.mini-stat-item .l{font-family:'IBM Plex Mono',monospace; font-size:9.5px; color:var(--gray-on-ink); letter-spacing:.6px; text-transform:uppercase;}

.section-head{max-width:660px; margin:0 auto 56px; text-align:center; position:relative;}
.section-head h2{font-size:clamp(24px, 3.2vw, 38px); font-weight:400; margin-bottom:14px; position:relative; display:inline-block;}
.section-head h2::after{
  content:''; position:absolute; left:50%; bottom:-10px; width:0; height:2px; background:var(--accent);
  transition:width .8s var(--ease-out) .15s; transform:translateX(-50%);
}
.section-head.reveal.in h2::after{width:46px;}
.section-head p{color:var(--gray); font-size:14.5px; line-height:1.8;}
.section-head.left{margin-left:0; text-align:left;}
.section-head.left h2::after{left:0; transform:none;}

.card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.card-grid.cols-5{grid-template-columns:repeat(5,1fr);}
.offer-card{position:relative; overflow:hidden; background:var(--paper-card); transition:background .3s ease, transform .35s ease, box-shadow .35s ease;}
.offer-card:hover{background:var(--paper-dim); transform:translateY(-6px); box-shadow:var(--shadow-lg); transition-timing-function:var(--ease-out);}
.offer-card .img-wrap{position:relative; aspect-ratio:4/3; overflow:hidden;}
.offer-card .img-wrap img{width:100%; height:100%; object-fit:cover; filter:saturate(1.1) contrast(1.05) brightness(.96); transition:transform .6s ease;}
.offer-card:hover .img-wrap img{transform:scale(1.06);}
.offer-icon{
  position:absolute; left:22px; bottom:-22px; width:48px; height:48px; background:var(--ink); border:1px solid var(--accent);
  display:flex; align-items:center; justify-content:center; font-size:17px; color:var(--accent); z-index:2; transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.offer-card:hover .offer-icon{transform:scale(1.12) rotate(-6deg);}
.offer-body{padding:36px 22px 24px;}
.offer-body h3{font-size:19px; font-weight:400; margin-bottom:10px; font-family:'Instrument Serif',serif;}
.offer-body p{font-size:13px; color:var(--gray); line-height:1.7; margin-bottom:16px;}
.offer-body a{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--ink); font-weight:500; letter-spacing:.6px; text-transform:uppercase; border-bottom:1px solid var(--ink); padding-bottom:2px;}

.icon-card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.icon-card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.icon-card-grid.cols-6{grid-template-columns:repeat(6,1fr);}
.icon-card{padding:34px 24px; text-align:center; background:var(--paper-card); transition:background .3s ease, transform .35s ease, box-shadow .35s ease;}
.icon-card:hover{background:var(--paper-dim); transform:translateY(-5px); box-shadow:var(--shadow-md); transition-timing-function:var(--ease-out);}
.icon-card i{font-size:22px; color:var(--accent2-deep); margin-bottom:18px; display:block; transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
.icon-card:hover i{transform:scale(1.18);}
.icon-card h4{font-size:16px; font-weight:400; margin-bottom:10px; font-family:'Instrument Serif',serif;}
.icon-card p{font-size:12.5px; color:var(--gray); line-height:1.7;}
.hero-split .icon-card{background:var(--ink-card); color:var(--paper);}
.hero-split .icon-card p{color:var(--gray-on-ink);}
.hero-split .icon-card i{color:var(--paper);}

.process-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:0; position:relative; margin-top:10px;}
.process-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.process-grid.cols-5{grid-template-columns:repeat(5,1fr);}
.process-step{padding:0 18px; position:relative; text-align:center;}
.process-step:not(:last-child)::after{
  content:''; position:absolute; top:32px; right:-9px; width:18px; height:1px;
  background:repeating-linear-gradient(90deg, var(--ink) 0 5px, transparent 5px 9px);
}
.process-num{
  width:64px; height:64px; margin:0 auto 22px; border:1px solid var(--ink); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:'Instrument Serif',serif;
  font-size:24px; color:var(--ink); font-weight:400; transition:all .35s cubic-bezier(.34,1.56,.64,1);
}
.process-step:hover .process-num{background:var(--accent); color:var(--ink); border-color:var(--accent); transform:scale(1.08);}
.process-step h4{font-size:15.5px; font-weight:600; margin-bottom:10px; font-family:'Work Sans',sans-serif;}
.process-step p{font-size:12.5px; color:var(--gray); line-height:1.65;}

.stats{background:var(--ink); padding:60px 0; border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink);}
.stats .container{display:grid; grid-template-columns:repeat(5,1fr); text-align:center; gap:20px;}
.stat{
  padding:26px 14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:10px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:transform .35s var(--ease-out), background .35s var(--ease-out);
}
.stat:hover{transform:translateY(-4px); background:rgba(255,255,255,.07);}
.stat i{font-size:22px; color:var(--accent); margin-bottom:16px; display:block;}
.stat .stat-num{font-family:'Instrument Serif',serif; font-size:36px; font-weight:400; margin-bottom:6px; color:var(--paper);}
.stat .stat-label{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray-on-ink); letter-spacing:.6px; text-transform:uppercase;}

.photo-stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.photo-stat{position:relative; overflow:hidden; aspect-ratio:3/4;}
.photo-stat img{width:100%; height:100%; object-fit:cover; filter:saturate(1.15) contrast(1.1) brightness(.58);}
.photo-stat::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 30%, rgba(13,13,12,.9));}
.photo-stat-content{position:absolute; left:0; right:0; bottom:22px; text-align:center; z-index:2;}
.photo-stat-content .n{font-family:'Instrument Serif',serif; font-size:32px; font-weight:400; color:var(--paper);}
.photo-stat-content .l{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray-on-ink); letter-spacing:.5px; text-transform:uppercase;}

.checklist{margin:20px 0;}
.checklist li{display:flex; align-items:flex-start; gap:12px; font-size:13.5px; color:var(--gray); margin-bottom:13px; line-height:1.5;}
.checklist i{color:var(--accent-deep); margin-top:3px; flex-shrink:0;}
.section-light .checklist li{color:var(--gray);}
.hero-split .checklist li, .hero-full .checklist li{color:var(--gray-on-ink);}
.hero-split .checklist i, .hero-full .checklist i{color:var(--accent);}

.split-gallery{display:grid; grid-template-columns:1fr 1.2fr 0.7fr; gap:1px; background:var(--line-strong); align-items:stretch; border:1px solid var(--line-strong);}
.split-gallery.cols-2{grid-template-columns:1fr 1.4fr; background:none; border:none; gap:40px;}
.gallery-2x2{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-strong);}
.gallery-2x2 img{aspect-ratio:1/1; object-fit:cover; filter:saturate(1.1) contrast(1.05);}
.split-gallery-content{background:var(--paper); padding:6px 26px;}
.split-gallery-content h2{font-size:32px; font-weight:400; margin-bottom:16px;}
.split-gallery-content p{color:var(--gray); font-size:14px; line-height:1.85; margin-bottom:10px;}
.side-stat-panel{background:var(--ink); padding:30px 24px; display:flex; flex-direction:column; gap:26px; justify-content:center;}
.side-stat{display:flex; align-items:center; gap:14px;}
.side-stat i{font-size:20px; color:var(--accent2);}
.side-stat .n{font-family:'Instrument Serif',serif; font-size:20px; font-weight:400; color:var(--paper);}
.side-stat .l{font-family:'IBM Plex Mono',monospace; font-size:9.5px; color:var(--gray-on-ink); text-transform:uppercase; letter-spacing:.5px;}

.project-tabs{display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:50px;}

/* ---------- Construction solutions tab toggle ---------- */
.construction-tabs{display:flex; justify-content:center; gap:0; margin-bottom:46px; max-width:560px; margin-left:auto; margin-right:auto; border:1px solid var(--line-strong);}
.construction-tab{
  flex:1; display:flex; align-items:center; justify-content:center; gap:10px; padding:16px 20px; background:transparent;
  border:none; color:var(--gray); font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.5px; text-transform:uppercase;
  cursor:pointer; transition:all .3s ease;
}
.construction-tab:first-child{border-right:1px solid var(--line-strong);}
.construction-tab.active{background:var(--accent); color:var(--ink); font-weight:600;}
.construction-tab:hover:not(.active){background:var(--paper-dim); color:var(--ink);}
.cat-card{display:none;}
.cat-card.cat-group-commercial{display:block;}
.cat-card.cat-group-builders{display:block;}

/* ---------- Building expertise icon row (Builders page) ---------- */
.expertise-row{display:grid; grid-template-columns:repeat(9,1fr); gap:18px;}
.expertise-item{display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;}
.expertise-item i{font-size:26px; color:var(--accent); width:60px; height:60px; border:1px solid var(--line-on-ink-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all .3s ease;}
.expertise-item:hover i{background:var(--accent); color:var(--ink); transform:translateY(-4px);}
.expertise-item span{font-size:11px; color:var(--gray-on-ink); letter-spacing:.3px;}
@media (max-width:1100px){ .expertise-row{grid-template-columns:repeat(5,1fr); row-gap:28px;} }
@media (max-width:760px){ .expertise-row{grid-template-columns:repeat(3,1fr);} }
.project-tab{
  padding:9px 20px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.6px; text-transform:uppercase; border:1px solid var(--line-strong);
  border-radius:0; color:var(--gray); cursor:pointer; transition:all .25s; background:transparent;
}
.project-tab.active, .project-tab:hover{background:var(--accent); color:var(--ink); border-color:var(--accent);}
.pgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.pgrid-card{position:relative; overflow:hidden; aspect-ratio:4/5; display:block; width:100%; padding:0; border:none; background:none; text-align:left; cursor:pointer; font-family:inherit;}
.pgrid-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease; filter:saturate(1.1) contrast(1.08) brightness(.88);}
.pgrid-card:hover img{transform:scale(1.06); filter:saturate(1.15) contrast(1.12) brightness(.62);}
.pgrid-card::before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(13,13,12,.95) 100%);}
.pgrid-info{position:absolute; left:0; right:0; bottom:0; padding:20px; z-index:2;}
.pgrid-info .cat{font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--accent); margin-bottom:5px; display:block;}
.pgrid-info .name{font-family:'Instrument Serif',serif; font-size:19px; font-weight:400; color:var(--paper); margin-bottom:2px;}
.pgrid-info .loc{font-size:11px; color:var(--gray-on-ink);}
.pgrid-info .view{display:inline-block; margin-top:8px; font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--paper); text-transform:uppercase; letter-spacing:.5px; opacity:0; transform:translateY(6px); transition:all .3s ease;}
.pgrid-card:hover .pgrid-info .view{opacity:1; transform:translateY(0);}

.carousel-wrap{position:relative;}
.carousel-track{
  display:flex; gap:1px; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x proximity; scrollbar-width:none;
  padding-bottom:6px; background:var(--line-strong); border:1px solid var(--line-strong);
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track .pgrid-card{flex:0 0 260px; aspect-ratio:4/5; scroll-snap-align:start;}
.carousel-arrows{display:flex; gap:10px; justify-content:flex-end; margin-bottom:22px;}
.carousel-arrow{
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(255,255,255,.55);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:var(--ink); display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .3s var(--ease-out); box-shadow:var(--shadow-sm);
}
.carousel-arrow:hover{background:var(--accent2); color:var(--paper); border-color:var(--accent2); transform:translateY(-2px); box-shadow:var(--shadow-md);}

.team-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.team-card{background:var(--paper-card); overflow:hidden; text-align:center; transition:background .3s ease, transform .35s ease, box-shadow .35s ease;}
.team-card:hover{background:var(--paper-dim); transform:translateY(-6px); box-shadow:var(--shadow-lg); transition-timing-function:var(--ease-out);}
.team-logo-badge{aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; background:#ffffff; padding:20px;}
.team-logo-badge img{max-height:100%; max-width:80%; object-fit:contain;}

/* ---------- Project synopsis table (numbered, line-by-line) ---------- */
.synopsis-table{border:1px solid var(--line-strong); background:var(--paper-card);}
.synopsis-header{display:flex; background:var(--ink); color:var(--paper);}
.synopsis-header .synopsis-num{width:90px; flex-shrink:0; padding:14px 18px; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.5px; border-right:1px solid var(--line-on-ink);}
.synopsis-header .synopsis-text{padding:14px 20px; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.5px; font-weight:600;}
.synopsis-row{display:flex; border-bottom:1px solid var(--line-strong); transition:background .2s ease;}
.synopsis-row:last-child{border-bottom:none;}
.synopsis-row:nth-child(even){background:var(--paper-dim);}
.synopsis-row:hover{background:var(--accent-soft);}
.synopsis-row .synopsis-num{width:90px; flex-shrink:0; padding:16px 18px; font-family:'Instrument Serif',serif; font-size:18px; color:var(--accent-deep); border-right:1px solid var(--line-strong); display:flex; align-items:center;}
.synopsis-row .synopsis-text{padding:16px 20px; font-size:13.5px; color:var(--ink); line-height:1.6; display:flex; align-items:center;}
@media (max-width:640px){
  .synopsis-header .synopsis-num, .synopsis-row .synopsis-num{width:56px; padding-left:10px; padding-right:10px; font-size:15px;}
  .synopsis-row .synopsis-text{font-size:12.5px; padding:14px;}
}
.team-card .info{padding:18px 14px 22px;}
.team-card .name{font-family:'Instrument Serif',serif; font-size:17px; font-weight:400; color:var(--ink); margin-bottom:4px;}
.team-card .role{font-family:'IBM Plex Mono',monospace; font-size:9.5px; color:var(--gray); text-transform:uppercase; letter-spacing:.5px; margin-bottom:10px;}
.team-card .bio{font-size:12px; color:var(--gray); line-height:1.6; margin-bottom:14px; min-height:56px;}
.team-card .socials{display:flex; justify-content:center; gap:10px;}
.team-card .socials a{width:28px; height:28px; border:1px solid var(--line-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--ink); transition:all .3s;}
.team-card .socials a:hover{background:var(--accent2); color:var(--paper); border-color:var(--accent2);}

/* ---------- Featured testimonial slider (Testimonials page) ---------- */
.featured-testi-wrap{
  position:relative; max-width:800px; margin:0 auto; min-height:260px; text-align:center; padding:20px 40px;
  display:flex; align-items:center; justify-content:center;
}
.featured-testi-bg-icon{position:absolute; top:-10px; left:50%; transform:translateX(-50%); font-size:80px; color:var(--line-strong); z-index:0;}
.featured-testi-slide{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(16px) scale(.98); transition:opacity .5s var(--ease-out), transform .5s var(--ease-out), visibility .5s;
}
.featured-testi-slide.active{position:relative; opacity:1; visibility:visible; transform:translateY(0) scale(1);}
.featured-testi-slide i.fa-quote-left{font-size:24px; color:var(--accent); margin-bottom:22px; position:relative; z-index:1;}
.featured-testi-slide p{font-family:'Instrument Serif',serif; font-size:24px; font-style:italic; line-height:1.5; color:var(--ink); margin-bottom:24px; position:relative; z-index:1;}
.featured-testi-author .name{font-weight:600; font-size:15px; color:var(--ink); font-family:'Work Sans',sans-serif;}
.featured-testi-author .role{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gray); text-transform:uppercase; letter-spacing:.4px; margin-top:4px;}
.featured-testi-dots{position:absolute; bottom:-16px; left:50%; transform:translateX(-50%); display:flex; gap:10px;}
.featured-testi-dot{width:8px; height:8px; border-radius:50%; border:none; background:var(--line-strong); cursor:pointer; transition:all .3s var(--ease-out); padding:0;}
.featured-testi-dot.active{background:var(--accent); width:26px; border-radius:4px;}
@media (max-width:640px){
  .featured-testi-wrap{padding:20px 10px; min-height:320px;}
  .featured-testi-slide p{font-size:19px;}
}

.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.testi-card{background:var(--paper-card); padding:30px 26px; position:relative; border-top:2px solid transparent; transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .35s var(--ease-out);}
.testi-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-top-color:var(--accent);}
.testi-card::before{content:'\201C'; position:absolute; top:8px; right:20px; font-family:'Instrument Serif',serif; font-size:56px; color:var(--line-strong); line-height:1; z-index:0;}
.testi-card .stars{color:var(--accent-deep); font-size:12px; margin-bottom:14px; letter-spacing:2px;}
.testi-card p{font-family:'Instrument Serif',serif; font-size:19px; font-style:italic; color:var(--ink); line-height:1.5; margin-bottom:16px;}
.testi-card .name{font-weight:600; font-size:13px; color:var(--ink);}
.testi-card .role{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray);}

/* ---------- Project detail modal ---------- */
.project-modal{position:fixed; inset:0; z-index:500; display:flex; align-items:center; justify-content:center; padding:30px; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease;}
.project-modal.open{opacity:1; visibility:visible;}
.project-modal-backdrop{position:absolute; inset:0; background:rgba(13,12,10,.86); backdrop-filter:blur(2px);}
.project-modal-panel{
  position:relative; z-index:2; background:var(--paper-card); max-width:920px; width:100%; max-height:88vh; overflow-y:auto;
  display:grid; grid-template-columns:1.1fr 1fr; border:1px solid var(--line-strong);
  transform:translateY(24px) scale(.98); transition:transform .35s var(--ease-out); box-shadow:var(--shadow-lg);
}
.project-modal.open .project-modal-panel{transform:translateY(0) scale(1);}
.project-modal-img{background:var(--ink); overflow:hidden;}
.project-modal-img img{width:100%; height:100%; object-fit:cover; min-height:280px;}
.project-modal-body{padding:38px 34px; display:flex; flex-direction:column;}
.project-modal-body h3{font-family:'Instrument Serif',serif; font-size:30px; font-weight:400; margin-bottom:14px; color:var(--ink);}
.project-modal-loc{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--gray); margin-bottom:18px;}
.project-modal-loc i{color:var(--accent-deep);}
.project-modal-body p{font-size:13.5px; color:var(--gray); line-height:1.8; margin-bottom:26px;}
.project-modal-close{
  position:absolute; top:16px; right:16px; z-index:3; width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.4);
  background:rgba(13,12,10,.5); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .3s;
}
.project-modal-close:hover{background:var(--accent); color:var(--ink); border-color:var(--accent);}
.pgrid-card{cursor:pointer; border:1px solid var(--line-strong); background:none; text-align:left; padding:0; font:inherit; color:inherit; display:block;}
@media (max-width:760px){
  .project-modal-panel{grid-template-columns:1fr; max-height:92vh;}
  .project-modal-img img{min-height:200px;}
  .project-modal-body{padding:26px 22px;}
}

/* ---------- Job / career listing cards ---------- */
.job-list{display:flex; flex-direction:column; gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.job-card{
  background:var(--paper-card); padding:26px 28px; display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; transition:background .3s ease;
}
.job-card:hover{background:var(--paper-dim);}
.job-card-main h3{font-family:'Instrument Serif',serif; font-size:21px; font-weight:400; margin-bottom:10px; color:var(--ink);}
.job-tags{display:flex; gap:18px; flex-wrap:wrap;}
.job-tags span{display:flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray); text-transform:uppercase; letter-spacing:.4px;}
.job-tags i{color:var(--accent-deep); font-size:11px;}

.logo-strip{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.logo-badge{
  background:var(--paper-card); color:var(--ink); font-weight:600; font-size:13px; padding:18px 26px;
  display:flex; align-items:center; justify-content:center; min-width:150px; letter-spacing:.3px; font-family:'IBM Plex Mono',monospace;
}
.logo-badge-img{padding:14px 26px;}
.logo-badge-img img{height:36px; width:auto; max-width:130px; object-fit:contain; filter:saturate(1.05);}

/* ---------- Partner logo cards (Collab section) ---------- */
.partner-card{background:var(--paper-card); padding:0 0 30px; text-align:center; transition:transform .35s ease, box-shadow .35s ease; overflow:hidden;}
.partner-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); transition-timing-function:var(--ease-out);}
.partner-logo-wrap{
  height:170px; display:flex; align-items:center; justify-content:center; margin:0 0 26px; padding:24px;
  background:#ffffff; border-bottom:1px solid var(--line-strong);
}
.partner-logo-wrap img{max-height:100%; max-width:78%; object-fit:contain;}
.partner-card h4{font-family:'Instrument Serif',serif; font-size:20px; font-weight:400; margin-bottom:10px; padding:0 24px;}
.partner-card p{font-size:12.5px; color:var(--gray); line-height:1.7; margin-bottom:16px; padding:0 24px;}
.partner-card a{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--accent-deep); font-weight:500; letter-spacing:.5px; text-transform:uppercase; border-bottom:1px solid var(--accent-deep); padding-bottom:2px;}

.client-strip{display:flex; flex-wrap:wrap; justify-content:center; gap:34px; align-items:center;}
.client-strip .client{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--gray-on-ink); display:flex; align-items:center; gap:8px; text-transform:uppercase; letter-spacing:.5px;}
.client-strip .client i{color:var(--paper);}

.city-row{display:grid; grid-template-columns:repeat(8,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.city-card{position:relative; overflow:hidden; aspect-ratio:3/4;}
.city-card img{width:100%; height:100%; object-fit:cover; filter:saturate(1.15) contrast(1.08) brightness(.66);}
.city-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(13,13,12,.9));}
.city-card .label{position:absolute; left:0; right:0; bottom:14px; text-align:center; z-index:2; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:500; color:var(--paper); letter-spacing:.5px; text-transform:uppercase;}

.cta-banner{position:relative; padding:100px 0; text-align:center; overflow:hidden; background-size:cover; background-position:center; background-attachment:fixed;}
.cta-banner::before{content:''; position:absolute; inset:0; background:linear-gradient(rgba(13,13,12,.9), rgba(13,13,12,.95));}
.cta-banner .container{position:relative; z-index:2;}
.cta-banner h2{font-size:clamp(26px, 3.6vw, 42px); font-weight:400; margin-bottom:18px; max-width:720px; margin-left:auto; margin-right:auto; color:var(--paper);}
.cta-banner p{color:var(--gray-on-ink); font-size:15px; margin-bottom:34px; max-width:520px; margin-left:auto; margin-right:auto;}
.cta-btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

.cta-split{background:var(--ink); border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink);}
.cta-split .container{display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; padding-top:44px; padding-bottom:44px;}
.cta-split-media{width:180px; height:120px; overflow:hidden; flex-shrink:0; border:1px solid var(--line-on-ink-strong);}
.cta-split-media img{width:100%; height:100%; object-fit:cover; filter:saturate(1.1) contrast(1.05) brightness(.9);}
.cta-split-text h3{font-family:'Instrument Serif',serif; font-size:24px; font-weight:400; margin-bottom:6px; color:var(--paper);}
.cta-split-text p{color:var(--gray-on-ink); font-size:13.5px;}
.cta-split-btns{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- Contact page: trust strip, info cards, map ---------- */
/* ---------- Contact page: animated quick-contact cards ---------- */
/* ---------- Privacy Policy page ---------- */
.policy-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong);}
.policy-card{background:var(--paper-card); padding:28px 22px; position:relative; transition:background .3s var(--ease-out), transform .3s var(--ease-out), box-shadow .3s var(--ease-out);}
.policy-card:hover{background:var(--paper-dim); transform:translateY(-5px); box-shadow:var(--shadow-md); position:relative; z-index:2;}
.policy-card-icon{
  width:48px; height:48px; border-radius:50%; background:var(--accent-soft); color:var(--accent-deep);
  display:flex; align-items:center; justify-content:center; font-size:18px; margin-bottom:14px;
}
.policy-card-num{position:absolute; top:26px; right:22px; font-family:'Instrument Serif',serif; font-style:italic; font-size:22px; color:var(--line-strong);}
.policy-card h4{font-family:'Instrument Serif',serif; font-size:16px; font-weight:400; color:var(--ink); margin-bottom:12px; line-height:1.35;}
.policy-card p{font-size:12.5px; color:var(--gray); line-height:1.7;}
.policy-list{list-style:none; margin:0; padding:0;}
.policy-list li{
  font-size:12px; color:var(--gray); line-height:1.6; padding-left:14px; position:relative; margin-bottom:4px;
}
.policy-list li::before{content:'\2022'; position:absolute; left:0; color:var(--accent-deep);}
@media (max-width:1200px){ .policy-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .policy-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .policy-grid{grid-template-columns:1fr;} }

.policy-contact-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-on-ink); border:1px solid var(--line-on-ink);}
.policy-contact-strip > div{background:var(--ink-card); padding:24px; display:flex; gap:14px; align-items:flex-start;}
.policy-contact-strip i{color:var(--accent); font-size:18px; margin-top:2px;}
.policy-contact-strip .l{font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--gray-on-ink); margin-bottom:6px;}
.policy-contact-strip .v{font-size:12.5px; color:var(--paper); line-height:1.6;}
@media (max-width:900px){ .policy-contact-strip{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .policy-contact-strip{grid-template-columns:1fr;} }

.contact-quick-section{padding:70px 0 20px;}
.contact-quick-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.contact-quick-card{
  background:var(--paper-card); border:1px solid var(--line-strong); padding:34px 22px; text-align:center; position:relative;
  overflow:hidden; transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out), border-color .4s var(--ease-out);
}
.contact-quick-card::before{
  content:''; position:absolute; top:0; left:50%; width:0; height:2px; background:var(--accent); transform:translateX(-50%);
  transition:width .5s var(--ease-out);
}
.contact-quick-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:var(--accent);}
.contact-quick-card:hover::before{width:100%;}
.contact-quick-ring{
  width:66px; height:66px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  position:relative; color:var(--accent-deep); font-size:22px; background:var(--accent-soft);
}
.contact-quick-ring::after{
  content:''; position:absolute; inset:-6px; border-radius:50%; border:1.5px solid var(--accent-soft);
  animation:contactRingPulse 2.6s ease-out infinite;
}
.contact-quick-card:hover .contact-quick-ring{transform:scale(1.08) rotate(-4deg); transition:transform .4s var(--ease-spring);}
@keyframes contactRingPulse{
  0%{transform:scale(1); opacity:.9;}
  80%{transform:scale(1.35); opacity:0;}
  100%{transform:scale(1.35); opacity:0;}
}
.contact-quick-label{font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:1.2px; color:var(--gray); margin-bottom:10px;}
.contact-quick-value{display:block; font-family:'Instrument Serif',serif; font-size:16px; color:var(--ink); line-height:1.5; transition:color .25s ease;}
a.contact-quick-value:hover{color:var(--accent-deep);}
.contact-quick-value-static{font-family:'Work Sans',sans-serif; font-size:13.5px; color:var(--gray);}
@media (max-width:1000px){ .contact-quick-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .contact-quick-grid{grid-template-columns:1fr;} .contact-quick-section{padding:50px 0 10px;} }

.contact-form-card{background:var(--paper-card); box-shadow:var(--shadow-lg); position:relative;}
.contact-form-card-inner{padding:56px 48px;}
@media (max-width:760px){ .contact-form-card-inner{padding:36px 22px;} }

.contact-trust-strip{background:var(--ink); border-top:1px solid var(--line-on-ink); border-bottom:1px solid var(--line-on-ink); padding:26px 0;}
.contact-trust-strip .container{display:flex; justify-content:center; flex-wrap:wrap; gap:36px;}
.contact-trust-item{display:flex; align-items:center; gap:10px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--gray-on-ink); text-transform:uppercase; letter-spacing:.4px;}
.contact-trust-item i{color:var(--accent); font-size:14px;}

.contact-map-frame{overflow:hidden; box-shadow:var(--shadow-md);}
.contact-map-frame iframe{display:block; filter:saturate(.85) contrast(1.02);}

/* ---------- Inline video section (e.g. Construction page build-progress clip) ---------- */
.section-video-frame{position:relative; aspect-ratio:16/8; overflow:hidden; background:var(--ink); box-shadow:var(--shadow-lg);}
.section-video-el{width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.02);}
.section-video-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:50%;
  background:rgba(13,13,12,.55); border:1.5px solid var(--accent); color:var(--paper); font-size:20px; display:flex;
  align-items:center; justify-content:center; cursor:pointer; transition:all .3s var(--ease-spring); backdrop-filter:blur(3px);
}
.section-video-play:hover{background:var(--accent); color:var(--ink); transform:translate(-50%,-50%) scale(1.08);}
.section-video-play.playing{opacity:0; pointer-events:none;}
.section-video-frame:hover .section-video-play.playing{opacity:1; pointer-events:auto;}
@media (max-width:760px){ .section-video-frame{aspect-ratio:4/3;} }

/* ---------- Services banner strip (above footer, coded) ---------- */
.services-banner-strip{background:#ffffff; padding:60px 0 40px;}
.dbd-image-wrap{max-width:900px; margin:0 auto 30px; text-align:center;}
.dbd-image-wrap img{width:100%; height:auto; display:block;}

.dbd-tagline{display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:44px;}
.dbd-tagline span:not(.t-design):not(.t-build):not(.t-deliver){flex:1; max-width:120px; height:1px; background:var(--line-strong);}
.dbd-tagline p{font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; white-space:normal; text-align:center;}
.dbd-tagline .t-design{color:#1d5fa8; font-weight:600;}
.dbd-tagline .t-build{color:#e0791f; font-weight:600;}
.dbd-tagline .t-deliver{color:#3f7d3a; font-weight:600;}

.dbd-photo-row{display:flex; justify-content:center; gap:26px; flex-wrap:wrap; margin-bottom:54px;}
.dbd-photo-card{
  position:relative; width:min(300px, 30vw); aspect-ratio:4/3; min-width:200px; overflow:hidden;
  border-radius:8px; box-shadow:var(--shadow-md); transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.dbd-photo-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg);}
.dbd-photo-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease-out); filter:saturate(1.08) contrast(1.03);}
.dbd-photo-card:hover img{transform:scale(1.08);}
.dbd-photo-card::after{
  content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.05) 45%, transparent 65%);
}
.dbd-photo-icon{
  position:absolute; top:16px; right:16px; width:44px; height:44px; border-radius:50%; z-index:2;
  display:flex; align-items:center; justify-content:center; font-size:17px; color:#fff;
  box-shadow:0 6px 16px rgba(0,0,0,.25); transition:transform .4s var(--ease-spring);
}
.dbd-photo-card:hover .dbd-photo-icon{transform:scale(1.1) rotate(-8deg);}
.dbd-photo-icon-design{background:#1d5fa8;}
.dbd-photo-icon-build{background:#e0791f;}
.dbd-photo-icon-deliver{background:#3f7d3a;}
.dbd-photo-label{
  position:absolute; left:18px; right:18px; bottom:16px; z-index:2; padding-top:10px;
  font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#fff;
  border-top:2px solid;
}
.dbd-photo-label-design{border-top-color:#1d5fa8;}
.dbd-photo-label-build{border-top-color:#e0791f;}
.dbd-photo-label-deliver{border-top-color:#3f7d3a;}
@media (max-width:640px){ .dbd-photo-card{width:100%; max-width:340px;} }

.dbd-services-head{
  display:flex; align-items:center; justify-content:center; gap:12px; font-family:'IBM Plex Mono',monospace;
  font-size:15px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--ink); margin-bottom:40px;
}
.dbd-services-head i{color:#1d5fa8;}
.dbd-services-row{display:flex; justify-content:center; flex-wrap:wrap; gap:0; margin-bottom:40px;}
.dbd-service{
  display:flex; flex-direction:column; align-items:center; text-align:center; width:150px; padding:0 10px;
  border-right:1px solid var(--line-strong);
}
.dbd-service:last-child{border-right:none;}
.dbd-ring{
  width:88px; height:88px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  font-size:30px; background:var(--paper-card); box-shadow:var(--shadow-sm); border:3px solid; transition:transform .35s var(--ease-spring);
}
.dbd-service:hover .dbd-ring{transform:translateY(-6px) scale(1.06);}
.dbd-ring-design{border-color:#1d5fa8; color:#1d5fa8;}
.dbd-ring-build{border-color:#e0791f; color:#e0791f;}
.dbd-ring-deliver{border-color:#3f7d3a; color:#3f7d3a;}
.dbd-service span{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--ink); line-height:1.4;}
.dbd-trust-strip{
  display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; max-width:640px; margin:0 auto;
  border:1px solid var(--line-strong); border-radius:999px; padding:16px 30px;
}
.dbd-trust-strip span{display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; color:var(--ink);}
.dbd-trust-strip i{color:var(--accent-deep);}
.dbd-sep{color:var(--line-strong) !important;}
@media (max-width:900px){
  .dbd-services-row{gap:20px 0;}
  .dbd-service{width:33.333%; border-right:none; margin-bottom:20px;}
}
@media (max-width:560px){
  .dbd-service{width:50%;}
  .dbd-trust-strip{flex-direction:column; gap:10px; border-radius:16px;}
  .dbd-sep{display:none;}
}

.brochure-banner{background:var(--paper); border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); padding:50px 0;}
.brochure-banner .container{display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;}
.brochure-left{display:flex; align-items:center; gap:20px;}
.brochure-icon{width:56px; height:56px; border:1px solid var(--accent-deep); color:var(--accent-deep); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0;}
.brochure-left h3{font-family:'Instrument Serif',serif; font-size:22px; font-weight:400; margin-bottom:4px;}
.brochure-left p{font-size:13px; color:var(--gray);}

footer{background:var(--ink); color:var(--paper); padding-top:76px; border-top:1px solid var(--line-on-ink);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:44px; padding-bottom:50px;}
.footer-grid.cols-5{grid-template-columns:1.3fr 1fr 1fr 1fr 1.1fr;}
.footer-about p{color:var(--gray-on-ink); font-size:13px; line-height:1.85; margin-bottom:22px;}
.footer-social{display:flex; gap:10px;}
.footer-social a{width:32px;height:32px; border:1px solid var(--line-on-ink-strong); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; transition:all .3s;}
.footer-social a:hover{background:var(--accent2); color:var(--ink); border-color:var(--accent2);}
footer h4{font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:500; margin-bottom:22px; color:var(--paper); letter-spacing:1px; text-transform:uppercase;}
footer ul li{margin-bottom:12px;}
footer ul li a{font-size:13.5px; color:var(--gray-on-ink); transition:color .3s;}
footer ul li a:hover{color:var(--paper);}
.footer-contact li{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--gray-on-ink); margin-bottom:16px;}
.footer-contact i{color:var(--paper); margin-top:3px;}
.footer-bottom{border-top:1px solid var(--line-on-ink); padding:22px 0; display:flex; justify-content:space-between; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--gray-on-ink); flex-wrap:wrap; gap:10px;}
.footer-bottom-links{display:flex; gap:22px;}
.footer-bottom-links a:hover{color:var(--paper);}
.back-to-top{position:fixed; right:26px; bottom:26px; width:44px; height:44px; border-radius:50%; background:var(--accent); color:var(--ink); border:1px solid var(--accent); display:flex; align-items:center; justify-content:center; z-index:200; opacity:0; visibility:hidden; transition:all .3s;}
.back-to-top.show{opacity:1; visibility:visible;}
.back-to-top:hover{background:var(--ink); color:var(--accent); border-color:var(--ink);}

@media (max-width:1200px){
  .team-grid{grid-template-columns:repeat(3,1fr);}
  .city-row{grid-template-columns:repeat(4,1fr);}
  .process-grid{grid-template-columns:repeat(3,1fr); row-gap:44px;}
  .process-step::after{display:none;}
}
@media (max-width:1000px){
  .card-grid, .card-grid.cols-3, .card-grid.cols-5{grid-template-columns:repeat(2,1fr);}
  .icon-card-grid, .icon-card-grid.cols-3, .icon-card-grid.cols-6{grid-template-columns:repeat(2,1fr);}
  .stats .container{grid-template-columns:repeat(3,1fr);}
  .photo-stat-row{grid-template-columns:repeat(2,1fr);}
  .hero-split .container{grid-template-columns:1fr;}
  .hero-split{padding-top:44px;}
  .hero-media{order:-1;}
  .split-gallery, .split-gallery.cols-2{grid-template-columns:1fr; gap:1px;}
  .footer-grid, .footer-grid.cols-5{grid-template-columns:1fr 1fr;}
  .pgrid{grid-template-columns:repeat(2,1fr);}
  .testi-grid{grid-template-columns:repeat(2,1fr);}
  .cta-split .container{flex-direction:column; text-align:center;}
  .brochure-banner .container{flex-direction:column; text-align:center;}
}
@media (max-width:1700px){
  .logo-panel{padding:10px 30px 10px 18px; clip-path:polygon(0 0, 100% 0, 85% 100%, 0 100%);}
  .logo-panel-img{height:64px;}
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    background:var(--ink); border-bottom:1px solid var(--line-on-ink); padding:14px 30px 22px; gap:0;
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:14px 0; border-bottom:1px solid var(--line-on-ink); width:100%; opacity:1;}
  .nav-dropdown-menu{position:static; opacity:1; visibility:visible; display:none; transform:none; border:none; background:transparent; padding:0 0 0 14px;}
  .nav-dropdown.open .nav-dropdown-menu{display:block;}
  nav{position:relative; flex-wrap:wrap;}
  .nav-cta-group{margin-left:auto;}
  .hamburger{display:flex;}
  .get-in-touch-btn{display:none;}
  .mobile-only-brochure{display:block !important;}
}
@media (max-width:760px){
  .card-grid, .card-grid.cols-3, .card-grid.cols-5{grid-template-columns:1fr;}
  .icon-card-grid, .icon-card-grid.cols-3, .icon-card-grid.cols-6{grid-template-columns:1fr;}
  .stats .container{grid-template-columns:repeat(2,1fr);}
  .photo-stat-row{grid-template-columns:1fr 1fr;}
  .city-row{grid-template-columns:repeat(2,1fr);}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid, .footer-grid.cols-5{grid-template-columns:1fr;}
  .pgrid{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .hero-split h1, .hero-full h1{line-height:1.18;}
  .process-grid{grid-template-columns:1fr 1fr;}
  section{padding:70px 0;}
  .hero-logo-overlay{display:none;}
  .topbar{padding:8px 16px;}
  .topbar-left{gap:14px; row-gap:6px; font-size:10px;}
  .topbar-social{display:none;}
  .topbar-badge{display:none;}
  .logo-panel-img{height:52px;}
  .logo-panel{padding:8px 18px 8px 14px;}
  nav{padding:10px 16px; gap:10px;}
  .nav-cta-group{gap:6px; padding:4px; background:rgba(255,255,255,.03); border:1px solid var(--line-on-ink-strong); border-radius:12px;}
  .nav-call-toggle, .nav-whatsapp, .lang-toggle, .hamburger{border-radius:8px; border-color:transparent;}
  .nav-call-toggle:hover, .hamburger:hover{background:var(--accent-soft); border-color:var(--accent);}
  .lang-toggle{padding:0 10px; height:36px; font-size:10px;}
  .lang-toggle span{display:none;}
  .lang-toggle i{margin:0;}
}
@media (max-width:480px){
  .topbar-left{justify-content:center; width:100%;}
  .topbar{justify-content:center;}
  .nav-call-toggle, .nav-whatsapp, .hamburger{width:34px; height:34px; font-size:13px;}
  .lang-toggle{width:34px; height:34px; padding:0; justify-content:center;}
}
@media (max-width:420px){
  .topbar-left span:not(:first-child):not(:nth-child(2)){display:none;}
  .nav-call-toggle, .nav-whatsapp{width:36px; height:36px;}
  .logo-panel-img{height:46px;}
}