/* Theme base styles */

/* Tools
Any animations, or functions used throughout the project.
Note: _macros.css needs to be imported into each stylesheet where macros are used and not included here
*/

/* Generic
This is where reset, normalize & box-sizing styles go.
*/


*, *:before, *:after {
  box-sizing: border-box;
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct box sizing in Firefox.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Remove the inheritance of text transform in Edge and Firefox.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
 */

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}



/* Utilities
Helper classes with ability to override anything that comes before it
*/

/* For content that needs to be visually hidden but stay visible for screenreaders */

.show-for-sr {
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

@media (max-width: 767px) {
  .show-for-sr--mobile {
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }
}

.fw-section { 
  width: calc(100vw);
  margin-left: 50%;
  transform: translateX(-50%);
  border: none; 
}

    /* ── Brand tokens ─────────────────────────────────────────────── */
    :root {
      --sd-primary:    #163034;
      --sd-primary-fg: #F6F2E9;
      --sd-background: #FBF9F5;
      --sd-foreground: #173039;
      --sd-card:       #FFFFFF;
      --sd-secondary:  #DCE4EA;
      --sd-muted-fg:   #586E7A;
      --sd-accent:     #D6AE63;
      --sd-accent-dk:  #B89149;
      --sd-border:     #D5DDE2;

      --bs-primary:        #163034;
      --bs-primary-rgb:    22, 48, 52;
      --bs-body-bg:        var(--sd-background);
      --bs-body-color:     var(--sd-foreground);
      --bs-body-font-family: 'Source Sans 3', -apple-system, BlinkMacSystemFont, sans-serif;
      --bs-border-color:   var(--sd-border);
      --bs-link-color:     var(--sd-accent);
      --bs-link-hover-color: var(--sd-accent-dk);
    }

    /* ── Typography ──────────────────────────────────────────────── */
    h1, h2, h3, h4, h5, h6, .sd-serif {
      font-family: 'DM Serif Display', 'Times New Roman', serif;
      font-weight: 400;
      letter-spacing: 0;
    }
    .text-accent      { color: var(--sd-accent) !important; }
    .text-muted-2     { color: var(--sd-muted-fg) !important; }
    .bg-accent        { background-color: var(--sd-accent) !important; color: #fff; }
    .bg-accent-soft   { background-color: rgba(214, 174, 99, 0.10) !important; }
    .bg-secondary-2   { background-color: rgba(220, 228, 234, 0.4) !important; }
    .bg-primary-2     { background-color: var(--sd-primary) !important; color: var(--sd-primary-fg); }
    .text-primary-fg  { color: var(--sd-primary-fg) !important; }
    .text-primary-fg-60 { color: rgba(246, 242, 233, 0.6) !important; }
    .border-accent    { border-color: var(--sd-accent) !important; }
    .eyebrow {
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--sd-accent);
    }

    html,
    body,
    .body-wrapper,
    [data-global-resource-path] {
      overflow: visible !important;
    }
    /* Push everything below the navbar so it doesn't get tucked under */
    #main-content { margin-top: 25px; }
    @media (min-width: 768px) {
      #main-content { margin-top: 50px; }
    }

    /* Anchor jumps land below the navbar instead of underneath */
    html { scroll-margin-top: 80px; }

   /* ── Navbar ─────────────────────────────────────────────────── */
    .sd-navbar {
      position: fixed !important;
      top: 0; left: 0; right: 0;
      width: 100%;
    }
    .sd-navbar {
      background: rgba(251, 249, 245, 0.95);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-bottom: 1px solid rgba(213, 221, 226, 0.5);
      padding: 0;                /* Bootstrap default adds vertical padding; we use height instead */
    }
    .sd-navbar > .container,
    .sd-navbar > .container-fluid {
      max-width: 1280px;
      min-height: 64px;
    }
    @media (min-width: 768px) {
      .sd-navbar > .container,
      .sd-navbar > .container-fluid { min-height: 80px; }
    }

    .sd-navbar .navbar-brand img { height: 32px; width: auto; }
    @media (min-width: 768px) {
      .sd-navbar .navbar-brand img { height: 40px; }
    }

    .sd-navbar .nav-link {
      color: var(--sd-muted-fg);
      font-size: 14px;
      font-weight: 500;
      padding: 0.5rem 0;
      margin: 0 1rem;
      transition: color 0.15s ease;
    }
    .sd-navbar .nav-link:hover,
    .sd-navbar .nav-link:focus { color: var(--sd-foreground); }

    /* Brand buttons — match the offering page btn-primary override */
    .sd-navbar .btn-primary {
      --bs-btn-color:        var(--sd-primary-fg);
      --bs-btn-bg:           var(--sd-primary);
      --bs-btn-border-color: var(--sd-primary);
      --bs-btn-hover-color:  var(--sd-primary-fg);
      --bs-btn-hover-bg:     #0F2326;
      --bs-btn-hover-border-color: #0F2326;
      --bs-btn-active-color: var(--sd-primary-fg);
      --bs-btn-active-bg:    #0F2326;
      --bs-btn-active-border-color: #0F2326;
      --bs-btn-focus-shadow-rgb: 22, 48, 52;
    }
    .sd-navbar .btn-ghost {
      color: var(--sd-foreground);
      background: transparent;
      border: 0;
      font-weight: 600;
      font-size: 14px;
    }
    .sd-navbar .btn-ghost:hover {
      background: rgba(220, 228, 234, 0.5);
      color: var(--sd-foreground);
    }

    /* Mobile menu: tighter spacing + brand styling when collapsed */
    .menu--mobile,
    .menu--ltn-mobile,
    .ltn__mobile-menu,
    .ltn__utilize-menu,
    [class*="--mobile-menu"],
    [class*="mobile-menu-wrap"] {
      display: none !important;
    }
    @media (max-width: 991.98px) {
      .sd-navbar .navbar-collapse {
        padding-top: 0.5rem;
        padding-bottom: 1rem;
        border-top: 1px solid var(--sd-border);
        margin-top: 0.5rem;
      }
      .sd-navbar .nav-link {
        margin: 0;
        padding: 0.6rem 0;
        font-size: 16px;
        color: var(--sd-foreground);
      }
      .sd-navbar .navbar-actions {
        display: flex; flex-direction: column;
        gap: 0.5rem; padding-top: 0.75rem;
      }
      .sd-navbar .navbar-actions .btn {
        width: 100%;
      }
    }
    #hs_cos_wrapper_navigation-primary > nav.menu:not(.menu--desktop),
    .sd-navbar nav.menu--mobile {
      display: none !important;
      visibility: hidden !important;
      height: 0 !important;
      overflow: hidden !important;
    }
    /* Button Override */

    .btn-primary {
      --bs-btn-color: #F6F2E9;
      --bs-btn-bg: #163034;            /* Steadfast deep teal */
      --bs-btn-border-color: #163034;
      --bs-btn-hover-color: #F6F2E9;
      --bs-btn-hover-bg: #0F2326;      /* darker on hover */
      --bs-btn-hover-border-color: #0F2326;
      --bs-btn-focus-shadow-rgb: 22, 48, 52;
      --bs-btn-active-color: #F6F2E9;
      --bs-btn-active-bg: #0F2326;
      --bs-btn-active-border-color: #0F2326;
      --bs-btn-disabled-color: #F6F2E9;
      --bs-btn-disabled-bg: #163034;
      --bs-btn-disabled-border-color: #163034;
    }

    .btn-outline-secondary {
      --bs-btn-color: #173039;
      --bs-btn-border-color: #D5DDE2;
      --bs-btn-hover-color: #173039;
      --bs-btn-hover-bg: rgba(220, 228, 234, 0.45);
      --bs-btn-hover-border-color: #D5DDE2;
      --bs-btn-active-color: #173039;
      --bs-btn-active-bg: rgba(220, 228, 234, 0.6);
      --bs-btn-active-border-color: #D5DDE2;
      --bs-btn-focus-shadow-rgb: 22, 48, 52;
    }
   

    /* Misc */
    .btn-accent {
      background: var(--sd-accent); color: #fff;
      font-weight: 600; border: 0;
    }
    .btn-accent:hover { background: var(--sd-accent-dk); color: #fff; }
    .btn-outline-accent {
      color: var(--sd-accent); border: 1px solid rgba(214, 174, 99, 0.3);
      background: transparent; font-weight: 600;
    }
    .btn-outline-accent:hover {
      background: rgba(214, 174, 99, 0.1); color: var(--sd-accent);
    }
    .blockquote-accent {
      border-left: 4px solid var(--sd-accent);
      padding: 4px 0 4px 20px;
    }
    .blockquote-accent p {
      font-family: 'DM Serif Display', serif;
      font-size: 20px; font-style: italic;
      line-height: 1.4; margin: 0 0 8px;
    }

    /* Tab content reveal */
    .tab-pane { display: none; }
    .tab-pane.show { display: block; }