.fa6, .fa6b, .fa6l{
  font-family: 'Font Awesome 6 Pro' !important;
}
.fa6b{
  font-weight: bold !important;
}
.fa6l{
  font-weight: 300 !important
}
.fa-twitter:before {
  content: "\e61b"  !important;
  font-family: 'Font Awesome 6 Brands';
}
.no-sidebar .entry-content > .alignfull{
  max-width: 100vw;FV
  max-width: calc(var(--vw, 1vw) * 100);
  width: 100vw;
  width: calc(var(--vw, 1vw) * 100);
  transform: translateX(-50%);
  left: 50%;
  position: relative;
}
.kt-inner-column-height-full.kt-tab-layout-inherit:not(.kt-row-layout-row)>.wp-block-kadence-column>.kt-inside-inner-col, .kt-inner-column-height-full.kt-tab-layout-row>.wp-block-kadence-column>.kt-inside-inner-col{
  height: 100% !important;
}
.no-sidebar .entry-content > .alignfull{
  transform: unset;
  width: 100%;
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50%;
  margin-left: -50vw;
}
.no-sidebar .entry-content > .alignfull{
	margin-top: 0;
	margin-bottom: 0;
}

.wp-block-media-text:not(.has-media-on-the-right) .wp-block-media-text__content{
  padding-right: 0;
}
.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content{
  padding-left: 0;
}
.wp-block-columns{
  margin-bottom: 0;
}
p:empty{
  display: none;
}
#back-to-top{
	position: fixed;
	bottom: 0;
	left: 10px;
	background: #c1272d;
	padding: 5px 10px;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
	color: #fff;
	border: 0;
	z-index: 9999;
}
.tab-slider .kt-tabs-title-list{
  display: none !important;
}
.tab-slider .kt-tabs-content-wrap .wp-block-kadence-tab{
  padding: 0 !important;
  outline: none !important;
  border: 0 !important
}
.tab-slider .kt-tabs-content-wrap .ab-block-container{
  position: relative;
}
.tab-slider .kt-tabs-content-wrap .ab-block-container:before{
  content: '';
  padding-bottom: 30%;
  display: block;
  position: relative;
}
.tab-slider .kt-tabs-content-wrap .ab-block-container .ab-container-content{
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  left: 50%;
  width: 100%;
  z-index: 20
}
.thumbnail.square, .thumbnail.rectangular{
  position: relative;
}
.thumbnail.square:before, .thumbnail.rectangular:before{
  content: '';
  padding-bottom: 100%;
  position: relative;
  display: block;
}
.thumbnail.rectangular:before{
  padding-bottom: 56%;
}
.thumbnail.square img, .thumbnail.rectangular img{
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  height: 100%; width: 100%; object-fit: cover;
}
#page .pagination{
  display: block;
  margin: 20px 0;
}
#page .pagination .page-numbers{
  padding: 3px 12px 5px;
  border: 1px solid;
  margin-right: 5px;
  border-radius: 2px;
  text-decoration: none !important
}
#page .pagination .page-numbers.current, #page .pagination .page-numbers:hover{
  background: #ddd;
  text-decoration: none;
}
#page .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), #page .gform_wrapper select, #page .gform_wrapper textarea{
  width: 100%;
  padding: 10px;
  border: 1px solid #666666 !important;
  line-height: unset;
  box-shadow: none;
  background: #1A1A1A;
  min-height: unset;
  outline: none;
}
#page .gform_wrapper .gform_footer{
  margin-top: 20px;
}
.kb-blocks-bg-video-container .fluid-width-video-wrapper{
  padding-top: 0 !important;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.offset-to-left, .offset-to-right{
  width: calc(100% + ((100vw - 1140px) / 2));
}
.offset-to-left{
  margin-left: calc(((100vw - 1140px) / 2)* -1);
}

.wcs-territory { background: #1a1a1a; padding: 60px 0 0; color: #fff; }
.wcs-territory__inner { max-width: 1250px; margin: 0 auto; padding: 0 20px; }

.wcs-territory__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 60px;
	align-items: start;
}

/* ---- Map ---- */
.wcs-map-wrap { max-width: 420px; }
.wcs-map-wrap svg { width: 100%; height: auto; display: block; }
.wcs-state {
	fill: #c9d2d4;
	stroke: #1a1a1a;
	stroke-width: 1.2;
	cursor: pointer;
	transition: fill 0.2s ease;
}
.wcs-state:hover { fill: #a9b7ba; }
.wcs-state.is-active { fill: #4b8baa; }
.wcs-state.is-empty-active { fill: #4b8baa; }

/* ---- Reps panel ---- */
.wcs-reps-panel { color: #fff; }
.wcs-reps-header h3 {
	font-size: 20px; font-weight: 800; letter-spacing: 0.04em;
	margin: 0 0 6px; color: #fff; text-transform: uppercase;
}
.wcs-reps-header p { margin: 0 0 24px; color: #9aa0a0; font-size: 13px; letter-spacing: 0.03em; text-transform: uppercase; }

.wcs-reps-scroll {
	max-height: 520px;
	overflow-y: auto;
	padding-right: 18px;
	scrollbar-width: thin;
	scrollbar-color: #c1272d #2b2b2b;
}
.wcs-reps-scroll::-webkit-scrollbar { width: 6px; }
.wcs-reps-scroll::-webkit-scrollbar-track { background: #2b2b2b; }
.wcs-reps-scroll::-webkit-scrollbar-thumb { background: #c1272d; border-radius: 3px; }

.wcs-region { padding: 18px 0 18px 16px; border-bottom: 1px solid rgba(255,255,255,0.12); transition: background-color 0.4s ease; }
.wcs-region:first-child { padding-top: 0; }
.wcs-region.is-highlighted { background-color: rgba(75,139,170,0.12); }

.wcs-region-title {
	color: #c1272d; font-size: 13px; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; margin: 0 0 12px;
}
.wcs-rep { margin-bottom: 14px; }
.wcs-rep:last-child { margin-bottom: 0; }
.wcs-rep-name { font-size: 15px; font-weight: 800; letter-spacing: 0.03em; margin: 0 0 4px; text-transform: uppercase; }
.wcs-rep-phone { margin: 0 0 2px; font-size: 14px; color: #d9d9d9; }
.wcs-rep-email { margin: 0; font-size: 14px; }
.wcs-rep-email a { color: #d9d9d9; text-decoration: underline; }
.wcs-rep-email a:hover { color: #fff; }

.wcs-region--empty .wcs-empty-msg { color: #9aa0a0; font-size: 14px; line-height: 1.6; margin: 0; }
.wcs-region--empty .wcs-empty-msg a { color: #c1272d; text-decoration: underline; }

/* ---- Directory ---- */
.wcs-directory {
	margin-top: 60px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 5px;
}
.wcs-directory-col {
	background: #232323;
	padding: 30px;
	border-top: 4px solid #4e4f4f;
}
.wcs-directory-col--red { border-top-color: #c1272d; }
.wcs-directory-col--blue { border-top-color: #4b8baa; }
.wcs-directory-col--gray { border-top-color: #A3B0B4; }

.wcs-directory-col h4 {
	color: #c1272d; font-size: 13px; font-weight: 800; letter-spacing: 0.08em;
	text-transform: uppercase; margin: 0 0 14px;
}
.wcs-directory-col--blue h4 { color: #4b8baa; }
.wcs-directory-col--gray h4 { color: #fff; }

.wcs-directory-desc { color: #9aa0a0; font-size: 13px; line-height: 1.6; margin: 0 0 20px; }

.wcs-directory-person { margin-bottom: 20px; }
.wcs-directory-person:last-child { margin-bottom: 0; }
.wcs-directory-person .wcs-rep-name { margin-bottom: 2px; }
.wcs-directory-person .wcs-rep-title { margin: 0 0 6px; font-size: 13px; color: #9aa0a0; text-transform: uppercase; letter-spacing: 0.03em; }
.wcs-directory-person .wcs-rep-phone { font-size: 13px; }
.wcs-directory-person .wcs-rep-email a { font-size: 11px; }

@media (max-width: 900px) {
	.wcs-territory__grid { grid-template-columns: 1fr; gap: 40px; }
	.wcs-map-wrap { max-width: 340px; margin: 0 auto; }
	.wcs-directory { grid-template-columns: 1fr; }
}

@media (max-width: 1200px){
  .offset-to-left, .offset-to-right{
    width: 100%;
  }
  .offset-to-left{
    margin-left:0
  }
  #nav_menu-2 ul, #nav_menu-2 ul li{
    padding: 0;
  }
  .container{
    width: 100%;
  }
  #nav-toggle span, #nav-toggle span:before, #nav-toggle span:after{
    background: #e6e6e6;
  }
  #nav-toggle{
    position: relative;
    top: 0;
    display: block
  }
  .onepress-menu{
    top: 0 !important;
    height: 100% !important;
    position: fixed !important;
    bottom: 0;
    right: 0;
    max-width: 400px;
    padding-top: 70px;
    padding-left: 30px;
    padding-right: 30px;
    margin-top: 0 !important;
    background: #1a1a1a !important;
  }
  .onepress-menu.onepress-menu-mobile a{
    color: #fff ;
  }
  .onepress-menu.onepress-menu-mobile li{
    background: transparent;
  }
  .onepress-menu.onepress-menu-mobile li a{
    padding-left: 0; padding-right: 0;
    text-transform:normal;
  }
  .onepress-menu ul, .onepress-menu ul li a{
    background: transparent;
  }
  .onepress-menu a{
    font-size: 20px;
  }

  .onepress-menu .nav-toggle-subarrow{
    left: unset !important;
    right: 0;
  }
  .onepress-menu .nav-toggle-subarrow{
    border-left: 0 !important;
  }

  .onepress-menu.onepress-menu-mobile > li > a, .onepress-menu.onepress-menu-mobile .nav-toggle-subarrow{
    padding: 20px;
  }
  .onepress-menu{
    transition: right .2s;
    right: -100%;
  }
  .onepress-menu.onepress-menu-mobile{
    right: 0;
    box-shadow: 2px -5px 9px #a6a6a6
  }
  .onepress-menu.onepress-menu-mobile ul li a{
    padding: 12px 20px;
  }
  .onepress-menu{
    transform: none;
  }
  #nav-toggle.nav-is-visible {
    position: fixed;
    top: 30px;
    z-index: 10000000;
    right: 30px;
  }
  #nav-toggle.nav-is-visible span:before, #nav-toggle.nav-is-visible span:after{
    background: #fff;
  }
  .onepress-menu li ul:before{
    display: none;
  }
  .onepress-menu > li >ul{
    padding: 0 0px 0 20px !important;
  }
  #nav-toggle span{
    width: 36px;
  }
  #nav-toggle span:before, #nav-toggle span:after{
    width: 30px;
  }
  #nav-toggle.nav-is-visible span:after{
    top: 10px;
  }
  #nav-toggle.nav-is-visible span:before{
    top: -10px;
  }
  #content-inside {
    padding: 0 25px;
  }
  .entry-content > .alignfull.gb-block-container:not(.full-width-content) > div > .gb-container-content,
  .entry-content > .alignfull:not(.full-width-content) > div > .kt-row-column-wrap,
  .entry-content > .alignfull:not(.full-width-content) > .kt-row-column-wrap{
    padding-left: 25px !important;
    padding-right: 25px !important;
  }
  #masthead .overlay{
    position: fixed;
    top: 0; left: 0; bottom: 0;
    background: #000;
    opacity: 0;
    right: -100%;
    transition: opacity .5s;
    z-index: 100;
    width: 0;
  }
  #masthead .nav-is-visible + .overlay{
    right: 0;
    width: 100%;
    opacity: 0.6;
  }
}

@media (max-width: 600px){
  .wp-block-media-text.is-stacked-on-mobile{
    display: block;
  }
  .wp-block-media-text .wp-block-media-text__media{
    margin-bottom: 20px;
  }
  .wp-block-media-text .wp-block-media-text__content{
    padding-left: 0;
    padding-right: 0;
  }
}

/* ==========================================================================
   Tablet & mobile responsiveness (site-wide)
   ========================================================================== */

/* The mobile slide-out nav drawer (position:fixed; right:0;) was inheriting
   the desktop-only ".onepress-menu{ margin-right:107px }" from style.css,
   which pushes a fixed, right:0 element 107px off the right edge of the
   screen, leaving a blank gap and shifting the drawer out of alignment. */
@media (max-width: 1200px){
  .onepress-menu{
    margin-right: 0 !important;
  }
}

/* Responsive heading scale. h1-h4 are fixed desktop sizes (up to 54px) with
   no smaller-screen scaling anywhere else, which is too large/cramped on
   tablet and phone widths, especially where content forces <br> line breaks. */
@media (max-width: 1024px){
  h1, h2{ font-size: 34px; }
  h3{ font-size: 30px; }
  h4{ font-size: 21px; }
}
@media (max-width: 600px){
  h1, h2{ font-size: 32px; }
  h3{ font-size: 25px; }
  h4{ font-size: 19px; }
}

/* Large decorative arrow background images (up to 606px wide) overflow and
   visually overwhelm tablet/phone layouts; hide them below desktop widths. */
@media (max-width: 1024px){
  .with-big-arrow-icon-left-right:before,
  .with-big-arrow-icon-left-right:after{
    display: none;
  }
}

/* Stats band arrows: keep both arrows on tablet + mobile, just smaller */
@media (max-width: 1024px){
  .with-bg-arrow-left-right{ overflow: hidden; }
  .with-bg-arrow-left-right::before,
  .with-bg-arrow-left-right::after{
    display: block !important;
    width: 200px !important;
    top: 0 !important;
    height: 100% !important;
    background-size: auto 100% !important; /* fill full height so it touches the bottom */
    background-position: left center !important;
  }
  .with-bg-arrow-left-right::before{ left: -90px !important; }
  .with-bg-arrow-left-right::after{ right: -90px !important; }
  .with-bg-arrow-left-right > .kt-row-column-wrap{
    position: relative;
    z-index: 2;
  }
}
@media (max-width: 767px){
  .with-bg-arrow-left-right::before,
  .with-bg-arrow-left-right::after{
    width: 130px !important;
  }
  .with-bg-arrow-left-right::before{ left: -75px !important; }
  .with-bg-arrow-left-right::after{ right: -75px !important; }

  /* Stats: 2 x 2 grid, no divider lines */
  .kb-row-layout-id37_08291f-ee > .kt-row-column-wrap{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: 30px !important;
  }
  .kb-row-layout-id37_08291f-ee .kt-inside-inner-col{
    border: 0 !important;
  }
}

/* Footer widget columns: #footer-2 (Company / For Partners) and the
   #text-5 Territory widget (two state lists) are flex rows with fixed
   100px/50px gaps. Below the point where their Bootstrap column becomes
   full width (768px) that gap is too wide and crowds/overflows the lists. */
@media (max-width: 768px){
  #footer-2{
    flex-direction: column;
    gap: 10px;
  }
  #text-5 .textwidget{
    flex-direction: column;
    gap: 0;
  }
}

/* Core block-library CSS (which normally forces content images to
   max-width:100%) isn't enqueued by this theme, so any image block with a
   manually-resized inline width (e.g. style="width:470px" on the Training
   page) overflows the viewport on tablet/phone widths instead of scaling
   down. Apply the same safety net core WP would have provided. */
.entry-content img,
.wp-block-image img,
.wp-block-media-text__media img{
  max-width: 100%;
  height: auto;
}

/* "Our Territory" map + rep list + directory (About page) */
@media (max-width: 600px){
  .wcs-territory{ padding-top: 40px; }
  .wcs-map-wrap{ max-width: 100% !important; }
  .wcs-reps-header h3{ font-size: 17px; }
  .wcs-reps-scroll{
    max-height: 60vh !important;
    padding-right: 12px;
  }
  .wcs-directory-col{ padding: 24px 20px; }
}

@media (max-width: 425px) {
	.eyebrow {	
    	font-size: 15px;
	}
}

/* ==========================================================================
   Moved from Appearance > Customize > Additional CSS
   ========================================================================== */

/* Stay Connected socials – card hover */
.stay-connected-socials .kb-section-link-overlay::after {
  display: none !important;
}
.stay-connected-socials .kb-section-has-link > .kt-inside-inner-col {
  transition: transform .3s ease, background-color .3s ease, box-shadow .3s ease;
}
.stay-connected-socials .kb-section-has-link:hover > .kt-inside-inner-col {
  transform: translateY(-6px);
  background-color: #333232;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .45);
}
.stay-connected-socials .kb-section-has-link svg,
.stay-connected-socials .kb-section-has-link img {
  transition: transform .3s ease;
}
.stay-connected-socials .kb-section-has-link:hover svg,
.stay-connected-socials .kb-section-has-link:hover img {
  transform: scale(1.12);
}

/* Mobile menu – hover/focus color (overrides parent theme black) */
.onepress-menu.onepress-menu-mobile a:hover,
.onepress-menu.onepress-menu-mobile a:focus,
.onepress-menu.onepress-menu-mobile a:active {
  color: #c1272d !important;
}

/* Mobile menu – remove parent theme's light top/bottom border */
.onepress-menu.onepress-menu-mobile {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* Who We Serve cards – tablet sizing */
@media (min-width: 768px) and (max-width: 1024px) {
  .who-we-serve-wrapper .eyebrow {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: .1em;
    margin-bottom: 12px;
  }
  .who-we-serve-wrapper h4 {
    line-height: 1.3;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .who-we-serve-wrapper .wp-block-kadence-column > .kt-inside-inner-col {
    padding-bottom: 85px;
  }
  .who-we-serve-wrapper .cta-btn {
    font-size: 13px;
    line-height: 1.4;
    letter-spacing: .1em;
    padding-right: 32px;
    left: 22.5px;
    right: 22.5px;
    width: auto;
  }
  .who-we-serve-wrapper .cta-btn::after {
    top: 50%;
    transform: translateY(-50%);
  }
}

/* Global h4 – fluid size (17px phones → 23px desktop) */
body h4 {
  font-size: clamp(17px, calc(1.6vw + 5px), 23px);
}

/* Red-arrow lists – align arrow with the first line of each item */
#page ul.arrow-red-icon li::before {
  top: .75em;
}

/* Mobile buttons – full width, equal sizes, label on one line */
@media (max-width: 767px) {
  #page .wp-block-buttons > .wp-block-button {
    width: 100%;
  }
  #page .wp-block-buttons > .wp-block-button > .wp-block-button__link {
    min-width: 0;
    width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    font-size: 16px;
  }
}

/* Training events – mobile: Location | Representative on one line */
@media (max-width: 768px) {
  .training-events td.training-events__location,
  .training-events td.training-events__representatives {
    display: inline-block;
    width: auto !important;
  }
  .training-events td.training-events__representatives::before {
    content: "|";
    margin: 0 10px;
    color: #bdbdbd;
    font-weight: 400;
  }
}

/* Training events – tablet: stack logo above the event title */
@media (min-width: 769px) and (max-width: 1024px) {
  .training-events .training-events__event {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

/* Footer – center social icons on mobile */
@media (max-width: 767px) {
  .cnss-social-icon {
    text-align: center !important;
  }
}

/* Footer widget titles – keep on one line at tablet */
@media (min-width: 768px) and (max-width: 1024px) {
  .sidebar.footer-column .widget .widget-title {
    font-size: 13px;
    letter-spacing: 1px;
  }
}

/* Team bio popup – open above the sticky header immediately */
body.tm-modal-open #masthead,
body.tm-modal-open header.site-header {
  transition: none !important;
}
.kt-row-column-wrap:has(.tm-modal-overlay.is-open),
.wp-block-kadence-column:has(.tm-modal-overlay.is-open) {
  z-index: 10000 !important;
}

/* Footer – keep titles on one line and space Company / For Partners / Territory equally */
@media (min-width: 769px) {
  #footer-2 {
    justify-content: space-between;
    gap: 20px;
    padding-right: 0;
  }
  #footer-2::after {
    content: "";
    flex: 0 0 0;
  }
  #footer-2 > .widget {
    flex: 0 0 auto;
  }
  #footer-3 {
    padding-left: 0;
  }
  .footer-widgets .widget-title {
    white-space: nowrap;
  }
}

/* Training stats – "Variable" matches the number sizes on tablet/mobile */
@media (max-width: 1024px) {
  .black-box-wrapper h2.wp-block-heading[style*="font-size"] {
    font-size: 34px !important;
  }
}
@media (max-width: 767px) {
  .black-box-wrapper h2.wp-block-heading[style*="font-size"] {
    font-size: 32px !important;
  }
}
