/* GRC v1 -> v2 migration support. Source theme CSS is loaded before this file. */
:root {
  --brand-primary: #1B264F;
  --brand-dark: #0F1629;
  --brand-light: #E8EAEF;
  --brand-accent: #3B82F6;
  --brand-neutral: #64748B;
  --gray-dark: #4B5563;
  --white: #FFFFFF;
  --radius-small: 4px;
  --radius-medium: 8px;
  --transition-fast: 150ms ease;
  --transition-normal: 300ms ease;
  --font-body: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-heading: 'Noto Serif JP', Georgia, serif;
  --primary: #1B264F;
  --primary-dark: #0F1629;
  --primary-darker: #0A1020;
  --primary-light: #93A4D6;
  --primary-lighter: #E8EAEF;
  --accent: #3B82F6;
  --bg-page: #F8FAFC;
  --bg-surface: #FFFFFF;
  --border-color: #E5E7EB;
  --text-primary: #1F2937;
  --text-muted: #64748B;
  --success: #047857;
  --error: #C62828;
}

html { scroll-behavior: smooth; }
body.grc-v2-theme { margin: 0; background: #fff; color: var(--brand-dark); }
[x-cloak] { display: none !important; }
.site { min-height: 100vh; display: flex; flex-direction: column; }
.site > main, .site > #ai_body, .site > div.min-h-screen { flex: 1 0 auto; }

.custom-form-native .faster-form-hidden,
.custom-form-native input[type="hidden"] { display: none; }
.custom-form-native .faster-form-captcha { margin: 1rem 0; }
.custom-form-native [data-form-status].success { color: #047857; }
.custom-form-native [data-form-status].error { color: #EF4444; }
.custom-form-submit[aria-busy="true"],
.custom-form-submit.is-loading { opacity: .65; cursor: wait; }

.grc-error-page { min-height: 55vh; display: grid; place-items: center; padding: 72px 24px; background: var(--brand-light); }
.grc-error-card { width: min(720px, 100%); background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 48px; text-align: center; box-shadow: 0 12px 30px rgba(15, 22, 41, .12); }
.grc-error-code { color: var(--brand-accent); font-weight: 700; letter-spacing: 0; margin: 0 0 8px; }
.grc-error-card h1 { color: var(--brand-dark); font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; margin: 0 0 16px; }
.grc-error-card p { color: var(--brand-neutral); margin: 0 0 28px; }
.grc-error-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border-radius: 8px; background: var(--brand-primary); color: #fff; font-weight: 700; }
.grc-error-link:hover { background: var(--brand-dark); color: #fff; }

/* Legacy booking plugin variable replacement. */
.plugin-page,
.booking-services-page,
.booking-events-page,
.booking-appointment-page,
.service-detail-page { font-family: var(--font-body); }
.booking-hero-section { isolation: isolate; }
