:root {
  /* Site color scheme (LIGHT with Medical Crimson/Teal accents) */
  --cw-bg-main: #FAFAF9;
  --cw-surface: #FFFFFF;
  --cw-tone-primary: #C2410C;     /* Vibrant Warm Earthy Crimson/Coral */
  --cw-tone-hover: #9A3412;       /* Deeper tone for active states */
  --cw-tone-soft: #FFF7ED;        /* Pastel soft version of primary */
  --cw-ink-dark: #1F2937;         /* Deep gray/slate for core headings */
  --cw-ink-light: #4B5563;        /* Muted slate for body and labels */
  --cw-border-color: #E5E7EB;     /* Standard borders */

  /* Fonts (Montserrat and Poppins as generated/selected) */
  --font-display: 'Montserrat', sans-serif;
  --font-body: 'Poppins', sans-serif;

  /* Theme settings */
  --cw-width-max: 1180px;         /* Container-width variable */
  --cw-radius-soft: 14px;         /* Soft border-radius-style */
  --cw-shadow-raised: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.03); /* Raised style */
}

/* Custom layout resets and limits */
body {
  font-family: var(--font-body);
  color: var(--cw-ink-dark);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
}

.cw-shell-limit {
  max-width: var(--cw-width-max);
  width: 100%;
}

/* Customized Desktop Sticky Elements (Preset B specification) */
@media (min-width: 1024px) {
  .cw-sticky-cta-pod {
    position: sticky;
    bottom: 24px;
    z-index: 15;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  }
}

/* Hover active transitions on trigger buttons */
.cw-cta-trigger {
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease, box-shadow 0.2s ease;
}

.cw-cta-trigger:hover {
  background-color: var(--cw-tone-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(194, 65, 12, 0.5) !important;
}

.cw-cta-trigger:active {
  transform: translateY(0);
}

/* Transition values for review cards */
.cw-feedback-badge {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-feedback-badge:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 20px -3px rgba(0, 0, 0, 0.08) !important;
}

/* Dynamic subtle animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fadeIn 0.5s ease-out forwards;
}