
/* Local Stack VA · 2026 redesign — CSS layered over the existing site */
:root{
 --ink:#101b2b;--ink-2:#1c2940;--ink-soft:#334155;--muted:#596578;--muted-2:#687487;
 --paper:#f7f8f4;--paper-2:#edf1ec;--white:#fff;
 --line:#dee5dd;--line-strong:#c6d3ca;
 --brand:#111d2d;--brand-deep:#091321;--brand-mid:#23354a;
 --accent:#366845;--accent-bright:#b3dd5b;--accent-2:#c5f277;--accent-soft:#dcf7aa;
 --accent-wash:#eff8de;--gold:#e7edac;--focus:#81b93f;
 --shadow:0 14px 40px rgba(15,26,42,.07);
 --shadow-lg:0 28px 70px rgba(15,26,42,.18);
 --radius:20px;--radius-lg:32px;--max:1180px;
 --display:"DM Sans",system-ui,sans-serif;
}
body{background:var(--paper);line-height:1.6;color:var(--ink)}
a{color:#285b39}
a:hover{color:#153821}
.container{width:min(100% - 2.5rem,var(--max))}
.site-header{background:rgba(247,248,244,.94);border-bottom:1px solid rgba(20,35,52,.07);backdrop-filter:blur(18px)}
.site-header.is-scrolled{background:rgba(247,248,244,.98);border-bottom-color:var(--line)}
.nav{min-height:5rem}
.logo{gap:.65rem}
.logo-mark{width:41px;height:41px;filter:hue-rotate(65deg) saturate(.83)}
.logo-text{font-size:1.08rem;font-weight:800;letter-spacing:-.04em}
.logo-text span{color:#476c29}
.nav-links{gap:1.6rem}
.nav-links a{font-weight:650;color:#273247}
.nav-links a:hover{color:#3e6d22}
.nav-links .btn{color:#fff}
.nav-panel{background:var(--paper)}
.btn{border-radius:12px;font-weight:750;min-height:48px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:#c5f277;color:#122019;box-shadow:0 10px 25px rgba(87,126,38,.13);border-color:#c5f277}
.btn--primary:hover{background:#d3fa90;color:#122019;box-shadow:0 14px 28px rgba(87,126,38,.2)}
.btn--dark{background:var(--brand);color:#fff}
.btn--dark:hover{background:#273a4f}
.btn--outline{background:#fff;border-color:#cfd8ce;color:var(--brand)}
.btn--outline:hover{background:#f1f8e6;border-color:#a9cf72;color:var(--brand)}
.btn--ghost{border-color:rgba(255,255,255,.3);color:#fff}
.btn--ghost:hover{border-color:rgba(255,255,255,.65);color:#fff}
.section{padding:5.5rem 0}
.section--tight{padding:4.6rem 0}
.section--muted{background:#f0f3ed}
.eyebrow{color:#47722a;letter-spacing:.13em;font-weight:800}
.eyebrow::before{background:#96c953}
.section-title{font-family:var(--display);font-weight:800;letter-spacing:-.055em;font-size:clamp(2rem,4.2vw,3.45rem);line-height:1.1}
.section-lead{color:var(--muted);max-width:50rem}
.card,.price-card,.contact-card,.makeover-card{border:1px solid var(--line);box-shadow:0 12px 40px rgba(17,29,45,.045);border-radius:22px}
.card h3,.price-card h3,.step h3,.lsva-chat-title{font-family:var(--display);font-weight:800;letter-spacing:-.035em}
.card-icon{background:#e8f4d5;color:#315e27;border-color:#daeac6}
.price-card--featured{background:linear-gradient(160deg,#0b1727,#1d3440);border-color:#2a3d49}
.price-badge{background:#c5f277;color:#192816}
.price strong{font-family:var(--display);font-weight:800}
.price-card .btn--primary{color:#152313}
.site-footer{background:#0b1727}
.site-footer a{color:#c9dfcc}
.site-footer a:hover{color:#fff}
.lsva-chat-toggle{background:#c5f277;color:#13221a;box-shadow:0 12px 32px rgba(42,70,20,.23)}
.lsva-chat-header,.lsva-chat-send{background:#142338}
.lsva-chat-msg--user p{background:#edf8db;color:#294320;border-color:#d6e9bb}
.page-hero{padding-top:4rem;padding-bottom:1rem}
.page-hero .section-title{max-width:840px}
.price-note,.price-blurb,.card p{color:var(--muted)}
.contact-promise svg{color:#6e9b36}
:focus-visible{outline-color:#76b831}
/* Homepage / art direction */
.ls-hero{
 position:relative;isolation:isolate;overflow:hidden;
 background:#0b1727;color:#fff;padding:6.15rem 0 6.6rem;
}
.ls-hero:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
 background:radial-gradient(ellipse 43% 75% at 92% 20%,rgba(151,206,96,.14),transparent 80%),
 radial-gradient(ellipse 38% 55% at 45% 100%,rgba(70,124,101,.17),transparent 70%);
}
.ls-hero:after{content:"";position:absolute;z-index:-1;inset:0;opacity:.15;pointer-events:none;
 background-image:linear-gradient(#788e99 1px,transparent 1px),linear-gradient(90deg,#788e99 1px,transparent 1px);
 background-size:78px 78px;mask-image:linear-gradient(90deg,transparent 15%,#000)}
.ls-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:4rem;align-items:center}
.ls-kicker{display:inline-flex;align-items:center;gap:.6rem;color:#cceeb8;text-transform:uppercase;letter-spacing:.15em;font-size:.74rem;font-weight:800;margin:0 0 1.55rem}
.ls-kicker:before{content:"";width:8px;height:8px;background:#c5f277;border-radius:50%;box-shadow:0 0 0 5px rgba(197,242,119,.12)}
.ls-hero h1{font-family:var(--display);font-weight:850;font-size:clamp(3.25rem,5.6vw,5.6rem);line-height:1.035;letter-spacing:-.075em;margin:0 0 1.6rem;max-width:11ch}
.ls-hero h1 span{display:block;color:#c5f277}
.ls-hero p.ls-hero-text{font-size:1.14rem;line-height:1.72;max-width:35rem;color:#c2cdd5;margin:0 0 2rem}
.ls-hero .btn--outline{background:transparent;color:#f6f8f3;border:1px solid #647384}
.ls-hero .btn--outline:hover{background:#202f40;color:#fff;border-color:#9eb0bc}
.ls-hero .btn-row{gap:.85rem}
.ls-hero-foot{display:flex;gap:.85rem 1.45rem;flex-wrap:wrap;margin-top:2.3rem;color:#b9c8d1;font-size:.83rem}
.ls-hero-foot span{display:inline-flex;align-items:center;gap:.45rem}
.ls-hero-foot span:before{content:"✓";font-weight:900;color:#c5f277}
.ls-flow{position:relative;border-radius:26px;padding:1.35rem;background:rgba(255,255,255,.055);border:1px solid #3c4e5a;box-shadow:0 25px 90px rgba(0,0,0,.22)}
.ls-flow:before{content:"";position:absolute;inset:-19px;border:1px solid rgba(197,242,119,.13);border-radius:38px;pointer-events:none}
.ls-flow-top{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.25rem .25rem 1.1rem;border-bottom:1px solid #354554}
.ls-flow-top strong{font-size:.83rem;color:#f4f8f1;letter-spacing:.02em}
.ls-flow-badge{font:750 .68rem var(--mono);color:#dcfbb2;background:rgba(197,242,119,.12);border:1px solid rgba(197,242,119,.2);border-radius:999px;padding:.32rem .6rem}
.ls-flow-sequence{padding:1.15rem 0 .2rem;display:grid;gap:0}
.ls-flow-step{position:relative;display:grid;grid-template-columns:42px 1fr;gap:.8rem;align-items:center;background:#14273a;border:1px solid #2f4554;border-radius:14px;padding:.95rem;min-height:86px}
.ls-flow-step + .ls-flow-step{margin-top:26px}
.ls-flow-step + .ls-flow-step:before{content:"";position:absolute;bottom:100%;left:31px;height:26px;width:2px;background:linear-gradient(#9fcb61,#9fcb61);opacity:.8}
.ls-flow-step + .ls-flow-step:after{content:"";position:absolute;bottom:calc(100% + 9px);left:27px;width:10px;height:10px;border:2px solid #c5f277;background:#172b3e;border-radius:50%;animation:ls-pulse 2.7s ease-in-out infinite}
.ls-flow-icon{display:grid;place-items:center;border-radius:12px;width:42px;height:42px;background:#283f49;color:#c5f277;font-size:1.1rem;font-weight:800}
.ls-flow-step strong{display:block;color:#fff;font-size:.91rem;font-weight:750;line-height:1.25}
.ls-flow-step p{font-size:.76rem;margin:.2rem 0 0;color:#adbfcb;line-height:1.35}
.ls-flow-step--last{background:#243a34;border-color:#6b9b54}
.ls-flow-note{padding:.95rem .2rem .12rem;color:#a6bac4;font-size:.7rem;line-height:1.5}
@keyframes ls-pulse{0%,100%{box-shadow:0 0 0 2px rgba(197,242,119,.04)}50%{box-shadow:0 0 0 6px rgba(197,242,119,.16)}}
.ls-intro-bar{background:#e9f2df;border-bottom:1px solid #dbe8cf}
.ls-intro-bar .container{min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:1.4rem}
.ls-intro-bar strong{font-weight:800;letter-spacing:-.03em;font-size:1rem}
.ls-intro-bar p{color:#466048;margin:0;font-size:.9rem}
.ls-intro-bar a{font-weight:800;text-decoration:none;white-space:nowrap}
.ls-section-heading{max-width:755px;margin-bottom:2.75rem}
.ls-overline{color:#436c2b;letter-spacing:.16em;text-transform:uppercase;font-size:.77rem;font-weight:800;margin:0 0 .9rem}
.ls-overline--light{color:#c6ed91}
.ls-section-heading h2{font-size:clamp(2.15rem,4vw,3.6rem);font-weight:850;line-height:1.1;letter-spacing:-.065em;margin:0 0 1.15rem}
.ls-section-heading>p:last-child{font-size:1.12rem;color:#5a687a;line-height:1.7;margin:0}
.ls-services{padding:6.5rem 0;background:#f7f8f4}
.ls-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.ls-service{position:relative;background:#fff;border:1px solid #dfe6dc;border-radius:22px;padding:2rem;min-height:318px;display:flex;flex-direction:column;box-shadow:0 12px 42px rgba(16,27,43,.045);transition:transform .2s ease,box-shadow .2s ease}
.ls-service:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(16,27,43,.09)}
.ls-service--featured{background:#102238;color:#fff;border-color:#102238}
.ls-service-number{font:750 .78rem var(--mono);color:#759353;letter-spacing:.05em}
.ls-service--featured .ls-service-number{color:#c5f277}
.ls-service-symbol{display:grid;place-items:center;width:54px;height:54px;background:#edf5e3;border:1px solid #dce8d0;border-radius:15px;margin:1rem 0 1.4rem;color:#3c692c}
.ls-service--featured .ls-service-symbol{background:#2b473d;color:#d0f89b;border-color:#3d5b4b}
.ls-service-symbol svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ls-service h3{font-size:1.35rem;font-weight:850;letter-spacing:-.045em;margin:0 0 .7rem;line-height:1.2}
.ls-service p{font-size:.97rem;color:#627084;line-height:1.65;margin:0 0 1.2rem}
.ls-service--featured p{color:#bacbd5}
.ls-service a{margin-top:auto;font-weight:850;text-decoration:none;font-size:.9rem;color:#285c39}
.ls-service--featured a{color:#c5f277}
.ls-service a:hover{text-decoration:underline}
.ls-before{padding:6.5rem 0;background:#eef2eb}
.ls-before-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:center}
.ls-before .ls-section-heading{margin-bottom:1.5rem}
.ls-before-card{background:#fff;border:1px solid #d8e2d6;border-radius:24px;overflow:hidden;box-shadow:0 19px 55px rgba(16,27,43,.06)}
.ls-compare-head,.ls-compare-row{display:grid;grid-template-columns:1fr 1fr}
.ls-compare-head{font-weight:850;font-size:.79rem;letter-spacing:.13em;text-transform:uppercase}
.ls-compare-head span{padding:1.2rem 1.5rem;background:#dce3e0;color:#495767}
.ls-compare-head span+span{background:#c8ed9b;color:#214227}
.ls-compare-row span{padding:1.45rem 1.5rem;font-size:.94rem;line-height:1.5;color:#5e6b79;min-height:92px;display:flex;gap:.7rem;align-items:flex-start}
.ls-compare-row span+span{color:#23442b;background:#f3f9e9;border-left:1px solid #e0e9d6;font-weight:700}
.ls-compare-row+ .ls-compare-row{border-top:1px solid #e5ece4}
.ls-compare-row span+span:before{content:"✓";color:#528832;font-weight:900}
.ls-process{padding:6.5rem 0;background:#fff}
.ls-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
.ls-process-card{border-top:2px solid #ccd7c9;padding:1.6rem 1.2rem 1rem 0}
.ls-process-card strong{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eef5e3;color:#466f34;font-weight:850;font-size:.9rem;margin-bottom:1.2rem}
.ls-process-card h3{font-size:1.25rem;letter-spacing:-.035em;margin:0 0 .6rem;font-weight:850}
.ls-process-card p{font-size:.97rem;color:#5e6c7a;line-height:1.65;margin:0}
.ls-mini-cta{background:#102238;padding:3.5rem 0;color:#fff}
.ls-mini-cta .container{display:flex;justify-content:space-between;align-items:center;gap:2rem}
.ls-mini-cta h2{font-size:clamp(1.65rem,3vw,2.5rem);letter-spacing:-.05em;margin:0 0 .55rem;font-weight:850}
.ls-mini-cta p{color:#c3cfd9;margin:0;max-width:36rem}
.ls-mini-cta .btn{white-space:nowrap}
.ls-faq{padding:6rem 0;background:#f7f8f4}
.ls-faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem}
.ls-faq details{border-bottom:1px solid #dce4da;padding:1.2rem 0}
.ls-faq details:first-child{border-top:1px solid #dce4da}
.ls-faq summary{list-style:none;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.ls-faq summary::-webkit-details-marker{display:none}
.ls-faq summary:after{content:"+";font-size:1.5rem;font-weight:400;color:#53833c}
.ls-faq details[open] summary:after{content:"−"}
.ls-faq details p{font-size:.95rem;color:#566577;line-height:1.65;margin:.7rem 0 .3rem}
.ls-final{background:#c5f277;padding:5.5rem 0;color:#14251d;position:relative;overflow:hidden}
.ls-final:after{content:"";position:absolute;right:-5rem;top:-8rem;width:370px;height:370px;border-radius:50%;border:65px solid rgba(14,45,23,.08);pointer-events:none}
.ls-final-grid{position:relative;z-index:1;display:flex;justify-content:space-between;gap:2rem;align-items:center}
.ls-final h2{font-weight:850;letter-spacing:-.065em;line-height:1.08;font-size:clamp(2.25rem,4vw,3.8rem);margin:0 0 .95rem;max-width:700px}
.ls-final p{margin:0;font-size:1.04rem;color:#2c4b29;max-width:34rem}
.ls-final .btn--dark{background:#102238;color:#fff;white-space:nowrap}
.ls-footer-emphasis{max-width:400px}
@media(min-width:960px){.nav-links{display:flex}.nav-toggle{display:none}.hero-grid{grid-template-columns:1fr 1fr}}
@media(max-width:980px){
 .ls-hero-grid{grid-template-columns:1fr;gap:3.6rem}
 .ls-hero h1{max-width:14ch}
 .ls-flow{max-width:650px}
 .ls-before-grid,.ls-faq-grid{grid-template-columns:1fr;gap:1.9rem}
 .ls-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ls-service:last-child{grid-column:1/-1;min-height:auto}
}
@media(max-width:700px){
 .container{width:min(100% - 2rem,var(--max))}
 .ls-hero{padding:4.1rem 0 4.5rem}
 .ls-hero h1{font-size:clamp(2.75rem,11vw,4rem);letter-spacing:-.07em}
 .ls-hero p.ls-hero-text{font-size:1rem}
 .ls-hero .btn-row{display:grid;grid-template-columns:1fr}
 .ls-hero .btn-row .btn{text-align:center}
 .ls-flow{padding:1rem}
 .ls-flow:before{inset:-6px;border-radius:29px}
 .ls-intro-bar .container{align-items:flex-start;padding-block:1.4rem;flex-direction:column;gap:.4rem}
 .ls-services,.ls-before,.ls-process,.ls-faq{padding:4.5rem 0}
 .ls-section-heading{margin-bottom:2rem}
 .ls-service-grid,.ls-process-grid{grid-template-columns:1fr}
 .ls-service,.ls-service:last-child{grid-column:auto;min-height:auto;padding:1.6rem}
 .ls-before-grid,.ls-faq-grid{gap:2rem}
 .ls-compare-head span{padding:1rem;font-size:.72rem}
 .ls-compare-row span{padding:1.1rem .9rem;font-size:.83rem;min-height:0}
 .ls-mini-cta .container,.ls-final-grid{flex-direction:column;align-items:flex-start}
 .ls-mini-cta,.ls-final{padding:3.7rem 0}
 .ls-mini-cta .btn,.ls-final .btn{width:100%;text-align:center}
 .ls-final:after{opacity:.35}
 .section{padding:4rem 0}.section--tight{padding:3.4rem 0}
 .page-hero{padding-top:2.7rem}
}
@media(prefers-reduced-motion:reduce){.ls-flow-step:after{animation:none}.ls-service,.btn{transition:none}}


/* Interior pages — consistent visual rhythm and automation pricing callout */
.section--dark{background:radial-gradient(circle at 100% 0%,rgba(197,242,119,.11),transparent 40%),linear-gradient(160deg,#0a1626,#172b3b);color:#ecf3f3}
.section--ink{background:linear-gradient(160deg,#0b1727,#1c3040);color:#eaf0f1}
.section--dark .eyebrow,.section--ink .eyebrow{color:#c5f277}
.section--dark .section-lead,.section--ink .section-lead{color:#bfcbd3}
.ai-item{border-color:rgba(199,225,224,.16);background:rgba(255,255,255,.045)}
/* Services: WCAG-friendly contrast on dark offer cards */
.section--dark .ai-item .tag {
  color: #15291b;
  background: #d5f6a2;
  border: 1px solid #d5f6a2;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.5;
  padding: .3rem .65rem;
}
.section--dark .ai-item span:not(.tag) {
  color: #e2eaf0;
  font-size: .96rem;
  line-height: 1.65;
}
.section--dark .ai-item strong {
  color: #ffffff;
  font-size: 1.03rem;
  line-height: 1.45;
}
.section--dark .ai-item svg { color: #c5f277; }
.step{border-top-color:#cfdcce}
.step h3{font-weight:800}
.ls-price-intro{background:#e9f2dd;border-bottom:1px solid #d4e3c9}
.ls-price-intro .container{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.45rem}
.ls-price-intro strong{font-weight:850;letter-spacing:-.035em;font-size:1.08rem}
.ls-price-intro p{margin:.2rem 0 0;color:#56714f;font-size:.9rem}
.ls-price-intro a{font-weight:850;font-size:.94rem;text-decoration:none;color:#274d25}
.ls-price-intro a:hover{text-decoration:underline}
.contact-card{background:#fff}
@media(max-width:700px){.ls-price-intro .container{flex-direction:column;align-items:flex-start;gap:.6rem}.ls-price-intro a{line-height:1.5}}
