:root{--ink:#172033;--muted:#64748b;--line:#e8ebf0;--accent:#111827;--button-text:#fff;--soft:#f7f8fa;--header-bg:#fff;--header-text:#334155;--content-bg:#fff;--link:#2563eb;--cta-bg:#111827;--cta-text:#fff;--footer-bg:#111827;--footer-text:#cbd5e1;--footer-link:#fff}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);line-height:1.65;background:var(--content-bg)}a{color:var(--link)}.wrap{width:min(1160px,92%);margin:auto}.narrow{max-width:850px}.site-header{border-bottom:1px solid var(--line);background:var(--header-bg);position:sticky;top:0;z-index:50}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}.brand{font-size:1.3rem;font-weight:850;text-decoration:none;color:var(--header-text)}.brand img{display:block;max-height:52px;max-width:220px}.main-nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.main-nav a{color:var(--header-text);text-decoration:none}.site-btn{display:inline-block;background:var(--accent);color:var(--button-text)!important;text-decoration:none;padding:12px 18px;border-radius:8px;font-weight:750}.nav-btn{padding:9px 14px}.nav-toggle{display:none;background:none;border:0;font-size:1.5rem}.section{padding:72px 0}.section:nth-child(even){background:var(--soft)}.hero{padding:86px 0}.section-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}.section-grid.reverse>div:first-child{order:2}.hero h1,.section h1{font-size:clamp(2.4rem,5.5vw,4.8rem);line-height:1.04;margin:.15em 0 .35em}.section h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.15;margin:.2em 0 .45em}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:800;color:var(--muted)}.lead{font-size:1.16rem;margin-bottom:24px}.subheading{font-size:1.05rem;color:var(--muted)}.section-image{width:100%;height:auto;border-radius:16px;display:block}.cta{text-align:center;background:var(--cta-bg)!important;color:var(--cta-text)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card-public{margin:0;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff}.card-public footer{color:var(--muted)}.stars{letter-spacing:.08em}details{border-bottom:1px solid var(--line);padding:16px 0}summary{cursor:pointer;font-weight:750;font-size:1.05rem}details>div{padding-top:10px}.site-footer{border-top:1px solid var(--line);padding:42px 0;background:var(--footer-bg);color:var(--footer-text)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer-grid a{display:block;color:var(--footer-link);text-decoration:none;margin-bottom:7px}.socials{display:flex;gap:12px;flex-wrap:wrap;align-content:flex-start}.socials a{display:inline}.section img{max-width:100%;height:auto}@media(max-width:800px){.header-inner{min-height:68px}.nav-toggle{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--header-bg);padding:18px 4%;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.section,.hero{padding:48px 0}.section-grid,.cards,.footer-grid{grid-template-columns:1fr}.section-grid.reverse>div:first-child{order:0}.hero h1,.section h1{font-size:2.55rem}}/* KillerCMS v3.3 visual page builder */
.visual-section{position:relative;background-repeat:no-repeat}.section-layer{position:relative;z-index:2}.section-overlay{position:absolute;inset:0;background:#000;z-index:1;pointer-events:none}.visual-section.has-bg-image{background-color:transparent}.visual-section.has-bg-image h1,.visual-section.has-bg-image h2,.visual-section.has-bg-image h3,.visual-section.has-bg-image p,.visual-section.has-bg-image .eyebrow{color:inherit}.align-center{text-align:center}.align-right{text-align:right}.width-narrow .wrap{width:min(850px,92%)}.width-wide .wrap{width:min(1380px,94%)}.section-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.align-center .section-actions{justify-content:center}.align-right .section-actions{justify-content:flex-end}.btn-outline{background:transparent!important;color:inherit!important;border:2px solid currentColor}.btn-light{background:#fff!important;color:#111827!important}.hero-grid{min-height:420px}.section-media{min-width:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:30px}.service-card{background:#fff;color:#172033;border:1px solid #e5e7eb;border-radius:15px;overflow:hidden;box-shadow:0 6px 24px #0000000a;text-align:left}.service-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.service-card-body{padding:20px}.service-card h3{margin:0 0 8px;font-size:1.25rem}.service-card p{margin:0 0 12px;color:#64748b}.card-link{text-decoration:none;font-weight:750}.section-intro{max-width:850px}.align-center .section-intro{margin-left:auto;margin-right:auto}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block}.gallery-grid figcaption{font-size:.86rem;color:inherit;opacity:.75;margin-top:6px}.cta-inner{text-align:inherit}@media(max-width:900px){.service-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.service-grid,.gallery-grid{grid-template-columns:1fr}.section-actions{flex-direction:column;align-items:stretch}.section-actions .site-btn{text-align:center}}

/* KillerCMS v3.5 formatted content and tick lists */
.visual-section ul.tick-list,.section ul.tick-list{list-style:none;padding-left:0;margin:1em 0}.visual-section ul.tick-list li,.section ul.tick-list li{position:relative;padding-left:1.65em;margin:.28em 0}.visual-section ul.tick-list li::before,.section ul.tick-list li::before{content:'✓';position:absolute;left:0;top:0;font-weight:800;color:var(--primary,#1e73be)}.service-card-text p{margin:.35em 0}.service-card-text ul,.service-card-text ol{padding-left:1.35em}

/* KillerCMS v3.6 quote form */
.quote-form{margin-top:28px}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.quote-form label{display:block;font-weight:700}.quote-form input,.quote-form select,.quote-form textarea{display:block;width:100%;margin-top:6px;padding:13px 14px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font:inherit}.quote-form textarea{resize:vertical}.quote-submit{border:0;cursor:pointer;margin-top:10px;font:inherit}.quote-privacy{font-size:.86rem;opacity:.78}.quote-success{padding:18px 20px;border-radius:10px;background:#dcfce7;color:#166534;margin:24px 0}.quote-error{padding:16px 18px;border-radius:10px;background:#fee2e2;color:#991b1b;margin:24px 0}.quote-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}@media(max-width:700px){.quote-grid{grid-template-columns:1fr}}


/* KillerCMS v3.6.2 — preserve image aspect ratios */
img {
  max-width: 100%;
  height: auto;
}

.section-image,
.service-card img,
.gallery-grid img,
.site-header img {
  width: 100%;
  height: auto !important;
  object-fit: contain;
}

.site-header img {
  width: auto;
  max-width: 100%;
}

.service-card img,
.gallery-grid img {
  display: block;
}

/* If a fixed visual frame is desired, crop without distorting the image */
.service-card,
.gallery-grid figure {
  overflow: hidden;
}

.service-card img {
  aspect-ratio: auto;
}

.gallery-grid img {
  aspect-ratio: auto;
}


/* KillerCMS v3.6.7 FAQ styles */
.faq-list{display:grid;gap:12px;margin-top:24px}
.faq-item{border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.04);overflow:hidden}
.faq-item summary{cursor:pointer;padding:16px 18px;font-weight:700;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;font-size:1.2em}
.faq-item[open] summary::after{content:"–"}
.faq-answer{padding:0 18px 18px}
.faq-answer > *:first-child{margin-top:0}
.faq-answer > *:last-child{margin-bottom:0}


/* KillerCMS v3.6.8 hierarchical navigation */
.main-nav .nav-item{position:relative;display:flex;align-items:center}
.main-nav .nav-parent{display:flex;align-items:center;gap:5px}
.nav-arrow{font-size:.72em;line-height:1}
.nav-dropdown{
  position:absolute;
  z-index:50;
  top:calc(100% + 8px);
  left:0;
  min-width:230px;
  padding:8px;
  border-radius:10px;
  background:var(--header-bg);
  box-shadow:0 14px 35px rgba(0,0,0,.18);
  border:1px solid var(--line);
  display:none;
}
.nav-dropdown a{display:block!important;white-space:nowrap;padding:9px 12px!important;border-radius:7px}
.nav-dropdown a:hover{background:rgba(127,127,127,.10)}
.nav-item.has-children:hover > .nav-dropdown,
.nav-item.has-children:focus-within > .nav-dropdown{display:block}

@media(max-width:800px){
  .main-nav.open .nav-item{display:block;width:100%}
  .main-nav.open .nav-parent{width:100%;justify-content:space-between}
  .main-nav.open .nav-dropdown{
    position:static;
    display:block;
    min-width:0;
    margin:3px 0 6px 14px;
    padding:2px 0 2px 10px;
    background:transparent;
    box-shadow:none;
    border:0;
    border-left:2px solid var(--line);
  }
  .main-nav.open .nav-dropdown a{padding:8px 10px!important}
}


/* KillerCMS v3.6.9 — dropdown visibility fix */
.main-nav .nav-item.has-children {
  position: relative;
}

.main-nav .nav-item.has-children > .nav-dropdown {
  display: none !important;
}

.main-nav .nav-item.has-children:hover > .nav-dropdown,
.main-nav .nav-item.has-children:focus-within > .nav-dropdown {
  display: block !important;
}

/* Ensure child links never inherit top-level flex behaviour */
.main-nav .nav-dropdown > a {
  display: block !important;
  width: 100%;
}

/* Desktop: dropdown is layered underneath its parent only */
@media (min-width: 801px) {
  .main-nav .nav-item.has-children > .nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    min-width: 230px;
    margin-top: 0;
  }
}

/* Mobile: nested links are visible only when the menu itself is open */
@media (max-width: 800px) {
  .main-nav:not(.open) .nav-item.has-children > .nav-dropdown {
    display: none !important;
  }

  .main-nav.open .nav-item.has-children > .nav-dropdown {
    display: block !important;
    position: static;
    width: 100%;
    min-width: 0;
  }
}
