/* ================================================================
   Bell Equipment — Home Template Styles
   Used by all sites with TemplateKey = "home"
   Brand colours are injected as CSS vars on <body> by _Layout.cshtml:
     --color-primary, --color-secondary,
     --color-btn, --color-btn-hover, --color-btn-text, --color-btn-hover-text
   ================================================================ */

:root {
  --home-max:   1400px;
  --home-dark:  var(--color-secondary, #1a1a1a);
  --home-gold:  var(--color-btn, #FDBA31);
  --home-white: #ffffff;
  --home-grey:  #f5f5f5;
}

/* ── Shared section heading style ────────────────────────────── */
.uk-section-heading {
  background: var(--color-heading-band-bg, #EBEBEB);
  border-top: 5px solid var(--color-primary);
  padding: var(--space-7) var(--space-5);
  text-align: center;
}
.uk-section-heading h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.uk-section-heading h2::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: var(--home-gold);
  margin: 10px auto 0;
}

/* ── Hero Content Overlay ────────────────────────────────────── */
.uk-hero__content {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--home-max);
  padding: 0 30px;
  z-index: 10;
  pointer-events: none;
}
.uk-hero__content h1 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-hero, 2.625rem);
  font-weight: var(--fw-hero, 700);
  color: var(--home-white);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 var(--space-3);
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
  max-width: 640px;
}
.uk-hero__content p {
  font-family: 'Quicksand', sans-serif;
  font-size: 16px;
  color: var(--home-white);
  margin: 0 0 var(--space-5);
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  max-width: 560px;
}
.uk-hero__content .bell-btn {
  pointer-events: all;
}

/* ── Buttons ─────────────────────────────────────────────────── */
.bell-btn {
  display: inline-block;
  padding: var(--space-3) 28px;
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  border-radius: 0;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.15);
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.bell-btn--primary {
  background: var(--color-btn, var(--home-gold));
  color: var(--color-btn-text, #1a1a1a);
}
/* !important on color: group.css has a legacy Elementor ".bell-kit a:hover"
   rule (targets any <a> under the shared .bell-kit body class) whose
   specificity beats a plain .bell-btn--primary:hover, silently overriding
   the configured hover text colour with a hardcoded near-black. */
.bell-btn--primary:hover {
  background: var(--color-btn-hover, #e6a800);
  color: var(--color-btn-hover-text, var(--color-btn-text, #1a1a1a)) !important;
  box-shadow: 0 0 14px 4px rgba(0,0,0,0.25);
}

/* News "read more" uses btn-style1 (bell-site.css) via the .uk-news__readmore .bell-btn--primary selector — white by default, fills on hover.
   Layout is scoped here (not on the shared .bell-btn base, which other pages' hero CTAs also use) to match the sitewide btn-style1 standard
   (padding: 15px 20px, no extra letter-spacing) instead of the wider/looser spacing .bell-btn uses elsewhere. */
.uk-news__readmore .bell-btn--primary {
  padding: 15px var(--space-5);
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-weight: 400;
  letter-spacing: normal;
}

/* ── Stats Bar ───────────────────────────────────────────────── */
.bell-stats-bar {
  background: var(--home-dark);
  padding: var(--space-7) var(--space-5);
}
.bell-stats-bar__grid {
  max-width: var(--home-max);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-8);
}
.bell-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.bell-stat__number {
  font-family: 'Barlow', sans-serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--home-gold);
  line-height: 1;
}
.bell-stat__label {
  font-family: 'Quicksand', sans-serif;
  font-size: 14px;
  color: var(--home-white);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ── CTA Banner ──────────────────────────────────────────────── */
.bell-cta-banner {
  background: var(--home-dark);
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 80px var(--space-5);
  text-align: center;
}
.bell-cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.55);
}
.bell-cta-banner__inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  margin: 0 auto;
}
.bell-cta-banner h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-hero, 2.625rem);
  font-weight: var(--fw-hero, 700);
  color: var(--home-white);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 var(--space-4);
}
.bell-cta-banner p {
  font-family: 'Quicksand', sans-serif;
  font-size: 16px;
  color: rgba(255,255,255,0.85);
  margin: 0 0 28px;
  line-height: 1.6;
}

/* ── Hero Slideshow ──────────────────────────────────────────── */
.uk-hero {
  position: relative;
  width: 100%;
  height: var(--hero-height, 600px);
  overflow: hidden;
  margin-top: -30px;
}
.uk-hero__slideshow {
  position: absolute;
  inset: 0;
}
.uk-hero__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease;
  transform: scale(1);
}
.uk-hero__slide.active {
  opacity: 1;
}
.uk-hero__slideshow.hero-zoom-enabled .uk-hero__slide.active {
  animation: kenBurns 8s ease-in-out forwards;
}
@keyframes kenBurns {
  from { transform: scale(1.05); }
  to   { transform: scale(1); }
}
.uk-hero__cta-overlay {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  z-index: 10;
  pointer-events: none;
}
.uk-hero__slide-cta,
.uk-hero__slide-cta-placeholder {
  display: block;
  opacity: 0;
  transition: opacity 1s ease;
  pointer-events: none;
}
.uk-hero__slide-cta.active {
  opacity: 1;
  pointer-events: all;
}
.uk-hero__slide-cta-placeholder {
  display: none;
}

/* ── Products To Take Your Business Further ──────────────────── */
.uk-products-heading {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-products-heading__inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-products-heading h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}

/* ── Featured Product Cards ──────────────────────────────────── */
.uk-featured-products {
  background: #fff;
  padding: var(--space-9) 0;
}
.uk-featured-products .ps-card__img {
  background: #fff;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uk-featured-products .ps-card__img img {
  object-fit: contain;
  padding: var(--space-3);
  height: 100%;
}
.uk-featured-products__inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-featured-products__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.uk-pcard {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #e0e0e0;
  transition: box-shadow 0.2s;
}
.uk-pcard:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.uk-pcard__img {
  height: 220px;
  background-size: cover;
  background-position: center;
}
.uk-pcard__body {
  padding: var(--space-5) 22px var(--space-6);
  flex: 1;
}
.uk-pcard__title {
  font-family: 'Barlow', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-card-title, #1a1a1a);
  margin: 0 0 10px;
}
.uk-pcard__divider {
  width: 50px;
  height: 3px;
  background: var(--home-gold);
  margin-bottom: var(--space-3);
}
.uk-pcard__desc {
  font-family: 'Quicksand', sans-serif;
  font-size: 14px;
  color: #444;
  line-height: 1.6;
  margin: 0;
}

/* ── Category heading ──────────────────────────────────────── */
.uk-category-heading {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-category-heading__inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-category-heading h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}

/* ── Product Category Grid ───────────────────────────────────── */
.uk-category-grid {
  background: #f5f5f5;
  padding: var(--space-9) 0;
}
.uk-category-grid__inner {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-6);
}
.uk-cat-card {
  flex: 0 0 calc((100% - 48px) / 3);
  position: relative;
  display: block;
  height: 150px;
  overflow: hidden;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.15);
  transition: box-shadow 0.35s ease;
}
.uk-cat-card:hover {
  box-shadow: 0 0 14px 4px rgba(0,0,0,0.25);
}
.uk-cat-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff;
  padding: var(--space-3);
  transition: transform 0.35s ease;
}
.uk-cat-card:hover .uk-cat-card__img {
  transform: scale(1.04);
}
.uk-cat-card__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary, #FFC200);
  transform: translateY(100%);
  transition: transform 0.35s ease;
  padding: 0 var(--space-4);
}
.uk-cat-card:hover .uk-cat-card__overlay {
  transform: translateY(0);
}
.uk-cat-card__overlay h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-btn-hover-text, var(--color-card-title, #1A1A1A));
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: center;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Welcome / Industry Split (home-bessa) ───────────────────── */
.uk-welcome {
  background: #f5f5f5;
  padding: var(--space-9) 0;
}
.uk-welcome__inner {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px;
  display: flex;
  position: relative;
}
.uk-welcome__overlay-link {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.uk-welcome__heading,
.uk-welcome__body {
  background: #fff;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.1);
}
.uk-welcome__heading {
  flex: 0 0 30%;
  display: flex;
  align-items: center;
  padding: var(--space-8) var(--space-7);
  border-right: 3px solid var(--home-gold);
}
.uk-welcome__heading h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #4a5560;
  text-transform: uppercase;
  line-height: 1.3;
  margin: 0;
}
.uk-welcome__body {
  flex: 1 1 70%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: var(--space-8);
}
.uk-welcome__body p {
  font-family: 'Quicksand', sans-serif;
  font-size: 15px;
  color: #444;
  line-height: 1.7;
  margin: 0;
}
.uk-welcome__brochure-btn {
  position: relative;
  z-index: 2;
  align-self: flex-end;
  margin-top: auto;
}

/* ── Proudly Selling & Supporting cards (home-bessa) ─────────── */
.uk-partners {
  background: #f5f5f5;
  padding: var(--space-9) 0;
}
.uk-partners__grid {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-6);
}
.uk-partner-card {
  flex: 0 0 calc((100% - 4 * 24px) / 5);
  position: relative;
  display: block;
  height: 110px;
  overflow: hidden;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.15);
  transition: box-shadow 0.35s ease;
}
.uk-partner-card:hover {
  box-shadow: 0 0 14px 4px rgba(0,0,0,0.25);
}
.uk-partner-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff;
  padding: var(--space-4);
  transition: transform 0.35s ease;
}
.uk-partner-card:hover .uk-partner-card__img {
  transform: scale(1.04);
}
.uk-partners__carousel-wrap {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px;
}
/* !important required — the Swiper CDN bundle resets padding on .swiper with
   equal specificity and wins the cascade tie by load order otherwise. */
.uk-partners-swiper {
  overflow: hidden !important;
  padding: 14px 0 !important;
}
.uk-partners-swiper .swiper-slide {
  height: 110px;
}
.uk-partners-swiper .uk-partner-card {
  flex: none;
  width: 100%;
  height: 100%;
}
.uk-partners-swiper .swiper-button-next,
.uk-partners-swiper .swiper-button-prev {
  color: var(--home-dark);
  --swiper-navigation-size: 20px;
}

/* ── Dealer Locator ──────────────────────────────────────────── */
.uk-dealer-locator {
  background: var(--home-white);
}
.uk-dealer-locator__heading-wrap {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-dealer-locator__heading-inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-dealer-locator__heading-inner h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.uk-dealer-locator__map-wrap {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: var(--space-8) var(--space-5);
}
.uk-dealer-locator__map-ratio {
  position: relative;
  padding-bottom: 50%;
  height: 0;
  overflow: hidden;
}
.uk-dealer-locator__iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── Find a Dealer / Contact Us call-to-action ───────────────── */
.hs-cta {
  background: var(--color-heading-band-bg, #EBEBEB);
  border-top: 5px solid var(--color-primary);
  padding: var(--space-6) var(--space-4);
  text-align: center;
}
.hs-cta__inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.hs-cta__headline {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 var(--space-4);
}
.hs-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

/* ── Dealer Locator Cards ────────────────────────────────────── */
/* Heading band: full-width background, inner row aligns with card bodies */
.dl-cards-heading-band {
  background: var(--color-heading-band-bg, #EBEBEB);
  border-top: 5px solid var(--color-primary);
}
.dl-cards-heading-row {
  max-width: var(--home-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.dl-card__heading {
  padding: var(--space-5);
  text-align: center;
}
.dl-card__heading h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
/* Card bodies: centred, with gap between cards */
.dl-cards-body-wrap {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: var(--space-6) var(--space-9) var(--space-8);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-9);
}
.dl-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, transform 0.2s;
}
a.dl-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.14);
  transform: translateY(-2px);
}
.dl-card__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}
.dl-card__img--placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #e8e8e8;
}
.dl-card__body {
  padding: var(--space-6);
  flex: 1;
}
.dl-card__desc {
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 15px;
  color: #555;
  line-height: 1.65;
  margin: 0;
}
/* ── Optimise Your Investment ────────────────────────────────── */
.uk-optimise {
  background: #f5f5f5;
  padding-bottom: var(--space-9);
}
.uk-optimise__heading-wrap {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-optimise__heading-inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-optimise__heading-inner h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.uk-optimise__carousel-wrap {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: var(--space-8) 50px var(--space-9);
  position: relative;
  overflow: visible;
}
.uk-ocard {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.15);
  transition: box-shadow 0.25s ease;
}
.uk-ocard:hover {
  box-shadow: 0 0 14px 4px rgba(0,0,0,0.25);
}
.uk-ocard__img {
  width: 100%;
  height: 220px;
  object-fit: contain;
  display: block;
  background: #fff;
}
.uk-optimise .uk-ocard__img {
  object-fit: cover;
  background: none;
}
.uk-ocard__shadow {
  width: 100%;
  padding: var(--space-5) var(--space-7);
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.uk-ocard__title {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-card-title, #1a1a1a);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
}
.uk-ocard__divider {
  width: 50%;
  height: 2px;
  background: var(--color-primary, #FFC200);
  margin: 10px auto var(--space-3);
}
.uk-ocard__desc {
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 0.9rem;
  color: #555;
  line-height: 1.6;
  margin: 0;
  min-height: 5.76rem; /* reserve space for 4 lines so all cards match */
}

/* Match the Parts & Service page's .ps-card sizing/spacing (image height,
   body padding, title/divider spacing, description reserve height) so the
   Optimise Your Investment carousel cards read as the same card style. */
.uk-optimise .uk-ocard__img {
  height: 270px;
}
.uk-optimise .uk-ocard__shadow {
  padding: 0 var(--space-7) var(--space-8);
}
.uk-optimise .uk-ocard__title {
  margin: 1.75rem 0 var(--space-1);
}
.uk-optimise .uk-ocard__divider {
  margin: var(--space-3) 0;
}
.uk-optimise .uk-ocard__desc {
  min-height: 5rem;
}

/* Swiper must clip both axes (mixing overflow-x:hidden with overflow-y:visible
   doesn't work — browsers compute the "visible" axis as "auto", which still
   clips box-shadow). Instead, pad the clipping box so card shadows have room
   before they reach the clip edge.
   !important is required — the official Swiper CSS bundle (loaded from a CDN
   later in the page) resets padding on .swiper with equal specificity and
   wins the cascade tie by load order otherwise. */
.uk-optimise-swiper,
.uk-innovation-swiper {
  overflow: hidden !important;
  padding: var(--space-5) !important;
  margin: -20px !important;
}

/* Swiper nav buttons — pushed out into the carousel-wrap's own gutter (past
   the swiper's clipped/padded box) so they sit clearly beside the cards
   instead of overlapping the leading/trailing card's edge, with a white
   circle so they stay visible against dark card images. The button is
   vertically centred on the whole card, which is taller than the card's own
   image — so the circle straddles the image and the white text panel below
   it. A visible border keeps its lower half readable against that white
   panel instead of disappearing into it. */
.uk-optimise__carousel-wrap .swiper-button-next,
.uk-optimise__carousel-wrap .swiper-button-prev,
.uk-innovation__carousel-wrap .swiper-button-next,
.uk-innovation__carousel-wrap .swiper-button-prev {
  width: 40px;
  height: 40px;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  /* Fixed dark colour, not the site's --color-secondary theme variable —
     the button background above is also fixed white, and --color-secondary
     is white on some sites (e.g. Forestry & Agriculture), which made the
     arrow glyph invisible: a white icon on its own white circle. */
  color: #1a1a1a;
}
.uk-optimise__carousel-wrap .swiper-button-prev,
.uk-innovation__carousel-wrap .swiper-button-prev {
  left: -20px;
}
.uk-optimise__carousel-wrap .swiper-button-next,
.uk-innovation__carousel-wrap .swiper-button-next {
  right: -20px;
}
.uk-optimise__carousel-wrap .swiper-button-next::after,
.uk-optimise__carousel-wrap .swiper-button-prev::after,
.uk-innovation__carousel-wrap .swiper-button-next::after,
.uk-innovation__carousel-wrap .swiper-button-prev::after {
  font-size: 16px;
}
/* Swiper marks the edge button (no further slide that way) with this class
   and drops opacity + pointer-events; previously that faded button also sat
   on top of the first/last card, so a click meant to "page" silently fell
   through to the card link underneath instead of doing nothing. Now that
   the button no longer overlaps any card, the default disabled dimming is
   safe to keep — it's just a dim circle beside the row, not over it. */
.uk-optimise__carousel-wrap .swiper-button-disabled,
.uk-innovation__carousel-wrap .swiper-button-disabled {
  opacity: 0.35;
}

/* ── Innovation & Technology ─────────────────────────────────── */
.uk-innovation {
  background: var(--home-white);
}
.uk-innovation__heading-wrap {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-innovation__heading-inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-innovation__heading-inner h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.uk-innovation__carousel-wrap {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: var(--space-8) 50px;
  position: relative;
}
.uk-vcard {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--color-primary, #FFC200);
  margin: 10px;
  box-shadow: 0 0 7px 3px rgba(0,0,0,0.15);
  transition: box-shadow 0.25s ease;
}
.uk-vcard:hover {
  box-shadow: 0 0 14px 4px rgba(0,0,0,0.25);
}
.uk-vcard__video {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  background: #000;
}
.uk-vcard__video iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.uk-vcard__title {
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-secondary, #1a1a1a);
  padding: 14px var(--space-4);
  margin: 0;
}

/* ── News & Testimonials ─────────────────────────────────────── */
.uk-news {
  background: var(--home-white);
}
.uk-news__heading-wrap {
  background: var(--color-heading-band-bg, #EBEBEB);
  padding: var(--space-5);
  border-top: 5px solid var(--color-primary);
  text-align: center;
}
.uk-news__heading-inner {
  max-width: var(--home-max);
  margin: 0 auto;
}
.uk-news__heading-inner h2 {
  font-family: var(--font-heading, 'Barlow', sans-serif);
  font-size: var(--fs-h3, 1.75rem);
  font-weight: var(--fw-heading, 400);
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0;
}
.uk-news__search-wrap {
  background: var(--home-white);
  padding: var(--space-5) var(--space-5) 0;
  border-bottom: 1px solid #e8e8e8;
}
.uk-news__search-inner {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px var(--space-5);
}
.uk-news__search-box {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
}
input[type="text"].uk-news__search-input {
  width: 100%;
  padding: 5px 15px 5px 22px;
  border: 1px solid #F0F0F0;
  border-radius: 25px;
  background: #fff;
  color: #1a1a1a;
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 15px;
  outline: none;
  box-sizing: border-box;
}
.uk-news__search-input::placeholder { color: #999; }
input[type="text"].uk-news__search-input:focus { background: #fff; border-color: #ccc; }
.uk-news__search-icon {
  display: none;
}
.uk-news__search-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  z-index: 200;
  border-top: 3px solid var(--color-primary, #FFC200);
  max-height: 420px;
  overflow-y: auto;
}
.uk-news__search-result {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 14px;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid #f0f0f0;
  transition: background 0.15s;
}
.uk-news__search-result:last-child { border-bottom: none; }
.uk-news__search-result:hover { background: #f8f8f8; }
.uk-news__search-result-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.uk-news__search-result-title {
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 0.9rem;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.uk-news__search-result-date {
  font-size: 0.75rem;
  color: #888;
}
.uk-news__search-thumb {
  width: 64px;
  height: 48px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 2px;
}
.uk-news__search-thumb--placeholder {
  background: #e8e8e8;
  display: block;
}
.uk-news__search-empty {
  padding: 14px;
  font-size: 0.875rem;
  color: #888;
  text-align: center;
}

.uk-news__readmore {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px var(--space-8);
  text-align: center;
}
.uk-news__inner {
  max-width: var(--home-max);
  margin: 0 auto;
  padding: 0 50px var(--space-8);
}
.uk-news__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.uk-ncard {
  display: flex;
  align-items: flex-start;
  gap: var(--space-5);
  text-decoration: none;
  color: inherit;
  background: var(--home-white);
  padding: var(--space-5) 0;
  border-bottom: 1px solid #e8e8e8;
}
.uk-ncard:first-child {
  border-top: 1px solid #e8e8e8;
}
.uk-ncard:hover .uk-ncard__title {
  color: var(--color-primary, var(--home-gold));
}
.uk-ncard__img {
  width: 160px;
  height: 110px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 2px;
}
.uk-ncard__body {
  flex: 1;
  min-width: 0;
}
.uk-ncard__meta {
  font-family: 'Quicksand', sans-serif;
  font-size: 12px;
  color: #888;
  margin: 0 0 6px;
}
.uk-ncard__title {
  font-family: 'Barlow', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-card-title, #1a1a1a);
  margin: 0 0 var(--space-2);
  transition: color 0.2s;
}
.uk-ncard__desc {
  font-family: 'Quicksand', sans-serif;
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin: 0;
}

/* ── Back to top ─────────────────────────────────────────────── */
.bell-back-to-top {
  background: #fff;
  padding: var(--space-3) 0;
  text-align: center;
}
.bell-back-to-top a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: transparent;
  color: #1a1a1a;
  font-family: var(--font-body, 'Quicksand', sans-serif);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease;
}
.bell-back-to-top a:hover {
  color: var(--color-primary, #FFC200);
}
.bell-back-to-top svg {
  width: 12px;
  height: 12px;
  fill: currentColor;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1023px) {
  .uk-featured-products__grid {
    grid-template-columns: 1fr;
  }
  .uk-category-grid__inner .uk-cat-card {
    flex: 0 0 calc((100% - 24px) / 2);
  }
  .uk-partner-card {
    flex: 0 0 calc((100% - 3 * 24px) / 4);
  }
  .uk-ncard {
    flex-direction: column;
  }
  .uk-ncard__img {
    width: 100%;
    height: 180px;
  }
}

@media (max-width: 767px) {
  .uk-hero {
    height: 300px;
    margin-top: 0;
  }
  .uk-hero__content { bottom: 20px; padding: 0 var(--space-4); }
  .uk-hero__content h1 { font-size: 26px; }
  .uk-hero__content p  { font-size: 14px; margin-bottom: 14px; }
  .uk-optimise__carousel-wrap,
  .uk-innovation__carousel-wrap,
  .uk-category-grid__inner {
    padding: var(--space-6) 36px;
  }
  .bell-stat__number { font-size: 30px; }
  .bell-stats-bar__grid { gap: var(--space-6); }
  .bell-cta-banner { padding: var(--space-9) var(--space-5); }
  .bell-cta-banner h2 { font-size: 24px; }
  .uk-category-grid__inner .uk-cat-card {
    flex: 0 0 100%;
  }
  .uk-cat-card { height: 220px; }
  .uk-welcome__inner { flex-direction: column; padding: 0 var(--space-5); }
  .uk-welcome__heading { flex: 1 1 auto; border-right: none; border-bottom: 3px solid var(--home-gold); }
  .uk-welcome__body { flex: 1 1 auto; }
  .uk-partners__grid,
  .uk-partners__carousel-wrap { padding: 0 var(--space-5); }
  .uk-partner-card {
    flex: 0 0 calc((100% - 24px) / 2);
    height: 90px;
  }
  .uk-partners-swiper .swiper-slide { height: 90px; }

  .dl-cards-heading-row { grid-template-columns: 1fr; }
  .dl-cards-body-wrap   { grid-template-columns: 1fr; gap: var(--space-4); padding: var(--space-4) var(--space-5) var(--space-7); }
}

@media (max-width: 479px) {
  .uk-hero {
    height: 220px;
  }
  .uk-hero__content { bottom: 14px; }
  .uk-hero__content h1 { font-size: 20px; }
  .uk-hero__content p  { display: none; }
  .uk-optimise__carousel-wrap,
  .uk-innovation__carousel-wrap {
    padding: var(--space-4) var(--space-7);
  }
  .uk-products-heading h2,
  .uk-category-heading h2,
  .dl-card__heading h2,
  .uk-optimise__heading-inner h2,
  .uk-innovation__heading-inner h2,
  .uk-news__heading-inner h2,
  .uk-section-heading h2 {
    font-size: 22px;
  }
  .bell-cta-banner h2 { font-size: 20px; }
  .bell-stat__number  { font-size: 26px; }
  .bell-stats-bar__grid { gap: var(--space-4); }
  .uk-pcard__img { height: 180px; }
  .uk-dealer-locator__map-wrap { padding: var(--space-6) var(--space-4); }
}
