:root{
  --teal:#447871; --teal-lum:#6fb9ad; --stone:#8A8474; --forest:#0D2626;
  --forest-2:#0a1d1d; --ivory:#F5F3EF; --white:#FFFFFF; --charcoal:#1A1A1A;
  --ink:rgba(245,243,239,.72); --hair:rgba(245,243,239,.14); --hair-d:rgba(26,26,26,.12);
  --ease:cubic-bezier(.22,.61,.36,1);
  --pad:clamp(20px,5vw,120px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:'Fira Sans',sans-serif;background:var(--forest);color:var(--ivory);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.lock{overflow:hidden}
h1,h2,h3,h4,.mt{font-family:'Montserrat',sans-serif;font-weight:700;line-height:1.04;letter-spacing:-.01em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--teal);color:var(--white)}
.wrap{max-width:1500px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.eyebrow{font-family:'Montserrat';font-weight:600;font-size:clamp(10px,.92vw,12px);letter-spacing:.32em;text-transform:uppercase;color:var(--teal-lum);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--teal-lum);display:inline-block}
.eyebrow.dark{color:var(--teal)}.eyebrow.dark::before{background:var(--teal)}

.w{display:inline-block;overflow:hidden;vertical-align:top}
.wi{display:inline-block;will-change:transform}

.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.cur,.cur-d{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cur{width:42px;height:42px;border:1px solid rgba(245,243,239,.6);transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s var(--ease),opacity .3s}
.cur-d{width:6px;height:6px;background:var(--ivory);transform:translate(-50%,-50%)}
.cur.grow{width:74px;height:74px;background:rgba(111,185,173,.16);border-color:transparent}
body.touch .cur,body.touch .cur-d{display:none}

.pre{position:fixed;inset:0;z-index:9000;background:var(--forest);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px}
.pre img{width:60px;opacity:.95;animation:pulse 1.8s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}
.pre .bar{width:min(220px,52vw);height:1px;background:var(--hair);position:relative;overflow:hidden}
.pre .bar i{position:absolute;inset:0;width:0;background:var(--teal-lum);display:block}
.pre .num{font-family:'Montserrat';font-weight:600;font-size:12px;letter-spacing:.3em;color:var(--stone)}

.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);transition:background .5s var(--ease),padding .5s var(--ease),transform .5s var(--ease),border-color .5s;
  border-bottom:1px solid transparent}
.nav.solid,.nav.scrolled{background:rgba(10,29,29,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:12px;padding-bottom:12px;border-color:var(--hair)}
.nav.hide{transform:translateY(-105%)}
.nav__logo img{height:32px;width:auto}
.nav__links{display:flex;align-items:center;gap:34px}
.nav__links a{font-family:'Montserrat';font-weight:500;font-size:13.5px;letter-spacing:.02em;position:relative;opacity:.8;transition:opacity .3s}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--teal-lum);transition:width .4s var(--ease)}
.nav__links a:hover{opacity:1}.nav__links a:hover::after{width:100%}
.nav__links a.active{opacity:1}.nav__links a.active::after{width:100%}
.btn{font-family:'Montserrat';font-weight:600;font-size:13px;letter-spacing:.04em;padding:13px 24px;border-radius:2px;
  background:var(--teal);color:var(--white);border:1px solid var(--teal);display:inline-flex;align-items:center;gap:9px;
  transition:background .4s var(--ease),color .4s var(--ease),transform .3s var(--ease);will-change:transform}
.btn:hover{background:transparent;color:var(--teal-lum);border-color:var(--teal-lum)}
.btn svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ivory);border-color:var(--hair)}
.btn.ghost:hover{border-color:var(--ivory)}
.btn.dark{background:var(--forest);border-color:var(--forest);color:var(--ivory)}
.btn.dark:hover{background:transparent;color:var(--forest);border-color:var(--forest)}
.burger{display:none;width:46px;height:46px;border:1px solid var(--hair);border-radius:50%;background:transparent;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;width:20px;height:1.5px;background:var(--ivory);transition:.4s var(--ease)}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:25px}
.burger.open span:nth-child(1){top:22px;transform:rotate(45deg)}
.burger.open span:nth-child(2){top:22px;transform:rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:75;background:var(--forest-2);display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--pad);clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .8s var(--ease)}
.menu.open{clip-path:inset(0 0 0 0);pointer-events:auto}
.menu a{font-family:'Montserrat';font-weight:700;font-size:clamp(30px,7.5vw,54px);line-height:1.22;color:var(--ivory);letter-spacing:-.02em;opacity:.92}
.menu a span{color:var(--teal-lum);font-size:13px;font-weight:600;vertical-align:super;margin-right:14px;letter-spacing:.1em}
.menu .mfoot{margin-top:42px;display:flex;gap:24px;flex-wrap:wrap;font-size:13px;color:var(--stone)}
.menu .mfoot a{font-size:13px;font-weight:500;font-family:'Fira Sans';color:var(--ink)}

/* HERO (home) */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero__bg{position:absolute;inset:-8% 0;background-size:cover;background-position:center right;z-index:0;will-change:transform}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--forest) 8%,rgba(13,38,38,.55) 48%,rgba(13,38,38,.25) 100%),
             linear-gradient(0deg,var(--forest) 2%,rgba(13,38,38,0) 42%)}
#hero-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(50px,8vh,110px);padding-top:140px}
.hero h1{font-size:clamp(2.5rem,7.6vw,7rem);font-weight:800;letter-spacing:-.03em}
.hero h1 .l2{color:var(--teal-lum)}
.hero__sub{max-width:46ch;margin:26px 0 34px;font-size:clamp(15px,1.4vw,18px);color:var(--ink);font-weight:300}
.hero__cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero__scroll{position:absolute;right:var(--pad);bottom:clamp(40px,8vh,90px);z-index:2;display:flex;align-items:center;gap:12px;
  writing-mode:vertical-rl;font-family:'Montserrat';font-weight:600;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--stone)}
.hero__scroll .line{width:1px;height:50px;background:linear-gradient(var(--teal-lum),transparent);position:relative;overflow:hidden}
.hero__scroll .line::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--ivory);animation:sd 2s var(--ease) infinite}
@keyframes sd{0%{top:-50%}100%{top:100%}}

/* PAGE BANNER (sub-pages) */
.phero{position:relative;min-height:clamp(54vh,62vh,72vh);display:flex;align-items:flex-end;overflow:hidden;background:var(--forest)}
.phero__bg{position:absolute;inset:-8% 0;background-size:cover;background-position:center;z-index:0;opacity:.6;will-change:transform}
.phero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--forest) 6%,rgba(13,38,38,.45) 60%,rgba(13,38,38,.65) 100%)}
.phero__inner{position:relative;z-index:2;width:100%;padding:150px 0 clamp(40px,7vh,80px)}
.phero h1{font-size:clamp(2.1rem,5.2vw,4rem);font-weight:800;letter-spacing:-.03em;margin-top:20px}
.phero p{color:var(--ink);max-width:52ch;margin-top:18px;font-weight:300;font-size:clamp(14px,1.2vw,16px)}
.phero__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.72}
.crumb{font-family:'Montserrat';font-weight:500;font-size:12px;letter-spacing:.04em;color:var(--stone);margin-top:22px}
.crumb a{color:var(--teal-lum)}

/* MARQUEE */
.marq{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--forest-2);overflow:hidden;padding:20px 0}
.marq__t{display:flex;white-space:nowrap;width:max-content;will-change:transform}
.marq__t span{font-family:'Montserrat';font-weight:700;font-size:clamp(20px,3vw,38px);letter-spacing:-.01em;color:var(--ivory);padding:0 30px;display:inline-flex;align-items:center;gap:60px}
.marq__t span b{color:var(--teal-lum);font-size:13px}
.marq__t span:nth-child(even){color:transparent;-webkit-text-stroke:1px rgba(245,243,239,.3)}

/* SECTIONS */
.sec{padding:clamp(72px,11vh,150px) 0;position:relative}
.sec.dark{background:var(--forest)}
.sec.light{background:var(--ivory);color:var(--charcoal)}
.sec.deep{background:var(--forest-2)}
.shead{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:clamp(38px,6vh,72px)}
.shead h2{font-size:clamp(1.7rem,4.2vw,3.5rem);font-weight:700;max-width:18ch}
.light .muted,.tcol{color:var(--stone)}
.idx{font-family:'Montserrat';font-weight:600;font-size:13px;letter-spacing:.2em;color:var(--stone)}

/* ABOUT */
.about{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,80px);align-items:center}
.about__lead{font-family:'Montserrat';font-weight:600;font-size:clamp(1.25rem,2.4vw,2.1rem);line-height:1.2;letter-spacing:-.02em;margin-bottom:26px}
.about__lead em{color:var(--teal-lum);font-style:normal}
.about p{color:var(--ink);font-size:clamp(14px,1.15vw,16px);margin-bottom:16px;max-width:54ch;font-weight:300}
.light .about p{color:#4a4a45}
.about__img{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:3/4;will-change:clip-path}
.about__img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) contrast(1.02);will-change:transform;transform:scale(1.12)}
.about__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,38,38,0) 40%,rgba(13,38,38,.5))}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:clamp(48px,7vh,84px);border-top:1px solid var(--hair);padding-top:42px}
.light .stats{border-color:var(--hair-d)}
.stat .n{font-family:'Montserrat';font-weight:700;font-size:clamp(2.1rem,4.4vw,3.4rem);letter-spacing:-.02em;color:var(--ivory);line-height:1}
.light .stat .n{color:var(--charcoal)}
.stat .n b{color:var(--teal-lum)}
.stat .l{font-family:'Montserrat';font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin-top:12px}

/* MISSION/VISION/VALUES */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px)}
.mv__card{border:1px solid var(--hair);border-radius:8px;padding:clamp(28px,3vw,46px);background:rgba(245,243,239,.02)}
.mv__card .eyebrow{margin-bottom:18px}
.mv__card p{font-family:'Montserrat';font-weight:500;font-size:clamp(1.05rem,1.7vw,1.45rem);line-height:1.32;letter-spacing:-.01em}
.values{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.values span{font-family:'Montserrat';font-weight:600;font-size:clamp(12px,1.2vw,14px);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-lum);border:1px solid rgba(111,185,173,.3);background:rgba(111,185,173,.06);padding:10px 18px;border-radius:3px}

/* TRUST GAP */
.gap{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--hair);border-radius:8px;overflow:hidden}
.gap>div{padding:clamp(34px,5vw,68px)}
.gap .sol{background:var(--teal);color:var(--white);position:relative;overflow:hidden}
.gap .sol .symbg{position:absolute;right:-14%;bottom:-22%;width:60%;opacity:.12}
.gap h3{font-size:clamp(1.5rem,3.2vw,2.4rem);margin:14px 0 22px;font-weight:700}
.gap .prob h3 em{color:var(--teal-lum);font-style:normal}
.gap p{font-size:clamp(14px,1.2vw,16px);color:var(--ink);font-weight:300;max-width:46ch}
.gap .sol p{color:rgba(255,255,255,.92)}
.gap .sol .eyebrow{color:#fff}.gap .sol .eyebrow::before{background:#fff}
.gap .frag{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.gap .frag span{font-family:'Montserrat';font-weight:500;font-size:12px;letter-spacing:.06em;border:1px solid var(--hair);padding:8px 14px;border-radius:3px;color:var(--stone)}

/* SERVICES (compact rows on home) */
.svc{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hair-d);border-top:1px solid var(--hair-d);border-bottom:1px solid var(--hair-d)}
.svc__row{background:var(--ivory);display:grid;grid-template-columns:90px 1.1fr 1.4fr 160px;gap:30px;align-items:center;
  padding:clamp(24px,3.2vw,44px) 6px;transition:background .5s var(--ease),padding-left .5s var(--ease)}
.svc__row:hover{background:#ece9e2;padding-left:18px}
.svc__row .si{font-family:'Montserrat';font-weight:600;font-size:13px;color:var(--teal)}
.svc__row h3{font-size:clamp(1.3rem,2.2vw,1.9rem);font-weight:700;color:var(--charcoal)}
.svc__row p{font-size:14px;color:#4a4a45;font-weight:300;max-width:52ch}
.svc__row .thumb{width:100%;aspect-ratio:16/11;border-radius:5px;overflow:hidden;justify-self:end;position:relative}
.svc__row .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.svc__row:hover .thumb img{transform:scale(1.08)}
.svc__row .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(68,120,113,.35),transparent 60%);mix-blend-mode:multiply}

/* SERVICE FEATURE (services page) */
.sfeat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;margin-bottom:clamp(50px,8vh,120px)}
.sfeat:last-child{margin-bottom:0}
.sfeat:nth-child(even) .sfeat__img{order:2}
.sfeat__img{border-radius:8px;overflow:hidden;aspect-ratio:4/3;position:relative}
.sfeat__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);will-change:transform}
.sfeat__num{font-family:'Montserrat';font-weight:700;font-size:14px;color:var(--teal-lum);letter-spacing:.1em}
.sfeat h2{font-size:clamp(1.6rem,3.4vw,2.8rem);font-weight:700;margin:14px 0 18px}
.sfeat p{color:var(--ink);font-weight:300;font-size:clamp(14px,1.15vw,16px);max-width:52ch;margin-bottom:22px}
.flist{list-style:none;display:grid;gap:12px}
.flist li{padding-left:24px;position:relative;color:var(--ink);font-size:14.5px;font-weight:300}
.flist li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border:1.5px solid var(--teal-lum);transform:rotate(45deg)}

/* PROJECTS */
.proj{display:grid;gap:clamp(26px,4vw,60px)}
.pcard{position:relative;border-radius:8px;overflow:hidden;min-height:clamp(420px,72vh,680px);display:flex;align-items:flex-end;isolation:isolate}
.pcard__img{position:absolute;inset:-10% 0;z-index:-1;will-change:transform}
.pcard__img img{width:100%;height:100%;object-fit:cover}
.pcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(7,20,20,.92) 4%,rgba(7,20,20,.35) 46%,rgba(7,20,20,.15) 100%)}
.pcard__body{padding:clamp(28px,4vw,58px);width:100%;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}
.pcard__meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.pcard__meta span{font-family:'Montserrat';font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(245,243,239,.1);border:1px solid var(--hair);backdrop-filter:blur(6px);padding:7px 13px;border-radius:3px;color:var(--ivory)}
.pcard__meta span.live{background:var(--teal);border-color:var(--teal);color:#fff}
.pcard h3{font-size:clamp(1.7rem,4vw,3.2rem);font-weight:800;letter-spacing:-.03em}
.pcard p{color:var(--ink);max-width:50ch;margin-top:14px;font-weight:300;font-size:clamp(14px,1.1vw,16px)}
.pcard .loc{font-family:'Montserrat';font-weight:500;font-size:13px;color:var(--teal-lum);letter-spacing:.04em;margin-top:18px;display:flex;align-items:center;gap:8px}
.pfeat{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pfeat span{font-size:12px;color:var(--ink);border:1px solid var(--hair);padding:6px 12px;border-radius:4px}

/* PROJECT DETAIL (projects page) */
.pdetail{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:center;margin-bottom:clamp(48px,7vh,100px)}
.pdetail:nth-child(even) .pdetail__media{order:2}
.pdetail__media{border-radius:8px;overflow:hidden;aspect-ratio:4/3;position:relative}
.pdetail__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);will-change:transform}
.pdetail h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;margin:14px 0 16px}
.pdetail p{color:var(--ink);font-weight:300;font-size:clamp(14px,1.15vw,16px);max-width:52ch;margin-bottom:18px}
.spec{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.spec .it{border-top:1px solid var(--hair);padding-top:12px}
.spec .it .k{font-family:'Montserrat';font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
.spec .it .v{font-family:'Montserrat';font-weight:600;font-size:15px;color:var(--ivory);margin-top:4px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:6px}
.cols2 h4{font-family:'Montserrat';font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-lum);margin-bottom:14px}
.cols2 ul{list-style:none;display:grid;gap:9px}
.cols2 li{padding-left:20px;position:relative;color:var(--ink);font-size:13.5px;font-weight:300}
.cols2 li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--teal);border-radius:50%}

/* SERVE */
.serve{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,30px)}
.scard{border:1px solid var(--hair);border-radius:8px;padding:clamp(26px,2.6vw,40px);background:rgba(245,243,239,.02);transition:transform .5s var(--ease),background .5s var(--ease),border-color .5s}
.scard:hover{transform:translateY(-8px);background:rgba(111,185,173,.05);border-color:rgba(111,185,173,.4)}
.scard .num{font-family:'Montserrat';font-weight:700;font-size:14px;color:var(--teal-lum);letter-spacing:.1em}
.scard h3{font-size:clamp(1.2rem,1.7vw,1.5rem);margin:26px 0 14px;font-weight:700}
.scard p{color:var(--ink);font-size:14px;font-weight:300}

/* WHY */
.why{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,5vw,90px);align-items:start}
.why__sticky{position:sticky;top:18vh}
.why__list{display:flex;flex-direction:column}
.why__item{border-top:1px solid var(--hair);padding:clamp(22px,3vh,38px) 0;display:grid;grid-template-columns:50px 1fr;gap:20px}
.why__item:last-child{border-bottom:1px solid var(--hair)}
.why__item .k{font-family:'Montserrat';font-weight:700;color:var(--teal-lum);font-size:15px}
.why__item h3{font-size:clamp(1.05rem,1.6vw,1.4rem);font-weight:600;margin-bottom:8px}
.why__item p{color:var(--ink);font-size:14px;font-weight:300;max-width:48ch}
.why__sticky h2{font-size:clamp(1.6rem,3vw,2.6rem)}

/* FOUNDER */
.fnd{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,80px);align-items:center}
.fnd__img{border-radius:8px;overflow:hidden;aspect-ratio:4/5;position:relative}
.fnd__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);will-change:transform}
.fnd__img::after{content:"";position:absolute;inset:0;border:1px solid var(--hair);border-radius:8px}
.fnd__q{font-family:'Montserrat';font-weight:600;font-size:clamp(1.25rem,2.2vw,1.95rem);line-height:1.28;letter-spacing:-.015em;margin:22px 0}
.fnd__q em{color:var(--teal-lum);font-style:normal}
.fnd p{color:var(--ink);font-weight:300;font-size:15px;margin-bottom:16px;max-width:56ch}
.fnd__name{margin-top:28px;display:flex;align-items:center;gap:16px}
.fnd__name .nm{font-family:'Montserrat';font-weight:700;font-size:18px}
.fnd__name .rl{font-size:13px;color:var(--stone)}

/* TEAM */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}
.tmember .photo{border-radius:8px;overflow:hidden;aspect-ratio:4/5;position:relative;margin-bottom:16px}
.tmember .photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.tmember:hover .photo img{transform:scale(1.06)}
.tmember .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,38,38,.4),transparent 55%)}
.tmember .nm{font-family:'Montserrat';font-weight:600;font-size:clamp(15px,1.3vw,17px)}
.tmember .rl{font-size:13px;color:var(--stone);margin-top:3px}

/* CTA */
.cta{position:relative;min-height:74vh;display:flex;align-items:center;overflow:hidden;text-align:center}
.cta__bg{position:absolute;inset:-10% 0;background-size:cover;background-position:center;z-index:0;will-change:transform}
.cta__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,20,20,.86),rgba(7,20,20,.6))}
.cta__inner{position:relative;z-index:2;width:100%}
.cta h2{font-size:clamp(2rem,5.4vw,4.4rem);font-weight:800;letter-spacing:-.03em;margin-bottom:26px}
.cta h2 em{color:var(--teal-lum);font-style:normal}
.cta p{color:var(--ink);max-width:44ch;margin:0 auto 36px;font-weight:300;font-size:clamp(15px,1.25vw,17px)}

/* CONTACT */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,90px)}
.cinfo .big{font-size:clamp(1.7rem,3.6vw,2.9rem);font-weight:700;letter-spacing:-.02em;margin-bottom:30px}
.cinfo .row{border-top:1px solid var(--hair);padding:20px 0;display:flex;justify-content:space-between;gap:18px;align-items:center}
.cinfo .row .lab{font-family:'Montserrat';font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.cinfo .row a,.cinfo .row span{font-size:clamp(14px,1.25vw,16px);color:var(--ivory)}
.cinfo .socials{display:flex;gap:14px;margin-top:24px}
.cinfo .socials a{width:44px;height:44px;border:1px solid var(--hair);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Montserrat';font-size:12px;font-weight:600;transition:.4s var(--ease)}
.cinfo .socials a:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.form{display:flex;flex-direction:column;gap:18px}
.form .fr{position:relative}
.form input,.form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair);padding:16px 2px;color:var(--ivory);font-family:'Fira Sans';font-size:15px;transition:border-color .4s}
.form textarea{resize:vertical;min-height:90px}
.form label{position:absolute;left:2px;top:16px;color:var(--stone);font-size:15px;pointer-events:none;transition:.3s var(--ease)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--teal-lum)}
.form input:focus+label,.form input:valid+label,.form textarea:focus+label,.form textarea:valid+label{top:-10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-lum)}
.form .note{font-size:12px;color:var(--stone);transition:color .3s var(--ease)}
.form .note.ok{color:var(--teal-lum)}
.form .note.err{color:#e0816f}
.locs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:clamp(40px,6vh,72px)}
.loc-card{border:1px solid var(--hair);border-radius:8px;padding:26px}
.loc-card .city{font-family:'Montserrat';font-weight:600;font-size:16px;margin-bottom:6px}
.loc-card p{color:var(--ink);font-size:13.5px;font-weight:300}

footer{background:var(--forest-2);border-top:1px solid var(--hair);padding:clamp(50px,7vh,90px) 0 30px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px;margin-bottom:50px}
.fgrid img{height:38px;margin-bottom:18px}
.fgrid p{color:var(--ink);font-size:13px;font-weight:300;max-width:34ch}
.fcol h4{font-family:'Montserrat';font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:16px}
.fcol a{display:block;font-size:14px;color:var(--ink);padding:5px 0;transition:color .3s}
.fcol a:hover{color:var(--teal-lum)}
.fbar{border-top:1px solid var(--hair);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--stone);font-size:12.5px}

@media (max-width:1024px){
  .about,.gap,.why,.fnd,.contact,.mv,.sfeat,.pdetail{grid-template-columns:1fr}
  .sfeat:nth-child(even) .sfeat__img,.pdetail:nth-child(even) .pdetail__media{order:0}
  .why__sticky{position:static}
  .serve{grid-template-columns:1fr}
  .svc__row{grid-template-columns:1fr;gap:8px}
  .svc__row .thumb{display:none}
  .team{grid-template-columns:repeat(3,1fr)}
  .locs{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .nav__links{display:none}.nav .btn{display:none}.burger{display:block}
  .hero__scroll{display:none}
  .stats{grid-template-columns:1fr 1fr}
  .spec,.cols2{grid-template-columns:1fr}
  .team{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr}
  .pcard__body{grid-template-columns:1fr}
  .marq__t span{gap:34px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .wi{transform:none!important}
}

/* ACCESSIBILITY */
/* Skip link — first focusable element, hidden until focused */
.skip{position:absolute;left:16px;top:-80px;z-index:9500;background:var(--teal);color:#fff;
  font-family:'Montserrat';font-weight:600;font-size:13px;letter-spacing:.02em;padding:12px 18px;border-radius:2px;
  transition:top .25s var(--ease)}
.skip:focus{top:16px;outline:2px solid var(--ivory);outline-offset:2px}
/* Visible keyboard focus indicator across interactive elements */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--teal-lum);outline-offset:3px;border-radius:2px}
/* Darker ring on light sections for sufficient contrast against ivory */
.light a:focus-visible,.light button:focus-visible,.light .btn:focus-visible{outline-color:var(--teal)}
/* Form fields: keep the underline-grow on pointer focus, add an outline for keyboard focus */
.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--teal-lum);outline-offset:2px}
/* The skip target shouldn't show a focus ring when it receives programmatic focus */
main:focus{outline:none}
@media (prefers-reduced-motion:reduce){ .skip{transition:none} }
