:root {
  --ivory: #f4f0e8;
  --paper: #fbf8f2;
  --green: #153a2d;
  --green-2: #214d3e;
  --copper: #ad6927;
  --charcoal: #272b29;
  --muted: #6f746f;
  --line: #d8d0c4;
  --white: #fff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: Inter, system-ui, sans-serif; background:var(--paper); color:var(--charcoal); line-height:1.6; }
img { max-width:100%; display:block; }
a { color:inherit; }
.container { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:50; background:rgba(251,248,242,.97); border-bottom:1px solid rgba(21,58,45,.12); backdrop-filter:blur(10px); }
.nav-wrap { height:92px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand img { width:295px; height:auto; margin:-18px 0; }
.desktop-nav { display:flex; align-items:center; gap:28px; font-size:.91rem; font-weight:600; }
.desktop-nav a { text-decoration:none; }
.desktop-nav a:not(.button):hover { color:var(--copper); }
.menu-toggle,.mobile-nav { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:14px 22px; background:var(--copper); color:#fff; text-decoration:none; border:1px solid var(--copper); font-weight:700; font-size:.88rem; letter-spacing:.03em; cursor:pointer; transition:.2s ease; }
.button:hover { background:#8e551d; border-color:#8e551d; transform:translateY(-1px); }
.button-small { padding:10px 16px; }
.hero { position:relative; overflow:hidden; min-height:690px; background:
  linear-gradient(90deg, rgba(18,38,31,.98) 0%, rgba(18,38,31,.91) 48%, rgba(18,38,31,.55) 72%, rgba(18,38,31,.35) 100%),
  radial-gradient(circle at 80% 45%, #a27d56 0, #74543c 25%, #283b31 65%); color:#fff; }
.hero:after { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.1) 50%, transparent 50.2%); background-size:80px 80px; pointer-events:none; }
.hero-grid { min-height:690px; display:grid; grid-template-columns:1.45fr .75fr; gap:80px; align-items:center; position:relative; z-index:2; }
.eyebrow { margin:0 0 14px; font-size:.77rem; letter-spacing:.2em; font-weight:700; color:#d6b07f; }
.eyebrow.copper { color:var(--copper); }
h1,h2,h3 { margin-top:0; color:var(--green); font-family:"Cormorant Garamond", Georgia, serif; line-height:1.02; }
.hero h1 { color:#fff; font-size:clamp(3.3rem, 6vw, 6.4rem); max-width:850px; margin-bottom:28px; font-weight:600; }
.hero-lede { font-size:1.18rem; max-width:700px; color:#ebe7df; margin-bottom:30px; }
.hero-actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.text-link { color:inherit; font-weight:700; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }
.text-link:hover { color:var(--copper); }
.service-area-note { margin-top:28px; color:#c9d0cc; font-size:.92rem; max-width:650px; }
.hero-card { background:var(--ivory); color:var(--charcoal); box-shadow:0 28px 80px rgba(0,0,0,.26); }
.hero-card img { width:100%; }
.hero-card-copy { padding:24px 26px 28px; display:grid; gap:8px; }
.hero-card-copy strong { color:var(--green); font-family:"Cormorant Garamond", Georgia, serif; font-size:1.55rem; }
.hero-card-copy span { font-size:.92rem; color:#666; }
.section-pad { padding:100px 0; }
.split-intro { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
h2 { font-size:clamp(2.5rem, 4vw, 4.1rem); font-weight:600; margin-bottom:22px; }
.intro-copy { font-size:1.08rem; color:#555d58; }
.intro-copy p:first-child { margin-top:30px; }
.services { background:var(--ivory); }
.section-heading { max-width:760px; margin-bottom:48px; }
.section-heading > p:last-child { color:var(--muted); font-size:1.05rem; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:275px; padding:34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.3); transition:.2s ease; }
.service-card:hover { background:#fff; transform:translateY(-3px); box-shadow:0 14px 30px rgba(27,49,40,.07); }
.service-number { color:var(--copper); font-weight:700; font-size:.75rem; letter-spacing:.16em; }
.service-card h3 { font-size:1.8rem; margin:48px 0 14px; }
.service-card p { color:#656a66; margin:0; font-size:.95rem; }
.custom { background:var(--green); color:#eae9e4; }
.custom h2 { color:#fff; }
.custom-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:88px; align-items:center; }
.custom-visual { min-height:520px; position:relative; border:1px solid rgba(255,255,255,.2); background:linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,0)); overflow:hidden; }
.joinery-lines { position:absolute; inset:48px; border:2px solid rgba(214,176,127,.55); }
.joinery-lines:before,.joinery-lines:after { content:""; position:absolute; background:rgba(214,176,127,.55); }
.joinery-lines:before { width:2px; top:0; bottom:0; left:38%; }
.joinery-lines:after { height:2px; left:0; right:0; top:58%; }
.custom-badge { position:absolute; right:44px; bottom:40px; font-family:"Cormorant Garamond", Georgia, serif; font-size:3rem; line-height:.84; color:#d6b07f; text-align:right; }
.custom-copy p:not(.eyebrow) { color:#cbd2ce; font-size:1.04rem; }
.check-list { list-style:none; padding:0; margin:28px 0 34px; display:grid; grid-template-columns:1fr 1fr; gap:13px 24px; }
.check-list li { position:relative; padding-left:22px; }
.check-list li:before { content:""; position:absolute; left:0; top:.68em; width:9px; height:1px; background:#d6b07f; }
.custom .text-link { color:#fff; }
.about-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.principles { display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.principle { padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; gap:8px; }
.principle strong { color:var(--green); font-family:"Cormorant Garamond", Georgia, serif; font-size:1.55rem; }
.principle span { color:#646b66; font-size:.94rem; }
.service-area { background:#eee8dd; }
.service-area-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.service-area-grid p:not(.eyebrow) { color:#646964; max-width:580px; }
.towns { display:flex; flex-wrap:wrap; gap:10px; }
.towns span { padding:11px 14px; border:1px solid #c9b9a5; background:rgba(255,255,255,.35); font-weight:600; font-size:.9rem; }
.contact { background:#102d24; color:#e8ece9; }
.contact h2 { color:#fff; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.contact-copy > p:not(.eyebrow) { color:#c8d0cc; }
.small-note { margin-top:34px; font-size:.78rem; opacity:.7; }
.contact-form { display:grid; gap:16px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
label { display:grid; gap:7px; color:#d8ddd9; font-size:.84rem; font-weight:600; }
input,textarea { width:100%; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.05); padding:13px 14px; color:#fff; font:inherit; outline:none; }
input:focus,textarea:focus { border-color:#d6b07f; }
.contact-form .button { justify-self:start; margin-top:4px; }
.site-footer { background:#0a2019; color:#aeb9b3; padding:52px 0; }
.footer-grid { display:grid; grid-template-columns:1.4fr .8fr 1fr; gap:50px; align-items:end; }
.footer-brand img { filter:brightness(0) invert(1); opacity:.9; width:260px; margin:-20px 0; }
.footer-brand p { max-width:520px; font-size:.88rem; }
.footer-links { display:grid; gap:8px; }
.footer-links a { text-decoration:none; font-size:.88rem; }
.footer-links a:hover { color:#fff; }
.footer-note { text-align:right; font-size:.8rem; }
@media (max-width: 900px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:block; border:0; background:transparent; color:var(--green); font-size:1.6rem; }
  .mobile-nav { display:none; position:absolute; top:92px; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); padding:18px 24px 24px; }
  .mobile-nav.open { display:grid; gap:13px; }
  .mobile-nav a { text-decoration:none; font-weight:700; }
  .hero-grid,.split-intro,.custom-grid,.about-grid,.service-area-grid,.contact-grid { grid-template-columns:1fr; }
  .hero { min-height:auto; }
  .hero-grid { padding:85px 0; gap:48px; }
  .hero-card { max-width:560px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .custom-grid,.about-grid,.contact-grid { gap:52px; }
  .footer-grid { grid-template-columns:1fr; align-items:start; }
  .footer-note { text-align:left; }
}
@media (max-width: 620px) {
  .container { width:min(100% - 32px, 1180px); }
  .nav-wrap { height:78px; }
  .brand img { width:235px; margin:-14px 0; }
  .mobile-nav { top:78px; }
  .section-pad { padding:72px 0; }
  .hero-grid { padding:66px 0; }
  .hero h1 { font-size:3.15rem; }
  .service-grid,.check-list,.principles,.field-row { grid-template-columns:1fr; }
  .service-card { min-height:auto; }
  .service-card h3 { margin-top:28px; }
  .custom-visual { min-height:390px; }
}
