/* ==========================================================================
   JAT SITEWIDE CSS — 01-foundation.css
   Heading font system (Mona Sans axes), brand gradient token + image overlay, page hero under nav, eyebrow line, dark-red background, brand dot

   Loaded right after Elementor's Site Settings CSS (see child functions.php),
   in file-name order 01 → 07. Keep blocks in order; add new blocks at the end
   of the relevant file under a "JAT — …" banner comment.
   ========================================================================== */

/* =========================================================
   JAT — HEADING FONT SYSTEM
   Mona Sans VF
   ========================================================= */

.text-display,
.text-h1,
.text-h2,
.text-h3,
.text-h4,
.text-h5,
.text-h6 {
  /* Variable axes */
  font-variation-settings:
    "wght" var(--heading-weight),
    "wdth" var(--heading-width),
    "ital" var(--heading-italic),
    "opsz" var(--heading-optical-size);

  /* Shared OpenType stylistic sets */
  font-feature-settings:
    "ss02" 1,
    "ss09" 1,
    "ss10" 1;
}

/* Display */

.text-display {
  --heading-weight: 950;
  --heading-width: 80;
}

/* H1 */

.text-h1 {
  --heading-weight: 900;
  --heading-width: 82;
  --heading-italic: 1;
  --heading-optical-size: 76;
}

/* H2 */

.text-h2 {
  --heading-weight: 725;
  --heading-width: 102;
  --heading-italic: 0;
  --heading-optical-size: 64;
}

/* H3 */

.text-h3 {
  --heading-weight: 750;
  --heading-width: 96;
  --heading-italic: 0;
  --heading-optical-size: 48;
}

/* H4 */

.text-h4 {
  --heading-weight: 775;
  --heading-width: 96;
  --heading-italic: 0;
  --heading-optical-size: 36;
}

/* H5 */

.text-h5 {
  --heading-weight: 750;
  --heading-width: 100;
  --heading-italic: 0;
  --heading-optical-size: 28;
}

/* H6 */

.text-h6 {
  --heading-weight: 700;
  --heading-width: 104;
  --heading-italic: 0;
  --heading-optical-size: 24;
}

/* =========================================================
   JAT — BRAND GRADIENT TOKEN
   ========================================================= */

:root {
  --gradient-overlay-brand: linear-gradient(
    210deg,
    var(--color-brand-accent) 0%,
    var(--color-brand-accent-dark) 100%
  );
}

/* =========================================================
   JAT — BRAND GRADIENT IMAGE OVERLAY
   ========================================================= */

.overlay-brand-gradient {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

/* ---------------------------------------------------------
   IMAGE LAYER
   Apply this class to the Elementor Image widget
   --------------------------------------------------------- */

.overlay-brand-gradient__image {
  position: absolute;

  inset: 0;

  z-index: 0;

  width: 100%;
  height: 100%;

  pointer-events: none;
}

/* Make the actual image fill the section */

.overlay-brand-gradient__image img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  display: block;
}

/* ---------------------------------------------------------
   MULTIPLY GRADIENT LAYER
   --------------------------------------------------------- */

.overlay-brand-gradient::before {
  content: "";

  position: absolute;
  inset: 0;

  z-index: 1;

  pointer-events: none;

  background: var(--gradient-overlay-brand);

  opacity: 1;

  mix-blend-mode: multiply;
}

/* =========================================================
   CONTENT
   Keep everything except the image above the overlay
   ========================================================= */

.overlay-brand-gradient > *:not(.overlay-brand-gradient__image) {
  position: relative;
  z-index: 2;
}

/* =========================================================
   JAT — PAGE HERO UNDER TRANSPARENT NAVBAR
   ========================================================= */

.section-page-hero--under-nav {
  padding-top: calc(var(--navbar-height-desktop) + var(--space-fluid-4xl));
}

@media (max-width: 1024px) {
  .section-page-hero--under-nav {
    padding-top: calc(var(--navbar-height-tablet) + var(--space-fluid-4xl));
  }
}

@media (max-width: 767px) {
  .section-page-hero--under-nav {
    padding-top: calc(var(--navbar-height-mobile) + var(--space-fluid-4xl));
  }
}

/* =========================================================
   JAT — TYPOGRAPHY — EYEBROW LINE LEFT
   ========================================================= */

.eyebrow-line-left {
  display: inline-block;
  width: fit-content;

  /* Typography */
  font-family: var(--font-family-body);
  font-size: var(--font-size-body-base);
  font-weight: 750;
  line-height: 1.1;
  letter-spacing: 0.18em;
  text-transform: uppercase;

  /* Brand Color */
  color: var(--color-brand-accent);

  /* Accent Line Spacing */
  padding-left: 36px;

  /* Accent Line */
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;

  /* Align line to center of the actual text line */
  background-position: left calc(0.6em - 1px);

  background-size: 26px 2px;

  /* Cleanup */
  margin: 0;
}

/* Custom Code Block */

.code-block {
  /* Typography */
  font-family: var(--font-family-mono);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: normal;

  font-variant-ligatures: none;
  tab-size: 2;

  overflow-x: auto;
}

/* =========================================================
   JAT — BACKGROUNDS — DARK RED GRADIENT
   ========================================================= */

.bg-gradient-dark-red {
  background:
    radial-gradient(
      120% 90% at 15% 0%,
      color-mix(in srgb, var(--color-brand-accent) 28%, transparent) 0%,
      transparent 55%
    ),
    linear-gradient(
      180deg,
      var(--color-background-dark) 0%,
      var(--color-black) 100%
    );
}

/* =========================================================
   JAT — BACKGROUNDS — BRAND RED GRADIENT (bold CTA)
   Sibling of bg-gradient-dark-red. Content on red is recoloured
   below so it stays readable: primary button → white with red
   text, secondary → white outline, eyebrow line → white.
   Use on: "CTA bold red" component.
   ========================================================= */

.bg-gradient-brand-red {
  background:
    radial-gradient(
      90% 80% at 10% 0%,
      color-mix(in srgb, var(--white) 10%, transparent) 0%,
      transparent 60%
    ),
    linear-gradient(
      120deg,
      var(--color-brand-accent) 0%,
      var(--color-brand-accent-dark) 100%
    );
}

.elementor .bg-gradient-brand-red .eyebrow-line-left--inverse {
  background-image: linear-gradient(currentColor, currentColor);
}

.elementor .bg-gradient-brand-red .btn-primary {
  background-color: var(--white);
  color: var(--color-brand-accent);
  box-shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.45);
}
.elementor .bg-gradient-brand-red .btn-primary:hover {
  background-color: var(--color-background-dark);
  color: var(--color-text-inverse);
}

.elementor .bg-gradient-brand-red .btn-secondary {
  border-color: color-mix(in srgb, var(--white) 70%, transparent);
  color: var(--color-text-inverse);
}
.elementor .bg-gradient-brand-red .btn-secondary:hover {
  background-color: var(--white);
  border-color: var(--white);
  color: var(--color-brand-accent);
}

.elementor .bg-gradient-brand-red .watermark-jat {
  -webkit-text-stroke-color: color-mix(in srgb, var(--white) 22%, transparent);
}

/* =========================================================
   JAT — UI — BRAND DOT
   Fixed 8px Circle
   ========================================================= */

.dot-brand {
  display: block !important;

  width: 8px !important;
  height: 8px !important;

  min-width: 8px !important;
  min-height: 8px !important;

  max-width: 8px !important;
  max-height: 8px !important;

  flex-grow: 0 !important;
  flex-shrink: 0 !important;
  flex-basis: 8px !important;

  align-self: center !important;

  padding: 0 !important;
  margin: 0 !important;

  border-radius: 50%;
  background-color: var(--color-brand-accent);

  box-sizing: border-box;
}


