:root { --ink:#15261D; --paper:#F6F7F2; --accent-green:#2A5A42; --accent-clay:#C97B4A; --accent-light:#8FD9B6; --muted-on-ink:#C7D2C9; --text:#1B2420; --rule:color-mix(in srgb, var(--ink) 14%, transparent); --display:'Manrope', sans-serif; --body:'Manrope', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
body { margin:0; background:var(--paper); color:var(--text); font-family:var(--body); font-size:16px; line-height:1.5; }
a { color:inherit; }
.preview-return { background:#0e1a13; color:#fff; }
.preview-return a { display:flex; align-items:center; gap:10px; min-height:52px; padding:0 24px; font-size:14px; font-weight:700; text-decoration:none; }
.preview-return a::before { content:"←"; font-size:20px; line-height:1; transition:transform .16s ease; }
.preview-return a:hover::before { transform:translateX(-4px); }
.preview-return a:focus-visible { outline:3px solid var(--accent-clay); outline-offset:-3px; }
.embedded-preview .preview-return { display:none; }

.shell { display:grid; grid-template-columns:260px minmax(0,1fr); align-items:start; }
.rail { background:var(--ink); color:var(--paper); padding:32px 28px; display:flex; flex-direction:column; gap:32px; position:sticky; top:0; height:100vh; overflow-y:auto; }
.rail-brand { font-family:var(--display); font-weight:800; font-size:20px; letter-spacing:-.02em; text-decoration:none; color:var(--paper); }
.rail-nav { display:flex; flex-direction:column; gap:4px; }
.rail-nav a { font-family:var(--display); font-weight:600; font-size:15px; text-decoration:none; color:var(--muted-on-ink); padding:8px 0; }
.rail-nav a:hover, .rail-nav a.current { color:var(--paper); }
.rail-nav a.current { text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:2px; }
.rail-status { margin-top:auto; padding-top:24px; border-top:1px solid color-mix(in srgb, var(--paper) 18%, transparent); font-size:13px; line-height:1.6; }
.rail-status .live { display:inline-flex; align-items:center; gap:6px; color:var(--accent-light); font-weight:700; margin-bottom:10px; }
.rail-status .live::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--accent-light); }
.rail-status p { margin:0 0 10px; color:var(--muted-on-ink); }
.rail-status a.tel { display:block; color:var(--paper); font-weight:700; text-decoration:none; margin-bottom:4px; }
.rail-status a.directions { color:var(--accent-light); font-weight:600; text-decoration:none; font-size:12px; }

.main { padding:clamp(40px,6vw,72px) clamp(24px,5vw,64px); max-width:1000px; }
.page-title { margin:6px 0 0; font-family:var(--display); font-weight:800; font-size:clamp(32px,4.5vw,48px); letter-spacing:-.03em; color:var(--ink); }
.page-note { max-width:60ch; margin:16px 0 0; font-size:16px; color:color-mix(in srgb, var(--text) 78%, var(--paper)); }

footer { background:var(--ink); color:var(--paper); padding:24px clamp(24px,5vw,64px); font-size:13px; grid-column:2; }
.footer-inner { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
footer a { text-underline-offset:3px; }
:focus-visible { outline:3px solid var(--accent-clay); outline-offset:4px; }
::selection { background:var(--accent-green); color:var(--paper); }

@media (max-width:880px) {
  .shell { display:block; }
  .rail { position:static; height:auto; flex-direction:row; flex-wrap:wrap; align-items:center; gap:20px 28px; padding:20px 18px; }
  .rail-nav { flex-direction:row; flex-wrap:wrap; gap:4px 18px; }
  .rail-status { margin-top:0; padding-top:0; border-top:0; border-left:1px solid color-mix(in srgb, var(--paper) 18%, transparent); padding-left:20px; flex:1 1 220px; }
  .main { padding:32px 18px 48px; }
  footer { grid-column:auto; padding:22px 18px; }
}

/* Map embed — Home + Contact "Find Us" section */
.map-section { margin-top: 56px; }
.map-section h2 { margin: 0 0 16px; }
.map-frame { position: relative; border-radius: 20px; padding: 14px; background: color-mix(in srgb, var(--accent-green) 12%, var(--paper)); }
.map-embed { display: block; width: 100%; aspect-ratio: 21 / 9; min-height: 220px; border: 0; border-radius: 14px; pointer-events: none; }
.map-link { position: absolute; inset: 0; border-radius: 20px; }
