/* ==========================================================================
   BASE: background and bottom-right glow
   ========================================================================== */
.m15-footer {
  position: relative;
  background-color: #121212 !important;
  background-image: none !important;
  border-top: 0 !important;
  box-shadow: none !important;
}
.m15-footer>.elementor-container {
  position: relative;
  z-index: 1;
}
/* Orange glow at the bottom right (drawn from the bottom section, spilling up).
   z-index 0 = above the background, below the content, so the text and the
   language dropdown are not blended with it. */
.m15-footer-glow::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 820px;
  height: 480px;
  max-width: 100%;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  background: radial-gradient(ellipse at 100% 100%,rgba(255,77,46,.30) 0%,transparent 70%);
}
/* Reset Elementor's default spacing in the footer (spacing is set manually below) */
.m15-footer .elementor-widget:not(:last-child) {
  margin-bottom: 0 !important;
}
.m15-footer .elementor-widget-text-editor p {
  margin: 0;
}
.m15-footer .elementor-heading-title {
  margin: 0;
}


/* ==========================================================================
   TOP SECTION: brand (left) | info (right)
   ========================================================================== */
.m15-footer:not(.m15-footer-glow)>.elementor-container {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1.4fr);
  column-gap: 56px;
  align-items: start;
  width: 100%;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column {
  width: 100% !important;
  max-width: none;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column>.elementor-widget-wrap {
  padding: 0 !important;
}

/* ---------- Left column: logo, heading, find us ---------- */
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child>.elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 22px !important;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child>.elementor-widget-wrap>.elementor-widget-heading .elementor-heading-title {
  font-size: clamp(34px,3.7vw,54px) !important;
  line-height: 1.08 !important;
}

/* "Find us here:" + social icons: one row, vertically centred */
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section {
  width: auto;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section>.elementor-container {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  width: auto !important;
  max-width: none;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section .elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.m15-footer .elementor-inner-section .elementor-column>.elementor-widget-wrap {
  padding: 0 !important;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section .elementor-widget-wrap {
  align-items: center;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section .elementor-heading-title {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  color: #bdbdbd !important;
  white-space: nowrap;
  text-align: left !important;
}

/* Social icons: 40px circle with a thin outline, as in the design */
.m15-footer .elementor-social-icons-wrapper {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 10px;
  justify-content: flex-start;
}
.m15-footer .elementor-social-icons-wrapper .elementor-grid-item {
  margin: 0 !important;
  width: auto;
}
.m15-footer .elementor-social-icon {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.16);
  font-size: 16px !important;
  transition: background .2s,border-color .2s;
}
.m15-footer .elementor-social-icon i {
  color: #fff !important;
  font-size: 16px;
}
.m15-footer .elementor-social-icon svg {
  fill: #fff !important;
  width: 16px;
  height: 16px;
}
.m15-footer .elementor-social-icon:hover {
  background: rgba(255,77,46,.14) !important;
  border-color: #ff4d2e;
}

/* ---------- Right column: 2 rows x 2 columns ---------- */
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child>.elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  row-gap: 40px !important;
}
/* Same column widths in both rows, so the columns line up */
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child .elementor-inner-section>.elementor-container {
  display: grid !important;
  grid-template-columns: minmax(0,1.25fr) minmax(0,1fr);
  column-gap: 40px;
  width: 100% !important;
  max-width: 100% !important;
}
.m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child .elementor-inner-section .elementor-column {
  width: 100% !important;
  max-width: none;
}
.m15-footer .elementor-inner-section .elementor-column>.elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Column titles: Visit Us, Say Hello, Quick Links, Also on Webike */
.m15-footer .elementor-inner-section .elementor-widget-heading {
  margin-bottom: 14px !important;
}

/* Icon list: icon aligned with the first line of text, tight spacing between items */
.m15-footer .elementor-icon-list-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.m15-footer .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
  align-items: flex-start !important;
}
.m15-footer .elementor-icon-list-icon {
  flex: none;
  padding-top: .28em;
}
.m15-footer .elementor-icon-list-text {
  line-height: 1.6;
}

/* Also on Webike: logo -> text -> Visit Store, kept close together */
.m15-footer .elementor-inner-section .elementor-widget-image {
  margin-bottom: 14px !important;
}
.m15-footer .elementor-inner-section .elementor-widget-image img {
  display: block;
  max-width: 100px;
  height: auto;
}
.m15-footer .elementor-inner-section .elementor-widget-text-editor {
  margin-bottom: 8px !important;
}
.m15-footer .elementor-inner-section .elementor-widget-button {
  margin: 0 !important;
}
.m15-footer .elementor-widget-button .elementor-button-wrapper {
  text-align: left;
}

/* Visit Store: orange text link, no box */
.m15-footer .elementor-widget-button .elementor-button {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-height: 0;
  line-height: 1.3;
  color: #ff5233 !important;
  font-weight: 700;
}
.m15-footer .elementor-widget-button .elementor-button:hover {
  color: #fff !important;
}
.m15-footer .elementor-widget-button .elementor-button .elementor-button-text {
  color: inherit !important;
}
.m15-footer .elementor-widget-button .elementor-button i {
  color: inherit !important;
}
.m15-footer .elementor-widget-button .elementor-button svg {
  fill: currentColor !important;
}

/* Desktop (1025px and up): brand column is centred against the info column */
@media (min-width:1025px) {
  .m15-footer:not(.m15-footer-glow)>.elementor-container {
    align-items: center;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child>.elementor-widget-wrap {
    align-items: center;
    text-align: center;
    row-gap: 20px !important;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-inner-section>.elementor-container {
    justify-content: center;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child .elementor-widget-image {
    text-align: center;
  }
}


/* ==========================================================================
   BOTTOM SECTION (copyright)
   ========================================================================== */
.m15-footer-glow {
  padding-top: 0 !important;
  padding-bottom: 24px !important;
}
.m15-footer-glow>.elementor-container {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 22px 0 0;
}
.m15-footer-glow>.elementor-container>.elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.m15-footer-glow>.elementor-container>.elementor-column:first-child {
  flex: 1 1 auto;
}
.m15-footer-glow .elementor-column>.elementor-widget-wrap {
  padding: 0 !important;
}
.m15-footer-glow .elementor-widget {
  margin: 0 !important;
}
.m15-footer-glow :is(.elementor-widget-divider,.elementor-widget-spacer) {
  display: none !important;
}

/* Right column: Privacy Policy + Terms + language pill, on one line, aligned right */
.m15-footer-bar-right>.elementor-widget-wrap {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
  column-gap: 28px;
}
.m15-footer-bar-right .elementor-widget-text-editor,
.m15-footer-bar-right .elementor-widget-shortcode {
  width: auto !important;
  max-width: none;
}


/* ==========================================================================
   GTRANSLATE LANGUAGE PILL (dropdown with flags). Styling unchanged.
   ========================================================================== */
.m15-footer .gtranslate_wrapper {
  display: flex;
  justify-content: flex-end;
  position: relative;
}
.m15-footer :is(.gtranslate_wrapper,.gt_switcher_wrapper,.gt_switcher) {
  overflow: visible !important;
}
.m15-footer .gt_switcher {
  width: auto !important;
  font-family: inherit !important;
  position: relative;
  height: 36px;
  min-width: 150px;
}
.m15-footer .gt_switcher .gt_selected {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  overflow: hidden;
}
.m15-footer .gt_switcher .gt_selected a {
  display: flex !important;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 32px 0 14px !important;
  border: 0 !important;
  background-color: transparent !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600;
  line-height: 1;
}
.m15-footer .gt_switcher .gt_selected a img {
  width: 20px !important;
  height: auto !important;
}

/* Language list: floats above the pill, same width as the pill, no scrollbar.
   backdrop-filter keeps it translucent like the pill but still readable. */
.m15-footer .gt_switcher .gt_option {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(100% + 8px) !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  padding: 4px 0 !important;
  overflow: hidden !important;
  box-sizing: border-box;
  scrollbar-width: none;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 20px;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.m15-footer .gt_switcher .gt_option::-webkit-scrollbar {
  display: none;
}
.m15-footer .gt_switcher .gt_option a {
  display: flex !important;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 14px !important;
  line-height: 1.2 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600;
}
.m15-footer .gt_switcher .gt_option a img {
  width: 20px !important;
  height: auto !important;
}
.m15-footer .gt_switcher .gt_option a img {
  flex: none;
  margin: 0 !important;
}
.m15-footer .gt_switcher .gt_option a:hover {
  background: rgba(255,77,46,.16) !important;
  color: #fff !important;
}
/* The active language is already shown in the pill */
.m15-footer .gt_switcher .gt_option a.gt_current {
  display: none !important;
}


/* ==========================================================================
   LAPTOP (1025 - 1440px)
   ========================================================================== */
@media (min-width:1025px) and (max-width:1440px) {
  .m15-footer.m15-footer-glow .m15-footer-bar-right>.elementor-widget-wrap {
    padding-right: 66px !important;
  }
}


/* ==========================================================================
   SMALL LAPTOP (max 1280px)
   ========================================================================== */
@media (max-width:1280px) {
  .m15-footer:not(.m15-footer-glow)>.elementor-container {
    column-gap: 40px;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child .elementor-inner-section>.elementor-container {
    column-gap: 28px;
  }
}


/* ==========================================================================
   TABLET (max 1024px)
   ========================================================================== */
@media (max-width:1024px) {
  .m15-footer:not(.m15-footer-glow)>.elementor-container {
    grid-template-columns: minmax(0,1fr);
    row-gap: 40px;
  }
  .m15-footer-glow::after {
    width: 600px;
    height: 360px;
  }
  /* Bottom bar: copyright (top) -> Privacy + Terms + language pill (one row), aligned left.
     Bottom padding is 28px (it was 72px, too wide). */
  .m15-footer-glow {
    padding-bottom: 28px !important;
  }
  .m15-footer-glow>.elementor-container {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 12px;
    text-align: left;
    padding-top: 20px;
  }
  .m15-footer-glow>.elementor-container>.elementor-column,
  .m15-footer-glow>.elementor-container>.elementor-column:first-child {
    width: 100% !important;
    flex: 0 0 auto;
  }
  .m15-footer-glow .elementor-widget-text-editor {
    text-align: left !important;
  }
  .m15-footer-bar-right>.elementor-widget-wrap {
    flex-wrap: wrap;
    justify-content: flex-start !important;
    align-items: center;
    gap: 10px 28px;
  }
  .m15-footer .m15-footer-bar-right .elementor-widget-shortcode {
    width: auto !important;
    margin: 0 !important;
  }
  .m15-footer .m15-footer-bar-right .gtranslate_wrapper {
    justify-content: flex-start;
  }
}


/* ==========================================================================
   MOBILE (max 767px)
   ========================================================================== */
@media (max-width:767px) {
  .m15-footer-glow::after {
    width: 420px;
    height: 300px;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container {
    row-gap: 32px;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:first-child>.elementor-widget-wrap>.elementor-widget-heading .elementor-heading-title {
    font-size: 32px !important;
  }
  /* Every right-hand block stacks in 1 column: Visit Us, Say Hello, Quick Links, Also on Webike */
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child>.elementor-widget-wrap {
    row-gap: 32px !important;
  }
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child .elementor-inner-section>.elementor-container {
    grid-template-columns: minmax(0,1fr);
    row-gap: 28px;
  }
  /* Quick Links: the menu list becomes 2 columns (3 rows down, then the second column) */
  .m15-footer:not(.m15-footer-glow)>.elementor-container>.elementor-column:last-child .elementor-inner-section:last-child .elementor-column:first-child .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: repeat(3,auto);
    grid-auto-flow: column;
    column-gap: 24px;
    row-gap: 12px;
  }
  /* Bottom bar: copyright (centred) -> Privacy + Terms (centred) -> language pill (alone, centred) */
  .m15-footer-glow {
    padding-bottom: 28px !important;
  }
  .m15-footer-glow>.elementor-container {
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
    padding-top: 20px;
  }
  .m15-footer-glow .elementor-widget-text-editor {
    text-align: center !important;
  }
  /* Copyright is forced to the centre (left column of the bottom bar) */
  .m15-footer-glow>.elementor-container>.elementor-column:first-child>.elementor-widget-wrap {
    justify-content: center !important;
    text-align: center !important;
  }
  .m15-footer-glow>.elementor-container>.elementor-column:first-child .elementor-widget {
    width: 100% !important;
    text-align: center !important;
  }
  .m15-footer-glow>.elementor-container>.elementor-column:first-child :is(.elementor-widget-container,p,span,h1,h2,h3,h4,h5,h6) {
    text-align: center !important;
  }
  .m15-footer-bar-right>.elementor-widget-wrap {
    justify-content: center !important;
    gap: 10px 28px;
  }
  .m15-footer .m15-footer-bar-right .elementor-widget-shortcode {
    width: 100% !important;
    margin-top: 4px !important;
  }
  .m15-footer .m15-footer-bar-right .gtranslate_wrapper {
    justify-content: center;
  }
}