/* Fonts are self-hosted; build.py ships only the file the chosen style uses. */
@font-face { font-family:"Plus Jakarta Sans"; src:url("fonts/plus-jakarta-sans.woff2") format("woff2"); font-weight:200 800; font-display:swap; }
@font-face { font-family:"Archivo"; src:url("fonts/archivo.woff2") format("woff2"); font-weight:100 900; font-display:swap; }

/* ---- styles: each sets its own colors, shapes and type; a client accent overrides --accent/--on-accent/--accent-ink inline ---- */
[data-style="modern"] { --bg:#fafaf9; --text:#1c1917; --muted:#57534e; --line:#e7e5e4; --accent:#0f766e; --on-accent:#ffffff; --accent-ink:#0f766e; --radius:24px; --btn-radius:999px; --field:16px; --font:"Plus Jakarta Sans", system-ui, sans-serif; --h-weight:800; --h-track:-.035em; --h-case:none; --sec-bg:#ecece9; --sec-text:#1c1917; --sec-border:transparent; }
[data-style="warm"] { --bg:#fbf6ee; --text:#2a1b12; --muted:#6b5443; --line:#e4d5c0; --accent:#c2410c; --on-accent:#ffffff; --accent-ink:#c2410c; --radius:24px; --btn-radius:999px; --field:16px; --font:"Plus Jakarta Sans", system-ui, sans-serif; --h-weight:800; --h-track:-.035em; --h-case:none; --sec-bg:#f1e6d6; --sec-text:#2a1b12; --sec-border:transparent; }
[data-style="bold"] { --bg:#141414; --text:#f5f5f0; --muted:#c9c9c2; --line:#3a3a36; --accent:#ffc629; --on-accent:#141414; --accent-ink:#ffc629; --radius:0; --btn-radius:0; --field:0; --font:"Archivo", system-ui, sans-serif; --h-weight:800; --h-track:-.01em; --h-case:uppercase; --sec-bg:transparent; --sec-text:#f5f5f0; --sec-border:#f5f5f0; }
[data-style="street"] { --bg:#181310; --text:#f7efe4; --muted:#d8cbbb; --line:#4a3629; --accent:#ff6a2b; --on-accent:#181310; --accent-ink:#ff6a2b; --radius:0; --btn-radius:0; --field:0; --font:"Archivo", system-ui, sans-serif; --h-weight:800; --h-track:-.01em; --h-case:uppercase; --sec-bg:transparent; --sec-text:#f7efe4; --sec-border:#f7efe4; }
body { --surface:var(--bg); }
@supports (background:color-mix(in srgb, red, blue)) { body { --surface:color-mix(in srgb, var(--accent) 9%, var(--bg)); } }

/* ---- base ---- */
* { box-sizing:border-box; }
body { margin:0; padding-bottom:78px; background:var(--bg); color:var(--text); font-family:var(--font); line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:var(--accent-ink); }
p { margin:0 0 12px; }
h1, h2, h3 { margin:0; font-weight:var(--h-weight); letter-spacing:var(--h-track); text-transform:var(--h-case); line-height:1.05; }
h2 { margin-bottom:14px; font-size:1.6rem; }
a:focus-visible, .btn:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid var(--accent-ink); outline-offset:3px; }
.skip { position:absolute; left:-999px; top:8px; z-index:20; padding:10px 14px; background:var(--accent); color:var(--on-accent); font-weight:700; }
.skip:focus { left:8px; }

/* ---- buttons ---- */
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 24px; border:2px solid var(--sec-border); border-radius:var(--btn-radius); background:var(--sec-bg); color:var(--sec-text); font:inherit; font-weight:700; text-decoration:none; text-transform:var(--h-case); cursor:pointer; transition:transform .15s ease, filter .15s ease; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.btn:active { transform:scale(.98); }
@media (hover:hover) { .btn:hover { filter:brightness(1.07); } }

/* ---- hero ---- */
.hero { position:relative; display:grid; gap:26px; max-width:1120px; margin:0 auto; padding:28px 22px 24px; }
.hero-text { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-top:16px; }
.lang { position:absolute; top:12px; right:22px; font-weight:700; font-size:.9rem; }
.eyebrow { margin:0; font-size:.8rem; font-weight:700; letter-spacing:.06em; color:var(--accent-ink); }
h1 { font-size:clamp(2.3rem, 9vw, 4.6rem); overflow-wrap:anywhere; }
.tagline { margin:0; max-width:34ch; font-size:1.1rem; color:var(--muted); }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin:8px 0 0; }
.hero-photo { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius); }
.hero-panel { padding:22px; border-radius:var(--radius); background:var(--surface); }
[data-style="bold"] .hero-photo, [data-style="street"] .hero-photo, [data-style="bold"] .hero-panel, [data-style="street"] .hero-panel { border-left:8px solid var(--accent); }
.panel-label { margin:0; font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); }
.panel-main { margin:6px 0 2px; font-size:1.35rem; font-weight:800; letter-spacing:-.02em; text-transform:var(--h-case); }
.panel-sub { margin:0; font-size:.95rem; color:var(--muted); }

/* ---- content ---- */
main { max-width:1120px; margin:0 auto; padding:8px 22px 40px; }
main > section { max-width:720px; margin-top:44px; }
main > .block-cards, main > .gallery { max-width:none; }
.items { margin:0; padding:0; list-style:none; border-bottom:1px solid var(--line); }
.items li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:2px 16px; padding:15px 0; border-top:1px solid var(--line); }
[data-style="bold"] .items li:first-child, [data-style="street"] .items li:first-child { border-top:2px solid var(--accent); }
.item-name { font-weight:700; text-transform:var(--h-case); }
.item-price { font-weight:800; color:var(--accent-ink); }
.items p { flex-basis:100%; margin:0; font-size:.92rem; color:var(--muted); }
.hours { display:grid; grid-template-columns:auto 1fr; gap:6px 20px; margin:0; }
.hours dt { font-weight:700; }
.hours dd { margin:0; }
.gallery { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px; }
.gallery img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:var(--radius); }
.gallery img:first-child { grid-column:1 / -1; aspect-ratio:16/9; }
iframe { display:block; 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 { padding:20px; border-radius:var(--radius); background:var(--surface); }
.card h3 { margin-bottom:4px; font-size:1.2rem; }
.price { margin:0 0 8px; font-size:1.5rem; font-weight:800; color:var(--accent-ink); }
.steps { padding-left:20px; }
details { padding:6px 0; border-bottom:1px solid var(--line); }
summary { display:flex; align-items:center; min-height:44px; font-weight:700; cursor:pointer; }
form { display:grid; gap:14px; }
label { display:grid; gap:6px; font-weight:700; }
input, textarea { padding:13px 14px; border:2px solid var(--line); border-radius:var(--field); background:var(--surface); color:var(--text); font:inherit; }
textarea { min-height:120px; }
footer { max-width:1120px; margin:0 auto; padding:8px 22px 28px; font-size:.9rem; color:var(--muted); }

/* ---- sticky action bar (phones) ---- */
.action-bar { position:fixed; left:0; right:0; bottom:0; z-index:10; display:flex; gap:10px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--bg); }
.action-bar .btn { flex:1; }

@media (min-width:860px) {
  body { padding-bottom:0; }
  .action-bar { display:none; }
  .hero { grid-template-columns:1.1fr .9fr; align-items:center; gap:56px; padding:56px 32px; }
  .hero-media { display:flex; align-items:center; }
  .hero-photo { aspect-ratio:5/4; }
  .hero-panel { width:100%; padding:34px; }
  .panel-main { font-size:1.7rem; }
  .lang { right:32px; }
  main, footer { padding-left:32px; padding-right:32px; }
  .items.cols-2 { display:grid; grid-template-columns:1fr 1fr; column-gap:40px; border-bottom:0; }
  .items.cols-2 li:nth-child(2) { border-top:1px solid var(--line); }
  .gallery { grid-template-columns:repeat(3, 1fr); }
  .gallery img:first-child { grid-column:span 3; aspect-ratio:21/9; }
}
@media (prefers-reduced-motion: reduce) { * { transition:none !important; scroll-behavior:auto !important; } }
