:root{
  --stone:#F1F4F2;
  --stone-deep:#E4EBE8;
  --paper:#FFFFFF;
  --ink:#1E3436;
  --ink-soft:rgba(30,52,54,0.66);
  --copper:#B5754C;
  --copper-deep:#8A5A3C;
  --copper-light:#D9A87C;
  --forge:#3E4A3C;
  --sage:#E3EDE3;
  --sage-line:rgba(62,74,60,0.16);
  --line:rgba(30,52,54,0.13);
  --radius:3px;
  --max:1240px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
body{
  margin:0;
  background:var(--stone);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em; margin:0;}
.mono{font-family:'JetBrains Mono',monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer;}
:focus-visible{outline:2px solid var(--copper); outline-offset:3px;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
section{padding:100px 0; position:relative; overflow:hidden;}

/* ---------- UTILITY BAR ---------- */
.utility-bar{background:var(--ink); color:rgba(241,244,242,0.8);}
.utility-row{display:flex; justify-content:space-between; align-items:center; padding:9px 0; font-size:0.78rem;}
.utility-row a{transition:color 0.2s ease;}
.utility-row a:hover{color:var(--copper-light);}
.utility-left{display:flex; gap:24px;}
.utility-left span{display:flex; align-items:center; gap:6px;}

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(241,244,242,0.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
.logo{display:flex; align-items:center; gap:12px;}
.logo-mark{width:44px; height:auto;}
.logo-text{display:flex; flex-direction:column; line-height:1.05;}
.logo-text .name{font-family:'Fraunces',serif; font-size:1.35rem; font-weight:700; color:var(--ink); letter-spacing:0.01em;}
.logo-text .sub{font-family:'Fraunces',serif; font-size:0.72rem; font-weight:500; color:var(--copper-deep); letter-spacing:0.16em; text-transform:uppercase; margin-top:1px;}
.logo-text small{
  font-family:'JetBrains Mono',monospace; font-size:0.55rem; color:var(--copper-deep);
  letter-spacing:0.14em; text-transform:uppercase; margin-top:3px;
}
nav.links{display:flex; align-items:center; gap:26px; font-size:0.9rem;}
nav.links > a{position:relative; padding-bottom:3px; color:var(--ink); transition:color 0.2s ease;}
nav.links > a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--copper); transition:width 0.25s ease;}
nav.links > a:hover::after{width:100%;}
nav.links > a.current{color:var(--copper-deep); font-weight:600;}

.nav-item{position:relative;}
.nav-drop-btn{
  display:flex; align-items:center; gap:6px; background:none; border:none;
  color:var(--ink); font-family:'Inter',sans-serif; font-size:0.9rem; padding-bottom:3px;
  transition:color 0.2s ease;
}
.nav-drop-btn svg{transition:transform 0.25s ease;}
.nav-item:hover .nav-drop-btn, .nav-item.open .nav-drop-btn{color:var(--copper-deep);}
.nav-item:hover .nav-drop-btn svg, .nav-item.open .nav-drop-btn svg{transform:rotate(180deg);}
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  margin-top:16px; background:var(--paper); border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(30,52,54,0.12); min-width:210px; padding:8px;
  opacity:0; visibility:hidden; transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s; z-index:50;
}
.nav-item:hover .nav-dropdown, .nav-item.open .nav-dropdown{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-dropdown a{display:block; padding:11px 14px; font-size:0.86rem; color:var(--ink); border-radius:var(--radius); white-space:nowrap; transition:background 0.2s ease, color 0.2s ease;}
.nav-dropdown a:hover{background:rgba(181,117,76,0.1); color:var(--copper-deep);}
.nav-dropdown a.current{color:var(--copper-deep); font-weight:600;}

.nav-cta{
  background:var(--ink); color:var(--stone); font-size:0.84rem; font-weight:600;
  padding:12px 22px; border-radius:var(--radius); border:1px solid var(--ink);
  transition:background 0.2s ease, color 0.2s ease;
}
.nav-cta:hover{background:transparent; color:var(--ink);}
.menu-toggle{display:none; background:none; border:none; width:26px; height:18px; position:relative;}
.menu-toggle span, .menu-toggle::before, .menu-toggle::after{
  content:""; position:absolute; left:0; right:0; height:1.6px; background:var(--ink);
  transition:transform 0.25s ease, opacity 0.25s ease, top 0.25s ease;
}
.menu-toggle::before{top:0;}
.menu-toggle span{top:8px;}
.menu-toggle::after{top:16px;}
.menu-toggle[aria-expanded="true"]::before{top:8px; transform:rotate(45deg);}
.menu-toggle[aria-expanded="true"] span{opacity:0;}
.menu-toggle[aria-expanded="true"]::after{top:8px; transform:rotate(-45deg);}

/* ---------- MOBILE MENU ---------- */
.mobile-menu{
  position:fixed; top:0; right:0; bottom:0; width:min(340px,86vw);
  background:var(--stone); z-index:200; transform:translateX(100%);
  transition:transform 0.35s ease; overflow-y:auto; box-shadow:-12px 0 40px rgba(0,0,0,0.15);
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu-inner{padding:26px 24px 40px; display:flex; flex-direction:column;}
.mobile-menu-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:28px;}
.mobile-menu-close{background:none; border:none; color:var(--ink); padding:4px;}
.mobile-link{display:block; padding:15px 4px; border-bottom:1px solid var(--line); color:var(--ink); font-size:0.98rem;}
.mobile-link.current{color:var(--copper-deep); font-weight:600;}
.mobile-cta{margin-top:20px; background:var(--ink); color:var(--stone); text-align:center; font-weight:600; border-radius:var(--radius); border-bottom:none;}
.mobile-accordion{border-bottom:1px solid var(--line);}
.mobile-accordion-btn{width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:none; padding:15px 4px; color:var(--ink); font-family:'Inter',sans-serif; font-size:0.98rem;}
.acc-plus{color:var(--copper); font-family:'JetBrains Mono',monospace; transition:transform 0.25s ease;}
.mobile-accordion-btn[aria-expanded="true"] .acc-plus{transform:rotate(45deg);}
.mobile-accordion-panel{display:flex; flex-direction:column; padding:0 4px 12px 14px;}
.mobile-accordion-panel a{padding:10px 0; color:var(--ink-soft); font-size:0.9rem;}
.mobile-menu-scrim{position:fixed; inset:0; background:rgba(18,30,31,0.5); z-index:199; opacity:0; visibility:hidden; transition:opacity 0.3s ease, visibility 0.3s ease;}
.mobile-menu-scrim.open{opacity:1; visibility:visible;}
body.menu-locked{overflow:hidden;}

/* ---------- STICKY WHATSAPP + BOOK APPOINTMENT BUTTONS ---------- */
.whatsapp-fab{
  position:fixed; right:22px; bottom:22px; z-index:150;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(37,211,102,0.4);
  transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.whatsapp-fab:hover{transform:translateY(-3px); box-shadow:0 12px 30px rgba(37,211,102,0.5);}
.whatsapp-fab svg{width:29px; height:29px;}

.appt-fab{
  position:fixed; right:22px; bottom:92px; z-index:150;
  background:var(--copper); color:#14201F; border:none;
  display:flex; align-items:center; gap:8px;
  padding:13px 18px; border-radius:30px;
  font-family:'Inter',sans-serif; font-weight:600; font-size:0.86rem; white-space:nowrap;
  box-shadow:0 8px 24px rgba(181,117,76,0.4);
  transition:transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.appt-fab:hover{transform:translateY(-3px); background:var(--copper-light); box-shadow:0 12px 30px rgba(181,117,76,0.5);}

/* ---------- HERO (home, full-bleed) ---------- */
.hero{position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; padding:0;}
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media img, .hero-media video{width:100%; height:100%; object-fit:cover; object-position:center 55%; filter:saturate(0.95) contrast(1.02) brightness(1.05);}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(18,30,31,0.15) 0%, rgba(18,30,31,0.3) 55%, rgba(18,30,31,0.6) 100%),
    linear-gradient(90deg, rgba(18,30,31,0.42) 0%, rgba(18,30,31,0.05) 55%);
}
.hero-content{position:relative; z-index:2; width:100%; padding:150px 0 70px;}
.hero-eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:0.76rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--copper-light); margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.hero-eyebrow::before{content:""; width:28px; height:1px; background:var(--copper-light);}
.hero h1{font-size:clamp(2.4rem,5vw,4.1rem); color:#F3F6F5; line-height:1.08; max-width:15ch; text-shadow:0 2px 20px rgba(10,18,18,0.35);}
.hero h1 em{font-style:italic; color:var(--copper-light);}
.hero-sub{margin-top:22px; max-width:44ch; font-size:1.05rem; line-height:1.65; color:rgba(243,246,245,0.9); text-shadow:0 1px 12px rgba(10,18,18,0.3);}
.hero-actions{margin-top:36px; display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{background:var(--copper); color:#14201F; font-weight:600; font-size:0.92rem; padding:15px 28px; border-radius:var(--radius); border:1px solid var(--copper); transition:background 0.2s ease, transform 0.2s ease;}
.btn-primary:hover{background:var(--copper-light); transform:translateY(-1px);}
.btn-secondary{background:transparent; color:#F3F6F5; font-weight:500; font-size:0.92rem; padding:15px 28px; border-radius:var(--radius); border:1px solid rgba(243,246,245,0.35); transition:border-color 0.2s ease, background 0.2s ease;}
.btn-secondary:hover{border-color:var(--copper-light); background:rgba(243,246,245,0.06);}

/* ---------- PAGE HERO (inner pages, shorter) ---------- */
.page-hero{position:relative; min-height:48vh; display:flex; align-items:flex-end; overflow:hidden; padding:0;}
.page-hero-media{position:absolute; inset:0; z-index:0;}
.page-hero-media img{width:100%; height:100%; object-fit:cover; filter:saturate(0.6) contrast(1.05);}
.page-hero-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,30,31,0.62) 0%, rgba(18,30,31,0.9) 100%);}
.page-hero-content{position:relative; z-index:2; width:100%; padding:150px 0 56px;}
.page-hero .hero-eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(2.1rem,4.2vw,3.2rem); color:#F3F6F5; max-width:20ch;}
.page-hero p{margin-top:16px; max-width:56ch; font-size:1.02rem; line-height:1.6; color:rgba(243,246,245,0.82);}

@media (prefers-reduced-motion: reduce){
  .hero-media video{display:none;}
  .hero-media{background-image:url('https://images.pexels.com/videos/8396980/aerial-air-aqua-architecture-8396980.jpeg?auto=compress&cs=tinysrgb&w=1920&h=1080&fit=crop'); background-size:cover; background-position:center 55%;}
}

/* ---------- SEARCH BAR ---------- */
.hero-search{margin-top:42px; max-width:920px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.22); backdrop-filter:blur(10px); border-radius:4px; overflow:hidden;}
.hero-search-tabs{display:flex; gap:2px;}
.hs-tab{background:rgba(255,255,255,0.06); border:none; color:rgba(243,246,245,0.75); font-family:'Fraunces',serif; font-size:0.95rem; padding:14px 30px; transition:background 0.2s ease, color 0.2s ease;}
.hs-tab.active{background:var(--stone); color:var(--ink); font-weight:600;}
.hero-search-fields{display:flex; align-items:end; gap:1px; background:rgba(255,255,255,0.14);}
.hs-field{flex:1; min-width:0; background:rgba(18,30,31,0.35); padding:12px 16px; display:flex; flex-direction:column; gap:6px;}
.hs-field label{font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--copper-light);}
.hs-field select, .hs-field input{background:none; border:none; color:#F3F6F5; font-family:'Inter',sans-serif; font-size:0.88rem; padding:2px 0;}
.hs-field select option{color:var(--ink);}
.hs-clear{background:none; color:rgba(243,246,245,0.7); font-size:0.84rem; font-weight:500; padding:0 16px; align-self:stretch; border:none; white-space:nowrap; transition:color 0.2s ease;}
.hs-clear:hover{color:var(--copper-light); text-decoration:underline;}
.hs-submit{background:var(--copper); color:#14201F; font-weight:600; font-size:0.9rem; padding:0 28px; align-self:stretch; border:none; white-space:nowrap; transition:background 0.2s ease;}
.hs-submit:hover{background:var(--copper-light);}

/* ---------- TRUST STRIP ---------- */
.trust-strip{background:var(--ink); padding:0;}
.trust-row{display:flex; border-top:1px solid rgba(241,244,242,0.12); flex-wrap:wrap;}
.trust-item{flex:1; padding:24px 28px; border-right:1px solid rgba(241,244,242,0.12);}
.trust-item:last-child{border-right:none;}
.trust-item .num{font-family:'JetBrains Mono',monospace; font-size:1.1rem; color:var(--copper-light); font-weight:500;}
.trust-item .lbl{font-size:0.76rem; color:rgba(241,244,242,0.7); margin-top:4px;}

/* ---------- SECTION HEAD ---------- */
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; flex-wrap:wrap;}
.section-eyebrow{font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--copper-deep); margin-bottom:14px; display:block;}
.section-head h2{font-size:clamp(1.8rem,3vw,2.5rem); max-width:18ch; color:var(--ink);}
.section-head p{max-width:38ch; color:var(--ink-soft); font-size:0.98rem; line-height:1.6;}

/* ---------- LEAD FORM CARD (short: name / phone / budget / area) ---------- */
.lead-section{background:var(--stone-deep);}
.lead-card{
  max-width:640px; margin:0 auto; background:var(--paper); border:1px solid var(--line);
  border-radius:6px; padding:44px 40px; text-align:center;
}
.lead-card h2{font-size:1.7rem; margin-bottom:10px;}
.lead-card > p{color:var(--ink-soft); font-size:0.96rem; margin-bottom:32px;}
.lead-form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; text-align:left;}
.lead-field{display:flex; flex-direction:column; gap:6px;}
.lead-field.full{grid-column:1/-1;}
.lead-field label{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--copper-deep);}
.lead-field input, .lead-field select{
  background:var(--stone); border:1px solid var(--line); color:var(--ink);
  padding:12px 14px; font-family:'Inter',sans-serif; font-size:0.92rem; border-radius:var(--radius);
}
.lead-field input:focus, .lead-field select:focus{outline:none; border-color:var(--copper);}
.lead-actions{grid-column:1/-1; display:flex; gap:12px; margin-top:6px; flex-wrap:wrap;}
.lead-actions button{flex:1; min-width:170px;}
.lead-whatsapp{
  background:#25D366; color:#fff; font-weight:600; font-size:0.92rem; padding:14px 24px;
  border:none; border-radius:var(--radius); display:flex; align-items:center; justify-content:center; gap:8px;
  transition:background 0.2s ease;
}
.lead-whatsapp:hover{background:#1FB855;}
.lead-email{
  background:var(--ink); color:var(--stone); font-weight:600; font-size:0.92rem; padding:14px 24px;
  border:none; border-radius:var(--radius); transition:background 0.2s ease;
}
.lead-email:hover{background:var(--copper-deep);}
.lead-note{grid-column:1/-1; font-size:0.78rem; color:var(--ink-soft); margin-top:4px;}
.lead-success{grid-column:1/-1; display:none; padding:14px 16px; background:rgba(181,117,76,0.12); border:1px solid var(--copper); color:var(--copper-deep); font-size:0.88rem; border-radius:var(--radius);}

/* ---------- TESTIMONIALS ---------- */
.testi-section{background:var(--stone-deep);}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.testi-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:30px; display:flex; flex-direction:column;}
.testi-stars{color:var(--copper); font-size:0.9rem; letter-spacing:2px; margin-bottom:16px;}
.testi-card p.quote{font-family:'Fraunces',serif; font-style:italic; font-size:1.05rem; line-height:1.55; color:var(--ink); margin-bottom:20px; flex:1;}
.testi-name{font-size:0.88rem; font-weight:600; color:var(--ink);}
.testi-role{font-size:0.78rem; color:var(--ink-soft);}

/* ---------- SERVICES ---------- */
#services{background:var(--sage);}
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--sage-line); border:1px solid var(--sage-line);}
.service-card{background:var(--paper); padding:36px 28px; display:flex; flex-direction:column;}
.service-icon{margin-bottom:20px;}
.service-card h3{font-size:1.1rem; color:var(--ink); margin-bottom:10px;}
.service-card p{font-size:0.9rem; line-height:1.6; color:var(--ink-soft); margin-bottom:20px;}
.service-tag{margin-top:auto; font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--copper-deep);}
.service-link{margin-top:14px; font-size:0.86rem; font-weight:600; color:var(--ink); border-bottom:1px solid var(--copper); padding-bottom:2px; align-self:flex-start;}

/* ---------- TOOLS (calculators) ---------- */
.tools-section{background:var(--stone-deep);}
.tools-teaser{
  display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap;
  background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:40px 44px;
}
.tools-teaser h2{margin:12px 0 10px;}
.tools-teaser p{color:var(--ink-soft); font-size:0.96rem; max-width:52ch; margin:0;}
.tools-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.tool-card{
  background:var(--paper); padding:34px 32px;
  border:1px solid var(--line); border-radius:10px;
  box-shadow:0 6px 24px rgba(18,30,31,0.07);
}
.tool-card h3{font-size:1.1rem; color:var(--ink); margin-bottom:8px;}
.tool-card > p{font-size:0.9rem; color:var(--ink-soft); margin-bottom:22px; line-height:1.55;}
.calc-row{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
.calc-row label{font-family:'JetBrains Mono',monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft);}
.calc-row input{font-family:'JetBrains Mono',monospace; font-size:0.92rem; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius); background:var(--stone); color:var(--ink);}
.calc-row input:focus{outline:none; border-color:var(--copper);}
.calc-result{display:flex; justify-content:space-between; align-items:center; background:var(--ink); padding:14px 16px; border-radius:var(--radius); margin-top:18px;}
.calc-result-label{font-size:0.78rem; color:rgba(241,244,242,0.7);}
.calc-result-value{font-size:1.2rem; color:var(--copper-light); font-weight:500;}

/* ---------- APPROACH ---------- */
#approach{background:var(--sage);}
.approach-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center;}
.approach-text > p{font-size:0.98rem; line-height:1.7; color:var(--ink-soft); margin:20px 0 32px;}
.pillar-list{display:flex; flex-direction:column; gap:22px;}
.pillar{display:flex; gap:18px;}
.pillar-num{font-size:0.85rem; color:var(--copper); flex-shrink:0; padding-top:2px;}
.pillar h4{font-family:'Fraunces',serif; font-weight:500; font-size:1.02rem; color:var(--ink); margin-bottom:4px;}
.pillar p{font-size:0.88rem; line-height:1.55; color:var(--ink-soft);}
.approach-photo{aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden;}
.approach-photo img{width:100%; height:100%; object-fit:cover; filter:saturate(0.75) contrast(1.03);}

/* ---------- AREAS GRID ---------- */
.areas-section{background:var(--stone-deep);}
.hood-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.hood-card{aspect-ratio:4/5; position:relative; border-radius:var(--radius); overflow:hidden; display:flex; align-items:flex-end; padding:22px; color:#F3F6F5;}
.hood-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform 0.5s ease; filter:saturate(0.7) contrast(1.05);}
.hood-card:hover img{transform:scale(1.05);}
.hood-card::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,30,31,0.18) 0%, rgba(18,30,31,0.3) 40%, rgba(18,30,31,0.88) 100%); z-index:0;}
.hood-card > div{position:relative; z-index:1;}
.hood-card h3{font-size:1.05rem; margin-bottom:4px;}
.hood-card p{font-size:0.78rem; color:rgba(243,246,245,0.78);}
.hood-card .hood-link{display:inline-block; margin-top:10px; font-size:0.78rem; font-weight:600; color:var(--copper-light); border-bottom:1px solid var(--copper-light); padding-bottom:1px;}

/* ---------- PROCESS ---------- */
.process{background:var(--ink); color:#F3F6F5;}
.process .section-head h2{color:#F3F6F5;}
.process .section-head p{color:rgba(243,246,245,0.7);}
.process .section-eyebrow{color:var(--copper-light);}
.process-item{display:grid; grid-template-columns:90px 1fr; gap:28px; padding:28px 0; border-top:1px solid rgba(241,244,242,0.14);}
.process-item:last-child{border-bottom:1px solid rgba(241,244,242,0.14);}
.process-num{font-family:'JetBrains Mono',monospace; font-size:0.95rem; color:var(--copper-light);}
.process-item h3{font-size:1.14rem; color:#F3F6F5; margin-bottom:8px;}
.process-item p{font-size:0.92rem; color:rgba(243,246,245,0.72); max-width:56ch; line-height:1.6;}

/* ---------- CONTENT BLOCK (service/area page prose) ---------- */
.content-block{max-width:760px;}
.content-block p{font-size:1rem; line-height:1.75; color:var(--ink-soft); margin-bottom:20px;}
.content-block h2{margin-bottom:18px;}
.content-two-col{display:grid; grid-template-columns:1.2fr 0.8fr; gap:56px;}
.content-side{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:30px;}
.content-side h4{font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--copper-deep); margin-bottom:16px;}
.content-side ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.content-side li{font-size:0.9rem; color:var(--ink-soft); padding-left:18px; position:relative;}
.content-side li::before{content:"—"; position:absolute; left:0; color:var(--copper);}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:none; padding:22px 0; text-align:left; font-family:'Inter',sans-serif; font-size:1rem; font-weight:500; color:var(--ink);}
.faq-plus{font-family:'JetBrains Mono',monospace; color:var(--copper-deep); font-size:1.2rem; transition:transform 0.25s ease; flex-shrink:0; margin-left:20px;}
.faq-q[aria-expanded="true"] .faq-plus{transform:rotate(45deg);}
.faq-a{padding:0 0 22px;}
.faq-a p{font-size:0.94rem; line-height:1.65; color:var(--ink-soft); max-width:64ch;}

/* ---------- CONTACT ---------- */
.contact{background:var(--ink); color:#F3F6F5;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
.contact-info .section-eyebrow{color:var(--copper-light);}
.contact-info h2{color:#F3F6F5; font-size:clamp(1.8rem,3vw,2.4rem); max-width:14ch; margin-bottom:20px;}
.contact-info p{color:rgba(243,246,245,0.72); font-size:0.98rem; line-height:1.6; max-width:40ch; margin-bottom:32px;}
.contact-detail{display:flex; gap:14px; padding:15px 0; border-top:1px solid rgba(241,244,242,0.14); font-size:0.92rem;}
.contact-detail:last-of-type{border-bottom:1px solid rgba(241,244,242,0.14);}
.contact-detail span:last-child{flex:1; min-width:0;}
.contact-detail .lbl{font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--copper-light); width:110px; flex-shrink:0; padding-top:2px;}
.contact .lead-card{background:rgba(255,255,255,0.04); border-color:rgba(241,244,242,0.16);}
.contact .lead-card h2{color:#F3F6F5;}
.contact .lead-card > p{color:rgba(243,246,245,0.68);}
.contact .lead-field label{color:var(--copper-light);}
.contact .lead-field input, .contact .lead-field select{background:rgba(241,244,242,0.06); border-color:rgba(241,244,242,0.24); color:#F3F6F5;}
.contact .lead-field select option{color:var(--ink);}
.contact .lead-note{color:rgba(243,246,245,0.55);}

/* ---------- APPOINTMENT MODAL ---------- */
.appt-scrim{
  position:fixed; inset:0; background:rgba(18,30,31,0.6); z-index:299;
  opacity:0; visibility:hidden; transition:opacity 0.3s ease, visibility 0.3s ease;
}
.appt-scrim.open{opacity:1; visibility:visible;}
.appt-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-50%) scale(0.96);
  z-index:300; width:min(560px, 92vw); max-height:90vh; overflow-y:auto;
  opacity:0; visibility:hidden; transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}
.appt-modal.open{opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1);}
.appt-card{
  background:var(--paper); border-radius:8px; padding:40px 36px; position:relative;
  box-shadow:0 30px 70px rgba(18,30,31,0.35);
}
.appt-card h2{font-size:1.5rem; margin:10px 0 8px;}
.appt-card > p{color:var(--ink-soft); font-size:0.92rem; margin-bottom:24px;}
.appt-close{
  position:absolute; top:16px; right:16px; background:none; border:none;
  color:var(--ink-soft); padding:6px; transition:color 0.2s ease;
}
.appt-close:hover{color:var(--ink);}
body.appt-locked{overflow:hidden;}

/* ---------- FOOTER ---------- */
footer{background:#14201F; color:rgba(241,244,242,0.72); padding:60px 0 32px;}
.footer-grid{display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:32px; padding-bottom:36px; border-bottom:1px solid rgba(241,244,242,0.12);}
.footer-logo{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.footer-logo img{width:32px; height:auto;}
.footer-logo .name{font-family:'Fraunces',serif; font-size:1.25rem; font-weight:700; color:#F3F6F5; display:block;}
.footer-logo .sub{font-family:'Fraunces',serif; font-size:0.68rem; font-weight:500; color:var(--copper-light); letter-spacing:0.16em; text-transform:uppercase; display:block; margin-top:1px;}
.footer-logo small{display:block; font-family:'JetBrains Mono',monospace; font-size:0.52rem; color:var(--copper-light); letter-spacing:0.14em; text-transform:uppercase; margin-top:6px;}
.footer-blurb{font-size:0.86rem; line-height:1.6; color:rgba(241,244,242,0.68); max-width:36ch;}
.footer-col h4{font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--copper-light); margin-bottom:16px; font-weight:500;}
.footer-col{display:flex; flex-direction:column;}
.footer-col a{font-size:0.86rem; padding:6px 0; color:rgba(241,244,242,0.72); transition:color 0.2s ease;}
.footer-col a:hover{color:var(--copper-light);}
.footer-social{display:flex; gap:14px; margin-top:14px;}
.footer-social a{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; padding:0;
  border:1px solid rgba(241,244,242,0.22); border-radius:50%;
  color:rgba(241,244,242,0.75);
  transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.footer-social a:hover{color:#14201F; background:var(--copper-light); border-color:var(--copper-light);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:24px; font-size:0.76rem; flex-wrap:wrap; gap:12px; color:rgba(241,244,242,0.55);}

/* ---------- REVEAL ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity 0.7s ease, transform 0.7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .tools-grid{grid-template-columns:1fr;}
  .approach-grid{grid-template-columns:1fr; gap:36px;}
  .approach-photo{aspect-ratio:16/9;}
  .hood-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr; gap:44px;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:28px 20px;}
  .trust-item{flex:1 1 50%; border-bottom:1px solid rgba(241,244,242,0.12);}
  .content-two-col{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .tools-teaser{flex-direction:column; align-items:flex-start; padding:32px 26px;}
}
@media (max-width:760px){
  .wrap{padding:0 20px;}
  .utility-left span:nth-child(2){display:none;}
  nav.links{display:none;}
  .nav-cta{display:none;}
  .menu-toggle{display:block;}
  .hero-content{padding:110px 0 46px;}
  .page-hero-content{padding:110px 0 40px;}
  .hero-search-fields{flex-direction:column;}
  .hs-field{width:100%;}
  .hs-submit{padding:16px; margin-top:2px;}
  .hs-clear{padding:12px;}
  section{padding:70px 0;}
  .services-grid{grid-template-columns:1fr;}
  .hood-grid{grid-template-columns:1fr;}
  .process-item{grid-template-columns:44px 1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .lead-form-grid{grid-template-columns:1fr;}
  .lead-card{padding:32px 22px;}
  .whatsapp-fab{width:52px; height:52px; right:16px; bottom:16px;}
  .appt-fab{right:16px; bottom:78px; padding:12px; border-radius:50%;}
  .appt-fab span{display:none;}
  .whatsapp-fab svg{width:26px; height:26px;}
  .appt-card{padding:30px 22px;}
}
