/* ===========================
   Child stylesheet - no Sass
   =========================== */

:root{
  --bs-primary:#004daa;
  --bs-secondary:#393939;
  --bs-warning:#f28800;
  --bs-light:#ffffff;
  --bs-pale:#ededed;
  --bs-dark:#393939;
  --bs-midgrey:#676869;
  --bs-deepblue:#0a356a;
  --bs-red:#d60a0a;
  --bs-green:#00822b;

  --bs-body-bg:#ffffff;
  --bs-body-color:#212529;

  --bs-link-color:var(--bs-primary);
  --bs-link-hover-color:#003a82;

  --bs-navbar-color:#495057;
  --bs-navbar-hover-color:var(--bs-primary);
  --bs-navbar-disabled-color:rgba(33,37,41,.5);
  --bs-navbar-active-color:var(--bs-primary);
  --bs-navbar-brand-color:var(--bs-primary);
  --bs-navbar-toggler-border-color:rgba(0,0,0,.12);

  --bs-form-invalid-color:var(--bs-warning);
  --bs-form-invalid-border-color:var(--bs-warning);

  .form-control.is-invalid, .was-validated .form-control:invalid {
    border-color: var(--bs-form-invalid-border-color);
    padding-right: calc(1.5em + .75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23f28800'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f28800' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(.375em + .1875rem) center;
    background-size: calc(.75em + .375rem) calc(.75em + .375rem);
}

  --sticky-offset:110px;

  --mega-media-h:200px;
  --about-lite-w:560px;

  /* Use Plus Jakarta Sans sitewide */
  --bs-font-sans-serif: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* Rhythm */
html{font-size:17px;}
:root{--section-y:3rem;}
section{padding-top:var(--section-y);padding-bottom:var(--section-y);}

/* Smooth scrolling and a11y */
html{scroll-behavior:smooth;scroll-padding-top:var(--sticky-offset);}

/* Font rendering + variable font settings */
html{
  font-family:var(--bs-font-sans-serif);
  font-optical-sizing:auto;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  letter-spacing:.01em;
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* Optional polish: stronger headings + slight tracking */
h1,h2,h3{font-weight:800;letter-spacing:-0.01em;}
/* Optional polish: tidy all-caps nav spacing */
.subnav-link{letter-spacing:.02em;}
/* Optional polish: align numbers in contact/footer */
.tb-phone,.tb-email,.footer-copy{font-variant-numeric:tabular-nums;}

/* Navbar */
.navbar .nav-link{font-weight:500;}
.navbar .nav-link:hover,.navbar .nav-link:focus{color:var(--bs-primary);}

/* Buttons - global tweaks (square, heavier weight, more padding) */
.btn{
  border-radius:0 !important;
  font-weight:500;
  border-width:2px;
  padding:.65rem 1.1rem;
}
.btn-lg{
  padding:.9rem 1.5rem;
}

/* Primary button with white border and white text */
.btn-primary{
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--bs-primary);
  --bs-btn-border-color:#fff;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#003a82;
  --bs-btn-hover-border-color:#fff;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:#00306b;
  --bs-btn-active-border-color:#fff;
}

/* Warning button with white border and white text */
.btn-warning{
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--bs-warning);
  --bs-btn-border-color:#fff;
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:#cf7400;
  --bs-btn-hover-border-color:#fff;
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:#b96500;
  --bs-btn-active-border-color:#fff;
}

/* Cards */
.card{border-radius:.2rem;}
.card .card-title{letter-spacing:.2px;}

/* Forms */
.form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(0,77,170,.2);}
.btn:focus{box-shadow:0 0 0 .2rem rgba(0,77,170,.2);}

/* Dropdown hints */
.dropdown-menu{--bs-dropdown-link-active-bg:rgba(0,77,170,.10);}
.dropdown-item:active{color:#fff;background-color:var(--bs-primary);}

/* Utilities */
.bg-brand-primary{background-color:var(--bs-primary)!important;}
.text-brand-primary{color:var(--bs-primary)!important;}

.bg-light-grey{background-color:#f2f2f2;}
.bg-light-green{background-color:#ebf5ee;}
.bg-dark-transl{background-color:rgba(0,0,0,.6);}
.bg-pale {background-color:var(--bs-pale);!important;}
.bg-deepblue {background-color:var(--bs-deepblue);!important;}

.red, .text-red {color:var(--bs-red);!important;}
.green, .text-green {color:var(--bs-green);!important;}


/* Wider containers */
@media (min-width:1400px){.container,.container-lg,.container-xl,.container-xxl{max-width:1440px;}}
@media (min-width:1600px){.container,.container-lg,.container-xl,.container-xxl{max-width:1600px;}}
@media (min-width:1920px){.container,.container-lg,.container-xl,.container-xxl{max-width:1728px;}.container{--bs-gutter-x:1.25rem;}}
@media (min-width:2400px){.container,.container-lg,.container-xl,.container-xxl{max-width:1920px;}}

/* ===========================
   TOP BAR - desktop
   =========================== */
.topbar{z-index:1030;box-shadow:0 2px 6px rgba(0,0,0,.04);}
.topbar-brand img{display:block;height:44px;}

/* topbar CTA buttons: smaller, consistent sizing */
.topbar-cta{
  min-width:160px;           /* ~20% smaller than previous 220px */
  padding:.52rem .75rem;      /* modestly reduced padding */
  font-size:.925rem;
}

.tb-row{line-height:1;}
.tb-link{color:var(--bs-body-color);text-decoration:none;transition:color .3s ease;font-weight:500;}
.tb-link:hover,.tb-link:focus-visible{color:var(--bs-primary);}
.tb-sep{margin:0 .75rem;color:#999;}

.tb-contact .tb-link{display:inline-flex;align-items:center;}
.tb-contact svg{flex:0 0 auto;}

.topbar-right .tb-row + .tb-row{margin-top:.65rem;}

.tb-lang{display:flex;align-items:center;gap:.5rem;}
.tb-leaf{display:inline-flex;align-items:center;justify-content:center;}
.tb-leaf svg,
.tb-leaf img{width:16px;height:16px;display:inline-block;}
.tb-leaf svg{color:#d32f2f;}

/* subnav row container */
.topbar-subnav{border-top:0;position:relative;}

/* ===========================
   Subnav - 6 links row
   =========================== */
.subnav-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
.subnav-item{display:flex;}
.subnav-link{
  display:flex;align-items:center;justify-content:center;
  width:100%;
  min-height:54px;
  padding:.75rem 1rem;
  background:#fff;
  border:2px solid var(--bs-primary);
  color:var(--bs-warning);
  font-weight:700;text-decoration:none;
  transition:border-color .35s ease,color .35s ease,background-color .35s ease;
}
.subnav-link:hover,
.subnav-link:focus,
.subnav-link:active{
  border-color:var(--bs-warning);
  color:var(--bs-warning);
  outline:none;
  box-shadow:none;
}

/* caret for both ABOUT US and PRODUCTS */
.subnav-link.has-caret{position:relative;}
.subnav-link.has-caret::after{
  margin-left:.5rem;
  vertical-align:.15em;
  border-top:.35em solid currentColor;
  border-right:.35em solid transparent;
  border-left:.35em solid transparent;
  border-bottom:0;
  content:"";
}

/* ===========================
   ABOUT US lite dropdown (panel)
   =========================== */
.mega-dropdown-lite{
  position:absolute;
  top:calc(100% + 0px);
  width:var(--about-lite-w);
  background:#fff;
  border:2px solid var(--bs-primary);
  border-radius:0;
  box-shadow:0 10px 22px rgba(0,0,0,.10);
  z-index:1040;

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.mega-dropdown-lite.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .18s ease, transform .18s ease;
}
.lite-inner{padding:2px;}
.lite-item{
  display:block;
  padding:.7rem .95rem;
  font-weight:700;
  color:var(--bs-body-color);
  text-decoration:none;
}
.lite-item:hover,
.lite-item:focus{
  color:var(--bs-primary);
  background-color:rgba(0,77,170,.06);
}

/* ===========================
   PRODUCTS mega menu
   =========================== */
.mega-dropdown{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 0px);
  background:#fff;
  border:2px solid var(--bs-primary);
  border-radius:0;
  box-shadow:0 10px 22px rgba(0,0,0,.10);
  z-index:1040;

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.mega-dropdown.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .18s ease, transform .18s ease;
}
.mega-inner{padding:18px;}

.mega-inner .row>[class*="col"]{display:flex;}
.mega-card{
  display:flex;flex-direction:column;
  width:100%;height:100%;
  text-decoration:none;color:inherit;
  background:#fff;border:2px solid var(--bs-primary);
  border-radius:0;overflow:hidden;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease;
}
.mega-media{
  position:relative;height:var(--mega-media-h);
  overflow:hidden;background:none!important;
}
.mega-media::after{
  content:"";position:absolute;inset:0;
  background-image:var(--mega-img);background-size:cover;background-position:center;background-repeat:no-repeat;
  transform:translateZ(0) scale(1);
  transition:transform .45s cubic-bezier(.2,.6,.2,1);
  will-change:transform;backface-visibility:hidden;pointer-events:none;
}
.mega-card:hover .mega-media::after,
.mega-card:focus .mega-media::after{
  transform:translateZ(0) scale(1.06);
}
.mega-body{padding:14px;}
.mega-title{font-weight:800;color:var(--bs-warning);margin-bottom:.25rem;}
.mega-desc{font-size:.95rem;color:#555;margin-bottom:.5rem;}

.mega-card:hover,
.mega-card:focus{
  background:#fff;color:var(--bs-primary);border-color:var(--bs-warning);
}
.mega-card:hover .mega-title,
.mega-card:focus .mega-title{color:var(--bs-primary);}

/* ===========================
   Mobile navbar toggler
   =========================== */
.navbar{--bs-navbar-toggler-border-color:transparent;}
@media (max-width:575.98px){header{scroll-margin-top:72px;}}

.navbar.d-lg-none .navbar-toggler{
  padding:.35rem .6rem;
  border:0;
  border-radius:0;
  background:var(--bs-primary);
  color:#fff;
  transition:background-color .25s ease,color .25s ease;
}
.navbar.d-lg-none .navbar-toggler:focus{box-shadow:none;}
.navbar.d-lg-none .navbar-toggler:hover,
.navbar.d-lg-none .navbar-toggler:active{
  background:var(--bs-warning);
  color:#fff;
}
.navbar.d-lg-none .navbar-toggler[aria-expanded='true']{
  background:var(--bs-warning);
  color:#fff;
}

.navbar.d-lg-none .navbar-toggler-icon{
  width:1.15rem;
  height:1.15rem;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ffffff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Mobile collapsed panel spacing */
.mobile-info{
  width:100%;text-align:center;padding-top:1.25rem;padding-bottom:1.25rem;
}
.mobile-info .tb-lang{display:flex;align-items:center;justify-content:center;gap:.5rem;}
.mobile-info .tb-link{font-weight:600;}
.mobile-info .tb-sep{margin:0 .6rem;}
.mobile-info .tb-contact a{color:var(--bs-body-color);}
.mobile-info .tb-contact a:hover,.mobile-info .tb-contact a:focus-visible{color:var(--bs-primary);}
.mobile-info .btn{margin-bottom:.25rem;}

/* ===========================
   Product category cards - grayscale to color hover
   =========================== */
:root{--pcard-media-h:220px;--pcard-body-min:88px;}
@media (min-width:992px){:root{--pcard-media-h:240px;--pcard-body-min:96px;}}
@media (min-width:1400px){:root{--pcard-media-h:260px;--pcard-body-min:104px;}}

.product-card{
  position:relative;display:flex;flex-direction:column;height:100%;
  min-height:calc(var(--pcard-media-h) + var(--pcard-body-min));
  border:2px solid var(--bs-warning);border-radius:.8rem;overflow:hidden;background:#fff;
  text-decoration:none;color:inherit;cursor:pointer;transition:border-color .45s ease;
}
.product-card:hover,.product-card:focus-visible{border-color:var(--bs-primary);}
.product-card:active{transform:scale(.995);}

.pcard-media{
  position:relative;flex:0 0 auto;height:var(--pcard-media-h);
  overflow:hidden;background:none !important;display:block;contain:paint;
}
.pcard-media::after,
.pcard-media::before{
  content:"";position:absolute;inset:0;
  background-image:var(--pcard-img);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  pointer-events:none;
}
.pcard-media::before{
  filter:grayscale(100%) saturate(0);
  opacity:1;transition:opacity .45s ease;will-change:opacity;
}
.product-card:hover .pcard-media::before,
.product-card:focus .pcard-media::before,
.product-card:focus-visible .pcard-media::before{opacity:0;}

.pcard-body{
  flex:1 1 auto;min-height:var(--pcard-body-min);
  display:flex;align-items:center;justify-content:center;padding:1rem;background:#fff;
}
.pcard-title{
  margin:0;color:var(--bs-warning);font-weight:700;text-align:center;line-height:1.2;
  transition:color .45s ease;
}
.product-card:hover .pcard-title,
.product-card:focus .pcard-title,
.product-card:focus-visible .pcard-title{color:var(--bs-primary);}
.product-card:focus-visible{outline:none;box-shadow:0 0 0 .35rem rgba(0,77,170,.2);}

@media (prefers-reduced-motion:reduce){
  .pcard-media::before{transition:none;}
  .product-card{transition:border-color .2s ease;}
  .product-card:active{transform:none;}
}


/* Center title vertically (and horizontally) inside the card body */
.product-card .card-body{
  min-height: 6rem;              /* adjust to taste (e.g., 4.5rem–6rem) */
  display: flex;
  align-items: center;           /* vertical center */
  justify-content: center;       /* horizontal center */
}

.product-card .nav-heading{ 
  margin-bottom: 0;              /* tidy spacing */
}

.h5b {
    font-size: 1.175rem;
}
		@media (max-width: 991.98px){
			.h5b {font-size: 1.1rem;
			}
		}




/* ===========================
   Utility classes here
   =========================== */


.mb-n05 {margin-bottom: -0.5rem;}
.mb-n1 {margin-bottom: -1rem;}
.mb-n15 {margin-bottom: -1.5rem;}
.mb-n2 {margin-bottom: -2rem;}
.mb-n3 {margin-bottom: -3rem;}
.mb-n4 {margin-bottom: -4rem;}

ul.downloads 	{ 
	list-style-image: url('https://devbox.digitalassets.ca/faifiltri.ca/website2025/assets/images/download-pdf.svg');
	margin-top: 1.25rem !important;
	margin-bottom: 1.5rem !important;
	}

ul.downloads li, 
ul.downloads li a, 
ul.downloads li a:visited { 
	position: relative;
	top: -7px;
	margin-top: 0;
	margin-bottom: 10px;
	line-height: 1.3 !important;
	}

ul.downloads li, 
ul.downloads li a, 
ul.downloads li a:visited { 
	color: var(--bs-primary);
	text-decoration: none;
	outline: none;
	transition:color .3s ease;
	}

ul.downloads li a:hover {
	color: var(--bs-warning);
	text-decoration: none;
	outline: none;
	transition:color .3s ease;
	} 

ul.downloads li a:active, 
ul.downloads li a:focus {
	color: var(--bs-dark);
	text-decoration: none;
	outline: none;
	}




.pt-35 {padding-top: 1.25rem !important;}
.pb-35 {padding-bottom: 1.25rem !important;}


 
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
.h1 a, .h2 a, .h3 a, .h4 a, .h5 a, .h6 a,
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited,
.h1 a:visited, .h2 a:visited, .h3 a:visited, .h4 a:visited, .h5 a:visited, .h6 a:visited {
    color: var(--bs-heading-color);
	text-decoration: none;
}

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
.h1 a:hover, .h2 a:hover, .h3 a:hover, .h4 a:hover, .h5 a:hover, .h6 a:hover {
    color: var(--bs-warning);
	outline: none;
	text-decoration: none;
	transition: color .25s ease;
}

h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active,
.h1 a:active, .h2 a:active, .h3 a:active, .h4 a:active, .h5 a:active, .h6 a:active, 
h1 a:focus, h2 a:focus, h3 a:focus, h4 a:focus, h5 a:focus, h6 a:focus,
.h1 a:focus, .h2 a:focus, .h3 a:focus, .h4 a:focus, .h5 a:focus, .h6 a:focus {
    color: var(--bs-dark);
	outline: none;
	text-decoration: none;
}





/* ===========================
   HERO (refined)
   =========================== */
.hero-wrap{
  position: relative;
  isolation: isolate; /* ensure overlay stays behind content */
  background-image: var(--hero-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  /* true vertical centering to viewport */
  min-height: clamp(520px, 60vh, 860px);
  display: flex;
  align-items: center;
  padding-block: 3rem; /* keeps some breathing room on short viewports */
}

/* Brand gradient + subtle dark for contrast */
.hero-wrap::before{
  content:"";
  position:absolute; inset:0;
  background:
    /* linear-gradient(135deg, rgba(0,15,30,0.30), rgba(0,0,0,0.05)); */
    linear-gradient(135deg, rgba(255,155,59,0.45), rgba(200,109,0,0.45));
  z-index:-1;
}

/* Keep the row filling the available height for consistent centering */
.hero-row{ min-height: inherit; }

/* Type hierarchy */
.hero-title{
  /* slightly larger than display-5, scales with viewport */
  font-size: clamp(2.2rem, 2.2rem + 1.2vw, 3.2rem);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin-bottom: .5rem;
}

.hero-tagline{
  font-size: clamp(1.05rem, .95rem + .4vw, 1.25rem);
  line-height: 1.6;
  font-weight: 600;           /* a touch stronger */
  font-style: italic;         /* contrast to the h1 */
  opacity: .95;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 992px){
  .hero-tagline{ margin-left: 0; margin-right: 0; }
}

/* Secondary (outline) hero button to clarify hierarchy */
.btn-hero-outline{
  --bs-btn-color: #fff;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-warning);
  --bs-btn-hover-border-color: #fff;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #b96500;          /* darker orange on active */
  --bs-btn-active-border-color: #b96500;
  border-width: 2px;
  border-radius: 0 !important;
  padding: 0.9rem 1.5rem;               /* match your lg scale, slightly roomier */
}

/* Slightly roomier hero primary button as well (optional, matches your earlier ask) */
.hero-wrap .btn.btn-lg{
  padding: 1.05rem 1.7rem;
}

/* Mobile layout polish */
@media (max-width: 991.98px){
  .hero-wrap{ padding-block: 2.5rem; }
  .hero-title{ margin-bottom: .75rem; }
  .hero-tagline{ margin-bottom: 1.75rem; }
}





/* ===========================
   Overview section background helper
   =========================== */
.bg-section-overview {
  background-image: var(--overview-img);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: right center; /* horiz: right, vert: center */
}




/* ===========================
   Cross Reference Section
   =========================== */
.xref-section {
  background: var(--bs-deepblue);
  color: #fff;
}

.xref-section h2 {
  font-size: 2rem;
  letter-spacing: -0.01em;
}

.xref-section p {
  font-size: 1.05rem;
  line-height: 1.5;
  color: rgba(255,255,255,.9);
}

/* Input group styling */
.xref-form .form-control {
  border: 2px solid var(--bs-primary);
  border-radius: 0;
  padding: .85rem 1rem;
  font-size: 1.05rem;
}

.xref-form .form-control:focus {
  border-color: var(--bs-warning);
  box-shadow: 0 0 0 .25rem rgba(242,136,0,.3);
}

/* Button styling */
.btn-xref {
  border-radius: 0;
  font-weight: 600;
  border: 2px solid var(--bs-warning);
  background: var(--bs-warning);
  color: #fff;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
  padding: .85rem 1.5rem;
}

.btn-xref:hover,
.btn-xref:focus {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.btn-xref:active {
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
}




/* ===========================
   Product Cards - image zoom on hover, tidy headingProduct card: image zoom on hover, tidy heading
   =========================== */

.product-card {
  border-radius: 0;
}

.product-card .ratio img {
  transition: transform .35s ease;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; /* safety if object-fit utility isn't present */
}

/* Hover/keyboard focus states */
.product-card:hover .ratio img,
.product-card:focus .ratio img,
.product-card:focus-visible .ratio img {
  transform: scale(1.05);
}

.product-card .card {
  transition: box-shadow .2s ease, transform .2s ease;
}

.product-card:hover .card,
.product-card:focus .card,
.product-card:focus-visible .card {
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.08);
}

/* Match heading tone similar to the live site */
.nav-heading {
  color: var(--bs-primary);
  font-weight: 600;
  line-height: 1.25;
}

.product-card:hover .nav-heading,
.product-card:focus .nav-heading,
.product-card:focus-visible .nav-heading {
  text-decoration: none; 
}





/* ===========================
   Footer - dark theme
   =========================== */
.footer-dark{background:#292929;color:rgba(255,255,255,.71);}
.footer-dark,
.footer-dark p,
.footer-dark li,
.footer-dark .footer-text,
.footer-dark .footer-copy,
.footer-dark .nav-link,
.footer-dark .footer-link,
.footer-dark a:not(.btn):not(.social-btn){
  color:rgba(255,255,255,.71)!important;text-decoration:none;
}
.footer-dark a:not(.btn):not(.social-btn):hover,
.footer-dark a:not(.btn):not(.social-btn):active,
.footer-dark a:not(.btn):not(.social-btn):focus,
.footer-dark .nav-link:hover,
.footer-dark .nav-link:focus,
.footer-dark .footer-link:hover,
.footer-dark .footer-link:focus{color:var(--bs-warning)!important;}
.footer-dark a:not(.btn):not(.social-btn):focus-visible,
.footer-dark .nav-link:focus-visible,
.footer-dark .footer-link:focus-visible{
  outline:none;box-shadow:0 0 0 .2rem rgba(242,136,0,.25);border-radius:.25rem;
}
.footer-heading{color:rgba(255,255,255,.71);font-weight:700;margin-bottom:1rem;}
.footer-message{color:rgba(255,255,255,.71);font-weight:600;margin-top:0.5rem;margin-bottom:1rem;}
.footer-hr{border:0;border-top:1px solid rgba(255,255,255,.20);}
.footer-brand img{height:62px;}

/* Social icons - theme gray on translucent white, brighter on hover */
.social-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:33px;height:33px;border-radius:50%;
  background:rgba(255,255,255,.65);
  color:var(--bs-secondary);
  border:0;
  transition:background-color .25s ease,box-shadow .25s ease,transform .2s ease;
}
.social-btn:hover,
.social-btn:focus,
.social-btn:active{background:rgba(255,255,255,.95);}
.social-btn:focus-visible{outline:none;box-shadow:0 0 0 .25rem rgba(242,136,0,.25);}

.footer-copy{opacity:.9;}
.footer-bottom .nav .nav-link{padding-top:.25rem;padding-bottom:.25rem;}

/* Footer columns spacing and line-height */
.footer-col .footer-link{display:inline-block;padding:.175rem 0;line-height:1.4;}
.footer-list{margin:0;padding:0;}
.footer-list li + li{margin-top:.45rem;}

/* Space above link columns and below social icons */
.footer-links{padding-top:2rem;}
.footer-social{padding-top:1.5rem;padding-bottom:3rem;}

/* Gap Customization */
.gap-2-5{gap:.8rem!important;}

/* Responsive logo sizing in navbars */
.navbar-brand img{height:40px;}
.topbar-brand img{height:44px;}
@media (min-width:768px){.navbar.d-lg-none .navbar-brand img{height:60px;}}
@media (min-width:992px){.topbar-brand img{height:70px;}}
@media (min-width:1200px){.topbar-brand img{height:80px;}}

/* ===========================
   Hide-on-scroll header (smooth)
   =========================== */
.topbar,
.navbar.d-lg-none{
  transform: translate3d(0,0,0);
  transition: transform .4s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
  backface-visibility: hidden;
}

.hide-nav .topbar,
.hide-nav .navbar.d-lg-none{
  transform: translate3d(0,-100%,0);
}






/* ===========================
   PAGE BODY (refined styles)
   =========================== */
.pbdy-section {
  padding-top: var(--section-y);
  padding-bottom: var(--section-y);
}

/* Headings: add breathing room */
.pbdy-section h2,
.pbdy-section h3 {
  letter-spacing: -0.01em;
}


/* Headings: h2 size */
.pbdy-section h2 {
  font-size: 2.25rem;   /* slightly larger */
  line-height: 1.4;
}
 
.pbdy-section h2 .small {
  font-size: 1.75rem;   /* slightly larger */
  line-height: 1.3;
}

/* Headings: h3 size */
.pbdy-section h3 {
  font-size: 1.2rem;   /* slightly larger */
  font-weight: 700 !important;
  line-height: 1.3;
}

/* Headings: h3 plus size */
.pbdy-section h3.plus {
  font-size: 1.7rem;   /* slightly larger */
}

/* Headings: h4 size */
.pbdy-section h4 {
  font-size: 1.125rem;   /* slightly larger */
  font-weight: 700 !important;
  line-height: 1.3;
}






/* Body text + lists unified */
.pbdy-section p {
  font-size: 1.05rem;   /* slightly larger */
  line-height: 1.6;
  color: var(--bs-body-color);
}

.pbdy-section ul {
  margin-top: 1.0rem;
  margin-bottom: 1.0rem;
}
.pbdy-section ul,
.pbdy-section ul li {
  font-size: 1.05rem;   /* slightly larger */
  line-height: 1.4;
  color: var(--bs-body-color);
}

.pbdy-section p.small {
  font-size: 0.825rem;   /* slightly larger */
}

/* Links inside body text & lists */
.pbdy-section p a,
.pbdy-section li a {
  color: var(--bs-warning);
  font-weight: 500;
  text-decoration: none;
  transition: color .25s ease;
}
.pbdy-section p a:hover,
.pbdy-section li a:hover { color: var(--bs-primary); }
.pbdy-section p a:focus,
.pbdy-section li a:focus,
.pbdy-section p a:active,
.pbdy-section li a:active { color: var(--bs-secondary); }

/* KPI badges */
.pbdy-kpis { gap: 1rem; }
.pbdy-kpi {
  border: 2px solid var(--bs-primary);
  padding: .9rem 1.2rem; /* slightly more padding */
  background: #fff;
  text-align: center;
  min-width: 140px;
}
.pbdy-kpi-num { font-weight: 800; line-height: 1; }
.pbdy-kpi-label { font-size: .95rem; color: #555; }

/* Quick category cards */
.pbdy-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 2px solid var(--bs-primary);
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .3s ease, box-shadow .3s ease, transform .1s ease;
}
.pbdy-card:focus-visible { outline: none; box-shadow: 0 0 0 .3rem rgba(0,77,170,.2); }
.pbdy-card:hover { border-color: var(--bs-warning); }
.pbdy-card:active { transform: scale(.995); }

.pbdy-media {
  position: relative;
  height: 220px;
  background: #e9ecef;
  overflow: hidden;
}
@media (min-width:992px){ .pbdy-media { height: 240px; } }
@media (min-width:1400px){ .pbdy-media { height: 260px; } }
.pbdy-media::after {
  content:"";
  position:absolute; inset:0;
  background-image: var(--pbdy-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1);
  transition: transform .45s cubic-bezier(.2,.6,.2,1);
}
.pbdy-card:hover .pbdy-media::after,
.pbdy-card:focus .pbdy-media::after { transform: scale(1.06); }

.pbdy-body { padding: 1rem; }
.pbdy-title {
  color: var(--bs-warning);
  font-weight: 600;
  line-height: 1.3;
}
.pbdy-desc { margin: 0; color: #555; }

/* Detail rows */
.pbdy-pane { max-width: 640px; }
.pbdy-list { margin: 0 0 1rem 0; padding-left: 1.1rem; }
.pbdy-list li { margin: .35rem 0; }

.pbdy-card-image {
  position: relative;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.img-border-blue {
  border: 2px solid var(--bs-primary);
}



/* Figure images V1 */
.pbdy-figure {
  position: relative;
  height: 300px;
  background: #e9ecef;
  border: 2px solid var(--bs-primary);
}
@media (min-width:992px){ .pbdy-figure { height: 360px; } }
@media (min-width:1400px){ .pbdy-figure { height: 400px; } }
.pbdy-figure::after {
  content:"";
  position:absolute; inset:0;
  background-image: var(--pbdy-fig);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}



/* Buttons: extra padding */
.pbdy-section .btn {
  padding: .75rem 1.4rem;
}
.pbdy-section .btn-lg {
  padding: 1.05rem 1.7rem;
}









/* ===========================
   Mobile overflow fixes
   =========================== */


/* 2) Wrap long, unbroken strings (emails/part numbers/URLs) on small screens */
@media (max-width: 575.98px) {
  /* Common text containers that may hold long tokens */
  .mobile-info,
  .mobile-info .tb-link,
  .mobile-info .tb-link span,
  .footer-dark .footer-text,
  .footer-dark .footer-link,
  .footer-bottom,
  .pbdy-section p,
  .pbdy-section li,
  .xref-section p {
    overflow-wrap: anywhere;
    word-break: break-word; /* fallback */
    min-width: 0;           /* fix for flex children */
  }

  /* Make sure flex/grid children don't force min-content widths */
  [class*="col"] {
    min-width: 0;
  }
}

/* 4) Defensive: media blocks should never exceed their container width */
img, svg, video {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 5) Optional: prevent rare gap-induced overflow on very tight viewports */
.container, .container-fluid {
  overflow-x: clip; /* modern browsers; avoids creating scrollbars */
}





/* ===== Contact form (on-brand, square edges, thicker borders) ===== */
.contact-card{
  border:none;
  background:transparent;
  padding:1.5rem;
}

.contact-card h3 {
  font-size: 1.5rem;   /* slightly larger */
  font-weight: 700 !important;
  line-height: 1.3;
}

@media (min-width:768px){ 
	.contact-card{ padding:2.0rem; 
	} 
}

.contact-form .form-label{
  font-weight:600;
  letter-spacing:.01em;
}

.contact-form .form-control,
.contact-form textarea{
  border:2px solid rgba(0,77,170,.25);
  border-radius:0;
  background:#fff;
}

.contact-form .form-control:focus,
.contact-form textarea:focus{
  border-color:var(--bs-primary);
  box-shadow:0 0 0 .2rem rgba(0,77,170,.15);
}

/* Keep button square (matches your global .btn rules) */
.contact-form .btn{
  border-radius:0 !important;
}

/* Ensure no element here can trigger horizontal scroll */
.contact-card, .contact-form{ overflow-x:hidden; }



/* ================
   MAP Section
================= */

/* Make the row’s children stretch equally in height */
.map-section .row {
  display: flex;
  align-items: stretch; /* force equal height columns */
  background-color:var(--bs-midgrey);
}

/* Ensure both columns expand fully */
.map-section .col {
  display: flex;
  flex-direction: column;
}

.mapheight {
  height: 64vh;
}

@media (min-width:1900px){ 
	.mapheight {
	  height: 56vh;
	}
}

@media (max-width:991.5px){ 
	.mapheight {
	  height: 400px;
	}
}

/* Map embed takes all available height */
.map-section .map-embed {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Let the iframe fill its parent */
.map-section .map-embed iframe {
  flex: 1;
  width: 100%;
  height: 100%;
  border: 0;
}


/* ===========================
   Login form (on-brand)
   =========================== */

/* Card shell – mirrors contact-card spacing/feel */
.login-card{
  border: 0;
  background: #fff;
  border-radius: .2rem;
}

/* Unify look & feel with your contact form */
.login-form .form-label{
  font-weight: 600;
  letter-spacing: .01em;
}

/* Square, thicker borders; reuse brand focus */
.login-form .form-control{
  border: 2px solid rgba(0,77,170,.25);
  border-radius: 0;
  background: #fff;
  padding: .75rem .9rem;
}
.login-form .form-control:focus{
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 .2rem rgba(0,77,170,.15);
}

/* Card padding harmony across breakpoints */
.login-card .card-body{ padding: 1.5rem; }
@media (min-width:768px){
  .login-card .card-body{ padding: 2rem; }
}

/* Buttons match your global .btn style; just spacing */
.login-form .btn{
  border-radius: 0 !important;
}
p:empty {
    display: none;
}


/* 
#xref-results .dt-container .dt-paging .dt-paging-button {
  color: #000 !important;
}
 */


/* Hover/focus state */
/* 
#xref-results .dt-container .dt-paging .dt-paging-button:hover,
#xref-results .dt-container .dt-paging .dt-paging-button:focus {
  color: #000 !important;
}

 */

/* Current page */
/* 
#xref-results .dt-container .dt-paging .dt-paging-button.current {
  color: #000 !important;
}
 */


/* Disabled buttons */
/* 
#xref-results .dt-container .dt-paging .dt-paging-button.disabled {
  color: #000 !important;
  opacity: 0.5 !important;
}
 */