  :root{
    --soot:#1E1A17;
    --soot-2:#2B2521;
    --limewash:#F3EEE3;
    --brick:#8C3A2B;
    --ember:#C9622B;
    --slate:#3E4A50;
    --brass:#A9832E;
    --paper:#FBF8F2;
    --ink:#241F1B;
  }

  html{scroll-behavior:smooth; scroll-padding-top:84px;}
  body{
    background:var(--limewash);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-size:1.05rem;
    line-height:1.7;
  }
  h1,h2,h3,.display-font{
    font-family:'Fraunces', serif;
    letter-spacing:-0.01em;
  }
  .mono{
    font-family:'IBM Plex Mono', monospace;
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    text-transform:uppercase;
    letter-spacing:.18em;
    font-size:.72rem;
    font-weight:600;
    color:var(--brick);
    display:inline-flex;
    align-items:center;
    gap:.5rem;
  }
  .eyebrow::before{
    content:"";
    display:inline-block;
    width:22px;height:2px;
    background:var(--brass);
  }
  a{color:var(--brick);}
  a:hover{color:var(--ember);}

  /* ---------- Navbar ---------- */
  .navbar-sweep{
    background:rgba(30,26,23,.96);
    border-bottom:2px solid var(--brass);
    padding-top:.7rem; padding-bottom:.7rem;
  }
  .navbar-sweep .navbar-brand{
    font-family:'Fraunces', serif;
    font-weight:700;
    color:var(--paper) !important;
    font-size:1.25rem;
    line-height:1.1;
  }
  .navbar-sweep .navbar-brand small{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-size:.62rem;
    letter-spacing:.2em;
    color:var(--brass);
    font-weight:500;
  }
  .navbar-sweep .nav-link{
    color:#e7ded1 !important;
    font-weight:500;
    font-size:.92rem;
    margin:0 .35rem;
  }
  .navbar-sweep .nav-link:hover{color:var(--ember) !important;}
  .btn-ember{
    background:var(--ember);
    border:1px solid var(--ember);
    color:#fff;
    font-weight:600;
    letter-spacing:.02em;
  }
  .btn-ember:hover{background:var(--brick); border-color:var(--brick); color:#fff;}
  .btn-outline-brass{
    border:1px solid var(--brass);
    color:var(--brass);
    font-weight:600;
  }
  .btn-outline-brass:hover{background:var(--brass); color:var(--soot);}

  /* ---------- Hero ---------- */
  #home{
    position:relative;
    min-height:92vh;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:var(--soot);
  }
  .hero-carousel, .hero-carousel .carousel-inner, .hero-carousel .carousel-item{
    position:absolute; inset:0; height:100%;
  }
  .hero-carousel .carousel-item img{
    width:100%; height:100%; object-fit:cover;
    filter:saturate(.9) contrast(1.05);
  }
  .hero-scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(30,26,23,.35) 0%, rgba(30,26,23,.55) 55%, rgba(30,26,23,.94) 100%);
  }
  .hero-content{
    position:relative;
    left: 100px;
    z-index:2;
    color:var(--paper);
    padding-bottom:5.5rem;
  }
  .hero-content .eyebrow{color:var(--brass);}
  .hero-content .eyebrow::before{background:var(--ember);}
  .hero-content h1{
    font-size:clamp(2.6rem, 6vw, 5rem);
    font-weight:800;
    line-height:1.02;
    margin:.5rem 0 1rem;
  }
  .hero-content p.lead{
    max-width:38rem;
    color:#e9e1d3;
    font-size:1.15rem;
  }

  /* Brush-stroke divider — signature element */
  .brush-divider{
    position:relative;
    height:64px;
    background:var(--soot);
    overflow:hidden;
  }
  .brush-divider svg{width:100%; height:100%; display:block;}

  /* ---------- Section rhythm ---------- */
  section{padding:6rem 0;}
  .section-title{
    font-size:clamp(1.9rem, 3.2vw, 2.6rem);
    font-weight:700;
    margin:.35rem 0 1.25rem;
  }
  .section-dark{background:var(--soot); color:var(--paper);}
  .section-dark .eyebrow{color:var(--brass);}
  .section-dark .eyebrow::before{background:var(--ember);}
  .section-alt{background:var(--paper);}

  /* ---------- About ---------- */
  .about-portrait{
    border-radius:6px;
    overflow:hidden;
    border:1px solid rgba(140,58,43,.25);
    box-shadow:0 18px 40px -20px rgba(30,26,23,.4);
  }
  .about-portrait img{width:100%; display:block;}
  .badge-nacs{
    display:inline-flex; align-items:center; gap:.6rem;
    border:1px solid rgba(140,58,43,.35);
    background:#fff;
    padding:.6rem 1rem;
    border-radius:4px;
    font-family:'IBM Plex Mono', monospace;
    font-size:.8rem;
  }
  .badge-nacs i{color:var(--brick); font-size:1.1rem;}

  /* ---------- Testimonials ---------- */
  .quote-card{
    background:#fff;
    border-top:3px solid var(--brass);
    border-radius:4px;
    padding:1.9rem 1.9rem 1.5rem;
    height:100%;
    box-shadow:0 12px 28px -22px rgba(30,26,23,.5);
  }
  .quote-mark{
    font-family:'Fraunces', serif;
    font-size:3rem;
    color:var(--brick);
    line-height:.6;
    display:block;
    margin-bottom:.5rem;
  }
  .quote-card p.q-text{font-style:italic; color:#3a332d;}
  .quote-card .q-author{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--slate);
    margin-top:1rem;
  }

  /* ---------- Services ---------- */
  .service-card{
    background:#fff;
    border-radius:6px;
    padding:2.1rem 1.7rem;
    height:100%;
    border:1px solid rgba(62,74,80,.12);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .service-card:hover{
    transform:translateY(-6px);
    box-shadow:0 22px 40px -24px rgba(30,26,23,.45);
  }
  .service-icon{
    width:52px; height:52px;
    border-radius:50%;
    background:rgba(169,131,46,.12);
    color:var(--brick);
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem;
    margin-bottom:1.1rem;
  }
  .service-card h3{font-size:1.2rem; font-weight:700; margin-bottom:.6rem;}
  .service-note{
    font-family:'IBM Plex Mono', monospace;
    font-size:.78rem;
    color:var(--brick);
    margin-top:.8rem;
    display:block;
  }

  /* ---------- Gallery ---------- */
  .gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:6px;
    aspect-ratio:4/3;
    cursor:pointer;
  }
  .gallery-item img{
    width:100%; height:100%; object-fit:cover;
    transition:transform .5s ease;
  }
  .gallery-item:hover img{transform:scale(1.08);}
  .gallery-overlay{
    position:absolute; inset:0;
    background:rgba(30,26,23,.0);
    display:flex; align-items:center; justify-content:center;
    color:#fff;
    opacity:0;
    transition:opacity .25s ease, background .25s ease;
  }
  .gallery-item:hover .gallery-overlay{
    opacity:1;
    background:rgba(30,26,23,.45);
  }
  .gallery-overlay i{font-size:1.6rem;}

  /* ---------- Contact ---------- */
  .contact-panel{background:var(--soot); color:var(--paper);}
  .contact-detail{
    display:flex; gap:.9rem; align-items:flex-start;
    margin-bottom:1.4rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:.92rem;
  }
  .contact-detail i{color:var(--brass); font-size:1.15rem; margin-top:.15rem;}
  .contact-form-card{
    background:#fff;
    border-radius:8px;
    padding:2.2rem;
    box-shadow:0 30px 60px -30px rgba(0,0,0,.5);
  }
  .form-control:focus{
    border-color:var(--brick);
    box-shadow:0 0 0 .2rem rgba(140,58,43,.18);
  }
  #contactForm .form-label {
      color: #333;
  }

  /* ---------- Links directory ---------- */
  .directory-card{
    background:#fff;
    border:1px solid rgba(62,74,80,.12);
    border-radius:6px;
    padding:1.4rem 1.5rem;
    height:100%;
  }
  .directory-card h3{font-size:1rem; font-weight:700; margin-bottom:.4rem;}
  .directory-card h3 a{text-decoration:none;}
  .directory-card p{font-size:.9rem; color:#57504a; margin-bottom:0;}
  .directory-card .mono-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:.68rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--brass);
  }

  /* ---------- Footer ---------- */
  footer{
    background:var(--soot);
    color:#b9b0a3;
    padding:2.2rem 0;
    font-size:.85rem;
    border-top:1px solid rgba(169,131,46,.3);
  }
  footer a{color:#e7ded1;}
  footer .social-links a{
    display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px;
    border:1px solid rgba(233,225,211,.25);
    border-radius:50%;
    margin-left:.4rem;
    color:#e7ded1;
    font-size:.95rem;
  }
  footer .social-links a:hover{border-color:var(--brass); color:var(--brass);}

  @media (max-width:767.98px){
    section{padding:4rem 0;}
    .hero-content{padding-bottom:3rem; left: 20px; min-width: 80%; margin: 50px auto;}
  }