/*
Theme Name: Visible Solution
Theme URI: https://visiblesolution.com/
Author: Visible Solution LLC
Description: Custom theme for Visible Solution LLC: local SEO, ads, AI search and websites for service businesses.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: Proprietary
Text Domain: visible-solution
*/

@font-face{font-family:"Geist";src:url(assets/fonts/geist.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  /* palette and type follow upwork.com: near-black ink, green brand, lime accent, Geist (closest free match to Neue Montreal) */
  --ink:#181818; --text:#3d3d3d; --muted:#676767; --faint:#9a9a9a;
  --navy:#1f1f1f; --navy-deep:#181818; --navy-text:#c9c9c9; --navy-rule:rgba(255,255,255,.14);
  --paper:#ffffff; --stone:#f7f7f5; --stone-2:#eceeea; --tint:#f1f8ee;
  --rule:#e4e7eb; --rule-ink:#181818;
  --green:#14a800; --lime:#d2ff00;
  --signal:#14a800; --signal-ink:#0d7a00; --cta:#0d7a00; --cta-hover:#0a6400;
  --ok:#14a800; --err:#b42318;
  --wrap:1360px; --gut:40px;
  --font:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:104px;scrollbar-gutter:stable;-webkit-text-size-adjust:100%}
html:focus-within{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.55 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:600;letter-spacing:-.018em;line-height:1.15;text-wrap:balance}
p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
strong{font-weight:600;color:var(--ink)}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.i{display:inline-block;flex:none;width:1em;height:1em}
:focus-visible{outline:2px solid var(--cta);outline-offset:3px}
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--ink);color:#fff;padding:12px 18px;font-weight:600}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* links and buttons */
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:6px;transition:text-decoration-color .2s,color .2s}
.link .i{width:16px;height:16px;transition:transform .2s}
.link:hover{color:var(--signal-ink);text-decoration-color:currentColor}
.link:hover .i-arrow{transform:translateX(3px)}
.inline-link{color:var(--signal-ink);text-decoration:underline;text-underline-offset:3px}
.inline-link:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:4px;font:600 15.5px/1 var(--font);border:1px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;white-space:nowrap}
.btn .i{width:17px;height:17px}
.btn-cta{background:var(--cta);color:#fff}
.btn-cta:hover{background:var(--cta-hover)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--navy)}
.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--stone-2)}
.btn-block{width:100%}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--rule)}
.nav{display:flex;align-items:center;gap:28px;min-height:80px}
.brand{display:flex;align-items:baseline;gap:14px;color:var(--ink);white-space:nowrap}
.brand b{font-weight:700;font-size:21px;letter-spacing:-.025em}
.brand b span{color:var(--signal)}
.brand small{font-size:13px;color:var(--muted);padding-left:14px;border-left:1px solid var(--rule);line-height:1.2}
.primary-nav{margin-left:auto}
.primary-nav .menu{display:flex;align-items:center;gap:26px}
.primary-nav a{display:block;padding:28px 0 26px;font-weight:500;font-size:15px;color:var(--text);border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.primary-nav a:hover{color:var(--ink);border-bottom-color:var(--rule)}
.primary-nav .current-menu-item>a,.primary-nav .current_page_item>a,.primary-nav .current_page_parent>a{color:var(--ink);border-bottom-color:var(--signal)}
.nav-cta{display:flex;align-items:center;gap:22px}
.nav-phone{font-weight:600;font-size:15px;color:var(--ink);white-space:nowrap}
.nav-phone:hover{color:var(--signal-ink)}
.nav-cta .btn{min-height:44px;padding:0 18px;font-size:15px}
.burger{display:none;width:46px;height:46px;border:1px solid var(--rule);border-radius:4px;background:none;cursor:pointer;align-items:center;justify-content:center;color:var(--ink)}
.burger span{display:block;width:18px;height:1.5px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:transform .2s}
.burger span::before{top:-6px}.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-extra{display:none}

/* ---------- sections: label column + body ---------- */
.sec{padding:104px 0;border-top:1px solid var(--rule)}
.sec.stone{background:var(--stone);border-top-color:var(--stone-2)}
.sec.first{border-top:0}
.sec>.wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.sec-label{grid-column:1/4;font-size:14px;font-weight:600;color:var(--ink);padding-top:10px;display:flex;align-items:flex-start;gap:12px}
.sec-label::before{content:"";width:8px;height:8px;margin-top:6px;background:var(--signal);flex:none}
.sec-body{grid-column:4/13;min-width:0}
.sec.wide .sec-body{grid-column:1/13}
.sec.wide .sec-label{grid-column:1/13;margin-bottom:28px}
.title{font-size:clamp(30px,3.3vw,44px);max-width:22ch}
.intro{font-size:19px;line-height:1.6;color:var(--text);max-width:62ch;margin-top:20px}
.sec-foot{margin-top:48px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}

/* ---------- inner page header ---------- */
.page-head{background:var(--stone);border-bottom:1px solid var(--stone-2);padding:48px 0 72px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--muted);margin-bottom:56px}
.crumbs a{color:var(--muted);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px}
.crumbs a:hover{color:var(--ink)}
.crumbs span[aria-hidden]{color:var(--faint)}
.page-head .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.page-head .crumbs{grid-column:1/13}
.page-head h1{grid-column:1/9;font-size:clamp(38px,4.8vw,64px);line-height:1.06;letter-spacing:-.025em}
.page-head .lede{grid-column:1/8;font-size:19px;line-height:1.6;margin-top:24px;color:var(--text)}
.page-head .head-aside{grid-column:9/13;grid-row:2/4;align-self:end;border-top:1px solid var(--rule-ink);padding-top:16px;font-size:15px;color:var(--text)}
.page-head .head-aside b{display:block;font-size:15px;color:var(--ink);margin-bottom:4px}

/* ---------- home: hero ---------- */
.hero{padding:88px 0 96px}
.hero .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:start}
.hero-copy{grid-column:1/8;padding-top:8px}
.hero h1{font-size:clamp(42px,5.2vw,70px);line-height:1.04;letter-spacing:-.03em;max-width:15ch}
.hero .lede{font-size:20px;line-height:1.6;margin-top:28px;max-width:34em}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:40px}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:72px;border-top:1px solid var(--rule-ink)}
.facts div{padding:18px 20px 0 0}
.facts div+div{padding-left:20px;border-left:1px solid var(--rule)}
.facts dt{font-size:30px;font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.facts dd{font-size:14.5px;color:var(--muted);margin-top:6px}
.hero-proof{grid-column:8/13;margin:8px 0 0 24px}
.hero-proof .shot{aspect-ratio:4/3}
.hero-proof .shot-wrap{border:1px solid var(--rule)}
.hero-proof figcaption{border-top:3px solid var(--signal);margin-top:20px;padding-top:16px}
.hero-proof .kicker{font-size:13px;font-weight:600;color:var(--signal-ink);letter-spacing:.02em}
.hero-proof h2{font-size:22px;line-height:1.25;margin:6px 0 8px}
.hero-proof p{font-size:15px;color:var(--muted)}
.hero-proof .link{margin-top:14px;font-size:15px}

.clients{border-top:1px solid var(--rule);padding:28px 0}
.clients .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:baseline}
.clients p{grid-column:1/4;font-size:14px;font-weight:600;color:var(--ink)}
.clients ul{grid-column:4/13;display:flex;flex-wrap:wrap;gap:6px 0}
.clients li{font-size:15px;color:var(--muted)}
.clients li:not(:last-child)::after{content:"/";margin:0 14px;color:var(--rule)}

/* home: service groups as rows */
.svc-rows{margin-top:56px;border-top:1px solid var(--rule-ink)}
.svc-row{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:30px 0;border-bottom:1px solid var(--rule)}
.svc-row h3{grid-column:1/4;font-size:20px}
.svc-row h3 a:hover{color:var(--signal-ink)}
.svc-row p.lead{grid-column:1/4;font-size:15px;color:var(--muted);margin-top:8px}
.svc-row ul{grid-column:4/10;grid-row:1/3;display:grid;grid-template-columns:1fr 1fr;gap:10px var(--gut)}
.svc-row li a{display:block;font-size:16px;color:var(--text);padding-left:16px;position:relative}
.svc-row li a::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--faint)}
.svc-row li a:hover{color:var(--signal-ink)}

/* work */
.work-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:56px var(--gut);margin-top:56px}
.work-grid>li{grid-column:span 4;min-width:0}
.work-grid.feature>li:nth-child(-n+2){grid-column:span 6}
.work-grid.two>li{grid-column:span 6}
.project a{display:block}
.shot-wrap{display:block;border:1px solid var(--rule);background:#fff;overflow:hidden}
.shot{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.project a:hover .shot{transform:scale(1.02)}
.project .cap{padding-top:16px}
.project h3{font-size:18px}
.project .cap p{font-size:14.5px;color:var(--muted);margin-top:2px}
.project .dom{font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:6px;margin-top:8px;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px}
.project .dom .i{width:14px;height:14px}
.project a:hover h3{color:var(--signal-ink)}
.shot-empty{aspect-ratio:16/10;background:var(--stone-2)}

/* results rows (home + reviews) */
.results{margin-top:56px;border-top:1px solid var(--rule-ink)}
.result{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:32px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.result .who{grid-column:1/4}
.result .who b{display:block;font-size:17px;color:var(--ink)}
.result .who span{font-size:14.5px;color:var(--muted)}
.result .what{grid-column:4/10;font-size:clamp(22px,2.2vw,28px);line-height:1.25;color:var(--ink);font-weight:500;letter-spacing:-.015em}

/* testimonial */
.pull{margin-top:72px;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut)}
.pull blockquote{grid-column:1/9;font-size:clamp(24px,2.6vw,34px);line-height:1.35;color:var(--ink);font-weight:400;letter-spacing:-.012em}
.pull figcaption{grid-column:1/9;margin-top:24px;font-size:15px;color:var(--muted)}
.pull figcaption b{color:var(--ink);font-weight:600}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:56px;border-top:1px solid var(--rule-ink)}
.step{padding:26px 24px 0 0}
.step+.step{padding-left:24px;border-left:1px solid var(--rule)}
.step .n{font-size:14px;font-weight:600;color:var(--signal-ink)}
.step h3{font-size:19px;margin:10px 0 10px}
.step p{font-size:15.5px;color:var(--text)}

/* plans */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:56px;border:1px solid var(--rule);background:#fff}
.plan{padding:36px 32px 32px;display:flex;flex-direction:column;border-top:3px solid transparent}
.plan+.plan{border-left:1px solid var(--rule)}
.plan.pop{border-top-color:var(--ink)}
.plan .tier{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;font-weight:600;color:var(--muted)}
.plan .tag{color:var(--ink)}
.plan h3{font-size:28px;margin:12px 0 10px}
.plan .for{font-size:15.5px;color:var(--text);min-height:76px}
.plan .price{font-size:15px;font-weight:600;color:var(--ink);padding:16px 0;margin:20px 0 22px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.plan .price span{font-weight:400;color:var(--muted)}
.plan ul{display:grid;gap:10px;font-size:15px;margin-bottom:32px}
.plan li{display:flex;gap:10px;line-height:1.45}
.plan li .i{width:17px;height:17px;margin-top:2px;color:var(--ok)}
.plan li.no{color:var(--muted)}
.plan li.no .i{color:var(--faint)}
.plan .btn{margin-top:auto}
.plans.compact .plan .for{min-height:0}
.plans-note{margin-top:20px;font-size:14.5px;color:var(--muted)}

.compare-wrap{overflow-x:auto;border:1px solid var(--rule);background:#fff;margin-top:56px}
.compare{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.compare th,.compare td{padding:14px 20px;border-bottom:1px solid var(--rule);text-align:center;font-weight:400}
.compare th:first-child,.compare td:first-child{text-align:left}
.compare thead th{font-weight:600;color:var(--ink);background:var(--stone);font-size:14.5px}
.compare tbody tr:last-child>*{border-bottom:0}
.compare tbody th{color:var(--text)}
.compare .i{margin:0 auto;width:18px;height:18px}
.compare .yes .i{color:var(--ok)}
.compare .no .i{color:#b5bac1}

/* faq */
.faq{border-top:1px solid var(--rule-ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:22px 48px 22px 0;font-size:18px;font-weight:500;color:var(--ink);position:relative;line-height:1.4}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:1.5px;background:var(--ink);transition:transform .25s}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq summary:hover{color:var(--signal-ink)}
.faq details p{padding:0 48px 24px 0;color:var(--text);max-width:68ch}

/* closing call to action */
.cta{background:var(--navy);color:#fff;padding:88px 0}
.cta .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:end}
.cta h2{grid-column:1/8;color:#fff;font-size:clamp(30px,3.4vw,46px)}
.cta p{grid-column:1/8;color:var(--navy-text);font-size:18px;margin-top:18px;max-width:52ch}
.cta .actions{grid-column:9/13;grid-row:1/3;display:grid;gap:14px}
.cta .phone{display:block;border-top:1px solid var(--navy-rule);padding-top:14px;font-size:15px;color:var(--navy-text)}
.cta .phone a{display:block;color:#fff;font-size:22px;font-weight:600;margin-top:2px}
.cta .phone a:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- about ---------- */
.story p{font-size:18.5px;line-height:1.7;max-width:64ch}
.story p+p{margin-top:22px}
.story .quote{font-size:clamp(24px,2.4vw,30px);line-height:1.35;color:var(--ink);font-weight:500;letter-spacing:-.015em;margin:40px 0;padding-left:24px;border-left:3px solid var(--signal);max-width:28ch}
.numbers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rule-ink);margin-top:48px}
.numbers div{padding:20px 16px 0 0}
.numbers div+div{padding-left:16px;border-left:1px solid var(--rule)}
.numbers dt{font-size:clamp(26px,2.6vw,36px);font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.numbers dd{font-size:14.5px;color:var(--muted);margin-top:6px}
.timeline{margin-top:48px;border-top:1px solid var(--rule-ink)}
.timeline>li{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:28px 0;border-bottom:1px solid var(--rule)}
.timeline .yr{grid-column:1/3;font-size:22px;font-weight:600;color:var(--signal-ink)}
.timeline .body{grid-column:3/10}
.timeline h3{font-size:19px;margin-bottom:8px}
.timeline p{color:var(--text);max-width:64ch}
.timeline .marks{margin-top:12px;display:flex;flex-wrap:wrap;gap:4px 0;font-size:14.5px;color:var(--muted)}
.timeline .marks li:not(:last-child)::after{content:"·";margin:0 10px}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px;border-top:1px solid var(--rule-ink)}
.cols3>div{padding:24px 24px 0 0}
.cols3>div+div{padding-left:24px;border-left:1px solid var(--rule)}
.cols3 h3{font-size:19px;margin-bottom:10px}
.cols3 p{font-size:15.5px;color:var(--text)}

/* ---------- services page ---------- */
.svc-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.svc-nav{grid-column:1/4;position:sticky;top:120px;align-self:start}
.svc-nav p{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:14px}
.svc-nav ul{border-left:1px solid var(--rule)}
.svc-nav a{display:block;padding:8px 0 8px 16px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted);font-size:15px}
.svc-nav a:hover,.svc-nav a.on{color:var(--ink);border-left-color:var(--signal)}
.svc-nav .btn{margin-top:28px}
.svc-main{grid-column:4/13;min-width:0}
.svc-group+.svc-group{margin-top:96px}
.svc-group>header{padding-bottom:24px;border-bottom:1px solid var(--rule-ink)}
.svc-group>header h2{font-size:clamp(28px,2.8vw,38px)}
.svc-group>header p{font-size:17px;color:var(--text);margin-top:10px;max-width:60ch}
.svc-item{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:36px 0;border-bottom:1px solid var(--rule);scroll-margin-top:120px}
.svc-item h3{grid-column:1/10;font-size:22px;margin-bottom:14px}
.svc-item .desc{grid-column:1/6}
.svc-item .desc p{color:var(--text)}
.svc-item .desc .link{margin-top:18px;font-size:15px}
.svc-item .incl{grid-column:6/10}
.svc-item h4{font-size:13.5px;font-weight:600;color:var(--muted);margin-bottom:10px}
.ticks{display:grid;gap:7px}
.ticks li{font-size:15px;line-height:1.45;color:var(--text);padding-left:18px;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--signal)}

/* ---------- reviews page ---------- */
.case{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:48px 0;border-bottom:1px solid var(--rule)}
.case:first-child{border-top:1px solid var(--rule-ink);margin-top:48px}
.case .media{grid-column:1/5}
.case .body{grid-column:5/10}
.case .num{font-size:13.5px;font-weight:600;color:var(--signal-ink)}
.case h3{font-size:clamp(24px,2.4vw,30px);margin:8px 0 6px}
.case .client{font-size:16px;color:var(--muted)}
.case blockquote{margin-top:22px;font-size:17px;line-height:1.6;color:var(--text);padding-left:18px;border-left:2px solid var(--rule)}
.case dl{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin-top:24px;font-size:15px}
.case dt{color:var(--muted)}
.case dd a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}
.case dd a:hover{color:var(--signal-ink);text-decoration-color:currentColor}
.case .no-shot{aspect-ratio:16/10;background:var(--navy);color:var(--navy-text);display:flex;flex-direction:column;justify-content:flex-end;padding:28px;font-size:16px;line-height:1.4}
.case .no-shot b{font-size:clamp(72px,8vw,112px);line-height:.9;font-weight:600;color:#fff;letter-spacing:-.04em}
.case .no-shot span{max-width:22ch;margin-top:10px}
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gut);margin-top:48px;border-top:1px solid var(--rule-ink)}
.quotes figure{padding:32px 0;border-bottom:1px solid var(--rule)}
.quotes blockquote{font-size:18px;line-height:1.6;color:var(--ink)}
.quotes figcaption{margin-top:16px;font-size:14.5px;color:var(--muted)}
.quotes figcaption b{color:var(--ink);font-weight:600}

/* ---------- contact & forms ---------- */
.contact-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.contact-info{grid-column:1/5}
.contact-info dl{border-top:1px solid var(--rule-ink)}
.contact-info dl>div{padding:20px 0;border-bottom:1px solid var(--rule)}
.contact-info dt{font-size:14px;color:var(--muted)}
.contact-info dd{font-size:19px;color:var(--ink);font-weight:500;margin-top:4px;overflow-wrap:anywhere}
.contact-info dd a:hover{color:var(--signal-ink)}
.contact-info .note{margin-top:28px;font-size:15.5px;color:var(--text)}
.form-panel{grid-column:6/13;background:var(--stone);padding:44px;scroll-margin-top:110px}
.form-panel h2{font-size:26px}
.form-panel>p{font-size:15px;color:var(--muted);margin:6px 0 28px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.f{display:grid;gap:8px;align-content:start;min-width:0}
.f.full{grid-column:1/-1}
.f label,.f legend{font-size:14.5px;font-weight:600;color:var(--ink)}
fieldset.f{border:0;margin:0;padding:0}
fieldset.f legend{padding:0;margin-bottom:10px}
.req{color:var(--signal-ink)}
.opt{font-weight:400;color:var(--muted)}
.f input,.f select,.f textarea{font:400 16px/1.4 var(--font);color:var(--ink);background:#fff;border:1px solid #c9c5bb;border-radius:4px;padding:12px 14px;min-height:48px;width:100%;transition:border-color .2s,box-shadow .2s}
.f select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232b3544' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px}
.f textarea{min-height:136px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(14,26,43,.12)}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:var(--err)}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
.checks label{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:400;color:var(--text);cursor:pointer;line-height:1.4}
.checks input{width:18px;height:18px;min-height:0;margin:1px 0 0;padding:0;flex:none;accent-color:var(--ink)}
.vs-form .btn{margin-top:28px}
.form-note{font-size:13.5px;color:var(--muted);margin-top:14px}
.form-note a{text-decoration:underline;text-underline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{padding:16px 18px;margin-bottom:24px;font-size:15px;line-height:1.5;border-left:3px solid}
.form-status.ok{background:#eef6f0;border-color:var(--ok);color:#1d4a2a}
.form-status.err{background:#fdf0ef;border-color:var(--err);color:#7a1a12}
.form-status a{text-decoration:underline}
.field-error{font-size:13.5px;color:var(--err)}
.start-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:start}
.start-layout .form-panel{grid-column:1/9}
.start-aside{grid-column:9/13;position:sticky;top:120px}
.start-aside h2{font-size:19px;padding-bottom:14px;border-bottom:1px solid var(--rule-ink)}
.start-aside ol{counter-reset:s}
.start-aside ol li{counter-increment:s;display:grid;grid-template-columns:32px 1fr;padding:16px 0;border-bottom:1px solid var(--rule);font-size:15.5px;color:var(--text)}
.start-aside ol li::before{content:counter(s);font-weight:600;color:var(--signal-ink)}
.start-aside .call{margin-top:32px;font-size:15px;color:var(--text)}
.start-aside .call a{display:block;font-size:24px;font-weight:600;color:var(--ink);margin-top:4px}
.start-aside .call a:hover{color:var(--signal-ink)}

/* ---------- blog ---------- */
.post-list{border-top:1px solid var(--rule-ink)}
.post-row{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:var(--gut);padding:36px 0;border-bottom:1px solid var(--rule)}
.post-row .meta{grid-column:1/3;font-size:14.5px;color:var(--muted);display:grid;gap:2px;align-content:start;padding-top:4px}
.post-row .meta .cat{color:var(--signal-ink);font-weight:600}
.post-row .body{grid-column:3/10}
.post-row h2,.post-row h3{font-size:clamp(22px,2.2vw,28px);line-height:1.25}
.post-row h2 a:hover,.post-row h3 a:hover{color:var(--signal-ink)}
.post-row p{margin-top:12px;color:var(--text);max-width:64ch}
.post-row .link{margin-top:16px;font-size:15px}
.post-row.lead h2{font-size:clamp(28px,3vw,40px)}
.pagination{margin-top:40px;display:flex;gap:8px}
.pagination .page-numbers{min-width:42px;height:42px;border:1px solid var(--rule);display:grid;place-items:center;padding:0 14px}
.pagination .current{background:var(--ink);color:#fff;border-color:var(--ink)}

/* article and policy text */
.article{padding:72px 0 104px}
.article .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.article aside.side{grid-column:1/4;font-size:14.5px;color:var(--muted);align-self:start;position:sticky;top:120px}
.article aside.side b{display:block;color:var(--ink);font-weight:600;margin-top:16px}
.article aside.side b:first-child{margin-top:0}
.article .prose{grid-column:4/11}
.prose{font-size:18px;line-height:1.75;color:var(--text)}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(23px,2.2vw,28px);margin-top:2em;line-height:1.25}
.prose h3{font-size:19px;margin-top:1.8em;line-height:1.35}
.prose ul,.prose ol{padding-left:1.25em;list-style:disc}
.prose ol{list-style:decimal}
.prose li+li{margin-top:.45em}
.prose li::marker{color:var(--signal)}
.prose a{color:var(--signal-ink);text-decoration:underline;text-underline-offset:3px}
.prose a:hover{color:var(--ink)}
.prose .updated{font-size:14.5px;color:var(--muted)}
.prose hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0}
.article-cta{grid-column:4/11;margin-top:64px;padding:32px 0 0;border-top:1px solid var(--rule-ink);display:flex;flex-wrap:wrap;gap:20px 32px;align-items:center;justify-content:space-between}
.article-cta p{font-size:20px;font-weight:500;color:var(--ink);max-width:28ch;line-height:1.35}
.legal-nav{grid-column:1/13;display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:28px;font-size:15px}
.legal-nav a{color:var(--muted);padding-bottom:4px;border-bottom:2px solid transparent}
.legal-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--signal)}
.legal-nav a:hover{color:var(--ink)}

/* 404 */
.notfound{padding:120px 0 136px}
.notfound .code{font-size:15px;font-weight:600;color:var(--signal-ink)}
.notfound h1{font-size:clamp(38px,4.8vw,60px);margin:14px 0 18px;max-width:18ch}
.notfound p{font-size:18px;max-width:52ch}
.notfound ul{margin-top:36px;border-top:1px solid var(--rule-ink);max-width:640px}
.notfound li a{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--rule);font-weight:500;color:var(--ink)}
.notfound li a:hover{color:var(--signal-ink)}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);color:var(--navy-text);padding:72px 0 32px;font-size:15px}
.site-footer .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.foot-brand{grid-column:1/5}
.foot-brand .brand{color:#fff}
.foot-brand p{margin-top:16px;max-width:34ch;line-height:1.6}
.foot-col{grid-column:span 2}
.foot-col.contact{grid-column:span 4}
.site-footer h2{font-size:14px;font-weight:600;color:#fff;margin-bottom:16px}
.site-footer ul{display:grid;gap:9px}
.site-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.site-footer address{font-style:normal}
.foot-bottom{grid-column:1/13;margin-top:64px;padding-top:24px;border-top:1px solid var(--navy-rule);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px}
.foot-bottom ul{display:flex;flex-wrap:wrap;gap:8px 24px}

/* ---------- motion (kept quiet) ---------- */
@view-transition{navigation:auto}
.site-header{view-transition-name:vs-header}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s;animation-timing-function:ease}
@keyframes vs-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.u-hero-panel>*,.page-head .wrap>*{animation:vs-in .8s cubic-bezier(.2,.7,.2,1) both}
.u-hero-panel>:nth-child(2),.page-head .wrap>:nth-child(2){animation-delay:.06s}
.u-hero-panel>:nth-child(3),.page-head .wrap>:nth-child(3){animation-delay:.12s}
.u-hero-panel>:nth-child(4),.page-head .wrap>:nth-child(4){animation-delay:.18s}

.js .rv{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .brand small{display:none}
  .primary-nav .menu{gap:20px}
}
@media (max-width:1080px){
  :root{--gut:24px}
  .burger{display:inline-flex}
  .nav-phone{display:none}
  .primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--rule);padding:4px var(--gut) 24px;max-height:calc(100vh - 80px);overflow-y:auto}
  .primary-nav.open{display:block}
  .primary-nav .menu{flex-direction:column;align-items:stretch;gap:0}
  .primary-nav a{padding:16px 0;border-bottom:1px solid var(--rule);font-size:17px}
  .primary-nav .current-menu-item>a,.primary-nav .current_page_item>a,.primary-nav .current_page_parent>a{border-bottom-color:var(--rule);color:var(--signal-ink)}
  .mobile-extra{display:grid;gap:10px;margin-top:20px}
  .sec{padding:80px 0}
  .sec-label{grid-column:1/13;margin-bottom:20px;padding-top:0}
  .sec-body{grid-column:1/13}
  .hero-proof{grid-column:1/13;display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);margin:64px 0 0;align-items:end}
  .hero-proof figcaption{margin-top:0}
  .clients p,.clients ul{grid-column:1/13}
  .clients p{margin-bottom:8px}
  .svc-row{grid-template-columns:1fr;row-gap:16px}
  .svc-row h3,.svc-row p.lead,.svc-row ul{grid-column:1/-1;grid-row:auto}
  .work-grid>li,.work-grid.feature>li:nth-child(-n+2){grid-column:span 6}
  .result{grid-template-columns:1fr;row-gap:8px}
  .result .who,.result .what{grid-column:1/-1}
  .pull blockquote,.pull figcaption{grid-column:1/10}
  .steps{grid-template-columns:1fr 1fr}
  .step:nth-child(3){padding-left:0;border-left:0}
  .step:nth-child(n+3){margin-top:28px;border-top:1px solid var(--rule)}
  .plans{grid-template-columns:1fr}
  .plan+.plan{border-left:0;border-top:1px solid var(--rule)}
  .plan.pop{border-top:3px solid var(--ink)}
  .plan .for{min-height:0}
  .cta h2,.cta p{grid-column:1/13}
  .cta .actions{grid-column:1/13;grid-row:auto;margin-top:32px;max-width:420px}
  .page-head h1,.page-head .lede{grid-column:1/13}
  .page-head .head-aside{grid-column:1/13;grid-row:auto;margin-top:36px;max-width:480px}
  .numbers{grid-template-columns:repeat(3,minmax(0,1fr))}
  .numbers div:nth-child(4){padding-left:0;border-left:0}
  .numbers div:nth-child(n+4){margin-top:20px;border-top:1px solid var(--rule)}
  .svc-nav{grid-column:1/13;position:sticky;top:80px;z-index:5;background:#fff;margin:0 calc(var(--gut)*-1) 40px;padding:12px var(--gut);border-bottom:1px solid var(--rule)}
  .svc-nav p,.svc-nav .btn{display:none}
  .svc-nav ul{display:flex;gap:24px;overflow-x:auto;border:0;scrollbar-width:none}
  .svc-nav ul::-webkit-scrollbar{display:none}
  .svc-nav a{white-space:nowrap;border-left:0;border-bottom:2px solid transparent;padding:6px 0;margin:0}
  .svc-nav a:hover,.svc-nav a.on{border-bottom-color:var(--signal)}
  .svc-main{grid-column:1/13}
  .contact-info,.form-panel,.start-layout .form-panel,.start-aside{grid-column:1/13}
  .contact-info{margin-bottom:48px}
  .start-aside{position:static;margin-top:48px}
  .article aside.side{grid-column:1/13;position:static;display:flex;flex-wrap:wrap;gap:4px 24px;margin-bottom:36px}
  .article aside.side b{margin-top:0}
  .article .prose,.article-cta{grid-column:1/13}
  .foot-brand{grid-column:1/13;margin-bottom:40px}
  .foot-col{grid-column:span 4}
  .foot-col.contact{grid-column:span 4}
}
@media (max-width:760px){
  :root{--gut:20px}
  body{font-size:16px}
  .nav{min-height:68px;gap:16px}
  .brand b{font-size:19px}
  .nav-cta .btn{display:none}
  .primary-nav{max-height:calc(100vh - 68px)}
  .sec{padding:64px 0}
  .intro{font-size:17px}
  .page-head{padding:28px 0 52px}
  .crumbs{margin-bottom:36px}
  .page-head .lede{font-size:17px}
  .hero .lede{font-size:17.5px}
  .hero-actions .btn{flex:1 1 100%}
  .facts{grid-template-columns:1fr;margin-top:48px}
  .facts div,.facts div+div{padding:14px 0;border-left:0;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:14px}
  .facts dt{font-size:24px;min-width:92px}
  .facts dd{margin-top:0}
  .hero-proof{grid-template-columns:1fr;margin-top:48px}
  .hero-proof figcaption{margin-top:16px}
  .clients li{font-size:14.5px}
  .svc-row ul{grid-template-columns:1fr}
  .work-grid{gap:40px var(--gut)}
  .work-grid>li,.work-grid.feature>li:nth-child(-n+2),.work-grid.two>li{grid-column:1/13}
  .pull{margin-top:48px}
  .pull blockquote,.pull figcaption{grid-column:1/-1}
  .steps{grid-template-columns:1fr}
  .step,.step+.step{padding:22px 0;border-left:0}
  .step+.step{border-top:1px solid var(--rule)}
  .step:nth-child(n+3){margin-top:0}
  .plan{padding:28px 22px}
  .cta{padding:64px 0}
  .cta .actions{max-width:none}
  .numbers{grid-template-columns:1fr 1fr}
  .numbers div,.numbers div+div{padding:16px 12px 0 0;border-left:0}
  .numbers div:nth-child(even){padding-left:16px;border-left:1px solid var(--rule)}
  .numbers div:nth-child(n+3){margin-top:16px;border-top:1px solid var(--rule)}
  .timeline>li{grid-template-columns:1fr;row-gap:6px}
  .timeline .yr,.timeline .body{grid-column:1/-1}
  .cols3{grid-template-columns:1fr}
  .cols3>div,.cols3>div+div{padding:22px 0;border-left:0}
  .cols3>div+div{border-top:1px solid var(--rule)}
  .svc-nav{top:68px}
  .svc-item{grid-template-columns:1fr;padding:30px 0}
  .svc-item h3,.svc-item .desc,.svc-item .incl{grid-column:1/-1}
  .svc-item .incl{margin-top:22px}
  .case{grid-template-columns:1fr;padding:36px 0}
  .case .media,.case .body{grid-column:1/-1}
  .case .body{margin-top:24px}
  .quotes{grid-template-columns:1fr}
  .post-row{grid-template-columns:1fr}
  .post-row .meta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:10px}
  .post-row .body{grid-column:1/-1}
  .form-panel{padding:28px 20px;margin:0 calc(var(--gut)*-1)}
  .fields,.checks{grid-template-columns:1fr}
  .foot-col,.foot-col.contact{grid-column:1/13;margin-bottom:32px}
  .faq summary{font-size:16.5px}
  .faq details p{padding-right:0}
  .prose{font-size:17px}
  .compare th,.compare td{padding:12px 14px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  html:focus-within{scroll-behavior:auto}
  @view-transition{navigation:none}
}
@media print{
  .site-header,.site-footer,.cta,.burger{display:none}
}

.sec-body .faq{margin-top:48px}
.story{margin-top:32px}
.sec.plain .sec-body{grid-column:1/13}
.sec.plain .work-grid{margin-top:0}
.svc-nav .btn{color:#fff;margin:28px 0 0;padding:0 20px;border:0}
.svc-nav .btn:hover{color:#fff}

/* =========================================================
   Home page (Upwork-style: green palette, rounded inset panels, soft layers)
   Scoped to bodybody until the other pages move to this look.
   ========================================================= */
/* measured from upwork.com at 1440px: header and footer sit 24px from the edges, content 80px */
body .site-header>.wrap{max-width:none;padding:0 24px}
body h1,body h2,body h3{letter-spacing:-.02em}
body .btn{border-radius:999px}
body .site-header{border-bottom-color:transparent}
body .primary-nav a{border-bottom:0;padding:28px 0}
body .primary-nav a:hover{color:var(--signal-ink)}
body .primary-nav .current-menu-item>a,body .primary-nav .current_page_item>a,body .primary-nav .current_page_parent>a{color:var(--signal-ink);border-bottom:0}

/* hero: rounded photo panel with a dark layer */
.u-hero{padding:16px 0 0}
.u-hero-panel{position:relative;border-radius:24px;overflow:hidden;min-height:580px;padding:72px 56px 52px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;
  background:linear-gradient(90deg,rgba(10,14,10,.88) 0%,rgba(10,14,10,.72) 42%,rgba(10,14,10,.2) 75%,rgba(10,14,10,.05) 100%),var(--hero) center/cover no-repeat #1d2a1d}
.u-hero-panel h1{color:#fff;font-size:clamp(40px,5.2vw,72px);line-height:1.02;font-weight:600;max-width:12.5em;letter-spacing:-.035em}
.u-hero-panel .lede{font-size:19px;line-height:1.55;color:#e7e7e7;margin-top:22px;max-width:36em}
.u-search{margin-top:36px;background:rgba(10,10,10,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:16px;padding:20px 22px 18px;max-width:640px}
.u-search-title{font-size:15px;font-weight:600;color:#fff;margin-bottom:12px}
.u-search-form{display:flex;background:#fff;border-radius:999px;padding:5px}
.u-search-form input{flex:1;min-width:0;border:0;background:transparent;font:400 16px var(--font);color:var(--ink);padding:0 18px}
.u-search-form input::placeholder{color:#6b6b6b}
.u-search-form input:focus{outline:none}
.u-search-form:focus-within{box-shadow:0 0 0 3px rgba(20,168,0,.55)}
.u-search-form .btn{min-height:46px}
.u-search-note{margin-top:12px;font-size:14.5px;color:#cfcfcf}
.u-search-note a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45)}

/* trusted by */
.u-trust{padding:44px 0 8px;text-align:center}
.u-trust h2{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.u-trust ul{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 36px;margin-top:20px}
.u-trust li{font-size:18px;font-weight:600;color:#5e5e5e;letter-spacing:-.01em}

/* sections */
.u-sec{padding:96px 0}
.u-sec-tight{padding-top:24px}
.u-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 40px;margin-bottom:36px}
.u-head h2{font-size:clamp(28px,3vw,40px);font-weight:500;line-height:1.15;max-width:22em}
.u-head-center{flex-direction:column;align-items:center;text-align:center}
.u-head-center p{font-size:18px;color:var(--text);max-width:40em}
body .link{text-decoration:none;color:var(--signal-ink)}
body .link:hover{text-decoration:underline;text-underline-offset:5px}

/* service tiles */
.u-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.u-tiles a{display:flex;flex-direction:column;height:100%;padding:26px 26px 22px;border:1px solid var(--rule);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .2s,box-shadow .2s}
.u-tiles a:hover{border-color:var(--green);box-shadow:0 6px 18px -10px rgba(13,122,0,.45)}
.u-tiles h3{font-size:20px;font-weight:600}
.u-tiles p{font-size:15.5px;color:var(--text);margin:8px 0 22px}
.u-tiles .count{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--signal-ink)}
.u-tiles .count .i{width:16px;height:16px;transition:transform .2s}
.u-tiles a:hover .count .i{transform:translateX(3px)}
.u-tile-audit a{background:var(--tint);border-color:#cfe6c7}

/* photo cards */
.u-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.u-cards figure{margin:0}
.u-cards img,.u-cards .shot{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;display:block}
.u-cards .shot{object-position:left top;border:1px solid var(--rule)}
.u-cards figcaption{padding-top:16px}
.u-cards b{display:block;font-size:19px;font-weight:600;color:var(--ink)}
.u-cards figcaption span{display:block;font-size:15.5px;color:var(--text);margin-top:6px}
.u-more{margin-top:32px;font-size:16px;color:var(--text);display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}

/* dark results panel */
.u-dark{background:#181818;color:#cfcfcf;border-radius:24px;padding:64px}
.u-dark-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 48px;flex-wrap:wrap}
.u-dark h2{color:#fff;font-size:clamp(28px,3vw,42px);font-weight:500;max-width:13em}
.u-facts{display:flex;gap:40px}
.u-facts dt{font-size:34px;font-weight:600;color:var(--lime);letter-spacing:-.02em;line-height:1}
.u-facts dd{font-size:14px;color:#b5b5b5;margin-top:8px}
.u-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:48px}
.u-results li{background:#242424;border:1px solid #2f2f2f;border-radius:14px;padding:24px}
.u-results .what{font-size:22px;line-height:1.25;color:#fff;font-weight:500}
.u-results .who{font-size:14px;color:#b0b0b0;margin-top:14px}
.u-results .who b{color:#fff;font-weight:600}
.u-quote{margin:48px 0 0;padding-top:40px;border-top:1px solid #333}
.u-quote blockquote{font-size:clamp(22px,2.3vw,30px);line-height:1.35;color:#fff;max-width:34em}
.u-quote figcaption{margin-top:18px;font-size:15px;color:#b0b0b0}
.u-quote figcaption b{color:#fff}
.u-dark-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;color:var(--lime);font-weight:600}
.u-dark-link:hover{text-decoration:underline;text-underline-offset:5px}
.u-dark-link .i{width:16px;height:16px}

/* work */
.u-work{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.u-work a{display:block}
.u-work .shot-wrap{border-radius:14px;border:1px solid var(--rule)}
.u-work .shot{aspect-ratio:4/3;object-position:left top}
.u-work a:hover .shot{transform:scale(1.02)}
.u-work .cap{display:block;padding-top:14px}
.u-work .cap b{display:block;font-size:17px;color:var(--ink);font-weight:600}
.u-work .cap>span{display:block;font-size:14.5px;color:var(--muted);margin-top:2px}
.u-work a:hover b{color:var(--signal-ink)}

/* how we work */
.u-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.u-steps li{background:var(--stone);border-radius:14px;padding:26px 24px}
.u-steps .n{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--rule);font-size:15px;font-weight:600;color:var(--signal-ink)}
.u-steps h3{font-size:18px;font-weight:600;margin:18px 0 8px}
.u-steps p{font-size:15px;color:var(--text)}
.u-promises{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px;margin-top:48px}
.u-promises li{display:flex;gap:14px}
.u-promises .i{width:22px;height:22px;color:var(--green);margin-top:1px}
.u-promises b{display:block;font-size:17px;color:var(--ink);font-weight:600}
.u-promises span{display:block;font-size:15.5px;color:var(--text);margin-top:4px}

/* plans with the ribbon layer */
.u-plans{position:relative;overflow:hidden;padding:96px 0 104px;background:linear-gradient(180deg,#fff 0%,#f4fbf1 55%,#fff 100%)}
.u-ribbon{position:absolute;left:0;right:0;top:34%;width:100%;height:420px;pointer-events:none}
.u-plans .wrap{position:relative}
.u-plan-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1200px;margin:0 auto}
.u-plan{position:relative;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:32px 28px 28px;display:flex;flex-direction:column;box-shadow:0 10px 30px -18px rgba(0,0,0,.25)}
.u-plan.pop{border:2px solid var(--green)}
.u-tag{position:absolute;top:-1px;right:20px;transform:translateY(-50%);background:var(--lime);color:#181818;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px}
.u-plan h3{font-size:24px;font-weight:600}
.u-plan .for{font-size:15px;color:var(--text);margin:10px 0 20px;min-height:68px}
.u-plan ul{display:grid;gap:10px;margin-bottom:28px;padding-top:18px;border-top:1px solid var(--rule)}
.u-plan li{display:flex;gap:10px;font-size:15px;line-height:1.45}
.u-plan li .i{width:17px;height:17px;margin-top:2px;color:var(--green)}
.u-plan .btn{margin-top:auto}
.u-plan .btn-line{border-color:var(--signal-ink);color:var(--signal-ink)}
.u-plan .btn-line:hover{background:var(--signal-ink);color:#fff}
.u-center-link{text-align:center;margin-top:32px}

/* reviews */
.u-reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.u-reviews figure{margin:0;height:100%;display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:14px;padding:28px}
.u-reviews blockquote{font-size:17px;line-height:1.6;color:var(--ink)}
.u-reviews figcaption{margin-top:auto;padding-top:20px;font-size:14.5px;color:var(--muted)}
.u-reviews figcaption b{display:block;color:var(--ink);font-weight:600}

/* insights */
.u-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.u-posts a{display:flex;flex-direction:column;height:100%;padding:26px;border-radius:14px;background:var(--stone);transition:background .2s}
.u-posts a:hover{background:var(--tint)}
.u-posts .meta{font-size:13.5px;color:var(--muted)}
.u-posts h3{font-size:19px;font-weight:600;line-height:1.3;margin:10px 0 10px}
.u-posts p{font-size:15px;color:var(--text)}

/* faq */
.u-faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.u-faq h2{font-size:clamp(28px,3vw,40px);font-weight:500}
.u-faq>div>p{font-size:17px;color:var(--text);margin-top:16px}
.u-faq .faq{margin-top:0}
body .faq{border-top-color:var(--rule)}
body .faq summary::before,body .faq summary::after{background:var(--signal-ink)}

/* gradient banner */
.u-banner-wrap{padding:0 0 32px}
.u-banner{border-radius:24px;padding:56px 56px;color:#fff;background:radial-gradient(120% 160% at 100% 0%,#9be22a 0%,rgba(155,226,42,0) 46%),linear-gradient(100deg,#0b6b00 0%,#108a00 45%,#14a800 100%);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:center}
.u-banner h2{color:#fff;font-size:clamp(28px,3.2vw,44px);font-weight:500;grid-column:1}
.u-banner p{grid-column:1;font-size:18px;color:#f1fff0}
.u-banner .actions{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:center;gap:12px}
.u-banner .btn-light{color:#0b6b00;min-width:230px}
.u-banner-call{color:#fff;font-weight:600;font-size:15px}
.u-banner-call:hover{text-decoration:underline;text-underline-offset:4px}

/* footer: dark inset panel on the home page */
body .site-footer{background:transparent;padding:0 0 24px}
body .site-footer>.wrap{background:#181818;border-radius:24px;padding:56px 56px 28px;width:calc(100% - 48px);max-width:none}
body .site-footer .brand b span{color:var(--green)}

@media (max-width:1080px){
  body{--gut:24px}
  .u-hero-panel{min-height:0;padding:56px 40px 40px;background:linear-gradient(180deg,rgba(10,14,10,.55) 0%,rgba(10,14,10,.88) 70%),var(--hero) center/cover no-repeat #1d2a1d}
  .u-tiles{grid-template-columns:1fr 1fr}
  .u-cards,.u-work{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .u-reviews,.u-posts{grid-template-columns:1fr}
  .u-results{grid-template-columns:1fr}
  .u-steps{grid-template-columns:1fr 1fr}
  .u-plan-cards{grid-template-columns:1fr;max-width:560px}
  .u-plan .for{min-height:0}
  .u-ribbon{top:20%}
  .u-faq{grid-template-columns:1fr;gap:32px}
  .u-dark{padding:48px 36px}
  .u-banner{grid-template-columns:1fr;padding:48px 40px}
  .u-banner .actions{grid-column:1;grid-row:auto;align-items:flex-start;margin-top:12px}
  body .site-footer>.wrap{padding:48px 32px 24px}
}
@media (max-width:760px){
  body{--gut:20px}
  .u-hero{padding-top:8px}
  .u-hero .wrap,.u-banner-wrap .wrap{padding-left:12px;padding-right:12px}
  body .site-footer>.wrap{padding:40px 20px 24px;width:calc(100% - 24px)}
  body .site-header>.wrap{padding:0 var(--gut)}
  .u-hero-panel{padding:40px 22px 24px;border-radius:18px}
  .u-hero-panel .lede{font-size:17px}
  .u-search{padding:16px;margin-top:28px}
  .u-search-form{flex-direction:column;border-radius:14px;gap:6px}
  .u-search-form input{min-height:48px}
  .u-trust li{font-size:15.5px}
  .u-trust ul{gap:10px 22px}
  .u-sec{padding:64px 0}
  .u-sec-tight{padding-top:8px}
  .u-head{flex-direction:column;align-items:flex-start;margin-bottom:28px}
  .u-head-center{align-items:center}
  .u-tiles,.u-cards,.u-work,.u-reviews,.u-posts,.u-steps,.u-promises{grid-template-columns:1fr}
  .u-dark{padding:36px 22px;border-radius:18px}
  .u-facts{gap:24px;flex-wrap:wrap}
  .u-facts dt{font-size:28px}
  .u-plans{padding:64px 0 72px}
  .u-banner{padding:40px 24px;border-radius:18px}
  .u-banner .btn-light{min-width:0;width:100%}
  .u-banner .actions{align-items:stretch;width:100%}
}

/* Home type scale measured from upwork.com (Neue Montreal; Geist is the closest free match):
   h1 72/1.04 w550, h2 40/1.1 w550 +0.4px, h3 22–28 w550, nav 14 w500, body 16, small 14, buttons 16 w500 */
body{font-size:16px;line-height:1.5}
body h1,body h2,body h3{font-weight:550}
body .u-hero-panel h1{font-size:clamp(40px,5vw,72px);line-height:1.04;letter-spacing:0;font-weight:550}
body .u-head h2,body .u-dark h2,body .u-faq h2,body .u-banner h2{font-size:clamp(28px,2.8vw,40px);line-height:1.1;letter-spacing:.4px;font-weight:550}
body .u-tiles h3,body .u-cards b,body .u-plan h3{font-size:22px;line-height:1.15;letter-spacing:.3px;font-weight:550}
body .u-steps h3,body .u-posts h3,body .u-work .cap b,body .u-promises b{font-size:18px;line-height:1.25;letter-spacing:.2px;font-weight:550}
body .u-results .what{font-size:22px;line-height:1.2;font-weight:550;letter-spacing:.3px}
body .u-quote blockquote{font-size:clamp(22px,2.2vw,28px);line-height:1.25;letter-spacing:.3px}
body .u-hero-panel .lede{font-size:18px;line-height:1.5}
body .primary-nav a{font-size:14px;font-weight:500;letter-spacing:.4px}
body .nav-phone{font-size:14px;font-weight:500;letter-spacing:.4px}
body .btn{font-size:16px;font-weight:500;letter-spacing:.3px}
body .nav-cta .btn{font-size:14px}
body .u-tiles p,body .u-cards figcaption span,body .u-steps p,body .u-promises span,body .u-reviews blockquote,body .u-posts p,body .u-plan .for,body .u-plan li,body .faq details p,body .u-more,body .u-faq>div>p,body .u-head-center p{font-size:16px;line-height:1.5}
body .u-trust li{font-size:16px;font-weight:500;letter-spacing:.3px}
body .faq summary{font-size:18px;font-weight:500}
body .site-footer{font-size:14px}
body .site-footer h2{font-size:14px;font-weight:500}
body .site-footer ul{gap:6px}
body .link{font-size:16px;font-weight:500}

/* =========================================================
   Inner pages in the same language as the home page:
   rounded inset panels, cards, pill controls, no side label column
   ========================================================= */
h1,h2,h3{font-weight:550}
.title{font-size:clamp(28px,2.8vw,40px);line-height:1.1;letter-spacing:.4px;font-weight:550;max-width:24em}
.intro{font-size:17px;line-height:1.55;margin-top:16px}

/* page header: soft tinted rounded panel */
.page-head{background:none;border:0;padding:16px 0 0}
.page-head .wrap{display:block}
.page-head .wrap{position:relative}
.page-head .wrap::before{content:"";position:absolute;inset:0 var(--gut);border-radius:24px;z-index:-1;
  background:radial-gradient(70% 120% at 100% 0%,rgba(210,255,0,.35) 0%,rgba(210,255,0,0) 55%),linear-gradient(135deg,#eef7ea 0%,#f6faf3 60%,#fbfdf9 100%)}
.page-head{isolation:isolate}
.page-head .wrap{padding:44px calc(var(--gut) + 56px) 64px}
.crumbs{margin-bottom:40px;font-size:14px}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--signal-ink);text-decoration:underline}
.page-head h1{font-size:clamp(36px,4.4vw,60px);line-height:1.06;letter-spacing:0;max-width:16em}
.page-head .lede{font-size:18px;line-height:1.55;color:var(--text);max-width:40em;margin-top:20px}
.page-head .head-aside{display:inline-block;margin-top:32px;max-width:520px;background:#fff;border:1px solid #dfeadb;border-radius:14px;padding:16px 20px;font-size:15px;border-top:1px solid #dfeadb}
.page-head .head-aside b{font-size:15px;font-weight:600}

/* sections: label sits above the title, content uses the full width */
.sec{border-top:0;padding:88px 0}
.sec>.wrap:not(.svc-layout):not(.contact-layout):not(.start-layout){display:block}
.sec-label{display:block;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:12px}
.sec-label::before{display:none}
.sec.first{padding-top:72px}
.sec.stone{background:none}
.sec.stone>.wrap{background:var(--stone);border-radius:24px;padding:64px 56px;width:calc(100% - 2*var(--gut));max-width:calc(var(--wrap) - 2*var(--gut))}
.sec.stone+.sec,.sec+.sec.stone{padding-top:24px}
.sec-foot{margin-top:36px}
.link{text-decoration:none;color:var(--signal-ink);font-weight:500}
.link:hover{text-decoration:underline;text-underline-offset:5px}
.inline-link{color:var(--signal-ink)}

/* about */
.story{max-width:760px}
.story p{font-size:17px;line-height:1.65}
.story .quote{border-left-color:var(--green);font-weight:550;font-size:clamp(22px,2.2vw,28px)}
.numbers{border-top:0;gap:16px;margin-top:36px}
.numbers div,.numbers div+div{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:22px}
.numbers dt{color:var(--signal-ink);font-weight:550}
.timeline{border-top:0;margin-top:36px;display:grid;gap:12px}
.timeline>li{border:1px solid var(--rule);border-radius:14px;padding:26px 28px}
.timeline .yr{font-size:20px;font-weight:550;color:var(--signal-ink)}
.timeline h3{font-size:19px}
.cols3{border-top:0;gap:16px;margin-top:36px}
.cols3>div,.cols3>div+div{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:26px}
.cols3 h3{font-size:19px}

/* services */
.svc-nav p{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.svc-nav ul{border-left:0;display:grid;gap:4px}
.svc-nav a{border:0;margin:0;padding:9px 14px;border-radius:999px;color:var(--text)}
.svc-nav a:hover{background:var(--stone);color:var(--ink)}
.svc-nav a.on{background:var(--ink);color:#fff}
.svc-nav .btn{width:100%}
.svc-group>header{border-bottom:0;padding-bottom:8px}
.svc-group>header h2{font-size:clamp(28px,2.8vw,40px);letter-spacing:.4px}
.svc-group+.svc-group{margin-top:72px}
.svc-item{border:1px solid var(--rule);border-radius:16px;padding:30px 32px;margin-top:16px;transition:border-color .2s}
.svc-item:hover{border-color:#bfe0b6}
.svc-item h3{font-size:22px}
.svc-item h4{font-size:13px;letter-spacing:.06em;text-transform:uppercase;font-weight:500}
.ticks li::before{width:14px;height:14px;top:.2em;background:none;border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314a800' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7'/%3E%3C/svg%3E") center/contain no-repeat}
.ticks li{padding-left:24px}

/* work */
.shot-wrap{border-radius:14px}
.project .shot{aspect-ratio:4/3;object-position:left top}
.project h2,.project h3{font-size:18px;font-weight:550}
.project .dom{text-decoration:none;color:var(--signal-ink)}
.work-grid.two>li{grid-column:span 4}

/* reviews */
.case,.case:first-child{border:1px solid var(--rule);border-radius:20px;padding:28px;margin-top:20px}
.case:first-child{margin-top:36px}
.case .no-shot{background:#181818;border-radius:14px}
.case .no-shot b{color:var(--lime)}
.case blockquote{border-left-color:var(--green)}
.case dd a{text-decoration-color:#bfe0b6}
.case .num{color:var(--signal-ink)}
.quotes{border-top:0;gap:16px;margin-top:36px}
.quotes figure{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:26px}
.quotes blockquote{font-size:17px}

/* plans */
.plans{border:0;background:none;gap:20px;margin-top:40px}
.plan,.plan+.plan{background:#fff;border:1px solid var(--rule);border-radius:16px;box-shadow:0 10px 30px -18px rgba(0,0,0,.25)}
.plan.pop{border:2px solid var(--green);position:relative}
.plan .tier{font-weight:500}
.plan .tag{background:var(--lime);color:#181818;padding:4px 10px;border-radius:999px;font-size:12.5px}
.plan h3{font-size:24px}
.plan li .i{color:var(--green)}
.plan.pop .btn-dark{background:var(--cta)}
.plan.pop .btn-dark:hover{background:var(--cta-hover)}
.plan .btn-line{border-color:var(--signal-ink);color:var(--signal-ink)}
.plan .btn-line:hover{background:var(--signal-ink);color:#fff}
.compare-wrap{border-radius:16px;margin-top:36px}
.compare thead th{background:var(--stone)}
.compare .yes .i{color:var(--green)}

/* faq, forms, contact */
.faq{border-top:1px solid var(--rule)}
.faq summary::before,.faq summary::after{background:var(--signal-ink)}
.sec-body>.faq,.sec .faq{margin-top:32px}
.contact-info dl{border-top:0;display:grid;gap:12px}
.contact-info dl>div{border:1px solid var(--rule);border-radius:14px;padding:18px 22px}
.contact-info dd{font-weight:500}
.form-panel{background:var(--stone);border-radius:24px}
.f input,.f select,.f textarea{border-radius:10px;border-color:#d6dbd3}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(20,168,0,.18)}
.checks input{accent-color:var(--green)}
.form-status{border-radius:12px}
.start-aside h2{border-bottom:0;padding-bottom:4px}
.start-aside ol li{border-bottom:0;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:14px 16px;margin-top:10px}
.start-aside ol li::before{color:var(--signal-ink)}
.start-aside .call a:hover{color:var(--signal-ink)}

/* blog */
.post-list{border-top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.post-row,.post-row.lead{display:flex;flex-direction:column;gap:12px;border:1px solid var(--rule);border-radius:16px;padding:28px;background:#fff;transition:border-color .2s}
.post-row:hover{border-color:#bfe0b6}
.post-row .meta{display:flex;flex-wrap:wrap;gap:4px 14px;padding:0;font-size:14px}
.post-row .meta .cat{color:var(--signal-ink)}
.post-row h2,.post-row h3{font-size:22px}
.post-row.lead{grid-column:1/-1;background:#181818;border-color:#181818;padding:40px}
.post-row.lead h2{font-size:clamp(26px,2.8vw,36px)}
.post-row.lead h2 a,.post-row.lead p{color:#fff}
.post-row.lead p{color:#cfcfcf}
.post-row.lead .meta{color:#b0b0b0}
.post-row.lead .meta .cat{color:var(--lime)}
.post-row.lead h2 a:hover{color:var(--lime)}
.sec.stone .post-row{background:#fff}

/* article and legal */
.article{padding:64px 0 88px}
.prose li::marker{color:var(--green)}
.article-cta{border-top:0;background:var(--tint);border-radius:16px;padding:28px 32px}
.legal-nav{gap:8px;margin-top:28px}
.legal-nav a{border:1px solid #d6dfd2;border-radius:999px;padding:8px 16px;background:#fff;color:var(--text)}
.legal-nav a[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}

/* 404 */
.notfound ul{border-top:0;display:grid;gap:10px}
.notfound li a{border:1px solid var(--rule);border-radius:12px;padding:16px 20px}
.notfound li a:hover{border-color:var(--green)}
.notfound .code{color:var(--signal-ink)}

@media (max-width:1080px){
  .page-head .wrap{padding:36px calc(var(--gut) + 32px) 48px}
  .sec.stone>.wrap{padding:48px 32px}
  .work-grid.two>li{grid-column:span 6}
  .post-list{grid-template-columns:1fr}
  .svc-nav{border-bottom:0}
  .svc-nav ul{gap:6px}
  .svc-nav a{border:1px solid var(--rule);padding:8px 14px}
  .svc-nav a.on,.svc-nav a:hover{border-color:var(--ink)}
}
@media (max-width:760px){
  .page-head .wrap::before{inset:0 12px;border-radius:18px}
  .page-head .wrap{padding:28px 36px 40px}
  .sec{padding:64px 0}
  .sec.stone>.wrap{padding:36px 22px;width:calc(100% - 24px);border-radius:18px}
  .svc-item{padding:24px 20px}
  .case,.case:first-child{padding:20px}
  .post-row,.post-row.lead{padding:24px}
  .form-panel{margin:0;border-radius:18px}
}
.svc-nav .btn{display:flex;align-items:center;justify-content:center;border-radius:999px;padding:0 20px}
@media (max-width:1080px){
  .svc-nav ul{display:flex;gap:8px}
  .svc-nav a{white-space:nowrap}
}
@media (max-width:760px){
  .work-grid.two>li{grid-column:1/13}
}
@media (max-width:1080px){.svc-nav .btn{display:none}}

/* logo image */
.brand img{display:block;height:44px;width:auto}
.foot-brand .brand img{height:48px}
@media (max-width:760px){.brand img{height:36px}}

/* home polish: one rhythm between sections, one-line client row */
.u-sec{padding:64px 0}
.u-sec-tight{padding-top:64px}
.u-trust{padding:40px 0 24px}
.u-trust ul{flex-wrap:nowrap;justify-content:space-between;gap:24px;max-width:1200px;margin-left:auto;margin-right:auto}
.u-trust li{white-space:nowrap}
.u-trust li.more{color:var(--signal-ink);font-weight:500}
.u-plans{margin:24px 0}
.u-banner-wrap{padding-top:48px}
.u-head{margin-bottom:32px}
@media (max-width:1180px){.u-trust ul{flex-wrap:wrap;justify-content:center;gap:10px 28px}}
@media (max-width:760px){.u-sec,.u-sec-tight{padding:48px 0}.u-trust li{white-space:normal}}

/* project cards: location, summary and verified site features */
.project .cap{padding-top:16px}
.project .loc{font-size:14px;color:var(--signal-ink);font-weight:500;margin-top:4px}
.project .sum{font-size:15px;line-height:1.5;color:var(--text);margin-top:6px}
.project .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.project .tags li{font-size:12.5px;line-height:1;padding:6px 10px;border-radius:999px;background:var(--stone);border:1px solid var(--rule);color:var(--text)}
.project .dom{margin-top:12px;font-size:14px}
.project a:hover .tags li{border-color:#cfe6c7}
.u-work-grid{margin-top:0}
.u-work-grid>li{grid-column:span 4}
@media (max-width:1080px){.u-work-grid>li{grid-column:span 6}.u-work-grid>li:nth-child(3){display:none}}
@media (max-width:760px){.u-work-grid>li{grid-column:1/13}.u-work-grid>li:nth-child(3){display:block}}
