
:root { --gold:#EAA521; --gold-d:#B97C0B; --ink:#17222C; --ink2:#273847; --muted:#5E6B78; --line:#DCE1E6; --bg:#F7F5F0; --panel:#FFFFFF; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.6 Roboto, system-ui, sans-serif; }
img { max-width:100%; }
a { color:var(--gold-d); }
.wrap { max-width:1180px; margin:0 auto; padding:0 24px; }
h1, h2, h3 { font-family:Oswald, sans-serif; font-weight:600; line-height:1.15; letter-spacing:.01em; }
h2 { font-size:34px; margin:40px 0 14px; } h3 { font-size:22px; margin:26px 0 8px; }
.muted { color:var(--muted); font-size:15px; }
/* top bar + nav */
.topbar { background:#fff; border-bottom:1px solid var(--line); }
.topbar .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:12px; padding-bottom:12px; flex-wrap:wrap; }
.brand img { display:block; height:auto; }
.contacts { display:flex; gap:20px; align-items:center; flex-wrap:wrap; font-size:15px; }
.contacts a { color:var(--ink); text-decoration:none; font-weight:500; }
.contacts .visit { background:var(--gold); padding:8px 14px; border-radius:4px; }
.mainnav { background:var(--ink); position:sticky; top:0; z-index:20; }
.mainnav ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.mainnav a { display:block; color:#E8EDF2; text-decoration:none; padding:14px 16px; font:500 16px Oswald, sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.mainnav a:hover, .mainnav a[aria-current] { color:var(--gold); }
.navtoggle { display:none; background:none; border:1px solid #556; color:#fff; padding:8px 14px; margin:8px 0; font:inherit; border-radius:4px; }
@media (max-width:860px) { .navtoggle { display:block; } .mainnav ul { display:none; flex-direction:column; padding-bottom:8px; } .mainnav ul.open { display:flex; }
  .mainnav a { padding:10px 4px; } .contacts { gap:12px; font-size:14px; } }
/* banner */
.banner { background-size:cover; background-position:center; position:relative; color:#fff; }
.banner::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,18,26,.82), rgba(10,18,26,.35)); }
.banner .wrap { position:relative; padding:96px 24px 84px; }
.banner h1 { font-size:clamp(38px,6vw,68px); margin:0 0 10px; }
.banner p { font-size:20px; max-width:720px; margin:0; color:#E7ECF1; }
.banner h1::after { content:""; display:block; width:90px; height:5px; background:var(--gold); margin-top:14px; }
/* compact title on working pages (documents, data room, admin), which have no banner */
.page-title { padding-top:28px; } .page-title h1 { margin:0 0 4px; } .page-title p { margin:0; }
/* content */
.intro .lead { font-size:20px; } .prose { max-width:820px; }
.facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr)); gap:18px; margin-top:22px; }
.facts div { background:var(--panel); border-top:4px solid var(--gold); padding:18px; border-radius:4px; }
.facts b { display:block; font:600 28px Oswald, sans-serif; } .facts span { color:var(--muted); font-size:15px; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); gap:22px; }
.cards.two { grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); margin-top:36px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; }
.card .pic img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.card .txt { padding:18px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.card h3 { margin:0; } .card h3 a { color:var(--ink); text-decoration:none; } .card ul { margin:0 0 6px; padding-left:18px; color:var(--muted); }
.card p { margin:0 0 6px; color:var(--muted); }
.btn { display:inline-block; text-decoration:none; font:500 16px Oswald, sans-serif; letter-spacing:.04em; text-transform:uppercase; padding:11px 20px; border-radius:4px; margin:4px 6px 4px 0; }
.btn.gold { background:var(--gold); color:var(--ink); } .btn.gold:hover { background:#f4b53a; }
.btn.line { border:2px solid var(--gold); color:var(--ink); } .btn.line.light { color:#fff; } .btn.sm { padding:7px 14px; font-size:14px; align-self:flex-start; margin-top:auto; }
.band { background:var(--ink); color:#E8EDF2; margin-top:56px; padding:20px 0 48px; }
.two { display:grid; grid-template-columns:1fr 1.2fr; gap:36px; align-items:center; }
@media (max-width:860px) { .two { grid-template-columns:1fr; } }
video { width:100%; border-radius:6px; background:#000; display:block; }
.split { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; }
@media (max-width:900px) { .split { grid-template-columns:minmax(0,1fr); } }   /* (minmax: a wide table no longer stretches the column past a phone screen – mobile audit 2026-10-21) */
.facts-box { background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--gold); padding:4px 22px 18px; border-radius:4px; align-self:start; margin-top:40px; }
.facts-box ul { padding-left:18px; margin:0; }
table.assays { border-collapse:collapse; margin:10px 0 18px; width:100%; max-width:560px; background:var(--panel); }
table.assays th, table.assays td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--line); }
table.assays th { font:500 15px Oswald, sans-serif; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr)); gap:10px; }
.gallery.wide { grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr)); margin-top:32px; }
.gallery a { display:block; text-decoration:none; color:var(--muted); font-size:13px; }
.gallery img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:4px; display:block; margin-bottom:4px; }
.figs { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr)); gap:20px; margin:16px 0 8px; }
.figs.one { grid-template-columns:1fr; }
.fig { margin:0; background:var(--panel); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.fig img { width:100%; height:auto; display:block; background:#fff; }
.fig figcaption { padding:10px 14px; font-size:14px; color:var(--muted); } .fig b { color:var(--ink); }
/* figures as rows: the picture on the left, its title and description on the right (owner 2026-10-18); one column on a phone */
.figs.rows { grid-template-columns:1fr; gap:16px; }
.figs.rows .fig { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:center; }
.figs.rows .fig img { height:100%; max-height:420px; object-fit:contain; }
.figs.rows .fig figcaption { padding:16px 22px; font-size:15px; line-height:1.55; } .figs.rows .fig figcaption b { display:block; font-size:17px; margin-bottom:6px; }
@media (max-width:760px) { .figs.rows .fig { grid-template-columns:1fr; } .figs.rows .fig img { max-height:none; } }
.note-box { background:#FFF4DC; border-left:4px solid var(--gold); padding:12px 16px; margin-top:32px; }
ul.links li { margin:6px 0; font-size:18px; }
/* embedded 3D viewer: loads only when asked (it is several MB) */
.embed { position:relative; width:100%; height:min(72vh, 680px); min-height:380px; background:#1b2026; border-radius:6px; overflow:hidden; margin:14px 0 6px; }
.embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.embed .poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; }
.embed-start { position:absolute; inset:0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:center; align-content:center; padding:16px; }
.embed-start span { flex-basis:100%; text-align:center; color:#E8EDF2; font-size:14px; }
.embed-tools { margin:0 0 30px; }
/* CTA + footer */
.cta { background:var(--gold); color:var(--ink); margin-top:64px; padding:6px 0 34px; }
.cta h2 { margin-top:30px; } .cta .btn.gold { background:var(--ink); color:#fff; } .cta .btn.line { border-color:var(--ink); }
.foot { background:var(--ink); color:#C9D2DB; padding:40px 0 20px; font-size:15px; }
.foot .cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:28px; }
.foot h3 { color:#fff; font-size:18px; margin:6px 0 10px; } .foot ul { list-style:none; padding:0; margin:0; } .foot li { margin:6px 0; }
.foot a { color:#E8EDF2; text-decoration:none; } .foot a:hover { color:var(--gold); }
.foot .small { margin-top:26px; padding-top:16px; border-top:1px solid #2E3E4C; font-size:13px; color:#90A3B5; }
/* lightbox */
dialog#lb { border:0; padding:0; background:transparent; max-width:96vw; max-height:94vh; }
dialog#lb::backdrop { background:rgba(8,12,18,.9); }
dialog#lb img { max-width:94vw; max-height:84vh; display:block; margin:0 auto; border-radius:4px; background:#fff; }
dialog#lb p { color:#fff; text-align:center; margin:10px 0 0; }
.lb-x { position:fixed; top:14px; right:18px; background:#fff; border:0; border-radius:20px; padding:6px 14px; font-weight:700; cursor:pointer; }
.lb-nav { position:fixed; top:50%; background:rgba(255,255,255,.85); border:0; font-size:28px; width:46px; height:46px; border-radius:23px; cursor:pointer; }
.lb-prev { left:12px; } .lb-next { right:12px; }
@media (max-width:600px) { .wrap { padding:0 16px; } .banner .wrap { padding:64px 16px 56px; } h2 { font-size:28px; } body { font-size:16px; } }

/* ---- phones and tablets (mobile audit, owner 2026-10-21) ---- */
@media (max-width:760px) {
  /* a table wider than the screen scrolls on its own, the page does not */
  .wrap table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  /* long file names and links wrap instead of pushing the page sideways */
  .wrap a, .wrap td, .wrap li { overflow-wrap:anywhere; }
  /* the header's phone, email and site-visit links, and the footer's, big enough for a finger */
  .contacts a { display:inline-flex; align-items:center; min-height:40px; }
  .foot a { display:inline-block; padding:7px 0; }
}

/* ---- phones, round 2 (mobile suggestions 1–4, owner 2026-10-21: "do them all") ---- */
@media (max-width:760px) {
  /* 1 – a slimmer header: a smaller logo, and the phone, email and site-visit links as round icon buttons beside it */
  .topbar .wrap { padding-top:8px; padding-bottom:8px; gap:8px; flex-wrap:nowrap; }
  .topbar .brand img { height:46px; width:auto; }
  .topbar .contacts { gap:8px; flex-wrap:nowrap; }
  .topbar .contacts a { font-size:0 !important; width:42px; height:42px; min-height:0; justify-content:center; border-radius:50%; background:rgba(31,45,58,.12); }
  .topbar .contacts a::before { font-size:19px; margin:0 !important; }
  .topbar select.viewas { position:static; flex:none; max-width:90px; }
  /* 2 – shorter banner photos */
  .banner .wrap { padding:40px 16px 34px !important; }
  .banner h1 { font-size:32px !important; }
  .banner p { font-size:16px; }
  /* 4 – email and phone buttons full width, easy to tap */
  .wrap .btn[href^="tel:"], .wrap .btn[href^="mailto:"] { display:flex; justify-content:center; width:100%; min-height:48px; box-sizing:border-box; margin:0 0 8px; }
}
/* 3 – "Open the Property Viewer" stays at the bottom of the screen on a phone once the page has been scrolled */
.mviewer { display:none; }
@media (max-width:760px) {
  .mviewer { display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:50; justify-content:center; align-items:center; gap:8px;
             min-height:48px; border-radius:24px; background:var(--gold); color:var(--ink); font:700 16px "Open Sans Condensed", sans-serif;
             text-transform:uppercase; letter-spacing:.03em; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.35);
             transform:translateY(90px); opacity:0; transition:transform .25s, opacity .25s; pointer-events:none; }
  body.mv-on .mviewer { transform:none; opacity:1; pointer-events:auto; }
  body.mv-on .foot { padding-bottom:80px; }
}
@media (prefers-reduced-motion: reduce) { .mviewer { transition:none; } }
