:root{
  --spruce:#1E3B35; --spruce-deep:#152A26; --linen:#F5F4EE; --card:#FFFFFF;
  --brass:#B07C2A; --brass-soft:#F3E8D2; --sage:#E3EAE2;
  --ink:#22302C; --ink-soft:#5A6A64; --line:#DDE1D8;
  --radius:12px; --maxw:1120px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Source Sans 3', system-ui, -apple-system, sans-serif; color:var(--ink); background:var(--linen); font-size:18px; line-height:1.65;}
img{max-width:100%; display:block;}
a{color:var(--spruce);}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
h1,h2,h3{font-family:'Fraunces', Georgia, serif; font-weight:500; line-height:1.2; color:var(--spruce-deep);}
h1{font-size:clamp(32px,4.2vw,48px); margin-bottom:16px;}
h2{font-size:clamp(26px,3.2vw,34px); margin:40px 0 12px;}
h3{font-size:21px; margin:24px 0 8px;}
p{margin-bottom:16px;}
.kicker{display:inline-block; font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); font-weight:600; margin-bottom:10px;}
.sub{color:var(--ink-soft); max-width:680px;}
section{padding:56px 0;}
.btn{display:inline-block; padding:14px 26px; border-radius:999px; font-weight:600; font-size:17px; text-decoration:none; transition:transform .15s ease, background .15s ease;}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--spruce); color:#fff;}
.btn-primary:hover{background:var(--spruce-deep);}
.btn-ghost{border:1.5px solid var(--spruce); color:var(--spruce);}
.btn-brass{background:var(--brass); color:#fff;}

header{position:sticky; top:0; z-index:50; background:rgba(245,244,238,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; height:70px;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-size:21px; font-weight:600; color:var(--spruce-deep); text-decoration:none;}
.logo svg{width:25px; height:25px;}
nav ul{display:flex; gap:24px; list-style:none; align-items:center;}
nav a{text-decoration:none; font-size:16px; font-weight:500; color:var(--ink);}
nav a:hover{color:var(--brass);}
.nav-cta{background:var(--spruce); color:#fff !important; padding:9px 18px; border-radius:999px; white-space:nowrap;}

.breadcrumbs{font-size:14px; color:var(--ink-soft); padding:18px 0 0;}
.breadcrumbs a{color:var(--ink-soft); text-decoration:none;}
.breadcrumbs a:hover{color:var(--brass);}

.hero-sub{padding:40px 0 8px;}
.hero-sub .lead{font-size:20px; color:var(--ink-soft); max-width:680px;}

.grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:20px; margin:24px 0;}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px 26px;}
.card h3{margin-top:0;}
.card p{font-size:16px; color:var(--ink-soft); margin-bottom:8px;}
.card a.more{font-weight:600; text-decoration:none; color:var(--brass); font-size:15.5px;}
.card img{border-radius:10px; height:170px; width:100%; object-fit:cover; margin-bottom:14px;}

.checklist{list-style:none; margin:16px 0 24px;}
.checklist li{padding:7px 0 7px 30px; position:relative; font-size:17px;}
.checklist li::before{content:"✓"; position:absolute; left:0; color:#1D7A5F; font-weight:700;}

.price-strip{background:var(--card); border:1px solid var(--line); border-left:4px solid var(--brass); border-radius:0 var(--radius) var(--radius) 0; padding:22px 26px; margin:28px 0; font-size:17px;}
.price-strip b{color:var(--spruce-deep);}

.towns{display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 8px;}
.towns a{background:var(--sage); color:var(--spruce-deep); font-weight:600; font-size:15px; padding:8px 18px; border-radius:999px; text-decoration:none;}
.towns a:hover{background:var(--brass-soft);}

details{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 20px; margin-bottom:12px;}
summary{font-weight:600; font-size:17px; cursor:pointer; color:var(--spruce-deep);}
details p{margin-top:10px; font-size:16px; color:var(--ink-soft);}

.final{background:var(--spruce); color:#fff; text-align:center; border-radius:24px; padding:52px 32px; margin:24px 0 8px;}
.final h2{color:#fff; margin-top:0;}
.final p{color:#C6D4CC; max-width:560px; margin:0 auto 26px;}

.post-meta{font-size:14.5px; color:var(--ink-soft); margin-bottom:20px;}
article.post{max-width:760px;}
article.post h2{margin-top:36px;}
article.post ul{margin:0 0 16px 22px;}
article.post li{margin-bottom:8px;}
.callout{background:var(--brass-soft); border-radius:var(--radius); padding:20px 24px; margin:24px 0; font-size:16.5px;}

footer{padding:44px 0 36px; font-size:15px; color:var(--ink-soft);}
.foot{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; border-top:1px solid var(--line); padding-top:28px;}
.foot a{color:var(--ink-soft); text-decoration:none;}
.foot a:hover{color:var(--brass);}
.foot b{color:var(--spruce-deep); display:block; margin-bottom:6px;}
.foot ul{list-style:none;}
.foot li{margin-bottom:4px;}
.credit{font-size:13px; margin-top:16px; color:#9AA69F;}

@media (max-width:860px){
  nav ul{gap:14px;}
  nav ul li.hide-m{display:none;}
  .nav-cta{display:none;}
  .logo{font-size:18px;}
  nav a{font-size:15px;}
  section{padding:44px 0;}
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} .btn:hover{transform:none;} }

/* ===== FORMS ===== */
.form-grid{display:grid; gap:20px; max-width:660px;}
.form-2col{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-grid label{display:block; font-weight:600; font-size:15.5px; margin-bottom:6px; color:var(--spruce-deep);}
.form-grid input, .form-grid select, .form-grid textarea{
  width:100%; padding:14px 15px; font-size:17px; font-family:inherit; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:10px;}
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus{
  outline:2px solid var(--brass); border-color:var(--brass);}
.hidden-field{display:none;}
@media (max-width:640px){ .form-2col{grid-template-columns:1fr;} }

/* ===== MOBILE STICKY CALL BAR ===== */
.mobile-bar{display:none;}
@media (max-width:860px){
  .mobile-bar{display:flex; position:fixed; bottom:0; left:0; right:0; z-index:60;
    box-shadow:0 -4px 16px rgba(21,42,38,.18);
    transform:translateZ(0); will-change:transform;
    background:var(--spruce);
    padding-bottom:env(safe-area-inset-bottom);}
  .mobile-bar a{flex:1; text-align:center; padding:16px 8px; font-weight:700; font-size:16px; text-decoration:none;}
  .mobile-bar a:first-child{background:var(--brass); color:#fff;}
  .mobile-bar a:last-child{background:var(--spruce); color:#fff;}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom));}
}

/* ===== FULLY CLICKABLE CARDS ===== */
.card{position:relative; transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;}
.card a.more::after{content:""; position:absolute; inset:0; z-index:1;}
.card:has(a.more):hover{transform:translateY(-3px); border-color:var(--brass);
  box-shadow:0 10px 26px rgba(30,59,53,.14); cursor:pointer;}
.card:has(a.more):hover a.more{text-decoration:underline;}
