/* ===================================================================
   Bali Pro Services — Fonts & Typography Base
   Fonts served from child theme: /assets/fonts/
   =================================================================== */

/* 400 Regular */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local("Montserrat Regular"), local("Montserrat-Regular"),
       url("../fonts/montserrat-v31-latin-regular.woff2") format("woff2");
}

/* 400 Italic */
@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: local("Montserrat Italic"), local("Montserrat-Italic"),
       url("../fonts/montserrat-v31-latin-italic.woff2") format("woff2");
}

/* 700 Italic */
@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: local("Montserrat Bold Italic"), local("Montserrat-BoldItalic"),
       url("../fonts/montserrat-v31-latin-700italic.woff2") format("woff2");
}

/* 900 Black */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: local("Montserrat Black"), local("Montserrat-Black"), local("Montserrat 900"),
       url("../fonts/montserrat-v31-latin-900.woff2") format("woff2");
}


/* === Typographic Tokens === */

:root {
  --font-sans: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --fs-900: clamp(36px, 4vw, 52px);
  --fs-800: clamp(28px, 3.2vw, 42px);
  --fs-700: clamp(22px, 2.6vw, 32px);
  --fs-600: clamp(18px, 2vw, 24px);
  --fs-500: 18px;
  --fs-400: 16px;
  --lh-body: 1.6;
  --lh-heading: 1.12;
  --space-1: .35rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --text: #e9eef1;
  --muted: #b9c2c7;
  --link: #87CEEB;
}


/* === Base Text === */

:where(html) { font-size: 100%; }
:where(html, body) { font-synthesis-weight: none; }

:where(body) { font-family: var(--font-sans); color: var(--text); font-size: var(--fs-500); line-height: var(--lh-body); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

:where(h1, h2, h3) { font-family: var(--font-sans); font-weight: 900; line-height: var(--lh-heading); margin: var(--space-3) 0 var(--space-2); }
:where(h1) { font-size: var(--fs-900); }
:where(h2) { font-size: var(--fs-800); }
:where(h3) { font-size: var(--fs-700); }
:where(h4) { font-size: var(--fs-600); font-weight: 700; margin: var(--space-2) 0 var(--space-1); }
:where(h5, h6) { font-size: var(--fs-500); font-weight: 700; margin: var(--space-2) 0 var(--space-1); }

:where(p) { margin: 0 0 var(--space-3); }
:where(.lede) { font-size: var(--fs-600); color: var(--muted); line-height: 1.5; }
:where(.small) { font-size: var(--fs-400); color: var(--muted); }

:where(ul, ol) { padding-left: 1.2em; margin: 0 0 var(--space-3); }
:where(li + li) { margin-top: .4em; }

:where(a) { color: var(--link); text-decoration: underline; text-underline-offset: 2px; background: transparent; }
:where(a:hover, a:focus) { color: #000; background: transparent; }

:where(b, strong) { font-weight: 700; }
:where(em, i) { font-style: italic; }


/* === Elementor Heading Reset === */

:where(.elementor h1, .elementor h2, .elementor h3) { font-family: var(--font-sans) !important; font-weight: 900 !important; text-transform: uppercase; letter-spacing: .5px; color: #fff; border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: 16px; }

:where(.bps-page-subtitle) { margin: 10px 0 18px; color: var(--muted); font-size: clamp(14px, 1.6vw, 18px); line-height: 1.4; }


/* === Hard Overrides (load last) === */

:where(h1) { font-family: var(--font-sans) !important; font-weight: 900 !important; }
:where(h2) { font-family: var(--font-sans) !important; font-weight: 900 !important; }
:where(h3) { font-family: var(--font-sans) !important; font-weight: 800 !important; }
:where(h4) { font-family: var(--font-sans) !important; font-weight: 700 !important; }
:where(h5, h6) { font-family: var(--font-sans) !important; font-weight: 700 !important; }

body :where(h1, h2, h3, h4, h5, h6) { color: #fff !important; }

.elementor-location-header .elementor-nav-menu .elementor-item { font-family: var(--font-sans) !important; font-weight: 900 !important; text-transform: uppercase; letter-spacing: .02em; }

:where(h1, h2, h3, h4, h5, h6),
:where(.elementor h1, .elementor h2, .elementor h3, .elementor h4, .elementor h5, .elementor h6) { text-transform: uppercase !important; letter-spacing: .03em; }


/* === Global Link Colours === */

:where(a) { color: #87CEEB !important; text-decoration: none; transition: color .25s ease; }
:where(a:hover, a:focus) { color: #fff !important; text-decoration: none; }

.elementor-location-header .elementor-nav-menu .elementor-item { color: #fff !important; text-transform: uppercase; font-weight: 900; font-family: var(--font-sans); letter-spacing: .02em; transition: color .25s ease; }
.elementor-location-header .elementor-nav-menu .elementor-item:hover,
.elementor-location-header .elementor-nav-menu .elementor-item:focus { color: #87CEEB !important; }
