/* shared/css/base.css */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.5;
  padding-bottom: 4.5rem; /* room for sticky call bar on mobile */
}
a { color: inherit; }
.site-header, .hero, .section, .site-footer {
  width: min(1100px, 100% - 2rem);
  margin-inline: auto;
}
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
}
.logo { font-weight: 800; letter-spacing: -0.02em; max-width: 62%; line-height: 1.2; }
.site-header { gap: 1rem; flex-wrap: wrap; }
a.inline-link { text-decoration: underline; }
.hours { padding-left: 1.1rem; margin: 0.4rem 0 0; }
.wide-photo { width: 100%; border-radius: 1rem; display: block; object-fit: cover; max-height: 360px; margin: 1rem 0; }
.btn-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: var(--color-cta);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  border: none;
}
.btn-call:hover { filter: brightness(1.05); }
.hero {
  display: grid;
  gap: 1.5rem;
  padding: 2rem 0 3rem;
}
.hero h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1.15; margin: 0; }
.hero-media img { width: 100%; border-radius: 1rem; display: block; object-fit: cover; max-height: 420px; }
.cards { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.card {
  background: var(--color-surface);
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.06);
}
.card img { width: 100%; border-radius: 0.75rem; margin-bottom: 0.75rem; }
.steps { display: grid; gap: 1rem; }
.faq details { background: var(--color-surface); padding: 1rem; border-radius: 0.75rem; margin-bottom: 0.5rem; }
.call-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  display: flex;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--color-primary);
  z-index: 50;
}
.call-bar .btn-call { flex: 1; }
.site-footer { padding: 3rem 0 6rem; font-size: 0.95rem; }
@media (min-width: 768px) {
  .hero { grid-template-columns: 1.1fr 1fr; align-items: center; }
  .cards { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); }
  body { padding-bottom: 0; }
  .call-bar { display: none; } /* desktop uses header CTA */
}
@media (min-width: 1024px) {
  .cards { grid-template-columns: repeat(4, 1fr); }
  .cards.cards-3 { grid-template-columns: repeat(3, 1fr); }
}
