:root {
  /* =========================================================================
     COLOR TOKENS & ROLES
     ========================================================================== */
  --sw-color-barn-red: #B23A2E;
  --sw-color-barn-red-dark: #8C2C22;
  --sw-color-wheat-gold: #E8A33D;
  --sw-color-wheat-gold-dark: #C6842A;
  --sw-color-sage: #5C7A5A;
  --sw-color-sage-dark: #45603F;
  --sw-color-cream: #F7F1E3;
  --sw-color-cream-warm: #FBF6EA;
  --sw-color-butter: #FFF8E8;
  --sw-color-charcoal: #2B211B;
  --sw-color-kraft: #E4CFA3;
  --sw-color-kraft-dark: #C9AE79;
  --sw-color-line: rgba(43,33,27,0.14);
  --sw-color-white: #FFFFFF;

  /* =========================================================================
     TYPOGRAPHY (FLUID SCALE clamp(), viewport: 360px -> 1320px)
     ========================================================================== */
  --sw-font-family-h1: 'Roboto', -apple-system, sans-serif;
  --sw-font-family-heading: 'Inter', -apple-system, sans-serif;
  --sw-font-family-body: 'Inter', -apple-system, sans-serif;
  --sw-font-family-mono: 'Space Mono', monospace;

  /* Line Heights & Letter Spacing */
  --sw-lh-h1: 1.02;
  --sw-lh-h2: 1.1;
  --sw-lh-h3: 1.25;
  --sw-lh-h4: 1.35;
  --sw-lh-body: 1.6;

  /* clamp() scaling configs */
  --sw-font-h1: clamp(2.75rem, 1.5313rem + 5.4167vw, 6rem); /* 44px - 96px */
  --sw-font-h2: clamp(2rem, 1.4375rem + 2.5vw, 3.5rem);      /* 32px - 56px */
  --sw-font-h3: clamp(1.375rem, 1.1406rem + 1.0417vw, 2rem);  /* 22px - 32px */
  --sw-font-h4: clamp(1.125rem, 0.9844rem + 0.625vw, 1.5rem); /* 18px - 24px */
  --sw-font-body: clamp(1rem, 0.9531rem + 0.2083vw, 1.125rem); /* 16px - 18px */
  --sw-font-caption: clamp(0.8125rem, 0.7891rem + 0.1042vw, 0.875rem); /* 13px - 14px */

  /* =========================================================================
     SPACING & LAYOUT
     ========================================================================== */
  --sw-space-xs: 4px;
  --sw-space-sm: 8px;
  --sw-space-md: 16px;
  --sw-space-lg: 24px;
  --sw-space-xl: 40px;
  --sw-space-2xl: 64px;
  --sw-space-section: 96px;

  /* Radii */
  --sw-radius-sm: 6px;
  --sw-radius-md: 12px;
  --sw-radius-lg: 22px;
  --sw-radius-tag-clip: 2px 10px 2px 10px;

  /* =========================================================================
     DEPTH & ELEVATION SHADOWS
     ========================================================================== */
  --sw-shadow-kraft-offset: 1px 1px 0 var(--sw-color-kraft-dark);
  --sw-shadow-red-offset: 2px 2px 0 var(--sw-color-barn-red);
  --sw-shadow-soft-blur: 0 10px 24px rgba(43,33,27,0.10);
  
  /* Double shadows */
  --sw-shadow-card: 0 2px 0 var(--sw-color-kraft-dark), var(--sw-shadow-soft-blur);
  --sw-shadow-raised: 2px 2px 0 var(--sw-color-barn-red), var(--sw-shadow-soft-blur);
}

/* =========================================================================
   ELEMENTOR GLOBAL CUSTOM PROPERTY FONTS OVERRIDE
   ========================================================================== */
:root {
  --e-global-typography-primary-font-family: var(--sw-font-family-h1);
  --e-global-typography-primary-font-weight: 900;
  
  --e-global-typography-secondary-font-family: var(--sw-font-family-heading);
  --e-global-typography-secondary-font-weight: 700;
  
  --e-global-typography-text-font-family: var(--sw-font-family-body);
  --e-global-typography-text-font-weight: 400;
  
  --e-global-typography-accent-font-family: var(--sw-font-family-mono);
  --e-global-typography-accent-font-weight: 700;
}

/* Base Body Styles */
body {
  background-color: var(--sw-color-cream) !important;
  color: var(--sw-color-charcoal) !important;
  font-family: var(--sw-font-family-body);
  font-size: var(--sw-font-body);
  line-height: var(--sw-lh-body);
}

/* Typography Vertical Rhythms */
h1, .elementor-heading-title.elementor-size-default:is(h1) {
  font-family: var(--sw-font-family-h1) !important;
  font-weight: 900 !important;
  font-size: var(--sw-font-h1) !important;
  line-height: var(--sw-lh-h1) !important;
  margin-bottom: 0.4em !important;
}

h2, .elementor-heading-title.elementor-size-default:is(h2) {
  font-family: var(--sw-font-family-heading) !important;
  font-weight: 700 !important;
  font-size: var(--sw-font-h2) !important;
  line-height: var(--sw-lh-h2) !important;
  margin-top: 1.6em !important;
  margin-bottom: 0.5em !important;
}

h3, .elementor-heading-title.elementor-size-default:is(h3) {
  font-family: var(--sw-font-family-heading) !important;
  font-weight: 600 !important;
  font-size: var(--sw-font-h3) !important;
  line-height: var(--sw-lh-h3) !important;
  margin-top: 1.1em !important;
  margin-bottom: 0.45em !important;
}

h4, .elementor-heading-title.elementor-size-default:is(h4) {
  font-family: var(--sw-font-family-heading) !important;
  font-weight: 600 !important;
  font-size: var(--sw-font-h4) !important;
  line-height: var(--sw-lh-h4) !important;
  margin-top: 0.8em !important;
  margin-bottom: 0.35em !important;
}

/* Utility (Till-Receipt Style) */
.sw-utility-mono-98971f17 {
  font-family: var(--sw-font-family-mono) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

/* ==========================================================================
   COMPONENT STYLES (HELPER CLASSES)
   ========================================================================== */

/* Buttons */
.sw-btn-98971f17 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px !important;
  font-weight: 700 !important;
  padding: 13px 26px !important;
  text-decoration: none !important;
  transition: transform 0.2s ease !important;
}
.sw-btn-98971f17:hover {
  transform: translateY(-2px) !important;
}

.sw-btn-primary-98971f17 {
  background-color: var(--sw-color-barn-red) !important;
  color: var(--sw-color-cream) !important;
}

.sw-btn-secondary-98971f17 {
  background-color: transparent !important;
  border: 2px solid var(--sw-color-charcoal) !important;
  color: var(--sw-color-charcoal) !important;
}

.sw-btn-gold-98971f17 {
  background-color: var(--sw-color-wheat-gold) !important;
  color: var(--sw-color-charcoal) !important;
}

.sw-btn-ghost-98971f17 {
  background-color: transparent !important;
  color: var(--sw-color-barn-red) !important;
  border-bottom: 2px solid var(--sw-color-barn-red) !important;
  border-radius: 0px !important;
  padding: 4px 0px !important;
}

/* Signature Kraft Price Tag */
.sw-price-tag-98971f17 {
  display: inline-block;
  background-color: var(--sw-color-kraft) !important;
  color: var(--sw-color-charcoal) !important;
  border-radius: var(--sw-radius-tag-clip) !important;
  padding: 4px 10px !important;
  box-shadow: var(--sw-shadow-kraft-offset) !important;
  font-family: var(--sw-font-family-mono) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

/* Card Design */
.sw-menu-card-98971f17 {
  background-color: var(--sw-color-cream-warm) !important;
  border-radius: var(--sw-radius-md) !important;
  box-shadow: var(--sw-shadow-card) !important;
  padding: var(--sw-space-lg) !important;
  position: relative !important;
}
.sw-menu-card-98971f17.max-contrast {
  background-color: var(--sw-color-white) !important;
}

/* Badges */
.sw-badge-98971f17 {
  display: inline-block;
  border-radius: 999px !important;
  font-family: var(--sw-font-family-mono) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 4px 12px !important;
}
.sw-badge-sage-98971f17 {
  background-color: rgba(92, 122, 90, 0.16) !important;
  color: var(--sw-color-sage) !important;
}
.sw-badge-red-98971f17 {
  background-color: rgba(178, 58, 46, 0.16) !important;
  color: var(--sw-color-barn-red) !important;
}
.sw-badge-gold-98971f17 {
  background-color: rgba(232, 163, 61, 0.16) !important;
  color: var(--sw-color-wheat-gold) !important;
}

/* Forms */
.sw-input-98971f17 {
  background-color: var(--sw-color-cream-warm) !important;
  border: 1.5px solid var(--sw-color-line) !important;
  border-radius: var(--sw-radius-sm) !important;
  padding: var(--sw-space-sm) var(--sw-space-md) !important;
  color: var(--sw-color-charcoal) !important;
  outline: none !important;
  transition: box-shadow 0.2s ease, border-color 0.2s ease !important;
}
.sw-input-98971f17:focus {
  border-color: var(--sw-color-barn-red) !important;
  box-shadow: 0 0 0 2px var(--sw-color-barn-red), 1px 1px 0 var(--sw-color-charcoal) !important;
}
