.elementor-13530 .elementor-element.elementor-element-4d82238f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:24px;--padding-right:24px;}.elementor-13530 .elementor-element.elementor-element-25f2f432{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:flex-start;--gap:48px 48px;--row-gap:48px;--column-gap:48px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-7c973595{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-20aff275{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-448d2bfb .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-448d2bfb .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-448d2bfb{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-448d2bfb .elementor-icon-list-text{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-d652586{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-5382d93c .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-5382d93c .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-5382d93c{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-5382d93c .elementor-icon-list-text{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-658382e0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-165119ad .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-165119ad .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-165119ad{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-165119ad .elementor-icon-list-text{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-715167f0 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-715167f0 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-715167f0{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-715167f0 .elementor-icon-list-text{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-6bbe36d .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-6bbe36d .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-6bbe36d{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-6bbe36d .elementor-icon-list-text{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-5dbd98f1{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-13530 .elementor-element.elementor-element-4c1d6a44 .elementor-icon-list-icon i{transition:color 0.3s;}.elementor-13530 .elementor-element.elementor-element-4c1d6a44 .elementor-icon-list-icon svg{transition:fill 0.3s;}.elementor-13530 .elementor-element.elementor-element-4c1d6a44{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-13530 .elementor-element.elementor-element-4c1d6a44 .elementor-icon-list-text{transition:color 0.3s;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-13530 .elementor-element.elementor-element-25f2f432{--content-width:1280px;}.elementor-13530 .elementor-element.elementor-element-5dbd98f1{--content-width:1280px;}}@media(max-width:1024px){.elementor-13530 .elementor-element.elementor-element-25f2f432{--gap:40px 40px;--row-gap:40px;--column-gap:40px;}}@media(max-width:767px){.elementor-13530 .elementor-element.elementor-element-25f2f432{--gap:32px 32px;--row-gap:32px;--column-gap:32px;}.elementor-13530 .elementor-element.elementor-element-5dbd98f1{--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}}/* Start custom CSS *//* ==========================================================================
   BP Footer — Phase 2
   Lives in: Footer template "BP — Footer (Phase 2)" → Settings → Advanced →
             Custom CSS, so it loads only where this footer renders.
   Scope: every rule is namespaced under .bp-footer. Nothing here can reach a
          legacy template or the Phase 1 header.
   ========================================================================== */

/* --- Tokens ---------------------------------------------------------------
   Local to the component, like the header. Values come from the approved
   palette; the three light greys are the footer's on-charcoal text scale.
   Contrast on #1A1A1A: #FFFFFF 17.4:1 · #D4D4D4 11.7:1 · #A3A3A3 6.9:1 ·
   #F7941D 7.6:1 — all pass AA for small text.
   -------------------------------------------------------------------------- */
.bp-footer {
  --bp-f-bg: #1A1A1A;
  --bp-f-text: #FFFFFF;
  --bp-f-soft: #D4D4D4;
  --bp-f-muted: #A3A3A3;
  --bp-f-rule: #333333;
  --bp-orange: #F7941D;
  --bp-radius: 2px;
  --bp-font-ui: "Inter", sans-serif;
  --bp-font-heading: "Manrope", sans-serif;
  --bp-ease: cubic-bezier(.4, 0, .2, 1);

  background-color: var(--bp-f-bg);
  color: var(--bp-f-soft);
  font-family: var(--bp-font-ui);
}

/* --- Rows ----------------------------------------------------------------- */
.bp-footer .bp-footer__top {
  padding-block: 96px 80px;
}

/* the hairline sits on the boxed inner row so it aligns with the content
   above instead of running full-bleed */
.bp-footer .bp-footer__bottom > .e-con-inner {
  border-top: 1px solid var(--bp-f-rule);
  padding-block: 28px;
}

/* Brand takes a fixed share; the three groups split the rest evenly.
   Both paths cover boxed (.e-con-inner) and full-width containers. */
.bp-footer .bp-footer__top > .e-con-inner > .bp-footer__brand,
.bp-footer .bp-footer__top > .bp-footer__brand {
  flex: 0 0 34%;
  max-width: 400px;
  margin-inline-end: auto;
}

.bp-footer .bp-footer__top > .e-con-inner > .bp-footer__group,
.bp-footer .bp-footer__top > .bp-footer__group {
  flex: 0 1 200px;
  min-width: 0;
}

/* Inside the brand block and each group, spacing comes from the margins
   below rather than Elementor's default 20px container gap. */
.bp-footer .bp-footer__brand,
.bp-footer .bp-footer__group {
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  gap: 0;
}

/* --- Brand ---------------------------------------------------------------- */
.bp-footer .bp-footer-logo img {
  display: block;
  width: 196px;
  height: auto;
  /* Smush lazy-load: until the image arrives it forces
     width: var(--smush-image-width, <placeholder width>) !important and swaps
     in a 1×1 SVG. Supplying the real width through Smush's own variable, plus
     an explicit ratio, reserves the final box so nothing below it shifts. */
  --smush-image-width: 196px;
  aspect-ratio: 768 / 219;
}

.bp-footer .bp-footer__statement,
.bp-footer .bp-footer__statement p {
  margin: 0;
  font-family: var(--bp-font-ui);
  font-size: 16px;
  line-height: 1.6;
  color: var(--bp-f-soft);
  max-width: 40ch;
}

/* --- Group labels ---------------------------------------------------------
   Real <h2>s for the heading outline, styled as quiet labels. The .elementor-13530
   outranks the Kit's h2 rule (.elementor-kit-3158 h2: charcoal, 32px). */
.bp-footer .bp-footer__label .elementor-heading-title {
  margin: 0 0 20px;
  font-family: var(--bp-font-heading);
  font-weight: 600;
  font-size: 13px;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--bp-f-muted);
}

/* --- Link lists (Icon List widget, no icons) ------------------------------ */
.bp-footer .bp-footer__links .elementor-icon-list-items {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bp-footer .bp-footer__links .elementor-icon-list-item {
  margin: 0;
  padding: 0;
}

.bp-footer .bp-footer__links .elementor-icon-list-item + .elementor-icon-list-item {
  margin-top: 4px;
}

.bp-footer .bp-footer__links .elementor-icon-list-item > a,
.bp-footer .bp-footer__links .elementor-icon-list-item > .elementor-icon-list-text {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  /* Elementor stretches icon-list links to the column; hug the text so the
     focus ring and hover underline describe the link, not the column */
  width: auto;
}

.bp-footer .bp-footer__links .elementor-icon-list-text {
  font-family: var(--bp-font-ui);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: inherit;
  padding: 0;
}

.bp-footer a,
.bp-footer a:visited {
  color: var(--bp-f-soft);
  text-decoration: none;
  transition: color .2s var(--bp-ease);
}

/* Hover: colour is the signal (orange), plus an underline so the state never
   depends on colour alone. */
.bp-footer a:hover {
  color: var(--bp-orange);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* the email address reads as primary content */
.bp-footer .bp-footer__contact-links .elementor-icon-list-item:first-child a {
  color: var(--bp-f-text);
}
.bp-footer .bp-footer__contact-links .elementor-icon-list-item:first-child a:hover {
  color: var(--bp-orange);
}

/* the one orange signal at rest: the Place Order text link */
.bp-footer .bp-footer__order a,
.bp-footer .bp-footer__order a:visited {
  color: var(--bp-orange);
  font-weight: 600;
}
.bp-footer .bp-footer__order .elementor-icon-list-text {
  font-weight: 600;
}
.bp-footer .bp-footer__order a:hover {
  color: var(--bp-f-text);
}

.bp-footer .bp-footer__meta,
.bp-footer .bp-footer__meta p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--bp-f-muted);
}

.bp-footer .bp-footer__meta {
  margin-top: 4px;
}

.bp-footer .bp-footer__order {
  margin-top: 8px;
}

.bp-footer .bp-footer__social {
  margin-top: 24px;
}

/* --- Bottom bar ----------------------------------------------------------- */
.bp-footer .bp-footer__copyright,
.bp-footer .bp-footer__copyright p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--bp-f-muted);
}

.bp-footer .bp-footer__legal .elementor-icon-list-text {
  font-size: 13px;
}

.bp-footer .bp-footer__legal .elementor-icon-list-items {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
}

.bp-footer .bp-footer__legal .elementor-icon-list-item + .elementor-icon-list-item {
  margin-top: 0;
}

/* Elementor's inline icon-list adds its own item margins and a divider slot */
.bp-footer .bp-footer__legal .elementor-icon-list-item {
  margin-inline: 0 !important;
}

/* --- Focus visibility ----------------------------------------------------
   Astra paints a 1px dotted ring on :focus; clear it inside the footer, then
   draw the Beepec ring (same treatment as the header). */
.bp-footer :focus {
  outline: none;
}

.bp-footer a:focus-visible {
  outline: 2px solid var(--bp-orange);
  outline-offset: 3px;
  border-radius: var(--bp-radius);
}

/* --- Widget spacing -------------------------------------------------------
   The Kit adds 20px below every widget; the footer sets its own rhythm. */
.bp-footer .elementor-widget:not(:last-child) {
  margin-block-end: 0;
}

/* The source PNG carries ~8% transparent margin on the left; the widget is
   pulled back so the mark aligns optically with the text edge below. (On the
   widget, not the <img>: a negative margin on the img would also shrink its
   max-width:100% box.) */
.bp-footer .bp-footer__brand .bp-footer-logo {
  margin-block-end: 24px;
  margin-inline-start: -16px;
}

/* --- Tablet (≤1024): brand on its own row, three groups beneath ---------- */
@media (max-width: 1024px) {
  .bp-footer .bp-footer__top {
    padding-block: 72px 64px;
  }

  .bp-footer .bp-footer__top > .e-con-inner > .bp-footer__brand,
  .bp-footer .bp-footer__top > .bp-footer__brand {
    flex: 0 0 100%;
    max-width: none;
    margin-inline-end: 0;
    margin-bottom: 16px;
  }

  .bp-footer .bp-footer__top > .e-con-inner > .bp-footer__group,
  .bp-footer .bp-footer__top > .bp-footer__group {
    flex: 1 1 0;
  }
}

/* --- Mobile (≤767): stacked, two short link groups side by side --------- */
@media (max-width: 767px) {
  .bp-footer .bp-footer__top {
    padding-block: 56px 48px;
  }

  .bp-footer .bp-footer__top > .e-con-inner > .bp-footer__group,
  .bp-footer .bp-footer__top > .bp-footer__group {
    flex: 0 0 calc(50% - 16px);
  }

  .bp-footer .bp-footer__top > .e-con-inner > .bp-footer__group--contact,
  .bp-footer .bp-footer__top > .bp-footer__group--contact {
    flex: 0 0 100%;
  }

  .bp-footer .bp-footer-logo img {
    width: 172px;
    --smush-image-width: 172px;
  }

  .bp-footer .bp-footer__brand .bp-footer-logo {
    margin-inline-start: -14px;
  }

  /* 44px tap targets on touch layouts */
  .bp-footer .bp-footer__links .elementor-icon-list-item > a {
    min-height: 44px;
  }

  .bp-footer .bp-footer__links .elementor-icon-list-item + .elementor-icon-list-item {
    margin-top: 0;
  }

  .bp-footer .bp-footer__label .elementor-heading-title {
    margin-bottom: 8px;
  }

  .bp-footer .bp-footer__bottom > .e-con-inner {
    padding-block: 24px 32px;
  }
}

/* --- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .bp-footer a {
    transition: none;
  }
}/* End custom CSS */