:root {
  /* Primitive colors */
  --mkt-white: #ffffff;
  --mkt-beige-50: #f6f1ee;
  --mkt-beige-75: #f0eae6;
  --mkt-beige-100: #ede6e1;
  --mkt-ink-900: #2c1810;
  --mkt-ink-950: #1a0d07;
  --mkt-pink-50: #fff5f8;
  --mkt-pink-100: #ffe4ed;
  --mkt-pink-500: #ff6b9d;
  --mkt-pink-600: #e04d80;
  --mkt-lime-400: #ccff00;
  --mkt-olive-50: #f1f5e0;
  --mkt-olive-500: #7a8a30;
  --mkt-red-500: #ff3b30;
  --mkt-error-50: #fef3f2;
  --mkt-error-300: #fda29b;
  --mkt-error-700: #b42318;
  --mkt-success-50: #eff8f1;
  --mkt-success-300: #86c59a;
  --mkt-success-700: #276749;

  /* Semantic colors */
  --mkt-color-bg: var(--mkt-white);
  --mkt-color-bg-alt: var(--mkt-beige-50);
  --mkt-color-bg-strong: var(--mkt-ink-900);
  --mkt-color-bg-highlight: var(--mkt-lime-400);
  --mkt-color-surface: var(--mkt-white);
  --mkt-color-surface-accent: var(--mkt-pink-50);
  --mkt-color-icon-bg-accent: var(--mkt-pink-50);
  --mkt-color-avatar-bg-accent: var(--mkt-pink-100);
  --mkt-color-text: var(--mkt-ink-900);
  --mkt-color-text-body: rgba(44, 24, 16, 0.65);
  --mkt-color-text-supporting: rgba(44, 24, 16, 0.65);
  --mkt-color-text-muted: rgba(44, 24, 16, 0.65);
  --mkt-color-text-faint: rgba(44, 24, 16, 0.18);
  --mkt-color-text-inverse: var(--mkt-white);
  --mkt-color-text-inverse-supporting: rgba(255, 255, 255, 0.85);
  --mkt-color-text-inverse-body: rgba(255, 255, 255, 0.75);
  --mkt-color-text-inverse-muted: rgba(255, 255, 255, 0.75);
  --mkt-color-action: var(--mkt-pink-500);
  --mkt-color-action-hover: var(--mkt-pink-600);
  --mkt-color-on-action: var(--mkt-ink-900);
  --mkt-color-on-action-current: var(--mkt-white);
  --mkt-color-border: rgba(44, 24, 16, 0.12);
  --mkt-color-border-subtle: rgba(44, 24, 16, 0.08);
  --mkt-color-border-card: rgba(44, 24, 16, 0.1);
  --mkt-color-border-strong: rgba(44, 24, 16, 0.15);
  --mkt-color-border-emphasis: rgba(44, 24, 16, 0.2);
  --mkt-color-border-hover: rgba(44, 24, 16, 0.3);
  --mkt-color-border-action: rgba(255, 107, 157, 0.25);
  --mkt-color-surface-ghost: rgba(44, 24, 16, 0.04);
  --mkt-color-surface-faint: rgba(44, 24, 16, 0.025);
  --mkt-color-surface-neutral: rgba(44, 24, 16, 0.06);
  --mkt-color-surface-action-soft: rgba(255, 107, 157, 0.07);
  --mkt-color-surface-action-muted: rgba(255, 107, 157, 0.12);
  --mkt-color-surface-inverse-ghost: rgba(255, 255, 255, 0.1);
  --mkt-color-surface-inverse-hover: rgba(255, 255, 255, 0.25);
  --mkt-color-glass: rgba(255, 255, 255, 0.82);
  --mkt-color-nav-glass: rgba(255, 255, 255, 0.9);
  --mkt-color-glass-strong: rgba(255, 255, 255, 0.96);
  --mkt-color-dot-muted: rgba(44, 24, 16, 0.15);
  --mkt-color-action-outline: rgba(255, 107, 157, 0.22);
  --mkt-color-focus-action: rgba(255, 107, 157, 0.15);
  --mkt-color-highlight-ring: rgba(204, 255, 0, 0.25);
  --mkt-color-focus-ring: var(--mkt-ink-900);
  --mkt-color-focus-offset: var(--mkt-white);
  --mkt-color-error: var(--mkt-error-700);
  --mkt-color-error-surface: var(--mkt-error-50);
  --mkt-color-error-border: var(--mkt-error-300);
  --mkt-color-success: var(--mkt-success-700);
  --mkt-color-success-surface: var(--mkt-success-50);
  --mkt-color-success-border: var(--mkt-success-300);
  --mkt-color-disabled-text: var(--mkt-color-text-muted);
  --mkt-color-disabled-bg: var(--mkt-beige-100);
  --mkt-color-disabled-border: var(--mkt-color-border-subtle);
  --mkt-gradient-image-overlay: linear-gradient(
    to top,
    rgba(20, 10, 6, 0.9),
    rgba(20, 10, 6, 0.5),
    rgba(20, 10, 6, 0.3)
  );

  /* Fonts and type scale */
  --mkt-font-sans: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mkt-font-serif: "Cormorant Garamond", Georgia, serif;
  --mkt-type-display-hero: clamp(38px, 4.8vw, 64px);
  --mkt-type-display-hero-wide: clamp(40px, 5.6vw, 82px);
  --mkt-type-display-section: clamp(38px, 5.4vw, 72px);
  --mkt-type-display-compact: clamp(36px, 4.6vw, 56px);
  --mkt-type-title-feature: clamp(28px, 3.4vw, 44px);
  --mkt-type-title-card: clamp(22px, 2.1vw, 28px);
  --mkt-type-title-subsection: clamp(20px, 2.4vw, 26px);
  --mkt-type-title-editorial: clamp(22px, 2vw, 26px);
  --mkt-type-title-step: 24px;
  --mkt-type-title-small: 18px;
  --mkt-type-body-lg: 18px;
  --mkt-type-hero-sub: 17px;
  --mkt-type-body: 16px;
  --mkt-type-body-sm: 15px;
  --mkt-type-ui: 14px;
  --mkt-type-caption: 13px;
  --mkt-type-micro-lg: 12px;
  --mkt-type-eyebrow: 11px;
  --mkt-type-micro: 10px;
  --mkt-type-data: 22px;
  --mkt-type-price-compact: 38px;
  --mkt-type-display-hero-mobile: 48px;

  /* Spacing and layout */
  --mkt-space-1: 4px;
  --mkt-space-2: 8px;
  --mkt-space-3: 12px;
  --mkt-space-4: 16px;
  --mkt-space-5: 20px;
  --mkt-space-6: 24px;
  --mkt-space-7: 28px;
  --mkt-space-8: 32px;
  --mkt-space-9: 36px;
  --mkt-space-10: 40px;
  --mkt-space-12: 48px;
  --mkt-space-14: 56px;
  --mkt-space-16: 64px;
  --mkt-space-18: 72px;
  --mkt-space-20: 80px;
  --mkt-space-24: 96px;
  --mkt-space-28: 112px;
  --mkt-space-30: 120px;
  --mkt-space-35: 140px;
  --mkt-space-40: 160px;
  --mkt-space-benefit-hover: 38px;
  --mkt-gutter: clamp(20px, 4vw, 56px);
  --mkt-section-y: var(--mkt-space-30);
  --mkt-section-y-compact: var(--mkt-space-20);
  --mkt-section-y-loose: var(--mkt-space-40);
  --mkt-section-y-highlight: var(--mkt-space-35);
  --mkt-section-y-current: var(--mkt-section-y);
  --mkt-container-page: 1240px;
  --mkt-container-nav: 1400px;
  --mkt-container-wide: 1152px;
  --mkt-container-compare: 1080px;
  --mkt-container-content: 1024px;
  --mkt-container-faq: 1180px;
  --mkt-container-reading: 768px;
  --mkt-container-prose: 70ch;
  --mkt-container-steps: 780px;

  /* Radius */
  --mkt-radius-2xs: 2px;
  --mkt-radius-highlight: 4px;
  --mkt-radius-xs: 6px;
  --mkt-radius-sm: 8px;
  --mkt-radius-icon: 10px;
  --mkt-radius-md: 12px;
  --mkt-radius-utility: 16px;
  --mkt-radius-lg: 18px;
  --mkt-radius-xl: 24px;
  --mkt-radius-2xl: 28px;
  --mkt-radius-pill: 999px;
  --mkt-radius-circle: 50%;

  /* Shadows */
  --mkt-shadow-control: 0 8px 24px rgba(44, 24, 16, 0.06);
  --mkt-shadow-menu: 0 18px 40px rgba(44, 24, 16, 0.12);
  --mkt-shadow-button: 0 10px 24px rgba(44, 24, 16, 0.18);
  --mkt-shadow-button-accent: 0 10px 24px rgba(255, 107, 157, 0.32);
  --mkt-shadow-card: 0 8px 28px rgba(44, 24, 16, 0.06);
  --mkt-shadow-card-hover: 0 14px 38px rgba(44, 24, 16, 0.1);
  --mkt-shadow-step-hover: 0 16px 40px rgba(44, 24, 16, 0.08);
  --mkt-shadow-table: 0 30px 60px rgba(44, 24, 16, 0.06);
  --mkt-shadow-feature: 0 18px 40px rgba(44, 24, 16, 0.06);
  --mkt-shadow-panel: 0 30px 60px rgba(44, 24, 16, 0.08);
  --mkt-shadow-panel-hover: 0 40px 80px rgba(44, 24, 16, 0.12);
  --mkt-shadow-comparison: 0 24px 56px rgba(44, 24, 16, 0.07);
  --mkt-shadow-action-card: 0 10px 28px rgba(255, 107, 157, 0.12);
  --mkt-shadow-card-lift: 0 10px 28px rgba(44, 24, 16, 0.06);
  --mkt-shadow-card-elevated: 0 12px 32px rgba(44, 24, 16, 0.08);
  --mkt-shadow-seo-card: 0 22px 50px -30px rgba(44, 24, 16, 0.45);
  --mkt-shadow-highlight-ring: 0 0 0 4px var(--mkt-color-highlight-ring);
  --mkt-shadow-focus: 0 0 0 2px var(--mkt-color-focus-offset),
    0 0 0 5px var(--mkt-color-focus-ring);
  --mkt-filter-phone: drop-shadow(0 30px 50px rgba(44, 24, 16, 0.18));
  --mkt-filter-visual: drop-shadow(0 30px 60px rgba(44, 24, 16, 0.16));

  /* Motion */
  --mkt-duration-fast: 200ms;
  --mkt-duration-base: 300ms;
  --mkt-duration-slow: 550ms;
  --mkt-duration-reveal: 700ms;
  --mkt-ease-standard: ease;
  --mkt-ease-emphasized: cubic-bezier(0.22, 1, 0.36, 1);

  /* Breakpoint contract. CSS variables cannot be used inside media queries. */
  --mkt-breakpoint-sm: 640px;
  --mkt-breakpoint-md: 768px;
  --mkt-breakpoint-lg: 1024px;
}

/* Shared accessibility states */
.mkt-page a[href]:focus-visible,
.mkt-page button:focus-visible,
.mkt-page input:focus-visible,
.mkt-page select:focus-visible,
.mkt-page textarea:focus-visible,
.calendi-lp a[href]:focus-visible,
.calendi-lp button:focus-visible,
.calendi-lp input:focus-visible,
.calendi-lp select:focus-visible,
.calendi-lp textarea:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 3px;
  box-shadow: var(--mkt-shadow-focus);
}

.mkt-field--error,
.mkt-page [aria-invalid="true"] {
  border-color: var(--mkt-color-error);
}

.mkt-state--error {
  border-color: var(--mkt-color-error-border);
  background: var(--mkt-color-error-surface);
  color: var(--mkt-color-error);
}

.mkt-state--success {
  border-color: var(--mkt-color-success-border);
  background: var(--mkt-color-success-surface);
  color: var(--mkt-color-success);
}

.mkt-status {
  display: flex;
  align-items: flex-start;
  gap: var(--mkt-space-3);
  padding: var(--mkt-space-4);
  border: 1px solid;
  border-radius: var(--mkt-radius-md);
  font-size: var(--mkt-type-body-sm);
  line-height: 1.5;
}

.mkt-status__icon {
  width: var(--mkt-space-5);
  height: var(--mkt-space-5);
  margin-top: var(--mkt-space-1);
  flex: 0 0 auto;
}

.mkt-status__content {
  min-width: 0;
}

.mkt-status__title {
  display: block;
  margin-bottom: var(--mkt-space-1);
  font-weight: 700;
}

.mkt-page :disabled,
.mkt-page [aria-disabled="true"],
.calendi-lp :disabled,
.calendi-lp [aria-disabled="true"],
.mkt-is-disabled {
  border-color: var(--mkt-color-disabled-border);
  background: var(--mkt-color-disabled-bg);
  color: var(--mkt-color-disabled-text);
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
}

/* Marketing layout variants */
.mkt-page {
  background: var(--mkt-color-bg);
  color: var(--mkt-color-text);
  font-family: var(--mkt-font-sans);
}

.mkt-section--content {
  padding-block: var(--mkt-section-y-compact);
}

.mkt-section--comparison {
  padding-block: var(--mkt-space-20);
}

.mkt-section--highlight {
  padding-block: var(--mkt-space-20);
}

.mkt-section--closing {
  padding-block: var(--mkt-space-20);
}

.mkt-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--mkt-gutter);
}

.mkt-container--reading {
  max-width: var(--mkt-container-reading);
}

.mkt-container--narrow {
  max-width: 672px;
}

.mkt-container--cta {
  max-width: 576px;
}

.mkt-container--content {
  max-width: var(--mkt-container-content);
}

.mkt-container--wide {
  max-width: var(--mkt-container-wide);
}

/* Named card variants */
.mkt-card {
  border: 1px solid var(--mkt-color-border-card);
  background: var(--mkt-color-surface);
}

.mkt-card-layout {
  border-radius: var(--mkt-card-radius, var(--mkt-radius-utility));
  padding: var(--mkt-card-padding, var(--mkt-space-6));
  box-shadow: var(--mkt-card-shadow, none);
}

.mkt-card--article,
.mkt-card--author,
.mkt-card--faq,
.mkt-card--glossary,
.mkt-card--calculator,
.mkt-card--sidebar {
  border-radius: var(--mkt-radius-utility);
}

.mkt-card--article {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: 0;
  --mkt-card-shadow: var(--mkt-shadow-card);
}

.mkt-card--author {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
}

.mkt-card--faq {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
}

.mkt-card--glossary {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-7);
  --mkt-card-shadow: none;
}

.mkt-card--calculator {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-8);
  --mkt-card-shadow: var(--mkt-shadow-control);
}

.mkt-card--sidebar {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
}

.mkt-card--article:hover {
  border-color: var(--mkt-color-action);
}

.mkt-card--author,
.mkt-card--sidebar {
  background: var(--mkt-color-bg-alt);
}

.mkt-card--related {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
  border-radius: var(--mkt-radius-utility);
  background: var(--mkt-color-bg-alt);
}

.mkt-card--inverse {
  --mkt-card-radius: var(--mkt-radius-md);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
  border-radius: var(--mkt-radius-md);
  background: var(--mkt-color-bg-strong);
  color: var(--mkt-color-text-inverse);
}

.mkt-card--comparison {
  --mkt-card-radius: var(--mkt-radius-md);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
  border-radius: var(--mkt-radius-md);
}

.mkt-card--comparison-benefit {
  --mkt-card-radius: var(--mkt-radius-md);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: none;
  border-radius: var(--mkt-radius-md);
  background: var(--mkt-color-surface);
}

.mkt-card--comparison-table {
  --mkt-card-radius: var(--mkt-radius-utility);
  --mkt-card-padding: 0;
  --mkt-card-shadow: var(--mkt-shadow-comparison);
  overflow-x: auto;
  border-radius: var(--mkt-radius-utility);
  box-shadow: var(--mkt-card-shadow, var(--mkt-shadow-comparison));
}

.mkt-card--decision-positive {
  --mkt-card-radius: var(--mkt-radius-md);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: var(--mkt-shadow-action-card);
  border: 1px solid var(--mkt-color-border-action);
  border-radius: var(--mkt-radius-md);
  background: var(--mkt-color-surface-action-soft);
}

.mkt-card--decision-neutral {
  --mkt-card-radius: var(--mkt-radius-md);
  --mkt-card-padding: var(--mkt-space-6);
  --mkt-card-shadow: var(--mkt-shadow-card-lift);
  border: 1px dashed var(--mkt-color-border-emphasis);
  border-radius: var(--mkt-radius-md);
  background: var(--mkt-color-surface);
}

.mkt-card--seo {
  --mkt-card-radius: var(--mkt-radius-xl);
  --mkt-card-padding: var(--mkt-space-8);
  --mkt-card-shadow: var(--mkt-shadow-seo-card);
  border-radius: var(--mkt-radius-xl);
  background: var(--mkt-color-surface);
  box-shadow: var(--mkt-card-shadow, var(--mkt-shadow-seo-card));
}

.mkt-card-density--compact {
  --mkt-card-padding: var(--mkt-space-4);
}

.mkt-card-density--comfortable {
  --mkt-card-padding: var(--mkt-space-6);
}

.mkt-card-density--spacious {
  --mkt-card-padding: var(--mkt-space-8);
}

.mkt-card-density--horizontal {
  --mkt-card-padding: 0 var(--mkt-space-8);
}

.mkt-card-density--result {
  --mkt-card-padding: var(--mkt-space-7) var(--mkt-space-8);
}

.mkt-card-density--prominent {
  --mkt-card-padding: var(--mkt-space-10);
}

.mkt-card-density--flush {
  --mkt-card-padding: 0;
}

.mkt-card-elevation--flat {
  --mkt-card-shadow: none;
}

.mkt-card-elevation--raised {
  --mkt-card-shadow: var(--mkt-shadow-card);
}

.mkt-card-elevation--floating {
  --mkt-card-shadow: var(--mkt-shadow-card-elevated);
}

/* Named pill variants */
.mkt-pill {
  border-radius: var(--mkt-radius-pill);
}

.mkt-pill--category {
  background: var(--mkt-color-bg-alt);
  color: var(--mkt-color-text-supporting);
}

.mkt-pill--filter {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--mkt-color-text-supporting);
}

.mkt-pill--filter:hover {
  background: var(--mkt-color-bg-alt);
  color: var(--mkt-color-text);
}

.mkt-pill--filter-active,
.mkt-pill--badge {
  background: var(--mkt-color-bg-strong);
  color: var(--mkt-color-text-inverse);
}

.mkt-pill--anchor {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border: 1px solid var(--mkt-color-border-strong);
  background: var(--mkt-color-surface);
  color: var(--mkt-color-text);
}

.mkt-pill--anchor:hover {
  border-color: var(--mkt-color-action);
  color: var(--mkt-color-action);
}

.mkt-pill--image-tag {
  background: var(--mkt-color-surface-inverse-ghost);
  color: var(--mkt-color-text-inverse);
}

.mkt-pill--image-tag:hover {
  background: var(--mkt-color-surface-inverse-hover);
}

.mkt-pill--glossary {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--mkt-space-3);
  font-size: var(--mkt-type-caption);
  font-weight: 600;
}

.mkt-pill--glossary-booking {
  background: var(--mkt-color-bg-alt);
  color: var(--mkt-color-text-supporting);
}

.mkt-pill--glossary-treatment {
  background: var(--mkt-color-surface-accent);
  color: var(--mkt-color-action-hover);
}

.mkt-pill--glossary-business {
  background: var(--mkt-color-surface-neutral);
  color: var(--mkt-color-text-supporting);
}

.mkt-pill--cta {
  background: var(--mkt-color-action);
  color: var(--mkt-color-on-action-current);
}

.mkt-pill--cta:hover {
  background: var(--mkt-color-action-hover);
}

.mkt-pill--cta-dark {
  background: var(--mkt-color-bg-strong);
  color: var(--mkt-color-text-inverse);
}

.mkt-pill--cta-dark:hover {
  background: var(--mkt-ink-950);
}

@media (min-width: 640px) {
  .mkt-section--content,
  .mkt-section--comparison {
    padding-block: var(--mkt-section-y);
  }

  .mkt-section--highlight {
    padding-block: var(--mkt-section-y-highlight);
  }

  .mkt-section--closing {
    padding-block: var(--mkt-section-y-loose);
  }
}

@media (prefers-reduced-motion: reduce) {
  .mkt-page,
  .calendi-lp {
    scroll-behavior: auto;
  }

  .mkt-page *,
  .mkt-page *::before,
  .mkt-page *::after,
  .calendi-lp *,
  .calendi-lp *::before,
  .calendi-lp *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .calendi-lp .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
