/** Shopify CDN: Minification failed

Line 22:4 Unexpected "{"
Line 22:5 Expected identifier but found "%"
Line 22:82 Expected identifier but found "%"
Line 25:4 Unexpected "{"
Line 25:5 Expected identifier but found "%"
Line 25:69 Expected identifier but found "%"
Line 29:4 Unexpected "{"
Line 29:5 Expected identifier but found "%"
Line 29:64 Expected identifier but found "%"
Line 34:2 Unexpected "{"
... and 62 more hidden warnings

**/
/* START_SECTION:header (INDEX:25) */
shopify-account {
    font-size: inherit;
    --shopify-account-signed-in-avatar-size: 20px;
    --shopify-account-avatar-size: 20px;

    {% comment %} Used when user had a profile picture set in their Shop account {% endcomment %}
    --shop-brand-color: #000000;

    {% comment %} Used when logged in user has no img profile photo {% endcomment %}
    --shopify-account-signed-in-avatar-color-background: var(--text);
    --shopify-account-signed-in-avatar-color-text: var(--bg);

    {% comment %} Heading is just a bold instance of body font {% endcomment %}
    --shopify-account-font-heading: var(--FONT-STACK-HEADING);
    --shopify-account-font-body: var(--FONT-STACK-BODY);
  }

  {% comment %} Reset header account button styles {% endcomment %}
  shopify-account::part(signed-out-avatar) {
    min-width: auto;
    min-height: auto;
    font-size: inherit;
  }

  {% comment %} Fortiva Safe — two-row desktop header: logo + search + contact/icons on top, menu below.
  Uses CSS Grid so the nav row (row 2, column 2) lines up exactly under the search
  column (row 1, column 2) at every viewport width. {% endcomment %}
  .theme__header {
    background-color: #000000 !important;
    position: relative;
    z-index: 60;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  {% comment %}
    Structural fix — both header rows (logo/search/actions on top, nav below) must
    live in normal, static document flow as ONE block, so the nav row's height is
    genuinely part of the <header> element's own height (not just visually placed
    under it). The base theme CSS applies position:absolute to .header__desktop for
    some header styles (e.g. to center a menu independently of the logo/cart), which
    would pull our nav row out of flow — it would still render in the right visual
    spot, but would stop counting toward the header's real height. That is what made
    the Theme Editor's "Header" selection box stop after row 1, and it is also what
    would let the nav sit on top of / depend on whatever section follows (the Hero
    image banner today, page content if the Hero is removed). Forcing static
    positioning here removes that dependency entirely — the header becomes fully
    self-contained regardless of what section comes after it, or whether one exists
    at all. This is a layout-flow fix, not visual spacing: no margins, no absolute
    positioning, no fixed heights are used to compensate.
  {% endcomment %}
  .header__wrapper,
  .header__inner,
  .header__desktop,
  .fs-header-desktop--two-row,
  .fs-header-row-top,
  .fs-header-row-bottom {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    float: none !important;
  }

  .header__wrapper,
  .header__inner {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  {% comment %}
    Structural fix (part 2) — .header__backfill is a spacer the theme uses to hold
    open the header's height when the header itself is taken out of flow (sticky /
    fixed scroll behavior), so page content doesn't jump underneath it. Its height
    is set by theme JS to match the header's real rendered height. Now that the
    nav row correctly counts toward that height (see fix above), the JS-measured
    value grew to match — but on this header's "Default" (static) scroll behavior
    the header was never taken out of flow to begin with, so that reserved space
    is pure duplication: it was rendering as a large blank block between the nav
    row and the next section. Collapsing it only for the static case (matched via
    the real data-header-sticky attribute already output on the wrapper) removes
    exactly that duplicate space; if sticky/directional scrolling is ever turned
    on for this header, this selector stops matching and the spacer works again.
  {% endcomment %}
  .header__wrapper[data-header-sticky="static"] ~ .header__backfill {
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .fs-header-desktop--two-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 28px;
    row-gap: 4px;
    width: 100%;
    background-color: #000000 !important;
  }

  {% comment %} display:contents lets the logo/search/right children become direct
  grid items of .fs-header-desktop--two-row, without an extra flex row breaking the
  shared column alignment with the nav row underneath. {% endcomment %}
  .fs-header-row-top {
    display: contents;
  }

  .fs-header-row-top__logo {
    grid-column: 1;
    grid-row: 1;
    padding: 12px 0;
  }

  .fs-header-row-top__search {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 24px;
    padding: 12px 0;
  }

  .fs-header-row-top__right {
    grid-column: 3;
    grid-row: 1;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 12px 0;
  }

  {% comment %}
    Fortiva Safe — the nav row now spans the full header width (column 1
    through column 3) instead of just the search column, so the menu starts
    flush under the logo. The primary links stay packed on the left; "Contact
    Us" is pushed to the far right via .header__menu-push-right-marker below
    (its own display:contents wrapper carries a margin-left:auto so it lands
    at the right edge, roughly under Account/Cart).
  {% endcomment %}
  .fs-header-row-bottom {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    justify-content: flex-start;
    border: 0;
    padding: 4px 0 10px;
  }

  .fs-header-row-bottom .header__menu {
    flex: 1 1 auto;
    width: 100%;
    position: relative;
  }

  .fs-header-row-bottom .header__menu__inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
  }

  .header__menu-push-right-marker {
    display: contents;
  }

  .header__menu-push-right-marker > .menu__item {
    margin-left: auto;
  }

  {% comment %} Larger main menu labels (Gun Safes / Home Safes / Vault Doors / Business Safes / Contact) {% endcomment %}
  .fs-header-row-bottom .navtext {
    font-size: 16px !important;
  }

  {% comment %} Positioning wrapper for the search bar + predictive search dropdown.
  Kept separate from .fs-header-search itself (which needs overflow:hidden for its
  own rounded corners) so the dropdown is never clipped. {% endcomment %}
  .fs-header-search-wrap {
    position: relative;
    width: 100%;
    max-width: 560px;
    flex: 1 1 auto;
    min-width: 0;
  }

  {% comment %} Short, thin, integrated search bar (not a boxy square field) {% endcomment %}
  .fs-header-search {
    display: flex;
    align-items: stretch;
    width: 100%;
    max-width: 560px;
    background: var(--FS-SEARCH-FIELD-BG);
    border: 1px solid var(--FS-SEARCH-ROW-BORDER);
    border-radius: 6px;
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
  }

  .fs-header-search:focus-within {
    border-color: var(--FS-SEARCH-ACCENT);
    box-shadow: 0 0 0 3px rgba(200, 148, 69, 0.25);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--FS-SEARCH-ACCENT) 25%, transparent);
  }

  .fs-header-search__input {
    flex: 1 1 auto;
    min-width: 0;
    box-sizing: border-box !important;
    border: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    background: transparent !important;
    padding: 9px 18px;
    font-family: var(--FONT-STACK-BODY, inherit);
    font-size: 14px;
    line-height: 1.4;
    color: #000000 !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  .fs-header-search__input::placeholder {
    color: var(--FS-SEARCH-PLACEHOLDER) !important;
    opacity: 1;
  }

  .fs-header-search__input::-webkit-search-cancel-button,
  .fs-header-search__input::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
  }

  .fs-header-search__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box !important;
    border: 0 !important;
    border-width: 0 !important;
    border-left: 0 !important;
    border-style: none !important;
    outline: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    margin-left: -1px !important;
    cursor: pointer;
    background: var(--FS-SEARCH-ACCENT) !important;
    background-image: none !important;
    color: var(--FS-SEARCH-ACCENT-TEXT);
    padding: 0 18px;
    font-family: var(--FONT-STACK-BODY, inherit);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background-color 0.2s ease;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  .fs-header-search__submit:hover,
  .fs-header-search__submit:focus-visible {
    background: var(--FS-SEARCH-ACCENT-HOVER);
  }

  .fs-header-search__submit svg,
  .fs-header-search__submit img {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
  }

  .fs-header-search__submit .icon-theme {
    stroke: currentColor;
  }

  {% comment %} Predictive search dropdown — appears under the search bar, matches its width {% endcomment %}
  .fs-predictive {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 100%;
    background: var(--FS-SEARCH-FIELD-BG, #F4F1EB);
    color: #1A1A1A;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
    z-index: 9999;
    overflow: hidden;
    font-family: var(--FONT-STACK-BODY, inherit);
  }

  .fs-predictive[hidden] {
    display: none;
  }

  .fs-predictive__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-height: 70vh;
    overflow-y: auto;
  }

  .fs-predictive__col {
    padding: 16px;
    min-width: 0;
  }

  .fs-predictive__col--suggestions {
    border-right: 1px solid rgba(0, 0, 0, 0.08);
  }

  .fs-predictive__col-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--FS-SEARCH-ACCENT, #C89445);
    margin: 0 0 10px;
  }

  .fs-predictive__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .fs-predictive__suggestion {
    display: block;
    padding: 8px 10px;
    margin: 0 -10px;
    border-radius: 6px;
    color: #1A1A1A;
    text-decoration: none;
    font-size: 13px;
    transition: background-color 0.15s ease;
  }

  .fs-predictive__suggestion:hover,
  .fs-predictive__suggestion:focus-visible {
    background: rgba(200, 148, 69, 0.14);
  }

  .fs-predictive__suggestion b {
    color: var(--FS-SEARCH-ACCENT, #C89445);
    font-weight: 700;
  }

  .fs-predictive__list--products {
    gap: 6px;
  }

  .fs-predictive__product {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    margin: 0 -8px;
    border-radius: 8px;
    text-decoration: none;
    color: #1A1A1A;
    transition: background-color 0.15s ease;
  }

  .fs-predictive__product:hover,
  .fs-predictive__product:focus-visible {
    background: rgba(200, 148, 69, 0.14);
  }

  .fs-predictive__product-image {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.06);
  }

  .fs-predictive__product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .fs-predictive__product-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }

  .fs-predictive__product-vendor {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6F6F6F;
  }

  .fs-predictive__product-title {
    font-size: 12.5px;
    font-weight: 600;
    color: #1A1A1A;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  .fs-predictive__product-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 12.5px;
  }

  .fs-predictive__price {
    font-weight: 700;
    color: #1A1A1A;
  }

  .fs-predictive__compare-price {
    text-decoration: line-through;
    color: #6F6F6F;
    font-size: 11px;
  }

  .fs-predictive__empty {
    font-size: 12px;
    color: #6F6F6F;
    margin: 0;
  }

  .fs-predictive__viewall {
    display: block;
    text-align: center;
    padding: 12px 16px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--FS-SEARCH-ACCENT-TEXT, #0D0D0D);
    background: var(--FS-SEARCH-ACCENT, #C89445);
    text-decoration: none;
    transition: background-color 0.15s ease;
  }

  .fs-predictive__viewall:hover {
    background: var(--FS-SEARCH-ACCENT-HOVER);
  }

  @media only screen and (max-width: 700px) {
    .fs-predictive__inner {
      grid-template-columns: 1fr;
      max-height: 60vh;
    }

    .fs-predictive__col--suggestions {
      border-right: 0;
      border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }
  }

  {% comment %} Contact block: icon circle + phone / email / hours {% endcomment %}
  .fs-header-contact {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
  }

  .fs-header-contact__avatar {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--FS-SEARCH-ACCENT);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--FS-SEARCH-ACCENT);
  }

  .fs-header-contact__avatar svg {
    width: 18px;
    height: 18px;
  }

  .fs-header-contact__info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    line-height: 1.3;
  }

  .fs-header-contact__phone,
  .fs-header-contact__email {
    color: var(--FS-SEARCH-ACCENT);
    font-family: var(--FONT-STACK-BODY, inherit);
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
  }

  .fs-header-contact__phone:hover,
  .fs-header-contact__email:hover {
    text-decoration: underline;
  }

  .fs-header-contact__hours {
    color: var(--FS-HEADER-TEXT);
    font-family: var(--FONT-STACK-BODY, inherit);
    font-size: 12px;
  }

  {% comment %} Compact account / cart icon actions {% endcomment %}
  .fs-header-actions {
    display: flex;
    align-items: center;
    gap: 18px;
  }

  .fs-header-action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    color: var(--FS-HEADER-TEXT);
    text-decoration: none;
  }

  .fs-header-action svg {
    width: 19px;
    height: 19px;
  }

  .fs-header-action__label {
    font-family: var(--FONT-STACK-BODY, inherit);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  @media only screen and (max-width: 1150px) {
    .fs-header-contact__info {
      display: none;
    }
  }

  @media only screen and (max-width: 1024px) {
    .fs-header-desktop--two-row {
      column-gap: 20px;
    }

    .fs-header-search {
      max-width: 100%;
    }
  }

  {% comment %} Fortiva Safe — trust bar (Free Shipping / Manufacturer
  Warranty) strip under the header. Full-bleed gold background matching
  the site's accent color, centered content, small stroke icons in the
  same dark text color used on the primary button so it reads as one
  consistent brand system. {% endcomment %}
  .fs-promo-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 100%;
    background: var(--FS-SEARCH-ACCENT, #C89445);
    padding: 9px 16px;
  }

  .fs-promo-bar__item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--FS-SEARCH-ACCENT-TEXT, #0D0D0D);
    font-family: var(--FONT-STACK-BODY, inherit);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .fs-promo-bar__item svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
  }

  .fs-promo-bar__divider {
    width: 1px;
    height: 14px;
    background: var(--FS-SEARCH-ACCENT-TEXT, #0D0D0D);
    opacity: 0.35;
    flex: 0 0 auto;
  }

  @media only screen and (max-width: 480px) {
    .fs-promo-bar {
      gap: 10px;
      padding: 8px 12px;
    }

    .fs-promo-bar__item {
      font-size: 10.5px;
      gap: 6px;
    }
  }
/* END_SECTION:header */
/* START_SNIPPET:nav-item (INDEX:253) */
/* Fortiva Safe — small dropdown-indicator chevron next to top-level menu
     items that expand (e.g. "Info"), added 2026-09-23 at the user's request.
     Inherits the link's own text color so it matches Gun Safes/Home Safes/etc. */
  .navlink__chevron {
    display: inline-flex;
    align-items: center;
    margin-left: 5px;
    vertical-align: middle;
  }

  .navlink__chevron svg {
    width: 10px;
    height: 10px;
    stroke: currentColor;
  }
/* END_SNIPPET:nav-item */
