/* brand.css - Freedom Concepts (theme-default brand slot). GENERATED by scripts/gen-brand.py from
 * layers/freedomconcepts-brand/brand.tokens.json and freedomconcepts.css. Edit those, then re-run. */

/* The sentinel. Inert: nothing in a Swift document carries the attribute. */
[data-td-block="brand"] { --td-block: brand; }

/* 1. Brand tokens */
:root:root {
  --td-ink: #071D35;
  --td-ink-soft: #153C66;
  --td-slate: #3D3D3D;
  --td-slate-mid: #6D6E71;
  --td-slate-light: #C9D3DE;
  --td-grey-light: #F0F1F1;
  --td-hairline: #E1E5EA;
  --td-white: #FFFFFF;
  --td-accent: #016EAA;
  --td-accent-soft: rgba(1, 110, 170, .08);
  --td-radius: 12px;
  --td-radius-sm: 8px;
  --td-shadow-soft: 0 1px 2px rgba(7, 29, 53, .06), 0 12px 28px -14px rgba(7, 29, 53, .25);
  --td-logo-h: 3.25rem;
  --td-logo-w-phone: 96px;
  --td-logo-w-laptop: 120px;
  --td-hero-max-h: 72vh;
}

/* 2. Brand-only component rules */
/* ==== Freedom Concepts brand rules (P3). Generated into Custom/brand.css by scripts/gen-brand.py ====
 * Loaded after default_custom.css (theme-default brand slot), so a tie wins without !important.
 * Palette: navy #071D35, heading navy #153C66, blue #00568F, link #016EAA, orange #F58220, ink #3D3D3D. */

/* Headings in the brand heading navy on the light schemes; body links in the brand link blue. */
[data-dw-colorscheme="light"] :is(h1, h2, h3, h4, h5, h6, .dw-h1, .dw-h2, .dw-h3, .dw-h4, .dw-h5, .dw-h6),
[data-dw-colorscheme="lightgrey1"] :is(h1, h2, h3, h4, h5, h6, .dw-h1, .dw-h2, .dw-h3, .dw-h4, .dw-h5, .dw-h6),
[data-dw-colorscheme="lightgrey2"] :is(h1, h2, h3, h4, h5, h6, .dw-h1, .dw-h2, .dw-h3, .dw-h4, .dw-h5, .dw-h6) {
  color: #153C66;
}
main [data-swift-text] a:not([data-dw-button]):not(.btn) { color: #016EAA; }
main [data-dw-colorscheme="dark"] [data-swift-text] a:not([data-dw-button]):not(.btn),
main [data-dw-colorscheme="darksubtle"] [data-swift-text] a:not([data-dw-button]):not(.btn),
main [data-dw-colorscheme="primary"] [data-swift-text] a:not([data-dw-button]):not(.btn) { color: #FFFFFF; text-decoration: underline; }

/* Kicker above section headings: brand orange on dark grounds, link blue on light. */
.fc-kicker { display: block; font-family: Poppins, sans-serif; font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #016EAA; margin-bottom: .5rem; }
[data-dw-colorscheme="dark"] .fc-kicker, [data-dw-colorscheme="darksubtle"] .fc-kicker, [data-swift-poster] .fc-kicker { color: #F89532; }

/* Filled-button hover: theme-default darkens to --td-ink-soft; keep the brand pair instead. */
[data-dw-button="primary"]:hover { filter: brightness(1.08); }
[data-dw-button="secondary"]:hover { background-color: #F89532 !important; border-color: #F89532 !important; color: #071D35 !important; }

/* White outline buttons on dark grounds and on the poster photo. */
:is([data-dw-colorscheme="dark"], [data-dw-colorscheme="darksubtle"], [data-dw-colorscheme="primary"], [data-swift-poster]) .btn-outline-primary {
  --bs-btn-color: #fff; --bs-btn-border-color: #fff; --bs-btn-hover-color: #071D35; --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff;
  color: #fff; border-color: #fff; background: transparent;
}
:is([data-dw-colorscheme="dark"], [data-dw-colorscheme="darksubtle"], [data-dw-colorscheme="primary"], [data-swift-poster]) .btn-outline-primary:hover {
  color: #071D35; background-color: #fff;
}

/* Home hero: the photo carries white text; a navy gradient from the left keeps it legible at every width. */
[data-swift-poster] figure::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(7, 29, 53, .82) 0%, rgba(7, 29, 53, .55) 45%, rgba(7, 29, 53, 0) 80%);
}
[data-swift-poster] [data-swift-text], [data-swift-poster] [data-swift-text] :is(h1, h2, h3, p, .dw-h1, .dw-h2) { color: #fff; }
@media (max-width: 767.98px) {
  [data-swift-poster] figure::after { background: linear-gradient(180deg, rgba(7, 29, 53, .35) 0%, rgba(7, 29, 53, .85) 100%); }
  [data-swift-poster][data-swift-poster-height="4"] { min-height: 64vh !important; max-height: 78vh; }
}

/* Product-line tiles (Swift-v2_Card, CardImageTop) */
main .card { border-radius: 12px; overflow: hidden; border: 1px solid #E1E5EA; box-shadow: var(--td-shadow-soft); height: 100%; }
main .card img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Testimonial band (Swift-v2_Blockquote on navy) */
[data-dw-itemtype="swift-v2_blockquote"] blockquote, [data-dw-itemtype="swift-v2_blockquote"] figure { font-size: 1.25rem; }

/* Header: brand top bar (paragraph class .fc-topbar) and logo size */
.fc-topbar { font-size: .875rem; font-weight: 600; letter-spacing: .01em; text-align: center; margin: 0; }
.fc-topbar a { color: inherit !important; text-decoration: none; white-space: nowrap; }
.fc-topbar a:hover { text-decoration: underline; }
header [data-swift-logo-image] img, [data-swift-page-header] [data-swift-logo-image] img { max-height: 3.25rem; }
@media (max-width: 767.98px) {
  header [data-swift-logo-image] img, [data-swift-page-header] [data-swift-logo-image] img { max-height: 2.5rem; }
  .fc-topbar { font-size: .8rem; }
}

/* Footer: logo on a white chip so the blue outline reads on navy */
footer [data-swift-logo-image] img, [data-swift-page-footer] [data-swift-logo-image] img {
  background: #fff; border-radius: 10px; padding: .4rem .6rem; max-height: 4.5rem;
}

/* Headings on the dark schemes read white (theme-default paints headings in --td-ink, which is the brand navy). */
:is([data-dw-colorscheme="dark"], [data-dw-colorscheme="darksubtle"], [data-dw-colorscheme="primary"]) :is(h1, h2, h3, h4, h5, h6, .dw-h1, .dw-h2, .dw-h3, .dw-h4, .dw-h5, .dw-h6) {
  color: #FFFFFF;
}
[data-dw-colorscheme="secondary"] :is(h1, h2, h3, h4, h5, h6, .dw-h1, .dw-h2, .dw-h3, .dw-h4, .dw-h5, .dw-h6) { color: #071D35; }

/* Kicker and stat figures per ground */
[data-dw-colorscheme="primary"] .fc-kicker { color: #FFFFFF; opacity: .9; }
:is([data-dw-colorscheme="light"], [data-dw-colorscheme="lightgrey1"], [data-dw-colorscheme="lightgrey2"]) [data-swift-text] p.dw-h2 { color: #153C66; }

/* Top bar row: compact band */
section:has(.fc-topbar) { padding-block: .35rem !important; }
section:has(.fc-topbar) [data-swift-container] { justify-content: center; }

/* Phones: an intro band that stacks text over its photo stays within one screen - the photo is cropped, not shrunk. */
@media (max-width: 767.98px) {
  main > section:first-of-type [data-dw-itemtype="swift-v2_image"] img { max-height: 34vh; width: 100%; object-fit: cover; }
  main [data-dw-itemtype="swift-v2_image"] img { max-height: 48vh; width: 100%; object-fit: cover; }
}
@media (max-width: 767.98px) {
  main > section[data-dw-row-space-top="6"] { padding-top: 3rem !important; }
  main > section[data-dw-row-space-bottom="6"] { padding-bottom: 3rem !important; }
}
/* Phones: image-left cards stack (image above text) instead of squeezing the text into half the width. */
@media (max-width: 767.98px) {
  main .card.grid-2 { display: block !important; }
  main .card.grid-2 img.card-img { height: auto !important; aspect-ratio: 16 / 9; border-radius: 12px 12px 0 0 !important; }
}

/* Product detail: buy-box rows whose paragraph renders nothing for this viewer (price table, variant selector on a
   product without variants, add-to-cart and documents for anonymous visitors) collapse instead of leaving their row
   spacing behind. A row counts as empty when none of its grid columns holds an element. */
main section[data-swift-gridrow]:not(:has([data-swift-gridcolumn] *)) { display: none !important; }
/* Related products: the list arrives from service page 8514 wrapped in that page's own row, whose 96px row spacing
   doubled the gap around the table. Drop it; the product-detail row supplies the spacing. */
[id^="RelatedProductsListContainer_"] > section { padding-top: 0 !important; padding-bottom: 0 !important; }
[id^="RelatedProductsListContainer_"] > section > .grid { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Price-lock action ("Sign in for account pricing") on the PDP buy box: the outline button's hover state painted
   #016EAA text on its own 8% tint, 4.41:1 (demo gate design leg, hover-contrast, run 20260924-202202). Hover and
   focus now use the button blue #00568F, 5.9:1 on the same tint. */
.td-price-lock__action.btn:hover,
.td-price-lock__action.btn:focus-visible {
  color: #00568F !important;
  border-color: #00568F !important;
}
