/* ==========================================================================
   Elementor sections (home, contact and any page built with these classes). Content is edited in Elementor; the look comes from
   these classes (set in each widget/container: Advanced > CSS Classes).
   be-band--cream | --black | --blue | --white | --offer   section colours
   be-btn--primary | --dark | --sm | --lg | --on-dark      button styles
   be-tile--cream | --blue | --green | --purple            tile colours
   be-accent (span inside a heading)                       blue word
   ========================================================================== */

.elementor {
  --be-ink: #000000;
  --be-cream: #FFF4E0;
  --be-blue: #2563EB;
  --be-blue-dark: #1D4ED8;
  --be-display: "Bricolage Grotesque", sans-serif;
  --be-body: "Space Grotesk", sans-serif;
  --be-gut: 32px;
  --be-sec: 80px;
}

/* Neutralise Elementor container defaults; spacing is set here */
.elementor .be-band.e-con,
.elementor .be-band .e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
}
.elementor .be-band .elementor-widget { margin: 0; }
.elementor .be-band .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- Bands ---------- */
.elementor .be-band.e-con {
  padding: var(--be-sec) var(--be-gut) !important;
  border-bottom: 4px solid var(--be-ink);
  position: relative;
}
.elementor .be-band--cream.e-con {
  background-color: var(--be-cream);
  background-image: linear-gradient(rgba(0,0,0,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.08) 1px, transparent 1px);
  background-size: 40px 40px;
}
.elementor .be-band--black.e-con { background: var(--be-ink); color: #FFFFFF; }
.elementor .be-band--blue.e-con { background: var(--be-blue); }
.elementor .be-band--white.e-con { background: #FFFFFF; }
.elementor .be-band--offer.e-con { background: var(--be-ink); }

.elementor .be-wrap.e-con {
  width: 100%;
  max-width: 1380px;
  margin: 0 auto;
  gap: 28px !important;
}

/* ---------- Type ---------- */
.elementor .be-band .elementor-heading-title { font-family: var(--be-display); color: var(--be-ink); }
.elementor .be-accent { color: var(--be-blue); }
.elementor .be-band--blue .be-accent { color: #FFFFFF; background: var(--be-ink); padding: 0 .15em; }
.elementor .be-band--black .be-accent,
.elementor .be-band--offer .be-accent { color: var(--be-ink); background: var(--be-cream); padding: 0 .15em; }

.elementor .be-h2 .elementor-heading-title {
  font-size: clamp(1.9rem, 4vw, 3.4rem);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin: 0;
}
.elementor .be-h2--on-dark .elementor-heading-title,
.elementor .be-band--black .be-h2 .elementor-heading-title { color: #FFFFFF; }

.elementor .be-eyebrow .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  font-family: var(--be-body);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #FFFFFF;
  background: var(--be-ink);
  padding: 7px 12px;
  box-shadow: 4px 4px 0 0 var(--be-blue);
}
.elementor .be-eyebrow--light .elementor-heading-title { color: var(--be-ink); background: #FFFFFF; box-shadow: 4px 4px 0 0 var(--be-blue); }

/* ---------- Buttons ---------- */
.elementor .be-btn .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 16px 26px !important;
  font-family: var(--be-display) !important;
  font-size: 0.95rem !important;
  font-weight: 900 !important;
  letter-spacing: .06em !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  background: var(--be-blue) !important;
  border: 4px solid var(--be-ink) !important;
  border-radius: 0 !important;
  box-shadow: 6px 6px 0 0 var(--be-ink) !important;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease !important;
  white-space: nowrap !important;
} html body .elementor .be-btn .elementor-button-content-wrapper { flex-direction: row-reverse !important; gap: 10px !important; align-items: center !important; } html body .elementor .be-btn .elementor-button-icon svg { width: 16px !important; height: 16px !important; fill: currentColor !important; } html body .elementor .be-btn .elementor-button:hover {
  background: var(--be-blue-dark) !important;
  color: #FFFFFF !important;
  transform: translate(3px, 3px) !important;
  box-shadow: 3px 3px 0 0 var(--be-ink) !important;
} html body .elementor .be-btn--dark .elementor-button { background: var(--be-ink) !important; box-shadow: 6px 6px 0 0 var(--be-blue) !important; } html body .elementor .be-btn--dark .elementor-button:hover { background: #222222 !important; box-shadow: 3px 3px 0 0 var(--be-blue) !important; } html body .elementor .be-btn--on-dark .elementor-button { border-color: #FFFFFF !important; box-shadow: 6px 6px 0 0 #FFFFFF !important; } html body .elementor .be-btn--on-dark .elementor-button:hover { box-shadow: 3px 3px 0 0 #FFFFFF !important; } html body .elementor .be-btn--sm .elementor-button { padding: 12px 18px !important; font-size: 0.82rem !important; border-width: 3px !important; box-shadow: 4px 4px 0 0 var(--be-ink) !important; } html body .elementor .be-btn--sm.be-btn--on-dark .elementor-button { box-shadow: 4px 4px 0 0 #FFFFFF !important; } html body .elementor .be-btn--sm.be-btn--dark .elementor-button { box-shadow: 4px 4px 0 0 var(--be-blue) !important; } html body .elementor .be-btn--lg .elementor-button { padding: 20px 34px !important; font-size: 1.05rem !important; }

/* ---------- Hero ---------- */
.elementor .be-hero.e-con { padding: 0 !important; background: #FFFFFF; }
.elementor .be-hero__inner.e-con { max-width: none; align-items: stretch; gap: 0 !important; }
.elementor .be-hero__text.e-con {
  flex: 1 1 55%;
  justify-content: center;
  gap: 22px !important;
  padding: 72px 48px 72px max(var(--be-gut), calc((100vw - 1380px) / 2)) !important;
}
.elementor .be-hero__title .elementor-heading-title {
  font-size: clamp(2.6rem, 6.4vw, 6rem);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  margin: 0;
}
.elementor .be-hero__lead p {
  max-width: 34ch;
  margin: 0;
  font-family: var(--be-body);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.5;
  color: #1F2937;
}
.elementor .be-hero__panel.e-con {
  flex: 1 1 45%;
  justify-content: center;
  gap: 36px !important;
  padding: 56px max(var(--be-gut), calc((100vw - 1380px) / 2)) 56px 48px !important;
  background: var(--be-blue);
  border-left: 4px solid var(--be-ink);
}
.elementor .be-hero__tags.e-con { flex-wrap: wrap; gap: 12px !important; justify-content: center; } html body .elementor .be-tag .elementor-button {
  padding: 10px 16px !important;
  font-family: var(--be-body) !important;
  font-size: 0.8rem !important;
  font-weight: 800 !important;
  letter-spacing: .05em !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  color: var(--be-ink) !important;
  background: #FFFFFF !important;
  border: 3px solid var(--be-ink) !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 0 var(--be-ink) !important;
  transition: transform .12s ease !important;
} html body .elementor .be-tag--1 .elementor-button { background: #E0F4FF !important; transform: rotate(-2deg) !important; } html body .elementor .be-tag--2 .elementor-button { background: var(--be-cream) !important; transform: rotate(2deg) !important; } html body .elementor .be-tag--3 .elementor-button { background: #E8FFE0 !important; transform: rotate(-1deg) !important; } html body .elementor .be-tag--4 .elementor-button { background: #FFFFFF !important; transform: rotate(1.5deg) !important; } html body .elementor .be-tag--5 .elementor-button { background: #F0E0FF !important; transform: rotate(-1.5deg) !important; } html body .elementor .be-tag .elementor-button:hover { transform: rotate(0) translate(2px, 2px) !important; color: var(--be-ink) !important; }

.elementor .be-promo.e-con {
  background: var(--be-cream);
  border: 4px solid var(--be-ink);
  box-shadow: 10px 10px 0 0 var(--be-ink);
  padding: 32px 28px !important;
  gap: 22px !important;
  max-width: 460px;
  width: 100%;
  margin: 0 auto;
}
.elementor .be-promo__title .elementor-heading-title {
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  margin: 0;
}
.elementor .be-stats.e-con { gap: 14px !important; }
.elementor .be-stat.e-con {
  flex: 1 1 0;
  background: #FFFFFF;
  border: 3px solid var(--be-ink);
  box-shadow: 4px 4px 0 0 var(--be-ink);
  padding: 14px 12px !important;
  gap: 4px !important;
  align-items: center;
  text-align: center;
}
.elementor .be-stat__num .elementor-heading-title { font-size: 2rem; font-weight: 900; line-height: 1; color: var(--be-blue); }
.elementor .be-stat__label p { margin: 0; font-family: var(--be-body); font-size: 0.78rem; font-weight: 800; line-height: 1.25; text-transform: uppercase; color: var(--be-ink); }

/* ---------- Section header ---------- */
.elementor .be-sec-head.e-con {
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px !important;
  padding-bottom: 22px !important;
  border-bottom: 4px solid var(--be-ink);
}
.elementor .be-band--black .be-sec-head.e-con { border-bottom-color: #FFFFFF; }
.elementor .be-sec-head > .be-h2 { flex: 1 1 auto; min-width: 0; }

/* ---------- Product lists inside Elementor ---------- */
.elementor .be-products .woocommerce { margin: 0; }
.elementor .be-products ul.products { margin: 0 !important; }
.elementor .be-products ul.products::before,
.elementor .be-products ul.products::after { display: none !important; }

/* ---------- Tiles (features + categories) ---------- */
.elementor .be-grid.e-con { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px !important; }
.elementor .be-grid > .elementor-widget { width: auto !important; max-width: none !important; }
.elementor .be-tile,
.elementor .be-cat {
  height: 100%;
  background: #FFFFFF;
  border: 4px solid var(--be-ink);
  box-shadow: 6px 6px 0 0 var(--be-ink);
  padding: 26px 22px;
  transition: transform .12s ease, box-shadow .12s ease;
}
.elementor .be-tile--cream { background: var(--be-cream); }
.elementor .be-tile--blue { background: #E0F4FF; }
.elementor .be-tile--green { background: #E8FFE0; }
.elementor .be-tile--purple { background: #F0E0FF; }
.elementor .be-tile .elementor-icon-box-wrapper,
.elementor .be-cat .elementor-icon-box-wrapper { text-align: left; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.elementor .be-tile .elementor-icon-box-icon,
.elementor .be-cat .elementor-icon-box-icon { margin: 0 !important; }
.elementor .be-tile .elementor-icon,
.elementor .be-cat .elementor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  font-size: 24px;
  color: var(--be-ink);
  fill: var(--be-ink);
  background: #FFFFFF;
  border: 3px solid var(--be-ink);
  box-shadow: 3px 3px 0 0 var(--be-ink);
}
.elementor .be-tile .elementor-icon svg,
.elementor .be-cat .elementor-icon svg { width: 24px; height: 24px; }
.elementor .be-tile .elementor-icon-box-title,
.elementor .be-cat .elementor-icon-box-title {
  margin: 0 0 6px;
  font-family: var(--be-display);
  font-size: 1.15rem;
  font-weight: 900;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--be-ink);
}
.elementor .be-tile .elementor-icon-box-title a,
.elementor .be-cat .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.elementor .be-tile .elementor-icon-box-description,
.elementor .be-cat .elementor-icon-box-description {
  margin: 0;
  font-family: var(--be-body);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
  color: #1F2937;
}
.elementor .be-cat { position: relative; }
.elementor .be-cat .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }
.elementor .be-cat:hover { transform: translate(3px, 3px); box-shadow: 3px 3px 0 0 var(--be-ink); }

/* ---------- Offer ---------- */
.elementor .be-offer.e-con { align-items: flex-start; gap: 20px !important; }
.elementor .be-offer__title .elementor-heading-title { font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: .95; }
.elementor .be-offer__text p { margin: 0; font-family: var(--be-body); font-size: 1.15rem; font-weight: 700; line-height: 1.5; color: #D1D5DB; }
.elementor .be-code {
  display: inline-block;
  padding: 2px 10px;
  color: #FFFFFF;
  background: var(--be-blue);
  border: 2px solid #FFFFFF;
  letter-spacing: .06em;
}

/* ==========================================================================
   Laptop 1024-1279
   ========================================================================== */
@media (max-width: 1279px) {
  .elementor { --be-sec: 64px; }
  .elementor .be-hero__text.e-con { padding: 56px 36px 56px var(--be-gut) !important; }
  .elementor .be-hero__panel.e-con { padding: 48px var(--be-gut) 48px 36px !important; }
}

/* ==========================================================================
   Tablet 768-1023
   ========================================================================== */
@media (max-width: 1023px) {
  .elementor { --be-gut: 24px; --be-sec: 48px; }
  .elementor .be-hero__inner.e-con { flex-direction: column; }
  .elementor .be-hero__text.e-con { padding: 40px var(--be-gut) 44px !important; gap: 18px !important; }
  .elementor .be-hero__panel.e-con { display: none; }
  .elementor .be-grid.e-con { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px !important; }
  .elementor .be-band .be-products ul.products.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    margin: 0 calc(var(--be-gut) * -1) !important;
    padding: 4px var(--be-gut) 16px !important;
    scroll-padding-left: var(--be-gut);
  }
  .elementor .be-band .be-products ul.products.products::-webkit-scrollbar { display: none; }
  .elementor .be-band .be-products ul.products.products li.product.product {
    flex: 0 0 calc((100% - 32px) / 3.15) !important;
    width: auto !important;
    scroll-snap-align: start;
  }
}

/* ==========================================================================
   Phone <= 767
   ========================================================================== */
@media (max-width: 767px) {
  .elementor { --be-gut: 12px; --be-sec: 32px; }
  .elementor .be-band.e-con { border-bottom-width: 3px; }
  .elementor .be-wrap.e-con { gap: 18px !important; }
  .elementor .be-hero__text.e-con { padding: 22px var(--be-gut) 28px !important; gap: 14px !important; }
  .elementor .be-hero__title .elementor-heading-title { font-size: 2.4rem; line-height: .98; }
  .elementor .be-hero__lead p { font-size: 0.95rem; }
  .elementor .be-eyebrow .elementor-heading-title { font-size: 11px; padding: 5px 9px; box-shadow: 3px 3px 0 0 var(--be-blue); } html body .elementor .be-btn--lg, html body .elementor .be-btn--lg .elementor-button { width: 100% !important; } html body .elementor .be-btn--lg .elementor-button { padding: 15px 18px !important; font-size: 0.9rem !important; box-shadow: 4px 4px 0 0 var(--be-ink) !important; } html body .elementor .be-btn--lg.be-btn--on-dark .elementor-button { box-shadow: 4px 4px 0 0 #FFFFFF !important; }
  .elementor .be-sec-head.e-con { padding-bottom: 14px !important; gap: 10px !important; flex-wrap: nowrap; }
  .elementor .be-h2 .elementor-heading-title { font-size: 1.55rem; line-height: 1.05; } html body .elementor .be-btn--sm .elementor-button { padding: 9px 12px !important; font-size: 0.75rem !important; box-shadow: 3px 3px 0 0 var(--be-ink) !important; } html body .elementor .be-btn--sm.be-btn--on-dark .elementor-button { box-shadow: 3px 3px 0 0 #FFFFFF !important; } html body .elementor .be-btn--sm.be-btn--dark .elementor-button { box-shadow: 3px 3px 0 0 var(--be-blue) !important; }
  .elementor .be-band .be-products ul.products.products li.product.product { flex: 0 0 64% !important; max-width: 260px; }
  .elementor .be-grid.e-con { grid-template-columns: minmax(0, 1fr); gap: 10px !important; }
  .elementor .be-grid--4.e-con:has(.be-cat) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .be-tile { padding: 14px; box-shadow: 4px 4px 0 0 var(--be-ink); border-width: 3px; }
  .elementor .be-tile .elementor-icon-box-wrapper { display: grid; grid-template-columns: 44px 1fr; column-gap: 12px; row-gap: 0; align-items: start; }
  .elementor .be-tile .elementor-icon { width: 44px; height: 44px; }
  .elementor .be-tile .elementor-icon svg { width: 20px; height: 20px; }
  .elementor .be-tile .elementor-icon-box-title { font-size: 0.95rem; margin-bottom: 2px; }
  .elementor .be-tile .elementor-icon-box-description { font-size: 0.82rem; }
  .elementor .be-cat { padding: 14px 12px; box-shadow: 3px 3px 0 0 var(--be-ink); border-width: 3px; }
  .elementor .be-cat .elementor-icon-box-wrapper { gap: 8px; }
  .elementor .be-cat .elementor-icon { width: 40px; height: 40px; box-shadow: 2px 2px 0 0 var(--be-ink); }
  .elementor .be-cat .elementor-icon svg { width: 18px; height: 18px; }
  .elementor .be-cat .elementor-icon-box-title { font-size: 0.85rem; margin: 0; }
  .elementor .be-cat .elementor-icon-box-description { display: none; }
  .elementor .be-offer__text p { font-size: 0.95rem; }
}

/* Theme custom.css forces blue on every .elementor-button with !important; keep the variants */
html body .elementor .be-btn--dark .elementor-button { background: #000000 !important; color: #FFFFFF !important; box-shadow: 4px 4px 0 0 #2563EB !important; }
html body .elementor .be-btn--dark .elementor-button:hover { background: #222222 !important; box-shadow: 2px 2px 0 0 #2563EB !important; }
html body .elementor .be-tag .elementor-button { color: #000000 !important; }
html body .elementor .be-tag--1 .elementor-button { background: #E0F4FF !important; }
html body .elementor .be-tag--2 .elementor-button { background: #FFF4E0 !important; }
html body .elementor .be-tag--3 .elementor-button { background: #E8FFE0 !important; }
html body .elementor .be-tag--4 .elementor-button { background: #FFFFFF !important; }
html body .elementor .be-tag--5 .elementor-button { background: #F0E0FF !important; }

/* ---------- Page hero (inner pages) + cards (contact) ---------- */
.elementor .be-page-hero .be-wrap.e-con { gap: 18px !important; }
.elementor .be-page-hero .be-hero__title .elementor-heading-title { font-size: clamp(2.4rem, 6vw, 5rem); font-weight: 900; line-height: .95; letter-spacing: -0.04em; text-transform: uppercase; margin: 0; }
.elementor .be-page-hero .be-hero__lead p { max-width: 52ch; margin: 0; font-family: var(--be-body); font-size: 1.1rem; font-weight: 600; line-height: 1.5; color: #1F2937; }
.elementor .be-split.e-con { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 32px !important; align-items: start; }
.elementor .be-card.e-con { background: #FFFFFF; border: 4px solid var(--be-ink); box-shadow: 8px 8px 0 0 var(--be-ink); padding: 28px !important; gap: 18px !important; }
.elementor .be-card--cream.e-con { background: var(--be-cream); }
.elementor .be-card__title .elementor-heading-title { font-size: 1.6rem; font-weight: 900; line-height: 1.05; text-transform: uppercase; margin: 0; padding-bottom: 10px; border-bottom: 4px solid var(--be-ink); }
.elementor .be-card__text p { margin: 0; font-family: var(--be-body); font-weight: 600; color: #4B5563; }
.elementor .be-info .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 14px; text-align: left; }
.elementor .be-info .elementor-icon-box-icon { margin: 0 !important; }
.elementor .be-info .elementor-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: #FFFFFF; border: 3px solid var(--be-ink); box-shadow: 3px 3px 0 0 var(--be-ink); fill: var(--be-ink); color: var(--be-ink); }
.elementor .be-info .elementor-icon svg { width: 18px; height: 18px; }
.elementor .be-info .elementor-icon-box-title { margin: 0 0 2px; font-family: var(--be-body); font-size: 0.75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #4B5563; }
.elementor .be-info .elementor-icon-box-description { margin: 0; font-family: var(--be-display); font-size: 1.05rem; font-weight: 800; line-height: 1.25; color: var(--be-ink); word-break: break-word; }
.elementor .be-info .elementor-icon-box-title a { color: inherit; }
.elementor .be-form .wpcf7 { margin: 0; }
@media (max-width: 1023px) {
  .elementor .be-split.e-con { grid-template-columns: minmax(0, 1fr); gap: 20px !important; }
}
@media (max-width: 767px) {
  .elementor .be-page-hero .be-hero__title .elementor-heading-title { font-size: 2.3rem; }
  .elementor .be-page-hero .be-hero__lead p { font-size: 0.95rem; }
  .elementor .be-card.e-con { padding: 16px !important; box-shadow: 4px 4px 0 0 var(--be-ink); border-width: 3px; gap: 14px !important; }
  .elementor .be-card__title .elementor-heading-title { font-size: 1.25rem; }
}
/* Whole tile / info row is the tap target when it has a link */
.elementor .be-tile,
.elementor .be-info { position: relative; }
.elementor .be-tile .elementor-icon-box-title a::after,
.elementor .be-info .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }

/* Very narrow phones: section title and its button stack instead of overflowing */
@media (max-width: 380px) {
  .elementor .be-sec-head.e-con { flex-wrap: wrap !important; align-items: flex-start; }
  .elementor .be-sec-head > .be-h2 { flex: 1 1 100%; }
}
/* ==========================================================================
   Phone polish (home + any Elementor page using be- classes)
   ========================================================================== */
/* Elementor pages run edge to edge: no theme container padding around bands */
html body.ast-page-builder-template #content > .ast-container,
html body.ast-page-builder-template .site-content > .ast-container {
  padding: 0 !important;
  max-width: 100% !important;
}

@media (max-width: 767px) {
  /* Section header: title left, small "View all" right, one line */
  html body .elementor .be-sec-head.e-con {
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
  }
  html body .elementor .be-sec-head > .be-h2 { flex: 1 1 auto !important; min-width: 0 !important; }
  html body .elementor .be-sec-head .be-h2 .elementor-heading-title { font-size: 1.35rem !important; line-height: 1.05 !important; }
  html body .elementor .be-sec-head .be-btn { flex: 0 0 auto !important; }
  html body .elementor .be-sec-head .be-btn .elementor-button {
    padding: 7px 10px !important;
    font-size: 11px !important;
    letter-spacing: .04em !important;
    border-width: 2px !important;
    box-shadow: 2px 2px 0 0 #000000 !important;
    gap: 6px !important;
  }
  html body .elementor .be-sec-head .be-btn--on-dark .elementor-button { box-shadow: 2px 2px 0 0 #FFFFFF !important; }
  html body .elementor .be-sec-head .be-btn--dark .elementor-button { box-shadow: 2px 2px 0 0 #2563EB !important; }
  html body .elementor .be-sec-head .be-btn .elementor-button-content-wrapper { gap: 6px !important; }
  html body .elementor .be-sec-head .be-btn .elementor-button-icon svg { width: 11px !important; height: 11px !important; }

  /* Bands: lighter separators, tidy rhythm */
  html body .elementor .be-band.e-con { border-bottom-width: 0 !important; }
  html body .elementor .be-band--cream.e-con { background-size: 28px 28px !important; }
  html body .elementor .be-wrap.e-con { gap: 14px !important; }

  /* Product swipe rows: show a peek of the next card, cards never clipped */
  html body .elementor .be-band .be-products ul.products.products {
    gap: 12px !important;
    padding: 2px 12px 10px !important;
    margin: 0 -12px !important;
    align-items: stretch !important;
  }
  html body .elementor .be-band .be-products ul.products.products li.product.product {
    flex: 0 0 62% !important;
    max-width: 240px !important;
    box-shadow: 3px 3px 0 0 #000000 !important;
    border-width: 3px !important;
  }
  html body .elementor .be-band--black .be-products ul.products.products li.product.product { box-shadow: 3px 3px 0 0 #FFFFFF !important; border-color: #FFFFFF !important; }
  html body .elementor .be-band .be-products ul.products li.product .astra-shop-thumbnail-wrap { aspect-ratio: 4 / 3.4 !important; }

  /* Eyebrow + hero spacing */
  html body .elementor .be-hero__text.e-con { padding: 20px 12px 24px !important; gap: 12px !important; }

  /* Categories: compact 2x2 tiles */
  html body .elementor .be-cat { padding: 12px !important; }

  /* Offer band */
  html body .elementor .be-offer.e-con { gap: 12px !important; }
  html body .elementor .be-offer__title .elementor-heading-title { font-size: 2rem !important; }
}
@media (max-width: 360px) {
  html body .elementor .be-band .be-products ul.products.products li.product.product { flex-basis: 70% !important; }
  html body .elementor .be-sec-head .be-h2 .elementor-heading-title { font-size: 1.2rem !important; }
}