/* ==========================================================================
   1. TOKENS
   ========================================================================== */
:root {
  /* Breakpoints */
  --min-screen-width: 480px;
  --max-screen-width: 1280px;
  /* Content container width */
  --content-width: 80rem;
    /* Section vertical spacing */
  --section-space-x: clamp(1.5rem, calc(2.25vw + 0.82rem), 2.63rem);

  /* Primitive colors: pure (flat, not part of any hue scale) */
  --white: #ffffff;
  --black: #000000;

  /* Primitive colors: primary scale */
  --primary-50: #fbfbf9;
  --primary-100: #d0d4e8;
  --primary-200: #acb3d8;
  --primary-300: #7e8cbf;
  --primary-400: #334888;
  --primary-500: #1e2f68;
  --primary-600: #162238;
  --primary-700: #111b2e;
  --primary-800: #0c1423;
  --primary-900: #070d17;
  --primary-950: #04070d;
  --primary-default: var(--primary-600);

  /* Primitive colors: secondary */
  --secondary-default: #ff8c00;
  --secondary-light: #ffa40a;

  /* Primitive colors: neutral scale */
  --neutral-50: #f6f6f2;
  --neutral-100: #eaeae4;
  --neutral-200: #e2e2d8;
  --neutral-300: #c4c6c8;
  --neutral-400: #9ea2a8;
  --neutral-500: #5a6071;
  --neutral-600: #424855;
  --neutral-700: #2e333c;
  --neutral-800: #1e2228;
  --neutral-900: #121518;
  --neutral-950: #090b0d;

  /* Primitive colors: status */
  --success: #2ecc71;
  --error: #f73e3e;

  /* Semantic colors: backgrounds */
  --bg-dark: var(--neutral-600);
  --bg-light: var(--neutral-50);
  --bg-light-alt: var(--primary-50);
  --bg-primary: var(--primary-default);
  --bg-secondary: var(--secondary-default);

  /* Semantic colors: gradients */
  --gradient-trans-to-black: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);

  /* Semantic colors: links (custom .link class, shortcode links, WP editor content links) */
  --link-primary: var(--primary-default);
  --link-primary-hover: var(--primary-900);
  --link-light: var(--primary-50);
  --link-light-hover: var(--neutral-300);
  --link-dark: var(--primary-950);
  --link-dark-hover: var(--neutral-600);

  /* Semantic colors: text */
  --text-dark: var(--neutral-600);
  --text-dark-alt: var(--primary-950);
  --text-light: var(--neutral-50);
  --text-primary: var(--primary-default);

  /* Semantic colors: headings */
  --heading-dark: var(--primary-950);
  --heading-light: var(--primary-50);
  --heading-primary: var(--primary-default);

  /* Semantic colors: borders */
  --border-dark: var(--primary-800);
  --border-light: var(--neutral-100);
  --border-primary: var(--primary-default);

  /* Spacing scale: fixed */
  --space-4xs: 0.13rem; /* 2px */
  --space-3xs: 0.25rem; /* 4px */
  --space-2xs: 0.5rem; /* 8px */
  --space-xs: 0.75rem; /* 12px */
  --space-s: 1rem; /* 16px */
  --space-m: 1.5rem; /* 24px */
  --space-l: 2rem; /* 32px */

  /* Spacing scale: fluid */
  --space-xl: clamp(2rem, calc(1.25vw + 1.63rem), 2.63rem);
  --space-2xl: clamp(2rem, calc(4vw + 0.8rem), 4rem);
  --space-3xl: clamp(2.63rem, calc(3.75vw + 1.5rem), 4.5rem);
  --space-4xl: clamp(4.5rem, calc(6vw + 2.7rem), 7.5rem);

  /* Body text scale: fixed */
  --text-2xs: 0.75rem; /* 12px */
  --text-xs: 0.88rem; /* 14px */
  --text-s: 1rem; /* 16px */
  --text-m: 1.13rem; /* 18px */

  /* Body text scale: fluid */
  --text-l: clamp(1.13rem, calc(0.25vw + 1.05rem), 1.25rem);
  --text-xl: clamp(1.25rem, calc(0.25vw + 1.18rem), 1.38rem);
  --text-2xl: clamp(1.38rem, calc(0.25vw + 1.3rem), 1.5rem);

  /* Fluid heading scale */
  --display: clamp(2.25rem, calc(2.38vw + 1.54rem), 3.44rem);
  --h1: clamp(2.25rem, calc(1.63vw + 1.76rem), 3.06rem);
  --h2: clamp(1.94rem, calc(1vw + 1.64rem), 2.44rem);
  --h3: clamp(1.56rem, calc(0.75vw + 1.34rem), 1.94rem);
  --h4: clamp(1.25rem, calc(0.63vw + 1.06rem), 1.56rem);
  --h5: clamp(1.13rem, calc(0.5vw + 0.97rem), 1.38rem);
  --h6: 1.13rem; /* 18px, fixed not fluid — identical to --text-m at every breakpoint */

  /* Font families */
  --ff-primary: "Roboto", sans-serif;
  --ff-secondary: "Roboto", sans-serif;

  /* Font weights */
  --font-300: 300;
  --font-400: 400;
  --font-500: 500;
  --font-600: 600;
  --font-700: 700;
  --link-font-weight: var(--font-600);

  /* Line heights */
  --line-height-xs: 1;
  --line-height-s: 1.2;
  --line-height-m: 1.3;
  --line-height-l: 1.4;
  --line-height-xl: 1.7;

  /* Grid template columns */
  --columns-1: repeat(1, minmax(0, 1fr));
  --columns-2: repeat(2, minmax(0, 1fr));
  --columns-3: repeat(3, minmax(0, 1fr));
  --columns-4: repeat(4, minmax(0, 1fr));
  --columns-5: repeat(5, minmax(0, 1fr));
  --columns-6: repeat(6, minmax(0, 1fr));
  --columns-7: repeat(7, minmax(0, 1fr));
  --columns-8: repeat(8, minmax(0, 1fr));

  /* Grid template shorthands */
  --grid-2: 1fr 1fr;
  --grid-3: repeat(3, 1fr);
  --grid-4: repeat(4, 1fr);
  --grid-5: repeat(5, 1fr);
  --grid-6: repeat(6, 1fr);

  /* Widths */
  --full-width: 100%;
  --max-width-30: 30rem;
  --max-width-40: 40rem;
  --max-width-50: 50rem;
  --max-width-60: 60rem;

  /* Border radius */
  --radius-xs: 0.25rem;
  --radius-s: 0.375rem;
  --radius-m: 0.5rem;
  --radius-l: 0.75rem;
  --radius-xl: 1.25rem;
  --radius-full: 999rem;

  /* Transitions */
  --transition-global: all 0.3s ease-in-out;

  /* Shadows */
  --shadow-s: 0 1px 2px hsla(0, 0%, 0%, 0.15);
  --shadow-m:
    0px 2.826px 6.36px -2.12px rgba(24, 39, 75, 0.12),
    0px 4.24px 14.839px -1.413px rgba(24, 39, 75, 0.12);
  --shadow-l: 0 5px 30px hsla(0, 0%, 0%, 0.15);

  /* Component aliases */
  --card-radius: var(--radius-s);
  --image-radius: var(--radius-s);

  /* Buttons: typography */
  --btn-font-family: var(--ff-primary);
  --btn-font-size: var(--text-m);
  --btn-font-size-small: var(--text-s);
  --btn-font-weight: var(--font-500);
  --btn-line-height: var(--line-height-xs);
  --btn-text-transform: capitalize;
  --btn-letter-spacing: 0em;

  /* Buttons: spacing */
  --btn-padding: var(--space-s) var(--space-m);
  --btn-padding-small: var(--space-xs) var(--space-s);
  --btn-gap: var(--space-xs);

  /* Buttons: borders & radius */
  --btn-border-width: 2px;
  --btn-radius: var(--radius-s);
  --btn-radius-small: var(--radius-xs);

  /* Buttons: colors */
  --btn-bg: var(--primary-default);
  --btn-bg-hover: var(--neutral-600);
  --btn-text: var(--white);

  /* Buttons: transitions */
  --btn-transition: var(--transition-global);
}

/* ==========================================================================
   2. BASE
   ========================================================================== */

html {
  max-width: 1920px;
  margin: auto;
  box-shadow: 0px 0px 40px -8px rgb(0 0 0 / .05);
}

html, body {
  font-family: var(--ff-secondary);
  color: var(--text-dark);
}

body {
  font-size: var(--text-m);
  line-height: var(--line-height-xl);
  font-weight: var(--font-400);
}

/* normalize spacing and apply heading color */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ff-primary);
  color: var(--heading-dark);
}

/* H1 */
h1,
.h1 {
  font-size: var(--h1);
  line-height: var(--line-height-s);
  font-weight: var(--font-500);
  letter-spacing: 0.1px;
}

/* H2 */
h2,
.h2 {
  font-size: var(--h2);
  line-height: var(--line-height-m);
  font-weight: var(--font-500);
  letter-spacing: 0.1px;
}

/* H3 */
h3,
.h3 {
  font-size: var(--h3);
  line-height: var(--line-height-m);
  font-weight: var(--font-500);
}

/* H4 */
h4,
.h4 {
  font-size: var(--h4);
  line-height: var(--line-height-l);
  font-weight: var(--font-500);
}

/* H5 */
h5,
.h5 {
  font-size: var(--h5);
  line-height: var(--line-height-l);
  font-weight: var(--font-600);
}

/* H6 */
h6,
.h6 {
  font-size: var(--h6);
  line-height: var(--line-height-l);
  font-weight: var(--font-600);
}

.display {
  font-size: var(--display);
  line-height: var(--line-height-s); /* ~120% */
  font-weight: var(--font-600);
  letter-spacing: 0.1px;
}

b,
strong {
  font-weight: var(--font-700);
  color: inherit;
}

img {
  max-width: 100%;
  height: auto;
}

figure {
  margin: 1.5em 0;
}

a {
  transition: var(--transition-global);
}

code {
  background-color: var(--primary-100);
  color: #f211a6;
  font-family: ui-monospace, monospace;
  padding: var(--space-3xs);
  border-radius: var(--radius-xs);
  font-weight: var(--font-500);
  white-space: nowrap;
  display: inline-block;
}

/* ==========================================================================
   3. UTILITIES
   ========================================================================== */

/* ----- 3.1 Color utilities ----- */

/* Background color utilities */
.bg-dark {
  background-color: var(--bg-dark);
}
.bg-light {
  background-color: var(--bg-light);
}
.bg-light-alt {
  background-color: var(--bg-light-alt);
}
.bg-primary {
  background-color: var(--bg-primary);
}
/* Text color utilities */
.text-dark {
  color: var(--text-dark);
}
.text-dark-alt {
  color: var(--text-dark-alt);
}
.text-light {
  color: var(--text-light);
}
.text-primary {
  color: var(--text-primary);
}
/* Border color utilities */
.border-dark {
  border-color: var(--border-dark);
}
.border-light {
  border-color: var(--border-light);
}
.border-primary {
  border-color: var(--border-primary);
}

/* Gradients */
.gradient-trans-to-black {
  background: var(--gradient-trans-to-black);
}

/* Heading color utilities */
.heading-primary {
  color: var(--heading-primary);
}
.heading-light {
  color: var(--heading-light);
}
.heading-dark {
  color: var(--heading-dark);
}

/* ----- 3.2 Typography utilities ----- */

/* Font family utilities */
.ff-primary {
  font-family: var(--ff-primary);
}
.ff-secondary {
  font-family: var(--ff-secondary);
}

/* Text size utilities */
.text-2xs {
  font-size: var(--text-2xs);
}
.text-xs {
  font-size: var(--text-xs);
}
.text-s {
  font-size: var(--text-s);
}
.text-m {
  font-size: var(--text-m);
}
.text-l {
  font-size: var(--text-l);
}
.text-xl {
  font-size: var(--text-xl);
}
.text-2xl {
  font-size: var(--text-2xl);
}

/* Line height utilities */
.line-height-xs {
  line-height: var(--line-height-xs);
}
.line-height-s {
  line-height: var(--line-height-s);
}
.line-height-m {
  line-height: var(--line-height-m);
}
.line-height-l {
  line-height: var(--line-height-l);
}
.line-height-xl {
  line-height: var(--line-height-xl);
}

/* Text style modifiers */
.italic {
  font-style: italic;
}
.normal {
  font-style: normal;
}
.lowercase {
  text-transform: lowercase;
}
.uppercase {
  text-transform: uppercase;
}
.underline {
  -webkit-text-decoration: underline;
  text-decoration: underline;
}
.capitalize {
  text-transform: capitalize;
}
/* Font weight utilities */
.font-100 {
  font-weight: 100;
}
.font-200 {
  font-weight: 200;
}
.font-300 {
  font-weight: var(--font-300);
}
.font-400 {
  font-weight: var(--font-400);
}
.font-500 {
  font-weight: var(--font-500);
}
.font-600 {
  font-weight: var(--font-600);
}
.font-700 {
  font-weight: var(--font-700);
}
.font-800 {
  font-weight: 800;
}

/* Text alignment utilities */
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}

/* ----- 3.3 Spacing utilities ----- */

/* Fluid spacing utilities: padding */
.padding-4xs {
  padding: var(--space-4xs);
}
.padding-3xs {
  padding: var(--space-3xs);
}
.padding-2xs {
  padding: var(--space-2xs);
}
.padding-xs {
  padding: var(--space-xs);
}
.padding-s {
  padding: var(--space-s);
}
.padding-m {
  padding: var(--space-m);
}
.padding-l {
  padding: var(--space-l);
}
.padding-xl {
  padding: var(--space-xl);
}
.padding-2xl {
  padding: var(--space-2xl);
}
.padding-3xl {
  padding: var(--space-3xl);
}
.padding-4xl {
  padding: var(--space-4xl);
}
/* Padding: left */
.padding-left-4xs {
  padding-left: var(--space-4xs);
}
.padding-left-3xs {
  padding-left: var(--space-3xs);
}
.padding-left-2xs {
  padding-left: var(--space-2xs);
}
.padding-left-xs {
  padding-left: var(--space-xs);
}
.padding-left-s {
  padding-left: var(--space-s);
}
.padding-left-m {
  padding-left: var(--space-m);
}
.padding-left-l {
  padding-left: var(--space-l);
}
.padding-left-xl {
  padding-left: var(--space-xl);
}
.padding-left-2xl {
  padding-left: var(--space-2xl);
}
.padding-left-3xl {
  padding-left: var(--space-3xl);
}
.padding-left-4xl {
  padding-left: var(--space-4xl);
}
/* Padding: right */
.padding-right-4xs {
  padding-right: var(--space-4xs);
}
.padding-right-3xs {
  padding-right: var(--space-3xs);
}
.padding-right-2xs {
  padding-right: var(--space-2xs);
}
.padding-right-xs {
  padding-right: var(--space-xs);
}
.padding-right-s {
  padding-right: var(--space-s);
}
.padding-right-m {
  padding-right: var(--space-m);
}
.padding-right-l {
  padding-right: var(--space-l);
}
.padding-right-xl {
  padding-right: var(--space-xl);
}
.padding-right-2xl {
  padding-right: var(--space-2xl);
}
.padding-right-3xl {
  padding-right: var(--space-3xl);
}
.padding-right-4xl {
  padding-right: var(--space-4xl);
}
/* Padding: top */
.padding-top-4xs {
  padding-top: var(--space-4xs);
}
.padding-top-3xs {
  padding-top: var(--space-3xs);
}
.padding-top-2xs {
  padding-top: var(--space-2xs);
}
.padding-top-xs {
  padding-top: var(--space-xs);
}
.padding-top-s {
  padding-top: var(--space-s);
}
.padding-top-m {
  padding-top: var(--space-m);
}
.padding-top-l {
  padding-top: var(--space-l);
}
.padding-top-xl {
  padding-top: var(--space-xl);
}
.padding-top-2xl {
  padding-top: var(--space-2xl);
}
.padding-top-3xl {
  padding-top: var(--space-3xl);
}
.padding-top-4xl {
  padding-top: var(--space-4xl);
}
/* Padding: bottom */
.padding-bottom-4xs {
  padding-bottom: var(--space-4xs);
}
.padding-bottom-3xs {
  padding-bottom: var(--space-3xs);
}
.padding-bottom-2xs {
  padding-bottom: var(--space-2xs);
}
.padding-bottom-xs {
  padding-bottom: var(--space-xs);
}
.padding-bottom-s {
  padding-bottom: var(--space-s);
}
.padding-bottom-m {
  padding-bottom: var(--space-m);
}
.padding-bottom-l {
  padding-bottom: var(--space-l);
}
.padding-bottom-xl {
  padding-bottom: var(--space-xl);
}
.padding-bottom-2xl {
  padding-bottom: var(--space-2xl);
}
.padding-bottom-3xl {
  padding-bottom: var(--space-3xl);
}
.padding-bottom-4xl {
  padding-bottom: var(--space-4xl);
}
/* Padding: left + right */
.padding-horizontal-4xs {
  padding-left: var(--space-4xs);
  padding-right: var(--space-4xs);
}
.padding-horizontal-3xs {
  padding-left: var(--space-3xs);
  padding-right: var(--space-3xs);
}
.padding-horizontal-2xs {
  padding-left: var(--space-2xs);
  padding-right: var(--space-2xs);
}
.padding-horizontal-xs {
  padding-left: var(--space-xs);
  padding-right: var(--space-xs);
}
.padding-horizontal-s {
  padding-left: var(--space-s);
  padding-right: var(--space-s);
}
.padding-horizontal-m {
  padding-left: var(--space-m);
  padding-right: var(--space-m);
}
.padding-horizontal-l {
  padding-left: var(--space-l);
  padding-right: var(--space-l);
}
.padding-horizontal-xl {
  padding-left: var(--space-xl);
  padding-right: var(--space-xl);
}
.padding-horizontal-2xl {
  padding-left: var(--space-2xl);
  padding-right: var(--space-2xl);
}
.padding-horizontal-3xl {
  padding-left: var(--space-3xl);
  padding-right: var(--space-3xl);
}
.padding-horizontal-4xl {
  padding-left: var(--space-4xl);
  padding-right: var(--space-4xl);
}
/* Padding: top + bottom */
.padding-vertical-4xs {
  padding-top: var(--space-4xs);
  padding-bottom: var(--space-4xs);
}
.padding-vertical-3xs {
  padding-top: var(--space-3xs);
  padding-bottom: var(--space-3xs);
}
.padding-vertical-2xs {
  padding-top: var(--space-2xs);
  padding-bottom: var(--space-2xs);
}
.padding-vertical-xs {
  padding-top: var(--space-xs);
  padding-bottom: var(--space-xs);
}
.padding-vertical-s {
  padding-top: var(--space-s);
  padding-bottom: var(--space-s);
}
.padding-vertical-m {
  padding-top: var(--space-m);
  padding-bottom: var(--space-m);
}
.padding-vertical-l {
  padding-top: var(--space-l);
  padding-bottom: var(--space-l);
}
.padding-vertical-xl {
  padding-top: var(--space-xl);
  padding-bottom: var(--space-xl);
}
.padding-vertical-2xl {
  padding-top: var(--space-2xl);
  padding-bottom: var(--space-2xl);
}
.padding-vertical-3xl {
  padding-top: var(--space-3xl);
  padding-bottom: var(--space-3xl);
}
.padding-vertical-4xl {
  padding-top: var(--space-4xl);
  padding-bottom: var(--space-4xl);
}

/* Fluid spacing utilities: margin */
.margin-4xs {
  margin: var(--space-4xs);
}
.margin-3xs {
  margin: var(--space-3xs);
}
.margin-2xs {
  margin: var(--space-2xs);
}
.margin-xs {
  margin: var(--space-xs);
}
.margin-s {
  margin: var(--space-s);
}
.margin-m {
  margin: var(--space-m);
}
.margin-l {
  margin: var(--space-l);
}
.margin-xl {
  margin: var(--space-xl);
}
.margin-2xl {
  margin: var(--space-2xl);
}
.margin-3xl {
  margin: var(--space-3xl);
}
.margin-4xl {
  margin: var(--space-4xl);
}
/* Margin: left */
.margin-left-4xs {
  margin-left: var(--space-4xs);
}
.margin-left-3xs {
  margin-left: var(--space-3xs);
}
.margin-left-2xs {
  margin-left: var(--space-2xs);
}
.margin-left-xs {
  margin-left: var(--space-xs);
}
.margin-left-s {
  margin-left: var(--space-s);
}
.margin-left-m {
  margin-left: var(--space-m);
}
.margin-left-l {
  margin-left: var(--space-l);
}
.margin-left-xl {
  margin-left: var(--space-xl);
}
.margin-left-2xl {
  margin-left: var(--space-2xl);
}
.margin-left-3xl {
  margin-left: var(--space-3xl);
}
.margin-left-4xl {
  margin-left: var(--space-4xl);
}
/* Margin: right */
.margin-right-4xs {
  margin-right: var(--space-4xs);
}
.margin-right-3xs {
  margin-right: var(--space-3xs);
}
.margin-right-2xs {
  margin-right: var(--space-2xs);
}
.margin-right-xs {
  margin-right: var(--space-xs);
}
.margin-right-s {
  margin-right: var(--space-s);
}
.margin-right-m {
  margin-right: var(--space-m);
}
.margin-right-l {
  margin-right: var(--space-l);
}
.margin-right-xl {
  margin-right: var(--space-xl);
}
.margin-right-2xl {
  margin-right: var(--space-2xl);
}
.margin-right-3xl {
  margin-right: var(--space-3xl);
}
.margin-right-4xl {
  margin-right: var(--space-4xl);
}
/* Margin: top */
.margin-top-4xs {
  margin-top: var(--space-4xs);
}
.margin-top-3xs {
  margin-top: var(--space-3xs);
}
.margin-top-2xs {
  margin-top: var(--space-2xs);
}
.margin-top-xs {
  margin-top: var(--space-xs);
}
.margin-top-s {
  margin-top: var(--space-s);
}
.margin-top-m {
  margin-top: var(--space-m);
}
.margin-top-l {
  margin-top: var(--space-l);
}
.margin-top-xl {
  margin-top: var(--space-xl);
}
.margin-top-2xl {
  margin-top: var(--space-2xl);
}
.margin-top-3xl {
  margin-top: var(--space-3xl);
}
.margin-top-4xl {
  margin-top: var(--space-4xl);
}
/* Margin: bottom */
.margin-bottom-4xs {
  margin-bottom: var(--space-4xs);
}
.margin-bottom-3xs {
  margin-bottom: var(--space-3xs);
}
.margin-bottom-2xs {
  margin-bottom: var(--space-2xs);
}
.margin-bottom-xs {
  margin-bottom: var(--space-xs);
}
.margin-bottom-s {
  margin-bottom: var(--space-s);
}
.margin-bottom-m {
  margin-bottom: var(--space-m);
}
.margin-bottom-l {
  margin-bottom: var(--space-l);
}
.margin-bottom-xl {
  margin-bottom: var(--space-xl);
}
.margin-bottom-2xl {
  margin-bottom: var(--space-2xl);
}
.margin-bottom-3xl {
  margin-bottom: var(--space-3xl);
}
.margin-bottom-4xl {
  margin-bottom: var(--space-4xl);
}
/* Margin: left + right */
.margin-horizontal-4xs {
  margin-left: var(--space-4xs);
  margin-right: var(--space-4xs);
}
.margin-horizontal-3xs {
  margin-left: var(--space-3xs);
  margin-right: var(--space-3xs);
}
.margin-horizontal-2xs {
  margin-left: var(--space-2xs);
  margin-right: var(--space-2xs);
}
.margin-horizontal-xs {
  margin-left: var(--space-xs);
  margin-right: var(--space-xs);
}
.margin-horizontal-s {
  margin-left: var(--space-s);
  margin-right: var(--space-s);
}
.margin-horizontal-m {
  margin-left: var(--space-m);
  margin-right: var(--space-m);
}
.margin-horizontal-l {
  margin-left: var(--space-l);
  margin-right: var(--space-l);
}
.margin-horizontal-xl {
  margin-left: var(--space-xl);
  margin-right: var(--space-xl);
}
.margin-horizontal-2xl {
  margin-left: var(--space-2xl);
  margin-right: var(--space-2xl);
}
.margin-horizontal-3xl {
  margin-left: var(--space-3xl);
  margin-right: var(--space-3xl);
}
.margin-horizontal-4xl {
  margin-left: var(--space-4xl);
  margin-right: var(--space-4xl);
}
/* Margin: top + bottom */
.margin-vertical-4xs {
  margin-top: var(--space-4xs);
  margin-bottom: var(--space-4xs);
}
.margin-vertical-3xs {
  margin-top: var(--space-3xs);
  margin-bottom: var(--space-3xs);
}
.margin-vertical-2xs {
  margin-top: var(--space-2xs);
  margin-bottom: var(--space-2xs);
}
.margin-vertical-xs {
  margin-top: var(--space-xs);
  margin-bottom: var(--space-xs);
}
.margin-vertical-s {
  margin-top: var(--space-s);
  margin-bottom: var(--space-s);
}
.margin-vertical-m {
  margin-top: var(--space-m);
  margin-bottom: var(--space-m);
}
.margin-vertical-l {
  margin-top: var(--space-l);
  margin-bottom: var(--space-l);
}
.margin-vertical-xl {
  margin-top: var(--space-xl);
  margin-bottom: var(--space-xl);
}
.margin-vertical-2xl {
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-2xl);
}
.margin-vertical-3xl {
  margin-top: var(--space-3xl);
  margin-bottom: var(--space-3xl);
}
.margin-vertical-4xl {
  margin-top: var(--space-4xl);
  margin-bottom: var(--space-4xl);
}

/* Fluid spacing utilities: gap */
.gap-4xs {
  gap: var(--space-4xs);
}
.gap-3xs {
  gap: var(--space-3xs);
}
.gap-2xs {
  gap: var(--space-2xs);
}
.gap-xs {
  gap: var(--space-xs);
}
.gap-s {
  gap: var(--space-s);
}
.gap-m {
  gap: var(--space-m);
}
.gap-l {
  gap: var(--space-l);
}
.gap-xl {
  gap: var(--space-xl);
}
.gap-2xl {
  gap: var(--space-2xl);
}
.gap-3xl {
  gap: var(--space-3xl);
}
.gap-4xl {
  gap: var(--space-4xl);
}

/* Auto-margin utilities */
.margin-top-auto {
  margin-top: auto;
}
.margin-bottom-auto {
  margin-bottom: auto;
}
.margin-left-auto {
  margin-left: auto;
}
.margin-right-auto {
  margin-right: auto;
}
.margin-horizontal-auto {
  margin-left: auto;
  margin-right: auto;
}
.margin-vertical-auto {
  margin-top: auto;
  margin-bottom: auto;
}

/* Margin resets */
.margin-0 p {
  margin: 0;
}
.margin-top-0 {
  margin-top: 0;
}

/* ----- 3.4 Grid & flex layout utilities ----- */

/* CSS grid layouts */
.row {
  display: grid;
  grid-auto-flow: column;
  justify-content: start;
}
.grid-1 {
  display: grid;
  grid-auto-flow: row;
  justify-items: start;
  align-content: start;
}
.grid-2 {
  display: grid;
  grid-template-columns: var(--grid-2);
}
.grid-3 {
  display: grid;
  grid-template-columns: var(--grid-3);
}
.grid-4 {
  display: grid;
  grid-template-columns: var(--grid-4);
}
.grid-5 {
  display: grid;
  grid-template-columns: var(--grid-5);
}
.grid-6 {
  display: grid;
  grid-template-columns: var(--grid-6);
}
.grid-7 {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.grid-8 {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
}

/* Special grid column ratios */
.grid-3-1 {
  display: grid;
  grid-template-columns: 3fr 1fr;
 
}
.grid-1-3 {
  display: grid;
  grid-template-columns: 1fr 3fr;

}
.grid-1-2 {
  display: grid;
  grid-template-columns: 1fr 2fr;

}
.grid-2-1 {
  display: grid;
  grid-template-columns: 2fr 1fr;

}

/* Auto-fit columns (responsive without media queries) */
.col-min-5 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr));
}
.col-min-10 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}
.col-min-20 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}
.col-min-30 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
}
/* Simple flex layouts */
.flex-row {
  display: flex;
  flex-direction: row;
}
.flex-column {
  display: flex;
  flex-direction: column;
}
.flex-1 {
  flex: 1;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-no-wrap {
  flex-wrap: no-wrap;
}

/* Item/content alignment utilities */
.items-left {
  justify-items: start;
}
.content-left {
  justify-content: start;
}
.items-center {
  justify-items: center;
}
.content-center {
  justify-content: center;
}
.items-right {
  justify-items: end;
}
.content-right {
  justify-content: end;
}
.items-top {
  align-items: start;
}
.content-top {
  align-content: start;
}
.items-middle {
  align-items: center;
}
.content-middle {
  align-content: center;
}
.items-bottom {
  align-items: end;
}
.content-bottom {
  align-content: end;
}
.items-stretch {
  align-items: stretch;
}
.content-stretch {
  justify-content: stretch;
}
.space-between {
  justify-content: space-between;
}
.space-around {
  justify-content: space-around;
}

/* Self-alignment utilities */
.self-left {
  margin-right: auto;
  place-self: start;
}
.self-center {
  margin-left: auto;
  margin-right: auto;
  place-self: center;
}
.self-right {
  margin-left: auto;
  place-self: end;
}
.self-top {
  margin-bottom: auto;
  align-self: start;
}
.self-middle {
  margin-top: auto;
  margin-bottom: auto;
  align-self: center;
}
.self-bottom {
  margin-top: auto;
  align-self: end;
}
.self-stretch {
  align-self: stretch;
}

/* Responsive grid/row column overrides per breakpoint */
@media (max-width: 1400px) {
  .col-1--on-xl {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
  .row--on-xl {
    grid-template-columns: unset;
    grid-auto-flow: column;
  }
  .col-2--on-xl {
    grid-template-columns: 1fr 1fr;
  }
  .col-3--on-xl {
    grid-template-columns: repeat(3, 1fr);
  }
  .col-4--on-xl {
    grid-template-columns: repeat(4, 1fr);
  }
  .col-5--on-xl {
    grid-template-columns: repeat(5, 1fr);
  }
  .col-6--on-xl {
    grid-template-columns: repeat(6, 1fr);
  }
}
@media (max-width: 992px) {
  .col-1--on-l {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
  .row--on-l {
    grid-template-columns: unset;
    grid-auto-flow: column;
  }
  .col-2--on-l {
    grid-template-columns: 1fr 1fr;
  }
  .col-3--on-l {
    grid-template-columns: repeat(3, 1fr);
  }
  .col-4--on-l {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 768px) {
  .col-1--on-m {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
  .row-1--on-m {
    grid-template-columns: unset;
    grid-auto-flow: column;
  }
  .col-2--on-m {
    grid-template-columns: repeat(2, 1fr);
  }
  .col-3--on-m {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 480px) {
  .col-1--on-s {
    grid-template-columns: 1fr;
    grid-auto-flow: row;
  }
  .row--on-s {
    grid-template-columns: 1fr;
    grid-auto-flow: column;
  }
  .col-2--on-s {
    grid-template-columns: 1fr 1fr;
  }
}

/* ----- 3.5 Sizing, visual effects & misc utilities ----- */

/* Width & height utilities */
.max-site-width {
  max-width: 140rem;
  width: 100%;
}
.full-width {
  width: var(--full-width);
}
.auto-width {
  width: auto;
}
.full-height {
  height: 100%;
}
.auto-height {
  height: auto;
}
.max-width-140 {
  max-width: 140rem;
}
.max-width-130 {
  max-width: 130rem;
}
.max-width-120 {
  max-width: 120rem;
}
.max-width-110 {
  max-width: 110rem;
}
.max-width-100 {
  max-width: 100rem;
}
.max-width-90 {
  max-width: 90rem;
}
.max-width-80 {
  max-width: 80rem;
}
.max-width-70 {
  max-width: 70rem;
}
.max-width-60 {
  max-width: var(--max-width-60);
}
.max-width-50 {
  max-width: var(--max-width-50);
}
.max-width-40 {
  max-width: var(--max-width-40);
}
.max-width-30 {
  max-width: var(--max-width-30);
}
.max-width-20 {
  max-width: 20rem;
}
.max-width-10 {
  max-width: 10rem;
}
.height-20 {
  height: 20rem;
}

/* Border radius utilities */
.radius-xs {
  border-radius: var(--radius-xs);
}
.radius-s {
  border-radius: var(--radius-s);
}
.radius-m {
  border-radius: var(--radius-m);
}
.radius-l {
  border-radius: var(--radius-l);
}
.radius-full {
  border-radius: var(--radius-full);
}

/* Hover transitions */
.hover-zoom {
  transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 0.3) 0s;
}
@media (hover: hover) {
  .hover-zoom:hover {
    transform: scale(1.05);
  }
}
.hover-opacity-80 {
  transition: opacity 0.3s ease;
}
@media (hover: hover) {
  .hover-opacity-80:hover {
    opacity: 0.8;
  }
}

/* Shadow utilities */
.shadow-s {
  box-shadow: var(--shadow-s);
}
.shadow-m {
  box-shadow: var(--shadow-m);
}
.shadow-l {
  box-shadow: var(--shadow-l);
}

/* Object-fit utilities */
.fit-contain {
  object-fit: contain;
}
.fit-cover {
  object-fit: cover;
}
.fit-fill {
  object-fit: fill;
}

/* Filters */
.grayscale {
  filter: grayscale(1);
}

/* Misc utilities */
.overflow-hidden {
  overflow: hidden;
}
.overflow-scroll {
  overflow: scroll;
}
.list-none {
  list-style-type: none;
}
.white-space-nowrap {
  white-space: nowrap;
}
.transition-global {
  transition: all 0.3s ease-in-out;
}

/* Positioning utilities */
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.inset-0 {
  inset: 0;
}
.bottom-0 {
  bottom: 0;
}
.top-0 {
  top: 0;
}
.left-0 {
  left: 0;
}
.right-0 {
  right: 0;
}

/* Cursor utilities */
.pointer {
  cursor: pointer;
}
.not-allowed {
  cursor: not-allowed;
}
.cursor-auto {
  cursor: auto;
}
.no-pointer-events {
  pointer-events: none;
}

/* ----- 3.6 Background/media position utilities (e.g. hero images) ----- */
[data-bg-position="Left Top"] {
  object-position: 20% 20%;
}
[data-bg-position="Left Center"] {
  object-position: 20% 40%;
}
[data-bg-position="Left Bottom"] {
  object-position: 20% 80%;
}
[data-bg-position="Center Top"] {
  object-position: 50% 20%;
}
[data-bg-position="Center Center"] {
  object-position: 50% 40%;
}
[data-bg-position="Center Bottom"] {
  object-position: 50% 80%;
}
[data-bg-position="Right Top"] {
  object-position: 80% 20%;
}
[data-bg-position="Right Center"] {
  object-position: 80% 40%;
}
[data-bg-position="Right Bottom"] {
  object-position: 80% 80%;
}
[data-bg-position="FarRight Bottom"] {
  object-position: 100% 80%;
}

/* ==========================================================================
   4. COMPONENTS
   ========================================================================== */

/* ==========================================================================
   COMPONENT: LINK
   ========================================================================== */

/* Settings */
.link {
  --link-color: var(--link-dark);
  --link-hover-color: var(--link-dark-hover);
}

/* Application
   Shared with WP editor content links (.inner-content, see section 5) so both
   read from the same --link-color/--link-hover-color custom properties. */
.link a,
.inner-content a:not(.wp-block-button__link) {
  font-weight: var(--link-font-weight);
  color: var(--link-color);
  text-decoration: underline;
  transition: var(--transition-global);
}

.link a:hover,
.inner-content a:not(.wp-block-button__link):hover {
  color: var(--link-hover-color, var(--link-dark-hover));
}

/* Modifiers */

/* Light Variant */
.link--light a {
  --link-color: var(--link-light);
  --link-hover-color: var(--link-light-hover);
}
/* Primary Variant */
.link--primary a {
  --link-color: var(--link-primary);
  --link-hover-color: var(--link-primary-hover);
}

/* ==========================================================================
   COMPONENT: ICON BADGE
   ========================================================================== */

/* Settings + application (self-contained element, not a wrapper) */
.icon-badge {
  --icon-size: 2.5rem;
  --icon-bg: var(--primary-50);
  --icon-color: var(--primary-950);
  --icon-border-radius: var(--radius-full);
  --icon-border: 1px solid var(--border-light);

  width: var(--icon-size);
  height: var(--icon-size);
  font-size: calc(var(--icon-size) * 0.5);
  background-color: var(--icon-bg);
  color: var(--icon-color);
  border-radius: var(--icon-border-radius);
  border: var(--icon-border);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;

  transition: var(--transition-global);
}

.icon-badge i {
  font-size: inherit;
  line-height: 1;
}

/* Optional, useful if some icons render as SVG */
.icon-badge svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* Size modifiers */
.icon-badge--small {
  --icon-size: 2rem;
}

.icon-badge--large {
  --icon-size: 3.125rem;
}

/* Interactive modifier */
.icon-badge--interactive {
  cursor: pointer;
}

.icon-badge--interactive:hover {
  --icon-bg: var(--primary-default);
  --icon-color: var(--white);
}

.icon-badge--interactive:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 0.25rem;
}

/* ==========================================================================
   COMPONENT: ALT-SECTION (image + content side by side, stacks on mobile)
   ========================================================================== */
.alt-section {
  --gap: var(--space-xl);
  --pad-y: var(--space-xl);
  --img-ratio: 4 / 3;
  --img-min-h: 16rem;
  --img-max-h: 25rem;
  --img-radius: var(--card-radius);
  --img-pos: 50% 50%;
  background: var(--bg-light-alt);
}
.alt-section__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: 'img content';
  gap: var(--gap);
  padding-block: var(--pad-y);
  align-items: start;
}
.alt-section__img-container {
  grid-area: img;
  width: 100%;
  max-width: 100%;
  aspect-ratio: var(--img-ratio);
  min-height: var(--img-min-h);
  max-height: var(--img-max-h);
  overflow: hidden;
  border-radius: var(--img-radius);
}
.alt-section__img-container :is(img, picture img) {
  width: 100%;
  height: 100%;
  max-width: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--img-pos);
}
.alt-section__content {
  grid-area: content;
}

.alt-section--img-right .alt-section__container {
  grid-template-areas: 'content img';
}
@media (max-width: 991px) {
  .alt-section {
    --gap: var(--space-m);
    --pad-y: var(--space-l);

    --img-ratio: 3 / 4;
    --img-min-h: 14rem;
    --img-max-h: 25rem;
  }

  .alt-section__container {
    grid-template-columns: 1fr;
    grid-template-areas:
      'img'
      'content';
  }

  /* CRITICAL: override the modifier on mobile */
  .alt-section--img-right .alt-section__container {
    grid-template-columns: 1fr;
    grid-template-areas:
      'img'
      'content';
  }

  .alt-section__img-container {
    justify-self: stretch;
  }
}

/* ==========================================================================
   COMPONENT: SPLIT-SECTION (full-bleed image on one side, content overlapping the other)
   ========================================================================== */
.split-section {
  position: relative;
  overflow: hidden;
  background: var(--bg-light-alt) center/cover no-repeat;

  --split-gap: var(--space-l);
  --split-pad-y: var(--space-xl);

  --split-img-width: 50vw;
  --split-img-pos: 50% 50%;

  --split-stack-gap: var(--space-l);
  --split-img-radius: var(--card-radius);

  /* stacked defaults (tablet-ish) */
  --split-img-ratio: 3 / 4;
  --split-img-max-h: 25rem;
}

.split-section__container {
  padding-block: var(--split-pad-y);

  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--split-gap);
  align-items: stretch;
}

.split-section__content {
  grid-column: 2;
  position: relative;
  z-index: 1;
  padding-left: var(--split-gap);
}

.split-section--img-right .split-section__content {
  grid-column: 1;
  padding-left: 0;
  padding-right: var(--split-gap);
}

.split-section__img-container {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--split-img-width);
  overflow: hidden;
  z-index: 0;
}

.split-section--img-right .split-section__img-container {
  inset: 0 0 0 auto;
}

.split-section__img-container img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--split-img-pos);
}

/* STACKED (tablet + down) */
@media (max-width: 991px) {
  .split-section {
    --split-gap: var(--space-l);
    --split-pad-y: var(--space-l);

    /* slightly smaller gap between image + text */
    --split-stack-gap: var(--space-m);

    /* tablet stacked image settings */
    --split-img-ratio: 4 / 3;
    --split-img-max-h: 25rem;
  }

  .split-section__container {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .split-section__content {
    grid-column: 1;
    padding: 0;
  }

  .split-section__img-container {
    position: relative;
    inset: auto;
    width: 100%;

    aspect-ratio: var(--split-img-ratio);
    max-height: var(--split-img-max-h);

    border-radius: var(--split-img-radius);
    overflow: hidden;

    margin-bottom: var(--split-stack-gap);
  }
}

/* MOBILE (smaller phones) */
@media (max-width: 767px) {
  .split-section {
    /* make it taller on smaller screens but still bounded */
    --split-img-ratio: 3 / 4;
    --split-img-max-h: 25rem;

    --split-stack-gap: var(--space-l);
  }
}

@media (max-width: 479px) {
  .split-section {
    --split-img-max-h: 18rem;
  }
}

/* ==========================================================================
   COMPONENT: CARD-MEDIA (image + heading + body card)
   ========================================================================== */
.card-media,
.brxe-div.card-media {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid var(--border-primary);
  border-radius: var(--card-radius);
  overflow: hidden;
  padding: var(--space-s);
  background-color: var(--bg-light);
  row-gap: var(--space-s);
}

.card-media__inner,
.brxe-div.card-media__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-grow: 1;
  row-gap: var(--space-s);
}

.card-media__heading {
  font-size: var(--h4);
  color: var(--heading-dark);
  text-align: left;
}

.card-media__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  font-size: var(--text-s);
  color: var(--text-dark);
  text-align: left;
}

.card-media__img {
  object-fit: cover;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-position: 50% 50%;
  overflow: hidden;
  border-radius: var(--card-radius);
}

/* ==========================================================================
   COMPONENT: BUTTONS (shared across Bricks, WP blocks, Ninja Forms)
   ========================================================================== */

/* Base button styles - shared by all button types */
.btn,
.wp-block-button__link,
.nf-form-layout .nf-form-content .nf-field-element input[type='submit'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap);
  padding: var(--btn-padding);

  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: var(--btn-line-height);
  text-transform: var(--btn-text-transform);
  letter-spacing: var(--btn-letter-spacing);
  text-decoration: none;
  white-space: nowrap;

  border: var(--btn-border-width) solid transparent;
  border-radius: var(--btn-radius);
  background-color: var(--btn-bg);
  color: var(--btn-text);

  cursor: pointer;
  transition: var(--btn-transition);
  -webkit-appearance: none;
  appearance: none;
}

.btn:hover,
.wp-block-button__link:hover,
.nf-form-layout .nf-form-content .nf-field-element input[type='submit']:hover {
  background-color: var(--btn-bg-hover);
}

.btn .icon,
.wp-block-button__link .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  stroke: currentColor;
  fill: none;
  flex-shrink: 0;
  line-height: 1;
}

/* Context-specific adjustments */

/* WordPress block container */
.wp-block-button {
  margin: 0;
}

/* Ninja Forms layout adjustments */
.nf-form-layout .nf-form-content .nf-field-element input[type='submit'] {
  display: block;
  margin-left: auto;
  width: auto;
}

/* Button variants */
.btn--light {
 background-color: color-mix(in srgb, var(--white) 10%, transparent);
 border-color: color-mix(in srgb, var(--white) 10%, transparent);
}

.btn--light:hover {
  background-color: var(--primary-50);
  color: var(--primary-default);
}

.btn--outline,
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent;
  color: var(--primary-default);
  border-color: var(--primary-default);
}

.btn--outline:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--neutral-300);
}

.btn--small {
  font-size: var(--btn-font-size-small);
  padding: var(--btn-padding-small);
  border-radius: var(--btn-radius-small);
}

.btn--full {
  width: 100%;
  display: flex;
}

/* Accessibility */
.btn:focus-visible,
.wp-block-button__link:focus-visible,
.nf-form-layout .nf-form-content .nf-field-element input[type='submit']:focus-visible {
  outline: 2px solid var(--primary-default);
  outline-offset: 2px;
}

/* Text link variant (button-styled text links) */
.btn-text {
  display: inline-flex;
  align-items: center;
  gap: var(--btn-gap);

  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: var(--btn-line-height);
  text-transform: var(--btn-text-transform);
  letter-spacing: var(--btn-letter-spacing);
  text-decoration: none;

  color: var(--primary-default);
  background-color: transparent;
  border: none;
  padding: 0; /* Key difference - no padding */

  cursor: pointer;
  transition: var(--btn-transition);
}

.btn-text:hover {
  color: var(--neutral-600);
}

.btn-text .icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  stroke: currentColor;
  fill: none;
  flex-shrink: 0;
  line-height: 1;
  transition: transform 0.2s ease; /* Subtle icon animation */
}

.btn-text:hover .icon {
  transform: translateX(3px); /* Nudge the arrow on hover */
}

/* Color variants for text links */
.btn-text--secondary {
  color: var(--secondary-default);
}

.btn-text--secondary:hover {
  color: var(--secondary-light);
}

.btn-text--light {
  color: var(--white);
}

.btn-text--light:hover {
  color: var(--primary-100);
}

.btn-text:focus-visible {
  outline: 2px solid var(--primary-default);
  outline-offset: 2px;
}

/* ==========================================================================
   COMPONENT: PHONE SHORTCODE
   ========================================================================== */

/* Settings */
.phone-shortcode {
  --phone-font-weight: var(--font-600);
  --phone-color: var(--link-dark);
  --phone-hover-color: var(--link-dark-hover);
}

/* Application */
.phone-shortcode a {
  font-weight: var(--phone-font-weight);
  color: var(--phone-color);
  text-decoration: underline;
  transition: var(--transition-global);
}

.phone-shortcode a:hover {
  color: var(--phone-hover-color);
}

/* Modifiers */

/* Light Variant */
.phone-shortcode--light {
  --phone-color: var(--link-light);
  --phone-hover-color: var(--link-light-hover);
}

/* ==========================================================================
   COMPONENT: EYEBROW
   ========================================================================== */

/* Settings + application (self-contained element, not a wrapper) */
.eyebrow {
  --eyebrow-font-family: var(--ff-secondary);
  --eyebrow-font-size: var(--text-xs);
  --eyebrow-font-weight: var(--font-600);
  --eyebrow-color: var(--neutral-500);
  --eyebrow-letter-spacing: 0.05em;
  --eyebrow-text-transform: uppercase;

  font-family: var(--eyebrow-font-family);
  font-size: var(--eyebrow-font-size);
  font-weight: var(--eyebrow-font-weight);
  color: var(--eyebrow-color);
  text-transform: var(--eyebrow-text-transform);
  letter-spacing: var(--eyebrow-letter-spacing);
}

/* Modifiers */

/* Light Variant */
.eyebrow--light {
  --eyebrow-color: var(--neutral-50);
}

/* Primary Variant */
.eyebrow--primary {
  --eyebrow-color: var(--primary-default);
}

.eyebrow--dark {
  --eyebrow-color: var(--primary-900);
}

/* ==========================================================================
   5. WP EDITOR CONTENT (.inner-content)
   ========================================================================== */

/* Link styling for .inner-content is handled by the shared rule in
   COMPONENT: LINK above (.link a, .inner-content a:not(.wp-block-button__link)) */

/* Adds a top margin to all headings within .inner-content */
.inner-content h1,
.inner-content h2,
.inner-content h3,
.inner-content h4,
.inner-content h5,
.inner-content h6 {
  margin-top: var(--space-xl);
  margin-bottom: var(--space-m);
  text-transform: capitalize;
}

/* Removes the top margin if the heading is the first element within .inner-content */
.inner-content > :first-child {
  margin-top: 0;
}

/* Removes margin-bottom if the element is the last child of .inner-content and .inner-content is the last child of its parent */
.inner-content > :last-child:last-of-type {
  margin-bottom: 0;
}

/* Image figures inside editor content, e.g. gallery pages */
.inner-content figure {
  border-radius: var(--image-radius);
  overflow: hidden;
}

/* List styles (.list-fill, .list-chevron, .list-numbered, .inner-content ul/ol
   spacing) intentionally deferred to a later pass */

/* ==========================================================================
   6. PATCHES (Gutenberg / plugin compatibility fixes)
   ========================================================================== */

.wp-block-image picture {
  height: 100%;
}

.wp-block-gallery.has-nested-images figure.wp-block-image {
  flex-grow: 0;
}

/* Perfmatters - fixes large gaps around lazy-loaded YouTube embeds */
.wp-has-aspect-ratio .wp-block-embed__wrapper {
  position: relative;
}

.wp-has-aspect-ratio .perfmatters-lazy-youtube {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-bottom: 0;
}

.test-card {
    background: blue;
    .test-card__heading {
        color: red;
    }
    .test-card__text {
        
    }
}
