
  :root{
    --ink:#0c0e09;
    --surface:#151810;
    --surface-2:#1e2317;
    --surface-3:#272d1e;
    --sage:#9eaa96;
    --sage-bright:#b7c2ae;
    --sage-dim:#5c6656;
    --bone:#ede9dd;
    --bone-dim:#a8a598;
    --orange:#e8590c;
    --orange-bright:#ff7328;
    --line: rgba(237,233,221,0.12);
    --jag: 22px;
    --maxw: 1240px;
    --shadow: 0 20px 50px rgba(0,0,0,0.45);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  body{
    margin:0;
    background:var(--ink);
    color:var(--bone);
    font-family:'Inter', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,h4{
    font-family:'Oswald', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    margin:0;
    color:var(--bone);
  }

  .display{
    font-family:'Bebas Neue', sans-serif;
    letter-spacing:0.015em;
    line-height:0.92;
    text-transform:uppercase;
  }

  .mono{
    font-family:'JetBrains Mono', monospace;
  }

  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}

  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 28px;
  }

  ::selection{ background:var(--orange); color:var(--ink); }

  :focus-visible{
    outline:2px solid var(--orange-bright);
    outline-offset:3px;
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Oswald', sans-serif;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.06em;
    font-size:14.5px;
    padding:15px 26px;
    border-radius:3px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform 0.18s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
    white-space:nowrap;
  }
  .btn:hover{ transform:translateY(-2px); }
  .btn-fill{
    background:var(--orange);
    color:var(--ink);
  }
  .btn-fill:hover{ background:var(--orange-bright); }
  .btn-line{
    border-color:rgba(237,233,221,0.4);
    color:var(--bone);
  }
  .btn-line:hover{ border-color:var(--bone); background:rgba(237,233,221,0.06); }
  .btn-line-dark{
    border-color:rgba(12,14,9,0.35);
    color:var(--ink);
  }
  .btn-line-dark:hover{ border-color:var(--ink); background:rgba(12,14,9,0.08); }

  /* ---------- Eyebrow ---------- */
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--orange-bright);
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
  }
  .eyebrow::before{
    content:"";
    width:26px;
    height:2px;
    background:var(--orange);
    display:inline-block;
  }

  /* ---------- Breadcrumb ---------- */
  .breadcrumb ol{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin:0 0 22px;
    padding:0;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.03em;
    color:var(--bone-dim);
  }
  .breadcrumb a{ color:var(--bone-dim); transition:color 0.2s ease; }
  .breadcrumb a:hover{ color:var(--orange-bright); }
  .breadcrumb li[aria-current]{ color:var(--sage-bright); }
  .breadcrumb .bc-sep{ opacity:0.4; }

  /* ---------- Split layout (text + image) ---------- */
  .split-inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center;
  }
  .split-inner.reverse{ direction:rtl; }
  .split-inner.reverse > *{ direction:ltr; }
  .split-copy p{ color:var(--bone-dim); font-size:16px; margin:0 0 18px; line-height:1.7; }
  .split-copy p:last-child{ margin-bottom:0; }
  .about-principle{
    margin:26px 0 24px;
    padding:17px 20px 15px;
    border-left:4px solid var(--orange-bright);
    background:linear-gradient(90deg, rgba(232,89,12,0.16), rgba(12,14,9,0.15));
  }
  .about-principle strong,
  .about-principle span{ display:block; }
  .about-principle strong{
    color:var(--orange-bright);
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(34px, 4vw, 50px);
    line-height:0.95;
    letter-spacing:0.035em;
    text-transform:uppercase;
  }
  .about-principle span{
    margin-top:7px;
    color:var(--bone);
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.13em;
    text-transform:uppercase;
  }
  .split-media{
    position:relative;
    border-radius:4px;
    overflow:hidden;
    border:1px solid var(--line);
    aspect-ratio:4/5;
  }
  .split-media img{
    width:100%; height:100%; object-fit:cover;
    filter:saturate(0.94);
  }

  /* ---------- Nav ---------- */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    padding:20px 0;
    transition:background 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
  }
  header.scrolled{
    background:rgba(12,14,9,0.92);
    backdrop-filter:blur(8px);
    padding:12px 0;
    box-shadow:0 4px 24px rgba(0,0,0,0.35);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .brand img{ height:52px; width:auto; transition:height 0.3s ease; }
  header.scrolled .brand img{ height:40px; }
  .brand-text{
    font-family:'Oswald', sans-serif;
    font-weight:600;
    font-size:15px;
    letter-spacing:0.03em;
    line-height:1.15;
    text-transform:uppercase;
    color:var(--bone);
  }
  .brand-text span{
    display:block;
    font-family:'JetBrains Mono', monospace;
    font-size:10.5px;
    font-weight:400;
    letter-spacing:0.12em;
    color:var(--sage);
    text-transform:uppercase;
    margin-top:2px;
  }
  .nav-links{
    display:flex;
    align-items:center;
    gap:34px;
    list-style:none;
    margin:0; padding:0;
  }
  .nav-links a{
    font-family:'Oswald', sans-serif;
    font-size:13.5px;
    font-weight:500;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--bone-dim);
    transition:color 0.2s ease;
    position:relative;
  }
  .nav-links a:hover{ color:var(--bone); }
  .nav-right{ display:flex; align-items:center; gap:18px; }
  .nav-phone{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'JetBrains Mono', monospace;
    font-size:14px;
    color:var(--sage-bright);
  }
  .menu-toggle{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:8px;
  }
  .menu-toggle span{
    width:24px; height:2px; background:var(--bone); display:block;
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:flex-end;
    background:#000;
    overflow:hidden;
  }
  .hero-media{
    position:absolute; inset:0;
  }
  .hero-media img{
    width:100%; height:100%; object-fit:cover;
    object-position: 62% center;
    opacity:0.62;
  }
  .hero-media::after{
    content:"";
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(9,11,7,0.55) 0%, rgba(9,11,7,0.35) 30%, rgba(9,11,7,0.55) 62%, var(--ink) 96%),
      linear-gradient(90deg, rgba(9,11,7,0.92) 0%, rgba(9,11,7,0.35) 48%, rgba(9,11,7,0.55) 100%);
  }
  .hero-content{
    position:relative;
    z-index:2;
    width:100%;
    padding:180px 0 96px;
  }
  .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:14px;
    background:rgba(12,14,9,0.55);
    border:1px solid var(--line);
    padding:8px 16px 8px 8px;
    border-radius:40px;
    margin-bottom:28px;
  }
  .hero-badge img{ height:34px; width:auto; }

  /* Sitewide logo: untouched artwork over a local mid-tone contrast plate */
  .home-logo-plate{
    width:82px;
    height:82px;
    flex:0 0 82px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:radial-gradient(circle, #4a5245 0%, #30362d 45%, rgba(12,14,9,0) 73%);
  }
  .home-logo-plate img{
    width:82px;
    height:auto;
    filter:none;
    opacity:1;
    image-rendering:auto;
  }
  header.scrolled .home-logo-plate{
    width:62px;
    height:62px;
    flex-basis:62px;
  }
  header.scrolled .home-logo-plate img{ width:62px; height:auto; }
  .home-logo-plate-small{
    width:44px;
    height:44px;
    flex-basis:44px;
  }
  .home-logo-plate-small img{ width:44px; height:auto; }
  .mobile-logo-plate{
    width:56px;
    height:56px;
    flex:0 0 56px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:radial-gradient(circle, #4a5245 0%, #30362d 45%, rgba(12,14,9,0) 73%);
  }
  .mobile-logo-plate img{
    max-width:48px;
    filter:none;
    opacity:1;
    image-rendering:auto;
  }
  .footer-logo-plate{
    width:66px;
    height:66px;
    flex:0 0 66px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:radial-gradient(circle, #4a5245 0%, #30362d 45%, rgba(12,14,9,0) 73%);
  }
  .footer-logo-plate img{
    width:60px;
    height:auto;
    filter:none;
    opacity:1;
    image-rendering:auto;
  }
  .hero-badge span{
    font-family:'JetBrains Mono', monospace;
    font-size:11.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--sage-bright);
  }
  .google-rating{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin:0 0 22px 12px;
  }
  .google-rating svg{ width:20px; height:20px; flex-shrink:0; }
  .google-rating .stars{
    color:#f5b400;
    font-size:15px;
    letter-spacing:1px;
    line-height:1;
  }
  .google-rating .g-text{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.03em;
    color:var(--bone-dim);
  }
  .google-rating .g-text strong{ color:var(--bone); }
  .hero-slogan{
    display:table;
    margin:0 0 18px;
    padding:9px 16px 8px;
    border-left:4px solid var(--orange-bright);
    background:linear-gradient(90deg, rgba(232,89,12,0.2), rgba(12,14,9,0.5));
    color:var(--bone);
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(22px, 2.2vw, 31px);
    line-height:1;
    letter-spacing:0.11em;
    text-transform:uppercase;
    text-shadow:0 2px 18px rgba(0,0,0,0.55);
  }
  .hero-slogan span{ color:var(--orange-bright); }
  .hero h1{
    font-size:clamp(48px, 8.2vw, 108px);
    max-width:15ch;
    color:var(--bone);
  }
  .home-page .hero h1{
    font-size:clamp(46px, 6.6vw, 88px);
  }
  .hero h1 em{
    font-style:normal;
    color:var(--orange-bright);
  }
  .hero-sub{
    max-width:560px;
    font-size:18px;
    color:var(--bone-dim);
    margin:26px 0 40px;
  }
  .hero-ctas{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    margin-bottom:52px;
  }
  .trust-strip{
    display:flex;
    flex-wrap:wrap;
    gap:28px 40px;
    padding-top:28px;
    border-top:1px solid var(--line);
  }
  .trust-item{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--bone-dim);
  }
  .trust-item svg{ width:16px; height:16px; color:var(--sage); flex-shrink:0; }

  /* ---------- Jagged cut divider ---------- */
  .cut{
    position:relative;
    height:34px;
    margin-top:-1px;
  }
  .cut svg{ width:100%; height:100%; display:block; }

  /* ---------- Section basics ---------- */
  section{ position:relative; }
  .section-pad{ padding:110px 0; }
  .section-head{
    max-width:640px;
    margin-bottom:64px;
  }
  .section-head h2{
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(36px, 5vw, 58px);
    line-height:0.98;
  }
  .section-head p{
    color:var(--bone-dim);
    font-size:17px;
    margin-top:18px;
    max-width:52ch;
  }
  .center{ text-align:center; margin-left:auto; margin-right:auto; }

  /* ---------- Services ---------- */
  .services{ background:var(--surface); }
  .service-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .service-card{
    display:block;
    background:var(--surface);
    padding:38px 32px 34px;
    transition:background 0.25s ease;
  }
  .service-card:hover{ background:var(--surface-2); }
  .service-more{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:18px;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--orange-bright);
    opacity:0;
    transform:translateX(-6px);
    transition:opacity 0.2s ease, transform 0.2s ease;
  }
  .service-card:hover .service-more{ opacity:1; transform:translateX(0); }
  .service-more svg{ width:13px; height:13px; }
  .service-num{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    color:var(--orange-bright);
    letter-spacing:0.1em;
  }
  .service-icon{
    width:44px; height:44px;
    margin:20px 0 22px;
    color:var(--sage);
  }
  .service-card h3{
    font-size:20px;
    letter-spacing:0.02em;
    margin-bottom:12px;
  }
  .service-card p{
    color:var(--bone-dim);
    font-size:15px;
    margin:0;
  }

  /* ---------- Testimonials ---------- */
  .testimonials{ background:var(--surface); overflow:hidden; }
  .t-head{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:44px;
  }
  .t-head-right{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:16px;
  }
  .t-rating-badge{
    display:inline-flex;
    align-items:center;
    gap:14px;
    background:var(--surface-2);
    border:1px solid var(--line);
    padding:14px 22px;
    border-radius:6px;
  }
  .t-rating-badge svg{ width:28px; height:28px; flex-shrink:0; }
  .t-rating-num{
    font-family:'Bebas Neue', sans-serif;
    font-size:32px;
    color:var(--bone);
    line-height:1;
  }
  .t-rating-meta{ display:flex; flex-direction:column; gap:3px; }
  .t-rating-meta .stars{ color:#f5b400; font-size:14px; letter-spacing:1px; line-height:1; }
  .t-rating-meta span.g-label{
    font-family:'JetBrains Mono', monospace;
    font-size:11.5px;
    color:var(--bone-dim);
    letter-spacing:0.04em;
  }
  .t-nav{ display:flex; gap:10px; }
  .t-arrow{
    width:44px; height:44px;
    border-radius:50%;
    border:1px solid var(--line);
    background:var(--surface-2);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    color:var(--bone);
    padding:0;
    transition:background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
  }
  .t-arrow:hover{ background:var(--surface-3); border-color:var(--sage); transform:translateY(-2px); }
  .t-arrow:disabled{ opacity:0.35; cursor:default; transform:none; }
  .t-arrow:disabled:hover{ background:var(--surface-2); border-color:var(--line); }
  .t-arrow svg{ width:17px; height:17px; flex-shrink:0; }
  .t-grid-wrap{ position:relative; margin:0 -28px; }
  .t-grid-wrap::before, .t-grid-wrap::after{
    content:"";
    position:absolute;
    top:0; bottom:0;
    width:60px;
    z-index:2;
    pointer-events:none;
  }
  .t-grid-wrap::before{ left:0; background:linear-gradient(90deg, var(--surface) 0%, rgba(21,24,16,0) 100%); }
  .t-grid-wrap::after{ right:0; background:linear-gradient(270deg, var(--surface) 0%, rgba(21,24,16,0) 100%); }
  .t-grid{
    display:flex;
    gap:18px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:6px 28px 18px;
  }
  .t-grid::-webkit-scrollbar{ display:none; }
  .t-card{
    background:var(--surface-2);
    border:1px solid var(--line);
    border-radius:6px;
    padding:28px 26px;
    display:flex;
    flex-direction:column;
    gap:14px;
    flex:0 0 340px;
    scroll-snap-align:start;
  }
  .t-card .stars{ color:#f5b400; font-size:14px; letter-spacing:1px; }
  .t-card p{
    color:var(--bone-dim);
    font-size:14.5px;
    line-height:1.65;
    margin:0;
    flex-grow:1;
  }
  .t-card-name{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'Oswald', sans-serif;
    font-size:14px;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--bone);
  }
  .t-card-name svg{ width:15px; height:15px; flex-shrink:0; }
  .t-more{ text-align:center; margin-top:40px; }

  /* ---------- Stats ---------- */
  .stats{ background:var(--ink); }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:40px;
  }
  .stat{
    position:relative;
    padding-top:8px;
  }
  .stat-ring{
    position:absolute;
    top:-46px; left:-18px;
    width:130px; height:130px;
    opacity:0.5;
    pointer-events:none;
  }
  .stat-num{
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(44px, 5vw, 64px);
    color:var(--sage-bright);
    line-height:1;
    display:flex;
    align-items:baseline;
    gap:4px;
  }
  .stat-num span{ font-size:0.5em; color:var(--orange-bright); }
  .stat-label{
    margin-top:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--bone-dim);
  }

  /* ---------- Gallery ---------- */
  .gallery{ background:var(--surface); }
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    grid-auto-rows:190px;
    gap:14px;
  }
  .g-item{
    position:relative;
    overflow:hidden;
    border-radius:2px;
  }
  .g-item img{
    width:100%; height:100%; object-fit:cover;
    transition:transform 0.6s cubic-bezier(.2,.8,.2,1);
    filter:saturate(0.94);
  }
  .g-item:hover img{ transform:scale(1.06); }
  .g-item::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(12,14,9,0) 40%, rgba(12,14,9,0.88) 100%);
  }
  .g-cap{
    position:absolute; left:0; right:0; bottom:0;
    z-index:2;
    padding:16px 18px;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.03em;
    color:var(--bone);
  }
  .g-area{
    display:block;
    margin-top:4px;
    font-size:10.5px;
    letter-spacing:0.07em;
    text-transform:uppercase;
    color:var(--sage-bright);
  }
  .g-tall{ grid-row: span 2; }
  .g-wide{ grid-column: span 2; }

  /* ---------- Process ---------- */
  .process{ background:var(--surface-2); }
  .process-list{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:2px;
    background:var(--line);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .process-item{
    background:var(--surface-2);
    padding:40px 30px;
  }
  .process-num{
    font-family:'Bebas Neue', sans-serif;
    font-size:56px;
    color:var(--sage-dim);
    -webkit-text-stroke:1px var(--sage);
    line-height:1;
  }
  .process-item h3{
    font-size:18px;
    margin:22px 0 10px;
  }
  .process-item p{
    color:var(--bone-dim);
    font-size:14.5px;
    margin:0;
  }

  /* ---------- Areas ---------- */
  .areas{ background:var(--surface); }
  .areas-inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
  }
  .areas-copy p{ color:var(--bone-dim); font-size:16.5px; margin:0 0 26px; }
  .town-list{
    display:flex; flex-wrap:wrap; gap:10px;
    list-style:none; margin:0 0 30px; padding:0;
  }
  .town-list li{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.03em;
    padding:9px 14px;
    border:1px solid var(--line);
    border-radius:20px;
    color:var(--bone-dim);
  }
  .map-panel{
    position:relative;
    aspect-ratio:1/1;
    border:1px solid var(--line);
    border-radius:4px;
    background:var(--surface-2);
    overflow:hidden;
  }
  #essex-map{
    width:100%;
    height:100%;
    background:var(--surface-2);
  }
  .leaflet-container{
    background:var(--surface-2) !important;
    font-family:'JetBrains Mono', monospace !important;
  }
  .leaflet-control-zoom{
    border:1px solid var(--line) !important;
    box-shadow:none !important;
  }
  .leaflet-control-zoom a{
    background:var(--surface-2) !important;
    color:var(--bone) !important;
    border-color:var(--line) !important;
  }
  .leaflet-control-zoom a:hover{
    background:var(--surface-3) !important;
    color:var(--orange-bright) !important;
  }
  .leaflet-control-attribution{
    background:rgba(12,14,9,0.65) !important;
    color:var(--bone-dim) !important;
    font-size:9.5px !important;
    padding:1px 6px !important;
  }
  .leaflet-control-attribution a{ color:var(--sage) !important; }
  .map-pin{
    width:11px; height:11px;
    border-radius:50%;
    background:var(--sage);
    border:2px solid var(--ink);
  }
  .map-pin.accent{
    width:16px; height:16px;
    background:var(--orange);
    border:2px solid var(--ink);
    box-shadow:0 0 0 6px rgba(232,89,12,0.28);
  }
  .map-tooltip.leaflet-tooltip{
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    color:var(--bone) !important;
    font-family:'JetBrains Mono', monospace !important;
    font-size:11.5px !important;
    letter-spacing:0.02em;
    padding:0 !important;
    white-space:nowrap;
  }
  .leaflet-tooltip-right.map-tooltip::before{ display:none !important; }
  .map-hint{
    position:absolute;
    right:10px; bottom:10px;
    z-index:600;
    font-family:'JetBrains Mono', monospace;
    font-size:10px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--bone-dim);
    background:rgba(12,14,9,0.65);
    border:1px solid var(--line);
    padding:5px 9px;
    border-radius:3px;
    pointer-events:none;
  }

  /* ---------- Contact page ---------- */
  .contact-hero{
    background:var(--ink);
    padding:150px 0 86px;
    min-height:430px;
    display:flex;
    align-items:center;
  }
  .contact-page header{
    background:rgba(12,14,9,0.96);
    border-bottom:1px solid var(--line);
  }
  .contact-hero .back-link{
    display:inline-block;
    margin-bottom:30px;
    color:var(--bone-dim);
    font-size:14px;
    transition:color 0.2s ease;
  }
  .contact-hero .back-link:hover{ color:var(--orange-bright); }
  .contact-hero h1{
    font-size:clamp(58px, 8vw, 104px);
    max-width:8ch;
  }
  .contact-hero .page-banner-meta{
    max-width:760px;
    margin:26px 0 0;
    color:var(--bone-dim);
    font-size:18px;
  }
  .map-section{ background:var(--ink); }
  .contact-map-panel{
    width:100%;
    height:clamp(420px, 54vw, 650px);
    aspect-ratio:auto;
  }

  /* ---------- Why choose us ---------- */
  .why-us{ background:var(--surface-2); }
  .why-inner{
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:64px;
    align-items:center;
  }
  .why-list{
    list-style:none;
    margin:0; padding:0;
    display:flex;
    flex-direction:column;
    gap:28px;
  }
  .why-list li{
    display:flex;
    gap:16px;
    align-items:flex-start;
  }
  .why-check{
    flex-shrink:0;
    width:26px; height:26px;
    border-radius:50%;
    background:rgba(158,170,150,0.12);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:2px;
  }
  .why-check svg{ width:14px; height:14px; color:var(--sage-bright); }
  .why-list h3{
    font-size:16.5px;
    letter-spacing:0.01em;
    margin-bottom:6px;
  }
  .why-list p{
    color:var(--bone-dim);
    font-size:14.5px;
    margin:0;
    max-width:44ch;
  }
  .why-media{
    position:relative;
    border-radius:4px;
    overflow:hidden;
    border:1px solid var(--line);
    aspect-ratio:4/5;
  }
  .why-media img{
    width:100%; height:100%; object-fit:cover;
    filter:saturate(0.94);
  }
  .why-media::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(12,14,9,0) 55%, rgba(12,14,9,0.55) 100%);
  }
  .why-media-cap{
    position:absolute; left:0; right:0; bottom:0;
    z-index:2;
    padding:18px 20px;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.03em;
    color:var(--bone);
  }

  /* ---------- FAQ ---------- */
  .faq{ background:var(--ink); }
  .faq-list{
    max-width:820px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:4px;
    overflow:hidden;
  }
  .faq-item{ background:var(--surface); }
  .faq-item summary{
    list-style:none;
    cursor:pointer;
    padding:24px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    font-family:'Oswald', sans-serif;
    font-size:16.5px;
    font-weight:500;
    letter-spacing:0.01em;
    color:var(--bone);
    transition:background 0.2s ease;
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::marker{ content:""; }
  .faq-item summary:hover{ background:var(--surface-2); }
  .faq-icon{
    flex-shrink:0;
    width:22px; height:22px;
    position:relative;
  }
  .faq-icon::before, .faq-icon::after{
    content:"";
    position:absolute;
    background:var(--orange-bright);
    transition:transform 0.25s ease;
    top:50%; left:50%;
  }
  .faq-icon::before{ width:14px; height:2px; transform:translate(-50%,-50%); }
  .faq-icon::after{ width:2px; height:14px; transform:translate(-50%,-50%); }
  .faq-item[open] .faq-icon::after{ transform:translate(-50%,-50%) scaleY(0); }
  .faq-answer{
    padding:0 28px 26px;
    color:var(--bone-dim);
    font-size:15px;
    line-height:1.65;
    max-width:66ch;
  }
  .faq-answer p{ margin:0; }

  /* ---------- Contact form ---------- */
  .contact-section{ background:var(--surface); }
  .contact-inner{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:64px;
    align-items:flex-start;
  }
  .contact-copy p{ color:var(--bone-dim); font-size:16.5px; margin:0 0 28px; max-width:44ch; }
  .contact-alt{
    display:flex;
    flex-direction:column;
    gap:16px;
    padding-top:28px;
    border-top:1px solid var(--line);
  }
  .contact-alt-item{
    display:flex;
    align-items:center;
    gap:14px;
  }
  .contact-alt-icon{
    width:40px; height:40px;
    border-radius:50%;
    background:var(--surface-2);
    border:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }
  .contact-alt-icon svg{ width:17px; height:17px; color:var(--sage-bright); }
  .contact-alt-text{ display:flex; flex-direction:column; gap:2px; }
  .contact-alt-text span{ font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--bone-dim); }
  .contact-alt-text a{ font-family:'Oswald', sans-serif; font-size:16px; font-weight:500; color:var(--bone); }
  .contact-alt-text a:hover{ color:var(--orange-bright); }

  .contact-card{
    background:var(--surface-2);
    border:1px solid var(--line);
    border-radius:6px;
    padding:40px;
    position:relative;
  }
  .form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
  .form-field{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:20px;
  }
  .form-field label{
    font-family:'JetBrains Mono', monospace;
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--bone-dim);
  }
  .form-field input,
  .form-field select,
  .form-field textarea{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:4px;
    padding:13px 15px;
    color:var(--bone);
    font-family:'Inter', sans-serif;
    font-size:14.5px;
    outline:none;
    transition:border-color 0.2s ease, background 0.2s ease;
    width:100%;
  }
  .form-field select{
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8a598' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    background-size:16px;
    padding-right:40px;
  }
  .form-field textarea{ resize:vertical; min-height:110px; font-family:'Inter', sans-serif; }
  .form-field input::placeholder,
  .form-field textarea::placeholder{ color:var(--bone-dim); opacity:0.6; }
  .form-field input:focus,
  .form-field select:focus,
  .form-field textarea:focus{ border-color:var(--orange); background:var(--surface-3); }
  .form-submit{
    width:100%;
    justify-content:center;
    border:none;
  }
  .form-note{
    margin-top:16px;
    font-family:'JetBrains Mono', monospace;
    font-size:11.5px;
    color:var(--bone-dim);
    text-align:center;
  }
  .form-success{
    display:none;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:14px;
    padding:36px 10px;
  }
  .form-success.show{ display:flex; }
  .contact-card.submitted .contact-form{ display:none; }
  .form-success-icon{
    width:54px; height:54px;
    border-radius:50%;
    background:rgba(158,170,150,0.14);
    display:flex; align-items:center; justify-content:center;
  }
  .form-success-icon svg{ width:24px; height:24px; color:var(--sage-bright); }
  .form-success h3{ font-size:19px; }
  .form-success p{ color:var(--bone-dim); font-size:14.5px; max-width:32ch; margin:0; }

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:var(--orange);
    color:var(--ink);
    padding:90px 0;
    position:relative;
    overflow:hidden;
  }
  .cta-banner .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:30px;
    position:relative;
    z-index:1;
  }
  .cta-banner h2{
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(34px, 5.4vw, 60px);
    color:var(--ink);
    max-width:11ch;
    line-height:0.96;
  }
  .cta-phone{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
  .cta-phone .mono{
    font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:rgba(12,14,9,0.65);
  }
  .cta-phone-num{
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(36px,5vw,52px);
    color:var(--ink);
  }
  .cta-actions{ display:flex; gap:14px; flex-wrap:wrap; }

  /* ---------- Footer ---------- */
  footer{
    background:var(--ink);
    padding:70px 0 30px;
    border-top:1px solid var(--line);
  }
  .footer-top{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:48px;
    padding-bottom:50px;
  }
  .foot-brand{ display:flex; align-items:flex-start; gap:14px; }
  .foot-brand img{ height:56px; width:auto; }
  .foot-brand-text{
    font-family:'Oswald', sans-serif;
    font-size:16px;
    font-weight:600;
    letter-spacing:0.02em;
    text-transform:uppercase;
    color:var(--bone);
  }
  .foot-brand-text span{
    display:block;
    font-family:'Inter',sans-serif;
    font-size:13px;
    font-weight:400;
    text-transform:none;
    color:var(--bone-dim);
    margin-top:8px;
    letter-spacing:0.01em;
  }
  .foot-col h4{
    font-size:12px;
    letter-spacing:0.1em;
    color:var(--sage);
    margin-bottom:18px;
    font-family:'JetBrains Mono', monospace;
    font-weight:500;
  }
  .foot-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
  .foot-col a{ color:var(--bone-dim); font-size:14.5px; transition:color 0.2s ease; }
  .foot-col a:hover{ color:var(--bone); }
  .foot-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    padding-top:26px;
    border-top:1px solid var(--line);
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    color:var(--bone-dim);
    letter-spacing:0.02em;
  }
  .foot-legal{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .foot-legal a{ color:var(--bone-dim); text-decoration:underline; text-underline-offset:2px; }
  .foot-legal a:hover{ color:var(--bone); }
  .foot-legal-sep{ opacity:0.5; }
  .foot-social{ display:flex; gap:12px; margin-top:18px; }
  .foot-social a{
    width:36px; height:36px;
    border-radius:50%;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    color:var(--bone-dim);
    transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  }
  .foot-social a:hover{ color:var(--bone); border-color:var(--sage); background:var(--surface-3); }
  .foot-social svg{ width:17px; height:17px; }

  /* ---------- Reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity 0.7s ease, transform 0.7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- Responsive ---------- */
  @media (max-width: 980px){
    .nav-links, .nav-phone{ display:none; }
    .menu-toggle{ display:flex; }
    .service-grid, .home-page .service-grid{ grid-template-columns:repeat(2,1fr); }
    .process-list{ grid-template-columns:repeat(2,1fr); }
    .stats-grid{ grid-template-columns:repeat(2,1fr); row-gap:56px; }
    .areas-inner{ grid-template-columns:1fr; }
    .contact-inner{ grid-template-columns:1fr; gap:44px; }
    .contact-card{ padding:28px; }
    .form-row{ grid-template-columns:1fr; gap:0; }
    .why-inner{ grid-template-columns:1fr; }
    .split-inner{ grid-template-columns:1fr; gap:32px; }
    .split-inner.reverse{ direction:ltr; }
    .split-media{ aspect-ratio:16/9; }
    .why-media{ aspect-ratio:16/9; order:-1; }
    .footer-top{ grid-template-columns:1fr 1fr; row-gap:40px; }
    .gallery-grid{ grid-template-columns:repeat(2,1fr); }
    .g-wide{ grid-column:span 2; }
    .t-card{ flex-basis:300px; }
  }
  @media (max-width: 620px){
    .wrap{ padding:0 20px; }
    .section-pad{ padding:80px 0; }
    .service-grid, .home-page .service-grid{ grid-template-columns:1fr; }
    .process-list{ grid-template-columns:1fr; }
    .stats-grid{ grid-template-columns:1fr 1fr; }
    .footer-top{ grid-template-columns:1fr; }
    .gallery-grid{ grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
    .t-card{ flex-basis:82vw; }
    .t-grid-wrap{ margin:0 -20px; }
    .t-grid{ padding:6px 20px 18px; }
    .t-head{ flex-direction:column; align-items:flex-start; }
    .t-head-right{ align-items:flex-start; width:100%; }
    .t-nav{ display:none; }
    .cta-banner .wrap{ flex-direction:column; align-items:flex-start; }
    .hero-content{ padding:150px 0 70px; text-align:center; }
    .contact-hero{ padding:126px 0 64px; min-height:0; }
    .contact-hero h1{ font-size:58px; }
    .contact-hero .page-banner-meta{ font-size:16px; }
    .contact-map-panel{ height:430px; }
    .hero-badge{ margin-left:auto; margin-right:auto; }
    .hero-slogan{ margin-left:auto; margin-right:auto; }
    .hero h1{ margin-left:auto; margin-right:auto; }
    .hero-sub{ margin-left:auto; margin-right:auto; }
    .hero-ctas{ justify-content:center; }
    .trust-strip{ justify-content:center; }
    .faq-item summary{ padding:18px 20px; font-size:15px; gap:14px; }
    .faq-answer{ padding:0 20px 20px; }
  }

  /* ---------- Emergency CTA treatment ---------- */
  .btn-pulse{
    position:relative;
    animation:btn-pulse-anim 2.2s ease-in-out infinite;
  }
  @keyframes btn-pulse-anim{
    0%, 100% { box-shadow:0 0 0 0 rgba(232,89,12,0.55); }
    50% { box-shadow:0 0 0 12px rgba(232,89,12,0); }
  }
  .emergency-strip{
    background:var(--orange);
    padding:22px 0;
    position:relative;
    z-index:5;
  }
  .emergency-strip .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:18px;
  }
  .emergency-strip-text{
    display:flex;
    align-items:center;
    gap:14px;
    color:var(--ink);
  }
  .emergency-strip-icon{
    width:38px; height:38px;
    border-radius:50%;
    background:rgba(12,14,9,0.15);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }
  .emergency-strip-icon svg{
    width:19px; height:19px;
    animation:phone-ring 1.6s ease-in-out infinite;
  }
  @keyframes phone-ring{
    0%, 100% { transform:rotate(0deg); }
    10% { transform:rotate(-14deg); }
    20% { transform:rotate(12deg); }
    30% { transform:rotate(-10deg); }
    40% { transform:rotate(8deg); }
    50% { transform:rotate(0deg); }
  }
  .emergency-strip-text strong{
    display:block;
    font-family:'Oswald', sans-serif;
    font-size:15px;
    font-weight:600;
    letter-spacing:0.02em;
    text-transform:uppercase;
  }
  .emergency-strip-text span{
    display:block;
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.03em;
    opacity:0.75;
    margin-top:2px;
  }
  .emergency-strip-num{
    font-family:'Bebas Neue', sans-serif;
    font-size:32px;
    color:var(--ink);
    letter-spacing:0.02em;
  }
  @media (max-width: 620px){
    .emergency-strip .wrap{ flex-direction:column; align-items:flex-start; }
    .emergency-strip-num{ font-size:26px; }
  }

  /* ---------- WhatsApp float ---------- */
  .wa-btn{
    position:fixed;
    right:26px; bottom:26px;
    z-index:999;
    width:58px; height:58px;
    border-radius:50%;
    background:#25D366;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    box-shadow:0 4px 20px rgba(37,211,102,0.45), 0 0 0 0 rgba(37,211,102,0.35);
    animation:wa-bob 3s ease-in-out infinite, wa-glow 3s ease-in-out infinite;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .wa-btn:hover{
    transform:scale(1.08) translateY(-2px);
    box-shadow:0 8px 30px rgba(37,211,102,0.6), 0 0 0 9px rgba(37,211,102,0.1);
    animation-play-state:paused;
  }
  .wa-btn:hover .wa-tooltip{
    opacity:1;
    transform:translateY(-50%) translateX(-8px);
  }
  .wa-btn svg{ width:30px; height:30px; flex-shrink:0; }
  .wa-tooltip{
    position:absolute;
    right:calc(100% + 14px);
    top:50%;
    transform:translateY(-50%) translateX(4px);
    background:var(--surface-3);
    border:1px solid var(--line);
    color:var(--bone);
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.02em;
    white-space:nowrap;
    padding:8px 14px;
    border-radius:4px;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.2s ease, transform 0.2s ease;
  }
  .wa-tooltip::after{
    content:"";
    position:absolute;
    left:100%; top:50%;
    transform:translateY(-50%);
    border:6px solid transparent;
    border-left-color:var(--surface-3);
  }
  @keyframes wa-bob{
    0%, 100% { transform:translateY(0); }
    50% { transform:translateY(-7px); }
  }
  @keyframes wa-glow{
    0%, 100% { box-shadow:0 4px 20px rgba(37,211,102,0.4), 0 0 0 0 rgba(37,211,102,0.35); }
    50% { box-shadow:0 6px 30px rgba(37,211,102,0.65), 0 0 0 10px rgba(37,211,102,0.08); }
  }
  @media (max-width: 620px){
    .wa-btn{ right:18px; bottom:18px; width:52px; height:52px; }
    .wa-btn svg{ width:27px; height:27px; }
    .wa-tooltip{ display:none; }
  }


  /* ---------- Mobile menu ---------- */
  .mobile-menu{
    position:fixed; inset:0;
    background:var(--ink);
    z-index:200;
    display:flex;
    flex-direction:column;
    padding:26px 28px;
    transform:translateX(100%);
    transition:transform 0.35s ease;
  }
  .mobile-menu.open{ transform:translateX(0); }
  .mobile-menu-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:60px; }
  .mobile-menu ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:30px; }
  .mobile-menu a{
    font-family:'Bebas Neue', sans-serif;
    font-size:34px;
    color:var(--bone);
    letter-spacing:0.02em;
  }
  .mobile-close{ background:none; border:none; color:var(--bone); font-size:28px; cursor:pointer; }
  .mobile-phone{
    margin-top:auto;
    font-family:'JetBrains Mono', monospace;
    color:var(--sage-bright);
    font-size:18px;
  }
