:root { --bg:#fff; --text:#222; --accent:#0b5cad; --accent-text:#fff; --muted:#f3f3f3; --radius:10px; }
.theme-warm { --bg:#fffaf3; --text:#2a211c; --accent:#a83e12; --muted:#f5e9dc; }
.theme-soft { --bg:#fdf6f8; --text:#2b2030; --accent:#8a3a63; --muted:#f4e4ea; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height:1.6; color:var(--text); background:var(--bg); }
main, .hero, footer { max-width:760px; margin:0 auto; padding:24px 16px; }
.hero { position:relative; padding-top:48px; text-align:center; }
h1 { font-size:2rem; margin:0 0 8px; }
h2 { margin:32px 0 12px; }
a { color:var(--accent); }
.tagline { font-size:1.15rem; margin:0 0 12px; }
.rating { margin:0 0 16px; font-weight:600; }
.lang { position:absolute; top:12px; right:16px; font-weight:600; }
.actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:20px 0; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 20px; border:2px solid var(--accent); border-radius:var(--radius); color:var(--accent); background:transparent; text-decoration:none; font:inherit; font-weight:600; cursor:pointer; }
.btn.primary { background:var(--accent); color:var(--accent-text); }
a:focus-visible, .btn:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid var(--text); outline-offset:2px; }
.items { list-style:none; padding:0; }
.items li { padding:12px 0; border-bottom:1px solid var(--muted); }
.items p { margin:4px 0 0; }
.item-name { font-weight:600; }
.item-price { float:right; font-weight:600; }
.hours { display:grid; grid-template-columns:auto 1fr; gap:4px 16px; }
.hours dt { font-weight:600; }
.hours dd { margin:0; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:8px; max-width:760px; margin:24px auto; padding:0 16px; }
.gallery img { width:100%; height:160px; object-fit:cover; border-radius:var(--radius); }
iframe { width:100%; height:280px; border:0; border-radius:var(--radius); }
.cards { display:grid; gap:16px; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); }
.card { background:var(--muted); border-radius:var(--radius); padding:16px; }
.card h3 { margin:0 0 4px; }
.price { font-size:1.4rem; font-weight:700; margin:0 0 8px; }
.steps { padding-left:20px; }
details { border-bottom:1px solid var(--muted); padding:6px 0; }
summary { cursor:pointer; font-weight:600; min-height:44px; display:flex; align-items:center; }
form { display:grid; gap:12px; }
label { display:grid; gap:4px; font-weight:600; }
input, textarea { font:inherit; padding:10px; border:1px solid #777; border-radius:var(--radius); }
textarea { min-height:120px; }
footer { text-align:center; font-size:.9rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior:smooth; } }
