@font-face{font-family:Wide;src:url(/img/lexend-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:Brand;src:url(/img/outfit-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:PJS;src:url(/img/pjs.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--ink:#191A1A;--green:#263832;--rust:#D2572D;--rust-d:#B94820;--bg:#F6F7F5;--muted:#5E625F;--line:#E3E6E2;--tint:#F7ECE6}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:400 17px/1.6 PJS,system-ui,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{color:var(--green);letter-spacing:-.025em;line-height:1.08;font-weight:800}
h2{font-family:Brand,PJS,sans-serif;font-size:clamp(36px,4.6vw,52px);letter-spacing:-.045em;line-height:1;color:var(--ink)}
.lede{font-size:18px;color:var(--muted);margin-top:12px;max-width:36em}
section{padding:90px 0}
.center{text-align:center}.center .lede{margin-left:auto;margin-right:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:800 17px PJS,sans-serif;padding:17px 30px;border-radius:999px;border:0;cursor:pointer;white-space:nowrap}
.btn-r{background:var(--rust);color:#fff}.btn-r:hover{background:var(--rust-d)}
.btn-o{border:2px solid var(--green);color:var(--green);background:#fff}
:focus-visible{outline:3px solid var(--rust);outline-offset:3px}
.mk{display:block}

/* header */
header{background:#fff;position:sticky;top:0;z-index:40;border-bottom:1px solid transparent}
header.scrolled{border-bottom-color:var(--line)}
header .wrap{display:flex;align-items:center;height:92px;gap:28px}
.logo{margin-right:auto}.logo img{height:40px}
nav{display:flex;gap:28px;font-weight:600;font-size:15.5px;color:var(--green)}
nav a:hover{color:var(--rust)}
.pill{background:var(--rust);color:#fff;font-weight:800;font-size:18px;padding:14px 26px;border-radius:999px;white-space:nowrap}
.pill:hover{background:var(--rust-d)}
.menu{display:none;width:48px;height:48px;background:var(--green);border:0;border-radius:8px;cursor:pointer;align-content:center}
.menu span{display:block;width:22px;height:2.5px;background:#fff;margin:4px auto;border-radius:2px}
nav.open{display:flex}

/* hero */
.photo{display:grid;grid-template-columns:1fr 1fr;height:440px}
.photo figure{position:relative;background-size:cover}
@media (min-width:621px){.photo figure{background-position:center 88% !important}}
.photo .t{position:absolute;left:18px;top:18px;background:#fff;color:var(--ink);font-weight:800;font-size:14px;padding:7px 14px;border-radius:999px}
.photo .after .t{background:var(--rust);color:#fff}
.hero-bg{background:var(--bg);padding-bottom:80px}
.card{position:relative;margin:-90px auto 0;max-width:840px;background:#fff;border-radius:28px;padding:54px 64px 44px;text-align:center;box-shadow:0 24px 60px rgba(25,26,26,.08)}
.card h1{display:flex;flex-direction:column;align-items:center;gap:0}
.card h1 .w{font:800 clamp(30px,3.4vw,42px)/1 Wide,PJS,sans-serif;text-transform:uppercase;letter-spacing:-.01em;color:var(--green)}
.card h1 .lg{width:min(440px,78%);height:auto;margin:6px 0 4px}
h1 em{font-style:normal;color:var(--rust)}
.card .sub{font-size:18px;color:var(--muted);margin:16px auto 30px;max-width:32em;line-height:1.55}
form{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}
.f{display:flex;flex-direction:column}
.f.full{grid-column:1/-1}
.f label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.f input,.f textarea{width:100%;border:2px solid #C9D3CC;border-radius:12px;padding:17px 20px;font:500 17px PJS,sans-serif;color:var(--ink);background:#fff;resize:vertical}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--green)}
.f .err{display:none;color:#B42318;font-size:14px;margin-top:6px}
.f.bad input{border-color:#B42318}.f.bad .err{display:block}
form .btn{grid-column:1/-1;margin-top:4px;padding:19px}
.sent{display:none;padding:10px 0}.sent h3{font-size:28px;margin-bottom:8px}.sent p{color:var(--muted)}
.trust{display:flex;justify-content:center;gap:10px 24px;margin-top:22px;font-size:14.5px;color:var(--green);font-weight:600;flex-wrap:wrap}
.trust .st{color:#E9A100;letter-spacing:1px}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.s{border:1px solid var(--line);border-radius:22px;padding:30px;background:#fff}
.s .ic{width:64px;height:64px;border-radius:20px;background:#FBF1EC;display:grid;place-items:center;margin-bottom:18px}
.s .ic svg{width:42px;height:42px}
.s h3{font-family:Brand,PJS,sans-serif;font-size:25px;letter-spacing:-.03em;margin-bottom:8px;color:var(--ink)}
.s p{color:var(--muted);font-size:16px}
.also{margin-top:22px;color:var(--muted);font-size:16px}

/* work */
.work{background:var(--bg)}
.pairs{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:44px}
.pair .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pair figure{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:#ddd}
.pair img{width:100%;height:100%;object-fit:cover}
.pair .t{position:absolute;left:10px;top:10px;background:#fff;font-weight:800;font-size:12.5px;padding:5px 11px;border-radius:999px}
.pair .after .t{background:var(--rust);color:#fff}
.pair p{margin-top:12px;font-weight:700;color:var(--green)}

/* band */
.band{background:var(--green);color:#fff}
.band h2{color:#fff}
.band .lede{color:#C3CEC7}
.pts{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:44px}
.pts .mk{width:30px;height:22px;margin-bottom:14px}
.pts h3{color:#fff;font-size:21px;margin-bottom:8px}
.pts p{color:#C3CEC7;font-size:16px}

/* reviews */
.rv{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.r{border:1px solid var(--line);border-radius:22px;padding:28px;display:flex;flex-direction:column}
.r .st{color:#E9A100;letter-spacing:1px}
.r blockquote{margin:12px 0 20px;flex:1;font-size:16.5px}
.r b{color:var(--green)}.r span{display:block;font-size:14px;color:var(--muted)}
.note{margin-top:20px;font-size:14.5px;color:var(--muted)}
.score{display:inline-flex;align-items:center;gap:12px;margin-top:18px;font-weight:800;font-size:44px;color:var(--green);letter-spacing:-.03em}
.score small{font:600 15px PJS,sans-serif;color:var(--muted);letter-spacing:0;display:block}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px;counter-reset:n}
.step{background:#fff;border-radius:22px;padding:28px;border:1px solid var(--line)}
.step:before{counter-increment:n;content:counter(n);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--rust);color:#fff;font-weight:800;margin-bottom:16px}
.step h3{font-size:20px;margin-bottom:6px}.step p{font-size:15.5px;color:var(--muted)}

/* areas */
.cities{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;justify-content:center}
.cities span{border:1.5px solid var(--line);border-radius:999px;padding:9px 18px;font-weight:600;font-size:15px;color:var(--green);background:#fff}
.cities span.hq{border-color:var(--rust);color:var(--rust)}

/* faq */
.faq{background:var(--bg)}
.faq .wrap{max-width:820px}
details{background:#fff;border-radius:18px;margin-top:12px;border:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:22px 60px 22px 26px;font-weight:700;font-size:18px;color:var(--green);position:relative}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";position:absolute;right:24px;top:16px;font-size:28px;font-weight:400;color:var(--rust)}
details[open] summary:after{content:"–"}
details p{padding:0 26px 22px;color:var(--muted)}

/* final + footer */
.final{text-align:center}
.final .btns{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
footer{background:var(--green);color:#C3CEC7;padding:60px 0 30px;font-size:15px}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
footer img{height:34px;margin-bottom:16px}
footer h4{color:#fff;font-size:16px;margin-bottom:12px}
footer ul{list-style:none}footer li{margin-bottom:7px}
footer a:hover{color:#fff}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;font-size:13.5px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

.fab{display:none}

@media (max-width:980px){
  nav{display:none;position:absolute;top:92px;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:8px 28px 18px;border-bottom:1px solid var(--line)}
  nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:18px}
  .menu{display:grid}
  .svc,.rv{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .pts{grid-template-columns:1fr;gap:26px}
  .pairs{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .wrap{padding:0 18px}
  header .wrap{height:74px;gap:10px}
  nav{top:74px;padding:8px 18px 18px}
  .logo img{height:28px}
  .pill{font-size:15px;padding:12px 16px}
  .menu{width:44px;height:44px}
  .photo{height:232px}
  .photo .t{left:10px;top:10px;font-size:12.5px;padding:6px 11px}
  .hero-bg{padding-bottom:56px}
  .card{margin:-38px 12px 0;padding:30px 20px 26px;border-radius:24px}
  .card .sub{font-size:16px;margin:12px 0 22px}
  form{grid-template-columns:1fr;gap:12px}
  .f input,.f textarea{padding:16px 18px;font-size:16px}
  .trust{font-size:13px;gap:6px 16px}
  section{padding:64px 0}
  .svc,.rv,.steps{grid-template-columns:1fr}
  .s,.r,.step{padding:24px}
  footer .cols{grid-template-columns:1fr}
  .fab{display:flex;position:fixed;left:16px;bottom:20px;z-index:50;background:var(--rust);color:#fff;font-weight:800;font-size:17px;padding:16px 24px;border-radius:14px;box-shadow:0 8px 22px rgba(0,0,0,.22);align-items:center;gap:10px}
  .fab.hide{display:none}
  body{padding-bottom:92px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* --- v4: menu, footer, offices, trustindex --- */
nav .mtop,nav .mcontact,nav .mcta{display:none}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}
.office .map{border-radius:22px;overflow:hidden;background:#E8ECE9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M20 8a8 8 0 0 1 8 8c0 6-8 15-8 15s-8-9-8-15a8 8 0 0 1 8-8z' fill='%23D2572D'/%3E%3C/svg%3E") center/40px no-repeat;height:300px}
.office iframe{border:0;width:100%;height:100%;display:block}
.office h3{font-family:Brand,PJS,sans-serif;font-size:24px;letter-spacing:-.03em;color:var(--ink);margin:16px 0 4px}
.office p{color:var(--muted);font-size:16px}
.office a{display:inline-block;margin-top:8px;font-weight:700;color:var(--rust)}
#areas .cities{margin-top:34px}
.ti-wrap{margin-top:40px;min-height:240px}
.ti-wrap.loaded .ti-fallback{display:none}
.ti-wrap .rv{margin-top:0}
footer{background:#fff;color:var(--green);padding:64px 0 0;font-size:16px;border-top:1px solid var(--line)}
.fcenter{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.flogo{width:240px;height:auto;margin-bottom:10px}
.lic{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(520px,100%);background:var(--rust);color:#fff;font-weight:800;font-size:18px;padding:20px 26px;border-radius:999px;margin-bottom:18px}
.fitem{display:flex;align-items:center;gap:14px;width:min(520px,100%);text-align:left;font-weight:700;color:var(--green);font-size:16.5px}
.fic{width:44px;height:44px;border-radius:50%;background:#FBF1EC;color:var(--rust);display:grid;place-items:center;flex:none}
.fic svg{width:20px;height:20px}
.flinks{display:flex !important;flex-direction:row !important;gap:22px;flex-wrap:wrap;justify-content:center;margin-top:18px;font-weight:600;color:var(--muted);position:static;background:none;padding:0;border:0}
.flinks a{border:0;padding:0;font-size:15.5px}
.fbar{margin-top:44px;background:var(--green);color:#D9E2DC;text-align:center;font-size:14px;padding:18px}
@media (max-width:980px){
  nav#nav{position:fixed;inset:0;top:0;z-index:80;background:#fff;padding:22px 28px 30px;overflow:auto;border:0}
  nav#nav .mtop{display:flex;justify-content:center;align-items:center;position:relative;margin:6px 0 24px}
  nav#nav .mtop span{font:800 40px Wide,PJS,sans-serif;text-transform:uppercase;color:var(--green)}
  .mclose{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--green);cursor:pointer;padding:6px}
  nav#nav>a{font:600 23px PJS,sans-serif;color:var(--green);padding:22px 8px;border-bottom:1px solid var(--line)}
  nav#nav .mcontact{display:flex;flex-direction:column;gap:14px;margin-top:30px;padding-top:26px;border-top:2px solid var(--line)}
  nav#nav .mcontact a{display:flex;align-items:center;gap:14px;font-weight:700;color:var(--green);font-size:17px}
  nav#nav .mcta{display:flex;margin-top:28px;color:#fff;border:0;padding:19px}
  nav#nav .mcontact a{border:0;padding:0}
  .offices{grid-template-columns:1fr}
}
@media (max-width:620px){.office .map{height:240px}.lic{font-size:16px;padding:17px 22px}.fitem{font-size:15px;text-align:left}}

.pairs{grid-template-columns:repeat(3,1fr);gap:22px}
.case{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px 20px 22px}
.case .tag{display:inline-block;background:#FBF1EC;color:var(--rust);font-weight:700;font-size:13.5px;padding:6px 12px;border-radius:999px}
.case h3{font-family:Brand,PJS,sans-serif;font-size:21px;letter-spacing:-.03em;color:var(--ink);margin:12px 0 16px;line-height:1.15}
.case .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.case figure{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3/4}
.case img{width:100%;height:100%;object-fit:cover}
.case .t{position:absolute;left:8px;top:8px;background:#fff;font-weight:800;font-size:12px;padding:5px 10px;border-radius:999px}
.case .after .t{background:var(--rust);color:#fff}
@media (max-width:980px){.pairs{grid-template-columns:1fr}.case h3{font-size:22px}}

/* home link only inside the phone menu */
nav#nav a.mhome{display:inline}
@media (max-width:980px){nav#nav a.mhome{display:block}}

body{overflow-anchor:none}
/* slimmer form fields */
.f input,.f textarea{padding:12px 16px!important;font-size:16px!important;border-radius:10px}
.est-form{gap:10px!important}
.est-form textarea{min-height:0}

/* desktop hero: form card left, before/after right */
@media (min-width:1000px){
  .hero-wrap{background:var(--bg)}
  .hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:36px;max-width:1240px;margin:0 auto;padding:44px 28px 80px;align-items:stretch}
  .hero .hero-bg{order:2;background:none;padding:0;display:flex}
  .hero .card{margin:0;max-width:none;width:100%;text-align:center;padding:44px 44px 36px;border-radius:26px}
  .hero .card h1{align-items:center}
  .hero .card h1 .lg{width:min(380px,86%);height:auto;margin:8px 0 6px}
  .hero .card .sub{margin:14px auto 24px;max-width:30em}
  .hero .trust{justify-content:center}
  .hero .photo{height:clamp(380px,31vw,460px);min-height:0;grid-template-rows:100%;border-radius:22px;overflow:hidden;gap:6px;background:var(--bg);box-shadow:0 24px 60px rgba(25,26,26,.10)}
  .hero .photo figure{border-radius:0}
  .hero .photo figure{background-position:center center !important;background-size:cover}
}
@media (min-width:1000px) and (max-width:1180px){.hero{grid-template-columns:1fr 1fr}}
/* before/after grids: never leave a lone card stuck on the left */
.pairs{display:flex !important;flex-wrap:wrap;justify-content:center;gap:22px}
.pairs>*{flex:1 1 300px;max-width:400px;min-width:0}
@media (max-width:700px){.pairs>*{flex-basis:100%;max-width:none}}
nav a{color:var(--ink)}

.hm-cap{display:none}
@media (min-width:1000px){
  .hero-media{order:1;align-self:start;position:sticky;top:120px}
  .hero .photo figure{height:100%;min-height:100%}
  .hm-cap{display:block;margin-top:18px}
  .hm-cap p{color:var(--muted);font-size:15px;text-align:center}
  .hm-cap li{text-align:center}
  .hm-cap ul{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
  .hm-cap li{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-size:14.5px;color:var(--muted)}
  .hm-cap b{display:block;font-size:19px;color:var(--ink)}
}
.f textarea,textarea{resize:none!important}
@media (min-width:701px){.signs>li:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 8px)}}
.w-radio input[type=radio]{width:20px!important;height:20px;padding:0!important;margin:0;flex:none;accent-color:var(--rust);border:0}.w-radio label{white-space:nowrap}

img.brand-inline{display:inline-block;height:1.42em;width:auto;vertical-align:-.3em;margin:0 .04em}
.band img.brand-inline,.section-dark img.brand-inline,footer img.brand-inline{content:url(/img/logo-white.svg)}

/* photo heroes on inner pages */
.page-hero.ph-photo{position:relative;background:#1E2A26 var(--ph) center 40%/cover no-repeat;color:#fff;padding:84px 0 80px;overflow:hidden}
.page-hero.ph-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,36,31,.78) 0%,rgba(24,36,31,.88) 100%)}
.page-hero.ph-photo>.wrap{position:relative}
.page-hero.ph-photo h1{color:#fff!important}
.page-hero.ph-photo .lede{color:#D9E2DC!important}
.page-hero.ph-photo .crumbs,.page-hero.ph-photo .crumbs a{color:#C9D3CC!important}
.page-hero.ph-photo h1 img.brand-inline{content:url(/img/logo-white.svg)}
.page-hero.ph-photo .btn-o{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.ph-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.ph-chips span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(4px);color:#fff;border-radius:999px;padding:8px 16px;font-size:14.5px;font-weight:600}
.ph-chips b{color:#F4B49A}
@media (max-width:620px){.page-hero.ph-photo{padding:56px 0 52px}.ph-chips span{font-size:13px;padding:7px 12px}}
