
:root { color-scheme: light; --ink:#17211d; --muted:#5f6b64; --line:#d9ddd7; --paper:#f7f7f2; --panel:#ffffff; --accent:#bc4b45; --green:#1f6f5b; --gold:#b88a44; }
* { box-sizing: border-box; }
body { margin:0; font-family: Inter, system-ui, sans-serif; color:var(--ink); background:var(--paper); }
a { color:inherit; text-decoration:none; }
.hero { min-height: 92vh; padding: 18px clamp(18px,4vw,48px) 42px; background: linear-gradient(180deg, #f7f7f2, #ededdf); }
nav { height:58px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(23,33,29,.16); }
nav strong { font-size: 1.03rem; }
nav div { display:flex; gap:20px; color:var(--muted); font-size:.92rem; }
.hero-grid { display:grid; grid-template-columns:minmax(0, .88fr) minmax(360px, .72fr); gap:42px; align-items:end; min-height:calc(92vh - 76px); padding-top:34px; }
.eyebrow { margin:0 0 14px; color:var(--accent); text-transform:uppercase; letter-spacing:.12em; font-weight:800; font-size:.78rem; }
h1 { margin:0; font-size:clamp(3rem, 8vw, 7.5rem); line-height:.9; letter-spacing:0; max-width:760px; }
.lede { color:var(--muted); font-size:clamp(1.05rem, 2vw, 1.35rem); line-height:1.55; max-width:650px; }
.stats { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.stats span { border:1px solid var(--line); background:rgba(255,255,255,.72); padding:9px 12px; border-radius:8px; font-size:.88rem; }
.hero-panel { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-self:center; }
.hero-panel img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px; border:1px solid rgba(255,255,255,.8); box-shadow:0 18px 40px rgba(31,49,42,.16); }
.hero-placeholder { grid-column:1/-1; min-height:260px; border:1px solid var(--line); border-radius:8px; background:#fff; display:flex; align-items:center; justify-content:center; padding:24px; color:var(--muted); text-align:center; box-shadow:0 18px 40px rgba(31,49,42,.12); }
main { padding:34px clamp(18px,4vw,48px) 60px; }
.toolbar { display:grid; grid-template-columns:1fr 220px 160px; gap:12px; margin-bottom:22px; }
input, select { height:42px; border:1px solid var(--line); border-radius:8px; padding:0 12px; background:#fff; color:var(--ink); font:inherit; min-width:0; }
.grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }
.photo { position:relative; background:#e5e3dc; }
.photo img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.photo-pending { aspect-ratio:4/3; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:8px; padding:18px; background:linear-gradient(135deg, #f0eee7, #dfe5df); color:var(--ink); }
.photo-pending strong { font-size:1rem; line-height:1.25; }
.photo-pending span { color:var(--muted); font-size:.82rem; line-height:1.35; }
.badge { position:absolute; top:10px; left:10px; background:rgba(23,33,29,.78); color:white; border-radius:999px; padding:5px 9px; font-size:.72rem; }
.body { padding:15px; display:flex; flex-direction:column; gap:10px; }
.body h2 { margin:0; font-size:1.02rem; line-height:1.25; }
.meta { display:flex; flex-wrap:wrap; gap:7px; color:var(--muted); font-size:.82rem; }
.pill { border:1px solid var(--line); border-radius:999px; padding:4px 8px; background:#fafaf7; }
.amenities { color:var(--muted); font-size:.84rem; line-height:1.45; min-height:38px; }
.actions { display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--line); padding-top:12px; margin-top:auto; }
.price { font-weight:800; color:var(--green); }
.details-btn { border:1px solid var(--line); background:#fff; color:var(--green); border-radius:999px; padding:7px 10px; font:inherit; font-weight:800; font-size:.82rem; cursor:pointer; }
.details-btn:hover { border-color:var(--green); }
.calendar-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
.date-chip { border:1px solid var(--line); border-radius:7px; padding:5px 7px; font-size:.74rem; background:#fafaf7; color:var(--muted); }
.date-chip.busy { background:#fff0ee; color:var(--accent); border-color:#e7b8b3; }
.date-chip.open { background:#edf8f2; color:var(--green); border-color:#b8d8ca; }
.modal { position:fixed; inset:0; z-index:20; display:none; }
.modal[aria-hidden="false"] { display:block; }
.modal-backdrop { position:absolute; inset:0; background:rgba(23,33,29,.48); }
.modal-panel { position:relative; width:min(1060px, calc(100vw - 28px)); max-height:calc(100vh - 28px); overflow:auto; margin:14px auto; background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:0 24px 80px rgba(0,0,0,.32); }
.modal-close { position:sticky; top:12px; float:right; z-index:2; margin:12px; width:34px; height:34px; border-radius:999px; border:1px solid var(--line); background:#fff; cursor:pointer; font-weight:800; color:var(--ink); }
.detail-hero { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:18px; padding:20px; clear:both; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; gap:8px; }
.detail-gallery img { width:100%; height:100%; min-height:160px; object-fit:cover; border-radius:8px; background:#eee; }
.detail-gallery .photo-pending { min-height:360px; border-radius:8px; }
.detail-side { display:flex; flex-direction:column; gap:12px; }
.detail-side h2 { margin:0; font-size:1.45rem; line-height:1.18; }
.detail-section { padding:0 20px 20px; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.detail-box { border:1px solid var(--line); border-radius:8px; padding:14px; background:#fafaf7; }
.detail-box h3 { margin:0 0 9px; font-size:.9rem; }
.detail-box p, .detail-box li { color:var(--muted); line-height:1.5; font-size:.9rem; }
.detail-box ul { margin:0; padding-left:18px; }
@media (max-width: 860px) { .detail-hero, .detail-grid { grid-template-columns:1fr; } .detail-gallery { grid-template-columns:1fr; } }
.ops { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:36px; }
.ops div { border:1px solid var(--line); border-radius:8px; padding:20px; background:#fff; }
.ops h2 { margin:0 0 8px; font-size:1rem; }
.ops p { margin:0; color:var(--muted); line-height:1.55; }
@media (max-width: 980px) { .hero-grid, .ops { grid-template-columns:1fr; } .grid { grid-template-columns:repeat(2, minmax(0,1fr)); } .toolbar { grid-template-columns:1fr; } }
@media (max-width: 640px) { nav div { display:none; } .grid { grid-template-columns:1fr; } .hero-panel { grid-template-columns:1fr 1fr; } }
