:root{
  --ink:       #2B1810;
  --ink-soft:  #6B5D50;
  --gold:      #B8862E;
  --gold-dark: #8F6A20;
  --barn:      #8B5E2E;
  --cta:       #A13D2A;
  --cta-dark:  #832F1F;
  --cream:     #F8F4EC;
  --card:      #FFFFFF;
  --line:      #E6DFD1;
  --line-2:    #D8CEB8;

  --font-display: Georgia, 'Georgia', serif;
  --font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; font-family:var(--font-body); color:var(--ink); background:var(--cream); line-height:1.65; font-size:16.5px;}
img{max-width:100%; display:block;}
a{color:var(--gold-dark); text-decoration:none;}
a:hover{color:var(--gold);}
h1,h2,h3,h4{font-family:var(--font-display); color:var(--ink); line-height:1.22; margin:0 0 0.55em; font-weight:600;}
h1{font-size:clamp(1.9rem,3.6vw,2.7rem);}
h2{font-size:clamp(1.3rem,2.2vw,1.7rem);}
h3{font-size:1.08rem;}
p{margin:0 0 1em;}
.container{max-width:1140px; margin:0 auto; padding:0 24px;}
.eyebrow{display:inline-block; font-family:var(--font-display); font-weight:600; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:#e8c988; margin-bottom:10px;}

/* header — centered logo, split nav (genuinely different arrangement) */
.site-header{background:#FEFBF6; padding:14px 0; position:sticky; top:0; z-index:300; width:100%; box-shadow:0 4px 14px rgba(43,24,16,0.10); border-bottom:1px solid var(--line);}
.header-grid{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; min-width:0; grid-column:2; justify-self:center;}
.brand-logo{height:40px; width:auto; flex:none;}
.site-nav-left{display:flex; align-items:center; gap:26px; grid-column:1; justify-self:start;}
.site-nav-left > a{color:var(--ink); font-weight:600; font-size:0.95rem;}
.site-nav-left > a:hover{color:var(--gold-dark);}
.svc-menu{position:relative;}
.svc-menu > summary{color:var(--ink); font-weight:600; font-size:0.95rem; cursor:pointer; list-style:none;}
.svc-menu > summary::-webkit-details-marker{display:none;}
.svc-menu > summary:hover{color:var(--gold-dark);}
.svc-menu .panel{
  position:absolute; top:calc(100% + 10px); left:0; background:#fff; border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,0.18); padding:18px 22px; width:780px; max-width:90vw; z-index:50; border:1px solid var(--line);
  max-height:calc(100vh - 110px); overflow-y:auto;
}
.svc-menu .panel .cluster-title{font-family:var(--font-display); font-weight:700; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--gold-dark); margin:10px 0 4px; grid-column:1/-1;}
.svc-menu .panel .cluster-title:first-child{margin-top:0;}
.svc-menu .panel .cluster-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px 20px;}
.svc-menu .panel a{display:block; padding:5px 0; color:var(--ink); font-size:0.85rem;}
.svc-menu .panel a:hover{color:var(--gold-dark);}
.header-right{display:flex; align-items:center; gap:16px; grid-column:3; justify-self:end;}
.contact-link{color:var(--ink); font-weight:600; font-size:0.95rem;}
.contact-link:hover{color:var(--gold-dark);}
.call-pill{background:var(--cta); color:#fff; font-weight:700; font-size:0.92rem; padding:10px 18px; border-radius:6px; white-space:nowrap; display:inline-flex; align-items:center; gap:6px;}
.call-pill:hover{background:var(--cta-dark); color:#fff;}

.menu-toggle-cb{display:none;}
.hamburger-btn{display:none; width:38px; height:38px; border-radius:8px; background:rgba(43,24,16,0.06); align-items:center; justify-content:center; cursor:pointer; flex:none;}
.hamburger-btn span, .hamburger-btn span::before, .hamburger-btn span::after{content:""; display:block; width:20px; height:2px; background:var(--ink); position:relative; transition:0.2s;}
.hamburger-btn span::before{position:absolute; top:-6px;}
.hamburger-btn span::after{position:absolute; top:6px;}

.mobile-drawer{position:fixed; top:0; left:0; width:280px; height:100%; background:var(--ink); transform:translateX(-100%); transition:transform 0.25s ease; z-index:500; padding:20px; overflow-y:auto;}
.drawer-overlay{position:fixed; inset:0; background:rgba(20,10,5,0.55); opacity:0; visibility:hidden; transition:opacity 0.25s ease; z-index:400;}
.menu-toggle-cb:checked ~ .mobile-drawer{transform:translateX(0);}
.menu-toggle-cb:checked ~ .drawer-overlay{opacity:1; visibility:visible;}
.drawer-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid #4a3626;}
.drawer-head span{color:#fff; font-family:var(--font-display); font-weight:700; letter-spacing:0.06em; font-size:0.85rem; text-transform:uppercase;}
.drawer-close{width:30px; height:30px; border-radius:6px; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.1rem; cursor:pointer;}
.mobile-drawer nav a, .mobile-drawer nav summary{display:block; padding:13px 4px; color:#fff; font-family:var(--font-display); font-weight:600; font-size:1rem; border-bottom:1px solid #4a3626; cursor:pointer; list-style:none;}
.mobile-drawer nav summary::-webkit-details-marker{display:none;}
.mobile-drawer .sub-panel a{padding:9px 4px 9px 16px; font-family:var(--font-body); font-weight:400; font-size:0.85rem; color:#dcc9b3; border-bottom:none;}
.desktop-only{display:flex;}
@media (max-width:820px){
  .desktop-only{display:none !important;}
  .header-grid{display:flex; gap:8px;}
  .brand{grid-column:auto; justify-self:auto; min-width:0;}
  .header-right{grid-column:auto; justify-self:auto;}
  .hamburger-btn{display:flex; order:3; flex:none;}
  .brand{order:1; flex:1 1 auto; overflow:hidden;}
  .header-right{order:2; flex:none;}
  .brand-logo{height:30px;}
  .call-pill{padding:8px 10px; font-size:0.8rem; gap:4px;}
}
@media (max-width:400px){
  .brand-logo{height:24px;}
  .call-pill{font-size:0.72rem; padding:7px 8px;}
}
@media (max-width:340px){
  .brand-logo{height:22px;}
  .call-pill{font-size:0.7rem; padding:6px 7px;}
}

/* hero */
.hero{position:relative; color:#fff; overflow:hidden;}
.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(100deg, rgba(30,16,10,0.92) 0%, rgba(30,16,10,0.80) 45%, rgba(43,24,16,0.55) 100%); z-index:1;}
.hero .container{position:relative; z-index:2; padding:50px 24px 50px; display:grid; grid-template-columns:1.35fr 0.95fr; gap:40px; align-items:center;}
@media (max-width:880px){ .hero .container{grid-template-columns:1fr; align-items:start; padding:28px 20px 32px; gap:24px;} }
.hero-text{display:flex; flex-direction:column; justify-content:center; align-items:flex-start;}
.hero h1{color:#fff; max-width:820px; font-size:clamp(1.9rem,3.6vw,2.7rem);}
.hero .lede{font-size:1.16rem; color:#efe3d4; max-width:640px; line-height:1.72;}
.hero .lede a{color:#e8c988; text-decoration:underline; font-weight:700;}
.btn{display:inline-block; background:var(--cta); color:#fff; font-family:var(--font-display); font-weight:700; font-size:0.95rem; padding:14px 28px; border-radius:6px; text-decoration:none; border:none; cursor:pointer; margin-top:8px;}
.btn:hover{background:var(--cta-dark); color:#fff;}

.quote-card{background:#fff; color:var(--ink); border-radius:10px; padding:24px 26px; box-shadow:0 18px 40px rgba(0,0,0,0.25); font-size:1rem;}
.quote-card h3{margin-top:0; color:var(--ink); font-size:1.2rem;}
.quote-card p.hint{font-size:0.9rem; color:var(--ink-soft); margin-bottom:14px;}
.quote-card form{display:flex; flex-direction:column; gap:8px;}
.quote-card label{font-size:0.84rem; font-weight:700; color:var(--ink); margin-bottom:-3px;}
.quote-card input, .quote-card select, .quote-card textarea{border:1px solid var(--line-2); padding:10px 13px; font-family:var(--font-body); font-size:0.94rem; border-radius:6px; width:100%;}
.quote-card textarea{min-height:64px;}
.quote-card .btn{align-self:flex-start; margin-top:4px; font-size:0.94rem; padding:12px 24px;}
.quote-card .note{font-size:0.82rem; color:var(--ink-soft); margin-top:10px;}

/* stat strip */
.stat-strip{background:#fff; border-bottom:1px solid var(--line);}
.stat-strip .container{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:26px 24px;}
@media (max-width:760px){.stat-strip .container{grid-template-columns:repeat(2,1fr);}}
.stat{text-align:center;}
.stat .val{font-family:var(--font-display); font-weight:700; font-size:1.5rem; color:var(--cta);}
.stat .lbl{font-size:0.8rem; color:var(--ink-soft); margin-top:2px;}

section{padding:52px 0;}
section.alt{background:#F1EADA;}
.two-col{display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:start;}
@media (max-width:860px){.two-col{grid-template-columns:1fr;}}
.two-col.stretch{align-items:stretch;}
.two-col.stretch .photo-frame{height:100%; min-height:280px;}
.two-col.stretch .photo-frame img{height:100%;}

.grid-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:22px;}
@media (max-width:900px){.grid-cards{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.grid-cards{grid-template-columns:1fr;}}
.card{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:22px; overflow:hidden;}
.card.has-thumb{padding:0;}
.card.has-thumb .thumb{width:100%; aspect-ratio:16/10; overflow:hidden;}
.card.has-thumb .thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.card.has-thumb .card-body{padding:20px;}
.card h3{margin-top:0;}
.card a.card-link{color:var(--gold-dark); font-weight:700; font-size:0.9rem;}

/* horizontal connected timeline — replaces stacked cards */
.process-timeline{list-style:none; margin:24px 0 0; padding:0; counter-reset:step; display:flex; flex-direction:column; gap:0;}
.process-timeline li{counter-increment:step; position:relative; padding:0 0 30px 52px;}
.process-timeline li::before{
  content:counter(step); position:absolute; left:0; top:0; width:36px; height:36px; border-radius:50%;
  background:var(--cta); color:#fff; font-family:var(--font-display); font-weight:700; font-size:0.95rem;
  display:flex; align-items:center; justify-content:center; z-index:2;
}
.process-timeline li::after{
  content:""; position:absolute; left:17px; top:36px; bottom:-2px; width:2px; background:var(--line-2); z-index:1;
}
.process-timeline li:last-child::after{display:none;}
.process-timeline li h3{margin-bottom:4px;}
.process-timeline li p{margin-bottom:0; color:var(--ink-soft);}

.cost-box{background:var(--ink); color:#fff; border-radius:12px; padding:26px;}
.cost-box p{color:#e6d8c6; font-size:0.95rem;}
.cost-box .stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:16px;}
.cost-box .stat .val{color:#e8c988;}
.cost-box .stat .lbl{color:#c2ac91;}

.testi{background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px;}
.testi p{font-style:italic; color:var(--ink-soft);}
.testi .who{font-family:var(--font-display); font-weight:700; font-size:0.85rem; color:var(--gold-dark);}

/* FAQ two-column grid on desktop for faster scanning */
.faq-list{columns:2; column-gap:32px; margin-top:8px;}
@media (max-width:760px){.faq-list{columns:1;}}
details.faq-item{border-bottom:1px solid var(--line); padding:14px 0; break-inside:avoid; display:inline-block; width:100%;}
details.faq-item summary{cursor:pointer; font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:0.98rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:10px;}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item summary::after{content:"+"; font-size:1.4rem; color:var(--gold-dark); flex:none;}
details.faq-item[open] summary::after{content:"\2212";}
details.faq-item .faq-a{padding-top:10px; color:var(--ink-soft); font-size:0.94rem;}

figure{margin:0;}
figcaption{font-size:0.8rem; color:var(--ink-soft); padding-top:6px;}

/* footer map card */
.map-card{position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--line); box-shadow:0 6px 18px rgba(43,24,16,0.08);}
.map-card iframe{display:block; width:100%; height:300px; border:0;}
.map-open-btn{
  position:absolute; top:14px; left:14px; z-index:5; background:#fff; color:var(--ink);
  font-family:var(--font-display); font-weight:700; font-size:0.85rem; padding:9px 14px;
  border-radius:7px; box-shadow:0 4px 12px rgba(0,0,0,0.18); display:inline-flex; align-items:center; gap:6px;
}
.map-open-btn:hover{color:var(--gold-dark);}
.map-section-title{font-family:var(--font-display); font-weight:700; color:var(--ink); font-size:1rem; margin-bottom:12px;}

.photo-frame{border-radius:10px; overflow:hidden; border:1px solid var(--line);}
.photo-frame img{width:100%; height:100%; object-fit:cover; display:block;}

.fact-card{background:var(--ink); color:#fff; border-radius:12px; padding:24px;}
.fact-card h3{color:#fff; margin-top:0;}
.fact-card ul{list-style:none; margin:0; padding:0;}
.fact-card li{display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid #4a3626; font-size:0.9rem;}
.fact-card li:last-child{border-bottom:none;}
.fact-card li b{color:#e8c988; font-weight:700; text-align:right;}

.why-box{background:#F1EADA; border-left:4px solid var(--cta); border-radius:8px; padding:18px 22px;}
.why-box .bad{color:#9a8f80; font-size:0.9rem; text-decoration:line-through;}
.why-box .expert{color:var(--ink); font-weight:600; margin-top:6px;}

ul.bullet-list{list-style:none; margin:16px 0; padding:0; display:flex; flex-direction:column; gap:12px;}
ul.bullet-list li{padding-left:26px; position:relative; font-size:0.98rem; line-height:1.6; color:var(--ink-soft);}
ul.bullet-list li::before{content:""; position:absolute; left:0; top:8px; width:9px; height:9px; border-radius:2px; background:var(--cta); transform:rotate(45deg);}
ul.bullet-list li strong{color:var(--ink);}
ul.quick-facts{list-style:none; margin:16px 0; padding:0;}
ul.quick-facts li{padding:10px 0; border-bottom:1px solid var(--line); font-size:0.95rem; color:var(--ink-soft); display:flex; gap:8px; align-items:baseline;}
ul.quick-facts li::before{content:"\2713"; color:var(--gold-dark); font-weight:700; flex:none;}
ul.quick-facts li strong{color:var(--ink);}

.footer-topbar{height:6px; background:linear-gradient(90deg, var(--cta), var(--gold));}
footer.site-footer{background:#fff; padding:44px 0 22px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:36px;}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr;}}
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:12px;}
.footer-logo{height:44px; width:auto;}
.footer-grid p{font-size:0.9rem; color:var(--ink-soft);}
.social-row{display:flex; gap:10px; margin-top:14px;}
.social-row a{width:32px; height:32px; border-radius:50%; background:#f0ebe0; display:flex; align-items:center; justify-content:center; font-size:0.75rem; font-weight:700; color:var(--ink-soft);}
.footer-grid h4{color:var(--cta); font-size:0.92rem; margin-bottom:10px;}
.footer-grid ul{list-style:none; margin:0; padding:0;}
.footer-grid li{padding:4px 0; font-size:0.9rem;}
.footer-grid a{color:var(--ink-soft);}
.footer-grid a:hover{color:var(--gold-dark);}
.footer-bottom{border-top:1px solid var(--line); margin-top:28px; padding-top:16px; font-size:0.82rem; color:#a89a89; text-align:center;}
.map-embed{width:100%; height:340px; border:1px solid var(--line); border-radius:10px; background:#efe6d5; display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:0.9rem;}
