/*!
Theme Name: Building Supply
Theme URI: http://underscores.me/
Author: Excelify
Author URI: http://excelify.com
Description: Building Supply WordPress website theme
Version: 1.0.31
Text Domain: buildingsupply
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

-------------------------------------------------------------- */

/* // Extra small devices (portrait phones, less than 576px)
// No media query since this is the default in Bootstrap

// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }

// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }

// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }

// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... } */


/* Theme customization starts here
------------------------------------------------------- */

/* a {
  color:#ec2626;
  text-decoration: none;
  background-color: transparent;
} */

h1, h2, h3, h4, h5, h6 {
  text-transform: uppercase;
}
h1 {
  font-size: 2rem;
}
h2 {
  font-size: 1.5rem;
}
h3 {
  font-size: 1rem;
}
h4 {
  font-size: .95rem;
}
.h6, h6 {
	font-size: .85rem;
}

.container {
  max-width: 1400px;
}
#blog h4 {
	font-size: 1rem;
}

.bg-primary-75 {
	background-color: rgba(236,38,38,0.75);
}
.bg-primary-50 {
	background-color: rgba(236,38,38,0.50);
}
.bg-primary-25 {
	background-color: rgba(236,38,38,0.25);
}

.bg-secondary-75 {
	background-color: rgba(108,117,125,0.75);
}
.bg-secondary-50 {
	background-color: rgba(108,117,125,0.50);
}
.bg-secondary-25 {
	background-color: rgba(108,117,125,0.25);
}


/* banner styles
------------------------------------------------------- */

.banner, 
.banner img{
	width:100% !important;
}

/* store locator styles
------------------------------------------------------- */
/* .menustorelocator #store_locator_filter {
  display: none;
} */
/* .menustorelocator #store_locator_get_my_position {
  display: none;
} */

.menustorelocator .dropdown-menu {
  margin: 0 !important;
}

.menustorelocator .form-group {
  margin-bottom: 0 !important;
}

#store_locator_result_list {
  padding: 10px 15px;
}

#store_locator_get_all_stores {
  margin-left: 15px;
}

#store_locator_result_list .btn-group-lg > .btn, 
#store_locator_result_list .btn-lg {
  padding: .25rem .5rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: .3rem;
}

/* gallery card-columns carousel styles
------------------------------------------------------- */
@media (min-width: 1200px) {
  .card-columns {
      -webkit-column-count:4;
      -moz-column-count:4;
      column-count:4;
      
  }
  
}
@media (min-width: 576px) and (max-width: 1199px) {
  .card-columns {
      -webkit-column-count:3;
      -moz-column-count:3;
      column-count:3;
      
  }
  
}
@media (max-width: 575px) {
  .card-columns {
      -webkit-column-count:1;
      -moz-column-count:1;
      column-count:1;
      
  }
  
}


/* ----------------------------------- */
/* Card Hover Animation */

@media (min-width: 576px) { 

  #cardfx .card {
    display: inline-block;
    position: relative;
    overflow: hidden;
    transition: 0.5s ease;
    height: 100%;
  }
  #cardfx .card:hover {
    box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.3);
  }
  #cardfx .card-img-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    overflow: hidden;
  }
  /* #cardfx .card-img-wrapper img {
    transition: .5s ease;
  }
  #cardfx.card:hover .card-img-wrapper img {
    transform: scale(1.15);
  } */
  #cardfx .card-body .card-title {
    margin-bottom: calc(50% + 10px);
    transition: 0.5s ease;
    color: #fff;
    text-align: center;
  }
  #cardfx .card:hover .card-body .card-title {
    margin-bottom: 0.5rem;
    color: #333;
  }
  
  #cardfx .card-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 30%;
    background-color: rgba(0, 0, 0, 0.1);
    transition: 0.5s ease;
  }
  
  #cardfx .card:hover .card-body {
    height: calc(70% + 20px);
    background-color: rgba(255, 255, 255, 1);
  }
  #cardfx .card-content {
    left: 0;
    right: 0;
    overflow: hidden;
    width: 100%;
    height: auto;
    transition: 0.5s ease;
  }
  
}




/* swiper hover styles
------------------------------------------------------- */

#swiper .swiper-container h2,
#blog h2 {
	font-size: 20px;
}
#swiper .swiper-container h3,
#blog h3 {
	font-size: 24px;
}

#swiper .swiper-button-next.swiper-button-disabled.swiper-button-lock, 
#swiper .swiper-button-prev.swiper-button-disabled.swiper-button-lock {
    opacity: 0;
    cursor: auto;
    pointer-events: none;
}

#swiper .swiper-slide .card-image .overlay,
#swiper .swiper-slide:hover .card-image .overlay {
  -webkit-transition: opacity .3s ease;
    -moz-transition: opacity .3s ease;
    -ms-transition: opacity .3s ease;
    -o-transition: opacity .3s ease;
    transition: opacity .3s ease;
}

#swiper .swiper-slide .card-image {
  position: relative;
  height: auto;
  width: 100%;
}
#swiper .swiper-slide .card-image .overlay {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0);
  opacity: 0;
}
#swiper .swiper-slide:hover .card-image .overlay {
  background-color: rgba(0, 0, 0, 0.85);
  opacity: 1;
}
#swiper .swiper-slide.card {
	min-height: 300px;
}

/* swiper carousel styles
------------------------------------------------------- */
#swiper .swiper-container {
  width: 100%;
  height: 100%;
}
#swiper .swiper-slide {
  /* Center slide text vertically */
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  height: auto;
}
#swiper .swiper-container-horizontal > .swiper-pagination-bullets, 
#swiper .swiper-pagination-custom, .swiper-pagination-fraction {
	bottom: 0;
	left: 0;
	width: 100%;
}
#swiper .swiper-button-next, 
#swiper .swiper-container-rtl .swiper-button-prev {
	right: 0;
	left: auto;
}
#swiper .swiper-button-next, 
#swiper .swiper-button-prev {
	position: relative;
	top: 0;
	width: 0;
	height: 0;
	margin-top: 0;
	z-index: 10;
	cursor: pointer;
	display: inline;
	align-items: center;
	justify-content: center;
	color: inherit;
}
#swiper .swiper-button-prev, 
#swiper .swiper-container-rtl .swiper-button-next {
	left: 0;
	right: auto;
}
#swiper .swiper-pagination {
	position: relative;
	text-align: left;
	transition: .3s opacity;
	transform: translate3d(0,0,0);
	z-index: 10;
	display: inline;
}
#swiper .swiper-pagination-bullet {
	margin-right: 10px;
}
/* hide default nav icons */
#swiper .swiper-button-next::after, 
#swiper .swiper-button-prev::after {
	display: none;
}


/* Main menu styles
------------------------------------------------------- */
.dropdown:hover .dropdown-menu {
    display: block;
}
.dropdown-menu {
  margin: 0;
}


/* topnav styles
------------------------------------------------------- */
#topnav .menu-item a {
  color: #fff;
  margin: 0;
  text-decoration: none;
}

#menu-top-nav {
  margin: 0;
}

/* breadcrumbs styles
------------------------------------------------------- */
#breadcrumbs,
#breadcrumbs a {
	font-size: 12px;
  text-decoration: none;
}
#breadcrumbs .breadcrumb_last {
  display: none;
}

/* navbar styles
------------------------------------------------------- */
.navbar-nav li:hover > ul.dropdown-menu {
  display: block;
}
.navbar-brand{
  transition: all 0.3s ease;
  transform:translate(0, 0);
}

/* Header scroll — production shrinks the logo on scroll but does not pin the header.
   BS4 sticky-top on #header was inert; BS5 .sticky-top would freeze it, so scripts.js
   uses .header-scrolled instead of .sticky-top. */
#header.header {
  width: 100%;
  background-color: #fff;
}

/* .navbar-nav .current_page_item.active .dropdown-item {
	color: #ec2626;
} */

/* button styles
------------------------------------------------------- */
 .btn-red {
    color: #FFFFFF;
    background-color: #eb2929;
    border-color: #eb2929;
  }

  .btn-red:hover,
  .btn-red:focus,
  .btn-red:active,
  .btn-red.active,
  .open .dropdown-toggle.btn-red {
    color: #FFFFFF;
    background-color: #eb2929;
    border-color: #eb2929;
  }

  .btn-red:active,
  .btn-red.active,
  .open .dropdown-toggle.btn-red {
    background-image: none;
  }

  .btn-red.disabled,
  .btn-red[disabled],
  fieldset[disabled] .btn-red,
  .btn-red.disabled:hover,
  .btn-red[disabled]:hover,
  fieldset[disabled] .btn-red:hover,
  .btn-red.disabled:focus,
  .btn-red[disabled]:focus,
  fieldset[disabled] .btn-red:focus,
  .btn-red.disabled:active,
  .btn-red[disabled]:active,
  fieldset[disabled] .btn-red:active,
  .btn-red.disabled.active,
  .btn-red[disabled].active,
  fieldset[disabled] .btn-red.active {
    background-color: #eb2929;
    border-color: #eb2929;
  }

  .btn-red .badge {
    color: #eb2929;
    background-color: #FFFFFF;
  }

/* color styles
------------------------------------------------------- */

  .text-primary{ 
    color: #ec2626 !important;
  }
  .border-primary {
    border-color: #ec2626 !important;
  }
  .bg-primary {
      background-color: #ec2626 !important;
  }

  a.text-primary:hover,
  a.text-primary:focus {
    color: #ec2626 !important;
  }

  .bg-dark {
    background-color: #343a40 !important;
  }
  


/* Google Map styles
------------------------------------------------------- */
.map-responsive{
    overflow:hidden;
    padding-bottom:50%;
    position:relative;
    height:0;
}
.map-responsive iframe{
    left:0;
    top:0;
    height:100%;
    width:100%;
    position:absolute;
} 

/* topnav styles
------------------------------------------------------- */

#topnav.bg-primary .list-inline-item a {
    color: #FFFFFF;
}

#topnav.bg-primary #menu-top-nav,
#topnav .social-icons {
    margin: 0;
}

/* card styles
------------------------------------------------------- */

#cardfx .card-text {
  font-size: .75rem;
}

a.card-link .card,
.card-link.card{
  transition: 0.3s;
}
a.card-link .card:hover,
.card-link.card:hover{
  box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important;
  background-color: #f8f9fa !important;
}

a.card-link .card-title,
.card-link .card-title  {
  color: #212529;
  font-weight: 700 !important;
}
a.card-link .card-text,
.card-link .card-text  {
  color: #212529;
  text-decoration: none;
}

/* gravity form styles
------------------------------------------------------- */

#gform_wrapper_2.gform_wrapper .gform_footer input.button, .gform_wrapper .gform_footer input[type="submit"], 
#gform_wrapper_2.gform_wrapper .gform_page_footer input.button, 
#gform_wrapper_2.gform_wrapper .gform_page_footer input[type="submit"] {
	width: auto;
}
#gform_wrapper_2.gform_wrapper .gform_footer {
  padding: 0;
  margin: 0;
  clear: both;
  width: 100%;
}
#gform_wrapper_2.gform_wrapper ul.gform_fields li.gfield {
	padding-right: 5px;
}
#gform_wrapper_2.gform_wrapper {
	margin-bottom: 0;
	margin-top: 0;
	max-width: 100%;
}
#gform_wrapper_2.gform_wrapper #field_2_13 .gfield_label {
  margin-top: 15px;
}
#gform_wrapper_2.gform_wrapper li.hidden_label input {
	margin-top: 0;
}
#gform_wrapper_2.gform_wrapper .top_label .gfield_label, 
#gform_wrapper_2.gform_wrapper legend.gfield_label {
  line-height: .5;
}
#gform_wrapper_2.gform_wrapper ul.gfield_checkbox li label, 
#gform_wrapper_2.gform_wrapper ul.gfield_radio li label {
	display: inline;
}
#gform_wrapper_2.gform_wrapper li.gf_list_inline ul.gfield_checkbox li, 
#gform_wrapper_2.gform_wrapper li.gf_list_inline ul.gfield_radio li {
	margin: 0 8px 0px 0;
}
#gform_wrapper_2.gform_wrapper ul li.field_description_below div.ginput_container_checkbox, 
#gform_wrapper_2.gform_wrapper ul li.field_description_below div.ginput_container_radio {
	margin-top: 0;
	margin-bottom: 0;
}
#gform_wrapper_2.gform_wrapper .gfield_checkbox li, .gform_wrapper .gfield_radio li {
	line-height: 1.3;
}

@media screen and (max-width: 480px) {
}
@media screen and (max-width: 768px) {
}
@media screen and (max-width: 992px) {
}
@media screen and (max-width: 1200px) {
}
@media screen and (min-width: 1400px) {
  .interior-form {
    position: relative;
    top: -100px;
    margin-bottom: -100px;
  } 
}

/* iframe styles
------------------------------------------------------- */

iframe#inlineframe {
	width: 99%;
	height: 110%;
	overflow: hidden;
	*width: 100%;
	*height: 100% !important;
	*overflow: scroll;
}

/* footer styles
------------------------------------------------------- */
#footer .social-icons a {
	color: #fff;
}
#footer .social-icons {
	margin: 0 !important;
}
#footer .social-icons.float-end {
	float: none !important;
}
#footer .list-group-item {
  border: 0;
  text-decoration: none;
}

#footer a,
#footer a:hover {
  text-decoration: none;
}

/* BS5 style-parity — match production computed CSS (report 2026-08-29)
------------------------------------------------------- */
:root {
  --bs-font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-text-align: left;
  --bs-nav-link-color: rgba(0, 0, 0, 0.5);
  --bs-nav-link-hover-color: rgba(0, 0, 0, 0.7);
  --bs-nav-link-font-size: 1rem;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-padding-x: 1rem;
  --bs-primary: #ec2626;
  --bs-primary-rgb: 236, 38, 38;
  --bs-dark: #343a40;
  --bs-dark-rgb: 52, 58, 64;
  --bs-border-radius: 4px;
  /* BS4 $border-radius-sm/-lg are .2rem/.3rem; both were pinned to the base 4px, so
     .btn-lg fell short and .btn-sm ran over. .btn-lg is what the store locator's
     buttons use, and the page-scoped 4.8px/8px-16px overrides that papered over it
     were also hitting every other .btn-primary on /locations/ and /services/house-plans/,
     inflating those buttons to 42px against production's 38px. */
  --bs-border-radius-sm: 3.2px;
  --bs-border-radius-lg: 4.8px;
  --bs-link-decoration: none;
  --bs-link-color: #212529;
  --bs-link-hover-color: #212529;
  /* BS5.3 reboot resolves `a` from --bs-link-color-rgb, not --bs-link-color, so the
     pins above never reached it and every unthemed link rendered the BS5 #0d6efd
     instead of production's BS4 $link-color #007bff / $link-hover-color #0056b3. */
  --bs-link-color-rgb: 0, 123, 255;
  --bs-link-hover-color-rgb: 0, 86, 179;
}

/* label reboot — BS4 sets `label { display: inline-block; margin-bottom: .5rem }`,
   BS5 dropped it in favour of .form-label. Gravity Forms' legacy markup uses bare
   <label>, so every field row on the contact form lost 6.8px of leading. */
label {
  display: inline-block;
  margin-bottom: 0.5rem;
}

/* BS4 zeroes it again on check/radio labels */
.form-check-label {
  margin-bottom: 0;
}

/* form controls — BS4 $input-color #495057 / $input-border-color #ced4da vs the
   BS5 #212529 / #dee2e6 defaults. Also covers the mobile nav search field, which
   carries .form-control inside form.search-form. */
form .form-control {
  color: rgb(73, 80, 87);
  border-color: rgb(206, 212, 218);
}

/* BS4 $input-placeholder-color #6c757d vs BS5 var(--bs-secondary-color) */
form .form-control::placeholder {
  color: rgb(108, 117, 125);
}

/* BS4 .card-body padding 1.25rem vs BS5 1rem — the 4px per side is why every
   card title, card text and heading inside a card measures 8px wider than production */
.card-body {
  padding: 1.25rem;
}

/* The store locator markup uses .modal-body outside a .modal. BS5 resolves its padding
   from var(--bs-modal-padding), which is only declared on .modal, so the padding collapses
   to 0 and every descendant renders 32px wider than production's BS4 1rem. */
.modal-body {
  padding: 1rem;
}

/* .form-inline was dropped in BS5. Production still lays the header search form out
   as an inline flex row, which sizes the search field and — through the navbar flex
   row — the header logo. Reinstates the BS4 4.4.1 declarations this markup uses. */
.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

@media (min-width: 576px) {
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }

  .form-inline .input-group {
    width: auto;
  }
}

/* link text-decoration — BS5 reboot underline vs production (BS4) none */
a,
a:hover,
a:focus {
  text-decoration: none;
}

/* body reboot — BS5 system-ui stack and text-align start */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

/* list reboot — BS5 adds `ol, ul { padding-left: 2rem }`, BS4 kept the 40px browser
   default, so unstyled lists and everything inside them run 8px narrower than production.
   Bootstrap's own list components (.navbar-nav, .list-inline, .list-unstyled,
   .dropdown-menu) set padding-left: 0 at higher specificity and are unaffected. */
ol,
ul {
  padding-left: 40px;
}

/* heading typography — text-align left, prod font stack */
h1 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

h2 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
  margin-bottom: 8px;
}

h5 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  margin-bottom: 12px;
  text-align: left;
}

h6 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

#content h1,
#content h2,
#content h3,
#content h4,
#content h5 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

#content h5 {
  margin-bottom: 12px;
}

#content h3 {
  margin-bottom: 8px;
}

main h1,
main h2,
main h3 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

main h2,
main h3 {
  text-align: left;
}

main h3 {
  margin-bottom: 8px;
}

article h2 {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

/* card typography */
.card-text,
p.wp-block-paragraph,
main p.wp-block-paragraph {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

.card-title,
.card-link .card-title {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  margin-bottom: 12px;
  text-align: left;
}

/* breadcrumbs */
#breadcrumbs {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  text-align: left;
}

/* grid gutters — BS4 4.4.1 ships $grid-gutter-width: 30px, so containers pad 15px,
   rows pull back -15px and columns pad 15px. BS5's --bs-gutter-x default is 1.5rem,
   which pads 12px instead. Every .row therefore measures 6px narrower on the upgrade
   and every column content box 4.5px wider, which the aspect-ratio images resize
   against — the footer brand runs 1.36px taller and each page banner a few pixels
   shorter, so nearly every page ends up a few pixels off production's height. */
.row {
  margin-right: -15px;
  margin-left: -15px;
}

.row > .col,
.row > [class*="col-"] {
  padding-right: 15px;
  padding-left: 15px;
}

/* BS4 padded grid columns only. BS5's `.row > *` pads every child, which is what
   inset the full-bleed .banner image inside .container-fluid > .row. */
.row > :not(.col):not([class*="col-"]) {
  padding-right: 0;
  padding-left: 0;
}

/* .no-gutters compat — BS5 dropped the class, but saved block content in the
   database still emits it, so those rows would take the default 1.5rem gutters.
   .g-0 / .gx-0 are the BS5 replacements the codemod wrote into the templates; they
   zero --bs-gutter-x, which the .row pins above would otherwise override. */
.row.no-gutters,
.row.g-0,
.row.gx-0 {
  margin-right: 0;
  margin-left: 0;
}

.row.no-gutters > *,
.row.no-gutters > .col,
.row.no-gutters > [class*="col-"],
.row.g-0 > *,
.row.gx-0 > * {
  padding-right: 0;
  padding-left: 0;
}

/* font-weight-bold compat — BS5 renamed it to fw-bold, but the class is stored on the
   "Request A Quote" menu item in the database, so no codemod reaches it. Without this the
   item renders 400, is 6.8px narrower than production, and the navbar flex row resizes the
   header logo. !important matches the BS4 utility declaration. */
.font-weight-bold {
  font-weight: 700 !important;
}

/* text-right compat — renamed to text-end in BS5, still emitted from page content */
.text-right {
  text-align: right !important;
}

/* container gutters — BS5 defaults 12px per side, BS4 15px. .container-fluid wraps
   the full-width page banner, so its 3px is what narrows the banner image. */
.container,
.container-fluid {
  padding-left: 15px;
  padding-right: 15px;
}

#header .container {
  padding-left: 15px;
  padding-right: 15px;
}

/* navbar link color — BS5 nav-link 0.65 vs prod 0.5 (sm-md), 0.9 (lg+).
   Horizontal padding is 0 below lg on production (BS4 .navbar-nav .nav-link);
   the lg+ 8px comes back in the min-width: 992px block below. */
#navbar .navbar-nav .nav-link {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.5;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0;
  padding-right: 0;
  color: rgba(0, 0, 0, 0.5);
  border-top-color: rgba(0, 0, 0, 0.5);
  border-bottom-color: rgba(0, 0, 0, 0.5);
  text-decoration: none;
}

/* BS4 `.navbar-light .navbar-nav .nav-link:hover` — darkens only while the pointer is
   on the parent link itself. Do not use `li:hover > .nav-link`: the submenu stays open
   via `li:hover` but prod lightens the parent once the cursor moves to a dropdown-item. */
#navbar .navbar-nav .nav-link:hover,
#navbar .navbar-nav .nav-link:focus {
  color: rgba(0, 0, 0, 0.7);
  border-top-color: rgba(0, 0, 0, 0.7);
  border-bottom-color: rgba(0, 0, 0, 0.7);
}

/* BS4 `.navbar-nav .active > .nav-link` — only the current menu parent/item runs
   at 0.9; inactive siblings stay at the default 0.5. A prior products-page override
   forced every link to 0.9 and made the nav look uniformly bold. */
#navbar .navbar-nav .active > .nav-link {
  color: rgba(0, 0, 0, 0.9);
  border-top-color: rgba(0, 0, 0, 0.9);
  border-bottom-color: rgba(0, 0, 0, 0.9);
}

.dropdown-item,
.dropdown-item:hover,
.dropdown-item.active,
.dropdown-item:active {
  text-decoration: none;
}

#sidenav li a,
#sidenav .page-item a {
  text-decoration: none;
}

.widget ul li a,
article h3 a {
  text-decoration: none;
}

@media (min-width: 992px) {
  /* v1.0.24 — BS5 nav-link padding 16px vs prod 8px (lg–xxl, all pages) */
  #header .navbar-nav .nav-link {
    padding-left: 8px;
    padding-right: 8px;
  }
}

/* header logo — production sizes the brand from the flex row: the anchor carries an
   inline width:220px and shrinks with the navbar, and the image is capped to the anchor.
   No dimensions pinned here; the .form-inline shim above is what restores the row. */
#logo.navbar-brand.logo img {
  max-width: 100%;
}

/* BS4 .small/small is 80% of the parent, BS5 is 0.875em. #topnav carries .small, so
   the whole dark bar — and everything the header pushes down — sat 3.6px taller on the
   upgrade. Pinning the scale fixes the container rather than each link inside it. */
.small,
small {
  font-size: 80%;
}

/* topnav / footer social typography. No font-size or line-height here: both sit inside
   a .small ancestor, so the 80% above already carries them. Pinning 12.8px instead let
   the glyph box snap to 12.8 exactly where production's 80%-of-16px snaps to 12.796875,
   and that 1/64px ran the topnav and footer rows 0.01px tall on every page. */
#topnav .menu-item a,
#footer .social-icons a {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* btn-primary — BS4 blue vs BS5 #0d6efd.
   No width here: production leaves buttons at their intrinsic width and lets the
   store locator plugin's own width:100% through. No border-radius either: a flat
   declaration outranks BS5's .btn-sm/.btn-lg variants and flattened every sized
   button to the base radius — the :root --bs-border-radius-* pins cover it. */
.btn-primary {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  background-color: rgb(0, 123, 255);
  border-color: rgb(0, 123, 255);
}