  :root{
    --ink:#14181f;
    --charcoal:#1b202b;
    --paper:#faf8f4;
    --cream:#f2ede3;
    --brass:#9c7a45;
    --brass-lt:#b6905c;
    --line:#e3ded2;
    --line-dark:#333a49;
    --steel:#6b6a63;
    --steel-lt:#9198a8;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
  body{margin:0; font-family:'Inter',sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased;}
  h1,h2,h3{font-family:'Fraunces',serif; font-weight:500;}
  .label,.btn,.nav-link{font-family:'Inter',sans-serif; text-transform:uppercase; letter-spacing:.08em;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1140px; margin:0 auto; padding:0 24px;}
  button{font-family:inherit;}
  section{position:relative;}

  header{position:sticky; top:0; z-index:60; background:rgba(250,248,244,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
  .header-inner{max-width:1140px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between;}
  .header-inner img{height:76px;}
  .desktop-actions{display:none; align-items:center; gap:20px;}
  @media (min-width:860px){ .desktop-actions{display:flex;} }
  .nav-link{font-size:12px; font-weight:500; color:var(--steel); text-decoration:none;}
  .nav-link:hover{color:var(--ink);}
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:.1em; padding:14px 26px; border-radius:1px; border:1px solid var(--ink); cursor:pointer; text-decoration:none; transition:background .2s ease, color .2s ease;}
  .btn-primary{background:var(--ink); color:#fff;}
  .btn-primary:hover{background:var(--brass); border-color:var(--brass);}
  .btn-outline{background:transparent; color:var(--ink);}
  .btn-outline:hover{background:var(--ink); color:#fff;}
  .btn-outline-lt{background:transparent; color:#fff; border-color:rgba(255,255,255,.35);}
  .btn-outline-lt:hover{background:#fff; color:var(--ink); border-color:#fff;}
  .btn:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}
  .burger{display:flex; background:none; border:none; padding:8px; cursor:pointer;}
  @media (min-width:860px){ .burger{display:none;} }
  .burger span{display:block; width:20px; height:1px; background:var(--ink); margin:5px 0;}
  #mobile-nav{display:none; background:var(--paper); border-bottom:1px solid var(--line); padding:8px 24px 24px;}
  #mobile-nav.open{display:block;}
  #mobile-nav a{display:block; padding:15px 0; font-size:13px; font-weight:500; letter-spacing:.08em; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); text-transform:uppercase;}
  #mobile-nav .mnav-actions{display:flex; flex-direction:column; gap:10px; margin-top:18px;}

  /* Hero */
  .hero{background:var(--charcoal); color:#fff; padding:110px 24px 90px;}
  .hero-inner{max-width:680px; margin:0 auto; text-align:center;}
  .eyebrow{font-size:11px; font-weight:600; color:var(--brass-lt); letter-spacing:.18em; text-transform:uppercase; margin-bottom:30px;}
  h1{font-size:clamp(32px,5.6vw,50px); line-height:1.18; font-weight:500; margin:0 0 26px; color:#f5f2ec;}
  h1 em{font-style:italic; color:var(--brass-lt);}
  .hero-sub{font-family:'Inter',sans-serif; font-size:16.5px; line-height:1.7; color:#b9bcc4; max-width:46ch; margin:0 auto 40px; font-weight:400;}
  .hero-ctas{display:flex; flex-direction:column; gap:12px; max-width:320px; margin:0 auto;}
  .hero-ctas .btn{width:100%; padding:16px 20px;}
  .hero-rule{width:44px; height:1px; background:var(--brass-lt); margin:36px auto 0; opacity:.6;}

  /* Stat row */
  .stats{background:var(--paper); border-bottom:1px solid var(--line); padding-bottom:20px;}
  .stats .wrap{display:flex; flex-direction:column;}
  @media (min-width:720px){ .stats .wrap{flex-direction:row;} }
  .stat{flex:1; padding:34px 8px; text-align:center; border-bottom:1px solid var(--line);}
  @media (min-width:720px){ .stat{border-bottom:none; border-right:1px solid var(--line);} .stat:last-child{border-right:none;} }
  .stat .val{font-family:'Fraunces',serif; font-size:20px; color:var(--ink); font-weight:500;}
  .stat .lbl{font-size:11px; color:var(--steel); letter-spacing:.1em; margin-top:8px; text-transform:uppercase;}

  /* Section heading */
  .section-eyebrow{font-size:11px; font-weight:600; color:var(--brass); letter-spacing:.16em; text-transform:uppercase; margin-bottom:14px;}
  h2{font-size:clamp(26px,4vw,36px); font-weight:500; line-height:1.2; margin:0 0 18px; color:var(--ink);}
  .section-lead{font-family:'Inter',sans-serif; font-size:16px; color:var(--steel); line-height:1.7; max-width:56ch; font-weight:400;}

  /* Services */
  .services{padding:100px 24px;}
  .services-head{max-width:600px; margin:0 auto 56px; text-align:center;}
  .services-head .section-lead{margin:0 auto;}
  .service-grid{max-width:960px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line);}
  @media (min-width:720px){ .service-grid{grid-template-columns:1fr 1fr;} }
  .service-card{padding:44px 10px; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:14px;}
  @media (min-width:720px){
    .service-card{padding:48px 44px;}
    .service-card:nth-child(odd){border-right:1px solid var(--line);}
    .service-card:nth-child(5){
      grid-column:1 / -1;
      border-right:none;
      align-items:center;
      text-align:center;
      max-width:460px;
      margin:0 auto;
      width:100%;
    }
  }
  .service-card-link{text-decoration:none; color:inherit; transition:background .18s ease;}
  .service-card-link:hover{background:var(--cream);}
  .service-card-link:hover .service-more{color:var(--ink); text-decoration:underline;}
  .service-num{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--brass);}
  .service-card h3{font-size:23px; font-weight:500; margin:0; color:var(--ink);}
  .service-card p{font-family:'Inter',sans-serif; font-size:15.5px; line-height:1.75; color:var(--steel); margin:0; font-weight:400;}
  .service-more{font-family:'Inter',sans-serif; font-size:13px; font-weight:600; color:var(--brass); margin-top:4px;}

  /* Gallery */
  .gallery{padding:10px 24px 100px;}
  .photo-grid{max-width:900px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .photo-grid img{width:100%; height:340px; object-fit:cover; display:block; border-radius:1px;}
  @media (max-width:640px){
    .photo-grid{grid-template-columns:1fr;}
    .photo-grid img{height:260px;}
  }

  /* Spec */
  .spec{padding:100px 24px; background:var(--cream);}
  .spec-inner{max-width:900px; margin:0 auto;}
  .spec-head{max-width:600px; margin-bottom:52px;}
  .spec-table{border-top:1px solid var(--line);}
  .spec-row{display:grid; grid-template-columns:200px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--line);}
  @media (max-width:560px){ .spec-row{grid-template-columns:1fr;} }
  .spec-label{font-family:'Fraunces',serif; font-size:16px; font-weight:500; color:var(--ink);}
  .spec-value{font-family:'Inter',sans-serif; font-size:15px; color:var(--steel); line-height:1.7; font-weight:400;}

  /* Coverage */
  .coverage{background:var(--charcoal); color:#fff; padding:100px 24px;}
  .coverage-inner{max-width:900px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:44px;}
  @media (min-width:800px){ .coverage-inner{grid-template-columns:1.1fr 1fr; align-items:start;} }
  .coverage .section-eyebrow{color:var(--brass-lt);}
  .coverage h2{color:#f5f2ec;}
  .coverage .section-lead{color:#a9adb8;}
  .area-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line-dark);}
  .area-list li{font-family:'Fraunces',serif; font-size:17px; font-weight:500; padding:17px 0; border-bottom:1px solid var(--line-dark); display:flex; justify-content:space-between; align-items:center; color:#f5f2ec;}
  .area-list li span{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--brass-lt); font-weight:400;}

  /* CTA */
  .cta{padding:100px 24px;}
  .cta-inner{max-width:960px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:52px;}
  @media (min-width:860px){ .cta-inner{grid-template-columns:1fr 1fr;} }
  .notice{border-left:2px solid var(--brass); padding:18px 22px; margin:28px 0 8px; background:var(--paper);}
  .notice p{margin:0; font-family:'Inter',sans-serif; font-size:14px; color:#40404a; line-height:1.7;}
  .notice strong{color:var(--ink);}
  form{display:flex; flex-direction:column; gap:18px;}
  .field label{display:block; font-size:11px; font-weight:600; margin-bottom:8px; color:var(--ink); letter-spacing:.08em; text-transform:uppercase;}
  .field input, .field textarea{width:100%; border:none; border-bottom:1px solid var(--line); background:transparent; border-radius:0; padding:11px 2px; font-size:15px; font-family:'Inter',sans-serif; color:var(--ink);}
  .field input::placeholder, .field textarea::placeholder{color:#adaba3;}
  .field input:focus, .field textarea:focus{outline:none; border-color:var(--brass);}
  .field textarea{min-height:90px; resize:vertical;}
  .cta-direct{display:flex; align-items:center; gap:16px; border-top:1px solid var(--line); padding-top:22px; margin-top:6px;}
  .cta-direct .num{font-family:'Fraunces',serif; font-size:24px; font-weight:500;}
  .cta-direct .label{font-size:11px; color:var(--steel); letter-spacing:.08em; font-weight:600; text-transform:uppercase;}
  #form-success{display:none; background:var(--cream); border-left:2px solid var(--brass); color:#40402a; padding:16px 18px; font-size:14px; font-family:'Inter',sans-serif;}

  /* FAQ */
  .faq-section{padding:100px 24px; background:var(--cream);}
  .faq-inner{max-width:720px; margin:0 auto;}
  .faq-inner .section-eyebrow, .faq-inner h2{text-align:center;}
  details.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
  details.faq-item summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; font-family:'Fraunces',serif; font-size:18px; font-weight:500; color:var(--ink);}
  details.faq-item summary::-webkit-details-marker{display:none;}
  details.faq-item summary::after{content:'+'; font-family:'Inter',sans-serif; font-size:18px; color:var(--brass); flex-shrink:0; transition:transform .15s ease;}
  details.faq-item[open] summary::after{transform:rotate(45deg);}
  details.faq-item .a{padding:14px 0 0; font-family:'Inter',sans-serif; font-size:15px; color:var(--steel); line-height:1.7; max-width:60ch;}

  /* Footer */
  footer{background:var(--charcoal); color:#9198a8; padding:64px 24px 32px;}
  .footer-logo{margin:0 auto 44px; max-width:1140px;}
  .footer-logo img{height:64px; background:#fff; padding:10px 16px; border-radius:2px;}

  .footer-grid{max-width:1140px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:36px;}
  @media (min-width:700px){ .footer-grid{grid-template-columns:repeat(3,1fr);} }
  .footer-heading{font-family:'Fraunces',serif; color:#f5f2ec; font-size:15px; font-weight:500; margin:0 0 18px;}
  .footer-grid ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; font-size:14px; font-family:'Inter',sans-serif;}
  .footer-contact{display:flex; flex-direction:column; gap:12px; font-size:14px; font-family:'Inter',sans-serif;}
  .footer-bottom{max-width:1140px; margin:40px auto 0; padding-top:22px; border-top:1px solid var(--line-dark); font-size:12px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-family:'IBM Plex Mono',monospace; color:#6b7286;}

/* Service detail pages */
.service-hero{background:var(--charcoal); color:#fff; padding:100px 24px 70px;}
.service-hero-inner{max-width:760px; margin:0 auto;}
.service-hero .eyebrow{text-align:left; justify-content:flex-start;}
.service-hero h1{font-size:clamp(30px,5.2vw,46px); text-align:left; margin:0 0 20px;}
.service-hero p.lead{font-family:'Inter',sans-serif; font-size:17px; line-height:1.7; color:#b9bcc4; max-width:56ch; margin:0 0 32px;}
.service-hero .hero-ctas{flex-direction:row; max-width:none; justify-content:flex-start;}
.service-hero .hero-ctas .btn{width:auto;}

.service-body{padding:80px 24px;}
.service-body-inner{max-width:760px; margin:0 auto;}
.service-body h2{margin-top:56px;}
.service-body h2:first-child{margin-top:0;}
.service-body p{font-family:'Inter',sans-serif; font-size:16px; line-height:1.75; color:var(--steel); margin:0 0 18px;}
.service-body ul{font-family:'Inter',sans-serif; font-size:16px; line-height:1.9; color:var(--steel); padding-left:22px; margin:0 0 18px;}
.service-body ul li::marker{color:var(--brass);}
.service-photo{width:100%; height:340px; object-fit:cover; margin:36px 0; border-radius:1px;}

.breadcrumb{font-family:'Inter',sans-serif; font-size:13px; color:#9198a8; margin-bottom:22px;}
.breadcrumb a{color:#c6a56a; text-decoration:none;}
.breadcrumb a:hover{text-decoration:underline;}

.service-cta-box{background:var(--cream); border-left:2px solid var(--brass); padding:28px 30px; margin:44px 0; text-align:left;}
.service-cta-box h3{font-family:'Fraunces',serif; font-size:20px; font-weight:500; margin:0 0 10px; color:var(--ink);}
.service-cta-box p{margin:0 0 18px;}

.related-services{padding:70px 24px 90px; background:var(--cream);}
.related-inner{max-width:960px; margin:0 auto;}
.related-grid{display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid var(--line); margin-top:32px;}
@media (min-width:640px){ .related-grid{grid-template-columns:repeat(4,1fr);} }
.related-card{padding:26px 8px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink);}
@media (min-width:640px){ .related-card{padding:26px 22px;} .related-card:not(:last-child){border-right:1px solid var(--line);} }
.related-card h3{font-family:'Fraunces',serif; font-size:17px; font-weight:500; margin:0 0 8px;}
.related-card p{font-family:'Inter',sans-serif; font-size:14px; color:var(--steel); margin:0; line-height:1.6;}
