/* Generated by migration/scripts/build-inside-v3.py from the v3 homepage. Do not edit by hand. */

/* ===== Spacing + layout utilities missing from mirror CSS ===== */
.jdiv2 .lgpy-16{padding-top:4rem;padding-bottom:4rem}
.jdiv2 .lgpy-20{padding-top:5rem;padding-bottom:5rem}
.jdiv2 .lgpy-24{padding-top:6rem;padding-bottom:6rem}
.jdiv2 .lgmb-14{margin-bottom:3.5rem}
.jdiv2 .lgmb-16{margin-bottom:4rem}
.jdiv2 .lgmb-20{margin-bottom:5rem}
.jdiv2 .lgmt-4{margin-top:1rem}
.jdiv2 .maxw-2xl{max-width:42rem;margin-left:auto;margin-right:auto}
.jdiv2 .maxw-3xl{max-width:48rem;margin-left:auto;margin-right:auto}
.jdiv2 .maxw-5xl{max-width:64rem;margin-left:auto;margin-right:auto}
/* ===== Type scale ===== */
.jdiv2 .t-eyebrow{font-size:12px;line-height:1;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#50a747}
.jdiv2 .t-h2{font-family:'Wix Madefor Text','Inter',system-ui,sans-serif;font-size:34px;line-height:1.08;letter-spacing:-.02em;font-weight:600;color:#0a0a0a}
.jdiv2 .t-h2-xl{font-size:46px;line-height:1.05;letter-spacing:-.025em}
.jdiv2 .t-h3{font-family:'Wix Madefor Text','Inter',system-ui,sans-serif;font-size:20px;line-height:1.2;letter-spacing:-.01em;font-weight:600;color:#0a0a0a}
.jdiv2 .t-lead{font-size:16px;line-height:1.6;color:#555}
.jdiv2 .t-label{font-size:11px;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#737373}
.jdiv2 .t-sublabel{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#737373;font-weight:600}
@media (min-width:1024px){.jdiv2 .t-h2{font-size:44px}.jdiv2 .t-h2-xl{font-size:56px}.jdiv2 .t-lead{font-size:18px}}
/* ===== Backgrounds + borders ===== */
.jdiv2 .bg-mint{background:#eef7ec}
.jdiv2 .bg-mint-40{background:rgba(238,247,236,.5)}
.jdiv2 .bg-soft{background:#fafafa}
.jdiv2 .bd-soft{border:1px solid #e5e5e5}
.jdiv2 .bd-top{border-top:1px solid #e5e5e5}
.jdiv2 .bd-left{border-left:1px solid #e5e5e5}
.jdiv2 .bd-dashed{border:2px dashed #50a747}
.jdiv2 .shadow-soft{box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06)}
.jdiv2 .shadow-lift{box-shadow:0 1px 2px rgba(0,0,0,.04),0 14px 36px rgba(0,0,0,.09)}
/* ===== Grid helpers ===== */
.jdiv2 .g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.jdiv2 .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.jdiv2 .g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
@media (max-width:900px){.jdiv2 .g2,.jdiv2 .g3{grid-template-columns:1fr}}
/* ===== Buttons ===== */
.jdiv2 .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:14px;text-decoration:none;transition:background .15s,transform .15s;letter-spacing:.02em;cursor:pointer;border:0}
.jdiv2 .btn-primary{background:#50a747;color:#fff}
.jdiv2 .btn-primary:hover{background:#43913a;transform:translateY(-1px)}
.jdiv2 .btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.9)}
.jdiv2 .btn-outline:hover{background:#fff;color:#50a747}
.jdiv2 .btn-white{background:#fff;color:#50a747}
.jdiv2 .btn-white:hover{background:#f5f5f5}
/* ===== Card ===== */
.jdiv2 .card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #eceae6;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:transform .18s,box-shadow .18s}
.jdiv2 .card:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(0,0,0,.04),0 14px 30px rgba(0,0,0,.08);border-color:#50a747}
.jdiv2 .card-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s}
.jdiv2 .card:hover .card-img{transform:scale(1.03)}
.jdiv2 .card-body{padding:22px}
/* ===== Chip (city pills) ===== */
.jdiv2 .chip{display:inline-flex;align-items:center;padding:7px 14px;background:#fff;border:1px solid #e5e5e5;border-radius:999px;font-size:13px;color:#333;text-decoration:none;margin:4px;transition:background .12s,border-color .12s,color .12s}
.jdiv2 .chip:hover{background:#eef7ec;border-color:#50a747;color:#50a747}
/* ===== Reviews carousel ===== */
.jdiv2 .reviews-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:16px;padding:0 16px 20px;scrollbar-width:none}
.jdiv2 .reviews-track::-webkit-scrollbar{display:none}
.jdiv2 .review-card{scroll-snap-align:start;flex-shrink:0;width:320px;background:#fff;border-radius:16px;padding:24px;border:1px solid #ebe9e5;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:box-shadow .18s}
.jdiv2 .review-card:hover{box-shadow:0 1px 2px rgba(0,0,0,.04),0 10px 24px rgba(0,0,0,.08)}
@media (min-width:768px){.jdiv2 .review-card{width:360px}}
.jdiv2 .review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.jdiv2 .review-avatar{width:44px;height:44px;border-radius:999px;background:#eef7ec;color:#50a747;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;box-shadow:0 0 0 2px rgba(80,167,71,.2)}
.jdiv2 .review-name{font-weight:600;color:#0a0a0a;font-size:14px}
.jdiv2 .review-date{font-size:12px;color:#737373}
.jdiv2 .review-stars{color:#50a747;font-size:14px;letter-spacing:1px;flex-shrink:0}
.jdiv2 .review-quote{color:#444;font-size:14.5px;line-height:1.55;font-style:italic;font-family:'Wix Madefor Text','Inter',system-ui,sans-serif;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;min-height:120px}
.jdiv2 .review-foot{margin-top:18px;padding-top:14px;border-top:1px solid #f5f3ee;display:flex;align-items:center;gap:8px;font-size:12px;color:#737373}
.jdiv2 .review-cta{scroll-snap-align:start;flex-shrink:0;width:220px;background:#50a747;border-radius:16px;padding:24px;color:#fff;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;transition:background .15s}
.jdiv2 .review-cta:hover{background:#42233a}
/* ===== Video testimonial card ===== */
.jdiv2 .video-card{position:relative;display:block;overflow:hidden;border-radius:16px;aspect-ratio:16/9;background:#1a1a1a;box-shadow:0 1px 2px rgba(0,0,0,.04),0 10px 24px rgba(0,0,0,.08);transition:transform .18s,box-shadow .18s;text-decoration:none}
.jdiv2 .video-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(0,0,0,.04),0 20px 40px rgba(0,0,0,.14)}
.jdiv2 .video-thumb{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.jdiv2 .video-card:hover .video-thumb{transform:scale(1.05)}
.jdiv2 .video-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.1) 60%,rgba(0,0,0,0) 100%)}
.jdiv2 .video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:999px;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:transform .18s}
.jdiv2 .video-card:hover .video-play{transform:translate(-50%,-50%) scale(1.1)}
.jdiv2 .video-caption{position:absolute;left:20px;right:20px;bottom:20px;color:#fff}
.jdiv2 .video-city{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:4px}
.jdiv2 .video-title{font-family:'Wix Madefor Text','Inter',system-ui,sans-serif;font-size:18px;font-weight:700;line-height:1.2}
/* ===== Checks row ===== */
.jdiv2 .checks-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding-top:40px;border-top:1px solid #e5e5e5}
@media (max-width:900px){.jdiv2 .checks-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
.jdiv2 .check{display:flex;align-items:center;gap:12px}
.jdiv2 .check svg{width:24px;height:24px;color:#50a747;flex-shrink:0}
.jdiv2 .check-label{font-weight:600;color:#0a0a0a;font-size:16px}
/* ===== Owner-input placeholder ===== */
.jdiv2 .owner-note{background:rgba(238,247,236,.5);border:2px dashed #50a747;border-radius:16px;padding:22px 24px;text-align:center;max-width:720px;margin:28px auto 0}
.jdiv2 .owner-note b{color:#50a747;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:700}
.jdiv2 .owner-note span{display:block;margin-top:6px;color:#444;font-size:14px;line-height:1.55}

/* ===== UNSCOPED overrides for the source homepage's "Start Your Home
   Transformation Journey Today" CTA section. Only loaded on /homepage-v2/
   so the live homepage at / is unaffected. Reduces the heavy dark tint
   so the kitchen photo reads through properly. ===== */
section.bg-\[\#1a1a1a\] .opacity-40 { opacity: 0.75 !important; }
section.bg-\[\#1a1a1a\] .bg-gradient-to-r.from-\[\#1a1a1a\] {
  background: linear-gradient(to right, rgba(26,26,26,0.55) 0%, rgba(26,26,26,0.3) 50%, rgba(26,26,26,0.05) 100%) !important;
}

:root{--v3-green:#50a747;--v3-btn:#3a8635;--v3-btn-h:#2f722b;--v3-forest:#1e3d2a;--v3-ink:#14201a;--v3-muted:#5b625c;--v3-line:#e7e5e0;--v3-paper:#faf9f6;--v3-font:"Proxima Nova",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
html{scroll-padding-top:140px}
/* overflow-x:hidden on the wrappers turns them into scroll containers and breaks position:sticky; clip does not */
html,body,#___gatsby,#gatsby-focus-wrapper,#gatsby-focus-wrapper>div,.layout-container,.layout-container>div{overflow-x:clip!important;overflow-y:visible!important}

/* one type family, one heading scale */
.jdiv2 .t-h2,.jdiv2 .t-h3,.jdiv2 .review-quote,.jdiv2 .video-title,.jdi-ba-section .jdi-ba-heading,.jdi-mega-hero-title{font-family:var(--v3-font)!important}
.jdiv2 .t-h2,.jdi-ba-section .jdi-ba-heading,.v3-h2{font-size:clamp(28px,3.1vw,40px)!important;line-height:1.14!important;letter-spacing:-.02em!important;font-weight:700!important;color:var(--v3-forest)!important;margin:0!important;text-wrap:balance}
.jdiv2 .t-h2 span,.v3-h2 span{font-weight:inherit!important;line-height:inherit!important;letter-spacing:inherit!important}
.v3-dark .v3-h2{color:#fff!important}
.jdiv2 .t-h2 span,.v3-h2 .text-jdi-accent{color:var(--v3-btn)!important}
header a[style*="#50A747"]{background-color:var(--v3-btn)!important}
header a[style*="#50A747"]:hover{background-color:var(--v3-btn-h)!important}
.jdiv2 .t-eyebrow,.jdi-ba-section .jdi-ba-eyebrow,.v3-eyebrow{font-size:12px!important;line-height:1!important;letter-spacing:.16em!important;text-transform:uppercase;font-weight:700!important;color:var(--v3-btn)!important;margin:0 0 14px!important;display:block}
.v3-dark .v3-eyebrow{color:#8fd487!important}
.jdiv2 .t-lead,.jdi-ba-section .jdi-ba-sub,.v3-lead{font-size:17px!important;line-height:1.6!important;color:var(--v3-muted)!important;margin:14px 0 0!important;max-width:620px}

/* one alignment + one container: left-aligned headers on a 1216px measure */
.jdiv2 .maxw-3xl{text-align:left!important;margin-left:0!important;margin-right:0!important;margin-bottom:44px!important;max-width:760px!important}
.jdiv2 .maxw-3xl .t-lead{margin-left:0!important;margin-right:0!important}
.jdiv2{padding-left:16px!important;padding-right:16px!important}
.jdiv2>div:first-child{max-width:1216px!important;padding-left:0!important;padding-right:0!important}
.jdi-ba-section .jdi-ba-inner{max-width:1216px!important}
.jdi-ba-section .jdi-ba-eyebrow,.jdi-ba-section .jdi-ba-heading,.jdi-ba-section .jdi-ba-sub{text-align:left!important}
.jdi-ba-section .jdi-ba-sub{margin:14px 0 44px!important}
.jdi-ba-section{border:0!important;padding-left:16px!important;padding-right:16px!important}
.jdi-ba-caption{text-align:left!important}
.jdi-ba-cta-row{justify-content:flex-start!important}
@media(min-width:640px){.jdiv2,.jdi-ba-section{padding-left:24px!important;padding-right:24px!important}}
@media(min-width:1024px){.jdiv2,.jdi-ba-section{padding-left:32px!important;padding-right:32px!important}}

/* one vertical rhythm, alternating white / paper */
.v3-sec{padding-top:56px!important;padding-bottom:56px!important}
@media(min-width:1024px){.v3-sec{padding-top:88px!important;padding-bottom:88px!important}}
.v3-white{background:#fff!important}
.v3-paper{background:var(--v3-paper)!important}
.v3-dark{background:var(--v3-forest)!important}

/* one button: pill, darker green that passes AA with white text */
a.bg-jdi-accent,button.bg-jdi-accent,.jdiv2 .btn-primary,.jdi-ba-cta,.v3-btn{background-color:var(--v3-btn)!important;color:#fff!important;border-radius:999px!important;font-weight:600!important;letter-spacing:0!important}
a.bg-jdi-accent:hover,button.bg-jdi-accent:hover,.jdiv2 .btn-primary:hover,.jdi-ba-cta:hover,.v3-btn:hover{background-color:var(--v3-btn-h)!important}
/* promo bar keeps the original brand green */
.fixed.top-0>a.bg-jdi-accent,.fixed.top-0>a.bg-jdi-accent:hover{background-color:var(--v3-green)!important;border-radius:0!important;font-weight:inherit!important}
.jdiv2 .review-cta{background:var(--v3-forest)!important}
.jdiv2 .review-cta:hover{background:#16301f!important}
.jdiv2 .review-stars{color:#e8a23a!important}

/* one card */
.jdiv2 .card,.jdiv2 .review-card,.jdi-ba,.v3-services .rounded-xl,.v3-process .rounded-2xl{border-radius:16px!important}
.jdiv2 .card{border:1px solid var(--v3-line)!important;box-shadow:none!important}
.jdiv2 .card:hover{border-color:var(--v3-btn)!important;box-shadow:0 14px 30px rgba(20,32,26,.08)!important}
.jdiv2 .card-img{aspect-ratio:16/10!important}
.jdiv2 .card .t-h3{font-size:22px!important;font-weight:700!important;color:var(--v3-forest)!important}
.jdiv2 .card .t-eyebrow{letter-spacing:.1em!important;margin-bottom:10px!important}
.v3-process .rounded-2xl{box-shadow:none!important;border:1px solid var(--v3-line)}
.jdi-ba-knob{border-radius:999px!important;background:#fff!important;color:var(--v3-forest)!important}

/* ---------- hero ---------- */
.v3-hero{position:relative;background:#101410;color:#fff;overflow:hidden}
.v3-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;animation:v3-hero-zoom 24s ease-out both}
@keyframes v3-hero-zoom{from{transform:scale(1.09)}to{transform:scale(1)}}
.v3-hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,14,.5) 0%,rgba(10,20,14,.38) 100%)}
.v3-hero .v3-hero-h,.v3-hero-sub{text-shadow:0 1px 18px rgba(8,16,11,.45)}
@media(min-width:1024px){.v3-hero-shade{background:linear-gradient(0deg,rgba(10,20,14,.28) 0%,rgba(10,20,14,0) 30%),linear-gradient(90deg,rgba(14,28,19,.6) 0%,rgba(14,28,19,.4) 30%,rgba(14,28,19,.08) 56%,rgba(14,28,19,0) 72%)}}
.v3-hero-inner{position:relative;max-width:1280px;margin:0 auto;padding:112px 16px 36px;display:grid;gap:28px;align-items:center}
.v3-hero .v3-hero-h{font-family:var(--v3-font);font-size:clamp(38px,5.2vw,68px);line-height:1.02;letter-spacing:-.025em;font-weight:700;margin:0;color:#fff;text-wrap:balance}
.v3-hero-sub{font-size:18px;line-height:1.6;color:rgba(255,255,255,.88);margin:22px 0 0;max-width:540px}
.v3-hero .v3-hero-h em{font-style:normal;color:#a9e0a2}
.v3-hero .v3-eyebrow{display:inline-flex!important;align-items:center;gap:10px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);margin-bottom:22px!important;letter-spacing:.12em!important;font-size:11.5px!important;line-height:1.3!important}
.v3-hero .v3-eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:#8fd487;box-shadow:0 0 0 4px rgba(143,212,135,.25);flex-shrink:0}
.v3-hero .v3-checks{gap:8px}
.v3-hero .v3-checks li{padding:8px 13px 8px 9px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:13.5px}
.v3-hero-copy>*{opacity:0;transform:translateY(16px);animation:v3-rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.v3-hero-copy>:nth-child(2){animation-delay:.08s}.v3-hero-copy>:nth-child(3){animation-delay:.16s}.v3-hero-copy>:nth-child(4){animation-delay:.24s}.v3-hero-copy>:nth-child(5){animation-delay:.32s}.v3-hero-copy>:nth-child(6){animation-delay:.4s}
.v3-hero .v3-form{opacity:0;transform:translateY(22px);animation:v3-rise .9s .25s cubic-bezier(.2,.7,.2,1) forwards;border-radius:24px;padding:28px 26px 24px;box-shadow:0 30px 80px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.5)}
@keyframes v3-rise{to{opacity:1;transform:none}}
.v3-hero-call{display:inline-flex;align-items:center;color:#fff;font-weight:600;font-size:15px;text-decoration:none;padding:13px 6px}
.v3-hero-call b{margin-left:6px;border-bottom:1.5px solid rgba(169,224,162,.7)}
.v3-hero-call:hover b{color:#a9e0a2}
@media(prefers-reduced-motion:reduce){.v3-hero-img,.v3-hero-copy>*,.v3-hero .v3-form{animation:none;opacity:1;transform:none}}
.v3-hero .v3-eyebrow{color:#a9e0a2!important}
.v3-checks{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:14.5px;font-weight:600;color:#fff}
.v3-checks li{display:flex;align-items:center;gap:8px}
.v3-checks li:before{content:"";width:16px;height:16px;border-radius:50%;background:var(--v3-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.3 8.3l2.4 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;flex-shrink:0}
.v3-rating{display:flex;width:fit-content;align-items:center;gap:10px;margin-top:22px;font-size:14.5px;color:#fff;text-decoration:none}
.v3-rating b{font-weight:700}
.v3-stars{color:#f5a623;letter-spacing:2px;font-size:16px}
.v3-rating span.v3-rating-count{color:rgba(255,255,255,.8);border-left:1px solid rgba(255,255,255,.3);padding-left:10px}
.v3-hero-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.v3-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;border:1.5px solid rgba(255,255,255,.4);color:#fff;font-weight:600;font-size:15px;text-decoration:none;background:rgba(255,255,255,.06)}
.v3-ghost:hover{background:rgba(255,255,255,.16)}
.v3-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;font-size:15px;text-decoration:none;border:0;cursor:pointer;font-family:var(--v3-font);transition:background-color .15s}
.v3-only-mobile{display:inline-flex}
@media(min-width:1024px){
  .v3-hero-inner{grid-template-columns:minmax(0,1fr) 420px;gap:64px;padding:148px 32px 100px;min-height:min(820px,100vh);box-sizing:border-box}
  .v3-only-mobile{display:none}
}

/* ---------- lead form ---------- */
.v3-form{background:#fff;color:var(--v3-ink);border-radius:20px;padding:26px 24px 22px;box-shadow:0 24px 60px rgba(0,0,0,.28);font-family:var(--v3-font)}
.v3-form-offer{display:inline-block;background:#eef7ec;color:#27632a;font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:999px;margin-bottom:14px;text-decoration:none}
.v3-form h2{font-size:24px;line-height:1.15;letter-spacing:-.02em;font-weight:700;color:var(--v3-forest);margin:0}
.v3-form-note{font-size:14px;color:var(--v3-muted);margin:6px 0 18px;line-height:1.5}
.v3-field{display:block;margin-bottom:12px}
.v3-field span{display:block;font-size:12.5px;font-weight:600;color:#3b443d;margin-bottom:5px}
.v3-field input,.v3-field select,.v3-field textarea{width:100%;box-sizing:border-box;border:1px solid #cfd3cd;border-radius:10px;padding:12px 13px;font:400 16px/1.3 var(--v3-font);color:var(--v3-ink);background:#fff;appearance:none}
.v3-field select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%235b625c' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center/12px no-repeat;padding-right:36px}
.v3-field input:focus,.v3-field select:focus,.v3-field textarea:focus{outline:3px solid rgba(80,167,71,.35);outline-offset:0;border-color:var(--v3-btn)}
.v3-field textarea{min-height:92px;resize:vertical}
.v3-form .v3-btn{width:100%;margin-top:6px;padding:15px 20px;font-size:16px}
.v3-form-fine{font-size:12.5px;color:var(--v3-muted);text-align:center;margin:12px 0 0;line-height:1.5}
.v3-form-fine a{color:var(--v3-forest);font-weight:700;text-decoration:none;white-space:nowrap}
.v3-form-msg{display:none;margin-top:12px;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.45}
.v3-form-msg.is-ok{display:block;background:#eef7ec;color:#1f5a24}
.v3-form-msg.is-warn{display:block;background:#fff6dd;color:#6b4e00}
.v3-form-row{display:grid;gap:0 12px}
@media(min-width:560px){.v3-form-row{grid-template-columns:1fr 1fr}}

/* ---------- ratings strip ---------- */
.v3-badges{box-shadow:none!important;border-top:0!important;border-bottom:1px solid var(--v3-line);padding-top:10px!important;padding-bottom:10px!important}
.v3-badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.v3-badge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 8px 14px;border-radius:14px;text-decoration:none;font-family:var(--v3-font);transition:background-color .2s,box-shadow .2s,transform .2s}
.v3-badge:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--v3-line);transition:opacity .2s}
.v3-badge:nth-child(3n+1):before{display:none}
.v3-badge img{height:30px!important;width:auto;max-width:86%;object-fit:contain;transition:transform .2s}
.v3-badge-swap{position:relative;display:block;height:18px;overflow:hidden;width:100%;text-align:center}
.v3-badge-score,.v3-badge-more{display:block;font-size:13px;line-height:18px;transition:transform .22s,opacity .22s}
.v3-badge-score{color:var(--v3-muted)}
.v3-badge-score b{color:var(--v3-forest);font-weight:700;font-size:14px}
.v3-badge-more{position:absolute;inset:0;color:var(--v3-btn);font-weight:700;transform:translateY(100%);opacity:0}
.v3-badge:focus-visible{outline:3px solid rgba(80,167,71,.45);outline-offset:-3px}
@media(hover:hover){
  .v3-badge:hover{background:#fff;box-shadow:0 1px 2px rgba(20,32,26,.05),0 12px 28px rgba(20,32,26,.12);transform:translateY(-3px);z-index:1}
  .v3-badge:hover:before,.v3-badge:hover+.v3-badge:before{opacity:0}
  .v3-badge:hover img{transform:scale(1.05)}
  .v3-badge:hover .v3-badge-score{transform:translateY(-100%);opacity:0}
  .v3-badge:hover .v3-badge-more{transform:none;opacity:1}
}
@media(min-width:640px){
  .v3-badge-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .v3-badge:nth-child(3n+1):before{display:block}
  .v3-badge:first-child:before{display:none}
}
@media(min-width:768px){.v3-badge-grid{border-left:1px solid var(--v3-line);margin-left:8px;padding-left:8px}}
@media(prefers-reduced-motion:reduce){.v3-badge,.v3-badge img,.v3-badge-score,.v3-badge-more{transition:none}}

/* ---------- stats ---------- */
.v3-stats-inner{max-width:1216px;margin:0 auto;display:grid;gap:36px}
.v3-stat-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--v3-line)}
.v3-stat{padding:24px 0;border-bottom:1px solid var(--v3-line)}
.v3-stat:nth-child(odd){padding-right:16px}
.v3-stat:nth-child(even){padding-left:20px;border-left:1px solid var(--v3-line)}
.v3-stat-num{font-family:var(--v3-font);font-size:clamp(40px,5vw,60px);line-height:1;font-weight:700;letter-spacing:-.03em;color:var(--v3-forest)}
.v3-stat-num small{font-size:.5em;font-weight:700;color:var(--v3-btn);letter-spacing:-.01em;margin-left:2px}
.v3-stat-label{margin-top:10px;font-size:14.5px;line-height:1.4;color:var(--v3-muted)}
@media(min-width:1024px){
  .v3-stats-inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:center}
}
.v3-stats{padding-left:16px;padding-right:16px}
@media(min-width:640px){.v3-stats{padding-left:24px;padding-right:24px}}
@media(min-width:1024px){.v3-stats{padding-left:32px;padding-right:32px}}

/* ---------- services ---------- */
.v3-services .line-clamp-2{-webkit-line-clamp:3!important}
.v3-services a h3{font-size:21px!important;font-weight:700!important;color:var(--v3-forest)!important}
.v3-services a span.text-jdi-accent,.v3-process a.text-gray-900{color:var(--v3-btn)!important;font-weight:600!important}
@media(max-width:639px){
  .v3-services .grid{grid-template-columns:1fr 1fr!important;gap:22px 14px!important}
  .v3-services a h3{font-size:16.5px!important;line-height:1.2!important}
  .v3-services a p{display:none!important}
  .v3-services a .mt-5{margin-top:10px!important}
  .v3-services a .mt-4{margin-top:6px!important}
}

/* ---------- service area ---------- */
.jdiv2 .chip{margin:0 6px 8px 0!important;border-color:var(--v3-line)!important}
.jdiv2 .chip:hover{color:var(--v3-btn)!important;border-color:var(--v3-btn)!important}
.jdiv2 .t-h3{color:var(--v3-forest)!important;font-weight:700!important}

/* ---------- long-form block ---------- */
.v3-seo .content-prose h1,.v3-seo .content-prose h2{color:var(--v3-forest);letter-spacing:-.02em}
.v3-seo .content-prose>h2:first-child{margin-top:0}
.v3-faq{border-top:1px solid var(--v3-line)}
.v3-faq:last-of-type{border-bottom:1px solid var(--v3-line)}
.v3-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0}
.v3-faq summary::-webkit-details-marker{display:none}
.v3-faq summary h3{margin:0!important;font-size:18px!important;line-height:1.35!important;font-weight:600!important;color:var(--v3-ink)!important}
.v3-faq summary:after{content:"";width:11px;height:11px;border-right:2px solid var(--v3-btn);border-bottom:2px solid var(--v3-btn);transform:rotate(45deg);flex-shrink:0;margin:0 6px 4px 0;transition:transform .15s}
.v3-faq[open] summary:after{transform:rotate(-135deg);margin-bottom:-4px}
.v3-faq p{margin:0 0 20px!important;max-width:680px}
.v3-aside a.bg-jdi-accent{border-radius:999px!important}
@media(min-width:1024px){.v3-aside{position:sticky;top:148px;align-self:start}}

.v3-wrap{max-width:1216px;margin:0 auto}
.v3-videos,.v3-proc,.v3-area,.v3-team,.v3-reviews{padding-left:16px;padding-right:16px}
@media(min-width:640px){.v3-videos,.v3-proc,.v3-area,.v3-team,.v3-reviews{padding-left:24px;padding-right:24px}}
@media(min-width:1024px){.v3-videos,.v3-proc,.v3-area,.v3-team,.v3-reviews{padding-left:32px;padding-right:32px}}
.v3-textlink{color:var(--v3-btn);font-weight:600;font-size:15px;text-decoration:none}
.v3-textlink:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- video testimonials ---------- */
.v3-videos{background:radial-gradient(120% 90% at 85% 0%,#2a5239 0%,var(--v3-forest) 55%)!important}
.v3-videos-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:36px}
.v3-videos-grid{display:grid;gap:20px}
.v3-vfeat{position:relative;display:block;border-radius:20px;overflow:hidden;aspect-ratio:16/10;background:#0d1a12;text-decoration:none;color:#fff;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.v3-vfeat-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .22s,transform 1.2s cubic-bezier(.2,.6,.2,1)}
.v3-vfeat.is-swap .v3-vfeat-img{opacity:0}
.v3-vfeat-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:3;border:0}
.v3-vfeat.is-playing .v3-vfeat-play,.v3-vfeat.is-playing .v3-vfeat-cta,.v3-vfeat.is-playing .v3-vfeat-shade,.v3-vfeat.is-playing .v3-vfeat-cap{display:none}
.v3-vfeat.is-playing{cursor:default}
.v3-vfeat:hover .v3-vfeat-img{transform:scale(1.04)}
.v3-vfeat-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,16,11,.88) 0%,rgba(8,16,11,.2) 46%,rgba(8,16,11,.05) 100%)}
.v3-vfeat-play{position:absolute;left:50%;top:46%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:#fff;color:var(--v3-btn);padding:24px 22px 24px 28px;box-sizing:border-box;box-shadow:0 14px 40px rgba(0,0,0,.35);transition:transform .2s,background-color .2s,color .2s}
.v3-vfeat-play:before,.v3-vfeat-play:after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);animation:v3-pulse 2.6s ease-out infinite}
.v3-vfeat-play:after{animation-delay:1.3s}
.v3-vfeat:hover .v3-vfeat-play{transform:scale(1.08);background:var(--v3-btn);color:#fff}
@keyframes v3-pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.9);opacity:0}}
.v3-vfeat-cap{position:absolute;left:28px;right:150px;bottom:26px;display:flex;flex-direction:column;gap:4px;transition:opacity .22s,transform .22s}
.v3-vfeat.is-swap .v3-vfeat-cap{opacity:0;transform:translateY(6px)}
.v3-vfeat-city{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#a9e0a2}
.v3-vfeat-name{font-family:var(--v3-font);font-size:clamp(24px,2.6vw,34px);line-height:1.1;font-weight:700;letter-spacing:-.02em}
.v3-vfeat-proj{font-size:16px;color:rgba(255,255,255,.82)}
.v3-vfeat-cta{position:absolute;right:26px;bottom:28px;font-size:14px;font-weight:600;padding:10px 16px;border-radius:999px;border:1.5px solid rgba(255,255,255,.45);backdrop-filter:blur(6px);background:rgba(255,255,255,.08)}
.v3-vlist{display:flex;flex-direction:column;gap:8px}
.v3-vitem{position:relative;display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#fff;cursor:pointer;font-family:var(--v3-font);overflow:hidden;transition:background-color .2s,border-color .2s,transform .2s}
.v3-vitem:hover{background:rgba(255,255,255,.1);transform:translateX(4px)}
.v3-vitem.is-active{background:rgba(255,255,255,.12);border-color:rgba(169,224,162,.55)}
.v3-vitem-thumb{position:relative;flex:0 0 104px;height:66px;border-radius:9px;overflow:hidden;background:#0d1a12}
.v3-vitem-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.v3-vitem-play{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--v3-btn);padding:6px 5px 6px 7px;box-sizing:border-box}
.v3-vitem-text{display:flex;flex-direction:column;min-width:0}
.v3-vitem-name{font-size:15.5px;font-weight:700;line-height:1.25}
.v3-vitem-proj{font-size:13.5px;color:rgba(255,255,255,.8);line-height:1.35}
.v3-vitem-city{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:3px;font-weight:600}
.v3-vitem-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:#8fd487;transform:scaleX(0);transform-origin:left}
.v3-videos.is-auto .v3-vitem.is-active .v3-vitem-bar{animation:v3-bar 6s linear forwards}
@keyframes v3-bar{to{transform:scaleX(1)}}
@media(min-width:1024px){.v3-videos-grid{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:28px;align-items:stretch}.v3-vlist{justify-content:space-between}.v3-vfeat{aspect-ratio:auto;min-height:470px}}
@media(max-width:639px){.v3-vfeat-play{top:36%}.v3-vfeat-cta{display:none}.v3-vfeat-cap{left:18px;right:18px;bottom:18px}.v3-vfeat-play{width:64px;height:64px;margin:-32px 0 0 -32px;padding:18px 16px 18px 21px}.v3-vitem-thumb{flex-basis:88px;height:56px}}

/* ---------- process ---------- */
.v3-proc-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:56px}
.v3-proc-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.v3-proc-track{list-style:none;margin:0;padding:0;display:grid;gap:44px;position:relative}
.v3-step{position:relative;padding-top:34px;opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}
.v3-proc.is-in .v3-step{opacity:1;transform:none}
.v3-step:nth-child(2){transition-delay:.25s}.v3-step:nth-child(3){transition-delay:.5s}
.v3-step-node{position:absolute;left:0;top:-7px;width:15px;height:15px;border-radius:50%;background:var(--v3-paper);border:2px solid #cfd6cf;transition:background-color .4s,border-color .4s,box-shadow .4s}
.v3-proc.is-in .v3-step-node{background:var(--v3-btn);border-color:var(--v3-btn);box-shadow:0 0 0 6px rgba(58,134,53,.14)}
.v3-proc.is-in .v3-step:nth-child(1) .v3-step-node{transition-delay:.15s}
.v3-proc.is-in .v3-step:nth-child(2) .v3-step-node{transition-delay:.65s}
.v3-proc.is-in .v3-step:nth-child(3) .v3-step-node{transition-delay:1.15s}
.v3-step-num{display:block;font-family:var(--v3-font);font-size:clamp(84px,9vw,132px);line-height:.86;font-weight:700;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(30,61,42,.3);margin:0 0 18px -4px;transition:color .5s,-webkit-text-stroke-color .5s}
.v3-step:hover .v3-step-num{color:var(--v3-btn);-webkit-text-stroke-color:var(--v3-btn)}
.v3-step h3{font-family:var(--v3-font);font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--v3-forest);margin:0}
.v3-step p{font-size:15.5px;line-height:1.65;color:var(--v3-muted);margin:12px 0 0;max-width:360px}
.v3-step ul{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.v3-step ul li{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--v3-ink)}
.v3-step ul li:before{content:"";width:18px;height:1.5px;background:var(--v3-btn);flex-shrink:0}
@media(min-width:900px){
  .v3-proc-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px}
  .v3-proc-track:before,.v3-proc-track:after{content:"";position:absolute;left:0;right:0;top:0;height:1.5px;background:#d9ded8}
  .v3-proc-track:after{background:var(--v3-btn);transform:scaleX(0);transform-origin:left;transition:transform 1.5s cubic-bezier(.4,0,.2,1) .1s}
  .v3-proc.is-in .v3-proc-track:after{transform:scaleX(1)}
  .v3-step-node{z-index:1}
}
@media(max-width:899px){.v3-step{padding-top:0}.v3-step-node{display:none}.v3-proc-head{margin-bottom:36px}}

/* ---------- meet the team ---------- */
.v3-team-head{display:grid;gap:8px 64px;margin-bottom:34px;align-items:end}
.v3-team-head .v3-lead{font-size:16px!important;max-width:none}
@media(min-width:1024px){.v3-team-head{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.v3-team-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 30px;padding:2px 16px}
.v3-team-tabs::-webkit-scrollbar{display:none}
.v3-team-tabs button{flex-shrink:0;font:600 14px/1 var(--v3-font);padding:11px 16px;border-radius:999px;border:1px solid var(--v3-line);background:#fff;color:var(--v3-forest);cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.v3-team-tabs button i{font-style:normal;font-weight:600;font-size:12px;color:var(--v3-muted);margin-left:5px;transition:color .18s}
.v3-team-tabs button:hover{border-color:var(--v3-forest)}
.v3-team-tabs button.is-active{background:var(--v3-forest);border-color:var(--v3-forest);color:#fff}
.v3-team-tabs button.is-active i{color:#a9e0a2}
.v3-team-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}
.v3-team-bar .v3-team-tabs{margin:0;padding:2px 0;flex:1;min-width:0}
.v3-team-arrows{display:none;gap:8px;flex-shrink:0}
@media(min-width:900px){.v3-team-arrows{display:flex}}
.v3-team-arrows button{width:46px;height:46px;border-radius:50%;border:1px solid var(--v3-line);background:#fff;color:var(--v3-forest);font-size:18px;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.v3-team-arrows button:hover{background:var(--v3-forest);border-color:var(--v3-forest);color:#fff}
.v3-team-viewport{cursor:grab;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.v3-team-viewport::-webkit-scrollbar{display:none}
.v3-team-viewport.is-drag{cursor:grabbing;scroll-snap-type:none}.v3-team-viewport.is-drag .v3-member-card{pointer-events:none}
.v3-team-row{list-style:none;margin:0;padding:6px 0!important;display:flex;gap:22px;width:max-content}
.v3-member{flex:0 0 auto;width:calc((min(100vw - 32px,1216px) - 4*22px)/5);scroll-snap-align:start;opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s;transition-delay:calc(min(var(--i),5)*70ms)}
.v3-team.is-in .v3-member{opacity:1;transform:none}
.v3-member.is-hidden{display:none}
.v3-member.is-pop{animation:v3-pop .45s both;animation-delay:calc(var(--j,0)*45ms)}
@keyframes v3-pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.v3-member-card{display:flex;flex-direction:column;text-decoration:none;color:var(--v3-ink);font-family:var(--v3-font)}
.v3-member-pic{position:relative;display:block;aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#e9ece8;margin-bottom:14px;isolation:isolate}
.v3-member-pic img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transition:transform .8s cubic-bezier(.2,.6,.2,1),filter .4s}
.v3-member-pic.is-mono{background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%)}
.v3-member-mono{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(40px,4.4vw,60px);font-weight:700;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px rgba(169,224,162,.75);transition:opacity .35s,transform .5s}
/* experience panel: slides up over the photo on hover / keyboard focus */
.v3-xp{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:16px 14px 14px;color:#fff;
  background:linear-gradient(180deg,rgba(23,48,33,.15) 0%,rgba(23,48,33,.88) 38%,rgba(20,40,28,.97) 100%);opacity:0;transform:translateY(16px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
.v3-xp-focus{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#a9e0a2;line-height:1.35}
.v3-xp-stat{display:flex;align-items:baseline;gap:8px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.18)}
.v3-xp-stat b{font-size:38px;line-height:.95;font-weight:700;letter-spacing:-.03em}
.v3-xp-stat small{font-size:12.5px;line-height:1.3;font-weight:600;color:rgba(255,255,255,.82)}
.v3-xp ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.v3-xp li{position:relative;padding-left:16px;font-size:13px;line-height:1.4;color:rgba(255,255,255,.93)}
.v3-xp li:before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--v3-btn);box-shadow:0 0 0 3px rgba(80,167,71,.25)}
.v3-xp li{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .35s}
.v3-xp-cta{display:flex;justify-content:space-between;align-items:center;margin-top:2px;padding:10px 12px;border-radius:11px;background:#fff;color:var(--v3-forest);font-size:13.5px;font-weight:700}
.v3-xp-cta i{font-style:normal;width:24px;height:24px;border-radius:50%;background:var(--v3-btn);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;transition:transform .25s}
.v3-member-card:hover .v3-xp,.v3-member-card:focus-visible .v3-xp{opacity:1;transform:none}
.v3-member-card:hover .v3-xp li,.v3-member-card:focus-visible .v3-xp li{opacity:1;transform:none}
.v3-member-card:hover .v3-xp li:nth-child(2),.v3-member-card:focus-visible .v3-xp li:nth-child(2){transition-delay:.06s}
.v3-member-card:hover .v3-xp li:nth-child(3),.v3-member-card:focus-visible .v3-xp li:nth-child(3){transition-delay:.12s}
.v3-member-card:hover .v3-xp-cta i{transform:translateX(3px)}
.v3-member-card:hover .v3-member-pic img{transform:scale(1.06);filter:saturate(.9)}
.v3-member-card:hover .v3-member-mono{opacity:.25;transform:scale(1.08)}
.v3-member-card:focus-visible{outline:none}
.v3-member-card:focus-visible .v3-member-pic{outline:3px solid rgba(80,167,71,.6);outline-offset:3px}
.v3-member-group{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--v3-btn);margin-bottom:5px}
.v3-member-name{font-size:18px;line-height:1.2;font-weight:700;letter-spacing:-.015em;color:var(--v3-forest);transition:color .2s}
.v3-member-card:hover .v3-member-name{color:var(--v3-btn)}
.v3-member-title{font-size:14.5px;line-height:1.4;color:var(--v3-muted);margin-top:3px}
.v3-member-teaser{display:inline-flex;align-self:flex-start;align-items:center;gap:7px;margin-top:10px;padding:6px 11px;border-radius:999px;background:#eef6ec;color:var(--v3-forest);font-size:12.5px;font-weight:600;line-height:1.25}
.v3-member-teaser:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--v3-btn);flex-shrink:0}
/* touch screens: no hover, so the experience teaser + tap-through carry it */
@media(hover:none){.v3-xp{display:none}}
.v3-team-progress{height:3px;border-radius:3px;background:var(--v3-line);margin-top:26px;overflow:hidden}
.v3-team-progress span{display:block;height:100%;width:0;background:var(--v3-btn);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}
/* desktop: exactly five portraits across the content width, the rest scroll */
.v3-team-viewport{position:relative}
@media(min-width:1100px){.v3-team-viewport{max-width:1216px;margin:0 auto;container-type:inline-size;scroll-padding-left:0}.v3-team-row{padding-left:0;padding-right:0}.v3-member{width:calc((100cqw - 88px)/5)}}
@media(max-width:1023px){.v3-member{width:calc((100vw - 32px - 2*22px)/3)}}
@media(max-width:699px){.v3-member{width:68vw}.v3-member-name{font-size:17px}.v3-member-title{font-size:13.5px}.v3-team-row{gap:14px}}
@media(prefers-reduced-motion:reduce){.v3-member{opacity:1;transform:none;transition:none}.v3-member.is-pop{animation:none}.v3-xp,.v3-xp li{transition:none}}


/* ---------- google reviews ---------- */
.v3-rv-head{display:grid;gap:28px;align-items:end;margin-bottom:36px}
@media(min-width:1024px){.v3-rv-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px}}
.v3-rv-score{border:1px solid var(--v3-line);border-radius:18px;padding:20px 22px;background:#fbfcfa}
.v3-rv-big{display:flex;align-items:center;gap:12px}
.v3-rv-big b{font-size:46px;line-height:1;font-weight:700;letter-spacing:-.03em;color:var(--v3-forest)}
.v3-rv-big .v3-rv-stars{font-size:20px}
.v3-rv-score p{margin:6px 0 14px;font-size:14.5px;color:var(--v3-muted)}
.v3-rv-score p strong{color:var(--v3-forest)}
.v3-rv-locs{display:flex;flex-wrap:wrap;gap:8px}
.v3-rv-loc{display:flex;flex-direction:column;gap:2px;padding:9px 13px;border:1px solid var(--v3-line);border-radius:12px;background:#fff;text-decoration:none;color:var(--v3-ink);transition:border-color .18s,transform .18s}
.v3-rv-loc:hover{border-color:var(--v3-btn);transform:translateY(-2px)}
.v3-rv-loc b{font-size:13.5px;color:var(--v3-forest)}.v3-rv-loc span{font-size:12.5px;color:var(--v3-muted)}
.v3-rv-stars{color:#f5b301;letter-spacing:2px}
.v3-rv-g{display:inline-flex}
.v3-rv-viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.v3-rv-track{list-style:none;margin:0;padding:8px 0 14px;display:flex;gap:20px;width:max-content;animation:v3-rv-scroll var(--rv-dur,80s) linear infinite}
.v3-rv-viewport:hover .v3-rv-track,.v3-rv-viewport:focus-within .v3-rv-track,.v3-rv-track.is-paused{animation-play-state:paused}
@keyframes v3-rv-scroll{to{transform:translateX(calc(-50% - 10px))}}
.v3-rv{flex:0 0 auto;width:min(360px,82vw)}
.v3-rv article{height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;padding:22px 22px 18px;border:1px solid var(--v3-line);border-radius:18px;background:#fff;transition:box-shadow .25s,transform .25s,border-color .25s}
.v3-rv article:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(23,48,33,.12);border-color:#cfe3cb}
.v3-rv-top{display:flex;justify-content:space-between;align-items:center}
.v3-rv-top .v3-rv-stars{font-size:17px}
.v3-rv-text{margin:0;font-size:15px;line-height:1.6;color:#2f3a32;flex:1}
.v3-rv-text.is-long{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.v3-rv-text.is-open{display:block;-webkit-line-clamp:unset}
.v3-rv-more{align-self:flex-start;margin-top:-6px;background:none;border:0;padding:0;font:700 13.5px var(--v3-font);color:var(--v3-btn);cursor:pointer}
.v3-rv-by{display:flex;align-items:center;gap:11px;padding-top:14px;border-top:1px solid var(--v3-line)}
.v3-rv-by>span{display:flex;flex-direction:column;min-width:0;flex:1}
.v3-rv-by b{font-size:14.5px;color:var(--v3-forest);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v3-rv-by small{font-size:12.5px;color:var(--v3-muted)}
.v3-rv-av{width:38px;height:38px;border-radius:50%;object-fit:cover;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#e4efe2;color:var(--v3-forest);font-weight:700;font-size:13px}
.v3-rv-src{font-size:12px;font-weight:600;color:var(--v3-muted);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.v3-rv-src:hover{color:var(--v3-btn)}
@media(prefers-reduced-motion:reduce){.v3-rv-viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.v3-rv-track{animation:none}.v3-rv[aria-hidden]{display:none}}

/* ---------- service area (above footer) ---------- */
/* compact: reads as the first row of the footer, same paper background */
.v3-area{background:#fcfaf8;padding-top:40px;padding-bottom:0}
.v3-area-inner{display:grid;gap:22px;padding-bottom:32px;border-bottom:1px solid var(--v3-line)}
.v3-area-intro .v3-eyebrow{margin-bottom:10px!important}
.v3-area-intro h2{font-family:var(--v3-font);font-size:19px;line-height:1.3;font-weight:700;letter-spacing:-.01em;color:var(--v3-forest);margin:0;text-wrap:balance}
.v3-area-intro p{font-size:14px;line-height:1.55;color:var(--v3-muted);margin:8px 0 0}
.v3-area-rows{display:grid;gap:16px;align-content:center}
.v3-area-row{display:grid;gap:6px}
.v3-area-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--v3-forest);padding-top:3px}
.v3-area-row ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0}
.v3-area-row li{display:inline-flex;align-items:center;font-size:14.5px}
.v3-area-row li:not(:last-child):after{content:"";width:3px;height:3px;border-radius:50%;background:#b9c0b8;margin:0 11px}
.v3-area-row a{color:#3b443d;text-decoration:none;padding:3px 0;background:linear-gradient(var(--v3-btn),var(--v3-btn)) left bottom/0 1.5px no-repeat;transition:color .15s,background-size .25s}
.v3-area-row a:hover{color:var(--v3-btn);background-size:100% 1.5px}
.v3-area+footer{padding-top:40px!important}
@media(min-width:1024px){.v3-area-inner{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:64px;align-items:center}.v3-area-row{grid-template-columns:190px minmax(0,1fr);gap:16px}}

/* ---------- closing ---------- */
.v3-close{position:relative;overflow:hidden;color:#fff;padding:0 16px 64px}
.v3-close-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:v3-zoom 26s ease-in-out infinite alternate}
@keyframes v3-zoom{from{transform:scale(1.02)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
.v3-close-shade{position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,46,31,.96) 0%,rgba(22,46,31,.9) 45%,rgba(22,46,31,.62) 100%)}
.v3-ticker{position:relative;margin:0 -16px 56px;border-bottom:1px solid rgba(255,255,255,.14);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.v3-ticker-track{display:flex;width:max-content;animation:v3-ticker 48s linear infinite}
.v3-ticker-track span{display:inline-flex;align-items:center;gap:28px;padding:16px 0 16px 28px;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);white-space:nowrap}
.v3-ticker-track span:after{content:"";width:6px;height:6px;border-radius:50%;background:#8fd487}
@keyframes v3-ticker{to{transform:translateX(-50%)}}
.v3-close-inner{position:relative;max-width:1216px;margin:0 auto;display:grid;gap:40px;align-items:center}
.v3-close-h{font-family:var(--v3-font);font-size:clamp(34px,4.4vw,56px);line-height:1.04;letter-spacing:-.025em;font-weight:700;color:#fff;margin:0;text-wrap:balance}
.v3-close p.v3-lead{color:rgba(255,255,255,.84)!important;max-width:540px}
.v3-next-label{margin-top:34px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#a9e0a2}
.v3-next{list-style:none;margin:14px 0 0;padding:0;max-width:520px}
.v3-next li{display:flex;gap:16px;align-items:flex-start;padding:14px 0;border-top:1px solid rgba(255,255,255,.14);font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.78);opacity:0;transform:translateX(-16px);transition:opacity .6s,transform .6s}
.v3-next li b{display:block;color:#fff;font-size:16px;font-weight:700}
.v3-next-n{flex:0 0 30px;height:30px;border-radius:50%;border:1.5px solid #8fd487;color:#a9e0a2;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.v3-close.is-in .v3-next li{opacity:1;transform:none}
.v3-close.is-in .v3-next li:nth-child(2){transition-delay:.18s}.v3-close.is-in .v3-next li:nth-child(3){transition-delay:.36s}
.v3-close-call{margin-top:26px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;font-size:15px;color:rgba(255,255,255,.8)}
.v3-close-phone{font-size:30px;font-weight:700;letter-spacing:-.02em;color:#fff;text-decoration:none}
.v3-close-phone:hover{color:#a9e0a2}
.v3-close-meta{margin-top:10px;font-size:13px;color:rgba(255,255,255,.62);line-height:1.6}
.v3-close .v3-form{opacity:0;transform:translateY(26px);transition:opacity .8s .15s,transform .8s .15s cubic-bezier(.2,.7,.2,1)}
.v3-close.is-in .v3-form{opacity:1;transform:none}
@media(min-width:640px){.v3-close{padding:0 24px 80px}.v3-ticker{margin:0 -24px 64px}}
@media(min-width:1024px){.v3-close{padding:0 32px 96px}.v3-ticker{margin:0 -32px 80px}.v3-close-inner{grid-template-columns:minmax(0,1fr) 480px;gap:72px}}

/* ---------- floating cost calculators ---------- */
.v3-float{--v3-float-w:112px;position:fixed;right:10px;bottom:18px;z-index:9997;display:none;flex-direction:column;align-items:flex-end;gap:7px;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .25s,transform .25s;font-family:var(--v3-font)}
.v3-float.is-on{opacity:1;transform:none;pointer-events:auto}
.v3-float-label{opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--v3-forest);background:rgba(255,255,255,.94);padding:5px 10px;border-radius:999px;box-shadow:0 2px 10px rgba(20,32,26,.1)}
.v3-float a{display:flex;align-items:center;justify-content:space-between;min-width:var(--v3-float-w);box-sizing:border-box;gap:7px;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--v3-line);box-shadow:0 6px 20px rgba(20,32,26,.14);text-decoration:none;font-size:12.5px;color:var(--v3-forest);transition:background-color .18s,color .18s,transform .18s,border-color .18s}
.v3-float a b{font-weight:700}
.v3-float a i{font-style:normal;color:rgba(255,255,255,.78);font-size:12px;max-width:0;overflow:hidden;white-space:nowrap;margin-left:-7px;transition:max-width .25s,margin .25s}
.v3-float a:hover i{max-width:90px;margin-left:0}
.v3-float a:after{content:"→";color:var(--v3-btn);transition:color .18s,transform .18s}
.v3-float a:hover{background:var(--v3-forest);border-color:var(--v3-forest);color:#fff;transform:translateX(-5px)}
.v3-float a:hover:after{color:#a9e0a2;transform:translateX(3px)}
.v3-float-x{position:absolute;right:-6px;top:-10px;width:22px;height:22px;border-radius:50%;border:1px solid var(--v3-line);background:#fff;color:var(--v3-muted);font-size:14px;line-height:1;cursor:pointer;padding:0;opacity:0;transition:opacity .15s}
.v3-float:hover .v3-float-label{opacity:1;transform:none}
.v3-float:hover .v3-float-x,.v3-float-x:focus-visible{opacity:1}
@media(min-width:1024px){.v3-float{display:flex}}
@media(prefers-reduced-motion:reduce){
  .v3-close-bg,.v3-ticker-track,.v3-vfeat-play:before,.v3-vfeat-play:after,.v3-videos.is-auto .v3-vitem.is-active .v3-vitem-bar{animation:none}
  .v3-step,.v3-next li,.v3-close .v3-form{opacity:1;transform:none;transition:none}
  .v3-proc-track:after{transform:scaleX(1);transition:none}
}

/* ---------- mobile action bar ---------- */
.v3-bar{position:fixed;left:0;right:0;bottom:0;z-index:9998;display:none;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--v3-line);box-shadow:0 -6px 24px rgba(0,0,0,.08);transform:translateY(110%);transition:transform .2s}
.v3-bar.is-on{transform:none}
.v3-bar a{flex:1;display:flex;align-items:center;justify-content:center;padding:13px 10px;border-radius:999px;font:600 15px/1 var(--v3-font);text-decoration:none}
.v3-bar-call{border:1.5px solid var(--v3-forest);color:var(--v3-forest)}
@media(max-width:1023px){.v3-bar{display:flex}body{padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){.v3-bar,.v3-btn,.v3-faq summary:after{transition:none}}

/* ===== inside pages (service / city template) ===== */
.v3i-hero .v3-hero-inner{padding-top:40px}
.v3i-hero .v3-hero-h{font-size:clamp(34px,4.4vw,56px)}
.v3i-hero .v3-hero-call{padding-left:0}
@media(min-width:1024px){.v3i-hero .v3-hero-inner{padding:60px 32px 60px;min-height:0}
.v3i-hero .v3-hero-shade{background:linear-gradient(90deg,rgba(14,28,19,.72) 0%,rgba(14,28,19,.5) 34%,rgba(14,28,19,.12) 60%,rgba(14,28,19,0) 76%)}}
.v3i-close .v3-close-h{font-size:clamp(27px,3vw,40px)!important;line-height:1.14!important}
.v3i-proof{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:26px;max-width:540px}
.v3i-proof a{display:flex;align-items:center;gap:11px;padding:7px 12px 7px 7px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;text-decoration:none;transition:background-color .2s,transform .2s,border-color .2s}
.v3i-proof a:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
.v3i-proof-pic{position:relative;width:52px;height:52px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#1a1a1a}
.v3i-proof-pic img{width:100%;height:100%;object-fit:cover;display:block}
.v3i-proof-pic:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.28) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23fff'/%3E%3C/svg%3E") center/22px no-repeat}
.v3i-proof b{display:block;font-size:13px;line-height:1.25;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v3i-proof small{display:block;font-size:11.5px;color:rgba(255,255,255,.75);margin-top:2px}
@media(max-width:479px){.v3i-proof{grid-template-columns:1fr}}
.v3i-body .content-prose h2{color:var(--v3-forest);letter-spacing:-.02em}
.v3i-body .content-prose h2:first-child,.v3i-body .content-prose>div>h2:first-child{margin-top:0}
.v3i-spec{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1),0 0 0 1px #f3f4f6;font-family:var(--v3-font);transition:box-shadow .25s,transform .25s}
.v3i-spec:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(20,32,26,.04),0 22px 48px rgba(20,32,26,.12),0 0 0 1px #cfe3cb}
.v3i-spec-pic{display:block;overflow:hidden;aspect-ratio:5/4;background:#eef6ec}
.v3i-spec-pic img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transition:transform .5s}
.v3i-spec:hover .v3i-spec-pic img{transform:scale(1.04)}
.v3i-spec-body{padding:20px 22px 22px}
.v3i-spec .v3-eyebrow{margin-bottom:9px!important;line-height:1.35!important}
.v3i-spec-name{margin:0}
.v3i-spec-name a{display:block;font-size:22px;line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--v3-forest);text-decoration:none}
.v3i-spec-name a:hover{color:var(--v3-btn)}
.v3i-spec-name span{display:block;margin-top:3px;font-size:14.5px;color:var(--v3-muted);font-weight:600}
.v3i-spec-desc{margin:12px 0 0;font-size:14.5px;line-height:1.6;color:#3b443d}
.v3i-spec-points{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}
.v3i-spec-points li{position:relative;padding-left:18px;font-size:13.5px;font-weight:600;color:var(--v3-forest)}
.v3i-spec-points li:before{content:"";position:absolute;left:0;top:.45em;width:8px;height:8px;border-radius:50%;background:var(--v3-green)}
.v3i-spec-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:18px}
.v3i-spec-links .v3-btn{padding:12px 20px;font-size:14.5px}
.v3i-spec-bio{color:var(--v3-btn);font-weight:600;font-size:14.5px;text-decoration:none}
.v3i-spec-bio i{display:inline-block;font-style:normal;transition:transform .2s}
.v3i-spec-bio:hover i{transform:translateX(4px)}
@media(min-width:640px) and (max-width:1023px){.v3i-spec{display:grid;grid-template-columns:240px minmax(0,1fr)}.v3i-spec-pic{aspect-ratio:auto;height:100%}}
.v3i-faq-wrap{max-width:880px;margin:0 auto}
.v3i-faq-wrap>.v3-h2{margin-bottom:28px!important}
.v3i-faq-wrap .v3-faq p{max-width:none}
.v3-close-copy .v3-close-h{text-wrap:balance}
/* ----- long-form content blocks (jcity-*) ----- */
.v3i-tl{list-style:none;margin:26px 0 10px;padding:0;position:relative;display:grid;gap:18px;counter-reset:tl}
.v3i-tl:before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:2px;background:linear-gradient(180deg,var(--v3-green),#cfe3cb)}
.v3i-tl li{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:18px;align-items:center;margin:0;padding:0}
.v3i-tl-n{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;background:#fff;border:2px solid var(--v3-green);color:var(--v3-forest);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;transition:background-color .25s,color .25s,transform .25s}
.v3i-tl-card{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--v3-line);border-radius:18px;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3i-tl-card img{width:100%;height:170px;object-fit:cover;display:block;margin:0!important;border-radius:0!important;transition:transform .6s}
.v3i-tl-txt{padding:16px 18px 18px;display:flex;flex-direction:column;justify-content:center}
.v3i-tl-txt .t{display:block;font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--v3-forest)}
.v3i-tl-txt .d{display:block;font-size:15.5px;line-height:1.6;color:#3b443d;margin-top:6px}
.v3i-tl li:hover .v3i-tl-n{background:var(--v3-btn);border-color:var(--v3-btn);color:#fff;transform:scale(1.08)}
.v3i-tl li:hover .v3i-tl-card{transform:translateX(4px);border-color:#cfe3cb;box-shadow:0 18px 40px rgba(20,32,26,.1)}
.v3i-tl li:hover img{transform:scale(1.05)}
@media(min-width:640px){.v3i-tl-card{grid-template-columns:230px minmax(0,1fr)}.v3i-tl-card img{height:100%;min-height:150px}.v3i-tl-txt{padding:20px 24px}}
.v3i-projs{position:relative;margin:22px 0 10px!important}
.v3i-projs>div{display:flex!important;gap:16px!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 18px;-webkit-overflow-scrolling:touch}
.v3i-projs>div::-webkit-scrollbar{display:none}
.v3i-projs>div>a{flex:0 0 82%;scroll-snap-align:start;border-radius:18px!important;border-color:var(--v3-line)!important}
@media(min-width:640px){.v3i-projs>div>a{flex-basis:calc((100% - 16px)/2)}}
@media(min-width:900px){.v3i-projs>div>a{flex-basis:calc((100% - 32px)/3)}}
.v3i-projs>div>a img{height:190px!important;transition:transform .6s}
.v3i-projs>div>a:hover img{transform:scale(1.05)}
.v3i-projs>div>a .ttl{font-size:16px!important;color:var(--v3-forest)!important}
.v3i-projs>div>a .see{color:var(--v3-btn)!important;font-size:14px!important}
.v3i-projs-nav{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.v3i-projs-nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--v3-line);background:#fff;color:var(--v3-forest);font-size:17px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,opacity .2s}
.v3i-projs-nav button:hover:not(:disabled){background:var(--v3-forest);border-color:var(--v3-forest);color:#fff}
.v3i-projs-nav button:disabled{opacity:.35;cursor:default}
.v3i-projs.is-static .v3i-projs-nav{display:none}
.v3i-trust{position:relative;overflow:hidden;background:linear-gradient(150deg,#2a5239 0%,var(--v3-forest) 62%,#17301f 100%)!important;border:0!important;border-radius:24px!important;padding:30px 24px!important;margin:36px 0!important;box-shadow:0 24px 60px rgba(20,32,26,.2)}
.v3i-trust:before{content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(143,212,135,.28),rgba(143,212,135,0) 70%)}
.v3i-body .content-prose .v3i-trust h2{position:relative;color:#fff!important;font-size:clamp(24px,2.6vw,32px)!important;margin:0 0 4px!important}
.v3i-trust h2:before{content:"The JDI standard";display:block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#8fd487;margin-bottom:10px}
.v3i-trust ul{position:relative;grid-template-columns:1fr!important;gap:10px!important;margin-top:20px!important}
@media(min-width:640px){.v3i-trust{padding:38px 36px!important}.v3i-trust ul{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(min-width:1100px){.v3i-trust ul{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.v3i-trust li{margin:0!important;padding:15px 16px 15px 50px!important;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff!important;font-size:15px!important;font-weight:600;line-height:1.45!important;transition:background-color .25s,transform .25s,border-color .25s}
.v3i-trust li:hover{background:rgba(255,255,255,.15);border-color:rgba(143,212,135,.55);transform:translateY(-2px)}
.v3i-trust li::before{left:14px!important;top:15px!important;width:24px!important;height:24px!important;border:0!important;border-radius:50%;transform:none!important;background:var(--v3-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.3 8.3l2.4 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.v3i-cta{background:#fff!important;border:1px solid #cfe3cb;border-left:6px solid var(--v3-green);border-radius:22px!important;padding:26px 24px!important;margin:36px 0 10px!important;box-shadow:0 14px 36px rgba(20,32,26,.07);display:grid;gap:18px;align-items:center}
@media(min-width:800px){.v3i-cta{grid-template-columns:minmax(0,1fr) auto;padding:30px 34px!important;gap:30px}}
.v3i-body .content-prose .v3i-cta h2{color:var(--v3-forest)!important;font-size:clamp(22px,2.4vw,28px)!important;margin:0 0 8px!important}
.v3i-cta p{color:#3b443d!important;font-size:16px!important;line-height:1.6!important}
.v3i-cta-btns{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.v3i-cta-btns .v3-btn{white-space:nowrap;text-decoration:none!important;color:#fff!important}
.v3i-cta-btns .v3i-cta-call{text-align:center;font-weight:700;color:var(--v3-forest)!important;text-decoration:none!important;font-size:15px}
.v3i-cta-btns .v3i-cta-call:hover{color:var(--v3-btn)!important}
.v3i-why{position:relative;background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 65%,#17301f 100%)!important;border-radius:22px!important;box-shadow:0 22px 54px rgba(20,32,26,.24)!important;--tw-ring-shadow:0 0 #0000!important}
.v3i-why:before{content:"";position:absolute;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(143,212,135,.3),rgba(143,212,135,0) 70%);pointer-events:none}
.v3i-why>div>p{color:#8fd487!important}
.v3i-why h3{color:#fff!important;font-size:24px!important;line-height:1.15!important;letter-spacing:-.02em!important}
.v3i-why ul{position:relative}
.v3i-why li{border:0!important;padding:14px 14px 14px 52px!important;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)!important;transition:background-color .25s,transform .25s,border-color .25s}
.v3i-why ul>li+li{margin-top:10px!important}
.v3i-why li:hover{background:rgba(255,255,255,.14);border-color:rgba(143,212,135,.55)!important;transform:translateX(3px)}
.v3i-why li:before{content:"";position:absolute;left:14px;top:15px;width:26px;height:26px;border-radius:50%;background:var(--v3-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.3 8.3l2.4 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/19px no-repeat}
.v3i-why li h4{color:#fff!important;font-size:16.5px!important}
.v3i-why li p{color:rgba(255,255,255,.76)!important}
/* Tailwind class the mirror's compiled CSS lacks (calculator hero text rendered dark on dark) */
.text-white\/90{color:rgba(255,255,255,.9)!important}
/* ===== one type family everywhere: older sections set serif / Wix Madefor inline or in their own stylesheets ===== */
[style*="ui-serif"],[style*="Georgia"],[style*="Wix Madefor"],.jdiv2,.jdiv2 *,.jdir-section-css,.jdir-section-css *,#jdi-reviews-mount,#jdi-reviews-mount *,
#jdi-calc,#jdi-calc *,.fin,.fin *,.font-display,.content-prose,.content-prose *,.blog-prose,.blog-prose *,.prose,.prose *{font-family:var(--v3-font)!important}
h1[style*="ui-serif"],h2[style*="ui-serif"],h3[style*="ui-serif"],#jdi-calc h1,#jdi-calc h2,#jdi-calc h3{font-weight:700!important;letter-spacing:-.02em!important}
#jdi-calc h1,#jdi-calc h2,#jdi-calc h3,.v3k-faq h2{color:var(--v3-forest)!important}
/* dark call-to-action bands keep light headings and take the brand green instead of flat black */
.v3k section[style*="background:#111"]:not(.v3k-hero){background:linear-gradient(150deg,#2a5239 0%,#1e3d2a 60%,#17301f 100%)!important}
.v3k section[style*="background:#111"]:not(.v3k-hero) h2{color:#fff!important}
.v3k section[style*="background:#111"]:not(.v3k-hero) a[style*="border"]{border-color:rgba(255,255,255,.5)!important;color:#fff!important}
/* pages whose hero slides under the fixed header (no top padding on the container): clear the header */
.v3-under>section:first-of-type,.v3-under>main>section:first-of-type{padding-top:112px!important}
/* ===== cost calculators ===== */
.v3k-hero{background:#101410!important}
.v3k-hero>.absolute>div{background:linear-gradient(90deg,rgba(16,34,23,.9) 0%,rgba(16,34,23,.66) 50%,rgba(16,34,23,.2) 100%)!important}
.v3k-hero>.absolute>img{opacity:.75!important}
.v3k-hero h1{font-size:clamp(36px,4.8vw,60px)!important;letter-spacing:-.025em!important;line-height:1.04!important}
.v3k-hero .v3-crumbs{margin-bottom:20px}
.v3k-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.v3k-tabs a{padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);color:#fff;font:600 14px var(--v3-font);text-decoration:none;transition:background-color .2s,border-color .2s}
.v3k-tabs a:hover{background:rgba(255,255,255,.12)}
.v3k-tabs a.is-active{background:#fff;border-color:#fff;color:var(--v3-forest)}
.v3k #jdi-calc button,.v3k #jdi-calc [role="button"]{border-radius:14px}
.v3k details{border-color:var(--v3-line)!important}
.v3k details summary{font-size:18px!important;color:var(--v3-ink)!important}
.v3k details summary span{color:var(--v3-btn)!important}
.v3k-faq h2{font-size:clamp(28px,3.1vw,40px)!important}
/* ===== trust band + related links (every inside page) ===== */
.v3x-trust{font-family:var(--v3-font);background:#fff;border-top:1px solid var(--v3-line);padding:56px 16px}
@media(min-width:1024px){.v3x-trust{padding:80px 32px}}
.v3x-trust-in{max-width:1216px;margin:0 auto;display:grid;gap:34px}
@media(min-width:1024px){.v3x-trust-in{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:64px;align-items:start}}
.v3x-trust p.v3-lead{margin:14px 0 0;font-size:16.5px;line-height:1.6;color:var(--v3-muted)}
.v3x-trust-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:20px}
.v3x-trust-links a{font-size:14.5px;font-weight:600;color:var(--v3-btn);text-decoration:none}
.v3x-trust-links a:hover{text-decoration:underline}
.v3x-trust-grid{display:grid;gap:12px}
@media(min-width:640px){.v3x-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.v3x-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3x-trust-item{display:block;padding:18px;border-radius:16px;background:var(--v3-paper);border:1px solid var(--v3-line);text-decoration:none;color:var(--v3-ink);transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
.v3x-trust-item:hover{transform:translateY(-3px);background:#fff;border-color:#cfe3cb;box-shadow:0 16px 36px rgba(20,32,26,.09)}
.v3x-trust-item small{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3x-trust-item b{display:block;margin-top:7px;font-size:16.5px;line-height:1.3;color:var(--v3-forest)}
.v3x-trust-item span{display:block;margin-top:5px;font-size:13.5px;line-height:1.45;color:var(--v3-muted)}
.v3x-trust-item em{display:inline-block;margin-top:9px;font-style:normal;font-size:13.5px;font-weight:600;color:var(--v3-btn)}
.v3x-rel{font-family:var(--v3-font);background:var(--v3-paper);border-top:1px solid var(--v3-line);padding:52px 16px}
@media(min-width:1024px){.v3x-rel{padding:72px 32px}}
.v3x-rel-in{max-width:1216px;margin:0 auto;display:grid;gap:34px}
@media(min-width:900px){.v3x-rel-in{grid-template-columns:repeat(3,minmax(0,1fr));gap:44px}}
.v3x-rel h3{font-size:19px!important;font-weight:700!important;color:var(--v3-forest)!important;letter-spacing:-.01em;margin:0 0 14px!important}
.v3x-rel ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.v3x-rel li a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--v3-line);font-size:15px;line-height:1.4;color:var(--v3-ink);text-decoration:none;transition:color .2s,padding-left .2s}
.v3x-rel li a:after{content:"→";color:var(--v3-btn);flex-shrink:0}
.v3x-rel li a:hover{color:var(--v3-btn);padding-left:6px}
/* ===== projects index ===== */
.v3p-grid{background:var(--v3-paper)!important;padding:56px 0 72px!important;font-family:var(--v3-font)}
@media(min-width:1024px){.v3p-grid{padding:80px 0 96px!important}}
.v3p-grid .v3t-grid-head{padding:0 16px}
@media(min-width:1024px){.v3p-grid .v3t-grid-head{padding:0 32px}}
.v3p-grid .grid{gap:22px!important}
.v3p-grid .grid>a{background:#fff;border-radius:20px!important;border:1px solid var(--v3-line);box-shadow:none!important;transition:transform .3s,box-shadow .3s,border-color .3s!important}
.v3p-grid .grid>a:hover{transform:translateY(-5px);border-color:#cfe3cb;box-shadow:0 24px 54px rgba(20,32,26,.14)!important}
.v3p-grid .grid>a[hidden]{display:none}
.v3p-grid .grid>a .aspect-square{aspect-ratio:4/3!important}
.v3p-grid .grid>a h2{font-size:18px!important;color:var(--v3-forest)!important;letter-spacing:-.01em;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.v3p-grid .grid>a .p-4{padding:18px 20px 20px!important}
.v3p-grid .grid>a .p-4>span{margin-top:6px;color:var(--v3-muted)!important}
.v3p-grid .grid>a .p-4:after{content:"See the project →";display:block;margin-top:12px;font-size:14px;font-weight:600;color:var(--v3-btn);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.v3p-grid .grid>a:hover .p-4:after{opacity:1;transform:none}
@media(min-width:1024px){.v3p-grid .grid.is-all>a:first-child{grid-column:span 2;grid-row:span 2}.v3p-grid .grid.is-all>a:first-child .aspect-square{aspect-ratio:auto!important;height:calc(100% - 96px)}.v3p-grid .grid.is-all>a:first-child h2{font-size:24px!important}}
.v3p-empty{display:none;padding:40px 16px;text-align:center;color:var(--v3-muted)}
.v3-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 22px;font-size:13.5px;font-family:var(--v3-font)}
.v3-crumbs a{color:rgba(255,255,255,.78);text-decoration:none;transition:color .2s}
.v3-crumbs a:hover{color:#a9e0a2}
.v3-crumbs i{font-style:normal;color:rgba(255,255,255,.35)}
.v3-crumbs span{color:#fff;font-weight:600}
/* ===== simple pages: offers, careers, service areas, process, services, blog categories ===== */
.v3t-hero.is-solo .v3t-hero-in{grid-template-columns:minmax(0,1fr)!important}
.v3t-hero.is-solo h1{max-width:900px}
.v3t-hero.is-solo p.v3-lead{max-width:680px!important}
@media(min-width:1024px){.v3t-hero.is-solo{padding:64px 32px 72px}}
.v3s-wrap{font-family:var(--v3-font);background:var(--v3-paper)}
.v3s-wrap h2,.v3s-wrap h3{color:var(--v3-forest)!important;letter-spacing:-.01em}
.v3s-wrap .rounded-2xl,.v3s-wrap>div>div>a.rounded-2xl{border-radius:20px!important;transition:transform .3s,box-shadow .3s!important}
.v3s-wrap a.rounded-2xl:hover,.v3s-wrap .rounded-2xl.shadow-sm:hover,.v3s-wrap .rounded-2xl.shadow-md:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(20,32,26,.12)!important}
.v3s-wrap img{transition:transform .7s}
.v3s-wrap a.rounded-2xl:hover img,.v3s-wrap .rounded-2xl:hover img{transform:scale(1.04)}
/* service-area index */
.v3c-list{display:grid!important;gap:16px;margin-top:8px!important;grid-template-columns:1fr}
@media(min-width:640px){.v3c-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.v3c-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3c-list>li{width:auto!important;display:block!important;list-style:none!important;margin:0!important;padding:20px 22px!important;background:#fff;border:1px solid var(--v3-line);border-radius:18px;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3c-list>li:hover{transform:translateY(-3px);border-color:#cfe3cb;box-shadow:0 18px 40px rgba(20,32,26,.09)}
.v3c-list>li>div{display:none}
.v3c-list h3{font-size:20px!important;color:var(--v3-forest)!important;margin:0 0 10px!important;letter-spacing:-.01em}
.v3c-list ul{list-style:none!important;margin:0!important;padding:0!important;display:grid;gap:2px}
.v3c-list ul li{margin:0!important;padding:0!important;list-style:none!important}
.v3c-list ul a{display:block;padding:5px 0;font-size:14.5px;color:#3b443d;text-decoration:none;transition:color .2s,padding-left .2s}
.v3c-list ul a:hover{color:var(--v3-btn);padding-left:5px}
/* process steps */
.v3op h3{color:var(--v3-forest)!important;letter-spacing:-.02em}
.v3op .size-8{background:var(--v3-forest)!important;color:#a9e0a2!important;box-shadow:0 0 0 5px #eef6ec!important;--tw-ring-shadow:0 0 #0000!important}
.v3op .bg-gray-200{background:linear-gradient(180deg,var(--v3-green),#cfe3cb)!important}
.v3op .rounded-2xl,.v3op .rounded-xl{border-radius:20px!important}
/* blog category */
.v3bc-grid{display:grid!important;gap:22px!important;grid-template-columns:1fr!important;max-width:none!important;padding:0!important;margin:0!important;width:auto!important}
@media(min-width:640px){.v3bc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(min-width:1024px){.v3bc-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.v3bc-grid>div{width:auto!important;padding:0!important}
.v3bc-grid>div>div{margin:0!important;border-radius:20px!important;border:1px solid var(--v3-line);box-shadow:none!important;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s,border-color .3s}
.v3bc-grid>div>div:hover{transform:translateY(-4px);border-color:#cfe3cb;box-shadow:0 22px 48px rgba(20,32,26,.1)!important}
.v3bc-grid .gatsby-image-wrapper{aspect-ratio:16/10;height:auto!important}
.v3bc-grid span.block{font-size:19px!important;line-height:1.25!important;color:var(--v3-forest)!important;letter-spacing:-.01em}
.v3bc-grid .p-8{padding:20px 22px 22px!important;flex:1}
.v3bc-grid a.font-display{border-radius:999px!important;border-color:var(--v3-btn)!important;color:var(--v3-btn)!important}
.v3bc-grid a.font-display:hover{background:var(--v3-btn)!important;color:#fff!important}
/* ===== project detail pages ===== */
.v3-crumbs.is-light{max-width:1280px;margin:0 auto;padding:22px 16px 0}
@media(min-width:1024px){.v3-crumbs.is-light{padding:26px 32px 0}}
.v3-crumbs.is-light a{color:var(--v3-btn);font-weight:600}
.v3-crumbs.is-light a:hover{color:var(--v3-forest)}
.v3-crumbs.is-light i{color:#c4c9c4}
.v3-crumbs.is-light span{color:var(--v3-muted);font-weight:500}
.v3pd{font-family:var(--v3-font)}
.v3pd h1{font-size:clamp(30px,3.6vw,46px)!important;line-height:1.08!important;letter-spacing:-.025em!important;font-weight:700!important;color:var(--v3-forest)!important;margin-top:0!important}
.v3pd h1 span{font-size:.5em;vertical-align:middle;margin-left:10px;padding:5px 12px;border-radius:999px;background:#eef6ec;color:var(--v3-forest)!important;font-weight:600!important;letter-spacing:0}
.v3pd [style*="cursor:pointer"]{border-radius:16px!important}
.v3pd [style*="cursor:pointer"] img{transition:transform .7s!important}
.v3pd [style*="cursor:pointer"]:hover img{transform:scale(1.04)}
.v3pd-prose{margin-top:34px;font-size:17px;line-height:1.75;color:#333b35}
.v3pd-prose h3{font-size:clamp(22px,2.4vw,28px)!important;line-height:1.2!important;color:var(--v3-forest)!important;letter-spacing:-.02em;margin:0 0 14px!important}
.v3pd-prose p{margin:0 0 16px!important}
.v3pd-feats{margin:30px 0 8px;padding:26px 24px;border-radius:22px;background:linear-gradient(150deg,#2a5239 0%,var(--v3-forest) 62%,#17301f 100%);color:#fff;box-shadow:0 22px 54px rgba(20,32,26,.18)}
.v3pd-feats h4{margin:0 0 16px!important;font-size:22px!important;color:#fff!important;letter-spacing:-.01em}
.v3pd-feats h4:before{content:"What we built";display:block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#8fd487;margin-bottom:8px}
.v3pd-feats ul{list-style:none!important;margin:0!important;padding:0!important;display:grid;gap:10px}
@media(min-width:700px){.v3pd-feats ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v3pd-feats li{position:relative;margin:0!important;padding:13px 14px 13px 46px!important;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:15px;line-height:1.45;color:#fff;transition:background-color .25s,border-color .25s}
.v3pd-feats li:hover{background:rgba(255,255,255,.14);border-color:rgba(143,212,135,.5)}
.v3pd-feats li:before{content:"";position:absolute;left:13px;top:13px;width:22px;height:22px;border-radius:50%;background:var(--v3-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.3 8.3l2.4 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.v3pd-next{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 6px}
.v3pd-next a{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;border:1px solid var(--v3-line);background:#fff;color:var(--v3-forest);font-size:14.5px;font-weight:600;text-decoration:none;transition:border-color .2s,color .2s,transform .2s}
.v3pd-next a:hover{border-color:var(--v3-btn);color:var(--v3-btn);transform:translateY(-2px)}
.v3pd-next a.v3-btn{border:0}
.v3i-spec.is-wide{margin:30px 0 0;text-align:left}
@media(min-width:640px){.v3i-spec.is-wide{display:grid;grid-template-columns:200px minmax(0,1fr)}.v3i-spec.is-wide .v3i-spec-pic{aspect-ratio:auto;height:100%}}
.v3pd .sticky{top:148px!important}
.v3pd-more{font-family:var(--v3-font);padding-top:56px!important;padding-bottom:72px!important}
.v3pd-more>h3{font-size:clamp(24px,2.6vw,34px)!important;font-weight:700!important;color:var(--v3-forest)!important;letter-spacing:-.02em;padding-bottom:22px!important}
.v3pd-more .grid{gap:18px!important}
.v3pd-more .grid>a{border-radius:18px!important;overflow:hidden;border:1px solid var(--v3-line);box-shadow:none!important;transition:transform .3s,box-shadow .3s,border-color .3s}
.v3pd-more .grid>a:hover{transform:translateY(-4px);border-color:#cfe3cb;box-shadow:0 20px 44px rgba(20,32,26,.12)!important}
.v3pd-more .grid>a .gatsby-image-wrapper{height:170px!important;border-radius:0!important}
.v3pd-more .grid>a span.block{color:var(--v3-forest)!important;font-size:15.5px}
/* ===== project category pages ===== */
.v3pc{background:var(--v3-paper);font-family:var(--v3-font);padding:44px 0 72px}
@media(min-width:1024px){.v3pc{padding:64px 0 96px}}
.v3pc-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:28px}
.v3pc-grid{display:grid!important;gap:22px!important;grid-template-columns:1fr!important;max-width:none!important;padding:0!important;margin:0!important;width:auto!important}
@media(min-width:640px){.v3pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(min-width:1024px){.v3pc-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.v3pc-grid>div{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;flex:none!important}
.v3pc-grid>div>a{display:flex!important;flex-direction:column;height:100%;border-radius:20px!important;overflow:hidden;border:1px solid var(--v3-line);box-shadow:none!important;text-decoration:none;transition:transform .3s,box-shadow .3s,border-color .3s}
.v3pc-grid>div>a:hover{transform:translateY(-5px);border-color:#cfe3cb;box-shadow:0 24px 54px rgba(20,32,26,.14)!important}
.v3pc-grid .aspect-ratio-box{padding-top:0!important;aspect-ratio:4/3;height:auto!important;border-radius:0!important;overflow:hidden;position:relative}
.v3pc-grid .aspect-ratio-box-inside{position:absolute!important;inset:0}
.v3pc-grid img{transition:transform .7s}
.v3pc-grid>div>a:hover .gatsby-image-wrapper img{transform:scale(1.05)}
.v3pc-grid .innerpadding{padding:18px 20px 20px!important}
.v3pc-grid h2{font-size:18px!important;line-height:1.3!important;font-weight:700!important;color:var(--v3-forest)!important;letter-spacing:-.01em;margin:0 0 8px!important}
.v3pc-grid .innerpadding>div{font-size:14px!important;color:var(--v3-muted)!important}
.v3pc-grid .innerpadding:after{content:"See the project →";display:block;margin-top:12px;font-size:14px;font-weight:600;color:var(--v3-btn)}
@media(min-width:1024px){.v3pc-grid>div:first-child{grid-column:span 2;grid-row:span 2}.v3pc-grid>div:first-child .aspect-ratio-box{aspect-ratio:auto;flex:1;min-height:420px}.v3pc-grid>div:first-child h2{font-size:24px!important}}
/* ===== reviews ===== */
.v3r-quote{position:relative;background:#fff;color:var(--v3-ink);border-radius:24px;padding:30px 28px;box-shadow:0 30px 80px rgba(0,0,0,.34)}
.v3r-quote blockquote{font-size:17px!important;line-height:1.6!important;color:#27302a!important;display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical;overflow:hidden}
.v3r-who{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--v3-line)}
.v3r-who b{display:block;font-size:15px;color:var(--v3-forest)}
.v3r-who span{display:block;font-size:13px;color:var(--v3-muted);margin-top:2px}
.v3r-more{display:inline-block;margin-top:14px;font-size:14.5px;font-weight:600;color:var(--v3-btn);text-decoration:none}
.v3t-stack a.v3p-pic:after{display:none}
.v3r-quote>small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--v3-btn);margin-bottom:14px}
.v3r{font-family:var(--v3-font)}
.v3r .t-eyebrow{color:var(--v3-btn)!important;letter-spacing:.16em!important}
.v3r .t-h2{font-family:var(--v3-font)!important;color:var(--v3-forest)!important;font-size:clamp(28px,3.1vw,40px)!important;line-height:1.14!important;letter-spacing:-.02em!important;font-weight:700!important}
.v3r .jdir-platform{border-radius:18px!important;border:1px solid var(--v3-line)!important;background:#fff!important;transition:transform .25s,box-shadow .25s,border-color .25s!important}
.v3r .jdir-platform:hover{transform:translateY(-4px);border-color:#cfe3cb!important;box-shadow:0 20px 44px rgba(20,32,26,.1)!important}
.v3r .jdir-platform-logo{color:var(--v3-forest)!important}
.v3r .jdir-platform-cta{color:var(--v3-btn)!important}
.v3r-grid{max-width:1216px;margin:0 auto;padding:0 16px;display:grid;gap:20px}
@media(min-width:700px){.v3r-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.v3r-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 32px}}
.v3r-grid .jdir-card,.v3r-grid .jdir-tail{width:auto!important;min-width:0!important;max-width:none!important;flex:none!important;margin:0!important;height:100%;box-sizing:border-box;border-radius:20px!important;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3r-grid .jdir-card{display:flex;flex-direction:column}
.v3r-grid .jdir-card:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(20,32,26,.1);border-color:#cfe3cb}
.v3r-grid .jdir-quote{flex:1;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.v3r-grid .jdir-card.is-open .jdir-quote{display:block;-webkit-line-clamp:unset}
.v3r-more-btn{align-self:flex-start;margin:8px 0 0;padding:0;border:0;background:none;color:var(--v3-btn);font:600 14px var(--v3-font);cursor:pointer}
.v3r-grid .jdir-tail{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%)!important;color:#fff!important;padding:28px!important;text-decoration:none}
.v3r-grid .jdir-tail:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(20,32,26,.22)}
.v3r-grid .jdir-tail-eyebrow{color:#8fd487!important;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.v3r-grid .jdir-tail-title{color:#fff!important;font-size:26px;font-weight:700;letter-spacing:-.02em;margin:10px 0 14px;line-height:1.15}
.v3r-grid .jdir-tail-cta{color:#a9e0a2!important;font-weight:600}
/* ===== about ===== */
.v3a-facts{font-family:var(--v3-font)}
.v3a-facts-grid{display:grid;gap:14px;margin-top:34px}
@media(min-width:700px){.v3a-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.v3a-facts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3a-fact{background:#fff;border:1px solid var(--v3-line);border-radius:18px;padding:20px;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3a-fact:hover{transform:translateY(-3px);border-color:#cfe3cb;box-shadow:0 18px 40px rgba(20,32,26,.09)}
.v3a-fact small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3a-fact b{display:block;margin-top:8px;font-size:18px;line-height:1.3;color:var(--v3-forest);letter-spacing:-.01em}
.v3a-fact span{display:block;margin-top:6px;font-size:14px;line-height:1.5;color:var(--v3-muted)}
.v3a-fact a{display:inline-block;margin-top:10px;font-size:14px;font-weight:600;color:var(--v3-btn);text-decoration:none}
.v3a-fact a:hover{text-decoration:underline}
.v3a-fact.is-key{background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%);border-color:transparent}
.v3a-fact.is-key small{color:#8fd487}.v3a-fact.is-key b{color:#fff}.v3a-fact.is-key span{color:rgba(255,255,255,.8)}.v3a-fact.is-key a{color:#a9e0a2}
.v3a-build{list-style:none!important;margin:26px 0 8px!important;padding:0!important;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.v3a-build{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3a-build li{margin:0!important;padding:0!important;list-style:none!important}
.v3a-build li:before{display:none!important}
@media(min-width:760px){.v3a-build li:first-child,.v3a-build li:last-child{grid-column:span 2}}
.v3a-build a,.v3a-build .v3a-build-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:250px;border-radius:18px;overflow:hidden;background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%);color:#fff!important;text-decoration:none!important;transition:transform .3s,box-shadow .3s}
.v3a-build a:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(20,32,26,.24)}
.v3a-build img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;margin:0!important;border-radius:0!important;transition:transform .7s}
.v3a-build a:hover img{transform:scale(1.06)}
.v3a-build-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,14,.9) 0%,rgba(10,20,14,.45) 45%,rgba(10,20,14,0) 75%)}
.v3a-build-icon{position:absolute;top:18px;left:18px;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center}
.v3a-build-icon svg{width:24px;height:24px;stroke:#a9e0a2;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.v3a-build-txt{position:relative;padding:16px 16px 18px}
.v3a-build-txt b{display:block;font-size:18px;line-height:1.2;letter-spacing:-.01em;color:#fff}
.v3a-build-txt span{display:block;margin-top:6px;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.84)}
.v3a-build-txt em{display:inline-block;margin-top:10px;font-style:normal;font-size:13.5px;font-weight:600;color:#a9e0a2}
.v3a-where{display:grid;gap:16px;margin:24px 0 18px}
@media(min-width:760px){.v3a-where{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v3a-region{background:var(--v3-paper);border:1px solid var(--v3-line);border-radius:20px;padding:22px}
.v3a-region.is-home{background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%);border-color:transparent;color:#fff}
.v3a-region small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3a-region.is-home small{color:#8fd487}
.v3a-region b{display:block;font-size:22px;letter-spacing:-.02em;color:var(--v3-forest);margin:6px 0 14px}
.v3a-region.is-home b{color:#fff}
.v3a-chips{display:flex;flex-wrap:wrap;gap:8px}
.v3a-chips a,.v3a-chips span{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;font-size:14px;font-weight:600;line-height:1;text-decoration:none!important;background:#fff;border:1px solid var(--v3-line);color:var(--v3-forest)!important;transition:background-color .2s,border-color .2s,transform .2s,color .2s}
.v3a-chips a:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--v3-green)}
.v3a-chips a:hover{border-color:var(--v3-btn);transform:translateY(-2px)}
.v3a-region.is-home .v3a-chips a,.v3a-region.is-home .v3a-chips span{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff!important}
.v3a-region.is-home .v3a-chips a:hover{background:rgba(255,255,255,.2);border-color:rgba(143,212,135,.6)}
.v3a-region p{margin:14px 0 0!important;font-size:14px!important;line-height:1.5!important;color:var(--v3-muted)}
.v3a-region.is-home p{color:rgba(255,255,255,.8)}
.v3a-quote{position:relative;overflow:hidden;margin:44px 0 0;padding:32px 26px;border-radius:24px;background:linear-gradient(150deg,#3f9338 0%,#2f7a2b 55%,#24641f 100%);color:#fff;box-shadow:0 24px 60px rgba(36,100,31,.28)}
@media(min-width:760px){.v3a-quote{padding:40px 40px}}
.v3a-quote:before{content:"";position:absolute;right:-80px;top:-100px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.2),rgba(255,255,255,0) 70%)}
.v3a-story .content-prose .v3a-quote h2{position:relative;color:#fff!important;margin:0 0 12px!important;font-size:clamp(26px,3vw,36px)!important;letter-spacing:-.02em}
.v3a-story .content-prose .v3a-quote p{position:relative;color:rgba(255,255,255,.94)!important;margin:0 0 10px!important}
.v3a-story .content-prose .v3a-quote a{color:#fff!important;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.v3a-story .content-prose .v3a-quote strong{color:#fff!important}
.v3a-quote-btns{position:relative;display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.v3a-story .content-prose .v3a-quote .v3a-quote-btn{display:inline-flex;align-items:center;padding:14px 24px;border-radius:999px;background:#fff;color:#24641f!important;font-weight:700;text-decoration:none!important;transition:transform .2s,box-shadow .2s}
.v3a-story .content-prose .v3a-quote .v3a-quote-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.2)}
.v3a-story .content-prose .v3a-quote .v3a-quote-btn.is-ghost{background:transparent;color:#fff!important;border:1px solid rgba(255,255,255,.6)}
.v3a-cred{list-style:none!important;margin:26px 0 8px!important;padding:0!important;display:grid;gap:12px;counter-reset:cred}
@media(min-width:700px){.v3a-cred{grid-template-columns:repeat(2,minmax(0,1fr))}}
.v3a-cred li{counter-increment:cred;position:relative;margin:0!important;padding:18px 18px 18px 66px!important;list-style:none!important;background:var(--v3-paper);border:1px solid var(--v3-line);border-radius:16px;font-size:15px;line-height:1.55;color:#333b35;transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
.v3a-cred li:hover{transform:translateY(-2px);background:#fff;border-color:#cfe3cb;box-shadow:0 14px 32px rgba(20,32,26,.08)}
.v3a-cred li:before{content:counter(cred,decimal-leading-zero)!important;position:absolute;left:16px;top:16px;width:36px;height:36px;border-radius:50%;background:var(--v3-forest)!important;color:#a9e0a2;font-size:13px;font-weight:700;display:flex!important;align-items:center;justify-content:center;border:0!important;transform:none!important}
.v3a-cred li svg{display:none}
.v3a-cred li a{color:var(--v3-btn);font-weight:600}
.v3a-story .content-prose h2{color:var(--v3-forest);letter-spacing:-.02em}
.v3a-std{font-family:var(--v3-font)}
.v3a-std-grid{display:grid;gap:16px;margin-top:34px}
@media(min-width:700px){.v3a-std-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.v3a-std-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3a-std-card{position:relative;display:block;padding:24px 24px 22px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none;transition:background-color .25s,transform .25s,border-color .25s}
.v3a-std-card:hover{background:rgba(255,255,255,.13);border-color:rgba(143,212,135,.55);transform:translateY(-3px)}
.v3a-std-card i{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--v3-green);font-style:normal;font-weight:700;font-size:15px;margin-bottom:16px}
.v3a-std-card b{display:block;font-size:19px;letter-spacing:-.01em}
.v3a-std-card span{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.8)}
.v3a-std-card em{display:inline-block;margin-top:14px;font-style:normal;font-weight:600;font-size:14px;color:#a9e0a2}
/* ===== testimonials ===== */
.v3t-hero{position:relative;overflow:hidden;background:linear-gradient(150deg,#2a5239 0%,var(--v3-forest) 55%,#142a1b 100%);color:#fff;font-family:var(--v3-font);padding:56px 16px 64px}
.v3t-hero:before{content:"";position:absolute;right:-120px;top:-140px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(143,212,135,.25),rgba(143,212,135,0) 70%)}
.v3t-hero-in{position:relative;max-width:1216px;margin:0 auto;display:grid;gap:44px;align-items:center}
@media(min-width:1024px){.v3t-hero{padding:84px 32px 96px}.v3t-hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px}}
.v3t-hero h1{font-size:clamp(38px,5vw,64px)!important;line-height:1.03!important;letter-spacing:-.025em!important;font-weight:700!important;color:#fff!important;margin:0!important}
.v3t-hero h1 em{color:#a9e0a2!important;font-style:normal}
.v3t-hero p.v3-lead{color:rgba(255,255,255,.86)!important;font-size:18px;line-height:1.6;margin:20px 0 0;max-width:520px}
.v3t-facts{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.v3t-facts li{padding:10px 16px;border-radius:14px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);font-size:13.5px;color:rgba(255,255,255,.82)}
.v3t-facts b{display:block;font-size:22px;color:#fff;letter-spacing:-.01em}
.v3t-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.v3t-btns .v3-ghost{display:inline-flex;align-items:center;padding:14px 22px;border-radius:999px;border:1px solid rgba(255,255,255,.4);color:#fff;font-weight:600;text-decoration:none;transition:background-color .2s}
.v3t-btns .v3-ghost:hover{background:rgba(255,255,255,.12)}
.v3t-stack{position:relative;aspect-ratio:5/4;max-width:560px;width:100%;margin:0 auto}
.v3t-stack a{position:absolute;display:block;border-radius:20px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.4);border:3px solid rgba(255,255,255,.9);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.v3t-stack img{width:100%;height:100%;object-fit:cover;display:block}
.v3t-stack a:nth-child(1){inset:0 22% 30% 0;transform:rotate(-4deg)}
.v3t-stack a:nth-child(2){inset:14% 0 18% 30%;transform:rotate(3deg);z-index:2}
.v3t-stack a:nth-child(3){inset:48% 34% 0 8%;transform:rotate(-2deg);z-index:3}
.v3t-stack:hover a:nth-child(1){transform:rotate(-7deg) translate(-10px,-8px)}
.v3t-stack:hover a:nth-child(2){transform:rotate(5deg) translate(10px,-4px)}
.v3t-stack:hover a:nth-child(3){transform:rotate(-3deg) translate(-4px,10px)}
.v3t-stack a:after{content:"";position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(255,255,255,.95) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6v12l10-6z' fill='%233a8635'/%3E%3C/svg%3E") center/24px no-repeat;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.v3t-grid{background:var(--v3-paper)!important;padding:56px 16px 72px!important;font-family:var(--v3-font)}
@media(min-width:1024px){.v3t-grid{padding:80px 32px 96px!important}}
.v3t-grid-head{max-width:1216px;margin:0 auto 26px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px}
.v3t-filters{display:flex;gap:8px;flex-wrap:wrap}
.v3t-filters button{padding:10px 16px;border-radius:999px;background:#fff;border:1px solid var(--v3-line);color:var(--v3-forest);font:600 14px var(--v3-font);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.v3t-filters button:hover{border-color:var(--v3-btn);color:var(--v3-btn)}
.v3t-filters button.is-active{background:var(--v3-forest);border-color:var(--v3-forest);color:#fff}
.v3t-filters i{font-style:normal;opacity:.6;margin-left:4px;font-size:12px}
.v3t-grid>div{max-width:1216px!important}
.v3t-grid .vgrid{gap:20px!important}
.v3t-grid .vcard{border-radius:20px!important;transition:transform .3s,box-shadow .3s!important}
.v3t-grid .vcard:hover{transform:translateY(-5px)!important;box-shadow:0 26px 56px rgba(20,32,26,.22)!important}
.v3t-grid .vcard[hidden]{display:none}
.v3t-grid .vplay{transition:transform .25s,box-shadow .25s!important}
.v3t-grid .vcard:hover .vplay{box-shadow:0 0 0 12px rgba(255,255,255,.22),0 10px 30px rgba(0,0,0,.3)!important}
@media(min-width:901px){.v3t-grid .vgrid.is-all .vcard:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}
/* ===== blog ===== */
.v3b-wrap{max-width:1216px;margin:0 auto;padding:0 16px}
@media(min-width:1024px){.v3b-wrap{padding:0 32px}}
.v3b-head{background:var(--v3-paper);border-bottom:1px solid var(--v3-line);padding:36px 0 34px;font-family:var(--v3-font)}
.v3b-head nav{justify-content:flex-start!important;margin-bottom:16px!important}
.v3b-head nav a{color:var(--v3-btn)!important;font-weight:600}
.v3b-head h1{font-size:clamp(30px,3.6vw,48px)!important;line-height:1.08!important;letter-spacing:-.025em!important;color:var(--v3-forest)!important;max-width:900px;margin:0;text-wrap:balance}
.v3b-by{display:flex;flex-wrap:wrap;gap:14px 34px;margin-top:24px}
.v3b-by-item{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--v3-ink)}
.v3b-by-item img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center 15%;box-shadow:0 0 0 2px #fff,0 0 0 3px #cfe3cb;transition:transform .25s}
.v3b-by-item:hover img{transform:scale(1.07)}
.v3b-by-item small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3b-by-item b{display:block;font-size:15px;line-height:1.25;color:var(--v3-forest)}
.v3b-by-item i{display:block;font-style:normal;font-size:13px;color:var(--v3-muted)}
.v3b-by-item:hover b{color:var(--v3-btn)}
.v3b-by time{align-self:center;font-size:14px;color:var(--v3-muted)}
.v3b-grid{display:grid;gap:40px;padding:36px 0 64px}
@media(min-width:1024px){.v3b-grid{grid-template-columns:minmax(0,1fr) 384px;gap:64px;padding:48px 0 88px;align-items:start}}
.v3b-main .blog-prose{font-size:17.5px;line-height:1.75;color:#333b35}
.v3b-main .blog-prose h2{color:var(--v3-forest);letter-spacing:-.02em;font-size:clamp(24px,2.4vw,30px);line-height:1.2;margin-top:1.9em}
.v3b-main .blog-prose h3{color:var(--v3-ink);font-size:20px;margin-top:1.6em}
.v3b-main .blog-prose a{color:var(--v3-btn);text-decoration:underline;text-underline-offset:3px}
.v3b-main .blog-prose img{border-radius:16px}
.v3b-main>.relative{margin-bottom:28px!important;border-radius:22px!important}
.v3b-meta{display:flex;justify-content:flex-end;border-bottom:1px solid var(--v3-line);padding:0 0 14px;margin:0 0 26px}
.v3b-side{display:grid;gap:20px}
@media(min-width:1024px){.v3b-side{position:sticky;top:148px}}
.v3b-side .v3-form{border-radius:22px;padding:24px 22px 20px;box-shadow:0 1px 2px rgba(20,32,26,.05),0 18px 44px rgba(20,32,26,.1),0 0 0 1px var(--v3-line)}
.v3b-side .v3-form-row{grid-template-columns:1fr}
.v3b-rel{display:block;padding:18px 20px;border-radius:18px;background:linear-gradient(155deg,#2a5239 0%,var(--v3-forest) 70%);color:#fff;text-decoration:none;transition:transform .25s,box-shadow .25s}
.v3b-rel:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,32,26,.22)}
.v3b-rel small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#8fd487}
.v3b-rel b{display:block;font-size:18px;margin-top:5px}
.v3b-rel i{font-style:normal;display:inline-block;transition:transform .2s}
.v3b-rel:hover i{transform:translateX(4px)}
.v3b-next{margin:34px 0 0!important;padding:16px 18px;border-radius:14px;background:#eef6ec;font-size:15px!important;line-height:1.7!important;color:var(--v3-forest)}
.v3b-next a{font-weight:600}
.v3b-author{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;margin-top:44px;padding:22px;border-radius:20px;background:var(--v3-paper);border:1px solid var(--v3-line);font-family:var(--v3-font)}
.v3b-author img{width:88px;height:110px;border-radius:14px;object-fit:cover;object-position:center top}
.v3b-author .v3-eyebrow{margin-bottom:6px!important}
.v3b-author b{display:block;font-size:20px;color:var(--v3-forest);letter-spacing:-.01em}
.v3b-author span.t{display:block;font-size:14px;color:var(--v3-muted);font-weight:600}
.v3b-author p{margin:10px 0 0;font-size:15px;line-height:1.6;color:#3b443d}
.v3b-author p.r{font-size:14px;color:var(--v3-muted)}
.v3b-author a{color:var(--v3-btn);font-weight:600;text-decoration:none}
.v3b-more{background:var(--v3-paper);border-top:1px solid var(--v3-line)}
.v3b-more h2{font-size:clamp(26px,2.8vw,36px)!important;font-weight:700!important;letter-spacing:-.02em;color:var(--v3-forest)!important;margin-bottom:28px!important}
.v3b-more .blog-card,.v3b-index .blog-card{background:#fff!important;border-radius:18px!important;border:1px solid var(--v3-line);overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3b-more .blog-card:hover,.v3b-index .blog-card:hover{transform:translateY(-4px);border-color:#cfe3cb;box-shadow:0 22px 48px rgba(20,32,26,.1)}
.v3b-more .blog-card h3,.v3b-index .blog-card h2{color:var(--v3-forest)!important;letter-spacing:-.01em}
/* blog index */
.v3b-index{background:var(--v3-paper);font-family:var(--v3-font)}
.v3b-index-head{padding:44px 0 6px}
.v3b-index-head h1{font-size:clamp(32px,4vw,52px)!important;line-height:1.06!important;letter-spacing:-.025em!important;color:var(--v3-forest)!important;font-weight:700!important;margin:0!important;max-width:820px}
.v3b-index-head h1 strong{color:var(--v3-btn)!important;font-weight:700!important}
.v3b-index-head p{margin:16px 0 0;font-size:18px;line-height:1.6;color:var(--v3-muted);max-width:620px}
.v3b-pills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.v3b-pills::-webkit-scrollbar{display:none}
@media(min-width:768px){.v3b-pills{flex-wrap:wrap;overflow:visible}}
.v3b-pill{flex-shrink:0;padding:10px 16px;border-radius:999px;background:#fff;border:1px solid var(--v3-line);color:var(--v3-forest);font-size:14px;font-weight:600;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.v3b-pill:hover{border-color:var(--v3-btn);color:var(--v3-btn);transform:translateY(-1px)}
.v3b-pill.is-active{background:var(--v3-forest);border-color:var(--v3-forest);color:#fff}
.v3b-index .blog-card .h-48{height:210px}
.v3b-index .blog-card img{transition:transform .6s}
.v3b-index .blog-card:hover img{transform:scale(1.05)}
.v3b-index .grid{grid-auto-rows:auto!important}
.v3b-index-grid{display:grid;gap:40px;padding-bottom:72px}
@media(min-width:1024px){.v3b-index-grid{grid-template-columns:minmax(0,1fr) 364px;gap:48px;align-items:start;padding-bottom:96px}}
@media(min-width:700px){
.v3b-index .grid>.blog-card:first-child{grid-column:1/-1;height:auto!important}
.v3b-index .grid>.blog-card:first-child>article{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto;column-gap:28px;align-content:center;height:auto!important;min-height:340px}
.v3b-index .grid>.blog-card:first-child>article>.grid{margin-top:20px!important;padding-top:0!important}
.v3b-index .grid>.blog-card:first-child .h-48{grid-row:1/-1;height:calc(100% + 48px)!important;min-height:388px;margin:-24px 0 -24px -24px;border-radius:18px 0 0 18px}
.v3b-index .grid>.blog-card:first-child time{margin-top:0}
.v3b-index .grid>.blog-card:first-child h2{font-size:26px!important;line-height:1.18!important;-webkit-line-clamp:3}
.v3b-index .grid>.blog-card:first-child p{font-size:15.5px;-webkit-line-clamp:4;flex-grow:0}
.v3b-index .grid>.blog-card:first-child time:before{content:"Latest · ";color:var(--v3-btn);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px}
}
.v3b-meet{display:block;padding:20px 22px;border-radius:22px;background:#fff;border:1px solid var(--v3-line);text-decoration:none;font-family:var(--v3-font);transition:transform .25s,box-shadow .25s,border-color .25s}
.v3b-meet:hover{transform:translateY(-2px);border-color:#cfe3cb;box-shadow:0 18px 40px rgba(20,32,26,.1)}
.v3b-meet-faces{display:flex;margin-bottom:14px}
.v3b-meet-faces img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center 15%;border:3px solid #fff;margin-left:-12px;box-shadow:0 2px 8px rgba(20,32,26,.14);transition:transform .25s}
.v3b-meet-faces img:first-child{margin-left:0}
.v3b-meet:hover .v3b-meet-faces img{transform:translateY(-3px)}
.v3b-meet-faces span{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;margin-left:-12px;border:3px solid #fff;background:var(--v3-forest);color:#fff;font-size:13px;font-weight:700}
.v3b-meet small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3b-meet b{display:block;font-size:19px;line-height:1.2;color:var(--v3-forest);letter-spacing:-.01em;margin-top:5px}
.v3b-meet p{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--v3-muted)}
.v3b-meet em{display:inline-block;margin-top:12px;font-style:normal;font-weight:600;font-size:14.5px;color:var(--v3-btn)}
.v3b-meet em i{display:inline-block;font-style:normal;transition:transform .2s}
.v3b-meet:hover em i{transform:translateX(4px)}
.v3b-team{background:#fff;border:1px solid var(--v3-line);border-radius:22px;padding:22px;font-family:var(--v3-font)}
.v3b-team h2,.v3b-team h3{font-size:19px!important;line-height:1.2!important;color:var(--v3-forest)!important;margin:0 0 4px!important;font-weight:700!important;letter-spacing:-.01em}
.v3b-team>p{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--v3-muted)}
.v3b-team ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.v3b-team li a{display:flex;align-items:center;gap:12px;padding:8px;margin:0 -8px;border-radius:14px;text-decoration:none;color:var(--v3-ink);transition:background-color .2s}
.v3b-team li a:hover{background:#eef6ec}
.v3b-team img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:center 15%;flex-shrink:0}
.v3b-team small{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--v3-btn)}
.v3b-team b{display:block;font-size:15px;color:var(--v3-forest);line-height:1.25}
.v3b-team i{display:block;font-style:normal;font-size:12.5px;color:var(--v3-muted);line-height:1.35}
/* ===== Portland hub ===== */
.v3pl{font-family:var(--v3-font);padding-left:16px;padding-right:16px}
.v3pl-hero h1{font-size:clamp(32px,3.7vw,48px)!important;line-height:1.08!important}
.v3pl-video .v3-lead{color:rgba(255,255,255,.84)!important}
.v3pl-player .rounded-full{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 34px rgba(0,0,0,.3);transition:transform .25s}
.v3pl-player .group:hover .rounded-full{transform:scale(1.07)}
.v3pl-player .group>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.22)}
.v3pl-hood b a{color:inherit!important;text-decoration:none!important}
.v3pl-hood b a:after{content:" \2192";color:var(--v3-btn);font-weight:600}
.v3pl-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px}
.v3pl-more{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px;color:var(--v3-btn)!important;text-decoration:none!important;transition:gap .2s}
.v3pl-more:hover{gap:10px}
.v3pl-svc{display:grid;gap:20px;margin-top:36px}
@media(min-width:760px){.v3pl-svc{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3pl-svc a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:380px;border-radius:22px;overflow:hidden;background:var(--v3-forest);color:#fff!important;text-decoration:none!important;transition:transform .3s,box-shadow .3s}
@media(min-width:1024px){.v3pl-svc a{min-height:460px}}
.v3pl-svc a:hover{transform:translateY(-5px);box-shadow:0 28px 60px rgba(20,32,26,.26)}
.v3pl-svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}
.v3pl-svc a:hover img{transform:scale(1.06)}
.v3pl-svc i{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,14,.92) 0%,rgba(10,20,14,.5) 42%,rgba(10,20,14,0) 72%)}
.v3pl-svc div{position:relative;padding:24px}
.v3pl-svc b{display:block;font-size:23px;line-height:1.15;letter-spacing:-.01em;color:#fff}
.v3pl-svc span{display:block;margin-top:8px;font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.86)}
.v3pl-svc em{display:inline-block;margin-top:14px;font-style:normal;font-size:14.5px;font-weight:600;color:#a9e0a2;transition:transform .25s}
.v3pl-svc a:hover em{transform:translateX(4px)}
.v3pl-also{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:26px}
.v3pl-also>small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--v3-muted)}
.v3pl-also .v3a-chips a{background:var(--v3-paper)}
.v3pl-proj{display:grid;gap:22px;margin-top:36px}
@media(min-width:640px){.v3pl-proj{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.v3pl-proj{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3pl-proj a{display:flex;flex-direction:column;background:#fff;border:1px solid var(--v3-line);border-radius:20px;overflow:hidden;text-decoration:none!important;transition:transform .3s,box-shadow .3s,border-color .3s}
.v3pl-proj a:hover{transform:translateY(-5px);border-color:#cfe3cb;box-shadow:0 24px 54px rgba(20,32,26,.14)}
.v3pl-proj figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden}
.v3pl-proj img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.v3pl-proj a:hover img{transform:scale(1.05)}
.v3pl-proj figure small{position:absolute;top:14px;left:14px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--v3-forest);font-size:12px;font-weight:700}
.v3pl-proj div{padding:18px 20px 20px}
.v3pl-proj b{display:block;font-size:18px;line-height:1.3;letter-spacing:-.01em;color:var(--v3-forest)}
.v3pl-proj span{display:block;margin-top:6px;font-size:14px;color:var(--v3-muted)}
.v3pl-proj em{display:block;margin-top:12px;font-style:normal;font-size:14px;font-weight:600;color:var(--v3-btn)}
.v3pl-video{background:linear-gradient(150deg,#2a5239 0%,#1e3d2a 60%,#17301f 100%)!important}
.v3pl-video-in{display:grid;gap:36px;align-items:center}
@media(min-width:1024px){.v3pl-video-in{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px}}
.v3pl-video .v3-h2{font-size:clamp(26px,2.8vw,38px)!important}
.v3pl-video .v3-btn{margin-top:26px}
.v3pl-player{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#101410;box-shadow:0 30px 80px rgba(0,0,0,.4);border:3px solid rgba(255,255,255,.9)}
.v3pl-hoods{display:grid;gap:14px;margin-top:34px}
@media(min-width:640px){.v3pl-hoods{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.v3pl-hoods{grid-template-columns:repeat(4,minmax(0,1fr))}}
.v3pl-hood{background:var(--v3-paper);border:1px solid var(--v3-line);border-radius:18px;padding:18px 18px 16px;transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
.v3pl-hood:hover{transform:translateY(-3px);background:#fff;border-color:#cfe3cb;box-shadow:0 14px 32px rgba(20,32,26,.08)}
.v3pl-hood b{display:block;font-size:16.5px;line-height:1.25;letter-spacing:-.01em;color:var(--v3-forest)}
.v3pl-hood small{display:block;margin-top:3px;font-size:13px;line-height:1.4;color:var(--v3-muted)}
.v3pl-hood .v3a-chips{margin-top:12px;gap:6px}
.v3pl-hood .v3a-chips span{padding:6px 10px;font-size:12.5px;font-weight:600;color:var(--v3-btn)!important}
.v3pl-why{display:grid;gap:16px;margin-top:34px;counter-reset:plwhy}
@media(min-width:700px){.v3pl-why{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.v3pl-why{grid-template-columns:repeat(3,minmax(0,1fr))}}
.v3pl-why div{counter-increment:plwhy;position:relative;background:#fff;border:1px solid var(--v3-line);border-radius:20px;padding:24px 24px 22px;transition:transform .25s,box-shadow .25s,border-color .25s}
.v3pl-why div:hover{transform:translateY(-3px);border-color:#cfe3cb;box-shadow:0 18px 40px rgba(20,32,26,.1)}
.v3pl-why div:before{content:counter(plwhy,decimal-leading-zero);display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--v3-forest);color:#a9e0a2;font-size:13px;font-weight:700;margin-bottom:16px}
.v3pl-why b{display:block;font-size:18.5px;letter-spacing:-.01em;color:var(--v3-forest)}
.v3pl-why span{display:block;margin-top:8px;font-size:15px;line-height:1.55;color:var(--v3-muted)}
/* ===== simple pages: offer details, job posting, legal, thanks, 404, warranty, contact ===== */
.v3t-photo{position:relative;aspect-ratio:4/3;max-width:560px;width:100%;margin:0 auto;border-radius:22px;overflow:hidden;border:3px solid rgba(255,255,255,.9);box-shadow:0 30px 70px rgba(0,0,0,.4);transform:rotate(1.5deg);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.v3t-photo:hover{transform:rotate(0) scale(1.02)}
.v3t-photo img{width:100%;height:100%;object-fit:cover;display:block}
.v3sp-hero h1{font-size:clamp(32px,3.8vw,50px)!important;line-height:1.08!important}
.v3sp-hero h1 .accent{color:#a9e0a2;display:inline!important;line-height:inherit!important;font-size:inherit!important}
.v3-legal{background:var(--v3-paper);padding:48px 16px 72px;font-family:var(--v3-font)}
.v3-legal>div{max-width:860px!important;margin:0 auto!important;padding:0!important}
.v3-legal .prose{max-width:none!important;margin:0!important;background:#fff;border:1px solid var(--v3-line);border-radius:22px;padding:34px 24px!important}
@media(min-width:760px){.v3-legal .prose{padding:52px 56px!important}}
.v3-legal .prose h2{color:var(--v3-forest)!important;font-size:22px!important;letter-spacing:-.01em;margin-top:34px!important}
.v3-legal .prose a{color:var(--v3-btn)}
.v3-legal .prose hr{border-color:var(--v3-line)}
.v3th{background:linear-gradient(150deg,#2a5239 0%,var(--v3-forest) 55%,#142a1b 100%)!important;font-family:var(--v3-font)}
.v3th h1{color:#fff!important;font-size:clamp(34px,4.4vw,54px)!important;letter-spacing:-.025em;line-height:1.05;margin-bottom:16px}
.v3th>div>p{color:rgba(255,255,255,.86)!important;font-size:17px;line-height:1.6}
.v3th .rounded-xl{border-radius:20px!important;box-shadow:0 30px 70px rgba(0,0,0,.34)!important}
.v3th-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}
.v3th-btns .v3-ghost{display:inline-flex;align-items:center;padding:14px 22px;border-radius:999px;border:1px solid rgba(255,255,255,.4);color:#fff;font-weight:600;text-decoration:none;transition:background-color .2s}
.v3th-btns .v3-ghost:hover{background:rgba(255,255,255,.12)}
.v3ct-hero{background:linear-gradient(150deg,#2a5239 0%,var(--v3-forest) 55%,#142a1b 100%)!important;font-family:var(--v3-font);padding-top:56px!important;padding-bottom:64px!important}
.v3ct-hero .grid>div:first-child h1{color:#fff!important;font-size:clamp(36px,4.6vw,58px)!important;line-height:1.05!important;letter-spacing:-.025em!important;font-weight:700!important}
.v3ct-hero .grid>div:first-child h1 em{color:#a9e0a2!important}
.v3ct-hero .grid>div:first-child>span{color:#8fd487!important;font-size:12px!important;letter-spacing:.16em!important;font-weight:700!important}
.v3ct-hero .grid>div:first-child,.v3ct-hero .grid>div:first-child p,.v3ct-hero .grid>div:first-child div,.v3ct-hero .grid>div:first-child span,.v3ct-hero .grid>div:first-child dd,.v3ct-hero .grid>div:first-child a{color:rgba(255,255,255,.88)!important}
.v3ct-hero .grid>div:first-child dt,.v3ct-hero .grid>div:first-child .uppercase{color:#8fd487!important}
.v3ct-hero .grid>div:first-child a:hover{color:#a9e0a2!important}
.v3ct-hero .grid>div:first-child .border-t,.v3ct-hero .grid>div:first-child .border-gray-100,.v3ct-hero .grid>div:first-child .border-gray-200{border-color:rgba(255,255,255,.16)!important}
.v3ct-hero .grid>div:last-child>div{box-shadow:0 30px 80px rgba(0,0,0,.34)!important;border-radius:24px!important}
.v3sp-body{background:var(--v3-paper)}
