/* Shared by the homepage and the brand guide. Keep brand decisions here. */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('assets/fonts/plus-jakarta-sans.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --booker-plum: #2a2338;
  --booker-cream: #fff7ea;
  --booker-coral: #ff6b4a;
  --booker-marigold: #ffc23d;
  --booker-mint: #6bc4a6;
  --booker-white: #ffffff;
  --booker-muted: #625b6e;
  --booker-border: #d9d1d8;
  /* Dark companions for readable functional text and icons on light surfaces. */
  --booker-error: #8f2d20;
  --booker-warning: #664600;
  --booker-success: #246b53;
  --font-brand: 'Plus Jakarta Sans', Arial, sans-serif;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --radius-control: .5rem;
  --radius-card: 1rem;
  --radius-panel: 1.5rem;
  --radius-pill: 999px;
  --shadow-card: 0 12px 32px rgb(42 35 56 / 8%);
  --shadow-floating: 0 24px 64px rgb(42 35 56 / 18%);
  --content-width: 90rem;
  --type-hero: clamp(54px, 5.55vw, 88px);
  --type-section: clamp(30px, 2.9vw, 44px);
  --motion-control: 180ms;
  /* Compatibility aliases used by the homepage. */
  --plum: var(--booker-plum);
  --cream: var(--booker-cream);
  --coral: var(--booker-coral);
  --marigold: var(--booker-marigold);
  --mint: var(--booker-mint);
  --muted: var(--booker-muted);
  --success: var(--booker-success);
}
.button, .cta {
  --button-fill: var(--booker-coral);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 52px;
  padding: 17px 30px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--button-fill);
  color: var(--booker-plum);
  font: 750 17px / 1.25 var(--font-brand);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: box-shadow var(--motion-control), transform var(--motion-control);
}
.button-secondary { --button-fill: var(--booker-mint); }
.button-tertiary { --button-fill: var(--booker-marigold); }
.cta > span[aria-hidden='true'] {
  position: relative;
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 12px;
  font-size: 0;
  line-height: 0;
}
.cta > span[aria-hidden='true']::before {
  content: '';
  position: absolute;
  left: 0;
  right: 1px;
  top: 5px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.cta > span[aria-hidden='true']::after {
  content: '';
  position: absolute;
  right: 1px;
  top: 2px;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
:is(.button, .cta):is(:hover, .is-hover):not(:disabled):not([aria-disabled='true']) {
  box-shadow: inset 0 0 0 2px var(--booker-plum);
}
:is(.button, .cta):is(:focus-visible, .is-focus) {
  outline: 3px solid var(--focus-color, var(--booker-plum));
  outline-offset: 5px;
}
:is(.button, .cta):is(:active, .is-pressed):not(:disabled):not([aria-disabled='true']) {
  transform: translateY(1px);
  box-shadow: inset 0 0 0 3px var(--booker-plum);
}
:is(.button, .cta):disabled, :is(.button, .cta)[aria-disabled='true'] {
  cursor: not-allowed;
  background: var(--booker-border);
  color: var(--booker-plum);
  box-shadow: none;
}
:is(.button, .cta)[aria-busy='true'] { background: var(--button-fill); cursor: progress; }
.button-loader { width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: booker-spin .9s linear infinite; }
.booker-badge { display: inline-flex; align-items: center; gap: .4em; border-radius: var(--radius-pill); padding: .35em .75em; background: var(--booker-mint); color: var(--booker-plum); font-weight: 650; line-height: 1.4; }
.booker-badge--attention { background: var(--booker-marigold); }
.booker-badge--change { background: var(--booker-coral); }
.booker-badge--neutral { background: var(--booker-border); }
.type-hero { font-size: var(--type-hero); font-weight: 800; line-height: .99; letter-spacing: -.065em; }
.type-section { font-size: var(--type-section); font-weight: 800; line-height: 1.05; letter-spacing: -.05em; }
.type-title { font-size: 22px; font-weight: 700; line-height: 1.2; letter-spacing: -.025em; }
.type-body { font-size: 18px; font-weight: 400; line-height: 1.6; letter-spacing: normal; }
.type-ui { font-size: 14px; font-weight: 650; line-height: 1.4; letter-spacing: normal; }
.type-meta { font-size: 12px; font-weight: 500; line-height: 1.4; letter-spacing: normal; }
@keyframes booker-spin { to { transform: rotate(360deg); } }
@media(max-width:600px) { :root { --type-hero: clamp(40px, 10vw, 60px); } }
@media(prefers-reduced-motion:reduce) { .button, .cta { transition: none; } .button-loader { animation: none; } }
