/*
  Global CSS custom properties.
*/

/*
 * Media query breakpoints.
 * Processed by postcss/postcss-custom-media.
 */

/* Navigation related breakpoints */

/* Grid related breakpoints */

/* Grid shifts from 6 to 14 columns. */

/* Width of the entire grid maxes out. */

/* stylelint-disable */

:root {
  --font-sans: "Sora", sans-serif;
  --font-serif: "Inter", sans-serif;
  --font-heading: "Sora", sans-serif;
  --font-body: "Inter", sans-serif;

  /* Typography helpers. */
  --font-size-base: 16px;
  --font-size-l: 18px;
  --font-size-s: 14px;
  --font-size-xs: 13px;
  --font-size-xxs: 12px;
  --line-height-base: 27px;
  --line-height-s: 18px;

  /* Layout helpers. */
  --max-width: 1720px;
  --sp: 18px;
  --content-left: 90px;
  --site-header-height-wide: var(--sp4);
  --container-padding: var(--sp);

  /**
   * Grid helpers.
   *
   * These variables help authors apply widths and negative margins to break items out of
   * the grid, while still conforming to the larger grid system.
   */
  --scrollbar-width: 0px; /* Unit must be specified here for calc() to work properly.*/
  --grid-col-count: 6;
  --grid-gap: var(--sp);
  --grid-gap-count: calc(var(--grid-col-count) - 1); /* Count of grid-gaps. */
  --grid-full-width: calc(100vw - var(--sp2) - var(--scrollbar-width)); /* Width of the entire grid. */
  --grid-col-width: calc((var(--grid-full-width) - (var(--grid-gap-count) * var(--grid-gap))) / var(--grid-col-count));

  /* Layout helpers */
  --sp0-25: calc(0.25 * var(--sp));
  --sp0-5: calc(0.5 * var(--sp));
  --sp0-75: calc(0.75 * var(--sp));
  --sp1: calc(1 * var(--sp));
  --sp1-5: calc(1.5 * var(--sp));
  --sp2: calc(2 * var(--sp));
  --sp2-5: calc(2.5 * var(--sp));
  --sp3: calc(3 * var(--sp));
  --sp3-5: calc(3.5 * var(--sp));
  --sp4: calc(4 * var(--sp));
  --sp4-5: calc(4.5 * var(--sp));
  --sp5: calc(5 * var(--sp));
  --sp6: calc(6 * var(--sp));
  --sp7: calc(7 * var(--sp));
  --sp8: calc(8 * var(--sp));
  --sp9: calc(9 * var(--sp));
  --sp10: calc(10 * var(--sp));
  --sp11: calc(11 * var(--sp));
  --sp12: calc(12 * var(--sp));
  --sp13: calc(13 * var(--sp));

  /**
   * Brand color palette — Energino
   */
  /* Primary: Electric Lime */
  --color--primary: #B4F000;
  --color--primary-30: #8ab800;
  --color--primary-40: #9dd400;
  --color--primary-50: #B4F000;
  --color--primary-60: #c8ff1a;
  --color--primary-80: #e0ff7a;

  /* Secondary: Bolt Yellow */
  --color--secondary: #FFC400;
  --color--secondary-30: #cc9c00;
  --color--secondary-40: #e6af00;
  --color--secondary-50: #FFC400;
  --color--secondary-60: #ffd033;

  /**
   * Gray colors — keep for utility use.
   */
  --color--gray-hue: 220;
  --color--gray-saturation: 15%;
  --color--gray-5: hsl(var(--color--gray-hue), var(--color--gray-saturation), 5%);
  --color--gray-10: hsl(var(--color--gray-hue), var(--color--gray-saturation), 11%);
  --color--gray-20: hsl(var(--color--gray-hue), var(--color--gray-saturation), 20%);
  --color--gray-45: hsl(var(--color--gray-hue), var(--color--gray-saturation), 44%);
  --color--gray-60: hsl(var(--color--gray-hue), var(--color--gray-saturation), 57%);
  --color--gray-65: hsl(var(--color--gray-hue), var(--color--gray-saturation), 63%);
  --color--gray-70: hsl(var(--color--gray-hue), var(--color--gray-saturation), 72%);
  --color--gray-90: hsl(var(--color--gray-hue), var(--color--gray-saturation), 88%);
  --color--gray-95: hsl(var(--color--gray-hue), var(--color--gray-saturation), 93%);
  --color--gray-100: hsl(var(--color--gray-hue), var(--color--gray-saturation), 97%);

  /**
   * Theme palette — dark mode (Deep Energy Blue base).
   */
  /* Background colors */
  --color--background-page: #0A1F44;
  --color--background-card: #0F2B5B;
  --color--background-surface: #0F2B5B;

  /* Text colors */
  --color--text-primary: #F4F6F8;
  --color--text-secondary: #a0aec0;
  --color--text-muted: #718096;

  /* Accent colors */
  --color--accent-success: #B4F000;
  --color--accent-warning: #FFC400;

  /**
   * Variables specific to text.
   */
  --color-text-neutral-soft: var(--color--text-secondary);
  --color-text-neutral-medium: var(--color--text-primary);
  --color-text-neutral-loud: var(--color--text-primary);

  --color-text-primary-medium: var(--color--primary-50);
  --color-text-primary-loud: var(--color--primary-40);

  /**
   * Named Colors.
   */
  --color--black: #0A1F44; /* Deep Energy Blue */
  --color--white: #F4F6F8; /* Off-white */
  --color--red: #e33f1e;
  --color--gold: #FFD700; /* Achievement Gold */
  --color--green: #B4F000; /* Electric Lime */

  /* Achievement accent colors */
  --color--achievement-bronze: #CD7F32;
  --color--achievement-silver: #C0C0C0;
  --color--achievement-gold: #FFD700;

  /* Header */
  --header-height-wide-when-fixed: var(--sp4);

  /* Width of slide out navigation */
  --mobile-nav-width: 500px;

  /*
   * Border radius scale — reuse these everywhere instead of hardcoding a radius.
   * sm (8px): small nested elements (thumbnails, tags, badges).
   * ui (10px): interactive UI elements (buttons, inputs).
   * base (16px): structural cards/sections.
   * lg (22px): large spotlight-scale elements.
   * full (999px): fully rounded pills/chips.
   */
  --border-radius-sm: 8px;
  --border-radius-ui: 10px;
  --border-radius: 16px;
  --border-radius-lg: 22px;
  --border-radius-full: 999px; /* Inline padding on .container elements. */
}

@media (min-width: 1200px) {

:root {
    --container-padding: var(--sp2);
}
  }

/* Width of a grid column. */

@media (min-width: 768px) {

:root {
    --grid-col-count: 14;
    --grid-gap: var(--sp2);
}
  }

@media (min-width: 1024px) {

:root {
    --scrollbar-width: 15px; /* Approximate width of a scrollbar. Doesn't have to be perfect. */
}
  }

@media (min-width: 1200px) {

:root {
    --grid-full-width: calc(100vw - var(--scrollbar-width) - var(--content-left) - var(--sp4));
}
  }

@media (min-width: 1440px) {

:root {
    --grid-full-width: calc(var(--max-width) - var(--sp4));
}
  }
