:root{--primary:#1a5f2a;--primary-dark:#0f3d1a;--accent:#f5a623;--text:#222;--text-light:#555;--bg:#fff;--bg-alt:#f8f9fa;--border:#e0e0e0;--radius:8px;--shadow:0 2px 8px rgba(0,0,0,.08)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.6;color:var(--text);background:var(--bg)}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:8px 16px;z-index:100;transition:top .2s}
.skip-link:focus{top:0}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.site-header{background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;gap:16px;flex-wrap:wrap}
.logo img{height:48px;width:auto}
.main-nav ul{display:flex;list-style:none;gap:24px}
.main-nav a{font-weight:500;color:var(--text);padding:8px 0;min-height:44px;display:inline-flex;align-items:center}
.main-nav a[aria-current="page"]{color:var(--primary);border-bottom:2px solid var(--primary)}
.cta-phone{background:var(--primary);color:#fff;padding:12px 20px;border-radius:var(--radius);font-weight:600;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.cta-phone:hover{background:var(--primary-dark);text-decoration:none}
.hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:80px 0;text-align:center}
.hero h1{font-size:clamp(1.75rem,4vw,2.75rem);margin-bottom:16px;line-height:1.2}
.hero p{font-size:clamp(1rem,2vw,1.25rem);margin-bottom:32px;max-width:600px;margin-left:auto;margin-right:auto;opacity:.95}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:var(--radius);font-weight:600;font-size:1rem;min-height:48px;transition:transform .15s,background .15s;border:none;cursor:pointer}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:#222}
.btn-primary:hover{background:#e09500;text-decoration:none}
.btn-secondary{background:transparent;color:#fff;border:2px solid #fff;margin-left:12px}
.btn-secondary:hover{background:#fff;color:var(--primary);text-decoration:none}
.services{padding:64px 0}
.services h2,.why-us h2,.faq h2{text-align:center;font-size:1.75rem;margin-bottom:40px}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.service-card{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:box-shadow .2s}
.service-card:hover{box-shadow:var(--shadow)}
.service-card h3{font-size:1.25rem;margin-bottom:12px;color:var(--primary-dark)}
.service-card p{color:var(--text-light);margin-bottom:16px}
.why-us{background:var(--bg-alt);padding:64px 0}
.features{list-style:none;max-width:500px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.features li{padding:12px 0;border-bottom:1px solid var(--border);font-size:1.05rem}
.features li:last-child{border-bottom:none}
.faq{padding:64px 0}
.faq details{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;background:var(--bg-alt)}
.faq summary{padding:16px 20px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.25rem;color:var(--primary)}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 20px 16px;color:var(--text-light)}
.cta-banner{background:var(--primary-dark);color:#fff;padding:64px 0;text-align:center}
.cta-banner h2{margin-bottom:24px;font-size:1.5rem}
.site-footer{background:#1a1a1a;color:#ccc;padding:48px 0 24px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;margin-bottom:32px}
.site-footer h2{color:#fff;margin-bottom:12px;font-size:1rem;font-weight:600}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:8px}
.site-footer a{color:#ccc}
.site-footer a:hover{color:#fff}
.copyright{text-align:center;padding-top:24px;border-top:1px solid #333;font-size:.875rem;color:#888}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(max-width:768px){
.header-inner{flex-direction:column;align-items:flex-start}
.main-nav ul{flex-wrap:wrap;gap:16px}
.hero{padding:56px 0}
.btn-secondary{margin-left:0;margin-top:12px}
.btn{width:100%}
}

.policy-page{padding:64px 0}
.policy-page h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:8px;color:var(--primary-dark)}
.policy-meta{color:var(--text-light);font-size:.9rem;margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.policy-page section{margin-bottom:32px;max-width:820px}
.policy-page h2{font-size:1.25rem;margin-bottom:12px;color:var(--primary-dark);text-align:left}
.policy-page p{margin-bottom:12px;color:var(--text)}
.policy-page ul{margin:0 0 16px 20px;color:var(--text)}
.policy-page li{margin-bottom:8px}
.policy-page strong{color:var(--primary-dark)}
@media(max-width:768px){.policy-page{padding:40px 0}}

/* Page hero for interior pages */
.page-hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:56px 0;text-align:center}
.page-hero h1{font-size:clamp(1.6rem,3.5vw,2.4rem);margin-bottom:12px;line-height:1.2}
.page-hero p{font-size:clamp(1rem,1.8vw,1.15rem);max-width:640px;margin:0 auto;opacity:.95}

/* Contact page */
.contact-section{padding:64px 0}
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.contact-info h2{font-size:1.5rem;margin-bottom:16px;color:var(--primary-dark)}
.contact-info>p{color:var(--text-light);margin-bottom:24px}
.contact-list{list-style:none;display:flex;flex-direction:column;gap:20px}
.contact-list li{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--bg-alt);border-radius:var(--radius);border-left:4px solid var(--primary)}
.contact-list strong{font-size:.95rem;color:var(--primary-dark)}
.contact-list a{font-size:1.05rem;font-weight:600}
.contact-list span{font-size:.875rem;color:var(--text-light)}

.contact-form-wrap{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:32px}
.contact-form-wrap h2{font-size:1.5rem;margin-bottom:24px;color:var(--primary-dark)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{display:flex;flex-direction:column;margin-bottom:16px}
.form-group label{font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--primary-dark)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:1rem;background:#fff;color:var(--text);min-height:48px;transition:border-color .15s,box-shadow .15s}
.form-group textarea{min-height:auto;resize:vertical}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,95,42,.15)}
.form-group.checkbox{flex-direction:row;align-items:flex-start;gap:10px}
.form-group.checkbox input{width:auto;min-height:auto;margin-top:4px}
.form-group.checkbox label{font-weight:400;font-size:.875rem;margin:0;color:var(--text)}
.form-note{font-size:.8rem;color:var(--text-light);margin-top:12px;text-align:center}

/* About page */
.about-content{padding:64px 0}
.about-grid{display:grid;grid-template-columns:2fr 1fr;gap:48px;align-items:start}
.about-text h2{font-size:1.4rem;margin:32px 0 12px;color:var(--primary-dark)}
.about-text h2:first-child{margin-top:0}
.about-text p{margin-bottom:12px;color:var(--text)}
.about-list,.coverage-list{margin:0 0 16px 20px}
.about-list li,.coverage-list li{margin-bottom:8px;color:var(--text)}
.about-stats{display:flex;flex-direction:column;gap:16px;position:sticky;top:100px}
.stat-card{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center}
.stat-number{display:block;font-size:2rem;font-weight:700;color:var(--primary);line-height:1}
.stat-label{display:block;font-size:.875rem;color:var(--text-light);margin-top:8px}

@media(max-width:900px){
.contact-grid,.about-grid{grid-template-columns:1fr;gap:32px}
.about-stats{position:static;flex-direction:row;flex-wrap:wrap}
.stat-card{flex:1 1 140px}
}
@media(max-width:600px){
.form-row{grid-template-columns:1fr}
.contact-form-wrap{padding:20px}
}

/* ---- Section intro ---- */
.section-intro{text-align:center;color:var(--text-light);max-width:640px;margin:0 auto 32px}

/* ---- Pricing table ---- */
.pricing-table-wrap{overflow-x:auto;margin:24px 0;border-radius:var(--radius);border:1px solid var(--border)}
.pricing-table{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff}
.pricing-table thead{background:var(--primary-dark);color:#fff}
.pricing-table th{text-align:left;padding:14px 16px;font-weight:600;font-size:.9rem;letter-spacing:.02em}
.pricing-table td{padding:14px 16px;border-top:1px solid var(--border);color:var(--text)}
.pricing-table tbody tr:nth-child(even){background:var(--bg-alt)}
.pricing-table td:first-child{font-weight:600;color:var(--primary-dark)}

/* ---- Process steps ---- */
.process-steps{list-style:none;counter-reset:step;max-width:720px;margin:0 auto;padding:0}
.process-steps li{counter-increment:step;position:relative;padding:16px 0 16px 56px;border-bottom:1px solid var(--border);color:var(--text)}
.process-steps li:last-child{border-bottom:none}
.process-steps li::before{content:counter(step);position:absolute;left:0;top:14px;width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem}
.process-steps strong{color:var(--primary-dark)}

/* ---- Case study cards ---- */
.case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:24px}
.case-card{background:var(--bg-alt);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);padding:24px}
.case-card h3{font-size:1.05rem;color:var(--primary-dark);margin-bottom:10px}
.case-card p{color:var(--text);font-size:.95rem}

@media(max-width:600px){
.pricing-table th,.pricing-table td{padding:10px 12px;font-size:.85rem}
.process-steps li{padding-left:48px}
.process-steps li::before{width:30px;height:30px;font-size:.85rem}
}

/* ---- Two-column layout ---- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:24px}
.two-col h3{font-size:1.1rem;color:var(--primary-dark);margin-bottom:12px}
@media(max-width:700px){.two-col{grid-template-columns:1fr;gap:24px}}

/* ---- Hero with background image ---- */
.page-hero--image{position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;background-image:linear-gradient(135deg,rgba(15,61,26,.78),rgba(26,95,42,.72)),url('../images/hero.webp')}
@supports not (background-image:linear-gradient(0deg,rgba(0,0,0,0),rgba(0,0,0,0))){.page-hero--image{background-image:url('../images/hero.jpg')}}
.page-hero--image::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,61,26,.78),rgba(26,95,42,.72));z-index:0}
.page-hero--image>.container{position:relative;z-index:1}
.page-hero--image h1,.page-hero--image p{text-shadow:0 1px 3px rgba(0,0,0,.35)}

/* ---- Before/after gallery ---- */
.gallery{padding:56px 0;background:var(--bg)}
.gallery h2{text-align:center;font-size:1.6rem;margin-bottom:8px;color:var(--primary-dark)}
.gallery .gallery-intro{text-align:center;color:var(--text-light);max-width:600px;margin:0 auto 32px}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:900px;margin:0 auto}
.gallery-item{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:#000}
.gallery-item img{width:100%;height:auto;display:block;aspect-ratio:3/4;object-fit:cover}
.gallery-item::after{content:attr(data-label);position:absolute;top:12px;left:12px;background:rgba(0,0,0,.7);color:#fff;padding:6px 12px;border-radius:4px;font-size:.85rem;font-weight:600;letter-spacing:.03em}
@media(max-width:600px){.gallery{padding:40px 0}.gallery h2{font-size:1.35rem}.gallery-grid{gap:12px}}

/* ---- Banner hero (image alone, no overlay) ---- */
.hero--banner{padding:0;background:none;color:inherit;text-align:center}
.hero-image-wrap{padding:0;max-width:100%}
.hero-image-wrap img{width:100%;height:auto;display:block}
.hero-cta{display:flex;gap:12px;justify-content:center;padding:32px 20px}
.hero-cta .btn{width:auto}
@media(max-width:600px){.hero-cta{flex-direction:column;align-items:stretch;padding:20px}}

/* ---- Hero + form split section ---- */
.hero-form{padding:48px 0 32px;background:var(--bg)}
.hero-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;max-width:1100px;margin:0 auto}
.hero-form-text h1{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.2;margin-bottom:16px;color:var(--primary-dark)}
.hero-form-text p{color:var(--text-light);margin-bottom:20px;font-size:1.02rem}
.hero-form-text .trust-list{list-style:none;padding:0;margin:0 0 20px}
.hero-form-text .trust-list li{padding:6px 0;color:var(--text);font-size:.95rem}
.hero-form-text .trust-list li::before{content:"✓";color:var(--primary);font-weight:700;margin-right:10px}
.hero-form-call{display:inline-flex;align-items:center;gap:8px;color:var(--primary-dark);font-weight:600;margin-top:8px}
.hero-form-card{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.hero-form-card h2{font-size:1.15rem;color:var(--primary-dark);margin-bottom:4px}
.hero-form-card .form-sub{font-size:.85rem;color:var(--text-light);margin-bottom:16px}
.hero-form-card .form-group{margin-bottom:12px}
.hero-form-card label{font-size:.85rem;font-weight:600;color:var(--primary-dark);margin-bottom:4px;display:block}
.hero-form-card input,.hero-form-card select,.hero-form-card textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.95rem;background:#fff;min-height:44px}
.hero-form-card textarea{min-height:70px;resize:vertical}
.hero-form-card .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-form-card .btn{width:100%;margin-top:8px}
.hero-form-status{margin-top:10px;font-size:.85rem;text-align:center;color:var(--primary-dark)}
@media(max-width:820px){.hero-form-grid{grid-template-columns:1fr;gap:24px}}
@media(max-width:420px){.hero-form-card .form-row-2{grid-template-columns:1fr}}

/* ---- Sticky header (already sticky; harden it) ---- */
.site-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 1px 0 var(--border)}
.site-header.is-scrolled{box-shadow:0 2px 8px rgba(0,0,0,.08)}

/* ---- Sticky mobile phone button ---- */
.sticky-call{
  display:flex;align-items:center;justify-content:center;gap:8px;
  position:fixed;bottom:24px;right:24px;left:auto;z-index:200;
  background:var(--primary);color:#fff;font-weight:700;font-size:1rem;
  padding:14px 22px;text-decoration:none;border-radius:999px;
  box-shadow:0 6px 20px rgba(0,0,0,.2);
  min-height:52px;
}
.sticky-call:hover,.sticky-call:focus{background:var(--primary-dark);text-decoration:none;color:#fff}
@media(max-width:768px){
  .sticky-call{
    display:flex;align-items:center;justify-content:center;gap:8px;
    position:fixed;bottom:0;left:0;right:0;z-index:200;
    background:var(--primary);color:#fff;font-weight:700;font-size:1.05rem;
    padding:16px 20px;text-decoration:none;
    box-shadow:0 -2px 10px rgba(0,0,0,.15);
    min-height:56px;
  }
  .sticky-call:hover,.sticky-call:focus{background:var(--primary-dark);text-decoration:none;color:#fff}
  .sticky-call .phone-icon{font-size:1.15rem}
  /* Push page content up so nothing is hidden behind the button */
  body{padding-bottom:64px}
}

/* ---- Accessibility: links inside labels must be distinguishable by more than colour ---- */
.form-group.checkbox label a,
.hero-form-card .form-group a,
form a[href$="privacy.html"],
form a[href$="terms.html"]{
  text-decoration:underline;
  text-underline-offset:2px;
  font-weight:600;
  color:var(--primary-dark);
}
.form-group.checkbox label a:hover,
form a[href$="privacy.html"]:hover{color:var(--primary)}
