@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap");
@import url("https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800&display=swap");

:root {
  --font-sans: "Cabinet Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-heading: "Space Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --page: #101010;
  --surface: #1b1b1b;
  --raised: #272727;
  --text: #f2f2f2;
  --muted: #b5b5b5;
  --border: #404040;
  --green: #7bd69b;
  --gold: var(--green);
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--page);
  color-scheme: dark;
  line-height: 1.5;
}*{box-sizing:border-box}body{margin:0}.site-header{display:flex;justify-content:space-between;align-items:center;padding:1rem max(4vw,1rem);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4}.brand{font-family:var(--font-heading);font-size:1.65rem;font-weight:700;letter-spacing:-.04em;color:var(--text);text-decoration:none}.site-header nav,.listing-actions,.section-heading{display:flex;gap:.65rem;align-items:center}.app-shell{width:min(1120px,92vw);margin:2rem auto;display:grid;gap:1.2rem}.hero{padding:4rem clamp(1.2rem,5vw,4rem);border-radius:12px;color:var(--text);background:var(--surface);border:1px solid var(--border)}.hero h1{font-size:clamp(2.3rem,6vw,4.8rem);line-height:1.03;max-width:850px;margin:.4rem 0 1rem}.hero-audience{max-width:820px;margin:1rem 0 1.25rem;color:var(--muted);font-size:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.875rem;font-weight:800;color:var(--gold)}.search-row{display:flex;gap:.6rem;max-width:720px}.search-row input{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:clamp(1rem,3vw,2rem);box-shadow:none}.section-heading{justify-content:space-between}.directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.listing-card{border:1px solid var(--border);border-radius:10px;padding:1rem}.listing-card h3{font-size:1.25rem;margin:.15rem 0}.listing-kind,.listing-location,.listing-details,.listing-rating{color:var(--muted)}.reviews{border-top:1px solid var(--border);margin-top:1rem;padding-top:.8rem}.review{padding:.8rem 0;border-bottom:1px solid var(--border)}.review:last-child{border:0}.review img{width:110px;height:80px;object-fit:cover;border-radius:8px;margin:.4rem}.field-grid,.moderation-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}label{display:grid;gap:.35rem;font-weight:600;margin:.8rem 0}fieldset{border:1px solid var(--border);border-radius:12px;margin:1rem 0}input,textarea,select,button,.button-link{font:inherit;border-radius:9px}input,textarea,select{width:100%;border:1px solid var(--border);padding:.75rem;background:var(--surface)}button,.button-link{border:0;background:var(--green);color:#101010;padding:.7rem 1rem;font-weight:700;cursor:pointer;text-decoration:none}.secondary{background:var(--raised)}.text-button{background:transparent;color:var(--green);padding:.5rem 0}.checkbox{grid-template-columns:auto 1fr;align-items:start;font-weight:400}.checkbox input{width:auto;margin-top:.3rem}.notice{background:var(--raised);border:1px solid var(--border);color:var(--text);padding:1rem;border-radius:10px}.empty-state{color:var(--muted)}dialog{width:min(620px,94vw);border:0;border-radius:12px;padding:0;box-shadow:0 24px 80px #0008}dialog::backdrop{background:#000b}.dialog-body{padding:0 1.5rem 1.5rem}.dialog-close{display:flex;justify-content:flex-end}.dialog-close button{background:transparent;color:var(--text);font-size:1.8rem}.moderation-item{border:1px solid var(--border);border-radius:12px;padding:1rem;margin:.7rem 0}.moderation-actions{display:flex;gap:.5rem}.danger{background:#9b2c2c}.hidden{display:none!important}@media(max-width:700px){.site-header{align-items:flex-start}.brand{font-size:1.55rem}.site-header nav{flex-wrap:wrap;justify-content:flex-end}.search-row,.section-heading{align-items:stretch;flex-direction:column}.field-grid,.moderation-columns{grid-template-columns:1fr}.hero{padding:2.3rem 1.1rem}}

.city-directory-list{display:grid;gap:.75rem}
.city-directory-group{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.city-directory-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem}
.city-directory-title{margin:0;color:var(--green);font-size:1.2rem}
.city-directory-actions{display:flex;align-items:center;gap:.55rem}
.city-directory-action{padding:.55rem .75rem;font-size:.84rem;white-space:nowrap}
.city-directory-grid{width:100%;padding:0 1rem 1rem;border-top:1px solid var(--border)}
@media(max-width:620px){.city-directory-heading{align-items:stretch;flex-direction:column}.city-directory-actions{display:grid;grid-template-columns:1fr 1fr}.city-directory-action{text-align:center}}

.how-it-works{display:grid;gap:1.5rem}
.how-it-works-intro{max-width:780px}
.how-it-works-intro h2{font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.15;margin:.25rem 0 .65rem;color:var(--green)}
.how-it-works-intro>p:last-child{margin:0;color:var(--muted)}
.how-it-works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.how-step{position:relative;border:1px solid var(--border);border-radius:10px;padding:1.2rem;background:var(--raised)}
.how-step-number{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--green);color:var(--text);font-weight:800}
.how-step h3{margin:.8rem 0 .35rem;color:var(--text)}
.how-step p{margin:0;color:var(--muted)}
.how-it-works-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.how-it-works-note{margin:0;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}
@media(max-width:760px){.how-it-works-grid{grid-template-columns:1fr}.how-it-works-actions{display:grid}.how-it-works-actions .button-link,.how-it-works-actions button{text-align:center}}

.site-footer{width:min(1120px,92vw);margin:0 auto 2rem;padding:1rem;display:flex;justify-content:center;align-items:center;gap:.7rem;color:var(--muted);font-size:.9rem}
.site-footer a{color:var(--green);font-weight:700}
.legal-shell{width:min(880px,92vw)}
.legal-page{padding:clamp(1.25rem,4vw,3rem)}
.legal-page h1{font-size:clamp(2.25rem,6vw,4rem);line-height:1.05;margin:.25rem 0 .5rem;color:var(--green)}
.legal-page h2{margin:2rem 0 .6rem;color:var(--green);font-size:1.45rem}
.legal-page h3{margin:1.25rem 0 .4rem;font-size:1.08rem}
.legal-page p,.legal-page li{color:var(--muted)}
.legal-page li+li{margin-top:.45rem}
.legal-page a{color:var(--green);font-weight:700}
.legal-updated{margin-top:0}

/* Neutral typography and surfaces; green is reserved for interaction. */
a{color:var(--green)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}
.hero h1{font-weight:600;letter-spacing:-.03em}
.hero-audience{font-size:1rem}
.eyebrow{color:var(--muted);font-weight:600;letter-spacing:.08em}
.hero .eyebrow{color:var(--green)}
.city-directory-title,.how-it-works-intro h2,.legal-page h1,.legal-page h2{color:var(--text)}
.secondary{color:var(--text);border:1px solid var(--border)}
.how-step-number{background:var(--border);color:var(--text)}
input,textarea,select{color:var(--text)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input[type="checkbox"]{accent-color:var(--green)}
dialog{background:var(--surface);color:var(--text);border:1px solid var(--border)}
:where(button,.button-link):hover{filter:brightness(1.12)}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--green);outline-offset:3px}
:where(button,.button-link):disabled{cursor:wait;opacity:.62}
.site-header{gap:1rem;flex-wrap:wrap}
.site-header nav,.listing-actions,.moderation-actions{flex-wrap:wrap}
.site-header nav{min-width:0}
.search-row input{min-width:0}
.directory-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}
.listing-card,.card{min-width:0;overflow-wrap:anywhere}
.site-footer{flex-wrap:wrap}
.leaflet-container{font-family:var(--font-sans);color:#202020;color-scheme:light}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface);color:var(--text)}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}
.leaflet-container .leaflet-control-attribution{background:#fff;color:#333}
.leaflet-container .leaflet-control-attribution a{color:#18583a}
@media(max-width:420px){.site-header{position:relative}.site-header nav{justify-content:flex-start}.brand{font-size:1.5rem}}

/* Directory section labels act as headings; counts remain body text. */
.state-directory-heading,.city-directory-title{font-family:var(--font-heading)}
.state-directory-heading small,.city-directory-heading small{font-family:var(--font-sans)}

/* Compact promotional footers, separate from rental content. */
.card-promotion{min-width:0;border-top:1px solid var(--border);padding-top:1rem}
.card-promotion-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:var(--raised);border:1px solid transparent;border-radius:8px;color:var(--text);text-decoration:none;min-width:0}
.card-promotion-copy{display:grid;gap:.3rem;min-width:0}
.card-promotion-label{font-size:.875rem;color:var(--muted)}
.card-promotion-copy strong{font-family:var(--font-heading);font-size:1rem;font-weight:600;line-height:1.4}
.card-promotion-copy>span:last-child{color:var(--muted);font-size:.9375rem}
.card-promotion-cta{flex-shrink:0;color:var(--green);font-weight:700;font-size:.9375rem}
.card-promotion-link:hover,.card-promotion-link:focus-visible{border-color:var(--green)}
.card-promotion-link:hover .card-promotion-cta{text-decoration:underline;text-underline-offset:.2em}
@media(max-width:700px){.card-promotion-link{align-items:flex-start;flex-direction:column;gap:.75rem}.card-promotion-cta{flex-shrink:1}}

/* Shared development credit with a circular crop for the logo's white corners. */
.site-footer{justify-content:space-between;gap:1.25rem;border-top:1px solid var(--border);padding:1.25rem 0}
.footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem}
.site-footer .footer-credit{display:inline-flex;align-items:center;gap:.75rem;max-width:100%;color:var(--text);text-decoration:none}
.footer-credit img{display:block;width:44px;height:44px;object-fit:cover;object-position:center;border-radius:50%;flex-shrink:0}
.footer-credit>span{display:grid;gap:.1rem;min-width:0}
.footer-credit-label{color:var(--muted);font-size:.875rem;font-weight:400}
.footer-credit-name{font-family:var(--font-heading);font-size:.9375rem;font-weight:600;overflow-wrap:anywhere}
.footer-credit:hover .footer-credit-name{color:var(--green);text-decoration:underline;text-underline-offset:.2em}
@media(max-width:600px){.site-footer{flex-direction:column;align-items:center}.footer-links{justify-content:center}}

/* Homepage commercial: native controls and no automatic playback. */
.homepage-commercial{display:grid;gap:1rem}
.homepage-commercial h2{margin:0}
.commercial-direct-link{font-size:.9375rem;font-weight:700}
.commercial-player{display:block;width:100%;height:auto;aspect-ratio:910/512;background:#000;border-radius:8px}
.commercial-player:focus-visible{outline:2px solid var(--green);outline-offset:3px}
