:root{
  --bg: oklch(0.99 0.005 145);
  --fg: oklch(0.18 0.02 150);
  --muted: oklch(0.45 0.02 150);
  --muted-bg: oklch(0.95 0.015 145);
  --border: oklch(0.9 0.015 145);
  --card: #ffffff;
  --primary: oklch(0.42 0.13 150);
  --primary-fg: oklch(0.98 0.01 145);
  --primary-glow: oklch(0.62 0.17 148);
  --secondary: oklch(0.18 0.02 150);
  --secondary-fg: oklch(0.98 0.01 145);
  --shadow-elegant: 0 20px 50px -20px oklch(0.18 0.02 150 / 0.35);
  --shadow-glow: 0 0 60px oklch(0.55 0.16 148 / 0.35);
  --transition: all .3s cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: var(--bg); color: var(--fg);
  -webkit-font-smoothing:antialiased; line-height:1.55;
}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}

/* Navbar */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(12px);
  background: color-mix(in oklab, var(--bg) 75%, transparent);
  border-bottom:1px solid color-mix(in oklab, var(--border) 70%, transparent);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px}
.nav-logo{height:64px;width:auto;object-fit:contain}
.nav-links{display:none;gap:2rem;font-size:.9rem;font-weight:500;color:var(--muted)}
.nav-links a:hover{color:var(--fg)}
@media (min-width:768px){.nav-links{display:flex}}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.625rem 1rem;border-radius:.5rem;font-weight:500;font-size:.9rem;
  cursor:pointer;border:1px solid transparent;transition:var(--transition);white-space:nowrap;
}
.btn-primary{background:var(--primary);color:var(--primary-fg)}
.btn-primary:hover{background:var(--primary-glow)}
.btn-secondary{background:var(--secondary);color:var(--secondary-fg)}
.btn-secondary:hover{opacity:.92}
.btn-outline{background:transparent;border-color:var(--border);color:var(--fg)}
.btn-outline:hover{background:var(--muted-bg)}
.btn-ghost-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3)}
.btn-ghost-light:hover{background:rgba(255,255,255,.2)}
.btn-lg{padding:.85rem 1.5rem;font-size:1rem;height:48px}
.btn-glow{box-shadow:var(--shadow-glow)}
.btn-full{width:100%}

/* Hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(180deg, oklch(0.1 0.02 150 / .85) 0%, oklch(0.15 0.04 150 / .7) 50%, oklch(0.1 0.02 150 / .92) 100%)}
.hero .content{position:relative;width:100%;padding:8rem 0 6rem}
.hero-grid{display:grid;gap:3rem;align-items:center}
@media (min-width:1024px){.hero-grid{grid-template-columns:1.1fr 1fr;gap:4rem}}
.badge{
  display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border-radius:9999px;
  background:rgba(98,180,127,.18);border:1px solid color-mix(in oklab, var(--primary-glow) 50%, transparent);
  font-size:.85rem;backdrop-filter:blur(4px);
}
.badge .dot{height:.5rem;width:.5rem;border-radius:9999px;background:var(--primary-glow);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.hero h1{margin-top:1.5rem;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:700;line-height:1.05;letter-spacing:-.02em}
.hero h1 .accent{color:var(--primary-glow)}
.hero p.lead{margin-top:1.5rem;font-size:1.125rem;color:rgba(255,255,255,.8);max-width:36rem}
.hero .cta{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.75rem}
.hero dl{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:36rem}
.hero dt{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;color:var(--primary-glow)}
.hero dd{margin-top:.25rem;font-size:.875rem;color:rgba(255,255,255,.7)}
.video-wrap{position:relative}
.video-wrap::before{content:"";position:absolute;inset:-1rem;border-radius:1.5rem;background:color-mix(in oklab, var(--primary-glow) 20%, transparent);filter:blur(40px)}
.video-wrap video{position:relative;border-radius:1rem;border:1px solid rgba(255,255,255,.2);box-shadow:var(--shadow-elegant);background:rgba(0,0,0,.4);aspect-ratio:16/9;width:100%;object-fit:cover}

/* Sections */
section{padding:6rem 0}
@media (min-width:768px){section{padding:8rem 0}}
.eyebrow{font-size:.85rem;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.1em}
.eyebrow.on-dark{color:var(--primary-glow)}
h2.section-title{margin-top:.75rem;font-size:clamp(2rem,4vw,3rem);font-weight:700;letter-spacing:-.02em}
.section-lead{margin-top:1rem;font-size:1.125rem;color:var(--muted);max-width:42rem}

/* Services */
.cat-block + .cat-block{margin-top:5rem}
.cat-head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:2rem}
.cat-icon{display:inline-flex;align-items:center;justify-content:center;height:3rem;width:3rem;border-radius:.5rem;background:var(--primary);color:var(--primary-fg);flex-shrink:0}
.cat-head h3{font-size:1.75rem;font-weight:700}
.cat-head p{margin-top:.25rem;color:var(--muted)}
.svc-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:640px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
.svc-card{
  display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid var(--border);background:var(--card);border-radius:.75rem;padding:1.5rem;
  transition:var(--transition);
}
.svc-card:hover{border-color:var(--primary);box-shadow:var(--shadow-elegant);transform:translateY(-4px)}
.svc-card h4{font-weight:600;line-height:1.35;min-height:3rem}
.svc-card .btn{margin-top:1.5rem;background:var(--muted-bg);color:var(--fg)}
.svc-card:hover .btn{background:var(--primary);color:var(--primary-fg)}

/* About */
.about{background:var(--secondary);color:var(--secondary-fg)}
.about-grid{display:grid;gap:4rem;align-items:center}
@media (min-width:1024px){.about-grid{grid-template-columns:1fr 1fr}}
.about p.lead{margin-top:1.5rem;font-size:1.125rem;color:rgba(255,255,255,.8)}
.feat-grid{display:grid;gap:1rem}
@media (min-width:640px){.feat-grid{grid-template-columns:1fr 1fr}}
.feat-card{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);border-radius:.75rem;padding:1.5rem;backdrop-filter:blur(4px)}
.feat-card svg{height:1.75rem;width:1.75rem;color:var(--primary-glow)}
.feat-card h3{margin-top:1rem;font-weight:600}
.feat-card p{margin-top:.5rem;font-size:.9rem;color:rgba(255,255,255,.7)}

/* Form */
.form-grid{display:grid;gap:3rem;align-items:start}
@media (min-width:1024px){.form-grid{grid-template-columns:1fr 1.4fr;gap:4rem}}
.contact-list{margin-top:2rem;display:flex;flex-direction:column;gap:.75rem}
.contact-card{display:flex;gap:1rem;align-items:flex-start;border:1px solid var(--border);background:var(--card);border-radius:.75rem;padding:1.25rem;transition:var(--transition)}
.contact-card:hover{border-color:color-mix(in oklab, var(--primary) 50%, transparent)}
.contact-icon{display:inline-flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:.4rem;background:color-mix(in oklab, var(--primary) 12%, transparent);color:var(--primary);flex-shrink:0}
.contact-card small{color:var(--muted);font-size:.85rem;display:block}
.contact-card strong{font-weight:600}
.quote-form{border:1px solid var(--border);background:var(--card);border-radius:1rem;padding:2rem;box-shadow:var(--shadow-elegant)}
@media (min-width:768px){.quote-form{padding:2.5rem}}
.field-grid{display:grid;gap:1rem}
@media (min-width:640px){.field-grid{grid-template-columns:1fr 1fr}}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:.875rem;font-weight:500}
.field input,.field textarea{
  border:1px solid var(--border);background:var(--card);border-radius:.5rem;
  padding:.6rem .75rem;font-size:.95rem;font-family:inherit;color:var(--fg);
  transition:var(--transition);
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab, var(--primary) 20%, transparent)}
.section-label{font-size:1rem;font-weight:500;margin-top:2rem;display:block}
.section-hint{font-size:.85rem;color:var(--muted);margin-top:.25rem}
fieldset{border:none;margin-top:1.25rem}
fieldset legend{font-size:.85rem;font-weight:600;color:var(--primary);margin-bottom:.75rem}
.svc-check-grid{display:grid;gap:.6rem 1.5rem}
@media (min-width:640px){.svc-check-grid{grid-template-columns:1fr 1fr}}
.svc-check{display:flex;gap:.6rem;align-items:flex-start;cursor:pointer;font-size:.9rem}
.svc-check input{margin-top:.2rem;accent-color:var(--primary);width:1rem;height:1rem;cursor:pointer}
.form-foot{margin-top:.75rem;font-size:.75rem;color:var(--muted);text-align:center}

/* Success */
.success{max-width:42rem;margin:0 auto;text-align:center}
.success-icon{display:inline-flex;align-items:center;justify-content:center;height:4rem;width:4rem;border-radius:9999px;background:#dcfce7;color:#16a34a;margin-bottom:1.5rem}
.success h2{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700}
.success p{margin-top:1rem;font-size:1.125rem;color:var(--muted)}
.success strong{color:var(--fg)}

/* Footer */
footer{background:var(--secondary);color:var(--secondary-fg);border-top:1px solid rgba(255,255,255,.1)}
.foot-grid{display:grid;gap:2.5rem;padding:3.5rem 0}
@media (min-width:768px){.foot-grid{grid-template-columns:repeat(3,1fr)}}
.foot-logo{height:48px;width:auto;background:rgba(255,255,255,.9);border-radius:.4rem;padding:6px}
.foot-grid p,.foot-grid li{font-size:.9rem;color:rgba(255,255,255,.7)}
.foot-grid h4{font-weight:600;margin-bottom:.75rem}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.foot-grid a:hover{color:var(--primary-glow)}
.foot-bot{border-top:1px solid rgba(255,255,255,.1);padding:1.5rem 0;display:flex;flex-direction:column;gap:.5rem;justify-content:space-between;font-size:.75rem;color:rgba(255,255,255,.6)}
@media (min-width:768px){.foot-bot{flex-direction:row}}

/* Floating WA */
.wa-float{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:50;
  display:inline-flex;align-items:center;justify-content:center;
  height:56px;width:56px;border-radius:9999px;background:var(--primary);color:var(--primary-fg);
  box-shadow:var(--shadow-glow);transition:var(--transition);
}
.wa-float:hover{background:var(--primary-glow)}

/* Toast */
.toast{position:fixed;top:1.5rem;left:50%;transform:translateX(-50%);z-index:100;background:var(--secondary);color:var(--secondary-fg);padding:.8rem 1.25rem;border-radius:.5rem;font-size:.9rem;box-shadow:var(--shadow-elegant);opacity:0;pointer-events:none;transition:opacity .25s}
.toast.show{opacity:1}
.toast.error{background:#dc2626;color:#fff}
.toast.success{background:#16a34a;color:#fff}
