.quotes {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.quote {
  padding: 22px;
  border-radius: 20px;
  background: var(--sage-soft);
}
.quote p { margin: 0 0 14px; font: 400 20px/1.35 var(--display); }
.quote cite { color: var(--muted); font: 500 13px/18px var(--sans); font-style: normal; }

.hours {
  display: grid;
  gap: 24px;
}
@media (min-width: 900px) {
  .hours { grid-template-columns: 1fr 1fr; align-items: start; }
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
th, td {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
th { font-weight: 600; }
td:last-child, th:last-child { text-align: right; color: var(--muted); }
.map {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--paper);
  box-shadow: var(--shadow-soft);
}

.ask {
  margin: 48px max(24px, env(safe-area-inset-left)) 24px;
  margin-right: max(24px, var(--chat-clear));
  padding: 36px;
  border-radius: 28px;
  background: linear-gradient(135deg, var(--teal) 0%, #115e59 55%, #134e4a 100%);
  color: #ecfdf8;
  box-shadow: var(--shadow);
}
.ask h2 { margin: 0 0 8px; font: 400 34px/1.15 var(--display); }
.ask p { margin: 0 0 20px; max-width: 42ch; color: rgb(236 253 248 / 0.82); }
.ask .button {
  background: #fff;
  color: var(--teal-deep);
}

.site-footer {
  padding: 28px max(24px, env(safe-area-inset-left)) calc(28px + var(--chat-clear));
  color: var(--muted);
  font-size: 13px;
}
.site-footer strong { color: var(--ink); }

@media (max-width: 720px) {
  .hero h1 { font-size: 42px; }
  .site-nav nav { display: none; }
  .float { position: static; margin-top: 14px; max-width: none; }
  .ask, .hero { padding-right: max(24px, env(safe-area-inset-right)); margin-right: max(24px, env(safe-area-inset-right)); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  button, .button { transition: none; }
}
