/*
  Page-level styles lifted verbatim from the approved Phase 0 prototype's inline <style> blocks
  (prototype/index.html, prototype/prices.html, prototype/login.html) so the real pages match it.
*/

/* ---------- home (prototype/index.html) ---------- */
.hero { position: relative; overflow: visible; }
.hero-grid {
  display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: center;
  gap: clamp(var(--space-xl), 5vw, var(--space-3xl));
  padding: clamp(var(--space-2xl), 8vw, var(--space-4xl)) var(--space-lg);
  max-width: 1440px; margin: 0 auto;
}
.hero-content, .hero-mark-wrap { min-width: 0; }
.hero-content h1 {
  font-size: clamp(1.9rem, 1.1rem + 3.2vw, var(--text-5xl));
  max-width: 15ch; margin: var(--space-md) 0 var(--space-lg);
  overflow-wrap: break-word;
}
.hero-content p.sub { max-width: 46ch; font-size: clamp(1rem, 0.9rem + 0.3vw, var(--text-lg)); margin-bottom: var(--space-xl); }
.hero-cta-row { display: flex; align-items: center; gap: clamp(var(--space-md), 3vw, var(--space-2xl)); flex-wrap: wrap; }
.hero-mark-wrap { display: flex; justify-content: center; align-items: center; position: relative; }
.hero-mark-img { width: 100%; max-width: 380px; height: auto; display: block; }
@media (max-width: 860px) {
  .hero-grid { grid-template-columns: 1fr; padding: var(--space-2xl) var(--space-lg); }
  .hero-mark-wrap { order: -1; }
  .hero-mark-img { max-width: 240px; }
  .hero-content { text-align: left; }
}

.category-teaser { display: grid; grid-template-columns: repeat(var(--teaser-cols, 5), 1fr); border-top: 1px solid var(--text); border-bottom: 1px solid var(--border); }
.category-teaser a { padding: var(--space-lg) var(--space-md); border-right: 1px solid var(--border); text-align: center; }
.category-teaser a:last-child { border-right: none; }
.category-teaser .icon-lg { margin: 0 auto var(--space-sm); color: var(--gold-mid); }
.category-teaser .label { font-family: var(--font-display); font-size: var(--text-lg); color: var(--text); }
@media (max-width: 760px) { .category-teaser { grid-template-columns: repeat(2, 1fr); } .category-teaser a:nth-child(2n) { border-right: none; } }

.policy-block { max-width: 720px; }
.gallery-strip { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: var(--space-sm); }
.gallery-strip .ph { aspect-ratio: 4/5; position: relative; overflow: hidden; }
.gallery-strip .ph:first-child { aspect-ratio: auto; }
.gallery-strip .ph .cap { position: absolute; left: 10px; bottom: 10px; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-faint); }

/* ---------- price list (prototype/prices.html) ---------- */
.menu-section { display: grid; grid-template-columns: 0.8fr 1.6fr; gap: var(--space-2xl); padding: var(--space-3xl) 0; border-top: 1px solid var(--border); scroll-margin-top: 100px; }
.menu-section:first-of-type { border-top: 1px solid var(--text); }
.menu-intro .eyebrow { margin-bottom: var(--space-sm); }
.menu-intro h2 { font-size: var(--text-2xl); margin-bottom: var(--space-sm); }
.menu-intro p { max-width: 30ch; font-style: italic; font-family: var(--font-display); color: var(--text-muted); font-size: var(--text-lg); }
.menu-list .menu-row .meta { font-size: var(--text-xs); color: var(--text-faint); margin-top: 2px; }
@media (max-width: 760px) { .menu-section { grid-template-columns: 1fr; gap: var(--space-md); } }

/* ---------- login (prototype/login.html) ---------- */
body.login-body { min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; padding: var(--space-lg); }
.login-bg-hex { position: absolute; opacity: 0.07; pointer-events: none; width: 820px; height: 820px; top: 50%; left: 50%; transform: translate(-50%, -50%); }
:root[data-theme="dark"] .login-bg-hex { opacity: 0.1; }
.login-card { position: relative; z-index: 1; width: 100%; max-width: 380px; }
