:root {
  --pine:#1e2c24; --pine-2:#2a3d32; --snow:#f7f3ec; --sand:#e7ddd0; --ink:#1a1814;
  --soft:#5c554c; --accent:#c4a574; --white:#fff; --radius:14px; --shadow:0 18px 50px rgba(20,30,24,.18);
  --sold:#6b5b4a; --pending:#8a6a2f; --forsale:#2f5d45;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:"Source Sans 3",system-ui,sans-serif; color:var(--ink); background:var(--snow); line-height:1.55; }
img { max-width:100%; display:block; }
a { color:inherit; }
.stage-banner { background:#7a1f1f; color:#fff; text-align:center; font-size:.78rem; letter-spacing:.04em; padding:.55rem .75rem; }
.wrap { width:min(1120px, calc(100% - 2rem)); margin-inline:auto; }
.site-header { background:var(--pine); color:var(--snow); position:sticky; top:0; z-index:40; }
.nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; flex-wrap:wrap; }
.brand img { height:40px; width:auto; border-radius:8px; }
.nav-links { display:flex; gap:.9rem; flex-wrap:wrap; font-size:.92rem; }
.nav-links a { text-decoration:none; opacity:.85; }
.nav-links a:hover, .nav-links a.active { opacity:1; text-decoration:underline; text-underline-offset:4px; }
.nav-cta { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.pill { background:var(--accent); color:var(--pine); text-decoration:none; font-weight:600; font-size:.82rem; padding:.45rem .8rem; border-radius:999px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; text-decoration:none; font-weight:600; border-radius:999px; padding:.85rem 1.25rem; font-size:1rem; border:2px solid transparent; cursor:pointer; }
.btn-primary { background:var(--accent); color:var(--pine); }
.btn-ghost { background:transparent; color:var(--snow); border-color:rgba(247,243,236,.55); }
.btn-dark { background:var(--pine); color:var(--snow); }
.btn-outline { background:transparent; border-color:var(--pine); color:var(--pine); }

.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:600; opacity:.9; margin:0 0 .6rem; }
h1,h2 { font-family:Fraunces,Georgia,serif; font-weight:700; color:var(--pine); line-height:1.15; }
h1 { font-size:clamp(2rem, 4.5vw, 3.1rem); margin:0 0 .5rem; }
h2 { font-size:clamp(1.55rem, 3.2vw, 2.1rem); margin:0 0 .85rem; }
.lead { font-size:1.08rem; color:var(--soft); max-width:42rem; margin:0 0 1.25rem; }
.meta { font-size:.88rem; color:var(--soft); }

/* INDEX */
.index-hero { padding:2.5rem 0 1.5rem; }
.index-hero p { max-width:40rem; color:var(--soft); margin:.5rem 0 0; }
.toolbar { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between; margin:0 0 1.25rem; }
.filters { display:flex; flex-wrap:wrap; gap:.5rem; }
.chip { border:1px solid rgba(30,44,36,.18); background:var(--white); color:var(--pine); border-radius:999px; padding:.45rem .9rem; font-size:.9rem; font-weight:600; cursor:pointer; }
.chip[aria-pressed="true"] { background:var(--pine); color:var(--snow); border-color:var(--pine); }
.sort select { border:1px solid rgba(30,44,36,.18); background:var(--white); border-radius:999px; padding:.5rem .9rem; font:inherit; color:var(--pine); }

.cards { display:grid; grid-template-columns:1fr; gap:1.25rem; padding-bottom:3rem; }
@media (min-width:700px) { .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1000px) { .cards { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.card { background:var(--white); border-radius:18px; overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(30,44,36,.06); display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .2s ease; }
.card:hover { transform:translateY(-3px); }
.card-media { position:relative; aspect-ratio:4/3; background:#111; }
.card-media img { width:100%; height:100%; object-fit:cover; }
.badge { position:absolute; top:.75rem; left:.75rem; z-index:1; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.35rem .65rem; border-radius:999px; color:#fff; }
.badge.for-sale { background:var(--forsale); }
.badge.pending { background:var(--pending); }
.badge.sold { background:var(--sold); }
.card-body { padding:1.1rem 1.15rem 1.25rem; display:flex; flex-direction:column; gap:.35rem; flex:1; }
.card-body h2 { font-size:1.35rem; margin:0; }
.card-price { font-family:Fraunces,Georgia,serif; font-size:1.55rem; color:var(--pine); font-weight:700; }
.card-stats { display:flex; gap:.75rem; flex-wrap:wrap; font-size:.92rem; color:var(--soft); }
.empty { padding:2rem; text-align:center; color:var(--soft); background:var(--white); border-radius:14px; }

/* DETAIL HERO */
.hero { position:relative; min-height:min(78vh, 680px); display:grid; align-items:end; color:var(--snow); background:#111; }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,22,18,.08) 0%, rgba(14,22,18,.18) 45%, rgba(14,22,18,.72) 100%); }
.hero-inner { position:relative; z-index:1; padding:2.5rem 0 2.75rem; }
.hero h1 { color:var(--snow); }
.hero .sub { font-size:clamp(1rem, 2.4vw, 1.2rem); max-width:36rem; margin:0 0 1.25rem; opacity:.95; }
.hero-price { display:inline-flex; flex-direction:column; gap:.15rem; background:rgba(247,243,236,.95); color:var(--pine); padding:.85rem 1.15rem; border-radius:12px; box-shadow:var(--shadow); }
.hero-price .amt { font-family:Fraunces,Georgia,serif; font-size:clamp(1.8rem, 4vw, 2.4rem); font-weight:700; line-height:1; }
.hero-price .terms { font-size:.88rem; color:var(--soft); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.1rem; }
.hero .badge { position:static; display:inline-block; margin-bottom:.6rem; }

section { padding:3rem 0; }
section.tight { padding:2.25rem 0; }
.story { font-size:1.05rem; max-width:40rem; }
.story p { margin:0 0 1rem; }
.highlights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin:1.5rem 0 0; }
@media (min-width:720px) { .highlights { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.hl { background:var(--white); border:1px solid rgba(30,44,36,.08); border-radius:var(--radius); padding:1rem; box-shadow:0 6px 18px rgba(20,30,24,.04); }
.hl strong { display:block; font-family:Fraunces,Georgia,serif; color:var(--pine); font-size:1.05rem; margin-bottom:.25rem; }
.hl span { font-size:.9rem; color:var(--soft); }

.gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
@media (min-width:900px) { .gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; } }
.gal-item { margin:0; background:#000; border-radius:12px; overflow:hidden; position:relative; cursor:zoom-in; border:0; padding:0; width:100%; color:inherit; font:inherit; text-align:left; }
.gal-item img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .35s ease; }
.gal-item:hover img { transform:scale(1.03); }
.gal-item figcaption, .gal-item .cap { position:absolute; left:0; right:0; bottom:0; padding:.55rem .7rem; font-size:.78rem; color:#fff; background:linear-gradient(transparent, rgba(0,0,0,.72)); }
.gal-item:first-child { grid-column:1 / -1; }
@media (min-width:900px) {
  .gal-item:first-child { grid-column:span 2; grid-row:span 2; }
  .gal-item:first-child img { aspect-ratio:auto; height:100%; min-height:100%; }
}

.deal-grid { display:grid; gap:1.25rem; }
@media (min-width:860px) { .deal-grid { grid-template-columns:1.15fr .85fr; align-items:start; } }
.panel { background:var(--white); border-radius:18px; padding:1.35rem 1.4rem; box-shadow:var(--shadow); border:1px solid rgba(30,44,36,.06); }
.panel.dark { background:var(--pine); color:var(--snow); }
.panel.dark h2, .panel.dark .eyebrow { color:var(--snow); }
.price-lg { font-family:Fraunces,Georgia,serif; font-size:clamp(2.2rem, 4vw, 2.8rem); margin:.2rem 0 .6rem; color:var(--pine); }
.panel.dark .price-lg { color:var(--snow); }
.terms { list-style:none; padding:0; margin:0 0 1rem; }
.terms li { padding:.55rem 0; border-bottom:1px solid rgba(30,44,36,.08); font-size:.98rem; }
.panel.dark .terms li { border-bottom-color:rgba(247,243,236,.12); }
.terms li:last-child { border-bottom:0; }
.disclaimer { font-size:.82rem; color:var(--soft); background:var(--sand); border-radius:10px; padding:.85rem 1rem; margin-top:1rem; }
.panel.dark .disclaimer { background:rgba(0,0,0,.22); color:#d9d0c3; }
.cta-stack { display:flex; flex-direction:column; gap:.7rem; margin-top:1rem; }
.cta-stack .btn { width:100%; }
.owner-name { font-family:Fraunces,Georgia,serif; font-size:1.45rem; margin:.15rem 0; }
.owner-phone { font-size:1.55rem; font-weight:700; text-decoration:none; letter-spacing:.01em; }
.panel.dark .owner-phone { color:var(--accent); }

.life { background:var(--pine); color:var(--snow); }
.life h2 { color:var(--snow); }
.life .lead { color:#d5ccc0; }
.life-grid { display:grid; gap:1rem; }
@media (min-width:720px) { .life-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.life-card { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:1.1rem 1.15rem; }
.life-card h3 { font-family:Fraunces,Georgia,serif; margin:0 0 .4rem; font-size:1.15rem; color:var(--snow); }
.life-card p { margin:0; color:#d8d0c4; font-size:.95rem; }

.map-section { background:var(--sand); }
.map-wrap { position:relative; border-radius:16px; overflow:hidden; box-shadow:var(--shadow); background:#cfd8d0; }
.map-static { width:100%; height:auto; aspect-ratio:768/512; object-fit:cover; display:block; }
.map-badge { position:absolute; top:.75rem; left:.75rem; z-index:2; background:rgba(30,44,36,.92); color:#f7f3ec; font-size:.78rem; font-weight:600; padding:.4rem .7rem; border-radius:999px; letter-spacing:.04em; text-transform:uppercase; }
.map-actions { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.open-item { margin-top:1rem; font-size:.9rem; background:var(--white); border-left:4px solid var(--accent); padding:.85rem 1rem; border-radius:8px; color:var(--soft); }

.sticky-cta { position:fixed; left:0; right:0; bottom:0; z-index:50; background:rgba(30,44,36,.96); color:var(--snow); padding:.7rem .85rem; display:flex; gap:.65rem; justify-content:center; align-items:center; box-shadow:0 -8px 30px rgba(0,0,0,.25); }
.sticky-cta .btn { padding:.7rem 1rem; font-size:.95rem; }
@media (min-width:860px) { .sticky-cta { display:none; } }
body.has-sticky { padding-bottom:5.5rem; }
@media (min-width:860px) { body.has-sticky { padding-bottom:0; } }

footer.site-footer { background:#142019; color:#cfc6b8; padding:2.5rem 0 2rem; font-size:.92rem; }
.footer-grid { display:grid; gap:1.25rem; }
@media (min-width:720px) { .footer-grid { grid-template-columns:1.2fr 1fr 1fr; } }
.footer-grid a { color:#eee6da; }
.brand-text { font-family:Fraunces,Georgia,serif; font-size:1.3rem; color:var(--snow); margin:0 0 .4rem; }
.footer-note { margin-top:1.5rem; font-size:.8rem; opacity:.85; border-top:1px solid rgba(255,255,255,.08); padding-top:1rem; }

/* lightbox */
.lightbox { position:fixed; inset:0; z-index:100; background:rgba(10,14,12,.92); display:none; align-items:center; justify-content:center; padding:1rem; }
.lightbox.open { display:flex; }
.lightbox img { max-width:min(1100px,100%); max-height:90vh; object-fit:contain; border-radius:8px; }
.lightbox button { position:absolute; top:1rem; right:1rem; background:var(--accent); color:var(--pine); border:0; border-radius:999px; padding:.55rem 1rem; font-weight:700; cursor:pointer; }

.noscript-box { background:var(--sand); padding:1rem 1.25rem; margin:1rem auto; border-radius:12px; max-width:1120px; }
.error-box { padding:2rem; color:#7a1f1f; }


.skip{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--accent);color:var(--pine);padding:.5rem .8rem;z-index:100;border-radius:8px}
.nav-toggle{display:none;background:var(--accent);color:var(--pine);border:0;border-radius:999px;min-height:44px;padding:0 1rem;font-weight:700}
.phone-link{color:var(--snow);text-decoration:none;font-weight:600;min-height:44px;display:inline-flex;align-items:center}
@media (max-width:860px){
  .nav-toggle{display:inline-flex;align-items:center}
  .nav-links{display:none;width:100%;flex-direction:column;gap:.25rem;padding:.5rem 0 0}
  .nav-links.open{display:flex}
  .nav-links a{min-height:44px;display:flex;align-items:center;padding:.35rem 0}
  .nav-cta{width:100%;justify-content:space-between}
}
.path-grid{display:grid;gap:1rem;margin:1.5rem 0 0}
@media(min-width:720px){.path-grid{grid-template-columns:repeat(3,1fr)}}
.path-card{background:var(--white);border-radius:18px;padding:1.25rem;box-shadow:var(--shadow);border:1px solid rgba(30,44,36,.06);display:flex;flex-direction:column;gap:.6rem;min-height:100%}
.path-card h2{font-size:1.35rem;margin:0}
.path-card p{margin:0;color:var(--soft);flex:1}
.path-card .btn{margin-top:.5rem}
.form-card{background:var(--white);border-radius:18px;padding:1.25rem;box-shadow:var(--shadow);max-width:32rem}
.form-card label{display:block;font-weight:600;margin:.85rem 0 .35rem}
.form-card input,.form-card select,.form-card textarea{width:100%;min-height:48px;padding:.7rem .85rem;border:1px solid rgba(30,44,36,.2);border-radius:12px;font:inherit;background:#fff}
.form-card textarea{min-height:96px;resize:vertical}
.form-card .btn{width:100%;margin-top:1rem;min-height:48px}
.form-note{font-size:.85rem;color:var(--soft);margin-top:.75rem}
.form-success{display:none;background:#e5f2e8;border:1px solid #2f5d45;color:var(--pine);padding:1rem;border-radius:12px;margin-top:1rem}
.form-success.show{display:block}
.form-error{display:none;background:#f8e8e6;border:1px solid #7a1f1f;color:#7a1f1f;padding:1rem;border-radius:12px;margin-top:1rem}
.form-error.show{display:block}
.honey{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.video-grid{display:grid;gap:1rem}
@media(min-width:720px){.video-grid{grid-template-columns:1fr 1fr}}
.video-card{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.video-card iframe{width:100%;aspect-ratio:16/9;border:0;display:block;background:#000}
.video-card .cap{padding:.85rem 1rem}
.stat-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}
@media(min-width:720px){.stat-grid{grid-template-columns:repeat(3,1fr)}}
.stat{background:var(--white);border-radius:12px;padding:1rem}
.stat strong{display:block;font-family:Fraunces,Georgia,serif;font-size:1.15rem;color:var(--pine)}
.download-grid{display:grid;gap:1rem}
@media(min-width:700px){.download-grid{grid-template-columns:1fr 1fr}}
.download-card{background:var(--white);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.download-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.download-card .body{padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.hero-home{position:relative;min-height:min(70vh,560px);display:grid;align-items:end;color:var(--snow);background:#111}
.hero-home img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-home::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,22,18,.1),rgba(14,22,18,.75))}
.hero-home .inner{position:relative;z-index:1;padding:2.25rem 0 2.5rem}
.hero-home h1{color:var(--snow);font-size:clamp(2rem,6vw,3.4rem);margin:0 0 .6rem}
.section{padding:2.25rem 0}
.section.alt{background:#fff}
.section.pine{background:var(--pine);color:var(--snow)}
.section.pine h2,.section.pine .eyebrow{color:var(--snow)}
.section.pine .lead{color:#d5ccc0}
.band{background:var(--pine);color:var(--snow);padding:.85rem 0}
.band .wrap{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.chip-link{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border-radius:999px;background:rgba(255,255,255,.1);color:var(--snow);text-decoration:none;font-weight:600}
.chip-link.solid{background:var(--snow);color:var(--pine)}
