/* ==========================================================
   PARKLANE - STYLES
   Colours, fonts and radii are set ONLY in the :root / theme blocks below.
   Theme: <html data-theme="light|dark"> is set by the inline script in every
   page <head> (saved choice, else the visitor's system setting).
   Fonts: see css/fonts.css (generated by build.js from site/fonts/).
   ========================================================== */
:root {
  /* brand palette */
  --color-brand-dark:#101212; --color-brand-green:#4f7a1c; --color-brand-green-deep:#243209; --color-brand-sage:#b8cfd0; --color-brand-sage-deep:#86a0a0; --color-brand-sand:#f7eddd; --color-brand-brown:#6b4623; --color-brand-light:#dedfe1;
  /* header + footer gradient (same in both themes) */
  --grad-start:#1D330F; --grad-end:#6A9322; --grad:linear-gradient(100deg,var(--grad-start) 0%,var(--grad-end) 100%);
  /* type */
  --font-sans:"Neue Montreal","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --font-display:"Canela",Georgia,"Times New Roman",serif;
  /* layout */
  --w:1240px; --hh:72px; --r:4px; --r-lg:20px; --ease:.25s ease;
  /* light theme (default) */
  --bg:#fff; --fg:#101212; --card:#f6f6f5; --alt:var(--color-brand-sand); --border:#dedfe1; --muted:#566868; --accent:#4f7a1c;
  --color-fav:#c0392b; --color-error:#b3261e;
  color-scheme:light;
}
:root[data-theme=dark] { --bg:#000; --fg:#f2f2f0; --card:#111312; --alt:#0b0c0b; --border:#2b2f2f; --muted:#9db0b0; --accent:#9bc263; --color-error:#ff8a80; color-scheme:dark }
/* sections that must look identical in both themes re-declare the light tokens */
.fixed { --bg:#fff; --fg:#101212; --card:#f6f6f5; --border:#dedfe1; --muted:#566868; --accent:#4f7a1c; color-scheme:light; color:var(--fg) }

* { box-sizing:border-box }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--hh) + 12px) }
body { margin:0; font:16px/1.55 var(--font-sans); background:var(--bg); color:var(--fg); padding-top:env(safe-area-inset-top,0) }
img,svg { max-width:100%; display:block }
a { color:inherit; text-decoration:none }
h1,h2,h3 { margin:0; line-height:1.1 }
h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(2.4rem,6vw,4.6rem) }
h2,h3,.h3 { font-family:var(--font-sans); font-weight:500; letter-spacing:-.015em }
h2 { font-size:clamp(1.8rem,3.6vw,2.7rem); margin-bottom:.5rem }
h3 { font-size:1.35rem }
.wrap { max-width:var(--w); margin:0 auto; padding:0 20px }
section { padding:72px 0 }
.eyebrow { font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; display:block }

/* buttons */
.btn { display:inline-block; border:1px solid var(--fg); background:var(--fg); color:var(--bg); padding:13px 24px; border-radius:var(--r); font:500 .95rem var(--font-sans); cursor:pointer; transition:var(--ease) }
.btn:hover { background:var(--color-brand-green); border-color:var(--color-brand-green); color:#fff }
.btn.out { background:transparent; color:var(--fg) }
.btn.out:hover { color:#fff }
.btn.green { background:var(--color-brand-green); border-color:var(--color-brand-green); color:#fff }
.btn.green:hover { background:var(--color-brand-green-deep); border-color:var(--color-brand-green-deep) }
:focus-visible { outline:3px solid var(--accent); outline-offset:2px }

/* ---------- header (gradient, both themes) ---------- */
header { position:sticky; top:0; z-index:20; background:var(--grad); color:#fff; height:var(--hh) }
header .wrap { display:flex; align-items:center; justify-content:space-between; gap:20px; height:100% }
header :focus-visible, footer :focus-visible, .hero :focus-visible { outline-color:#fff }
.logo { display:flex; align-items:center; gap:8px; font-family:var(--font-sans); font-weight:500; font-size:1.3rem; letter-spacing:-.01em }
.logo img { height:30px; width:30px }
header .logo { color:#fff }
nav { display:flex; gap:26px; align-items:center; margin-left:auto }
nav a { font-size:.95rem; padding:6px 0; border-bottom:1px solid transparent }
header nav a { color:#fff }
header nav a:hover { border-color:rgba(255,255,255,.9) }
header nav a.btn { background:#fff; color:var(--grad-start); border-color:#fff; padding:9px 20px }
header nav a.btn:hover { background:rgba(255,255,255,.14); color:#fff; border-color:#fff }
.hdr-actions { display:flex; align-items:center; gap:10px }
.theme-toggle { width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.6); background:rgba(255,255,255,.1); color:#fff; display:grid; place-items:center; padding:0; cursor:pointer; transition:var(--ease) }
.theme-toggle:hover { background:rgba(255,255,255,.24) }
.theme-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.theme-toggle .i-sun { display:none }
:root[data-theme=dark] .theme-toggle .i-sun { display:block }
:root[data-theme=dark] .theme-toggle .i-moon { display:none }
.burger { display:none; background:none; border:1px solid rgba(255,255,255,.6); color:#fff; padding:9px 14px; border-radius:var(--r); font:inherit; cursor:pointer }
@media(max-width:1040px) {
  .burger { display:block }
  nav { display:none; position:absolute; top:var(--hh); left:0; right:0; background:var(--grad-start); flex-direction:column; align-items:flex-start; padding:16px 20px 24px; margin:0 }
  nav.open { display:flex }
  nav a { padding:10px 0; font-size:1.1rem }
  header nav a.btn { margin-top:6px }
  header .wrap { gap:12px }
  .hdr-actions { margin-left:auto }
}
@font-face {
  font-family: "Corinthia";
  font-style: thin;
  font-weight: -100;
  font-display: swap;
  src: url("../fonts/corinthia-latin-Bold.woff2") format("woff2");
}
/* ---------- hero ---------- */
.hero { min-height:660px; color:#fff; display:flex; align-items:center; position:relative; background:var(--color-brand-green-deep); overflow:hidden; padding:0 }
.hero img.art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.hero:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,18,18,.6),rgba(16,18,18,.3) 55%,rgba(16,18,18,.6)) }
.hero .wrap { position:relative; z-index:2; padding-top:56px; padding-bottom:56px; width:100%; text-align:center }
.hero h1 { text-wrap:balance }
.hero p { max-width:520px; font-size:1.15rem; margin:18px auto 26px }
.hero-cta { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:0 0 36px }
.hero .btn.out { border-color:#fff; color:#fff }
.hero .btn.out:hover { background:#fff; color:var(--color-brand-dark); border-color:#fff }
.search { background:var(--bg); color:var(--fg); padding:18px; border-radius:var(--r); display:grid; grid-template-columns:2fr 1fr 1fr 1fr auto; gap:10px; max-width:1000px; margin:0 auto; text-align:left }
@media(max-width:900px) { .search { grid-template-columns:1fr 1fr } .search .btn,.search input:first-child { grid-column:1/-1 } }
@media(max-width:560px) { .hero { min-height:0 } .hero .btn { flex:1 1 100%; text-align:center } }

/* ---------- forms ---------- */
input,select,textarea { width:100%; padding:12px; border:1px solid var(--border); border-radius:var(--r); background:var(--bg); color:var(--fg); font:inherit; min-height:46px }
label { font-size:.8rem; display:block; margin-bottom:4px }

/* ---------- cards & grids ---------- */
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:26px }
.card { background:var(--card); border-radius:var(--r); overflow:hidden; position:relative; transition:var(--ease); display:block }
.card:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(16,18,18,.12) }
:root[data-theme=dark] .card:hover { box-shadow:0 10px 30px rgba(0,0,0,.6) }
.card .img { aspect-ratio:4/3; overflow:hidden }
.card .body { padding:16px 18px 20px }
.price { font-family:var(--font-sans); font-weight:500; font-size:1.5rem; letter-spacing:-.01em }
.meta { display:flex; gap:14px; font-size:.85rem; color:var(--muted); margin:6px 0 }
.muted { color:var(--muted); font-size:.9rem }
.badge { position:absolute; top:12px; left:12px; background:var(--color-brand-sand); color:var(--color-brand-dark); padding:4px 10px; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; border-radius:2px; z-index:2 }
.fav { position:absolute; top:8px; right:8px; z-index:3; background:rgba(255,255,255,.9); border:0; border-radius:50%; width:44px; height:44px; font-size:1.2rem; cursor:pointer; color:#101212 }
.fav.on { color:var(--color-fav) }

/* ---------- Explore locations: tall rounded cards ---------- */
.loc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:28px }
.loc { position:relative; display:flex; align-items:flex-end; aspect-ratio:3/4; padding:22px; color:#fff; border-radius:var(--r-lg); overflow:hidden; isolation:isolate }
.loc img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .6s ease }
.loc:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.78) 100%); transition:opacity var(--ease) }
.loc:hover img,.loc:focus-visible img { transform:scale(1.05) }
.loc .count { display:block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85; margin-bottom:6px }
.loc h2,.loc h3 { font-size:1.6rem; margin:0 0 4px; color:#fff }
.loc p { margin:0; font-size:.92rem; opacity:.92; max-width:26ch }
.loc:focus-visible { outline:3px solid var(--color-brand-green); outline-offset:3px }
@media(max-width:1000px) { .loc-grid { grid-template-columns:repeat(2,1fr) } }
@media(max-width:600px) {
  .loc-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px; margin-right:-20px; padding-right:20px; padding-bottom:6px; -webkit-overflow-scrolling:touch }
  .loc { flex:0 0 72%; scroll-snap-align:start }
}

/* ---------- sections ---------- */
.alt { background:var(--alt); color:var(--fg) }
.sand { background:var(--color-brand-sand); color:var(--color-brand-dark) }
.sage { background:var(--color-brand-sage); color:var(--color-brand-dark) }
.sand .eyebrow,.sage .eyebrow { color:var(--color-brand-green-deep) }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:30px }
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center }
@media(max-width:820px) { .split { grid-template-columns:1fr } }
.layout { display:grid; grid-template-columns:260px 1fr; gap:32px }
@media(max-width:900px) { .layout { grid-template-columns:1fr } }
.filters { display:grid; gap:12px; align-content:start }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 }
.chip { background:var(--color-brand-sand); color:#101212; padding:4px 12px; border-radius:20px; font-size:.82rem }
.gallery .main { aspect-ratio:16/9; border-radius:var(--r); overflow:hidden }
.thumbs { display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:8px; margin-top:8px }
.thumbs button { padding:0; border:2px solid transparent; border-radius:3px; overflow:hidden; cursor:pointer; aspect-ratio:4/3; background:none }
.thumbs button.on { border-color:var(--color-brand-green) }
.err { color:var(--color-error); font-size:.8rem; min-height:1em }
.ok { background:var(--color-brand-sage); color:#101212; padding:18px; border-radius:var(--r) }
.crumbs { font-size:.85rem; color:var(--muted); padding:20px 0 6px }
.crumbs a:hover { text-decoration:underline }

/* ---------- footer (gradient, both themes) ---------- */
footer { background:linear-gradient(135deg,var(--grad-start) 0%,var(--grad-end) 100%); color:#fff; padding:60px 0 30px }
footer a { display:block; padding:7px 0; color:#fff; opacity:.9 }
footer a:hover { opacity:1; text-decoration:underline }
footer .muted { color:rgba(255,255,255,.9); text-shadow:0 1px 2px rgba(0,0,0,.3) }
footer .logo { color:#fff }
footer a.inline { display:inline }
footer .socials { margin-top:14px }
footer .socials a { display:grid; padding:0; opacity:1; text-decoration:none }

/* ---------- social icons ---------- */
.socials { display:flex; gap:10px; flex-wrap:wrap }
.socials a { width:42px; height:42px; border-radius:50%; border:1px solid currentColor; display:grid; place-items:center; transition:var(--ease) }
.socials svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }
.socials a:hover,.socials a:focus-visible { background:var(--color-brand-green); border-color:var(--color-brand-green); color:#fff }
footer .socials a:hover,footer .socials a:focus-visible { background:#fff; border-color:#fff; color:var(--grad-start) }

/* ---------- lightbox / misc ---------- */
.lb { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:50; display:flex; align-items:center; justify-content:center }
.lb .in { width:min(1000px,94vw) }
@media(prefers-reduced-motion:reduce) { * { transition:none!important; scroll-behavior:auto!important } .loc:hover img { transform:none } }

/* ---------- Additions (replace former inline styles & image tags) ---------- */
.card .img img,.gallery .main img,.thumbs img,.rounded img{width:100%;height:100%;object-fit:cover;display:block}
.page-title{font-size:clamp(2rem,4vw,3rem)}
.rounded{border-radius:var(--r);overflow:hidden}
.rounded.photo{aspect-ratio:16/10}
.mt-28{margin-top:28px}.mt-20{margin:20px 0}
.grid.spaced{margin:28px 0}.grid.end{margin:24px 0 60px}
.btn-search{align-self:end}
.btn.out.dark{color:var(--color-brand-dark)}
.valuation-form{grid-template-columns:1fr auto;box-shadow:0 0 0 1px var(--border)}
.form-card{padding:24px;display:grid;gap:12px}
.page-split{align-items:start;padding:30px 20px 70px}
.page-narrow{padding:80px 20px}
.card .img.square{aspect-ratio:1}
.row-between{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;align-items:center}
.detail-head{margin:14px 0 22px}
.detail-price{font-size:2rem}
.detail-layout{grid-template-columns:1fr 360px;margin:40px 0}
.detail-side{display:grid;gap:20px;align-content:start}
.meta.big{font-size:1rem}
.center{text-align:center;margin-top:30px}
.btn.out.light{color:#fff}
.lb .in p{text-align:center}
@media(max-width:900px){.detail-layout{grid-template-columns:1fr}}

/* ---------- Multi-page additions ---------- */
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:0;background:var(--fg);color:var(--bg);padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
.card .stretch::after{content:"";position:absolute;inset:0;z-index:1}
.card .stretch:focus-visible{outline:none}
.card:focus-within{outline:3px solid var(--accent);outline-offset:2px}
header nav a[aria-current]{border-color:#fff}
.h3{font-size:1.35rem;line-height:1.1;margin:0 0 .5rem}
.crumbs span{opacity:.8}
a.inline{display:inline;text-decoration:underline}
.legal{margin-top:40px}
.sort-label{display:inline}.sort-select{width:auto}
.agent-search{max-width:420px}.agents-grid{margin-bottom:60px}
.agent-split{align-items:start;margin-bottom:40px}
.spacer{height:60px}.mb-60{margin-bottom:60px}
.lb img{width:100%;max-height:80vh;object-fit:contain}

/* gallery arrows + counter (consolidated property page) */
.gallery .stage { position:relative }
.g-nav { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border:0; border-radius:50%; background:rgba(16,18,18,.6); color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center }
.g-nav:hover,.g-nav:focus-visible { background:rgba(16,18,18,.85) }
.g-nav.prev { left:12px } .g-nav.next { right:12px }
.g-count { position:absolute; right:12px; bottom:12px; background:rgba(16,18,18,.6); color:#fff; font-size:.85rem; padding:3px 10px; border-radius:20px }

/* ---------- Agent profile card (property detail page) ---------- */
.agent-card { display:grid; grid-template-columns:140px 1fr; gap:24px; align-items:start; background:var(--card); border:1px solid var(--border); border-radius:var(--r); padding:24px; margin-top:40px }
.agent-card .portrait { aspect-ratio:4/5; border-radius:var(--r); overflow:hidden }
.agent-card .portrait img { width:100%; height:100%; object-fit:cover }
.agent-card h3 { margin:0 0 2px; font-size:1.5rem }
.agent-card .role { margin:0 0 12px; color:var(--muted) }
.agent-card .tag { display:inline-block; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; border:1px solid var(--border); color:var(--muted); border-radius:20px; padding:2px 10px; margin-left:8px; vertical-align:middle }
.agent-card ul { list-style:none; margin:14px 0 18px; padding:0; display:grid; gap:6px; font-size:.95rem }
.agent-card li span { color:var(--muted); display:inline-block; min-width:92px }
.agent-card .todo { color:var(--muted); font-style:italic }
@media(max-width:560px) { .agent-card { grid-template-columns:1fr } .agent-card .portrait { max-width:160px } }

/* ---------- About page ---------- */
.about-hero { padding:56px 0 40px }
.about-hero h1 { margin-bottom:20px }
.about-hero .lead { font-size:1.15rem; max-width:52ch }
.diff-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:28px; margin-top:32px }
.diff-grid > div { border-top:1px solid var(--border); padding-top:18px }
.diff-grid h3 { margin-bottom:8px }
.about-cta { text-align:center }
.about-cta .socials { justify-content:center; margin-top:22px }
.about-cta .socials-title { margin:34px 0 0; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase }
.contact-links { margin-top:28px }
.contact-links p { margin:0 0 10px }

footer b { display:block; margin-bottom:6px }

/* ---------- SEO build additions ---------- */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card .body h2{font-size:1.35rem;line-height:1.1;margin:0}
.agent-card h2{margin:0 0 2px;font-size:1.5rem}
.faq-q{font-size:1.05rem;margin:14px 0 4px}
.crumbs{overflow-wrap:anywhere}
footer .cols a.inline{padding:0}
.hero h1 .script {
  font-family: "Corinthia", "Brush Script MT", "Segoe Script", cursive;
  font-weight: -10;
  font-size: 1.5em;
  line-height: .8;
  letter-spacing: 0;
}