@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');

:root { --ink:#17231f; --muted:#66736d; --line:#dbe4df; --paper:#f8faf8; --white:#fff; --green:#1f6956; --green-dark:#154d40; --mint:#e4f1eb; --gold:#c28b3d; --danger:#a8463d; --shadow:0 18px 50px rgba(23,35,31,.08); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.55 'DM Sans', sans-serif; }
a { color:inherit; text-decoration:none; }
.container { width:min(1120px, calc(100% - 40px)); margin:auto; }
.site-header { background:rgba(248,250,248,.92); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; backdrop-filter:blur(12px); }
.nav { height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:700; letter-spacing:-.4px; }
.brand small { color:var(--gold); font-size:13px; }
.brand-mark { display:grid; place-items:center; width:35px; height:35px; color:var(--white); background:var(--green); border-radius:10px 10px 10px 3px; font-size:21px; }
nav { display:flex; align-items:center; gap:25px; font-size:14px; font-weight:600; }
nav a:first-child { color:var(--muted); }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:0 21px; border:1px solid var(--green); border-radius:7px; color:#fff; background:var(--green); font:600 14px 'DM Sans',sans-serif; cursor:pointer; transition:.2s ease; }
.button:hover { background:var(--green-dark); border-color:var(--green-dark); transform:translateY(-1px); }
.button-small { min-height:38px; padding:0 16px; }
.button-large { min-height:54px; padding:0 27px; font-size:15px; }
.button-light { color:var(--green); border-color:rgba(255,255,255,.65); background:#fff; }
.button-light:hover { background:var(--mint); border-color:var(--mint); }
.button-outline { color:var(--green); background:transparent; border-color:var(--line); }
.button-outline:hover { background:var(--mint); border-color:var(--mint); }
.button-danger { color:var(--danger); background:#fff; border-color:#e6c4c0; }
.hero { min-height:470px; margin:0 -30px; padding:76px max(30px, calc((100% - 1060px)/2)); display:flex; align-items:center; justify-content:space-between; gap:60px; background:radial-gradient(circle at 85% 20%, #fff 0 10%, transparent 30%), linear-gradient(125deg,#e3f1eb 0%,#eef5ed 56%,#f7f2e6 100%); position:relative; overflow:hidden; }
.hero:after { content:''; width:390px; height:390px; border:1px solid rgba(31,105,86,.13); border-radius:50%; position:absolute; right:-100px; bottom:-190px; }
.hero-copy { max-width:650px; position:relative; z-index:1; }
.section-kicker { color:var(--green); font-size:11px; font-weight:700; letter-spacing:1.8px; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { letter-spacing:-1.7px; line-height:1.08; }
h1 { margin:14px 0 22px; font-size:clamp(42px,6vw,70px); }
h1 em { color:var(--green); font-family:'Playfair Display',serif; font-weight:600; }
h2 { font-size:36px; margin-bottom:0; }
h3 { font-size:20px; letter-spacing:-.5px; }
.hero-copy > p { max-width:580px; margin-bottom:30px; color:#53645c; font-size:17px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:11px; }
.hero-note { position:relative; z-index:1; width:205px; padding:25px; background:rgba(255,255,255,.74); border:1px solid rgba(255,255,255,.9); border-radius:14px; box-shadow:var(--shadow); }
.hero-note span { display:block; margin-bottom:22px; color:var(--gold); font-size:42px; font-family:serif; }
.hero-note b,.hero-note small { display:block; }.hero-note small { margin-top:5px; color:var(--muted); }
.listing { padding:78px 0 100px; }.section-heading,.admin-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; }.section-heading h2 { margin-top:8px; }
.filters { display:grid; grid-template-columns:1.25fr 1fr 1fr auto; gap:12px; align-items:end; padding:17px; margin-bottom:28px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 7px 25px rgba(23,35,31,.035); }
label { display:block; color:#44534c; font-size:13px; font-weight:600; }.filters label { font-size:11px; text-transform:uppercase; letter-spacing:.5px; }
input,select,textarea { display:block; width:100%; margin-top:7px; padding:12px 13px; color:var(--ink); border:1px solid #ccd9d2; border-radius:6px; background:#fff; font:15px 'DM Sans',sans-serif; outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(31,105,86,.1); }
.offer-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:17px; }.offer-card { padding:25px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 5px 22px rgba(23,35,31,.035); }.offer-card-top { display:flex; justify-content:space-between; gap:12px; margin-bottom:13px; }.eyebrow { color:var(--green); font-size:11px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; }.offer-card time,.muted { color:var(--muted); font-size:12px; }.offer-card h3 { margin-bottom:6px; }.offer-card h3 a:hover { color:var(--green); }.offer-meta,.detail-location { color:#4c5f56; margin-bottom:14px; }.tags { display:flex; flex-wrap:wrap; gap:6px; margin:15px 0; }.tags span { padding:4px 9px; color:var(--green-dark); background:var(--mint); border-radius:4px; font-size:12px; }.offer-description { display:-webkit-box; overflow:hidden; margin-bottom:20px; color:#53625b; -webkit-line-clamp:3; -webkit-box-orient:vertical; }.empty { grid-column:1/-1; padding:60px 20px; text-align:center; border:1px dashed #c8d7cf; border-radius:10px; }.empty span,.success-icon { color:var(--gold); font-size:40px; }.empty p { color:var(--muted); }
.narrow { width:min(700px,100%); margin:65px auto 90px; }.narrow h1 { font-size:48px; }.lead { color:var(--muted); font-size:17px; margin-bottom:28px; }.form-card,.manage-card { padding:30px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }.form-card label { margin-bottom:20px; }.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; }.form-card fieldset { margin:0 0 25px; padding:0; border:0; }.form-card legend { margin-bottom:12px; color:#44534c; font-size:13px; font-weight:600; }.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.choice { display:flex; align-items:flex-start; gap:10px; padding:15px; color:var(--ink); border:1px solid var(--line); border-radius:7px; cursor:pointer; }.choice:has(input:checked) { border-color:var(--green); background:var(--mint); }.choice input { width:auto; margin:3px 0 0; }.choice b,.choice small { display:block; }.choice small { margin-top:3px; color:var(--muted); font-size:12px; font-weight:400; }.checkbox-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:9px; padding:13px; border:1px solid var(--line); border-radius:7px; font-weight:400; }.checkbox-grid input { display:inline-block; width:auto; margin:0 5px 0 0; }.form-note { margin:15px 0 0; color:var(--muted); font-size:12px; }.honeypot { position:absolute; left:-9999px; }.alert { padding:14px 17px; margin-bottom:20px; color:#8b3b34; background:#fff0ee; border:1px solid #f0cfca; border-radius:7px; }.alert p { margin:0; }.success { text-align:center; }.success h1 { font-size:46px; }.private-link { margin:25px 0; padding:18px; text-align:left; background:var(--mint); border-radius:8px; }.private-link strong { display:block; margin-bottom:8px; font-size:13px; }.private-link input { margin:0; background:#fff; }.detail { width:min(760px,100%); margin:65px auto 100px; padding:38px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); }.back-link { display:block; margin-bottom:44px; color:var(--muted); font-size:13px; }.detail h1 { margin:10px 0 10px; font-size:52px; }.detail-copy { margin:30px 0; color:#415048; font-size:17px; }.contact-box { margin:35px 0 25px; padding:25px; text-align:center; background:var(--mint); border-radius:8px; }.contact-box p { color:var(--green-dark); font-weight:600; }.phone-button { background:var(--gold); border-color:var(--gold); }.manage-card { font-size:17px; }.manage-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }.footer { padding:25px 0; color:var(--muted); border-top:1px solid var(--line); font-size:12px; }.footer .container { display:flex; gap:22px; }.footer a:last-child { margin-left:auto; }.searchbar { display:flex; gap:10px; margin-bottom:20px; }.searchbar input { margin:0; }.admin-table { background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; }.admin-row { display:grid; grid-template-columns:1fr auto auto; gap:20px; align-items:center; padding:16px 19px; border-bottom:1px solid var(--line); }.admin-row:last-child { border:0; }.admin-row span { display:block; color:var(--muted); font-size:12px; }.admin-row strong { font-size:12px; color:var(--green); }.admin-actions { display:flex; align-items:center; gap:10px; font-size:12px; }.admin-actions form { display:flex; gap:6px; }.admin-actions button { border:0; color:var(--green); background:none; cursor:pointer; font:12px 'DM Sans',sans-serif; }.admin-actions button:last-child { color:var(--danger); }
@media (max-width:760px) { .container { width:min(100% - 28px, 600px); }.nav { height:66px; }.nav nav > a:first-child { display:none; }.hero { margin:0 -14px; padding:55px 20px; display:block; min-height:auto; }.hero h1 { font-size:46px; }.hero-note { margin-top:38px; width:100%; }.hero-note span { display:inline; margin-right:10px; }.hero-note small { display:inline; }.listing { padding:55px 0 70px; }.section-heading { align-items:flex-start; flex-direction:column; }.filters,.offer-grid { grid-template-columns:1fr; }.filters .button { width:100%; }.field-grid,.choice-grid,.checkbox-grid { grid-template-columns:1fr; }.narrow { margin:45px auto 70px; }.narrow h1,.success h1 { font-size:39px; }.form-card,.detail { padding:22px; }.detail h1 { font-size:39px; }.footer .container { flex-wrap:wrap; }.footer a:last-child { margin-left:0; }.admin-head { align-items:flex-start; }.admin-row { grid-template-columns:1fr; gap:8px; }.admin-actions { flex-wrap:wrap; }.searchbar { display:block; }.searchbar .button { width:100%; margin-top:8px; } }
