/* Generated file. Do not edit directly. */

/* ===== fonts.css ===== */
/* ==========================================================================
FTS: fonts.css
Purpose: Self-hosted WOFF2 fonts.
Notes:
- Keep font-display: swap.
- Italic variants are registered under the SAME font-family name using
  font-style: italic. Do NOT register them as separate families.
  This ensures <em>, <i>, and BB italic controls use the real font file
  instead of browser-synthesized italics.
- This file should be stable and rarely touched.
========================================================================== */

/* --- Noto Sans --- */
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-LightItalic.woff2") format("woff2");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-MediumItalic.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-SemiBoldItalic.woff2") format("woff2");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans";
  src: url("../fonts/noto-sans/NotoSans-BoldItalic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* --- Noto Serif --- */
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-LightItalic.woff2") format("woff2");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-MediumItalic.woff2") format("woff2");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-SemiBoldItalic.woff2") format("woff2");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Serif";
  src: url("../fonts/noto-serif/NotoSerif-BoldItalic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* --- Noto Sans Mono --- */
@font-face {
  font-family: "Noto Sans Mono";
  src: url("../fonts/noto-mono/NotoSansMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans Mono";
  src: url("../fonts/noto-mono/NotoSansMono-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}


/* ===== tokens.css ===== */
/* ==========================================================================
  FTS: tokens.css
  Purpose: Global design tokens (colors, typography, spacing, focus).
  Notes:
  - Brand tokens first, then semantic tokens.
  - Components should prefer semantic tokens.
  ========================================================================== */


:root {
  /* --- Brand Color Tokens --- */
  --black:      #000000;
  --midnight:   #101820;
  --slate:      #4C5258;
  --navy:       #072B31;
  --peacock:    #01263C;
  --denim:      #005776;
  --ocean:      #007FA3;
  --sky:        #00AEC7;
  --green:      #006D68;
  --mint:       #40C1AC;
  --red:        #D14124;
  --orange:     #FF8F1C;
  --golden:     #FFC845;
  --cream:      #D6D2C4;
  --ivory:      #F2F0EC;
  --soft-white: #FBFAF9;
  --soft-grey:  #C1C3C5;
  --white:      #FFFFFF;

  /* --- Semantic Tokens --- */
  /* --color-bg:          var(--soft-white); */
  --color-bg:          #FAF9F7;
  --color-surface:     var(--white);
  --color-heading:     var(--denim);
  --color-text:        var(--midnight);
  --color-muted:       var(--slate);

  --color-link:        var(--ocean);
  --color-link-hover:  var(--sky);

  --color-border:      color-mix(in srgb, var(--midnight) 18%, transparent);

  /* Status */
  --color-success:     var(--green);
  --color-warning:     var(--orange);
  --color-danger:      var(--red);

  /* --- Typography Tokens --- */
  --base-font-size: 16px;

  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* --- Radii and Shadows (neutral defaults) --- */
  --radius-0: 0px;
  --radius-1: 4px;
  --radius-2: 8px;

  --shadow-1: 0 1px 3px rgba(0, 0, 0, 0.10);
  --shadow-2: 0 6px 18px rgba(0, 0, 0, 0.12);

  /* --- Accessibility Tokens --- */
  --fts-focus-ring: var(--sky);
  --fts-focus-width: 3px;
  --fts-focus-offset: 3px;
  --fts-focus-scroll-offset: 6rem;

  --fts-link-underline-thickness: 0.14em;
  --fts-link-underline-offset: 0.08em;

  /* --- Font Stacks --- */
  --font-sans: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: "Noto Serif", Georgia, "Times New Roman", Times, serif;
  --font-mono: "Noto Sans Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}


/* ===== token-shim.css ===== */
/**
 * Fuller token shim (Design System owned)
 * Purpose: provide legacy variable aliases that map to DS tokens.
 * Keep small and boring. Never redefine DS tokens here.
 */
:root{
  /* Semantic aliases */
  --fedu-color-text: var(--color-text, var(--midnight));
  --fedu-color-surface: var(--color-surface, var(--white));
  --fedu-color-bg: var(--color-bg, var(--white));
  --fedu-color-border: var(--color-border, var(--cream));
  --fedu-color-muted: var(--color-muted, var(--slate));
  --fedu-color-link: var(--color-link, var(--ocean));
  --fedu-color-link-hover: var(--color-link-hover, var(--sky));

  /* Brand-ish aliases (best-effort) */
  --fedu-color-primary: var(--ocean);
  --fedu-color-secondary: var(--sky);
  --fedu-color-accent: var(--golden);

  /* Legacy generic names used across older CSS */
  --primary: var(--fedu-color-primary);
  --secondary: var(--fedu-color-secondary);
  --accent: var(--fedu-color-accent);
  --text: var(--fedu-color-text);
  --surface: var(--fedu-color-surface);
  --border: var(--fedu-color-border);
  --border-radius: var(--radius, 0px);
}


/* ===== base.css ===== */
/* ==========================================================================
  FTS: base.css
  Purpose: Baseline styles that are safe across themes, BB, ACF, TEC.
  Notes:
  - No site furniture styling here.
  - Keep selectors broad but low-specificity.
  ========================================================================== */

/* --- Reset Lite --- */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: var(--base-font-size) !important; /* Anchor rem scale system-wide. */
  -webkit-text-size-adjust: 100%;
  background: var(--color-bg);
}

body {
  margin: 0;
  font-family: var(--font-sans) !important;
  font-size: var(--base-font-size);
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
}

/* BB wrappers inherit background */
.fl-page,
.fl-page-content,
.fl-builder-content {
  background: var(--color-bg);
}

/* Media defaults */
img, video {
  max-width: 100%;
  height: auto; /* maintains aspect ratio when width is constrained */
}
img { display: block; }

/* SVG and canvas: constrain width only. */
svg, canvas {
  max-width: 100%;
}

/* Text safety for long strings */
:where(p, li, td, th, a) {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Headings baseline */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  line-height: 1.15;
  color: var(--color-heading);
  margin: 0;
}

/* Clean base: remove global p margins */
p {
  margin: 0;
  font-family: var(--font-sans);
}

.no-margin p {
  margin: 0 !important;
}

/* Add paragraph rhythm inside real content zones */
.fl-builder-content :where(.fl-rich-text, .fl-module-content, .entry-content) p,
:where(main, .entry-content) p {
  margin: 0 0 1rem;
}

small { font-size: 0.875em; }

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

/* Links baseline: neutral, a11y owns underline and focus behaviors */
a {
  color: inherit;
  text-decoration-thickness: var(--fts-link-underline-thickness);
  text-underline-offset: var(--fts-link-underline-offset);
  font-weight: inherit;
}
a:hover {
  color: inherit;
}

/* Content link color, scoped to content areas only */
:where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card) {
  color: var(--color-link);
  font-weight: var(--weight-semibold);
}

:where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card):hover {
  color: var(--sky);
}

/* --------------------------------------------------------------------------
  Content link utilities
  Allows intentional overrides inside content areas.
  Underline animation is owned by a11y.css (loads after this file).
  -------------------------------------------------------------------------- */
.fts-link--inherit a { color: inherit !important; }
.fts-link--inherit a:hover { color: inherit; }

.fts-link--white a { color: var(--white) !important; }
.fts-link--white a:hover { color: var(--sky) !important; }

.fts-link--light a { color: var(--sky) !important; }
.fts-link--light a:hover { color: var(--ocean) !important; }

.fts-link--muted a {
  color: var(--white) !important;
  font-weight: var(--weight-medium) !important;
  opacity: 0.4;
}
.fts-link--muted a:hover {
  color: var(--sky) !important;
  opacity: 0.7;
}

.fts-link--no-underline a {
  background-image: none !important;
  text-decoration: none !important;
}

/* Navigation links: never show underline */
:where(nav, .fl-menu, .menu, .sub-menu) a:hover,
:where(nav, .fl-menu, .menu, .sub-menu) a:focus-visible {
  text-decoration: none !important;
  background-image: none !important;
}

/* Selection */
::selection { background: color-mix(in srgb, var(--sky) 25%, transparent); }

/* Footer anchor */
html, body { height: 100%; }

.fl-page {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.fl-page-content { flex: 1 0 auto; }

.fl-page-footer-wrap,
.fl-theme-builder-footer {
  margin-top: auto;
}


/* ===== typography.css ===== */
/* ==========================================================================
  FTS: typography.css
  Purpose: Type scale, headings, body copy, and BB rich text defaults.
  ========================================================================== */


:root {
  --fts-text-base: 1rem;      /* 16px */
  --fts-text-sm: 0.875rem;    /* 14px */
  --fts-text-lg: 1.125rem;    /* 18px */

  /* Headings (Desktop) */
  --fts-h1: 4rem;             /* 64px */
  --fts-h2: 2.375rem;         /* 38px */
  --fts-h3: 1.75rem;          /* 28px */
  --fts-h4: 1.5rem;           /* 24px */
  --fts-h5: 1.25rem;          /* 20px */
  --fts-h6: 1rem;             /* 16px */

  --fts-leading-body: 1.5;
  --fts-leading-heading: 1.15;
  /* --fts-reading is defined and owned by layout.css as a container width token. */
}

body {
  font-size: var(--fts-text-base);
  line-height: var(--fts-leading-body);
}

p {
  font-family: var(--font-sans);
  font-size: var(--fts-text-base);
  font-weight: var(--weight-regular);
  line-height: var(--fts-leading-body);
  letter-spacing: 0.025em;
  margin-bottom: 0;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  line-height: var(--fts-leading-heading);
  color: var(--denim);
}

h1 { font-size: var(--fts-h1); font-weight: var(--weight-light); }
h2 { font-size: var(--fts-h2); font-weight: var(--weight-regular); }
h3 { font-size: var(--fts-h3); font-weight: var(--weight-bold); }
h4 { font-size: var(--fts-h4); font-weight: var(--weight-semibold); }
h5 { font-size: var(--fts-h5); font-weight: var(--weight-medium); }
h6 { font-size: var(--fts-h6); font-weight: var(--weight-semibold); }

/* Lists in Rich Text */
.fl-rich-text :where(ul, ol) { padding-left: 1.125em; margin-top: 0; }
.fl-rich-text :where(li) { line-height: var(--fts-leading-body); }

/* Blockquote */
.fl-rich-text blockquote {
  margin-left: 0;
  margin-right: 0;
  border-color: var(--cream);
}

/* Rich text default margins to be controlled by rhythm system below */
.fl-rich-text :where(p, ul, ol, blockquote, pre, table, hr) { margin: 0; }
.fl-rich-text :where(h1, h2, h3, h4, h5, h6) { margin: 0; }

/* Helpers */
.fts-text-sm { font-size: var(--fts-text-sm); }
.fts-text-lg { font-size: var(--fts-text-lg); }

/* Responsive heading scale (match BB breakpoints) */
@media (max-width: 991.98px) {
  :root {
    --fts-h1: 2.75rem;
    --fts-h2: 2.25rem;
    --fts-h3: 1.5rem;
    --fts-h4: 1.375rem;
    --fts-h5: 1.125rem;
    --fts-h6: 1rem;
  }
}

@media (max-width: 767.98px) {
  :root {
    --fts-h1: 2.25rem;
    --fts-h2: 1.75rem;
    --fts-h3: 1.375rem;
    --fts-h4: 1.25rem;
    --fts-h5: 1.125rem;
    --fts-h6: 1rem;
  }
}

/* Rich text rhythm */
.fl-rich-text {
  --fts-flow: 1rem;
  --fts-flow-tight: 0.5rem;
  --fts-flow-loose: 1.5rem;
}

.fl-rich-text :where(p, ul, ol, blockquote, pre, table, hr)
  + :where(p, ul, ol, blockquote, pre, table, hr) {
  margin-top: var(--fts-flow);
}

.fl-rich-text :where(h1, h2, h3, h4, h5, h6)
  + :where(p, ul, ol) {
  margin-top: var(--fts-flow-tight);
}

.fl-rich-text :where(p, ul, ol, blockquote, pre, table, hr)
  + :where(h1, h2, h3, h4, h5, h6) {
  margin-top: var(--fts-flow-loose);
}

/* Inline safety */
.fl-rich-text :where(p, span, strong, em, b, i, u, small, code, mark) {
  background: transparent !important;
}

.fl-rich-text :where(strong, em, b, i, u, small, code) {
  line-height: inherit;
}

.fl-rich-text * { background-clip: padding-box; }

/* ===== layout.css ===== */
/* ==========================================================================
  FTS: layout.css
  Purpose: Layout helpers (container, gutters, rhythm, reading width).
  Notes:
  - Everything opt-in via classes.
  ========================================================================== */

:root {
  --fts-container: 1400px;
  --fts-gutter: 48px;
  --fts-gutter-md: 32px;
  --fts-gutter-sm: 20px;
  --fts-stack: 20px;
  --fts-stack-sm: 10px;
  --fts-reading: 115ch;
}

.fts-container {
  width: 100%;
  max-width: var(--fts-container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--fts-gutter);
  padding-right: var(--fts-gutter);
}

@media (max-width: 991.98px) {
  .fts-container {
    padding-left: var(--fts-gutter-md);
    padding-right: var(--fts-gutter-md);
  }
}

@media (max-width: 767.98px) {
  .fts-container {
    padding-left: var(--fts-gutter-sm);
    padding-right: var(--fts-gutter-sm);
  }
}

/* Vertical spacing helper */
.fts-stack > :where(* + *) { margin-top: var(--fts-stack); }
.fts-stack :where(.fl-col-content > .fl-module + .fl-module) { margin-top: var(--fts-stack); }

@media (max-width: 767.98px) {
  .fts-stack > :where(* + *) { margin-top: var(--fts-stack-sm); }
  .fts-stack :where(.fl-col-content > .fl-module + .fl-module) { margin-top: var(--fts-stack-sm); }
}

/* Guard against accidental max-width constraints */
:where(.fl-builder-content, .fl-module-content) { max-width: 100%; }

/* Reading width
   Purpose:
   - Constrain long-form content to a readable measure.
   - Center the constrained block.

   Beaver Builder note:
   - BB columns are float-based. A floated element ignores auto side margins.
   - If .fts-reading is applied to a single column, neutralize the float so it can center.
   - For multi-column layouts, apply .fts-reading to an inner module/box instead.
*/
.fts-reading {
  display: block;
  width: 100%;
  max-width: var(--fts-reading);
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Beaver Builder: single-column centering only */
.fl-col-group > .fl-col.fts-reading:only-child {
  float: none !important;
  width: 100% !important;
  max-width: var(--fts-reading);
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep inner content constrained as well */
.fl-col.fts-reading > .fl-col-content {
  width: 100%;
  max-width: var(--fts-reading);
  margin-left: auto !important;
  margin-right: auto !important;
}

.fts-center { margin-left: auto; margin-right: auto; }

/* Gaps */
.fts-gap-sm { gap: 8px; }
.fts-gap-md { gap: 16px; }
.fts-gap-lg { gap: 24px; }

/* Section spacing */
.fts-section {
  padding-top: 64px;
  padding-bottom: 64px;
}

@media (max-width: 991.98px) {
  .fts-section { padding-top: 48px; padding-bottom: 48px; }
}

@media (max-width: 767.98px) {
  .fts-section { padding-top: 32px; padding-bottom: 32px; }
}


/* ===== buttons.css ===== */
/* ==========================================================================
   FTS: buttons.css
   Purpose:
   - Fuller Design System default button styling
   - Beaver Builder Button module support
   - Stable variants
   Notes:
   - DS owns the default button appearance.
   - Use stronger selectors than BB theme skin and cached layout CSS.
   - Scope to front-end surfaces only, never Beaver Builder UI chrome.
   ========================================================================== */

:root {
  --fts-btn-radius: 0px;
  --fts-btn-font-weight: 600;
  --fts-btn-line-height: 1.1;
  --fts-btn-pad-y: 10px;
  --fts-btn-pad-x: 40px;
  --fts-btn-border: 2px;
  --fts-btn-transition: 160ms;
}

/* --------------------------------------------------------------------------
   Base button
   -------------------------------------------------------------------------- */
.fl-builder-content .fl-module-button a.fl-button,
.fl-builder-content .fl-button-wrap a.fl-button,
.fl-page-content .fl-button-wrap a.fl-button,
.fl-theme-builder-header .fl-button-wrap a.fl-button,
.fl-theme-builder-footer .fl-button-wrap a.fl-button,
.entry-content a.fl-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;

  font-family: var(--font-sans) !important;
  font-weight: var(--fts-btn-font-weight) !important;
  line-height: var(--fts-btn-line-height) !important;

  text-align: center !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;

  padding: var(--fts-btn-pad-y) var(--fts-btn-pad-x) !important;
  border-radius: var(--fts-btn-radius) !important;

  border-width: var(--fts-btn-border) !important;
  border-style: solid !important;
  border-color: var(--ocean) !important;

  background-color: var(--ocean) !important;
  color: var(--white) !important;

  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;
  user-select: none;

  transition:
    transform var(--fts-btn-transition) ease,
    background-color var(--fts-btn-transition) ease,
    border-color var(--fts-btn-transition) ease,
    color var(--fts-btn-transition) ease,
    box-shadow var(--fts-btn-transition) ease !important;
}

/* Inner text inherits the anchor style */
.fl-builder-content a.fl-button .fl-button-text,
.fl-page-content a.fl-button .fl-button-text,
.fl-theme-builder-header a.fl-button .fl-button-text,
.fl-theme-builder-footer a.fl-button .fl-button-text,
.entry-content a.fl-button .fl-button-text {
  color: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* Hover + active */
.fl-builder-content a.fl-button:hover,
.fl-page-content a.fl-button:hover,
.fl-theme-builder-header a.fl-button:hover,
.fl-theme-builder-footer a.fl-button:hover,
.entry-content a.fl-button:hover {
  transform: translateY(-1px);
  background-color: var(--sky) !important;
  border-color: var(--sky) !important;
  color: var(--white) !important;
}

.fl-builder-content a.fl-button:active,
.fl-page-content a.fl-button:active,
.fl-theme-builder-header a.fl-button:active,
.fl-theme-builder-footer a.fl-button:active,
.entry-content a.fl-button:active {
  transform: translateY(0);
}

/* Focus */
.fl-builder-content a.fl-button:focus-visible,
.fl-page-content a.fl-button:focus-visible,
.fl-theme-builder-header a.fl-button:focus-visible,
.fl-theme-builder-footer a.fl-button:focus-visible,
.entry-content a.fl-button:focus-visible {
  outline: 3px solid var(--sky) !important;
  outline-offset: 3px !important;
}

/* Mobile full-width */
@media (max-width: 767.98px) {
  .fl-builder-content .fl-module-button a.fl-button,
  .fl-builder-content .fl-button-wrap a.fl-button,
  .fl-page-content .fl-button-wrap a.fl-button,
  .fl-theme-builder-header .fl-button-wrap a.fl-button,
  .fl-theme-builder-footer .fl-button-wrap a.fl-button,
  .entry-content a.fl-button {
    display: flex !important;
    width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   Variants
   Pattern:
   - Support class on anchor OR on wrap.
   - Use background-color (not shorthand) so overrides are predictable.
   -------------------------------------------------------------------------- */

/* Secondary (filled) */
.fl-builder-content a.fl-button.fts-btn--secondary,
.fl-builder-content .fts-btn--secondary a.fl-button,
.fl-page-content a.fl-button.fts-btn--secondary,
.fl-page-content .fts-btn--secondary a.fl-button {
  background-color: var(--midnight) !important;
  color: var(--white) !important;
  border-color: var(--midnight) !important;
}
.fl-builder-content a.fl-button.fts-btn--secondary:hover,
.fl-builder-content .fts-btn--secondary a.fl-button:hover,
.fl-page-content a.fl-button.fts-btn--secondary:hover,
.fl-page-content .fts-btn--secondary a.fl-button:hover {
  background-color: var(--denim) !important;
  border-color: var(--denim) !important;
}

/* Outline primary */
.fl-builder-content a.fl-button.fts-btn--outline,
.fl-builder-content .fts-btn--outline a.fl-button,
.fl-page-content a.fl-button.fts-btn--outline,
.fl-page-content .fts-btn--outline a.fl-button {
  background-color: transparent !important;
  color: var(--ocean) !important;
  border-color: var(--ocean) !important;
}
.fl-builder-content a.fl-button.fts-btn--outline:hover,
.fl-builder-content .fts-btn--outline a.fl-button:hover,
.fl-page-content a.fl-button.fts-btn--outline:hover,
.fl-page-content .fts-btn--outline a.fl-button:hover {
  background-color: transparent !important;
  color: var(--sky) !important;
  border-color: var(--sky) !important;
}

/* Outline secondary */
.fl-builder-content a.fl-button.fts-btn--outline-secondary,
.fl-builder-content .fts-btn--outline-secondary a.fl-button,
.fl-page-content a.fl-button.fts-btn--outline-secondary,
.fl-page-content .fts-btn--outline-secondary a.fl-button {
  background-color: transparent !important;
  color: var(--midnight) !important;
  border-color: var(--midnight) !important;
}
.fl-builder-content a.fl-button.fts-btn--outline-secondary:hover,
.fl-builder-content .fts-btn--outline-secondary a.fl-button:hover,
.fl-page-content a.fl-button.fts-btn--outline-secondary:hover,
.fl-page-content .fts-btn--outline-secondary a.fl-button:hover {
  background-color: transparent !important;
  color: var(--ocean) !important;
  border-color: var(--ocean) !important;
}

/* Outline white */
.fl-builder-content a.fl-button.fts-btn--outline-white,
.fl-builder-content .fts-btn--outline-white a.fl-button,
.fl-page-content a.fl-button.fts-btn--outline-white,
.fl-page-content .fts-btn--outline-white a.fl-button {
  background-color: transparent !important;
  color: var(--white) !important;
  border-color: var(--white) !important;
}
.fl-builder-content a.fl-button.fts-btn--outline-white:hover,
.fl-builder-content .fts-btn--outline-white a.fl-button:hover,
.fl-page-content a.fl-button.fts-btn--outline-white:hover,
.fl-page-content .fts-btn--outline-white a.fl-button:hover {
  background-color: transparent !important;
  color: var(--sky) !important;
  border-color: var(--sky) !important;
}

/* Small */
.fl-builder-content a.fl-button.fts-btn--small,
.fl-builder-content .fts-btn--small a.fl-button,
.fl-page-content a.fl-button.fts-btn--small,
.fl-page-content .fts-btn--small a.fl-button {
  padding: 8px 20px !important;
  font-size: 0.875rem !important;
}

/* Clear */
.fl-builder-content a.fl-button.fts-btn--clear,
.fl-builder-content .fts-btn--clear a.fl-button,
.fl-page-content a.fl-button.fts-btn--clear,
.fl-page-content .fts-btn--clear a.fl-button {
  background-color: transparent !important;
  color: var(--ocean) !important;
  border-color: transparent !important;
  padding: 0 !important;
  font-size: 0.875rem !important;
}
.fl-builder-content a.fl-button.fts-btn--clear:hover,
.fl-builder-content .fts-btn--clear a.fl-button:hover,
.fl-page-content a.fl-button.fts-btn--clear:hover,
.fl-page-content .fts-btn--clear a.fl-button:hover {
  background-color: transparent !important;
  color: var(--sky) !important;
}


/* ===== accordions.css ===== */
/* ==========================================================================
  FTS: accordions.css
  Purpose:
  - Visually separated accordion items
  - Clean, uppercase triggers
  - Preserve keyboard focus visibility
  ========================================================================== */

.fl-accordion .fl-accordion-item {
  margin-bottom: 10px;
  background-color: var(--white);
  border: 1px solid var(--cream);
  transition: margin-bottom 0.2s ease;
}

.fl-accordion .fl-accordion-content.open {
  margin-bottom: 0;
}

.fl-accordion .fl-accordion-button {
  display: flex;
  align-items: center;
  justify-content: space-between;

  background: var(--white);
  border: none;
  box-shadow: none;

  text-align: left;
  text-transform: uppercase;

  padding-right: 2rem;
  cursor: pointer;
}

.fl-accordion-button-label {
  margin: 0;
  padding: 0;

  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: var(--weight-bold);
  line-height: 1.1;
  letter-spacing: 0.025em;
  text-transform: uppercase;

  color: var(--midnight);
  transition: color 0.25s ease;
}

.fl-accordion-button-label:hover {
  color: var(--ocean);
}

.fl-accordion-button-icon {
  color: var(--ocean);
  outline: none !important;
}

.fl-accordion .fl-accordion-content {
  display: none;
  margin-bottom: 4px;

  background: var(--white);
  border: none;

  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--midnight);
}

/* Keyboard focus: visible and consistent */
.fl-accordion .fl-accordion-button:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

@media (forced-colors: active) {
  .fl-accordion .fl-accordion-button:focus-visible {
    outline: 2px solid CanvasText !important;
  }
}

/* When BB is actively editing, keep chrome clean */
:where(body.fl-builder, body.fl-builder-edit, body.fl-builder-preview)
.fl-accordion .fl-accordion-button:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* ===== compat-acf.css ===== */
/* ==========================================================================
  FTS: compat-acf.css
  Purpose: Minimal compatibility for ACF front-end forms and field markup.
  Notes:
  - Keep this file small and deletable.
  ========================================================================== */


:where(.acf-form) {
  font-family: var(--font-sans);
  color: var(--color-text);
}

:where(.acf-form) :where(input, textarea, select, button) {
  font: inherit;
}

:where(.acf-form) :where(label) {
  font-weight: var(--weight-semibold);
}

:where(.acf-form) :where(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
}

:where(.acf-form) :where(input, textarea, select):focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

/* ===== compat-events-calendar.css ===== */
/* ==========================================================================
  FTS: compat-events-calendar.css
  Purpose: Compatibility + light normalization for The Events Calendar (TEC).

  Principles:
  - Keep this file minimal. Do not deeply “skin” TEC.
  - Use FTS tokens for typography, color, radii, and focus.
  - Avoid layout changes and avoid hiding theme/navigation elements.
  ========================================================================== */

/* --- Base typography + color --- */
:where(.tribe-events, .tribe-common) {
  font-family: var(--font-sans);
  color: var(--color-text);
}

/* Links inside TEC: follow content-link conventions */
:where(.tribe-events a) {
  color: var(--color-link);
  text-decoration-thickness: var(--fts-link-underline-thickness);
  text-underline-offset: var(--fts-link-underline-offset);
}

:where(.tribe-events a:hover) {
  color: var(--denim);
}

/* Focus ring: consistent across links, buttons, and focusable controls */
:where(
  .tribe-events a:focus-visible,
  .tribe-events button:focus-visible,
  .tribe-events [tabindex]:focus-visible,
  .tribe-common a:focus-visible,
  .tribe-common button:focus-visible,
  .tribe-common [tabindex]:focus-visible
) {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

/* --- Controls: inputs, selects, buttons --- */

:where(.tribe-common) :where(input, select, textarea) {
  font-family: inherit;
  font-size: 1rem;
  color: var(--color-text);
  background: var(--white);
  border: 1px solid var(--cream);
  border-radius: 0;
}

:where(.tribe-common) :where(input::placeholder, textarea::placeholder) {
  color: color-mix(in srgb, var(--color-text) 55%, transparent);
}

/* TEC primary buttons (subscribe, search, etc.) */
:where(.tribe-common) :where(
  .tribe-common-c-btn,
  .tribe-events-c-subscribe-dropdown__button,
  .tribe-events-c-search__button,
  .tribe-common-c-btn-border,
  .tribe-common-c-btn--small
) {
  font-family: inherit;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;

  border-radius: 0;
  border: 2px solid transparent;

  background-color: var(--ocean);
  color: var(--white);

  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

:where(.tribe-common) :where(
  .tribe-common-c-btn,
  .tribe-events-c-subscribe-dropdown__button,
  .tribe-events-c-search__button
):hover {
  background-color: var(--denim);
  color: var(--white);
}

/* Outline-style buttons (often used in top bar / view toggles) */
:where(.tribe-common) :where(
  .tribe-events-c-view-selector__button,
  .tribe-events-c-top-bar__nav,
  .tribe-events-c-top-bar__today-button
) {
  font-family: inherit;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;

  background-color: transparent;
  color: var(--color-text);
  border: 2px solid var(--color-text);
  border-radius: 0;
}

:where(.tribe-common) :where(
  .tribe-events-c-view-selector__button,
  .tribe-events-c-top-bar__nav,
  .tribe-events-c-top-bar__today-button
):hover {
  color: var(--ocean);
  border-color: var(--ocean);
}

:where(.tribe-common) .tribe-events-c-view-selector__button[aria-pressed="true"] {
  background-color: var(--midnight);
  border-color: var(--midnight);
  color: var(--white);
}

/* --- List view: gentle typography alignment (minimal) --- */

:where(.tribe-events-calendar-list__month-separator) {
  font-family: var(--font-sans);
  font-size: 1.125rem;
  letter-spacing: 0.075rem;
  color: var(--midnight);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
}

:where(.tribe-events-calendar-list__month-separator::after) {
  background-color: var(--cream);
}

:where(
  .tribe-event-date-start,
  .tribe-event-date-end,
  .tribe-event-time
) {
  font-size: 1rem;
  color: var(--midnight);
  font-weight: var(--weight-semibold);
}

:where(.tribe-events-calendar-list__event-title a) {
  font-family: var(--font-serif);
  font-size: 1.75rem;
  color: var(--denim);
  font-weight: var(--weight-light);
}

:where(.tribe-events-calendar-list__event-venue) {
  font-weight: var(--weight-bold);
}

:where(.tribe-events-event-image img) {
  border-radius: 0;
}

/* Date tag typography (keep minimal, avoid heavy visual styling) */
:where(.tribe-events-calendar-list__event-date-tag-weekday) {
  font-family: var(--font-sans);
  font-size: 0.725rem;
  font-weight: var(--weight-bold);
  color: var(--midnight);
  background-color: var(--white);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding-top: 4px !important;
}

:where(.tribe-events-calendar-list__event-date-tag-daynum) {
  font-family: var(--font-sans);
  font-size: 0.725rem;
  font-weight: var(--weight-regular);
  color: var(--midnight);
  background-color: var(--white);
  border-radius: 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Search input: keep neutral, token-driven */
:where(.tribe-events-c-search__input-group) {
  margin-bottom: 1rem;
}

:where(#tribe-events-events-bar-keyword) {
  font-family: inherit;
  font-size: 0.875rem;
  padding: 8px 14px;
  background-color: var(--white);
  color: var(--midnight);
  border-radius: 0;
  border: 1px solid var(--cream);
  width: 100%;
}

:where(#tribe-events-events-bar-keyword)::placeholder {
  color: color-mix(in srgb, var(--color-text) 55%, transparent);
  font-style: italic;
}

/* Datepicker toggle: keep readable and consistent */
:where(.tribe-events-c-top-bar__datepicker button) {
  font-family: inherit;
  font-size: 0.875rem;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  font-weight: var(--weight-bold);
  background: transparent;
  color: var(--midnight);
  border-radius: 0;
  border: 0;
  transition: background-color 160ms ease, color 160ms ease;
}

:where(.tribe-events-c-top-bar__datepicker button:hover) {
  background-color: var(--ocean);
  color: var(--white);
}

/* Buttons */
.tribe-common-c-btn {
  background-color: var(--ocean) !important;
  border: none !important;
  border-radius: 0px !important;
  text-transform: uppercase !important;
}

.tribe-common-c-btn-border {
  color: var(--ocean) !important;
  background-color: transparent !important;
  border: 2px solid var(--ocean) !important;
  border-radius: 0px !important;
  text-transform: uppercase !important;
}

.tribe-common-c-btn-border svg {
  color: var(--ocean) !important;
}

.tribe-common-c-btn:hover {
  background-color: var(--sky) !important;
}

.tribe-common-c-btn-border:hover {
  color: var(--sky) !important;
  background-color: transparent !important;
  border: 2px solid var(--sky) !important;
}

.tribe-common-c-btn-border svg:hover {
  color: var(--sky) !important;
}

/* ===== rfi-form.css ===== */
/* ==========================================================================
   RFI Form Styling
   Scope: #fuller-form-app-route only
   ========================================================================== */

   #RFIForm {
    scroll-margin-top: 100px;
  }

/* --- Base container --- */
#fuller-form-app-route {
  display: block;
  width: 100%;
  /* z-index: 9999; */
}


/* --- Inputs + selects --- */
#fuller-form-app-route input,
#fuller-form-app-route select,
#fuller-form-app-route textarea {
  /* background-color: #ffffff; */
  /* background-color: #FAF9F7 !important; */
  background-color: color-mix(in srgb, var(--ivory) 60%, transparent) !important;
  /* border: 1px solid #D6D2C4; */
  border: none !important;
  border-radius: 0px !important;
  padding: 8px 12px;
  width: 100%;
  font-size: 16px;
  box-shadow: none;
}


/* --- MUI native select --- */
#fuller-form-app-route .MuiNativeSelect-select {
  /* background-color: #ffffff !important; */
  /* background-color: #FAF9F7 !important; */
  background-color: color-mix(in srgb, var(--ivory) 60%, transparent) !important;
  /* border: 1px solid #D6D2C4; */
  border: none !important;
  padding: 8px 12px;
  font-size: 16px !important;
  line-height: 1.2;
  box-shadow: none !important;
  border-radius: 0px !important;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}


/* --- MUI underline: off --- */
#fuller-form-app-route .MuiInput-underline::before,
#fuller-form-app-route .MuiInput-underline::after,
#fuller-form-app-route .MuiNativeSelect-select::before,
#fuller-form-app-route .MuiNativeSelect-select::after {
  display: none !important;
}


/* --- Labels --- */
#fuller-form-app-route label {
  font-size: 1rem;
  padding-bottom: 4px !important;
  color: var(--midnight);
}


/* --- Helper + validation text: hidden --- */
#fuller-form-app-route .MuiFormHelperText-root,
#fuller-form-app-route .phone-helper-text,
#fuller-form-app-route .email-helper-text {
  display: none !important;
}


/* --- Legend --- */
#fuller-form-app-route legend {
  font-size: 0.75rem !important;
  font-weight: 400 !important;
  line-height: 1.35em !important;
  color: var(--slate);
  margin-bottom: 10px;
  border: none !important;
}


/* --- Links --- */
#fuller-form-app-route a {
  font-size: 12px;
  font-weight: 600 !important;
  line-height: 1.35em !important;
}


/* --- Checkbox: label --- */
#fuller-form-app-route .MuiFormControlLabel-label {
  display: inline-flex;
  align-items: center;
  font-size: 12px !important;
  white-space: nowrap;
  color: var(--midnight);
}


/* --- Checkbox: wrapper --- */
#fuller-form-app-route .MuiFormControlLabel-root {
  display: flex !important;
  align-items: center !important;
  justify-content: center;
  font-size: 14px !important;
}


/* --- Checkbox: control --- */
#fuller-form-app-route .MuiCheckbox-root {
  margin: 0 !important;
  padding: 0 !important;
  height: 1em;
  width: 1em;
  display: flex !important;
  justify-content: left !important;
  border-radius: 4px;
  color: #888;
}


/* --- Checkbox: icon --- */
#fuller-form-app-route .MuiSvgIcon-root {
  font-size: 1.2em !important;
  line-height: 1 !important;
  margin-right: 10px !important;
  display: block;
}


/* --- Button row: force full width container --- */
#fuller-form-app-route .MuiGrid-root:has(> .MuiButtonBase-root),
#fuller-form-app-route .MuiGrid-root:has(> .MuiGrid-root > .MuiButtonBase-root) {
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
  display: flex !important;
  justify-content: flex-start !important;
  text-align: left !important;
}


/* --- Buttons: base --- */
#fuller-form-app-route .MuiButtonBase-root {
  font-family: var(--font-sans);
  display: inline-block !important;
  width: auto !important;
  margin-left: 0 !important;
  padding: 8px 40px 8px 40px;
  font-size: 0.9375rem !important;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  position: relative;
}


/* --- Buttons: disabled --- */
#fuller-form-app-route .MuiButtonBase-root.Mui-disabled,
#fuller-form-app-route .MuiButtonBase-root:disabled,
#fuller-form-app-route .MuiButtonBase-root[aria-disabled="true"] {
  cursor: not-allowed !important;
  pointer-events: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
  background-color: var(--slate) !important;
  border-color: var(--slate) !important;
  opacity: 0.75;
}


/* --- Buttons: responsive type --- */
@media (min-width: 768px) {
  #fuller-form-app-route .MuiButtonBase-root {
    font-size: 16px;
  }
}

@media (min-width: 1280px) {
  #fuller-form-app-route .MuiButtonBase-root {
    font-size: 18px;
  }
}


/* --- Checkbox: flush-left alignment --- */
#fuller-form-app-route .MuiFormControlLabel-root {
  justify-content: flex-start !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
  width: 100%;
  text-align: left;
}

#fuller-form-app-route .MuiCheckbox-root {
  justify-content: flex-start !important;
  margin-left: 0 !important;
}

#fuller-form-app-route .MuiFormControlLabel-label {
  white-space: normal;
}




/* ==========================================================================
   RFI Thank You Pop Up
   ========================================================================== */


/* --- Modal heading --- */
.MuiDialog-container .MuiDialogTitle-root .MuiTypography-h6 {
  font-size: 30px !important;
  line-height: 1.2 !important;
}


/* --- Modal body copy --- */
.MuiDialog-container .MuiDialogContent-root .secondaryText p {
  font-size: 16px !important;
  line-height: 1.5 !important;
}


/* --- Modal actions: buttons --- */
.MuiDialog-container .MuiDialogActions-root .MuiButtonBase-root {
  font-family: "Noto Sans", serif !important;
  font-size: 13px !important;
  line-height: 1.2em !important;
  font-weight: 600 !important;
  padding: 10px 64px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
}

.MuiDialog-container .MuiDialogActions-root .MuiButtonBase-root:hover {
  font-family: "Noto Sans", serif !important;
  font-size: 13px !important;
  line-height: 1.2em !important;
  font-weight: 600 !important;
  padding: 10px 64px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
}


/* --- Modal: mobile sizing --- */
@media (max-width: 767px) {
  .MuiDialog-container[aria-labelledby="continue-to-application-dialog-title"]
  .MuiDialogContent-root
  .secondaryText
  p {
    font-size: 0.9rem !important;
  }

  .MuiDialog-container[aria-labelledby="continue-to-application-dialog-title"]
  .MuiDialogActions-root
  button.MuiButton-root.MuiButton-sizeMedium {
    width: 100% !important;
    text-align: center !important;
    padding: 12px !important;
  }
}




/* ==========================================================================
   Phone Number Validation
   ========================================================================== */


/* --- Country menu icon: reset --- */
.muiPhone-country-menu-icon {
  background: none !important;
  padding: 0 !important;
}

button.muiPhone-country-menu-icon {
  background: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}


/* --- Phone input: remove background on the entire input area --- */
#fuller-form-app-route .MuiInputBase-root,
#fuller-form-app-route .MuiInputBase-root.MuiInput-root {
  background-color: transparent !important;
  box-shadow: none !important;
}


/* --- Phone input: remove background on adornment wrapper --- */
#fuller-form-app-route .MuiInputAdornment-root {
  background-color: transparent !important;
}


/* --- Country icon button (flag selector) --- */
#fuller-form-app-route .muiPhone-country-menu-icon {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}


/* --- Country icon: kill hover/focus backgrounds --- */
#fuller-form-app-route .muiPhone-country-menu-icon:hover,
#fuller-form-app-route .muiPhone-country-menu-icon:focus,
#fuller-form-app-route .muiPhone-country-menu-icon:active {
  background-color: transparent !important;
  box-shadow: none !important;
}


/* --- Country icon: kill ripple --- */
#fuller-form-app-route .muiPhone-country-menu-icon .MuiTouchRipple-root {
  display: none !important;
}

/* ===== panel-toggle.css ===== */
body:not(.fl-builder-edit) .fts-panel[aria-hidden="true"] { display: none; }

/* ===== a11y.css ===== */
/* ==========================================================================
  FTS: a11y.css
  Purpose:
  - Skip navigation link
  - Focus ring for public UI
  - Content link underline system (hover + keyboard focus)
  - Reduced motion
  - Builder editing exceptions
  ========================================================================== */


/* --------------------------------------------------------------------------
  Skip navigation link
  Visually hidden until focused. Required for WCAG 2.1 AA 2.4.1.
  PHP outputs <a class="fts-skip-nav" href="#content"> as first body element.
  Target #content is the Beaver Builder Theme main content wrapper ID.
  -------------------------------------------------------------------------- */
.fts-skip-nav {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  text-decoration: none;
}

.fts-skip-nav:focus,
.fts-skip-nav:focus-visible {
  position: fixed;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  clip: auto;
  white-space: normal;
  overflow: visible;
  z-index: 999999;

  background: var(--midnight);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: var(--weight-semibold);
  padding: 14px 24px;
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: 0;
}


/* --------------------------------------------------------------------------
  Focus ring for public UI
  -------------------------------------------------------------------------- */
:where(a, button, input, textarea, select, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus {
  outline: none;
}

:where(a, button, input, textarea, select, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

:where(*):focus-visible {
  scroll-margin-top: var(--fts-focus-scroll-offset);
}

@media (forced-colors: active) {
  :where(a, button, input, textarea, select, summary, [role="button"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 2px solid CanvasText !important;
  }
}


/* --------------------------------------------------------------------------
  Reduced motion
  -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}


/* --------------------------------------------------------------------------
  Content link underline: grows from center on hover and keyboard focus.
  This file is the canonical owner of this behavior.
  Excludes component anchors that intentionally use background images
  (.fts-link-card, etc.).
  -------------------------------------------------------------------------- */
:where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card) {
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 50% calc(100% - 0.05em);
  background-size: 0% var(--fts-link-underline-thickness);
  transition: background-size 220ms ease;
}

:where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card):hover,
:where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card):focus-visible {
  background-size: 100% var(--fts-link-underline-thickness) !important;
}

@media (forced-colors: active) {
  :where(main, .entry-content, .fl-builder-content, .fl-rich-text, .fl-module-content)
  a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card) {
    background-image: none;
    text-decoration-line: underline !important;
  }
}

/* Never underline controls */
:where(a.fl-button, .fl-button-wrap a, .fl-button-group a, .fl-module-button a) {
  text-decoration: none;
  background-image: none;
}

:where(nav, footer, .fl-page-nav, .fl-page-footer-wrap, .fl-theme-builder-footer) a {
  text-decoration: none;
  background-image: none;
}


/* --------------------------------------------------------------------------
  BB editor canvas: suppress underline animation and focus rings.
  Editors interact with the canvas differently from end users.
  Components using background-image intentionally (cards, tiles) are
  excluded to preserve their appearance in the editor.
  -------------------------------------------------------------------------- */
:where(body.fl-builder, body.fl-builder-edit, body.fl-builder-preview)
:where(.fl-builder-content, .fl-rich-text, .fl-module-content)
a:not(.fl-button):not(.fts-btn):not([class*="fts-btn"]):not([role="button"]):not(.wp-block-button__link):not(.fts-link-card) {
  background-image: none !important;
  text-decoration: none !important;
}

/* Keep focus rings off in the canvas only */
:where(body.fl-builder, body.fl-builder-edit, body.fl-builder-preview)
:where(.fl-builder-content, .fl-rich-text, .fl-module-content)
:where(a, button, input, textarea, select, summary, [role="button"], [tabindex]) {
  outline: none !important;
  box-shadow: none !important;
}


/* ===== site-skin.css ===== */
/* ==========================================================================
  FTS: site-skin.css (optional)
  Purpose: Site furniture styling (header/nav/footer/site title).
  Notes:
  - Opinionated per site.
  - Keep core design system neutral.
  - Keep specificity low; avoid global overrides.
  ========================================================================== */

  /* ==========================================================================
   Transparent Header Row Overlay
   Purpose:
   - Allow a Beaver Builder ROW (not theme header) to overlay the next row.
   Notes:
   - This is opt-in via #transparentHeaderRow.
   - Make sure the next section has enough top padding so content is not hidden.
   ========================================================================== */

#transparentHeaderRow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
}

/* Ensure there is a positioned ancestor */
.fl-page,
.fl-builder-content {
  position: relative;
}

/* Optional: add spacing to the first real section below it */
#transparentHeaderRow + .fl-row {
  padding-top: 120px; /* adjust to header height */
}

/* ------------------------------------------------------------------------
    Fuller Logo
    ------------------------------------------------------------------------ */

.fuller-logo .fl-html a {
  display: inline-block;
  line-height: 0;
}

.fuller-logo .fl-html svg {
  display: block;
  width: 380px;
  max-width: 100%;
  height: auto !important;
}

.fuller-logo-sm .fl-html a {
  display: inline-block;
  line-height: 0;
}

.fuller-logo-sm .fl-html svg {
  display: block;
  width: 320px;
  max-width: 100%;
  height: auto !important;
}

.fuller-tagline {
  width: 260px;
  height: auto;
}

@media (max-width: 767.98px) {
  .fuller-logo { 
    width: 280px;
    height: auto;
  }

   .fuller-logo-sm {
    width: 260px;
    height: auto;
  }
}

/* ------------------------------------------------------------------------
    Top Menu
    ------------------------------------------------------------------------ */

/* Allow explicit weight utility classes to override defaults. */
#topMenu:where(.fts-weight-light) { font-weight: var(--weight-light); }
#topMenu:where(.fts-weight-regular) { font-weight: var(--weight-regular); }
#topMenu:where(.fts-weight-medium) { font-weight: var(--weight-medium); }
#topMenu:where(.fts-weight-semibold) { font-weight: var(--weight-semibold); }
#topMenu:where(.fts-weight-bold) { font-weight: var(--weight-bold); }

#topMenu a {
  color: var(--white);
  font-size: 0.75rem;
  letter-spacing: 0.075em;
  font-weight: var(--weight-regular) !important;
  text-transform: normal;
  text-decoration: none;
}

#topMenu a:hover {
  color: var(--sky);
}

#topMenu a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

/* ------------------------------------------------------------------------
    Main Menu
    ------------------------------------------------------------------------ */

#mainMenu a {
  color: inherit;
  font-weight: var(--weight-semibold) !important;
  font-size: 1rem;
  letter-spacing: 0.015em;
  text-transform: uppercase;
  text-decoration: none !important;
  cursor: pointer;
}

#mainMenu a:hover {
  color: var(--sky);
}

#mainMenu a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

/* Keep stacking context reasonable. Prefer the smallest z-index that works. */
#mainMenuRow {
  position: relative;
  background: var(--white);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  /* z-index: 20; */
}

/* WordPress menu sub-menu class is broad. Keep this minimal. */
#mainMenu :where(.sub-menu) {
  background-color: #ffffff;
  padding: 10px;
}

/* WordPress menu sub-menu class is broad. Keep this minimal. */
#mainMenu .sub-menu .menu-item a {
  font-size: 0.875rem !important;
  font-weight: var(--weight-medium) !important;
  text-transform: capitalize !important;
  letter-spacing: 0.025em !important;
}

/* ------------------------------------------------------------------------
    Department Menu
    ------------------------------------------------------------------------ */

#deptMenu a {
  color: var(--ivory);
  font-size: 0.875rem;
  font-weight: var(--weight-medium);
  letter-spacing: 0.075rem !important;
  text-transform: uppercase;
  text-decoration: none;
  padding-top: 10px;
  padding-bottom:10px;
  cursor: pointer;
}

#deptMenu a:hover {
  color: var(--sky) !important;
}

#deptMenu a:active {
  color: var(--midnight);
}

#deptMenu a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

#deptMenu {
  position: relative;
}

#deptMenu .fl-menu-mobile-flyout {
  background-color: var(--white);
  padding: 10px !important;
}

#deptMenu .fl-menu-mobile-flyout .menu-item > a {
  color: var(--midnight) !important;
  font-weight: var(--weight-semibold);
  text-align: right;
}

#deptMenu .fl-menu-mobile-flyout .menu-item > a:hover {
  color: var(--sky) !important;
}

/* ------------------------------------------------------------------------
    Footer: list reset
    Prevents themes from applying bullets/margins to footer navigation lists.
    Defined here (front end) rather than fts-bb-ui-fixes.css (editor-only)
    to ensure live site and editor are in sync.
    ------------------------------------------------------------------------ */

.fl-page-footer-wrap .menu,
.fl-page-footer-wrap .menu > ul,
.fl-page-footer-wrap ul.menu,
.fl-page-footer-wrap ul#menu-footer-menu,
.fl-page-footer-wrap ul.fl-menu,
.fl-page-footer-wrap ul.fl-menu-vertical,
.fl-page-footer-wrap ul.fl-menu-horizontal,
.fl-page-footer-wrap ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Safety: kill markers on li in case a theme re-adds them */
.fl-page-footer-wrap li::marker {
  content: "" !important;
}

/* ------------------------------------------------------------------------
    Footer Menu
    ------------------------------------------------------------------------ */

.footer-menu a {
  color: var(--soft-white) !important;
  font-weight: var(--weight-medium) !important;
  font-size: 0.875rem;
  text-transform: uppercase !important;
  line-height: 2;
  letter-spacing: 0.05em;
  text-decoration: none;
  list-style: none !important;
  cursor: pointer;
}

.footer-menu a:hover {
  color: var(--sky) !important;
}

.footer-menu a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

.footer-menu {
  position: relative;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* ------------------------------------------------------------------------
    Site Title
    ------------------------------------------------------------------------ */

#siteTitle {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.1;
  color: var(--white);
  margin: 0;
}

/* Allow explicit weight utility classes to override defaults. */
#siteTitle:where(.fts-weight-light) { font-weight: var(--weight-light); }
#siteTitle:where(.fts-weight-regular) { font-weight: var(--weight-regular); }
#siteTitle:where(.fts-weight-medium) { font-weight: var(--weight-medium); }
#siteTitle:where(.fts-weight-semibold) { font-weight: var(--weight-semibold); }
#siteTitle:where(.fts-weight-bold) { font-weight: var(--weight-bold); }

#siteTitle a {
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
}

#siteTitle a:hover {
  color: var(--sky);
}

#siteTitle a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

@media (max-width: 767.98px) {
  #siteTitle { text-align: center; }
}

/* ------------------------------------------------------------------------
    Department Title
    ------------------------------------------------------------------------ */

#deptTitle {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: clamp(0.9375rem, 1.5vw, 1.125rem);
  letter-spacing: 0.1em;
  text-transform: none;
  text-align: left;
  line-height: 1.1;
  color: var(--white);
  margin: 0;
  padding: 0;
}

/* Allow explicit weight utility classes to override defaults. */
#deptTitle:where(.fts-weight-light) { font-weight: var(--weight-light); }
#deptTitle:where(.fts-weight-regular) { font-weight: var(--weight-regular); }
#deptTitle:where(.fts-weight-medium) { font-weight: var(--weight-medium); }
#deptTitle:where(.fts-weight-semibold) { font-weight: var(--weight-semibold); }
#deptTitle:where(.fts-weight-bold) { font-weight: var(--weight-bold); }

#deptTitle a {
  color: inherit; /* inherits var(--white) from #deptTitle */
  font-weight: inherit;
  text-decoration: none;
}

#deptTitle a:hover {
  color: var(--sky);
}

#deptTitle a:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}

@media (max-width: 767.98px) {
  #deptTitle { text-align: center; }
}

/* Forced colors support: rely on system outlines. */
@media (forced-colors: active) {
  :where(#topMenu a, #mainMenu a, #pageMenu a, #siteTitle a, #deptTitle a):focus-visible {
    outline: 2px solid CanvasText;
    outline-offset: 2px;
  }
}


/* ==========================================================================
   FTS: WordPress Comments
   Purpose: Align default WP comments with Fuller brand system
   ========================================================================== */

.fl-comments-list-title { font-size: 1.5rem !important; }

/* Wrapper */
.comments-area {
  margin-top: 1rem;
  font-family: var(--font-sans);
}

/* Section title */
.comments-area h2,
.comments-area .comments-title {
  font-family: var(--font-serif);
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
  color: var(--midnight);
}

/* Comment list reset */
.comment-list {
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}

/* Individual comment */
.comment {
  margin-bottom: 0;
  padding-bottom: 0;
  /* border-bottom: 1px solid var(--cream); */
}

/* Comment body */
.comment-body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.comment-content {
  background-color: var(--ivory);
  border: none !important;
}

/* Author name */
.comment-author {
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-size: 0.85rem;
  color: var(--ocean);
}

.comment-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.comment-meta:has(img.avatar) {
  padding-left: 0;
}

.comment-avatar img.avatar[src*="gravatar.com"][src*="d=blank"] {
  display: none;
}

.comment-avatar:has(img.avatar[src*="gravatar.com"][src*="d=blank"]) {
  display: none;
}

/* Metadata (date, edit link) */
.comment-metadata {
  display: flex;
  flex-direction: row;
  font-size: 0.8rem;
  color: var(--slate);
}

.comment-metadata a {
  color: var(--slate);
}

.comment-metadata a:hover {
  color: var(--sky);
}

/* Comment text */
.comment-content {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--midnight);
}

/* Reply link */
.reply a {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--ocean);
}

.reply a:hover {
  color: var(--sky);
}

/* Nested comments */
.comment-list .children {
  list-style: none;
  margin-left: 2rem;
  margin-top: 1.5rem;
  padding-left: 0;
  border-left: 2px solid var(--cream);
  padding-left: 1.5rem;
}


/* ==========================================================================
   Comment Form
   ========================================================================== */

.comment-respond {
  margin-top: 3rem;
}

.comment-form label {
  display: block;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  margin-bottom: 0.4rem;
  color: var(--midnight);
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--cream);
  border-radius: 0px !important;
  background: var(--white);
  font-family: var(--font-sans);
  font-size: 1rem;
  transition: border-color 160ms ease;
}

.comment-form input:focus-visible,
.comment-form textarea:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
  border-color: var(--sky);
}

/* Submit button uses Fuller button base */
.comment-form input[type="submit"],
#fl-comment-form-submit {
  margin-top: 1rem;
  background-color: var(--ocean) !important;
  color: var(--white);
  border: 0px solid transparent !important;
  border-radius: 0px !important;
  padding: 10px 30px !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--fts-btn-transition) ease;
}

.comment-form input[type="submit"]:hover {
  background-color: var(--sky);
}

/* ==========================================================================
   FTS Panel Toggle
   Purpose:
   - Panels begin closed on the front end
   - Panels remain visible in Beaver Builder editing contexts
   ========================================================================== */

body:not(.fl-builder):not(.fl-builder-edit):not(.fl-builder-preview) .fts-panel {
  display: none;
}

.eyebrow {
  color: var(--midnight) !important;
  font-family: var(--font-sans);
  font-weight: var(--weight-semibold) !important;
  font-size: 1.125rem !important;
  letter-spacing: 0.015em;
  line-height: 1.2;
  text-transform: uppercase;
  margin: 0;
  /* margin-bottom: 0.125rem !important; */
}

/* ===== overrides.css ===== */
/* ==========================================================================
   FTS: overrides.css (optional)
   Purpose: Last-loaded escape hatch for urgent production overrides.
   Rules:
   - Must include a comment with a ticket URL or reason and date.
   - Should be emptied regularly.
   ========================================================================== */

/* Example:
@layer fts.overrides {
  .some-selector { ... }
}
*/

