/* ===========================================================
   Roethel Real Estate — Listings system styles
   Shared by /listings/ (grid), /listings/<slug>/ (detail),
   and the homepage Featured teaser.
   =========================================================== */
@font-face{font-family:'Vintage Goods';src:url('/assets/fonts/vintage_goods-webfont.woff2') format('woff2'),url('/assets/fonts/vintage_goods-webfont.woff') format('woff');font-weight:normal;font-style:normal;font-display:swap;}
:root{
 --estate-evergreen:#00341e;--windowpane-blue:#d0ecf6;--golden-key:#ffe4ab;--historic-brick:#621a11;
 --limestone:#dcd5a9;--listing-light:#f6f2dd;--sage:#9faba1;
 --bg-primary:#fff;--bg-cream:#faf9f5;--text-dark:#1a1a1a;--text-body:#3d3d3d;--text-light:#6b6b6b;
 --border-light:#e8e4dc;--font-heading:'Crimson Text','Georgia',serif;--font-body:'Raleway','Helvetica Neue',sans-serif;
 --font-accent:'Vintage Goods','Pinyon Script',cursive;--section-pad:clamp(3.5rem,7vw,6rem);--container-max:1200px;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
.rre-scope{font-family:var(--font-body);color:var(--text-body);line-height:1.7;-webkit-font-smoothing:antialiased;}
.rre-scope img{max-width:100%;height:auto;display:block;}
.rre-scope a{color:inherit;text-decoration:none;}
.container{max-width:var(--container-max);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem);}
.rre-scope h1,.rre-scope h2,.rre-scope h3,.rre-scope h4{font-family:var(--font-heading);font-weight:500;color:var(--text-dark);line-height:1.2;}
.rre-scope h1{font-size:clamp(2.1rem,4vw,3rem);letter-spacing:-0.01em;}
.rre-scope h2{font-size:clamp(1.8rem,3.5vw,2.6rem);letter-spacing:-0.01em;}
.section-label{font-family:var(--font-accent);font-size:1.7rem;color:var(--historic-brick);margin-bottom:.4rem;display:block;line-height:1.2;}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 2rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:all .3s ease;cursor:pointer;border:none;}
.btn-gold{background:var(--golden-key);color:var(--estate-evergreen);}
.btn-gold:hover{background:#f5d68a;transform:translateY(-1px);}
.btn-light{background:var(--listing-light);color:var(--estate-evergreen);}
.btn-light:hover{background:#fff;transform:translateY(-1px);}
.btn-outline{background:transparent;color:var(--estate-evergreen);border:1.5px solid var(--estate-evergreen);}
.btn-outline:hover{background:var(--estate-evergreen);color:var(--listing-light);}

/* NAV (shared on listings pages) */
.rre-nav{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);box-shadow:0 1px 20px rgba(0,52,30,.08);}
.rre-nav .nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max);margin:0 auto;padding:.7rem clamp(1.25rem,4vw,2.5rem);}
.rre-nav .nav-logo{height:40px;width:auto;display:block;}
.rre-nav .nav-links{display:flex;align-items:center;gap:1.9rem;list-style:none;}
.rre-nav .nav-links a{font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dark);transition:color .3s;}
.rre-nav .nav-links a:hover{color:var(--estate-evergreen);}
.rre-nav .nav-links a.active{color:var(--historic-brick);}
.rre-nav .nav-cta{padding:.6rem 1.4rem;background:var(--golden-key);color:var(--estate-evergreen);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;}
.rre-nav .nav-cta:hover{background:#f5d68a;}
@media(max-width:820px){.rre-nav .nav-links li:not(.cta-li){display:none;}}

/* PAGE HEADER */
.page-head{background:var(--bg-cream);text-align:center;padding:var(--section-pad) 0 2.6rem;border-bottom:1px solid var(--border-light);}
.page-head p{max-width:640px;margin:.9rem auto 0;color:var(--text-light);font-size:1.02rem;}

/* GRID + CARDS */
.listings-wrap{padding:3rem 0 var(--section-pad);background:var(--bg-primary);}
.listings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;}
.lcard{background:#fff;border:1px solid var(--border-light);display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease;}
.lcard:hover{transform:translateY(-4px);box-shadow:0 14px 38px rgba(0,52,30,.12);}
.lcard-media{position:relative;aspect-ratio:3/2;overflow:hidden;background:#eee;}
.lcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.lcard:hover .lcard-media img{transform:scale(1.04);}
.badges{position:absolute;top:.85rem;left:.85rem;display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;}
.badge{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:.35rem .7rem;line-height:1;}
.badge-gold{background:var(--golden-key);color:var(--estate-evergreen);}
.badge-brick{background:var(--historic-brick);color:var(--listing-light);}
.badge-sold{background:var(--estate-evergreen);color:var(--golden-key);border:1px solid var(--golden-key);letter-spacing:.18em;}
.price-tag{position:absolute;bottom:0;right:0;background:var(--estate-evergreen);color:var(--golden-key);font-family:var(--font-heading);font-size:1.25rem;font-weight:700;letter-spacing:.5px;padding:.35rem .9rem;border-top:2px solid var(--golden-key);border-left:2px solid var(--golden-key);}
.lcard-body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1;}
.lcard-addr{font-family:var(--font-heading);font-size:1.35rem;font-weight:600;color:var(--estate-evergreen);line-height:1.15;}
.lcard-city{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light);margin-top:.35rem;}
.lcard-stats{display:flex;gap:.9rem;margin:.9rem 0;padding:.7rem 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);}
.lcard-stats .s{font-size:.82rem;color:var(--text-body);}
.lcard-stats .s b{font-family:var(--font-heading);font-size:1.05rem;color:var(--estate-evergreen);font-weight:700;margin-right:.25rem;}
.lcard-stats .sep{width:1px;background:var(--border-light);}
.lcard-blurb{font-size:.86rem;color:var(--text-light);line-height:1.65;flex:1;}
.lcard-link{margin-top:1.1rem;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--estate-evergreen);display:inline-flex;gap:.4rem;transition:gap .3s;}
.lcard:hover .lcard-link{gap:.75rem;}
.empty-state{text-align:center;color:var(--text-light);padding:2rem;border:1px dashed var(--border-light);grid-column:1/-1;}

/* SOLD BAND */
.sold{padding:var(--section-pad) 0;background:var(--estate-evergreen);color:var(--listing-light);}
.sold .section-label{color:var(--sage);}
.sold h2{color:#fff;}
.sold-head{text-align:center;margin-bottom:2.4rem;}
.sold-head p{max-width:640px;margin:.9rem auto 0;color:rgba(255,255,255,.65);}
.sold .lcard{background:#063824;border:1px solid rgba(255,255,255,.1);}
.sold .lcard-addr{color:#fff;}
.sold .lcard-city{color:var(--sage);}
.sold .lcard-stats{border-color:rgba(255,255,255,.12);}
.sold .lcard-stats .s{color:rgba(255,255,255,.8);}
.sold .lcard-stats .s b{color:var(--golden-key);}
.sold .lcard-blurb{color:rgba(255,255,255,.6);}

/* FEATURED TEASER (homepage) */
.featured{padding:var(--section-pad) 0;background:var(--bg-cream);}
.featured .featured-head{text-align:center;margin-bottom:3rem;}
.featured .featured-head p{max-width:560px;margin:1rem auto 0;color:var(--text-light);}
.featured .listings-grid{margin-bottom:2.5rem;}
.featured .more-row{text-align:center;}

/* ===================== DETAIL PAGE ===================== */
.crumb{max-width:var(--container-max);margin:0 auto;padding:1.2rem clamp(1.25rem,4vw,2.5rem) 0;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);}
.crumb a:hover{color:var(--estate-evergreen);}
.detail-hero{max-width:var(--container-max);margin:1rem auto 0;padding:0 clamp(1.25rem,4vw,2.5rem);}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:.6rem;height:clamp(320px,52vw,560px);}
.gallery .g-main{grid-column:1;grid-row:1/3;position:relative;overflow:hidden;background:#eee;cursor:pointer;}
.gallery .g-side{position:relative;overflow:hidden;background:#eee;cursor:pointer;}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.gallery .g-main:hover img,.gallery .g-side:hover img{transform:scale(1.04);}
.gallery .more-photos{position:absolute;inset:0;background:rgba(0,52,30,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;letter-spacing:.05em;}
.detail-status{position:absolute;top:1rem;left:1rem;z-index:2;}
@media(max-width:760px){.gallery{grid-template-columns:1fr;grid-template-rows:auto;height:auto;}.gallery .g-side{display:none;}.gallery .g-main{height:60vw;}}

.detail-body{max-width:var(--container-max);margin:0 auto;padding:var(--section-pad) clamp(1.25rem,4vw,2.5rem);display:grid;grid-template-columns:1fr 360px;gap:3rem;align-items:start;}
@media(max-width:900px){.detail-body{grid-template-columns:1fr;gap:2rem;}}
.detail-eyebrow{font-family:var(--font-accent);font-size:1.7rem;color:var(--historic-brick);line-height:1.1;}
.detail-title{font-family:var(--font-heading);font-size:clamp(2rem,4vw,2.8rem);font-weight:600;color:var(--estate-evergreen);margin:.3rem 0 .2rem;}
.detail-city{font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-light);}
.spec-row{display:flex;flex-wrap:wrap;gap:0;margin:1.6rem 0;border:1px solid var(--border-light);}
.spec{flex:1;min-width:90px;text-align:center;padding:1rem .6rem;border-right:1px solid var(--border-light);}
.spec:last-child{border-right:none;}
.spec b{display:block;font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--estate-evergreen);line-height:1;}
.spec span{font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-light);margin-top:.4rem;display:block;}
.detail-desc{font-size:1.02rem;line-height:1.85;color:var(--text-body);margin-bottom:1.8rem;}
.detail-desc p{margin-bottom:1rem;}
.feat-title{font-family:var(--font-heading);font-size:1.3rem;color:var(--estate-evergreen);margin:2rem 0 1rem;}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.6rem;}
@media(max-width:560px){.feat-grid{grid-template-columns:1fr;}}
.feat{position:relative;padding-left:1.1rem;font-size:.92rem;color:var(--text-body);line-height:1.5;}
.feat::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;background:var(--historic-brick);transform:rotate(45deg);}

/* DETAIL SIDEBAR / TOUR CTA */
.tour-card{position:sticky;top:90px;background:var(--bg-cream);border:1px solid var(--border-light);padding:1.8rem;}
.tour-price{font-family:var(--font-heading);font-size:2.1rem;font-weight:700;color:var(--estate-evergreen);line-height:1;}
.tour-price .sold-was{font-size:1rem;color:var(--text-light);text-decoration:line-through;font-weight:400;margin-left:.5rem;}
.tour-sub{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);margin-top:.4rem;}
.tour-open{margin-top:1rem;background:var(--historic-brick);color:var(--listing-light);padding:.6rem .9rem;font-size:.78rem;font-weight:600;letter-spacing:.04em;}
.tour-open b{color:var(--golden-key);}
.tour-card .btn{width:100%;justify-content:center;margin-top:1.2rem;}
.tour-agent{margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid var(--border-light);font-size:.86rem;color:var(--text-body);}
.tour-agent .name{font-family:var(--font-heading);font-size:1.1rem;color:var(--estate-evergreen);font-weight:600;}
.tour-agent .ph{font-weight:600;color:var(--estate-evergreen);}
.tour-disc{font-size:.66rem;color:var(--text-light);margin-top:1rem;line-height:1.5;}
.tour-embed{margin-top:1rem;}
.tour-embed iframe{width:100%;border:none;min-height:520px;}

/* CTA + FOOTER (shared) */
.cta{padding:4.5rem 0;background:linear-gradient(135deg,#621a11 0%,#7d2116 60%,#621a11 100%);text-align:center;}
.cta h2{color:#fff;margin-bottom:.8rem;}
.cta p{color:rgba(255,255,255,.72);font-size:1.05rem;margin-bottom:1.8rem;}
.cta-row{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}
.rre-foot{background:var(--estate-evergreen);color:rgba(246,242,221,.75);padding:3rem 0 2rem;font-size:.82rem;}
.rre-foot .foot-top{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:1.6rem;margin-bottom:1.4rem;}
.rre-foot .footer-logo{height:58px;width:auto;margin-bottom:.5rem;}
.rre-foot .foot-tag{max-width:340px;color:rgba(246,242,221,.6);line-height:1.6;}
.rre-foot .foot-discl{max-width:430px;line-height:1.7;}
.rre-foot .eho{display:inline-flex;align-items:center;gap:.4rem;color:var(--listing-light);font-weight:600;margin-bottom:.5rem;}
.rre-foot .eho-mark{display:inline-flex;width:18px;height:18px;border:1.5px solid var(--listing-light);align-items:center;justify-content:center;font-size:9px;}
.rre-foot .foot-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.74rem;color:rgba(246,242,221,.5);}
@media(max-width:900px){.listings-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.listings-grid{grid-template-columns:1fr;}}

/* Lightbox */
.lb{position:fixed;inset:0;background:rgba(0,15,8,.92);z-index:5000;display:none;align-items:center;justify-content:center;}
.lb.open{display:flex;}
.lb img{max-width:92vw;max-height:86vh;object-fit:contain;}
.lb-close,.lb-prev,.lb-next{position:absolute;color:#fff;background:rgba(255,255,255,.12);border:none;cursor:pointer;font-size:1.6rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;}
.lb-close{top:1.2rem;right:1.2rem;}
.lb-prev{left:1.2rem;top:50%;transform:translateY(-50%);}
.lb-next{right:1.2rem;top:50%;transform:translateY(-50%);}
.lb-count{position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font-size:.85rem;letter-spacing:.1em;}

/* single-photo gallery */
.gallery.single{grid-template-columns:1fr;grid-template-rows:auto;height:clamp(320px,52vw,560px);}
.gallery.single .g-main{grid-row:auto;}


/* ---- FOOTER (matches homepage) ---- */
.footer{background:var(--estate-evergreen);color:rgba(255,255,255,0.6);padding:4rem 0 0;}
.footer .container{max-width:var(--container-max);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-brand p{margin-top:1.25rem;font-size:0.88rem;line-height:1.7;}
.rre-scope .footer-logo{height:70px;width:auto;}
.footer h4{color:#fff;font-family:var(--font-body);font-size:0.75rem;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:1.25rem;}
.footer ul{list-style:none;}
.footer ul li{margin-bottom:0.6rem;}
.footer ul a{font-size:0.88rem;transition:color 0.3s;}
.footer ul a:hover{color:var(--golden-key);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;font-size:0.78rem;}
.footer-social{display:flex;gap:1rem;}
.footer-social a{width:36px;height:36px;border:1px solid rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-size:0.85rem;transition:all 0.3s;}
.footer-social a:hover{background:var(--golden-key);color:var(--estate-evergreen);border-color:var(--golden-key);}
@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem;}}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr;}.footer-bottom{flex-direction:column;gap:1rem;text-align:center;}}
