/* Base Designs: reset, html/body, headings, text, links, forms */

/* ---- Reset ---- */

*,
*::before,
*::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img, svg, video, canvas { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }



/* ---- Base HTML/body ---- */

html {
  font-size: 100% !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  color: var(--midnight);
  font-family: var(--font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

code, kbd, samp, pre { font-family: var(--font-mono); }



/* ---- Content background ---- */

.fl-page,
.fl-page-content,
.fl-page-content .container,
.fl-page-bar,
.fl-content,
.site,
#page {
  background: var(--soft-white, #FBFAF9) !important;
}



/* -------------- Typography -------------- */

/* Base heading styles */
h1, h2, h3, h4, h5, h6 {
  color: var(--midnight);
  font-family: var(--font-serif);
  margin: 0 0 10px 0;
  padding: 0;
}

/* Base (SM: <768px) */
:root {
  /* Heading sizes (mobile) */
  --h1: 2.125rem; /* 34px */
  --h2: 1.75rem;  /* 28px */
  --h3: 1.5rem;   /* 24px */
  --h4: 1.25rem;  /* 20px */
  --h5: 1.125rem; /* 18px */
  --h6: 1rem;     /* 16px */

  /* Line heights */
  --lh-1: 1.25;
  --lh-2: 1.25;
  --lh-3: 1.3;
  --lh-4: 1.35;
  --lh-5: 1.4;
  --lh-6: 1.4;

  /* Letter spacing */
  --ls-1: -0.015em;
  --ls-2: -0.01em;
  --ls-3: -0.005em;

  /* Paragraph size */
  --p: 1rem; /* 16px */
}

/* MD (≥768px) */
@media (min-width: 768px) {
  :root {
    --h1: 2.75rem;  /* 44px */
    --h2: 2rem;     /* 32px */
    --h3: 1.75rem;  /* 28px */
    --h4: 1.5rem;   /* 24px */
    --h5: 1.25rem;  /* 20px */
    --h6: 1.125rem; /* 18px */
    --p: 1rem;      /* 16px */
  }
}

/* LG (≥992px) */
@media (min-width: 992px) {
  :root {
    --h1: 3.25rem;  /* 52px */
    --h2: 2.25rem;  /* 36px */
    --h3: 1.875rem; /* 30px */
    --h4: 1.625rem; /* 26px */
    --h5: 1.375rem; /* 22px */
    --h6: 1.125rem; /* 18px */
  }
}

/* XL (≥1280px) */
@media (min-width: 1280px) {
  :root {
    --h1: 3.6rem;  /* 56px */
    --h2: 2.5rem;  /* 40px */
    --h3: 2rem;    /* 32px */
    --h4: 1.75rem; /* 28px */
    --h5: 1.5rem;  /* 24px */
    --h6: 1.25rem; /* 20px */
  }
}

/* Hading scale */
h1 { font-size: var(--h1); line-height: var(--lh-1); letter-spacing: var(--ls-1); font-weight: 300; }
h2 { font-size: var(--h2); line-height: var(--lh-2); letter-spacing: var(--ls-2); font-weight: 400; }
h3 { font-size: var(--h3); line-height: var(--lh-3); letter-spacing: var(--ls-3); font-weight: 700; }
h4 { font-size: var(--h4); line-height: var(--lh-4); letter-spacing: var(--ls-3); font-weight: 500; }
h5 { font-size: var(--h5); line-height: var(--lh-5); letter-spacing: var(--ls-3); font-weight: 500; }
h6 { font-size: var(--h6); line-height: var(--lh-6); letter-spacing: var(--ls-3); font-weight: 600; }

/* Ensure Beaver Builder heading modules match */
.fl-builder-content h1,
.fl-module-heading h1,
.fl-heading h1,
.fl-heading-text h1 { font-size: var(--h1); line-height: var(--lh-1); font-weight: 300; }

.fl-builder-content h2,
.fl-module-heading h2,
.fl-heading h2,
.fl-heading-text h2 { font-size: var(--h2); line-height: var(--lh-2); font-weight: 400; }

.fl-builder-content h3,
.fl-module-heading h3,
.fl-heading h3,
.fl-heading-text h3 { font-size: var(--h3); line-height: var(--lh-3); font-weight: 700; }

.fl-builder-content h4,
.fl-module-heading h4,
.fl-heading h4,
.fl-heading-text h4 { font-size: var(--h4); line-height: var(--lh-4); font-weight: 500; }

.fl-builder-content h5,
.fl-module-heading h5,
.fl-heading h5,
.fl-heading-text h5 { font-size: var(--h5); line-height: var(--lh-5); font-weight: 500; }

.fl-builder-content h6,
.fl-module-heading h6,
.fl-heading h6,
.fl-heading-text h6 { font-size: var(--h6); line-height: var(--lh-6); font-weight: 600; }


/* Paragraphs */
body p,
.fl-rich-text p,
.fl-post-content p,
.fl-builder-content p {
  color: var(--midnight);
  font-family: var(--font-sans);
  font-size: var(--p);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.015em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

/* Small text */
small,
.text-sm {
  font-size: 0.875rem; /* 14px */
}


li {
  color: var(--midnight);
  font-family: var(--font-sans);
  font-size: var(--p);
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 10px;
  letter-spacing: 0.015em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

/* Links */
.fl-page a,
.fl-page-content a,
.site a,
a { 
  color: var(--ocean);
  font-weight: 600;
  text-decoration: none;
  text-decoration-thickness: .08em;
  text-underline-offset: .2em;
  cursor: pointer;
}

.fl-page a:hover,
.fl-page-content a:hover,
.site a:hover,
a:hover { color: var(--denim); }

/* Site Title */
.site-title,
.site-title a {
  color: var(--soft-white) !important;
  font-family: var(--font-serif);
  font-size: var(--h5);
  font-weight: 300 !important;
  line-height: 1.1;
  letter-spacing: 0.015em;
  text-decoration: none !important;
  cursor: pointer;
  transition: color 0.3s ease, transform 0.3s ease;
}
.site-title a:hover {
  color: var(--sky, #00AEC7) !important;
  text-decoration: none !important;
}

/* Eyebrow style */
.eyebrow {
  color: var(--text-color);
  font-family: var(--font-sans);
  font-weight: 700 !important;
  font-size: 0.9375rem;
  letter-spacing: 0.025em;
  line-height: 1.2em;
  text-transform: uppercase;
}
.eyebrow a:hover{
  color: var(--sky);
}

/* Blockquote style */
blockquote {
  margin: 2rem 0;
  padding-left: 1rem;
  font-family: 'Noto Serif', serif;
  font-size: 1.25rem;
  font-style: italic;
  border-left: 4px solid var(--ocean);
}

/* Quote */
.quote {
  font-family: var(--font-serif) !important;
  font-weight: 500 !important;
  font-size: 1.25rem !important;
  letter-spacing: -0.015em;
}

.lightLabel {
  color: #FFFFFF !important;
}

/* -------------- Forms -------------- */
input[type="text"], input[type="email"], input[type="url"], input[type="search"],
textarea, select {
  width: 100%;
  padding: .65rem .8rem;
  border: 1px solid var(--cream);
  border-radius: var(--radius);
  background: var(--white);
}



/* -------------- Accessibility -------------- */
:focus-visible {
  outline: 2px solid var(--ocean);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}