/* Shared components — theme and future booking integration can use these selectors. */
.sc-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
  min-height: 44px; padding: .75rem 1.375rem; border: 1px solid transparent;
  border-radius: var(--sc-radius-md); font: 700 .875rem/1.25 var(--sc-font-body);
  text-decoration: none; cursor: pointer; transition: background-color .18s ease, transform .18s ease;
}
.sc-button:hover { transform: translateY(-1px); }
.sc-button--primary { background: var(--sc-color-ocean); color: #fff; }
.sc-button--primary:hover { background: var(--sc-color-deep-sea); color: #fff; }
.sc-button--sand { background: var(--sc-color-warm-sand); color: var(--sc-color-deep-sea); }
.sc-button--outline { background: transparent; border-color: var(--sc-color-ocean); color: var(--sc-color-ocean); }
.sc-button:disabled { opacity: .5; cursor: not-allowed; }
.sc-control { appearance: none; width: 100%; min-height: 44px; padding: .625rem .75rem;
  border: 1px solid var(--sc-color-line); border-radius: var(--sc-radius-sm);
  background: #fff; color: var(--sc-color-ink); font-family: var(--sc-font-body); }
.sc-field { display: grid; gap: .35rem; }
.sc-field > label { font-weight: 700; font-size: .75rem; }
.sc-field-error { color: var(--sc-color-danger); font-size: .75rem; }
.sc-card { overflow: hidden; border-radius: var(--sc-radius-lg); background: #fff;
  box-shadow: var(--sc-shadow-card); }
.sc-card__body { padding: var(--sc-space-4); }
.sc-icon { display: inline-block; flex: none; width: 1.5rem; height: 1.5rem; fill: none;
  stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.sc-chip { display: inline-flex; align-items: center; gap: .35rem; min-height: 1.75rem;
  padding: .25rem .625rem; border-radius: 999px; background: var(--sc-color-ivory); font-size: .75rem; }
.sc-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 700; }
.sc-status::before { content: ''; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.sc-status--available { color: var(--sc-color-available); }
.sc-status--reserved { color: var(--sc-color-reserved); }
.sc-status--blocked { color: var(--sc-color-blocked); }
.sc-scroll-region { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.sc-section-heading { font-family: var(--sc-font-display); font-size: clamp(2rem,3.2vw,3.35rem); line-height: 1.15; }
.sc-surface { background: var(--sc-color-ivory); }
.sc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: var(--sc-focus-ring); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .sc-button { transition: none; } }
