@font-face { font-family:'Sora'; font-weight:100 800; font-display:swap;
  src:url("/assets/sora.ttf") format('truetype'); }
:root { --forest:#143226; --champagne:#EAD9B0; --orange:#F2762E; --deep:#D85A2A;
  --ivory:#F7F2E8; --sage:#8FAE9B; --ink:#22392e; --ease:cubic-bezier(.22,.61,.36,1); }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Sora',system-ui,-apple-system,sans-serif; color:var(--ink);
  background:var(--forest); line-height:1.6; -webkit-font-smoothing:antialiased; }
.wrap { max-width:1060px; margin:0 auto; padding:0 28px; }
a { color:inherit; }

nav { position:sticky; top:0; z-index:20; background:var(--forest);
  transition:box-shadow .3s ease; }
nav.scrolled { box-shadow:0 1px 0 rgba(234,217,176,.16), 0 8px 24px rgba(0,0,0,.18); }
nav .wrap { display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px; gap:20px; }
nav .mark { width:190px; }
nav .mark svg { width:100%; height:auto; display:block; }

.btn { display:inline-block; background:var(--orange); color:#fff; text-decoration:none;
  font-weight:600; font-size:15px; padding:13px 24px; border-radius:2px;
  transition:background .15s ease, transform .15s var(--ease), box-shadow .15s ease;
  white-space:nowrap; }
.btn:hover { background:var(--deep); transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(20,50,38,.18); }
.btn:active { transform:translateY(0); }
.btn.ghost { background:transparent; color:var(--champagne);
  box-shadow:inset 0 0 0 1.5px rgba(234,217,176,.4); }
.btn.ghost:hover { background:rgba(234,217,176,.1); }
.btn.dark { background:var(--forest); }
.btn.dark:hover { background:#0f2620; }

header { background:var(--forest); color:var(--champagne); padding:88px 0 96px; }
header h1 { font-size:clamp(38px,7vw,66px); font-weight:600; line-height:1.02;
  letter-spacing:-.03em; margin-bottom:26px; }
header h1 em { font-style:normal; color:var(--orange); }
header p.lede { font-size:clamp(17px,2.2vw,21px); color:#cbd8d0; max-width:640px;
  line-height:1.55; margin-bottom:36px; }
header .cta { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
header .fine { color:var(--sage); font-size:14px; margin-top:22px; }

section { padding:78px 0; }
section.alt { background:#fff; }
h2 { font-size:clamp(26px,3.6vw,38px); font-weight:600; color:var(--forest);
  letter-spacing:-.02em; line-height:1.15; margin-bottom:18px; }
.kicker { font-size:12px; font-weight:600; letter-spacing:.2em; color:var(--deep);
  text-transform:uppercase; margin-bottom:14px; }
.lead { font-size:17px; max-width:660px; color:#3c5749; margin-bottom:34px; }

.grid { display:grid; gap:22px; }
.g3 { grid-template-columns:repeat(3,1fr); }
.g4 { grid-template-columns:repeat(4,1fr); }
.g2 { grid-template-columns:repeat(2,1fr); }

.card { background:var(--ivory); border:1px solid #e0d9c9; padding:26px;
  transition:transform .3s var(--ease), border-color .3s ease, box-shadow .3s ease; }
section.alt .card { background:#fff; }
.card:hover { transform:translateY(-3px); border-color:#cdbf9f;
  box-shadow:0 10px 26px rgba(20,50,38,.07); }
.card:hover .ic { color:var(--orange); }
.card .n { font-size:12px; font-weight:600; letter-spacing:.18em; color:var(--deep);
  margin-bottom:10px; }
.card h3 { font-size:19px; font-weight:600; color:var(--forest); margin-bottom:8px; }
.card p { font-size:15px; color:#4a6455; }
.ic { width:28px; height:28px; color:var(--deep); margin-bottom:14px; display:block;
  transition:color .3s ease; }

.midcta { background:var(--forest); color:var(--champagne); padding:34px 38px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  flex-wrap:wrap; margin-top:40px; }
.midcta p { font-size:19px; font-weight:500; max-width:560px; line-height:1.4; }

.about-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:start; }
.about p { font-size:16.5px; color:#3c5749; margin-bottom:16px; max-width:600px; }
.facts { background:var(--forest); color:var(--champagne); padding:30px; }
.facts dt { font-size:11.5px; font-weight:600; letter-spacing:.16em; color:var(--sage);
  text-transform:uppercase; margin-bottom:5px; }
.facts dd { font-size:15.5px; margin-bottom:20px; line-height:1.5; }
.facts dd:last-child { margin-bottom:0; }
.areas { font-size:14px; color:#4a6455; margin-top:8px; }
.areas b { color:var(--forest); font-weight:600; }

.price { background:var(--forest); color:var(--champagne); padding:34px; display:flex;
  flex-direction:column; position:relative;
  transition:transform .3s var(--ease), box-shadow .3s ease; }
.price:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(20,50,38,.22); }
.price.two { background:#0f2620; box-shadow:inset 0 0 0 2px var(--orange); }
.price.two:hover { box-shadow:inset 0 0 0 2px var(--orange), 0 14px 34px rgba(20,50,38,.22); }
.badge { position:absolute; top:-13px; right:26px; background:var(--orange); color:#fff;
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 14px; }
.price .tag { font-size:12px; font-weight:600; letter-spacing:.18em; color:var(--sage);
  text-transform:uppercase; margin-bottom:14px; }
.price .amt { font-size:42px; font-weight:600; line-height:1; letter-spacing:-.02em; }
.price .amt span { font-size:16px; font-weight:500; color:var(--sage); letter-spacing:0; }
.price h3 { font-size:20px; font-weight:600; margin:14px 0 6px; }
.price .best { font-size:14px; color:var(--sage); margin-bottom:16px; line-height:1.45; }
.price ul { list-style:none; margin-bottom:24px; }
.price li { font-size:15px; color:#cbd8d0; padding-left:20px; position:relative;
  margin-bottom:9px; }
.price li::before { content:''; position:absolute; left:0; top:11px; width:10px; height:2px;
  background:var(--orange); }
.price .btn { align-self:flex-start; margin-top:auto; }
.valuenote { margin-top:26px; font-size:15px; color:#4a6455; max-width:660px; }

.promise { display:flex; gap:16px; align-items:flex-start; }
.promise .dot { width:9px; height:9px; border-radius:50%; background:var(--deep); flex:none;
  margin-top:8px; transition:transform .3s var(--ease); }
.promise:hover .dot { transform:scale(1.5); }
.promise h3 { font-size:17px; font-weight:600; color:var(--forest); margin-bottom:5px; }
.promise p { font-size:15px; color:#4a6455; }

.faq { border-bottom:1px solid #e0d9c9; }
.faq summary { list-style:none; cursor:pointer; padding:20px 40px 20px 0; font-size:17px;
  font-weight:600; color:var(--forest); position:relative; }
.faq summary:hover { color:var(--deep); }
.faq summary::-webkit-details-marker { display:none; }
.chev { position:absolute; right:6px; top:50%; width:11px; height:11px;
  border-right:2px solid var(--deep); border-bottom:2px solid var(--deep);
  transform:translateY(-70%) rotate(45deg); transition:transform .25s var(--ease); }
.faq[open] .chev { transform:translateY(-30%) rotate(225deg); }
.faq .ans { padding:0 40px 22px 0; }
.faq .ans p { font-size:15.5px; color:#4a6455; max-width:720px; }

.final { background:var(--forest); color:var(--champagne); text-align:center; }
.final h2 { color:var(--champagne); }
.final p { color:#cbd8d0; max-width:580px; margin:0 auto 32px; font-size:17px; }

footer { background:#0f2620; color:var(--sage); padding:30px 0 26px; font-size:13.5px; }
footer .wrap { display:flex; justify-content:space-between; gap:26px; flex-wrap:wrap; }
footer .mark { width:172px; margin-bottom:18px; }
footer .mark svg { width:100%; height:auto; display:block; }
footer a { color:var(--champagne); text-decoration:none; }
footer a:hover { text-decoration:underline; }
footer .disc { max-width:420px; line-height:1.6; color:#6f8a7b; font-size:12.5px; }

/* social icons */
.social { display:flex; gap:12px; align-items:center; }
.social a { display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; color:var(--champagne);
  box-shadow:inset 0 0 0 1.5px rgba(234,217,176,.32); text-decoration:none;
  transition:background .18s ease, transform .18s var(--ease), box-shadow .18s ease; }
.social a:hover { background:var(--orange); color:#fff; transform:translateY(-2px);
  box-shadow:inset 0 0 0 1.5px var(--orange); text-decoration:none; }
.social svg { width:18px; height:18px; display:block; }
footer .social { margin-top:18px; }
.final .social { justify-content:center; margin-top:30px; }

/* form */
.formcard { background:var(--forest); color:var(--champagne); padding:34px; margin-top:36px;
  box-shadow:0 16px 40px rgba(20,50,38,.16); }
.formcard h3 { font-size:21px; font-weight:600; margin-bottom:6px; }
.formcard .sub { font-size:15px; color:var(--sage); margin-bottom:24px; max-width:520px; }
.fields { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:20px; }
.field label { display:block; font-size:11.5px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--sage); margin-bottom:7px; }
.field input { width:100%; font-family:inherit; font-size:15px; color:var(--forest);
  background:var(--ivory); border:none; padding:13px 14px; border-radius:2px;
  box-shadow:inset 0 0 0 1.5px transparent; transition:box-shadow .18s ease; }
.field input:focus { outline:none; box-shadow:inset 0 0 0 2px var(--orange); }
.field input::placeholder { color:#8fa397; }
.formcard .actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.formcard .actions .btn { border:none; cursor:pointer; font-family:inherit; }
.formcard .note { font-size:13px; color:var(--sage); margin-top:16px; }
.formerr { font-size:14px; color:var(--orange); margin-top:14px; display:none; }
.formerr.show { display:block; }

@media (max-width:640px) {
  .fields { grid-template-columns:1fr; }
  .formcard { padding:26px 22px; }
}

/* motion */
.js .reveal { opacity:0; transform:translateY(18px);
  transition:opacity .62s var(--ease), transform .62s var(--ease); }
.js .reveal.in { opacity:1; transform:none; }
.js header h1, .js header .lede, .js header .cta, .js header .fine {
  opacity:0; transform:translateY(20px); animation:rise .8s var(--ease) forwards; }
.js header h1 { animation-delay:.08s; }
.js header .lede { animation-delay:.20s; }
.js header .cta { animation-delay:.32s; }
.js header .fine { animation-delay:.44s; }
@keyframes rise { to { opacity:1; transform:none; } }
.js header h1 .dot { display:inline-block; opacity:0; transform:scale(.2);
  animation:pop .5s cubic-bezier(.34,1.56,.64,1) .62s forwards; }
@keyframes pop { to { opacity:1; transform:scale(1); } }

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .js .reveal, .js .reveal.in { opacity:1 !important; transform:none !important;
    transition:none !important; }
  .js header h1, .js header .lede, .js header .cta, .js header .fine,
  .js header h1 .dot { animation:none !important; opacity:1 !important;
    transform:none !important; }
  .btn:hover, .card:hover, .price:hover { transform:none !important; }
}

@media (max-width:900px) {
  .about-grid { grid-template-columns:1fr; gap:30px; }
}
@media (max-width:860px) {
  .g3, .g4 { grid-template-columns:repeat(2,1fr); }
  .g2 { grid-template-columns:1fr; }
  section { padding:56px 0; }
  header { padding:60px 0 66px; }
  nav .btn { padding:11px 16px; font-size:14px; }
  .midcta { padding:26px; }
}
@media (max-width:560px) {
  .g3, .g4 { grid-template-columns:1fr; }
  nav .mark { width:148px; }
}
@media (max-width:400px) {
  nav .mark { width:120px; }
  nav .btn { padding:10px 13px; font-size:13px; }
}
/* ---- site-wide topographic texture: ONE fixed parallax layer ---- */
body::before {
  content:""; position:fixed; inset:0; z-index:-1;
  background:#143226 url("/images/tholocal-topographic-texture.jpg") center center / cover no-repeat;
}
/* Light content sections stay opaque and cover the texture; the big full-width
   dark bands are translucent, so the fixed texture shows through and parallaxes
   behind them as the page scrolls. Nested dark cards keep their solid fills. */
section { background:var(--ivory); }
header, .final { background-color:rgba(20,50,38,.80); }
footer { background-color:rgba(15,38,32,.86); }

/* ---- sections float as inset panels on the fixed background ---- */
header, .subhero { margin-bottom:0; }
section { width:calc(100% - 48px); max-width:1104px; margin:52px auto;
  border-radius:2px; box-shadow:0 18px 46px rgba(0,0,0,.22); }
footer { margin-top:24px; }
@media (max-width:860px){
  section { width:calc(100% - 28px); margin:30px auto; }
}

/* ---- hero image ---- */
.hero-media { position:relative; margin-top:44px; overflow:hidden; border-radius:2px;
  border:1px solid rgba(234,217,176,.16); box-shadow:0 20px 50px rgba(0,0,0,.26); }
.hero-media img { display:block; width:100%; height:auto;
  max-height:clamp(300px,54vh,580px); object-fit:cover; object-position:center 62%; }
.js .hero-media { opacity:0; transform:translateY(22px);
  animation:rise .9s var(--ease) .5s forwards; }
@media (prefers-reduced-motion:no-preference){
  .hero-media img { transform-origin:60% 55%;
    animation:kenburns 26s ease-in-out 1.3s infinite alternate; }
}
@keyframes kenburns { from{ transform:scale(1); } to{ transform:scale(1.045); } }

/* ---- section media (text beside image) ---- */
.media { display:grid; grid-template-columns:1.05fr .95fr; gap:40px;
  align-items:start; margin-bottom:30px; }
.media-copy .kicker { margin-bottom:14px; }
.media-copy .lead { margin-bottom:0; }
.shot { margin:0; overflow:hidden; border-radius:2px; border:1px solid rgba(20,50,38,.12);
  box-shadow:0 18px 44px rgba(20,50,38,.14); background:var(--forest); line-height:0; }
section.alt .shot { border-color:#e0d9c9; }
.shot img { display:block; width:100%; height:auto; object-fit:cover; transition:transform .5s var(--ease); }
@media (min-width:861px){ .shot img { height:320px; } }
.hero-media picture, .shot picture { display:block; line-height:0; }
.shot:hover img { transform:scale(1.03); }
@media (max-width:860px){
  .media { grid-template-columns:1fr; gap:26px; }
  .hero-media { margin-top:32px; }
}

/* ---- reduced motion ---- */
@media (prefers-reduced-motion:reduce){
  .js .hero-media { animation:none !important; opacity:1 !important; transform:none !important; }
  .hero-media img { animation:none !important; transform:none !important; }
  .shot:hover img { transform:none !important; }
}
/* ---- a11y: visible keyboard focus ---- */
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, [tabindex]:focus-visible {
  outline:2px solid var(--orange); outline-offset:3px; border-radius:2px; }

/* ============ multi-page: nav, breadcrumb, subpages, footer ============ */
.navbar { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.navbar .mark { width:170px; display:block; }
.navbar .mark svg { width:100%; height:auto; display:block; }
.navmenu > summary { display:none; }
.navlinks { display:flex; align-items:center; gap:22px; }
.navlinks a { color:var(--champagne); text-decoration:none; font-size:15px; font-weight:500;
  transition:color .18s ease; }
.navlinks a:hover { color:#fff; }
.navlinks a.btn { color:#fff; }
.dd > summary { list-style:none; cursor:pointer; color:var(--champagne); font-size:15px;
  font-weight:500; display:inline-flex; align-items:center; gap:7px; }
.dd > summary::-webkit-details-marker { display:none; }
.dd > summary::after { content:''; width:6px; height:6px; border-right:2px solid currentColor;
  border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); }
.dd[open] > summary { color:#fff; }
.ddmenu { display:flex; flex-direction:column; }
.ddmenu a { color:var(--champagne); text-decoration:none; font-size:15px; }
.ddmenu a:hover { color:#fff; }
@media (min-width:861px) {
  .navbar .navmenu > .navlinks { display:flex !important; }
  .dd { position:relative; }
  .dd .ddmenu { position:absolute; top:calc(100% + 14px); left:-10px; background:#0f2620;
    padding:10px; min-width:200px; box-shadow:0 14px 34px rgba(0,0,0,.32); border-radius:2px; }
  .dd .ddmenu a { padding:10px 12px; white-space:nowrap; }
  .dd .ddmenu a:hover { background:rgba(234,217,176,.08); }
}
@media (max-width:860px) {
  .navmenu > summary { display:inline-flex; list-style:none; cursor:pointer; width:44px;
    height:44px; align-items:center; justify-content:center; color:var(--champagne); }
  .navmenu > summary::-webkit-details-marker { display:none; }
  .navmenu > summary svg { width:26px; height:26px; }
  .navmenu .navlinks { position:absolute; left:0; right:0; top:100%; flex-direction:column;
    align-items:stretch; background:#0f2620; padding:12px 28px 22px; gap:2px;
    box-shadow:0 16px 32px rgba(0,0,0,.28); }
  .navlinks > a, .dd > summary { padding:13px 0; border-bottom:1px solid rgba(234,217,176,.1); }
  .navlinks a.btn { margin-top:12px; text-align:center; border-bottom:none; }
  .dd .ddmenu { padding:2px 0 6px 14px; }
  .dd .ddmenu a { padding:9px 0; }
}

/* breadcrumb */
.crumbs { background:#fff; border-bottom:1px solid #e0d9c9; }
/* the breadcrumb uses a <nav> landmark — stop it inheriting the sticky top-bar nav{} styles */
.crumbs nav { position:static; top:auto; z-index:auto; background:none; box-shadow:none; }
.crumbs .wrap { padding:13px 28px; font-size:13px; color:#4a6455; }
.crumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.crumbs li { display:flex; gap:8px; align-items:center; }
.crumbs li::after { content:'/'; color:#b8c4bb; }
.crumbs li:last-child::after { content:''; }
.crumbs a { color:var(--deep); text-decoration:none; }
.crumbs a:hover { text-decoration:underline; }
.crumbs [aria-current] { color:var(--forest); font-weight:600; }

/* subpage hero */
.subhero { background-color:rgba(20,50,38,.80); color:var(--champagne); padding:66px 0 58px; }
.subhero .kicker { color:var(--champagne); opacity:.85; }
.subhero h1 { font-size:clamp(30px,5vw,50px); font-weight:600; letter-spacing:-.02em;
  line-height:1.06; margin-bottom:16px; max-width:820px; }
.subhero p { font-size:clamp(16px,2vw,19px); color:#cbd8d0; max-width:660px; line-height:1.55; }
.subhero .cta { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
@media (max-width:860px){ .subhero { padding:48px 0 44px; } }

/* prose */
.prose p { font-size:16.5px; color:#3c5749; margin-bottom:16px; max-width:700px; }
.prose h2 { margin-bottom:14px; }
.prose h3 { font-size:19px; color:var(--forest); font-weight:600; margin:26px 0 8px; }
.prose ul { list-style:none; margin:0 0 22px; max-width:700px; }
.prose li { font-size:16px; color:#3c5749; padding-left:22px; position:relative; margin-bottom:10px; }
.prose li::before { content:''; position:absolute; left:0; top:11px; width:10px; height:2px;
  background:var(--orange); }

/* area list */
.arealist { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.arealist a { display:block; background:var(--ivory); border:1px solid #e0d9c9; padding:18px 20px;
  text-decoration:none; color:var(--forest); font-weight:600; border-radius:2px;
  transition:transform .3s var(--ease), border-color .3s ease, box-shadow .3s ease; }
section.alt .arealist a { background:#fff; }
.arealist a:hover { transform:translateY(-3px); border-color:#cdbf9f;
  box-shadow:0 10px 26px rgba(20,50,38,.07); }
.arealist a span { display:block; font-weight:400; font-size:13.5px; color:#4a6455; margin-top:4px; }
@media (max-width:860px){ .arealist { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .arealist { grid-template-columns:1fr; } }

/* footer columns */
.fcols { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:30px; margin-bottom:34px; }
.fcol h4 { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--sage);
  margin-bottom:13px; font-weight:600; }
.fcol a { display:block; color:var(--champagne); text-decoration:none; font-size:14px; margin-bottom:9px; }
.fcol a:hover { text-decoration:underline; }
.fcol p { font-size:13.5px; color:#8fa397; margin-bottom:9px; line-height:1.5; }
@media (max-width:860px){ .fcols { grid-template-columns:1fr 1fr; gap:26px; } }
@media (max-width:480px){ .fcols { grid-template-columns:1fr; } }

/* ============ nav v2: checkbox hamburger (robust, no details gating) ============ */
.navtog { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.navburger { display:none; }
@media (min-width:861px) {
  .navlinks { display:flex !important; align-items:center; gap:22px; }
  .navburger { display:none !important; }
}
@media (max-width:860px) {
  .navburger { display:inline-flex; width:44px; height:44px; align-items:center;
    justify-content:center; color:var(--champagne); cursor:pointer; }
  .navburger svg { width:26px; height:26px; }
  .navlinks { display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column;
    align-items:stretch; background:#0f2620; padding:12px 28px 22px; gap:2px;
    box-shadow:0 16px 32px rgba(0,0,0,.28); }
  .navtog:checked ~ .navlinks { display:flex; }
  .navlinks > a, .navlinks .dd > summary { padding:13px 0; border-bottom:1px solid rgba(234,217,176,.1); }
  .navlinks a.btn { margin-top:12px; text-align:center; border-bottom:none; }
  .navlinks .dd .ddmenu { padding:2px 0 6px 14px; }
  .navlinks .dd .ddmenu a { padding:9px 0; }
}

/* ============ compact footer ============ */
footer .foot { display:flex; align-items:center; justify-content:space-between;
  gap:18px 30px; flex-wrap:wrap; }
footer .foot .mark { width:150px; display:block; }
footer .foot .mark svg { width:100%; height:auto; display:block; }
.foot-links { display:flex; flex-wrap:wrap; gap:6px 18px; justify-content:center; }
.foot-links a { color:var(--champagne); text-decoration:none; font-size:14px; }
.foot-links a:hover { text-decoration:underline; }
footer .social { margin-top:0; }
footer .foot-meta { display:flex; flex-direction:column; gap:8px; margin-top:20px;
  padding-top:16px; border-top:1px solid rgba(234,217,176,.14); }
.foot-contact { color:var(--sage); font-size:13px; }
.foot-contact a { color:var(--champagne); }
.foot-meta .disc { color:#6f8a7b; font-size:12px; line-height:1.55; max-width:900px; }
@media (max-width:700px){
  footer .foot { justify-content:center; text-align:center; }
  .foot-links { justify-content:center; }
}

/* =====================================================================
   HYBRID CANVAS (v2) — Phase 2
   Predominantly light content canvas. The topographic texture is kept
   ONLY in the dark "feature bands" (hero, subhero, final CTA, footer),
   which bookend clean white/ivory content sections. Reversible: this
   block only overrides the earlier fixed-texture + floating-panel rules.
   ===================================================================== */

/* 1. Page canvas: warm off-white; drop the global fixed dark texture */
body { background:var(--ivory); }
body::before { content:none !important; display:none !important; }

/* 2. Content sections: full-width bands on the light canvas (not floating panels) */
section {
  width:auto; max-width:none; margin:0; border-radius:0; box-shadow:none;
  background:#fff; padding:88px 0;
  border-top:1px solid #efe7d6;
}
section:first-of-type { border-top:none; }
section.alt { background:var(--ivory); border-top-color:#e7ddc8; }
@media (max-width:860px){ section { width:auto; margin:0; padding:60px 0; } }

/* 3. Dark feature bands keep the topographic texture as their own backdrop */
header, .subhero, .final {
  background-image:linear-gradient(rgba(16,36,29,.84),rgba(16,36,29,.90)),
    url("/images/tholocal-topographic-texture.jpg");
  background-size:cover; background-position:center; background-repeat:no-repeat;
  background-color:var(--forest);
}
footer {
  background-image:linear-gradient(rgba(11,26,21,.90),rgba(11,26,21,.94)),
    url("/images/tholocal-topographic-texture.jpg");
  background-size:cover; background-position:center; background-repeat:no-repeat;
  background-color:#0f2620; margin-top:0;
}

/* 4. Cards read cleanly on the light canvas */
.card { background:var(--ivory); border-color:#e7ddc8; }
section.alt .card { background:#fff; border-color:#eadfc9; }
.arealist a { border-color:#e7ddc8; }

/* 5. Cleaner hero hierarchy */
header { padding:96px 0 100px; }
header h1 { font-size:clamp(40px,7.2vw,70px); margin-bottom:22px; }
header p.lede { font-size:clamp(17px,2.2vw,20px); color:#d3dfd7; margin-bottom:32px; }
header .cta { gap:16px; }
header .cta .btn:not(.ghost) { padding:15px 30px; font-size:16px; }
.hero-media { margin-top:52px; box-shadow:0 28px 60px rgba(11,26,21,.4); }

/* 6. Breadcrumb sits on the light canvas */
.crumbs { background:var(--ivory); border-bottom:1px solid #e7ddc8; }
