/* Pump Action — Trade Counter pages
   Tokens match the Elementor globals; breakpoints match the site (tablet ≤1024, mobile ≤767). */
:root{
  --tc-navy:#130F27; --tc-blue:#0060A9; --tc-orange:#FBB040; --tc-white:#fff; --tc-grey:#F1F1F1; --tc-line:#E5E5E5;
  --tc-shadow:0 16px 40px rgba(19,15,39,.18);
}

/* Hide the empty Shortcode widget on pages where the switcher renders nothing */
.tc-switcher-widget:not(:has(.tc-switcher)){display:none}

/* ---------------------------------------------------------------- header switcher */
/* Selectors carry two classes + element so they outrank Hello's reset ([type="button"]) and the kit's `.elementor-kit-N button`. */
.tc-nav{position:relative;font-family:"DM Sans",sans-serif}
.tc-nav button.tc-nav__toggle{
  display:inline-flex;align-items:center;gap:12px;margin:0;padding:12px 22px;min-height:0;width:auto;
  border:0;border-radius:300px;box-shadow:none;outline-offset:3px;
  background:var(--tc-orange);color:var(--tc-white);
  font-family:"DM Sans",sans-serif;font-size:18px;font-weight:700;line-height:normal;letter-spacing:0;text-transform:none;text-decoration:none;
  cursor:pointer;transition:background-color .2s ease;
}
.tc-nav button.tc-nav__toggle svg{width:14px;height:14px;flex:none;transition:transform .2s ease}
.tc-nav button.tc-nav__toggle--icon{width:40px;height:40px;padding:0;justify-content:center;gap:0}
.tc-nav button.tc-nav__toggle--icon .tc-nav__icon{width:22px;height:22px}
.tc-nav button.tc-nav__toggle:hover,
.tc-nav button.tc-nav__toggle:focus-visible,
.tc-nav.is-open button.tc-nav__toggle{background:var(--tc-blue);color:var(--tc-white);border:0;box-shadow:none}
.tc-nav.is-open button.tc-nav__toggle svg:not(.tc-nav__icon){transform:rotate(180deg)}

.tc-nav__panel{
  position:absolute;top:calc(100% + 18px);right:0;z-index:60;min-width:340px;padding:10px;
  background:var(--tc-white);border-radius:20px;box-shadow:var(--tc-shadow);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s;
}
.tc-nav__panel::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px} /* hover bridge */
.tc-nav.is-open .tc-nav__panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}
@media (hover:hover) and (pointer:fine){
  .tc-nav:hover .tc-nav__panel,.tc-nav:focus-within .tc-nav__panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .tc-nav:hover button.tc-nav__toggle,.tc-nav:focus-within button.tc-nav__toggle{background:var(--tc-blue)}
  .tc-nav:hover button.tc-nav__toggle svg:not(.tc-nav__icon){transform:rotate(180deg)}
}
.tc-nav__title{margin:0;padding:10px 14px 8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;color:var(--tc-blue)}
.tc-nav .tc-nav__item{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;
  color:var(--tc-navy);text-decoration:none;font-size:18px;font-weight:700;line-height:1.2;
  transition:background-color .15s ease,color .15s ease;
}
.tc-nav .tc-nav__item svg{width:22px;height:22px;flex:none;fill:var(--tc-orange)}
.tc-nav a.tc-nav__item:hover,.tc-nav a.tc-nav__item:focus-visible{background:var(--tc-grey);color:var(--tc-blue)}
.tc-nav .tc-nav__item[aria-disabled="true"]{color:rgba(19,15,39,.55);font-weight:500;cursor:default}
.tc-nav .tc-nav__item[aria-disabled="true"] svg{fill:#C9C9CF}

/* status tags (header + mega menu) */
.tc-tag{
  margin-left:auto;padding:4px 10px;border-radius:300px;background:var(--tc-grey);color:rgba(19,15,39,.7);
  font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;white-space:nowrap;
}
.tc-tag--open{background:var(--tc-orange);color:var(--tc-white)}

/* mega menu list — sized to match the popup's other lists (18px/22px), tag sits inline after the name */
.custom-list.tc-locations li{display:flex;align-items:center;gap:10px;font-size:18px;line-height:22px;color:var(--tc-white)}
.custom-list.tc-locations li a{color:var(--tc-white)}
.custom-list.tc-locations .tc-tag{margin-left:0;padding:3px 8px;font-size:11px;background:rgba(255,255,255,.16);color:var(--tc-white)}
.custom-list.tc-locations .tc-tag--open{background:var(--tc-orange)}
.custom-list.tc-locations .tc-menu-soon{color:var(--tc-white);opacity:.65}

/* mobile variant: full-width sheet under the menu bar */
@media (max-width:767px){
  .tc-nav--mobile{position:static}
  .tc-nav--mobile .tc-nav__panel{left:0;right:0;top:calc(100% + 8px);min-width:0;padding:8px}
  .tc-nav--mobile .tc-nav__panel::before{display:none}
  .tc-nav--mobile .tc-nav__item{font-size:16px}
  .custom-list.tc-locations li{font-size:16px;line-height:20px}
  .menu-bar:has(.tc-switcher){position:relative}
}

/* ---------------------------------------------------------------- what we stock */
.tc-stock__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.tc-product{display:flex;flex-direction:column;background:var(--tc-white);border:1px solid var(--tc-line);border-radius:20px;overflow:hidden}
.tc-product__media{height:240px;display:flex;align-items:center;justify-content:center;padding:24px;border-bottom:1px solid var(--tc-line)}
.tc-product__media img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.tc-product__body{display:flex;flex-direction:column;gap:8px;padding:24px 28px 28px}
.tc-product h3{margin:0;font:700 24px/30px "DM Sans",sans-serif;color:var(--tc-blue)}
.tc-product p{margin:0;font:400 20px/28px "DM Sans",sans-serif;color:var(--tc-navy)}
.tc-product--cta{justify-content:center;gap:16px;padding:var(--space-md,2rem);background:var(--tc-navy);border-color:var(--tc-navy)}
.tc-product__cta-text{display:flex;flex-direction:column;gap:8px}
.tc-product--cta h3{color:var(--tc-orange);font-size:30px;line-height:34px}
.tc-product--cta p{color:var(--tc-white)}

/* The CTA card always completes the last row of the 3-column grid:
   alone on the row  -> full-width banner (text left, button right)
   one product beside -> spans the remaining two columns
   two beside        -> normal card                                    */
.tc-product--cta:nth-child(3n+1):last-child{grid-column:1 / -1}
.tc-product--cta:nth-child(3n+2):last-child{grid-column:span 2}
.tc-product--cta:nth-child(3n+1):last-child,
.tc-product--cta:nth-child(3n+2):last-child{flex-direction:row;align-items:center;justify-content:space-between;gap:32px;padding:var(--space-md,2rem) var(--space-lg,4rem)}
.tc-product--cta:nth-child(3n+1):last-child .tc-product__cta-text,
.tc-product--cta:nth-child(3n+2):last-child .tc-product__cta-text{flex:1 1 auto;max-width:60ch}
.tc-product--cta:nth-child(3n+1):last-child .tc-btn,
.tc-product--cta:nth-child(3n+2):last-child .tc-btn{margin-top:0;flex:none}
.tc-btn{display:inline-flex;align-items:center;gap:20px;align-self:flex-start;margin-top:8px;padding:12px 24px;border-radius:300px;
  background:var(--tc-blue);color:var(--tc-white);font:700 18px/normal "DM Sans",sans-serif;text-decoration:none;transition:background-color .2s ease}
.tc-btn:hover{background:var(--tc-blue);color:var(--tc-white);filter:brightness(1.1)}
.tc-btn--orange{background:var(--tc-orange)}
.tc-btn--orange:hover{background:var(--tc-blue);filter:none}

/* ---------------------------------------------------------------- manufacturers */
.tc-mfr__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:30px}
.tc-mfr-card{display:grid;place-items:center;min-height:120px;padding:20px;background:var(--tc-white);border:1px solid var(--tc-line);border-radius:20px;
  text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease}
.tc-mfr-card:hover{border-color:var(--tc-blue);box-shadow:0 8px 24px rgba(19,15,39,.08)}
.tc-mfr-card img{width:100%;height:auto;max-height:70px;object-fit:contain}
.tc-mfr-card__name{font:700 16px/1.2 "DM Sans",sans-serif;color:var(--tc-blue);text-align:center}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1024px){
  .tc-stock__grid{grid-template-columns:1fr 1fr}
  .tc-product--cta:nth-child(3n+1):last-child,
  .tc-product--cta:nth-child(3n+2):last-child{grid-column:auto;flex-direction:column;align-items:stretch;justify-content:center;gap:16px;padding:var(--space-md,2rem)}
  .tc-product--cta:nth-child(2n+1):last-child{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;gap:32px}
  .tc-product--cta:nth-child(2n+1):last-child .tc-btn{margin-top:0;flex:none}
  .tc-product__media{height:200px}
  .tc-mfr__grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:767px){
  .tc-stock__grid{grid-template-columns:1fr;gap:20px}
  .tc-product--cta:last-child{grid-column:auto;flex-direction:column;align-items:stretch;gap:16px;padding:var(--space-md,2rem)}
  .tc-product--cta:last-child .tc-btn{margin-top:8px}
  .tc-product__media{height:180px}
  .tc-product h3{font-size:22px;line-height:26px}
  .tc-product p{font-size:16px;line-height:22px}
  .tc-product--cta h3{font-size:22px;line-height:26px}
  .tc-btn{font-size:16px;line-height:20px}
  .tc-mfr__grid{grid-template-columns:1fr 1fr;gap:16px}
  .tc-mfr-card{min-height:96px;padding:16px}
}
@media (prefers-reduced-motion:reduce){
  .tc-nav__panel,.tc-nav__toggle,.tc-nav__toggle svg,.tc-nav__item,.tc-mfr-card{transition:none}
}

/* ---------------------------------------------------------------- find-us map
   Add the CSS class `tc-map-fill` to the Google Maps widget: the map fills its column instead of
   leaving a band under a fixed-height iframe. Complianz wraps the iframe in its own div
   (.cmplz-placeholder-parent), so every child of the embed wrapper is told to fill, not just the iframe. */
.elementor-widget-google_maps.tc-map-fill{flex:1 1 auto;display:flex;align-self:stretch}
.elementor-widget-google_maps.tc-map-fill .elementor-widget-container,
.elementor-widget-google_maps.tc-map-fill .elementor-custom-embed{display:flex;flex:1 1 auto;width:100%}
.elementor-widget-google_maps.tc-map-fill .elementor-custom-embed > *{display:flex;flex:1 1 100%;width:100%;min-width:0;height:100%}
.elementor-widget-google_maps.tc-map-fill iframe{height:100%!important;min-height:560px;width:100%;min-width:0;flex:1 1 100%}
@media (max-width:1024px){.elementor-widget-google_maps.tc-map-fill iframe{min-height:420px}}
@media (max-width:767px){.elementor-widget-google_maps.tc-map-fill iframe{min-height:300px}}
