@font-face{font-family:"Manrope";font-style:normal;font-weight:500 800;font-display:swap;src:url("fonts/manrope-var.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/inter-var.woff2") format("woff2")}
:root{
  --ink:#0e1013;--char:#15181c;--slate:#1d2126;--slate-2:#262b31;
  --line-d:rgba(255,255,255,.09);--line-l:#e3e3df;
  --paper:#f4f4f1;--white:#fff;--steel:#5f646b;--steel-l:#a7adb4;--text-d:#e9ebed;
  --accent:#33383e;--accent-2:#474e55;--accent-ink:#ffffff;
  --r:14px;--r-sm:10px;--max:1200px;
  --head:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --header-h:68px;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);-webkit-text-size-adjust:100%}
body{font-family:var(--body);color:#1b1e22;background:var(--paper);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--head);line-height:1.08;letter-spacing:-.025em;font-weight:800}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:10px 16px;border-radius:8px;z-index:200;font-weight:700}
.skip:focus{left:12px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--head);font-weight:700;border-radius:12px;padding:14px 24px;font-size:16px;letter-spacing:-.01em;transition:transform .18s,background .18s,box-shadow .18s,border-color .18s;cursor:pointer;border:0;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-lg{padding:17px 28px;font-size:17px}
.btn-sm{padding:10px 18px;font-size:15px;border-radius:10px}
.btn-accent{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 30px -10px rgba(140,150,160,.65)}
.btn-accent:hover{background:var(--accent-2);transform:translateY(-2px)}
.btn-outline{color:#fff;border:1.5px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04)}
.btn-outline:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(14,16,19,.88);-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line-d)}
.nav-inner{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand-mono{height:30px;width:auto}
.brand-word{height:19px;width:auto}
.nav-links{display:flex;gap:30px;font-size:15px;font-weight:500;color:var(--steel-l)}
.nav-links a{transition:color .15s;padding:6px 0}
.nav-links a:hover{color:#fff}
.nav-actions{display:flex;align-items:center;gap:14px}
.nav-phone{display:flex;align-items:center;gap:8px;color:#fff;font-weight:600;font-size:15px;white-space:nowrap}
.nav-phone svg{width:17px;height:17px;color:var(--accent)}
.icon-btn{display:none;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center;background:var(--slate);color:#fff;border:1px solid var(--line-d);cursor:pointer}
.icon-btn.call-mobile{background:var(--accent);color:var(--accent-ink);border-color:transparent}

/* hero */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;padding:88px 0 96px}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(900px 480px at 85% 0%,rgba(140,150,160,.16),transparent 60%),
  radial-gradient(700px 500px at 0% 100%,rgba(255,255,255,.06),transparent 60%),
  linear-gradient(180deg,rgba(14,16,19,.55),rgba(14,16,19,.92)),
  url("images/concrete-dark.jpg") center/480px repeat;}
.hero-bg::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 85%);mask-image:linear-gradient(180deg,#000 0%,transparent 85%)}
.hero-inner{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--steel-l);padding:8px 14px;border:1px solid var(--line-d);border-radius:999px;background:rgba(255,255,255,.03)}
.eyebrow svg{width:16px;height:16px;color:var(--accent)}
.hero h1{font-size:clamp(42px,6.4vw,78px);margin:24px 0 22px;max-width:13ch}
.accent{color:var(--accent)}
.lede{font-size:clamp(17px,1.6vw,20px);color:#c3c8ce;max-width:560px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.hero-trust{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:14px 32px;margin-top:44px;padding-top:28px;border-top:1px solid var(--line-d);font-size:15px;color:#d5d9dd;font-weight:500}
.hero-trust li{display:flex;align-items:center;gap:10px}
.hero-trust svg{color:var(--accent)}
.hero-card{background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border:1px solid var(--line-d);border-radius:22px;padding:32px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero-logo{display:flex;flex-direction:column;align-items:center;gap:14px;padding:12px 0 26px;border-bottom:1px solid var(--line-d)}
.hero-logo img:first-child{width:150px}
.hero-word{width:230px}
.hero-svc{padding:18px 0 6px}
.hero-svc li{display:flex;gap:14px;align-items:baseline;padding:11px 0;font-family:var(--head);font-weight:700;font-size:16px;color:#eef0f2;border-bottom:1px dashed rgba(255,255,255,.08)}
.hero-svc li:last-child{border-bottom:0}
.hero-svc span{font-size:12px;color:var(--accent);letter-spacing:.08em}
.hero-card-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:14px 16px;border-radius:12px;background:rgba(140,150,160,.1);color:var(--accent-2);font-weight:600;font-size:14px}
.hero-card-cta:hover{background:rgba(140,150,160,.16)}

/* sections */
.section{padding:104px 0}
.section-light{background:var(--paper)}
.section-dark{background:var(--char);color:var(--text-d)}
.section-head{max-width:680px;margin-bottom:52px}
.kicker{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#58616b;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.kicker::before{content:"";width:28px;height:3px;border-radius:2px;background:var(--accent)}
.section-dark .kicker{color:var(--accent)}
.section-head h2{font-size:clamp(32px,4.4vw,52px)}
.section-head p:not(.kicker){color:var(--steel);margin-top:14px;font-size:18px}
.section-dark .section-head p:not(.kicker){color:var(--steel-l)}

/* services */
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.svc{background:var(--white);border:1px solid var(--line-l);border-radius:var(--r);padding:34px 34px 30px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.svc:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(14,16,19,.25);border-color:#d3d3ce}
.svc-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}
.svc-icon{width:54px;height:54px;border-radius:14px;background:var(--ink);color:var(--accent);display:grid;place-items:center}
.svc-icon svg{width:26px;height:26px}
.svc-num{font-family:var(--head);font-weight:800;font-size:14px;color:#c4c6c2}
.svc h3{font-size:23px;margin-bottom:10px}
.svc p{color:var(--steel);font-size:15.5px;flex:1}
.svc-link{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:700;font-family:var(--head);font-size:15px;color:#1b1e22}
.svc-link svg{width:16px;height:16px;transition:transform .2s;color:#58616b}
.svc:hover .svc-link svg{transform:translateX(4px)}

/* process */
.process{background:var(--white);border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l)}
.process .section-head{margin-bottom:44px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.step{position:relative;padding:26px 24px;border-radius:var(--r);background:var(--paper)}
.step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--head);font-weight:800;margin-bottom:18px}
.step h3{font-size:19px;margin-bottom:8px}
.step p{color:var(--steel);font-size:15px}
.step a{color:#1b1e22;font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;word-break:break-word}

.work-more{margin-top:34px;color:var(--steel-l);font-size:15.5px}
.work-more a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}
.tag{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* quote */
.quote{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.quote::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 400px at 0% 0%,rgba(140,150,160,.12),transparent 60%),linear-gradient(rgba(14,16,19,.9),rgba(14,16,19,.9)),url("images/concrete-dark.jpg") center/480px}
.quote-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.quote-side .kicker{color:var(--accent)}
.quote-side h2{font-size:clamp(32px,4.4vw,52px)}
.quote-side>p:not(.kicker){color:#bfc4ca;font-size:18px;margin-top:14px}
.quote-points{margin-top:32px;display:grid;gap:16px}
.quote-points li{display:flex;gap:12px;color:#dde0e3;font-size:16px}
.quote-points svg{color:var(--accent);margin-top:2px}
.quote-points a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.quote-call{display:inline-flex;align-items:center;gap:16px;margin-top:36px;padding:16px 22px 16px 16px;border-radius:16px;background:var(--slate);border:1px solid var(--line-d);transition:border-color .2s}
.quote-call:hover{border-color:var(--accent)}
.quote-call>svg{width:48px;height:48px;padding:13px;border-radius:12px;background:var(--accent);color:var(--accent-ink)}
.quote-call span{display:flex;flex-direction:column;font-family:var(--head);font-weight:800;font-size:22px;line-height:1.2}
.quote-call small{font-family:var(--body);font-weight:500;font-size:13px;color:var(--steel-l);letter-spacing:.02em}
.quote-form{background:var(--white);color:#1b1e22;border-radius:20px;padding:34px;box-shadow:0 40px 90px -30px rgba(0,0,0,.7)}
.form-title{font-size:22px;margin-bottom:22px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fgroup{margin-bottom:16px;min-width:0}
.fgroup label{display:block;font-size:13.5px;font-weight:600;margin-bottom:7px;color:#33373c}
.fgroup input,.fgroup select,.fgroup textarea{width:100%;font:16px/1.4 var(--body);color:#1b1e22;background:#f6f6f4;border:1.5px solid #e1e1dc;border-radius:11px;padding:13px 14px;transition:border-color .15s,background .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.fgroup select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f646b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}
.fgroup textarea{min-height:120px;resize:vertical}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(140,150,160,.18)}
.form-submit{width:100%;margin-top:6px}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ccard{display:flex;flex-direction:column;gap:4px;background:var(--white);border:1px solid var(--line-l);border-radius:var(--r);padding:28px;transition:transform .2s,box-shadow .2s;min-width:0}
.ccard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(14,16,19,.25)}
.cicon{width:48px;height:48px;border-radius:12px;background:var(--ink);color:var(--accent);display:grid;place-items:center;margin-bottom:16px}
.clabel{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.cval{font-family:var(--head);font-weight:800;font-size:20px;letter-spacing:-.015em;overflow-wrap:anywhere}
.cnote{color:var(--steel);font-size:15px;margin-top:4px}

/* footer */
.site-footer{background:var(--ink);color:var(--steel-l);padding:56px 0 40px;border-top:1px solid var(--line-d)}
.footer-inner{display:grid;grid-template-columns:1fr auto;gap:28px 40px;align-items:start}
.footer-brand img{width:200px;opacity:.9}
.footer-brand p{margin-top:14px;font-size:14.5px;max-width:320px}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 26px;font-size:14.5px;justify-content:flex-end}
.footer-links a:hover{color:#fff}
.copy{grid-column:1/-1;font-size:13.5px;padding-top:24px;border-top:1px solid var(--line-d)}

.mobile-bar{display:none}

/* reveal (only when JS runs) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .hero-inner{grid-template-columns:1fr}
  .hero-card{display:none}
  .nav-links{gap:22px}
}
@media (max-width:900px){
  :root{--header-h:62px}
  .nav-links{display:none;position:absolute;left:0;right:0;top:var(--header-h);flex-direction:column;gap:0;background:rgba(14,16,19,.98);border-bottom:1px solid var(--line-d);padding:8px 20px 18px}
  .nav-links.open{display:flex}
  .nav-links a{padding:14px 0;font-size:17px;color:#e6e8ea;border-bottom:1px solid var(--line-d)}
  .nav-links a:last-child{border-bottom:0}
  .nav-phone,.nav-cta{display:none}
  .icon-btn{display:inline-flex}
  
  .quote-grid{grid-template-columns:1fr;gap:44px}
  .contact-grid{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
  .footer-links{justify-content:flex-start}
}
@media (max-width:640px){
  .site-footer{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
  .wrap{padding:0 18px}
  .brand-mono{height:26px}.brand-word{height:16px}
  .hero{padding:52px 0 60px}
  .hero h1{font-size:clamp(38px,11vw,52px);margin:20px 0 16px}
  .eyebrow{font-size:11.5px;padding:7px 12px}
  .hero-ctas{flex-direction:column;margin-top:28px}
  .hero-ctas .btn{width:100%}
  .hero-trust{grid-template-columns:1fr 1fr;gap:14px 12px;font-size:14px;margin-top:34px;padding-top:24px}
  .hero-trust li{align-items:flex-start;line-height:1.35}
  .hero-trust svg{width:18px;height:18px;margin-top:1px}
  .section{padding:68px 0}
  .section-head{margin-bottom:34px}
  .section-head p:not(.kicker){font-size:16.5px}
  .services-grid,.steps{grid-template-columns:1fr;gap:14px}
  .svc{padding:24px 22px}
  .svc-top{margin-bottom:18px}
  .step{display:grid;grid-template-columns:40px 1fr;column-gap:16px;padding:20px}
  .step-n{grid-row:span 2;margin-bottom:0}
  .quote-form{padding:24px 20px;border-radius:18px}
  .frow{grid-template-columns:1fr;gap:0}
  .quote-call{width:100%}
  .ccard{padding:22px}
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(14,16,19,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line-d)}
  .mobile-bar a{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;border-radius:12px;font-family:var(--head);font-weight:800;font-size:16px}
  .mb-call{background:var(--slate-2);color:#fff;border:1px solid var(--line-d)}
  .mb-call svg{width:18px;height:18px;color:var(--accent)}
  .mb-quote{background:var(--accent);color:var(--accent-ink)}
}

/* hero photo */
.hero-bg{background:var(--ink);z-index:0}
.hero-inner{z-index:1}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 35%;opacity:.8}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,16,19,.95) 0%,rgba(14,16,19,.78) 42%,rgba(14,16,19,.25) 100%),linear-gradient(180deg,rgba(14,16,19,.2) 0%,rgba(14,16,19,.0) 50%,rgba(14,16,19,.85) 100%)}
.hero-bg::after{z-index:2}
.hero-card{background:linear-gradient(160deg,rgba(20,23,27,.82),rgba(20,23,27,.66))}

/* project spotlight + gallery */
.case{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;margin-bottom:18px;align-items:stretch}
.case-head{background:var(--slate);border:1px solid var(--line-d);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;justify-content:flex-end}
.case-label{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.case-head h3{font-size:clamp(24px,2.6vw,32px);color:#fff}
.case-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.case-steps li{font-size:13px;font-weight:600;color:#d5d9dd;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line-d)}
.case-cover{border-radius:var(--r);overflow:hidden;min-height:300px;position:relative;background:var(--slate)}
.case-cover a,.case-cover img{display:block;width:100%;height:100%}
.case-cover img{object-fit:cover;position:absolute;inset:0;transition:transform .5s}
.case-cover:hover img{transform:scale(1.03)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.g-item{position:relative;border-radius:var(--r);overflow:hidden;background:var(--slate);aspect-ratio:4/3}
.g-link{display:block;width:100%;height:100%}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.g-item:hover img{transform:scale(1.04)}
.g-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));color:#fff;font-family:var(--head);font-weight:700;font-size:15px;display:flex;gap:10px;align-items:baseline;pointer-events:none}
.g-item figcaption span{font-size:12px;color:var(--accent);letter-spacing:.06em}
.sites-title{font-size:20px;color:#fff;margin:56px 0 18px}
.sites{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.site{padding:18px 20px;border-radius:var(--r-sm);background:rgba(255,255,255,.03);border:1px solid var(--line-d)}
.site .tag{margin-bottom:4px}
.site h3{font-size:17px;color:#fff;letter-spacing:-.01em}
.site p{color:var(--steel-l);font-size:14px;margin-top:2px}
.lightbox{border:0;padding:0;background:transparent;max-width:min(94vw,1400px);max-height:92vh;margin:auto;overflow:visible}
.lightbox::backdrop{background:rgba(6,7,9,.9)}
.lightbox img{max-width:min(94vw,1400px);max-height:84vh;width:auto;height:auto;border-radius:12px;margin:0 auto}
.lb-cap{color:#e6e8ea;text-align:center;margin-top:12px;font-family:var(--head);font-weight:700}
.lb-close{position:fixed;top:14px;right:14px;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}
@media (max-width:900px){
  .case{grid-template-columns:1fr}
  .case-cover{min-height:0;aspect-ratio:4/3}
  .gallery{grid-template-columns:repeat(2,1fr);gap:12px}
  .sites{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .hero-bg img{opacity:.6;object-position:65% 30%}
  .hero-bg::before{background:linear-gradient(180deg,rgba(14,16,19,.62) 0%,rgba(14,16,19,.84) 50%,rgba(14,16,19,.97) 100%)}
  .case-head{padding:24px 22px}
  .gallery{gap:10px}
  .g-item{aspect-ratio:1/1}
  .g-item figcaption{font-size:13px;padding:28px 10px 10px;gap:6px}
  .g-item figcaption span{font-size:11px}
  .sites{grid-template-columns:1fr;gap:10px}
  .sites-title{margin-top:44px}
}

@media (max-width:640px){
  .g-item:last-child:nth-child(odd){grid-column:1/-1;aspect-ratio:16/9}
  .cval{font-size:clamp(16px,4.6vw,20px)}
  .sites{grid-template-columns:1fr 1fr}
  .site{padding:14px 14px}
  .site h3{font-size:15.5px}
}
@media (max-width:1080px) and (min-width:641px){.sites{grid-template-columns:repeat(2,1fr)}}

/* what we build */
.build{background:var(--paper);color:#15181c;position:relative}
.tp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.tp{position:relative;overflow:hidden;background:linear-gradient(160deg,#1a1e23 0%,#121519 100%);color:#fff;border-radius:18px;padding:34px 34px 30px;border:1px solid rgba(255,255,255,.06);box-shadow:0 30px 60px -34px rgba(14,16,19,.55);transition:transform .35s,box-shadow .35s}
.tp::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),rgba(140,150,160,0) 70%)}
.tp::after{content:"";position:absolute;inset:0;background:url("images/concrete-dark.jpg") center/420px;opacity:.18;mix-blend-mode:screen;pointer-events:none}
.tp>*{position:relative;z-index:1}
.tp:hover{transform:translateY(-4px);box-shadow:0 40px 70px -34px rgba(14,16,19,.7)}
.tp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
.tp-icon{width:56px;height:56px;border-radius:14px;background:rgba(140,150,160,.12);border:1px solid rgba(140,150,160,.28);color:var(--accent);display:grid;place-items:center}
.tp-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tp-n{font-family:var(--head);font-weight:800;font-size:44px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22)}
.tp-tag{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.tp h3{font-size:clamp(21px,2.1vw,26px);line-height:1.2;color:#fff;letter-spacing:-.015em}
.tp-desc{color:#b9bfc6;font-size:15.5px;line-height:1.6;margin-top:12px}
.tp-scope{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}
.tp-scope li{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#e3e6e9;padding:7px 12px 7px 10px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}
.tp-scope svg{width:14px;height:14px;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tp-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:28px;padding:22px 26px;border-radius:16px;background:#fff;border:1px solid rgba(14,16,19,.08)}
.tp-cta p{font-family:var(--head);font-weight:700;font-size:17px;color:#15181c;margin:0}
@media (max-width:900px){.tp-grid{grid-template-columns:1fr;gap:14px}}
@media (max-width:640px){
  .tp{padding:26px 22px 22px;border-radius:16px}
  .tp-top{margin-bottom:20px}
  .tp-n{font-size:36px}
  .tp-desc{font-size:15px}
  .tp-cta{padding:20px;flex-direction:column;align-items:stretch;text-align:center}
  .tp-cta .btn{width:100%;justify-content:center}
}

/* new logo */
.brand{gap:12px}
.brand-mono{height:36px;width:auto}
.brand-word{height:27px;width:auto}
.hero-logo img:first-child{width:250px;max-width:100%}
.footer-brand img{width:190px;opacity:1}
@media (max-width:640px){.brand{gap:9px}.brand-mono{height:30px}.brand-word{height:22px}}

/* hero video */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:.9;background:transparent}
.hero.has-video .hero-bg::before{background:linear-gradient(90deg,rgba(14,16,19,.92) 0%,rgba(14,16,19,.72) 45%,rgba(14,16,19,.38) 100%),linear-gradient(180deg,rgba(14,16,19,.35) 0%,rgba(14,16,19,.1) 45%,rgba(14,16,19,.88) 100%)}
@media (max-width:900px){.hero.has-video .hero-bg::before{background:linear-gradient(180deg,rgba(14,16,19,.62) 0%,rgba(14,16,19,.7) 50%,rgba(14,16,19,.92) 100%)}}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}

.tp{display:flex;flex-direction:column}
.tp-scope{margin-top:auto;padding-top:20px}
.tp-desc{margin-bottom:22px}
.brand-mono{height:40px}.brand-word{height:30px}
@media (max-width:900px){.hero.has-video .hero-bg::before{background:linear-gradient(180deg,rgba(14,16,19,.5) 0%,rgba(14,16,19,.62) 45%,rgba(14,16,19,.9) 100%)}}
@media (max-width:640px){.brand-mono{height:32px}.brand-word{height:24px}}
@media (min-width:901px){.hero.has-video .hero-bg::before{background:linear-gradient(90deg,rgba(14,16,19,.9) 0%,rgba(14,16,19,.66) 42%,rgba(14,16,19,.22) 100%),linear-gradient(180deg,rgba(14,16,19,.3) 0%,rgba(14,16,19,0) 45%,rgba(14,16,19,.85) 100%)}}

/* ================= BRIGHT THEME (round 2b, David: "more bright") ================= */
:root{--ink-txt:#15181c;--g1:#f5f5f3;--g2:#eceae6;--line-b:#e2e1dc}
body{background:#fff;color:#1b1e22}
/* header */
.site-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line-b);box-shadow:0 6px 24px -18px rgba(14,16,19,.35)}
.nav-links{color:#4a4f55}
.nav-links a:hover{color:var(--ink-txt)}
.nav-phone{color:var(--ink-txt)}
.icon-btn{background:#f2f2ef;color:var(--ink-txt);border:1px solid var(--line-b)}
.icon-btn.call-mobile{background:var(--accent);color:var(--accent-ink);border-color:transparent}
@media (max-width:900px){
  .nav-links{background:rgba(255,255,255,.99);border-bottom:1px solid var(--line-b);box-shadow:0 18px 30px -20px rgba(14,16,19,.3)}
  .nav-links a{color:#1b1e22;border-bottom:1px solid #efefeb}
}
/* hero: video reads bright, darkening only behind the text */
.hero-video{opacity:1}
.hero-bg::after{opacity:.5}
.hero.has-video .hero-bg::before{background:linear-gradient(90deg,rgba(12,14,17,.74) 0%,rgba(12,14,17,.5) 36%,rgba(12,14,17,.08) 66%,rgba(12,14,17,0) 100%)}
.hero h1,.hero .lede,.hero .eyebrow,.hero-trust li{text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero-trust{border-top-color:rgba(255,255,255,.22)}
.hero-card{background:rgba(255,255,255,.93);color:var(--ink-txt);border:1px solid rgba(255,255,255,.7);box-shadow:0 30px 70px -30px rgba(0,0,0,.55)}
.hero-logo{border-bottom:1px solid var(--line-b)}
.hero-svc li{color:var(--ink-txt);border-bottom:1px dashed #dcdcd6}
.hero-svc span{color:#58616b}
.hero-card-cta{background:rgba(140,150,160,.14);color:#58616b}
.hero-card-cta:hover{background:rgba(140,150,160,.22)}
@media (max-width:900px){
  .hero.has-video .hero-bg::before{background:linear-gradient(180deg,rgba(12,14,17,.38) 0%,rgba(12,14,17,.5) 40%,rgba(12,14,17,.58) 100%)}
}
/* sections alternate white / light concrete grey */
.section-light,#services{background:var(--g1)}
.process{background:#fff;border-color:var(--line-b)}
.step{background:var(--g1)}
.section-dark{background:var(--g2);color:#1b1e22}
.section-dark .kicker{color:#58616b}
.section-dark .section-head p:not(.kicker){color:var(--steel)}
.case-head{background:#fff;border:1px solid var(--line-b);box-shadow:0 20px 40px -32px rgba(14,16,19,.35)}
.case-label{color:#58616b}
.case-head h3{color:var(--ink-txt)}
.case-steps li{color:#33373c;background:var(--g1);border:1px solid var(--line-b)}
.case-cover,.g-item{background:#dcdad5}
.work-more{color:var(--steel)}
.work-more a{color:var(--ink-txt)}
.build{background:#fff}
.tp{background:#fff;color:var(--ink-txt);border:1px solid var(--line-b);box-shadow:0 24px 50px -34px rgba(14,16,19,.35)}
.tp::after{display:none}
.tp:hover{box-shadow:0 34px 60px -30px rgba(14,16,19,.4)}
.tp-icon{background:rgba(140,150,160,.12);border-color:rgba(140,150,160,.35);color:#58616b}
.tp-n{-webkit-text-stroke:1px #cfcfc9}
.tp-tag{color:#58616b}
.tp h3{color:var(--ink-txt)}
.tp-desc{color:var(--steel)}
.tp-scope{border-top:1px solid #ecebe7}
.tp-scope li{color:#33373c;background:var(--g1);border:1px solid var(--line-b)}
.tp-cta{background:var(--g1);border-color:var(--line-b)}
/* quote */
.quote{background:var(--g1);color:var(--ink-txt)}
.quote::before{background:radial-gradient(700px 420px at 0% 0%,rgba(140,150,160,.14),transparent 60%),radial-gradient(600px 400px at 100% 100%,rgba(14,16,19,.04),transparent 60%)}
.quote-side .kicker{color:#58616b}
.quote-side>p:not(.kicker){color:var(--steel)}
.quote-points li{color:#33373c}
.quote-points a{color:var(--ink-txt)}
.quote-call{background:#fff;border:1px solid var(--line-b);color:var(--ink-txt);box-shadow:0 16px 30px -24px rgba(14,16,19,.35)}
.quote-call small{color:var(--steel)}
.quote-form{box-shadow:0 30px 70px -36px rgba(14,16,19,.4);border:1px solid var(--line-b)}
#contact{background:#fff}
/* footer */
.site-footer{background:var(--g2);color:#4f545a;border-top:1px solid var(--line-b);padding-bottom:0}
.footer-links a:hover{color:var(--ink-txt)}
.copy{border-top:1px solid #d9d7d1;color:#6a6f75;padding-bottom:28px}
@media (max-width:900px){.site-footer{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
/* mobile quick bar */
@media (max-width:640px){
  .mobile-bar{background:rgba(255,255,255,.97);border-top:1px solid var(--line-b);box-shadow:0 -10px 30px -18px rgba(14,16,19,.35)}
  .mb-call{background:#f2f2ef;color:var(--ink-txt);border:1px solid var(--line-b)}
}

/* ================= PLATINUM PALETTE (round 2c, David: "more platinum look") ================= */
:root{--accent:#33383e;--accent-2:#474e55;--accent-ink:#ffffff;
  --plat-txt:#58616b;--plat-l:#dfe3e7;
  --plat-grad:linear-gradient(135deg,#fbfcfd 0%,#e3e7eb 38%,#c9cfd5 62%,#eef1f4 100%);
  --plat-bar:linear-gradient(90deg,#8d959d 0%,#e4e8ec 35%,#a3aab1 65%,#d7dce0 100%);
  --graphite:linear-gradient(180deg,#41474e 0%,#2b2f34 100%)}
:focus-visible{outline-color:#6b7580}
.btn-accent{background:var(--graphite);color:#fff;box-shadow:0 12px 26px -14px rgba(20,24,28,.55),inset 0 1px 0 rgba(255,255,255,.14)}
.btn-accent:hover{background:linear-gradient(180deg,#4c535b 0%,#33383e 100%)}
.kicker,.section-dark .kicker,.quote-side .kicker,.case-label,.tp-tag,.hero-svc span{color:var(--plat-txt)}
.kicker::before{background:var(--plat-bar);height:3px;width:34px}
/* hero on video: silver details */
.hero .accent{background:linear-gradient(180deg,#ffffff 0%,#e3e7eb 45%,#aab1b8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 14px rgba(0,0,0,.35))}
.eyebrow svg,.hero-trust svg{color:#e3e7eb}
.hero .btn-outline{border-color:rgba(255,255,255,.55)}
.hero-card-cta{background:var(--plat-grad);color:#2b2f34;border:1px solid #d3d8dd}
.hero-card-cta:hover{background:linear-gradient(135deg,#ffffff,#d8dde2)}
.g-item figcaption span{color:#dfe3e7}
/* icon chips + numbers in brushed silver */
.svc-icon,.cicon,.tp-icon{background:var(--plat-grad);color:#363b41;border:1px solid #cdd3d9;box-shadow:inset 0 1px 0 #fff,0 6px 14px -8px rgba(20,24,28,.35)}
.step-n{background:var(--plat-grad);color:#2b2f34;border:1px solid #c6ccd2;box-shadow:inset 0 1px 0 #fff}
.nav-phone svg,.quote-points svg,.mb-call svg{color:#4b535b}
.quote-call>svg{background:var(--graphite);color:#fff}
.quote-call:hover{border-color:#9aa1a8}
.step a,.work-more a,.quote-points a{text-decoration-color:#9aa1a8}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{border-color:#7b848d;box-shadow:0 0 0 4px rgba(123,132,141,.18)}
.quote::before{background:radial-gradient(700px 420px at 0% 0%,rgba(160,170,180,.18),transparent 60%),radial-gradient(600px 400px at 100% 100%,rgba(14,16,19,.04),transparent 60%)}
/* cards: platinum finish */
.svc{background:linear-gradient(165deg,#ffffff 0%,#f6f7f9 55%,#eceff2 100%);border:1px solid #dde1e5;position:relative;overflow:hidden}
.svc::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--plat-bar)}
.tp{background:linear-gradient(165deg,#ffffff 0%,#f5f6f8 55%,#eaedf0 100%);border:1px solid #d9dde2}
.tp::before{height:4px;background:var(--plat-bar)}
.tp-n{-webkit-text-stroke:1px #b9c0c7}
.tp-scope li,.case-steps li{background:linear-gradient(180deg,#fafbfc,#eef0f3);border:1px solid #d9dde2;color:#363b41}
.tp-scope svg{stroke:#5d6670}
.case-head{background:linear-gradient(165deg,#ffffff 0%,#f3f5f7 100%);border-color:#d9dde2;position:relative;overflow:hidden}
.case-head::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--plat-bar)}
.step{background:linear-gradient(165deg,#f7f8fa,#eef0f3);border:1px solid #e1e4e8}
/* brushed-metal bands */
.tp-cta{background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,0)),url("images/brushed-metal.jpg") center/600px;border:1px solid #cfd4d9;box-shadow:inset 0 1px 0 #fff}
.tp-cta p{color:#23272b}
.process{background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.86)),url("images/brushed-metal.jpg") center/600px}
.site-footer{background:#e9ebee}
.copy{border-top-color:#d3d7dc}
@media (max-width:640px){
  .mb-quote{background:var(--graphite);color:#fff}
  .mobile-bar{border-top:1px solid #d9dde2}
}
.hero .btn-accent{background:linear-gradient(180deg,#ffffff 0%,#e6e9ec 55%,#cdd2d7 100%);color:#1f2327;box-shadow:0 14px 30px -14px rgba(0,0,0,.6),inset 0 1px 0 #fff}
.hero .btn-accent:hover{background:linear-gradient(180deg,#ffffff,#dde1e5)}
.hero-bg img{opacity:1}
.hero-bg::before{background:linear-gradient(90deg,rgba(12,14,17,.74) 0%,rgba(12,14,17,.5) 36%,rgba(12,14,17,.08) 66%,rgba(12,14,17,0) 100%)}
@media (max-width:900px){.hero-bg::before{background:linear-gradient(180deg,rgba(12,14,17,.38) 0%,rgba(12,14,17,.5) 40%,rgba(12,14,17,.58) 100%)}}
