:root{--ink:#14231b;--green:#3ccf4e;--deep:#128a4c;--tint:#eef9f0;--line:#d5e3d9;--muted:#4a5a51;--bg:#fff;--soft:#f6f8f6}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
h1,h2,h3{font-family:Raleway,Inter,sans-serif;line-height:1.12;letter-spacing:-.01em}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.mock{background:#14231b;color:#a6f0b0;font-size:12px;text-align:center;padding:6px 16px}
/* header */
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;gap:10px}
.logo svg{width:36px;height:36px}
.w1{font-family:Raleway;font-weight:500;font-size:20px;letter-spacing:.3em;line-height:1}
.w2{font-family:Raleway;font-weight:500;font-size:8px;letter-spacing:.2em;margin-top:3px}
.links{display:none;gap:22px;margin-left:auto;font-size:15px;font-weight:500;color:var(--muted)}
.links a:hover{color:var(--ink)}
.hdr-cta{margin-left:auto;display:flex;gap:10px;align-items:center}
.phone{display:none;font-weight:700;font-size:15px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;border-radius:10px;padding:12px 18px;border:2px solid transparent;cursor:pointer;font-family:inherit;white-space:nowrap}
.btn-g{background:var(--green);color:var(--ink)}
.btn-g:hover{background:#34b944}
.btn-o{border-color:var(--ink);color:var(--ink);background:#fff}
.btn-sm{padding:9px 14px;font-size:14px}
/* hero */
.hero{background:linear-gradient(180deg,var(--tint),#fff 70%);padding:36px 0 44px}
.hero-grid{display:grid;gap:28px}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--deep)}
.hero h1{font-size:34px;font-weight:800;margin:10px 0 14px}
.hero h1 em{font-style:normal;color:var(--deep)}
.lede{font-size:17px;color:var(--muted);max-width:560px}
.ticks{list-style:none;margin:18px 0 0;display:grid;gap:8px;font-size:15px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks li::before{content:"";flex:0 0 20px;height:20px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314231b' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/13px no-repeat;margin-top:2px}
/* quote card */
.quote{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(20,35,27,.10);padding:22px}
.quote h2{font-size:22px;font-weight:800}
.quote .sub{font-size:14px;color:var(--muted);margin:4px 0 16px}
.q-label{display:block;font-size:13px;font-weight:700;margin:14px 0 8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;border:1.5px solid var(--line);border-radius:999px;padding:8px 13px;font-size:14px;font-weight:600;cursor:pointer;background:#fff}
.chip input:checked+span{background:var(--tint);border-color:var(--deep);color:var(--deep)}
.chip input:focus-visible+span{outline:3px solid #a6f0b0}
.row2{display:grid;gap:10px;grid-template-columns:1fr}
.field{width:100%;font:inherit;font-size:16px;border:1.5px solid var(--line);border-radius:10px;padding:12px 13px;background:#fff;color:var(--ink)}
.field:focus{outline:none;border-color:var(--deep);box-shadow:0 0 0 3px var(--tint)}
.upload{display:flex;align-items:center;gap:12px;border:1.5px dashed #b9e6c1;border-radius:10px;padding:12px 13px;font-size:14px;color:var(--muted);background:var(--soft);cursor:pointer}
.upload b{color:var(--ink)}
.quote .btn{width:100%;margin-top:16px;font-size:16px;padding:14px}
.fine{font-size:12.5px;color:var(--muted);margin-top:10px;text-align:center}
/* proof strip */
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.stat{padding:20px 12px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat:nth-child(2n){border-right:0}
.stat:nth-last-child(-n+2){border-bottom:0}
.stat b{display:block;font-family:Raleway;font-size:28px;font-weight:800}
.stat span{font-size:13px;color:var(--muted)}
/* sections */
section.s{padding:56px 0}
.s-head{max-width:640px;margin-bottom:28px}
.s-head h2{font-size:28px;font-weight:800;margin-top:8px}
.s-head p{color:var(--muted);margin-top:10px;font-size:16px}
.soft{background:var(--soft)}
/* split */
.split{display:grid;gap:16px}
.path{border:1px solid var(--line);border-radius:16px;padding:24px;background:#fff;display:flex;flex-direction:column}
.path .tag{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--tint);color:var(--deep);border-radius:999px;padding:5px 10px}
.path h3{font-size:22px;margin:14px 0 8px}
.path p{color:var(--muted);font-size:15px}
.path ul{margin:14px 0 18px 18px;font-size:15px;display:grid;gap:6px}
.path .btn{margin-top:auto;align-self:flex-start}
.path.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.path.dark p,.path.dark li{color:#d3e2d8}
.path.dark .tag{background:#21402e;color:#a6f0b0}
/* services */
.svc{display:grid;gap:14px}
.card{border:1px solid var(--line);border-radius:14px;padding:20px;background:#fff;transition:.15s}
.card:hover{border-color:var(--deep);transform:translateY(-2px)}
.ic{width:44px;height:44px;border-radius:12px;background:var(--tint);display:grid;place-items:center;margin-bottom:12px}
.ic svg{width:24px;height:24px}
.card h3{font-size:18px;margin-bottom:6px}
.card p{font-size:14.5px;color:var(--muted)}
.card .more{display:inline-block;margin-top:10px;font-size:14px;font-weight:700;color:var(--deep)}
/* cases */
.cases{display:grid;gap:16px}
.case{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.ph{aspect-ratio:16/10;background:repeating-linear-gradient(135deg,#e7eee9 0 12px,#f1f5f2 12px 24px);display:grid;place-items:center;text-align:center;font-size:13px;color:#66766d;padding:10px}
.case .body{padding:18px 20px 20px}
.case .big{font-family:Raleway;font-size:30px;font-weight:800;line-height:1}
.case .unit{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--deep);margin-top:4px}
.case h3{font-size:17px;margin:12px 0 4px}
.case p{font-size:14.5px;color:var(--muted)}
/* steps */
.steps{list-style:none;display:grid;gap:14px;counter-reset:s}
.steps li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 18px 18px 64px;position:relative;font-size:15px;color:var(--muted)}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:50%;background:var(--green);color:var(--ink);font-weight:800;display:grid;place-items:center}
.steps b{display:block;color:var(--ink);font-size:16px;margin-bottom:2px}
/* about */
.about{display:grid;gap:24px;align-items:center}
.about .ph{aspect-ratio:4/5;border-radius:16px;max-width:360px}
.about blockquote{font-family:Raleway;font-size:22px;font-weight:700;line-height:1.3}
.about p{color:var(--muted);margin-top:14px}
/* faq */
.faq{display:grid;gap:10px;max-width:820px}
details{border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 18px}
summary{cursor:pointer;list-style:none;padding:16px 0;font-weight:700;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";font-size:22px;line-height:1;color:var(--deep)}
details[open] summary::after{content:"–"}
details p{padding:0 0 16px;color:var(--muted);font-size:15px}
/* final cta */
.final{background:var(--ink);color:#fff;border-radius:20px;padding:32px 22px;text-align:center}
.final h2{font-size:28px;font-weight:800}
.final p{color:#d3e2d8;margin:10px auto 20px;max-width:520px}
.final .btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.final .btn-o{background:transparent;color:#fff;border-color:#fff}
footer{padding:40px 0 100px;font-size:14px;color:var(--muted)}
.foot{display:grid;gap:24px}
.foot h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
.foot ul{list-style:none;display:grid;gap:6px}
.legal{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;font-size:12.5px}
/* trust */
.trusted{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;background:#fff}
.trusted .wrap,.brands{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;justify-content:center;text-align:center}
.tb-l{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tb-logos{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:center}
.tb-logos span{font-family:Raleway;font-weight:800;font-size:18px;color:#7d8a82;letter-spacing:.02em}
.brands{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.exp{background:var(--ink);color:#fff;padding:48px 0}
.exp .eyebrow{color:var(--green)}
.exp h2{font-size:26px;font-weight:800;margin-top:8px;max-width:640px}
.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px;margin-top:28px}
.xs b{display:block;font-family:Raleway;font-size:34px;font-weight:800;color:var(--green);line-height:1}
.xs span{display:block;font-size:14px;color:#d3e2d8;margin-top:6px}
.exp-note{font-size:12.5px;color:#8fa497;margin-top:20px}
.creds{display:grid;gap:14px}
.cred{border:1px solid var(--line);border-radius:14px;padding:20px;background:#fff}
.cred h3{font-size:17px;margin-bottom:6px}.cred p{font-size:14.5px;color:var(--muted)}
.quotes{display:grid;gap:14px}
.tq{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;border-left:4px solid var(--green)}
.tq blockquote{font-size:16px;font-style:italic;color:var(--muted)}
.tq figcaption{margin-top:12px;font-size:14px}
.cv{list-style:none;margin-top:14px;display:grid;gap:8px;font-size:15px;color:var(--muted)}
.cv li{padding-left:22px;position:relative}.cv li::before{content:"";position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:50%;background:var(--green)}
.cv b{color:var(--ink)}
@media (min-width:700px){.exp-grid{grid-template-columns:repeat(4,1fr)}.creds{grid-template-columns:1fr 1fr}.quotes{grid-template-columns:repeat(3,1fr)}.exp h2{font-size:32px}}
@media (min-width:1024px){.creds{grid-template-columns:repeat(4,1fr)}.exp{padding:72px 0}}
/* sticky mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1.6fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.06)}
.mbar .btn{padding:13px 10px}
/* tablet */
@media (min-width:700px){
  .hero h1{font-size:44px}
  .row2{grid-template-columns:1fr 1fr}
  .proof-grid{grid-template-columns:repeat(4,1fr)}
  .stat{border-bottom:0}.stat:nth-child(2n){border-right:1px solid var(--line)}.stat:last-child{border-right:0}
  .split{grid-template-columns:1fr 1fr}
  .svc{grid-template-columns:1fr 1fr}
  .cases{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .foot{grid-template-columns:2fr 1fr 1fr 1fr 1fr}
  .phone{display:inline}
  .final{padding:48px}
}
/* desktop */
@media (min-width:1024px){
  .links{display:flex}.hdr-cta{margin-left:24px}
  .hero{padding:64px 0 72px}
  .hero-grid{grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
  .hero h1{font-size:54px;margin-top:14px}
  .lede{font-size:19px}
  .svc{grid-template-columns:repeat(3,1fr)}
  .cases{grid-template-columns:repeat(4,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .steps li{padding:64px 18px 20px}
  .about{grid-template-columns:360px 1fr;gap:56px}
  section.s{padding:80px 0}
  .s-head h2{font-size:36px}
  .mbar{display:none}
  footer{padding-bottom:40px}
}

/* ---- site additions ---- */
.upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.upload{position:relative}
.upload:focus-within{outline:3px solid #a6f0b0}
.fine a{text-decoration:underline}
.menu-btn{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);cursor:pointer}
.links{position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;gap:0;padding:8px 16px 20px;border-bottom:1px solid var(--line);box-shadow:0 20px 40px rgba(0,0,0,.08);max-height:calc(100vh - 100px);overflow:auto}
.links.open{display:flex}
.links a{padding:14px 4px;border-bottom:1px solid var(--line);font-size:17px;color:var(--ink)}
.links a[aria-current]{color:var(--deep);font-weight:700}
.links .menu-cta{margin-top:16px;border:0;color:var(--ink);justify-content:center}
.links .menu-phone{border:0;text-align:center;font-weight:700}
.dd{display:contents}
.dd-top svg{display:none}
.links .dd-menu a{display:block;padding-left:20px;font-size:16px;color:var(--muted)}
.links .dd-menu a:first-child{display:none}
.links .dd-menu a[aria-current]{color:var(--deep)}
.dd.is-on>.dd-top{color:var(--deep);font-weight:700}
.mock+header{top:0}
.hdr-cta .btn-sm{display:none}
@media (min-width:480px){.hdr-cta .btn-sm{display:inline-flex}}
@media (min-width:1024px){
  .menu-btn{display:none}
  .links{position:static;flex-direction:row;padding:0;border:0;box-shadow:none;gap:22px;max-height:none;overflow:visible;background:none}
  .links a{padding:0;border:0;font-size:15px;color:var(--muted)}
  .links a:hover{color:var(--ink)}
  .links .menu-cta,.links .menu-phone{display:none}
  .dd{display:block;position:relative}
  .dd-top{display:inline-flex;align-items:center;gap:5px}
  .dd-top svg{display:block}
  .dd.is-on>.dd-top{color:var(--ink);font-weight:600}
  .dd-menu{display:none;position:absolute;top:100%;left:-16px;padding-top:14px;min-width:180px;z-index:1}
  .dd:hover .dd-menu,.dd:focus-within .dd-menu{display:flex;flex-direction:column}
  .dd-menu::before{content:"";position:absolute;inset:14px 0 0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 32px rgba(0,0,0,.08);z-index:-1}
  .links .dd-menu a,.links .dd-menu a:first-child{display:block;padding:10px 16px;font-size:15px;color:var(--muted)}
  .links .dd-menu a:hover{color:var(--ink);background:var(--soft)}
  .links .dd-menu a:first-child{margin-top:6px}.links .dd-menu a:last-child{margin-bottom:6px}
}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:14px}
.crumbs a{text-decoration:underline}
.phero{padding:32px 0 40px}
.phero h1{font-size:32px}
@media (min-width:700px){.phero h1{font-size:40px}}
@media (min-width:1024px){.phero{padding:56px 0 64px}.phero h1{font-size:48px}.phero .hero-grid{align-items:center}}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(20,35,27,.08);padding:22px;display:flex;flex-direction:column;gap:10px}
.hero-card>b{font-family:Raleway;font-size:20px}
.hero-card p{color:var(--muted);font-size:15px}
.hero-card a:not(.btn){text-decoration:underline}
.hc-phone{text-align:center;font-weight:700;font-size:15px;text-decoration:none!important}
.note{margin-top:20px;padding:14px 16px;background:var(--tint);border-radius:12px;font-size:15px}
.note a{text-decoration:underline;font-weight:600}
.cases.one{grid-template-columns:1fr;max-width:420px}
.other{margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}
.chip-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip-link{border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;background:#fff}
.chip-link:hover{border-color:var(--deep);color:var(--deep)}
.posts{display:grid;gap:14px}
.pcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;padding:20px;background:#fff;transition:.15s}
.pcard:hover{border-color:var(--deep)}
.pdate{font-size:12.5px;color:var(--muted)}
.pcard h3{font-size:18px;margin:8px 0 6px}
.pcard p{font-size:14.5px;color:var(--muted);flex:1}
.pcard .more{margin-top:10px;font-size:14px;font-weight:700;color:var(--deep)}
@media (min-width:700px){.posts{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.posts{grid-template-columns:repeat(3,1fr)}}
.cstudies{display:grid;gap:28px}
.cstudy{display:grid;gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;scroll-margin-top:90px}
.cs-body{padding:22px}
.cs-body h2{font-size:26px;margin-top:6px}
.cs-stat{margin:8px 0 6px}.cs-stat b{font-family:Raleway;font-size:30px;font-weight:800;color:var(--deep)}.cs-stat span{color:var(--muted);font-weight:600}
.cs-body h3{font-size:16px;margin:18px 0 6px}
.cs-body p,.cs-body li{color:var(--muted);font-size:15px}
.cs-body ul{margin-left:18px;display:grid;gap:6px}
.cs-body ul.res li{color:var(--ink)}
@media (min-width:900px){.cstudy{grid-template-columns:5fr 7fr}.cstudy .ph{aspect-ratio:auto;min-height:100%}.cs-body{padding:32px}}
.about2{display:grid;gap:32px}
@media (min-width:1024px){.about2{grid-template-columns:1fr 340px;gap:56px;align-items:start}}
.prose{font-size:17px;line-height:1.7;color:#25352c}
.prose h2{font-size:26px;margin:32px 0 10px;line-height:1.2}
.prose h3{font-size:20px;margin:24px 0 8px}
.prose p{margin:0 0 14px}
.prose ul,.prose ol{margin:0 0 16px 22px;display:grid;gap:6px}
.prose a{color:var(--deep);text-decoration:underline;font-weight:600}
.prose em{color:var(--muted)}
.prose table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:15px;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.prose th{background:var(--tint)}
.prose>:first-child{margin-top:0}
.facts{display:grid;gap:12px}
.fact{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--soft)}
.fact b{display:block;font-family:Raleway;font-size:18px}.fact span{font-size:14px;color:var(--muted)}
.faq-h{font-size:22px;margin:32px 0 14px}.faq-h:first-child{margin-top:0}
.post{padding:32px 0 48px}
.narrow{max-width:760px}
.post h1{font-size:32px;font-weight:800;margin:6px 0 10px}
@media (min-width:700px){.post h1{font-size:42px}}
.pmeta{font-size:14px;color:var(--muted);margin-bottom:28px}
.author{display:flex;gap:16px;align-items:center;margin-top:36px;padding:20px;border:1px solid var(--line);border-radius:14px;font-size:14.5px;color:var(--muted)}
.author b{color:var(--ink)}
.ph.av{flex:0 0 64px;width:64px;height:64px;aspect-ratio:1;border-radius:50%;font-size:12px}
.qgrid{align-items:start}
.qside{padding:8px 4px}
.qside h3{font-size:22px;margin-bottom:12px}
.mini{margin-left:20px;display:grid;gap:10px;color:var(--muted);margin-bottom:16px}
.mini b{color:var(--ink)}
.qside p{margin-top:12px}
.hp{display:none}
@media (max-width:1023px){.hc-opt{display:none}}

/* ---- photos ---- */
.photo{position:relative;overflow:hidden;background:#14231b;color:#fff}
.photo .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,28,20,.92) 0%,rgba(14,28,20,.78) 45%,rgba(14,28,20,.35) 100%);z-index:1}
.photo>.wrap{position:relative;z-index:2}
.photo .eyebrow{color:#a6f0b0}
.photo h1 em{color:var(--green)}
.photo .lede,.photo .ticks li{color:#e3efe7}
.photo .crumbs,.photo .crumbs a{color:#cfe0d5}
@media (max-width:1023px){.photo::before{background:linear-gradient(180deg,rgba(14,28,20,.88),rgba(14,28,20,.8))}}
.home-hero{padding-bottom:56px}
.card.has-img{padding:0;overflow:hidden;display:flex;flex-direction:column}
.card.has-img .cimg{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.card.has-img .ic{margin:-26px 0 10px 18px;position:relative;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.card.has-img h3,.card.has-img p,.card.has-img .more{margin-left:20px;margin-right:20px}
.card.has-img .more{margin-bottom:20px}
.path{overflow:hidden}
.path .pathimg{width:calc(100% + 48px);margin:-24px -24px 18px;aspect-ratio:16/7;object-fit:cover;display:block;max-width:none}
.band{position:relative;min-height:260px;display:grid;align-items:end;overflow:hidden;background:#14231b}
.band .bandimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,28,20,.85),rgba(14,28,20,.1) 70%);z-index:1}
.band-in{position:relative;z-index:2;padding-top:40px;padding-bottom:32px}
.band-q{font-family:Raleway;font-weight:800;color:#fff;font-size:22px;line-height:1.25;max-width:720px}
@media (min-width:1024px){.band{min-height:380px}.band-q{font-size:30px}}
.pcard{padding:0;overflow:hidden}
.pcard .pimg{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;margin-bottom:14px}
.pcard .pdate,.pcard h3,.pcard p,.pcard .more{margin-left:20px;margin-right:20px}
.pcard .more{margin-bottom:20px}
.postimg{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:14px;margin:0 0 28px;display:block}
.intro{font-size:18px;line-height:1.65;color:#25352c;max-width:820px}
.split2{display:grid;gap:28px;align-items:center}
.sideimg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;display:block}
@media (min-width:1024px){.split2{grid-template-columns:1.1fr .9fr;gap:56px}}
.probs{list-style:none;display:grid;gap:12px}
.probs li{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;padding:14px 16px}
.probs b{display:block;font-size:16px}.probs span{font-size:14.5px;color:var(--muted)}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.tbl table{width:100%;border-collapse:collapse;font-size:15px}
@media (max-width:640px){.tbl table{font-size:13.5px}.tbl th,.tbl td{padding:10px 9px}}
.tbl th,.tbl td{padding:13px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.tbl thead th{background:var(--ink);color:#fff;font-size:14px}
.tbl tbody th{font-weight:700;width:30%}
.tbl tr:last-child>*{border-bottom:0}
.costbox{display:grid;gap:20px;background:var(--tint);border:1px solid #b9e6c1;border-radius:18px;padding:24px}
.costbox h2{font-size:24px;margin:6px 0 8px}
.costbox p{font-size:16px;color:#25352c}
.cb-r{display:flex;flex-wrap:wrap;gap:10px;align-content:center}
@media (min-width:900px){.costbox{grid-template-columns:1fr auto;padding:32px;align-items:center}.cb-r{flex-direction:column}}
.areas{margin-top:28px;font-size:14.5px;color:var(--muted)}.areas b{color:var(--ink)}
.narrow2{max-width:900px}
.costsec{margin-top:36px;scroll-margin-top:90px}
.cs-h{display:flex;align-items:center;gap:12px;margin-bottom:14px}.cs-h .ic{margin:0}.cs-h h2{font-size:24px}
.costsec .tbl table{min-width:0}
.costsec .tbl tbody th{width:55%;font-weight:600}
.costsec .tbl td{font-weight:700}
.cnote{margin-top:10px;color:var(--muted);font-size:15px}
.costsec .more{display:inline-block;margin-top:8px;font-weight:700;color:var(--deep);font-size:15px}
.photo .quote,.photo .hero-card{color:var(--ink)}
.photo .quote .sub,.photo .hero-card p{color:var(--muted)}

/* ---- SEO / lead additions ---- */
.soc{display:flex;gap:10px;margin-top:16px}
.soc a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);color:var(--ink);background:#fff}
.soc a:hover{border-color:var(--deep);color:var(--deep)}
.quick{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:14px;padding:18px 20px;margin-bottom:28px;max-width:860px}
.quick p{font-size:17px;line-height:1.6;color:var(--ink)}
.q-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--deep);margin-bottom:6px}
.quick .reviewed{font-size:13px;color:var(--muted);margin-top:10px}
.quick .reviewed a{text-decoration:underline}
.icta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--tint);border:1px solid #b9e6c1;border-radius:14px;padding:16px 18px;margin:8px 0 28px}
.icta b{font-family:Raleway;font-size:17px;color:var(--ink)}
.icta span{display:flex;gap:14px;align-items:center}
.prose .icta a.btn{color:var(--ink);text-decoration:none}
.icta-l{font-size:14px}
.author a{text-decoration:underline}

.ph.has-img{padding:0;overflow:hidden;background:#dfe7e1}
.ph.has-img{position:relative}
.ph.has-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

.clients{padding:28px 0 32px;border-top:1px solid var(--line,#e3e9e5);border-bottom:1px solid var(--line,#e3e9e5)}
.clients.soft{background:var(--soft,#f4f8f5)}
.cl-label{margin:0 0 16px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.marquee{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)}
.marquee .track{display:flex;width:max-content;animation:cl-scroll 45s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee ul{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.marquee li{flex:0 0 auto;padding:0 20px;height:52px;display:flex;align-items:center}
.marquee img{max-height:40px;max-width:130px;width:auto;height:auto;object-fit:contain}
.marquee .wm{font-family:Raleway,Inter,sans-serif;font-weight:800;font-size:18px;color:var(--ink);white-space:nowrap}
@keyframes cl-scroll{to{transform:translateX(-50%)}}
@media (min-width:1024px){.marquee li{padding:0 40px}.marquee img{max-height:48px;max-width:170px}}
@media (prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee .track{animation:none}.marquee ul[aria-hidden]{display:none}}
.quote textarea.note{display:block;width:100%;box-sizing:border-box;min-height:84px;resize:vertical;font:inherit;font-size:16px;line-height:1.4;margin:0 0 14px;background:#fff}
.calc-link{display:inline-block;margin-top:18px;font-weight:700;color:#a6f0b0;text-decoration:underline;text-underline-offset:3px}
.calc-link.dark{color:var(--deep);margin:4px 0 8px}
.calc-grid{display:grid;gap:18px;grid-template-columns:1fr;align-items:start}
.calc-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.calc-in .cl{display:block;font-size:14px;font-weight:700;margin:0 0 14px}
.calc-in span.cl{margin-bottom:8px}
.calc-in .chips{margin-bottom:16px}
.calc-in .hint{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin:2px 0 6px}
.calc-in .field{margin-top:6px}
.calc-in .hint+.field,.calc-in .hint+.dollar{margin-top:0}
.calc-in select.field{appearance:auto}
.dollar{position:relative;display:block}
.dollar::before{content:"$";position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600}
.dollar .field{padding-left:26px}
.assume{border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
.assume summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--deep);margin-bottom:12px}
.calc-out{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
.calc-out.empty .opt,.calc-out.empty .sc-use{opacity:.35}
.sc-msg:empty{display:none}
.sc-use{font-size:14px;color:var(--muted);margin:0 0 12px}
.opt{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.opt-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.opt-n{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--deep)}
.opt h3{margin:0;font-size:18px}
.opt .big{font-family:Raleway,Inter,sans-serif;font-weight:800;font-size:26px;margin:8px 0 6px;color:var(--ink)}
.opt .big small{font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:var(--muted)}
.opt p{margin:0;font-size:14px;color:var(--muted)}
.opt dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:6px 0 0;font-size:14px}
.opt dt{color:var(--muted)}.opt dd{margin:0;font-weight:600}
.fine-l{font-size:12.5px;color:var(--muted);margin:8px 0}
.calc-out .btn{margin-top:6px;width:100%;text-align:center}
.ev-state{font-family:Raleway,Inter,sans-serif;font-weight:800;font-size:22px;margin:0 0 6px}
.ev-state.fits,.ev-state.managed{color:var(--deep)}
.ev-state.upgrade,.ev-state.none{color:#b45309}
@media (min-width:900px){.calc-grid{grid-template-columns:5fr 6fr}}
.calc-out a:not(.btn),.calc-in a{color:var(--deep);text-decoration:underline;text-underline-offset:2px}
@media (min-width:900px){.calc-out{position:sticky;top:84px}}
.ari-photo{display:block;width:100%;max-width:360px;height:auto;aspect-ratio:1;object-fit:cover;border-radius:16px;justify-self:center}
.av-img{flex:0 0 64px;width:64px;height:64px;border-radius:50%;object-fit:cover}
.tag-s{font-family:Inter,sans-serif;font-size:13px;font-weight:500;color:var(--muted)}
@media (max-width:699px){.ari-photo{max-width:240px}}
.calc-title{display:flex;align-items:center;gap:10px;font-size:20px;margin:0 0 16px}
.calc-step{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--deep);font-family:Inter,sans-serif;font-size:14px;font-weight:800;display:grid;place-items:center}
@media (min-width:900px){.creds.three{grid-template-columns:repeat(3,1fr)}}

/* how it works */
.hiw-frame{display:block;width:100%;height:900px;border:0;background:transparent}
.hiw .s-head p{max-width:70ch}
.hiw-toc{padding-block:18px 0}
.hiw-fine{font-size:13px;color:var(--muted);max-width:95ch}
.hiw-link{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:14px;padding:14px 18px;margin:0 0 20px;color:var(--ink);font-weight:500}
#services .hiw-link{margin:20px 0 0}
.hiw-link b{color:var(--deep)}
.hiw-link:hover{border-color:var(--deep)}
.quick .hiw-in{display:block}

/* home services hub */
.hub{position:relative;display:grid;gap:14px}
.hub-lines{display:none}
.hub-core{display:flex;align-items:center;gap:14px}
.hub-dot{width:72px;height:72px;flex:0 0 72px;border-radius:50%;background:var(--ink);display:grid;place-items:center;box-shadow:0 0 0 6px var(--tint)}
.hub-dot svg{width:44px;height:44px}
.hub-name b{display:block;font-family:Raleway,Inter,sans-serif;font-weight:800;font-size:20px}
.hub-name span{font-size:14px;color:var(--muted)}
.hub-node{position:relative;margin-left:64px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.hub-node::before{content:"";position:absolute;left:-29px;top:36px;width:28px;border-top:2px dashed var(--green)}
.hub-node::after{content:"";position:absolute;left:-30px;top:-15px;bottom:0;border-left:2px dashed var(--green)}
.hub-node:last-child::after{bottom:auto;height:51px}
.hub-node .ic{width:40px;height:40px;border-radius:10px;background:var(--tint);display:grid;place-items:center;margin-bottom:10px}
.hub-node .ic svg{width:22px;height:22px}
.hub-node h3{font-size:18px;margin-bottom:6px}
.hub-node h3 a:hover{color:var(--deep)}
.hub-node p{font-size:14.5px;color:var(--muted)}
.hub-node .chip-links{margin-top:12px}
.hub-more{font-size:14px;font-weight:700;color:var(--deep)}
#services .hiw-link{margin:22px 0 0}
@media (min-width:860px){
  .hub{grid-template-columns:1fr 230px 1fr;grid-template-areas:"n1 core n2" "n3 core n4";column-gap:44px;row-gap:28px;align-items:stretch}
  .hub-lines{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  .hub-lines path{fill:none;stroke:var(--green);stroke-width:2;stroke-dasharray:6 6}
  .hub-core{grid-area:core;flex-direction:column;text-align:center;gap:12px;position:relative;align-self:center}
  .hub-dot{width:150px;height:150px;flex:none;box-shadow:0 0 0 10px var(--tint),0 0 0 11px var(--line)}
  .hub-dot svg{width:84px;height:84px}
  .hub-node{margin:0}.hub-node::before,.hub-node::after{display:none}
  .n1{grid-area:n1}.n2{grid-area:n2}.n3{grid-area:n3}.n4{grid-area:n4}
}
/* hosting expressions of interest */
.host-grid{display:grid;gap:28px;align-items:start}
.host h2{font-size:28px;line-height:1.15}
.host-lede{color:var(--muted);margin-top:10px;max-width:60ch}
.host-form h2{font-size:22px}
.host-form select.field{appearance:auto}
@media (min-width:900px){.host-grid{grid-template-columns:1fr 1fr;gap:48px}}

/* phone home page: cleaner first screen and swipe rows (Ari, 14 Nov 2026) */
.hero-mcta{display:none}
@media (max-width:640px){
  .home-hero form.quote{display:none}
  .home-hero .lede{font-size:16px}
  .home-hero .calc-link{display:none}
  .hero-mcta{display:grid;gap:10px;margin-top:22px}
  .hero-mcta .btn{width:100%;justify-content:center}
  .hero-mcta .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
  .home-hero{padding-bottom:36px}
  .exp-note{display:none}
  .exp-grid{margin-top:18px;gap:16px 14px}
  #services .hub-node{padding:14px 16px}
  #services .hub-node .ic,#services .hub-node p{display:none}
  #services .hub-node h3{margin:0}
  #services .hub-node .chip-links{margin-top:8px}
  #services .hub-node::before{top:24px}
  #services .hub-node:last-child::after{height:39px}
  #work .cases,#trust .creds,#guides .posts{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;gap:12px;margin-inline:-16px;padding:2px 16px 8px;scrollbar-width:none}
  #work .cases::-webkit-scrollbar,#trust .creds::-webkit-scrollbar,#guides .posts::-webkit-scrollbar{display:none}
  #work .cases>*,#trust .creds>*,#guides .posts>*{scroll-snap-align:start}
  #reviews{display:none}
  #about .ari-photo{width:104px;height:104px;border-radius:50%;object-fit:cover}
  #about .about{gap:16px}
  #about blockquote{font-size:20px}
  #about .about p:nth-of-type(2){display:none}
}

/* case docs, savings summary, design gallery */
.ph.has-img.doc img{object-position:top}
.sumx{display:grid;gap:28px;align-items:center}
.sumx-img{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.08);background:#fff;max-width:420px}
.sumx-img img{width:100%;height:auto;display:block}
.sumx h2{margin:8px 0 12px}.sumx ul.ticks{margin:14px 0 0 20px;display:grid;gap:6px}
@media (min-width:900px){.sumx{grid-template-columns:420px 1fr;gap:48px}}
.gallery{display:grid;gap:20px}
.gallery figure{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.gallery a{display:block;aspect-ratio:4/3;background:#fff}
.gallery img{width:100%;height:100%;object-fit:contain;display:block}
.gallery figcaption{padding:12px 16px;font-size:14px;color:var(--muted);border-top:1px solid var(--line)}
@media (min-width:768px){.gallery{grid-template-columns:1fr 1fr}}
.s-sub{color:var(--muted);max-width:720px;margin-top:8px}

/* our work filters */
.wfilter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.wfilter button{font:inherit;font-size:15px;font-weight:600;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.wfilter button:hover{border-color:var(--deep)}
.wfilter button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.cstudy[hidden]{display:none}
.ph.has-img.low img{object-position:center 72%}

.ph.tile{background:linear-gradient(135deg,var(--deep,#0f3d2a),#128a4c);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:20px}
.ph.tile b{font-family:Raleway,sans-serif;font-size:clamp(26px,6vw,34px);font-weight:800;letter-spacing:-.01em}
.ph.tile span{font-size:14px;opacity:.9;max-width:22ch}
.exp-grid.one{grid-template-columns:1fr;max-width:640px}
.whofor{margin-top:24px}
.links>a,.dd-top,.hdr-cta .phone{white-space:nowrap}

@media (min-width:1100px){.steps:has(> li:nth-child(5)){grid-template-columns:repeat(5,1fr)}}
.ev-link{display:inline-block;margin-top:20px}
.svc.who .card{padding:16px 18px;display:flex;flex-direction:column}.svc.who .card h3{font-size:16.5px;margin-bottom:4px}.svc.who .card p{font-size:14px}.svc.who .card .more{margin-top:auto;padding-top:8px}
