:root { --bg:#f6f4ef; --card:#fff; --fg:#1f2a1f; --muted:#556055; --accent:#b3261e; --accent-fg:#fff; --line:#dcd8cc; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#131913; --card:#1b231b; --fg:#eef1ea; --muted:#a3ada3; --accent:#ff7b6e; --accent-fg:#1a0c0b; --line:#2c372c; }
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font:17px/1.6 system-ui,-apple-system,Segoe UI,sans-serif; }
a { color:var(--accent); }
.top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; font-weight:700; color:var(--fg); text-decoration:none; }
.brand img { height:54px; width:auto; }
main, footer { max-width:44rem; margin:0 auto; padding:0 16px; }
section { padding:32px 0; border-bottom:1px solid var(--line); }
.hero { padding:48px 0 40px; }
h1 { margin:0 0 12px; font-size:clamp(2rem,6vw,2.9rem); line-height:1.15; letter-spacing:-.02em; }
h2 { margin:0 0 12px; font-size:1.5rem; }
h3 { margin:0 0 4px; font-size:1.1rem; }
.lead { margin:0 0 20px; color:var(--muted); font-size:1.15rem; }
.cta { display:flex; flex-wrap:wrap; gap:12px; }
.btn { display:inline-block; padding:12px 20px; border:0; border-radius:8px; background:var(--accent); color:var(--accent-fg); font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.btn-alt { background:transparent; color:var(--accent); box-shadow:inset 0 0 0 2px var(--accent); }
.btn-sm { padding:8px 14px; font-size:.95rem; }
.cards { display:grid; gap:12px; padding:0; margin:0; list-style:none; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); }
.cards li { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:16px; }
.cards p { margin:0; color:var(--muted); }
.hours { color:var(--muted); }
form { display:grid; gap:14px; }
label { display:grid; gap:4px; font-weight:600; }
input, textarea { width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--fg); font:inherit; }
input:focus-visible, textarea:focus-visible, .btn:focus-visible, a:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
footer { padding:28px 16px 40px; color:var(--muted); font-size:.95rem; }
footer p { margin:0 0 6px; }
.gallery { display:grid; gap:8px; padding:0; margin:0 0 12px; list-style:none; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr)); }
.gallery img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:8px; background:var(--line); }
.top { flex-wrap:wrap; }
.top nav { display:flex; align-items:center; gap:14px; }
.top nav a:not(.btn) { color:var(--fg); text-decoration:none; font-weight:600; }
.plain { padding-left:1.2rem; margin:0 0 12px; }
.plain li { margin-bottom:8px; }
.note { color:var(--muted); font-size:.95rem; }
select { width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--fg); font:inherit; }
select:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
