/* Recommended Products: one complete visual component; product queries and Swiper settings remain per instance. */
.e-con-boxed:has(> .e-con-inner > .elementor-widget-astratech-contact-products) > .e-con-inner {
  width: 100%; max-width: 100%; padding: 0; gap: 0;
}
.elementor-widget-astratech-contact-products { width: 100%; min-width: 0; }
body .astra-rp { width: 100%; color: #333; font-family: Inter, sans-serif; letter-spacing: -.1px; }
body .astra-rp .astra-ct-prod {
  display: block; width: 100%; min-height: 0; padding: 64px 0;
  margin: 0; background: #eceef1; box-sizing: border-box;
}
body .astra-rp .astra-rp__inner {
  display: flex; flex-direction: column; align-items: center;
  width: 83.33%; max-width: 1440px; margin: 0 auto; padding: 0; min-width: 0;
}
body .astra-rp .astra-ct-prod__header {
  display: flex; flex-direction: column; align-items: center; gap: 0;
  width: 100%; max-width: none; text-align: center; margin: 0; padding: 0;
}
body .astra-rp .astra-ct-prod__title {
  margin: 0; padding: 0; font-family: Inter, sans-serif;
  font-size: clamp(28px, 2.35vw, 48px); font-weight: 700;
  line-height: 1; letter-spacing: -.1px; color: #111;
}
body .astra-rp .astra-ct-prod__header > .astra-ct__rule {
  display: block; flex: 0 0 auto; width: 100px; height: 4px;
  margin: 24px auto; padding: 0; border: 0; background: #e60012;
}
body .astra-rp .astra-ct-prod__sub {
  width: 100%; max-width: none; margin: 0; padding: 0; text-align: center;
  font-family: Inter, sans-serif; font-size: clamp(18px, 1.1vw, 22px);
  line-height: 1.4; font-weight: 600; letter-spacing: -.1px; color: #767676;
}
body .astra-rp .astra-ct-prod__carousel { width: 100%; min-width: 0; margin-top: 48px; }
body .astra-rp .astra-ct-prod__grid.swiper { display: block; overflow: hidden; width: 100%; touch-action: pan-y; }
body .astra-rp .astra-ct-prod__grid > .swiper-wrapper { display: flex; align-items: stretch; }
body .astra-rp .astra-ct-prod__grid > .swiper-wrapper > .swiper-slide { display: flex; flex-shrink: 0; height: auto; box-sizing: border-box; }
body .astra-rp .astra-ct-prod__card {
  flex: 0 0 auto; width: 100%; max-width: none; min-width: 0; height: 100%; margin-inline: auto;
  background: #fff; border: 1px solid #d9d9d9;
}
body .astra-rp .astra-ct-prod__card:is(:hover,:focus-visible,:active) { border-color: #e60012; }
body .astra-rp .astra-ct-prod__media { aspect-ratio: 1 / 1; background: #f9f9f9 !important; }
body .astra-rp .astra-ct-prod__media img { inset: 6%; width: 88%; height: 88%; max-width: 100%; object-fit: contain; }
body .astra-rp .astra-ct-prod__name {
  font-size: clamp(20px, 1.45vw, 24px) !important; line-height: 1.3 !important; font-weight: 600 !important;
}
body .astra-rp .astra-ct-prod__spec { font-size: 17px !important; line-height: 1.5 !important; font-weight: 500 !important; color: #666 !important; }
body .astra-rp .astra-ct-prod__dots {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 12px; margin-top: 40px;
}
body .astra-rp .astra-ct-prod__dots .swiper-pagination-bullet {
  width: 12px; height: 12px; margin: 0 4px; border-radius: 999px; background: #d9d9d9;
  opacity: 1; cursor: pointer; transition: background-color 180ms ease;
}
body .astra-rp .astra-ct-prod__dots .swiper-pagination-bullet-active { background: #e60012; }
body .astra-rp .astra-ct-prod__dots:is([hidden],.swiper-pagination-lock) { display: none; }
body .astra-rp .astra-ct-prod__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: var(--astra-btn-h,48px); min-height: var(--astra-btn-h,48px);
  margin: 96px 0 0; padding: 0 var(--astra-btn-px,24px); box-sizing: border-box;
  border: 1px solid #e60012; background: transparent; color: #e60012;
  font-family: Inter, sans-serif; font-size: var(--astra-btn-fs,14px); line-height: 20px;
  font-weight: 600; letter-spacing: 0; text-decoration: none;
  transition: background-color 300ms, color 300ms, border-color 300ms;
}
body .astra-rp .astra-ct-prod__cta:is(:hover,:focus-visible) { background: #e60012; color: #fff; filter: none; }
body .astra-rp .astra-ct-prod__cta svg { width: 7px; height: 11px; flex: 0 0 auto; margin-top: 3px; }
body .astra-rp :is(.astra-ct-prod__cta,.swiper-pagination-bullet):focus-visible { outline: 2px solid #e60012; outline-offset: 4px; }
@media (max-width:1366px) {
  body .astra-rp .astra-ct-prod { padding-block: 68px; }
  body .astra-rp .astra-rp__inner { width: 92%; }
  body .astra-rp .astra-ct-prod__carousel { margin-top: 68px; }
  body .astra-rp .astra-ct-prod__cta { margin-top: 58px; }
}
@media (max-width:1199px) {
  body .astra-rp .astra-ct-prod__title { font-size: 28px; }
  body .astra-rp .astra-ct-prod__name { font-size: clamp(20px,2.1vw,22px) !important; }
  body .astra-rp .astra-ct-prod__spec { font-size: 16px !important; }
}
@media (max-width:768px) {
  body .astra-rp .astra-ct-prod { padding-block: 8vw; }
  body .astra-rp .astra-rp__inner { width: calc(100% - 30px); }
  body .astra-rp .astra-ct-prod__title { font-size: clamp(24px,6vw,28px); }
  body .astra-rp .astra-ct-prod__header > .astra-ct__rule { margin-block: 10px; }
  body .astra-rp .astra-ct-prod__sub { font-size: 16px; }
  body .astra-rp .astra-ct-prod__carousel, body .astra-rp .astra-ct-prod__cta { margin-top: 5.8vw; }
  body .astra-rp .astra-ct-prod__name { font-size: 17px !important; line-height: 1.42 !important; }
  body .astra-rp .astra-ct-prod__spec { font-size: 15px !important; line-height: 1.5 !important; }
  body .astra-rp .astra-ct-prod__dots { margin-top: 36px; }
  body .astra-rp .astra-ct-prod__cta svg { width: 1.8vw; margin-top: .3vw; }
}
@media (prefers-reduced-motion:reduce) {
  body .astra-rp :is(.astra-ct-prod__cta,.swiper-pagination-bullet) { transition: none; }
}

/* Preserve the current homepage mobile composition for every recommendation instance. */
@media (max-width: 767px){body .astra-rp .astra-ct-prod__grid{
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
body .astra-rp .astra-ct-prod__card{
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 12px !important;
    text-align: left !important;
  }
body .astra-rp .astra-ct-prod__media{
    flex: 0 0 auto !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
  }
body .astra-rp .astra-ct-prod__media img{
    object-fit: contain !important;
  }
body .astra-rp .astra-ct-prod__info{
    flex: 0 0 auto !important;
    min-width: 0 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 2px 0 0 !important;
    text-align: left !important;
  }
body .astra-rp .astra-ct-prod__card .astra-ct-prod__info .astra-ct-prod__name{
    align-self: stretch !important;
    min-height: 0 !important;
    text-align: left !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
  }
body .astra-rp .astra-ct-prod__card .astra-ct-prod__specs{
    justify-content: flex-start !important;
  }
body .astra-rp .astra-ct-prod__card .astra-ct-prod__spec{
    text-align: left !important;
  }
body .astra-rp .astra-ct-prod__more{
    position: static !important;
    grid-area: auto !important;
    inset: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    justify-content: flex-start !important;
    padding: 4px 0 0 !important;
    background: transparent !important;
    color: #e60012 !important;
  }
}
.astra-ct-prod__grid{
  align-items: stretch;
}
.astra-ct-prod__card{
  align-items: stretch;
  grid-template-rows: auto minmax(0, 1fr);
}
.astra-ct-prod__card .astra-ct-prod__media{
  aspect-ratio: 1 / 1;
  align-self: stretch;
}
.astra-ct-prod__card .astra-ct-prod__info{
  align-self: stretch;
  justify-content: flex-start;
}
.astra-ct-prod__card .astra-ct-prod__name{
  box-sizing: border-box;
  width: 100%;
  min-height: calc(var(--pcard-name-line, 32px) * 3);
  align-self: stretch;
  text-align: center;
}
.astra-ct-prod__card .astra-ct-prod__specs{
  align-self: stretch;
  width: 100%;
  text-align: center;
}
@media (max-width: 768px){.astra-ct-prod__card .astra-ct-prod__name{
    min-height: calc(3 * clamp(16px, 4.6vw, 22px));
  }
}


/* Fit the complete shared recommendation carousel into shorter desktop viewports.
   Square media shrinks independently of the card width; product images never stretch. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod {
    min-height: calc(100svh - var(--astra-header-h, 72px) - var(--wp-admin--admin-bar--height, 0px));
    display: flex;
    align-items: center;
    padding-block: clamp(32px, 4svh, 48px);
  }
  body .astra-rp .astra-ct-prod__carousel { margin-top: 32px; }
  body .astra-rp .astra-ct-prod__card { padding: 16px; gap: 16px; }
  body .astra-rp .astra-ct-prod__media {
    width: min(100%, clamp(180px, calc(100svh - 610px), 480px));
    height: auto;
    aspect-ratio: 1 / 1;
    justify-self: center;
    align-self: center;
  }
  body .astra-rp .astra-ct-prod__info { padding: 8px 0; gap: 10px; }
  body .astra-rp .astra-ct-prod__name {
    font-size: clamp(20px, 1.1vw, 24px) !important;
    min-height: 3.9em;
  }
  body .astra-rp .astra-ct-prod__spec { font-size: 16px !important; }
  body .astra-rp .astra-ct-prod__dots { margin-top: 24px; }
}
/* Scale the complete card, including its copy, to the requested slender proportion. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod__card {
    max-width: clamp(320px, 17.7vw, 450px);
    width: 100%;
  }
  body .astra-rp .astra-ct-prod__media { width: 100%; }
}
/* Keep the three slender cards together instead of centering each in a wide slide. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod__carousel {
    max-width: calc(3 * clamp(320px, 17.7vw, 450px) + 40px);
    margin-inline: auto;
  }
}
/* Give the whole recommendation section generous outer breathing room. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod {
    padding-block: clamp(80px, 5vw, 128px);
  }
}
/* Slightly more room between desktop cards, without increasing card width. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod__carousel {
    max-width: calc(3 * clamp(320px, 17.7vw, 450px) + 76px);
  }
}
/* Give pagination dots more separation from the product cards. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod__dots { margin-top: 40px; }
}
/* Separate the section introduction from the product row. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod__carousel { margin-top: 56px; }
}
/* Moderate outer spacing: 80px at 1920 and wider desktop screens.
   Natural section height prevents viewport centering from adding extra whitespace. */
@media (min-width: 1201px) {
  body .astra-rp .astra-ct-prod {
    min-height: 0;
    padding-block: clamp(64px, 4.1666667vw, 80px);
  }
}