/* KVB editorial service-system pass — inspired by Taste Skill and Astryx.
   Keep the existing static builder, brand assets and semantic HTML. */
:root {
  --kvb-forest: #123f35;
  --kvb-forest-deep: #0b2d28;
  --kvb-leaf: #2f765b;
  --kvb-mint: #dceee4;
  --kvb-paper: #f6f7f2;
  --kvb-ink: #172b27;
  --kvb-muted: #64736d;
  --kvb-line: #dce5df;
  --kvb-gold: #d9ad57;
}
html { scroll-padding-top: 84px; }
body { background: var(--kvb-paper); color: var(--kvb-ink); }
.topbar {
  background: rgba(250,252,249,.96);
  border-bottom: 1px solid var(--kvb-line);
  box-shadow: 0 5px 22px rgba(17,48,39,.045);
}
.brand { color: var(--kvb-forest-deep); }
.brand b { color: var(--kvb-leaf); }
.topbar nav a { color: #344b43; transition: color .18s ease; }
.topbar nav a:hover { color: var(--kvb-leaf); }
.lang, .menu {
  color: var(--kvb-forest);
  border: 1px solid var(--kvb-line);
  background: #fff;
}
.hero {
  isolation: isolate;
  overflow: hidden;
  background: var(--kvb-forest-deep);
  color: #fff;
}
.hero:before {
  width: min(48vw, 650px);
  height: min(48vw, 650px);
  right: -15vw;
  top: -25vw;
  border: 1px solid rgba(220,238,228,.16);
  box-shadow: 0 0 0 44px rgba(220,238,228,.035), 0 0 0 100px rgba(220,238,228,.025);
}
.hero:after { background: rgba(217,173,87,.12); }
.hero .eyebrow { color: #c8e4d3; letter-spacing: .14em; }
.hero .eyebrow:before { background: var(--kvb-gold); }
.hero h1 .hero-title-main { color: #fff; }
.hero h1 .hero-title-accent { color: #bfe2cd; }
.hero .lead { color: rgba(245,250,247,.78); max-width: 590px; }
.hero .btn.primary {
  color: #102e25;
  background: #d8ecdf;
  border: 1px solid #d8ecdf;
  box-shadow: 0 9px 22px rgba(0,0,0,.14);
}
.hero .btn.secondary {
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255,255,255,.38);
}
.hero .btn { transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.hero .btn:hover { transform: translateY(-2px); }
.hero-card {
  background: #17483d;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 22px;
  box-shadow: 0 26px 60px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}
.hero-card .quick a {
  color: #f5faf6;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.15);
}
.hero-card .quick a:hover { background: rgba(216,236,223,.15); }
.hero-card .mini strong { color: #f0d59c; }
.section { background: var(--kvb-paper); }
.section.alt, .proof, .proof-strip { background: #fff; }
.section-head h2,
#services .section-head h2, #how .section-head h2,
#business .section-head h2, #about h2, #locations .section-head h2,
#tools .section-head h2, .faq .section-head h2 {
  color: var(--kvb-forest-deep);
  letter-spacing: -.035em;
}
.section-head p { color: var(--kvb-muted); }
.service-card, .tool-grid > div, .about-points > div,
.faq-list details, .location-card {
  border: 1px solid var(--kvb-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(20,54,43,.035);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.service-card:hover, .service-card:focus-visible,
.tool-grid > div:hover, .about-points > div:hover {
  transform: translateY(-3px);
  border-color: #b9d2c3;
  box-shadow: 0 14px 30px rgba(20,54,43,.09);
}
.service-card h3, .tool-grid h3, .about-points b,
.faq-list summary { color: var(--kvb-forest-deep); }
.service-card p, .tool-grid p, .about-points span,
.faq-list p { color: var(--kvb-muted); }
.service-card span, .tool-grid a, .service-page .back { color: var(--kvb-leaf); }
.chips span {
  color: var(--kvb-forest);
  background: var(--kvb-mint);
  border-color: #c9e0d1;
}
.newbiz {
  background: var(--kvb-forest-deep);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
}
.newbiz .eyebrow { color: #d8bd83; }
.contact { background: var(--kvb-forest-deep); }
.contact-box {
  border: 1px solid var(--kvb-line);
  border-radius: 18px;
  box-shadow: 0 18px 44px rgba(0,0,0,.12);
}
.contact-box input, .contact-box select, .contact-box textarea {
  border: 1px solid #d7e1da;
  border-radius: 10px;
  background: #fbfdfb;
}
.contact-box input:focus, .contact-box select:focus, .contact-box textarea:focus {
  outline: 3px solid rgba(47,118,91,.18);
  border-color: var(--kvb-leaf);
}
.contact-box .btn, .contact-box .btn.primary {
  background: var(--kvb-forest);
  color: #fff;
  border-color: var(--kvb-forest);
}
footer { background: #09251f; }
.floating-wa { box-shadow: 0 8px 24px rgba(0,0,0,.2); }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid #c18b32;
  outline-offset: 3px;
}
@media (max-width: 900px) {
  .hero { padding-top: 54px; padding-bottom: 48px; }
  .hero .wrap.hero-grid { gap: 26px; }
}
@media (max-width: 560px) {
  .section { padding: 54px 0; }
  .hero { padding-top: 42px; padding-bottom: 38px; }
  .hero-card { border-radius: 18px; }
  .service-card, .tool-grid > div { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .service-card, .tool-grid > div, .about-points > div, .hero .btn { transition: none; }
  .service-card:hover, .tool-grid > div:hover, .about-points > div:hover, .hero .btn:hover { transform: none; }
}
@media (prefers-color-scheme: dark) {
  :root { --kvb-paper:#101a17; --kvb-ink:#edf5ef; --kvb-muted:#b8c8bf; --kvb-line:#30443a; }
  body, .section { background: var(--kvb-paper); color: var(--kvb-ink); }
  .topbar { background: rgba(13,29,24,.97); border-color: var(--kvb-line); }
  .brand, .topbar nav a { color: #edf5ef; }
  .section.alt, .proof, .proof-strip { background: #14221c; }
  .section-head h2, #services .section-head h2, #how .section-head h2,
  #business .section-head h2, #about h2, #locations .section-head h2,
  #tools .section-head h2, .faq .section-head h2 { color: #edf5ef; }
  .service-card, .tool-grid > div, .about-points > div, .faq-list details,
  .location-card, .contact-box { background: #182820; color: #edf5ef; border-color: var(--kvb-line); }
  .service-card h3, .tool-grid h3, .about-points b, .faq-list summary { color: #edf5ef; }
  .service-card p, .tool-grid p, .about-points span, .faq-list p { color: #b8c8bf; }
  .chips span { background: #1d3a2d; border-color: #345943; color: #e4f3e8; }
  .contact-box input, .contact-box select, .contact-box textarea { background: #101a17; color: #edf5ef; border-color: #40574a; }
}

/* Scroll-Craft: restrained reading progress and one-time section reveals. */
.kvb-scroll-progress { position:fixed; inset:0 auto auto 0; z-index:1200; width:100%; height:3px; background:var(--kvb-gold); transform:scaleX(0); transform-origin:left center; pointer-events:none; will-change:transform; }
.kvb-reveal { opacity:0; transform:translate3d(0,18px,0); transition:opacity 560ms cubic-bezier(.2,.75,.25,1), transform 560ms cubic-bezier(.2,.75,.25,1); transition-delay:var(--kvb-reveal-delay,0ms); }
.kvb-reveal.is-visible { opacity:1; transform:translate3d(0,0,0); }
@media (max-width:700px) { .kvb-reveal { transform:translate3d(0,12px,0); transition-duration:440ms; } }
@media (prefers-reduced-motion:reduce) { .kvb-scroll-progress { display:none; } .kvb-reveal,.kvb-reveal.is-visible { opacity:1; transform:none; transition:none; } }
