/*
 * Ecrio responsive stability and mobile/tablet polish
 * Sep 16, 2026
 *
 * Loaded after styles.min.css and add.css so these rules only correct
 * responsive visibility/layout issues without changing the desktop design.
 */

/* Desktop header: use the available screen width instead of Bootstrap's
 * fixed container width. Keep the logo near the left edge and navigation
 * near the right edge, with responsive gutters on different desktop sizes.
 */
@media (min-width: 992px) {
  #header > .container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: clamp(24px, 3.25vw, 64px) !important;
    padding-right: clamp(24px, 3.25vw, 64px) !important;
  }

  #header .logo {
    flex: 0 0 auto;
    margin-right: 0 !important;
  }

  #header #navbar {
    flex: 0 0 auto;
    margin-left: auto !important;
  }

  #header #navbar > .container {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header #navbar ul {
    justify-content: flex-end;
  }

  #header #navbar > .container > ul > li:last-child > a {
    margin-right: 0 !important;
  }

  /* Reserve room for the Company dropdown arrow so it does not overlap the y. */
  #header .navbar .dropdown > a.dropdown-toggle {
    position: relative;
    padding-right: 22px !important;
  }

  #header .navbar .dropdown > a.dropdown-toggle::after {
    right: 4px !important;
    top: 50% !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    background-position: center !important;
    background-size: 11px 7px !important;
  }
}

/* Prevent animated hero copy from remaining hidden on narrower browsers. */
@media (max-width: 1199px) {
  .hero .text-animation,
  .hero .text-animation.alter {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    animation: none !important;
  }

  .hero .text-animation h1,
  .hero .text-animation.alter h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Products previously hid the page title below 1024px. */
  .technologypage.blue.overflow-none h1,
  .products-page .text-animation.alter h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* Tablet layout: keep hero copy readable and consistently spaced. */
@media (max-width: 991px) {
  .hero:not(.homebanner) {
    min-height: auto !important;
    height: auto !important;
    padding-top: 110px !important;
    padding-bottom: 44px !important;
  }

  .hero:not(.homebanner) .container {
    padding-left: 24px;
    padding-right: 24px;
  }

  .hero:not(.homebanner) .text-animation,
  .hero:not(.homebanner) .text-animation.alter {
    margin: 0 !important;
    padding: 0 12px 18px !important;
    text-align: center !important;
  }

  .hero:not(.homebanner) h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
    font-size: clamp(38px, 6vw, 50px) !important;
    line-height: 1.1 !important;
  }

  .hero:not(.homebanner) p {
    margin: 0 auto !important;
    padding-top: 0 !important;
    max-width: 760px;
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  .hero:not(.homebanner) .product-banner1,
  .hero:not(.homebanner) .product-banner2,
  .hero:not(.homebanner) .contact-banner1 {
    max-width: 560px;
    margin: 22px auto 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center;
    transform: none !important;
  }

  .hero:not(.homebanner) .product-banner1 > img,
  .hero:not(.homebanner) .product-banner2 > img,
  .hero:not(.homebanner) .contact-banner1 > img {
    max-width: 100%;
    height: auto;
  }

  /* Newsroom and press-release title was explicitly hidden in styles.min.css. */
  .page-template-news .d-orange h1,
  .single-press-releases .d-orange h1 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #16193b !important;
  }

  .page-template-news .d-orange,
  .single-press-releases .d-orange {
    padding-top: 110px !important;
    padding-bottom: 40px !important;
  }

  /* Put the press-release title before its artwork on tablet/mobile. */
  .single-press-releases .d-orange .row > .col-lg-6 {
    order: 1 !important;
  }

  .single-press-releases .d-orange .row > .col-lg-5 {
    order: 2 !important;
  }

  /* Products: stack title above carousel instead of using old negative offsets. */
  .products-page .text-animation.alter {
    margin: 0 !important;
    padding: 0 12px 18px !important;
  }

  .products-page #productcarousel {
    top: 0 !important;
    left: 0 !important;
    margin: 10px auto 0 !important;
    max-width: 620px;
  }

  /* Give content cards breathing room on tablets. */
  .genericpage .products-box {
    padding-left: 3%;
    padding-right: 3%;
  }

  .newsblog-section2 .container,
  .newsblog-section3 .container,
  .related-news .container,
  #pr-content .container {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* Phone layout: smaller type, cleaner stacking and touch-friendly spacing. */
@media (max-width: 767px) {
  .hero:not(.homebanner) {
    padding-top: 94px !important;
    padding-bottom: 34px !important;
  }

  .hero:not(.homebanner) .container {
    padding-left: 18px;
    padding-right: 18px;
  }

  .hero:not(.homebanner) h1 {
    font-size: clamp(32px, 9vw, 40px) !important;
    line-height: 1.08 !important;
  }

  .hero:not(.homebanner) p {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .page-template-news .d-orange,
  .single-press-releases .d-orange {
    padding-top: 94px !important;
  }

  /* Decorative newsroom pieces crowd small screens; retain the main artwork. */
  .page-template-news .news-img-1,
  .page-template-news .news-img-2,
  .page-template-news .news-img-3,
  .single-press-releases .news-img-1,
  .single-press-releases .news-img-2,
  .single-press-releases .news-img-3 {
    display: none !important;
  }

  .page-template-news .product-banner1,
  .single-press-releases .product-banner1 {
    max-width: 420px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .genericpage .products-box {
    padding-left: 0;
    padding-right: 0;
  }

  .otherpages ul {
    padding-left: 28px;
  }

  .main-contactform {
    flex-direction: column;
  }

  .homesolution-section .homesolution-box .hsbox,
  .homenews-section .card .card-body {
    flex-direction: column;
  }

  .homesolution-section .homesolution-box .hsbox > div:first-child,
  .homenews-section .card .card-body > div:first-child {
    padding-right: 0;
    margin-bottom: 14px;
  }

  .homesolution-section .homesolution-box .hsbox > div:last-child,
  .homenews-section .card .card-body > div:last-child {
    padding-right: 0;
  }

  .newsblog-section2 h2,
  .newsblog-section3 h2,
  .related-news h3,
  #pr-content h2 {
    line-height: 1.15;
  }

  .ebtn {
    min-height: 44px;
    padding: 0.65rem 1.5rem;
  }
}

@media (max-width: 575px) {
  .hero:not(.homebanner) h1 {
    font-size: 32px !important;
  }

  .hero:not(.homebanner) .text-animation,
  .hero:not(.homebanner) .text-animation.alter {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .newsblog-section2 .container,
  .newsblog-section3 .container,
  .related-news .container,
  #pr-content .container {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/*
 * Home carousel title containment + desktop overlay treatment
 * Match the tablet/mobile caption panel on desktop, while keeping copy
 * in the upper corner with the most available image space.
 */
@media (min-width: 992px) {
  .homebanner .homecarousel .owl-item .item {
    position: relative;
    overflow: hidden;
  }

  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    position: absolute !important;
    top: 0 !important;
    bottom: auto !important;
    z-index: 5;
    margin: 0 !important;
    padding: 16px 20px !important;
    width: auto !important;
    max-width: min(39%, 620px) !important;
    box-sizing: border-box;
    display: block !important;
    transform: none !important;
    border-radius: 0 0 12px 0;
    background: rgba(255, 255, 255, 0.72);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    box-shadow: 0 12px 28px rgba(22, 25, 59, 0.14);
  }

  /* Left-side slides: anchor from the exact upper-left image corner. */
  .homebanner .homecarousel .text-animation:not(.right) {
    left: 0 !important;
    right: auto !important;
  }

  /* Slides marked .right: anchor from the exact upper-right image corner. */
  .homebanner .homecarousel .text-animation.right {
    left: auto !important;
    right: 0 !important;
    margin-left: 0 !important;
    border-radius: 0 0 0 12px;
  }

  .homebanner .homecarousel .text-animation h1 {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(26px, 2.25vw, 40px) !important;
    line-height: 1.14 !important;
    text-wrap: balance;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }
}

/*
 * Home carousel title containment + mobile readability
 * Keep long carousel headlines inside the image while preserving the photo.
 */
@media (max-width: 991px) {
  .homebanner .homecarousel .owl-item .item {
    position: relative;
    overflow: hidden;
  }

  .homebanner .homecarousel .owl-item .homeslider {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    z-index: 5;
    margin: 0 !important;
    padding: 10px 12px !important;
    max-width: none !important;
    width: auto !important;
    box-sizing: border-box;
    display: block !important;
    transform: translateY(-50%) !important;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }

  /* Left-side slides. Keep enough image visible for the subject. */
  .homebanner .homecarousel .text-animation:not(.right) {
    left: 3% !important;
    right: 53% !important;
  }

  /* The first slide is intentionally positioned on the right. */
  .homebanner .homecarousel .text-animation.right {
    left: 55% !important;
    right: 3% !important;
    margin-left: 0 !important;
  }

  .homebanner .homecarousel .text-animation h1 {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(21px, 3vw, 29px) !important;
    line-height: 1.12 !important;
    text-wrap: balance;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
  }
}

@media (max-width: 767px) {
  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    padding: 7px 9px !important;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.72);
  }

  .homebanner .homecarousel .text-animation:not(.right) {
    left: 3% !important;
    right: 52% !important;
  }

  .homebanner .homecarousel .text-animation.right {
    left: 54% !important;
    right: 3% !important;
  }

  .homebanner .homecarousel .text-animation h1 {
    font-size: clamp(16px, 4.15vw, 19px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.01em;
  }
}

@media (max-width: 430px) {
  .homebanner .homecarousel .text-animation h1 {
    font-size: clamp(15px, 3.95vw, 17px) !important;
    line-height: 1.1 !important;
  }
}

@media (max-width: 390px) {
  .homebanner .homecarousel .text-animation:not(.right) {
    right: 50% !important;
  }

  .homebanner .homecarousel .text-animation.right {
    left: 52% !important;
  }

  .homebanner .homecarousel .text-animation h1 {
    font-size: 15px !important;
  }
}

/*
 * Consistent inner-page hero treatment
 * Match the Home carousel's compact, readable mobile/tablet presentation
 * across Products, Technology, Solutions, About, Partners, Newsroom,
 * Contact, Executive Team, Board and other inner-page heroes.
 */
@media (max-width: 991px) {
  .hero:not(.homebanner) .row {
    align-items: center;
    justify-content: center;
  }

  /* Always show the copy before the hero visual on tablet/mobile. */
  .hero:not(.homebanner) .row > .d-flex.flex-column {
    order: 1 !important;
    width: 100%;
  }

  .hero:not(.homebanner) .row > .col-lg-3:not(.d-flex),
  .hero:not(.homebanner) .row > .col-lg-5:not(.d-flex),
  .hero:not(.homebanner) .row > .col-lg-6:not(.d-flex) {
    order: 2 !important;
    width: 100%;
  }

  /* Use the same soft caption-panel language as the Home carousel. */
  .hero:not(.homebanner) .text-animation,
  .hero:not(.homebanner) .text-animation.alter {
    width: min(100%, 760px) !important;
    max-width: 760px !important;
    margin: 0 auto 18px !important;
    padding: 16px 20px !important;
    border: 1px solid rgba(22, 25, 59, 0.08);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.80);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    box-shadow: 0 8px 24px rgba(22, 25, 59, 0.07);
    text-align: center !important;
  }

  .hero:not(.homebanner) .text-animation h1,
  .hero:not(.homebanner) .text-animation.alter h1 {
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: #16193B !important;
    font-size: clamp(34px, 5.2vw, 44px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em;
    text-wrap: balance;
    overflow-wrap: break-word;
  }

  .hero:not(.homebanner) .text-animation p,
  .hero:not(.homebanner) .text-animation.alter p,
  .hero:not(.homebanner) .mobile-font,
  .page-template-news .d-orange p,
  .single-press-releases .d-orange p {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 680px;
    color: #16193B !important;
    font-size: 17px !important;
    line-height: 1.42 !important;
    text-wrap: pretty;
  }

  .hero:not(.homebanner) .text-animation .ebtn,
  .hero:not(.homebanner) .text-animation.alter .ebtn {
    margin-top: 14px;
  }

  /* Keep product/inner-page visuals contained and similarly sized. */
  .hero:not(.homebanner) .product-banner1,
  .hero:not(.homebanner) .product-banner2,
  .hero:not(.homebanner) .contact-banner1,
  .products-page #productcarousel {
    width: min(100%, 600px) !important;
    max-width: 600px !important;
    margin: 12px auto 0 !important;
  }

  .hero:not(.homebanner) .product-banner1 > img,
  .hero:not(.homebanner) .product-banner2 > img,
  .hero:not(.homebanner) .contact-banner1 > img,
  .products-page #productcarousel .item > img,
  .products-page #productcarousel .homeslider {
    display: block;
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    max-height: 360px;
    margin-left: auto;
    margin-right: auto;
    object-fit: contain !important;
    object-position: center;
  }

  /* Give the Products carousel the same clean framed feel as Home captions. */
  .products-page #productcarousel {
    padding: 10px 10px 2px;
    border: 1px solid rgba(22, 25, 59, 0.07);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.62);
    box-shadow: 0 8px 24px rgba(22, 25, 59, 0.06);
  }
}

@media (max-width: 767px) {
  .hero:not(.homebanner) .text-animation,
  .hero:not(.homebanner) .text-animation.alter {
    margin-bottom: 14px !important;
    padding: 12px 14px !important;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
  }

  .hero:not(.homebanner) .text-animation h1,
  .hero:not(.homebanner) .text-animation.alter h1 {
    font-size: clamp(28px, 7.4vw, 34px) !important;
    line-height: 1.08 !important;
  }

  .hero:not(.homebanner) .text-animation p,
  .hero:not(.homebanner) .text-animation.alter p,
  .hero:not(.homebanner) .mobile-font,
  .page-template-news .d-orange p,
  .single-press-releases .d-orange p {
    font-size: 15px !important;
    line-height: 1.38 !important;
  }

  .hero:not(.homebanner) .product-banner1,
  .hero:not(.homebanner) .product-banner2,
  .hero:not(.homebanner) .contact-banner1,
  .products-page #productcarousel {
    width: 100% !important;
    max-width: 460px !important;
    margin-top: 8px !important;
  }

  .hero:not(.homebanner) .product-banner1 > img,
  .hero:not(.homebanner) .product-banner2 > img,
  .hero:not(.homebanner) .contact-banner1 > img,
  .products-page #productcarousel .item > img,
  .products-page #productcarousel .homeslider {
    max-height: 280px;
  }
}

@media (max-width: 430px) {
  .hero:not(.homebanner) .text-animation,
  .hero:not(.homebanner) .text-animation.alter {
    padding: 10px 12px !important;
  }

  .hero:not(.homebanner) .text-animation h1,
  .hero:not(.homebanner) .text-animation.alter h1 {
    font-size: 28px !important;
    line-height: 1.06 !important;
  }

  .hero:not(.homebanner) .text-animation p,
  .hero:not(.homebanner) .text-animation.alter p,
  .hero:not(.homebanner) .mobile-font,
  .page-template-news .d-orange p,
  .single-press-releases .d-orange p {
    font-size: 14px !important;
    line-height: 1.36 !important;
  }

  .hero:not(.homebanner) .product-banner1 > img,
  .hero:not(.homebanner) .product-banner2 > img,
  .hero:not(.homebanner) .contact-banner1 > img,
  .products-page #productcarousel .item > img,
  .products-page #productcarousel .homeslider {
    max-height: 235px;
  }
}

/* Home product logos: force official marks on tablet/mobile - Sep 16, 2026 */
@media (max-width: 991px) {
  .ecrio-home-product-card .ecrio-home-product-heading h3,
  .ecrio-home-product-card .ecrio-product-brand-logo--home {
    display: none !important;
  }

  .ecrio-home-product-card .ecrio-home-product-heading::before {
    content: "";
    display: block;
    width: 155px;
    height: 52px;
    margin: 0 auto 8px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }

  .ecrio-home-product-card.ecrio-card-iota-e .ecrio-home-product-heading::before {
    background-image: url("../img/product-logos/iota-e.svg");
  }

  .ecrio-home-product-card.ecrio-card-iota-dm .ecrio-home-product-heading::before {
    background-image: url("../img/product-logos/iota-dm.svg");
  }

  .ecrio-home-product-card.ecrio-card-iota-dg .ecrio-home-product-heading::before {
    background-image: url("../img/product-logos/iota-dg.svg");
  }
}

@media (max-width: 575px) {
  .ecrio-home-product-card .ecrio-home-product-heading::before {
    width: 138px;
    height: 46px;
  }
}

/* --------------------------------------------------------------------------
 * Website Changes v6 - Sep 17, 2026
 * Keep the header logo stable, improve Home carousel reliability/readability,
 * align Home heading hierarchy, and center Product logos above their titles.
 * -------------------------------------------------------------------------- */

/* Keep the Ecrio header logo at the preferred smaller size before/after scroll. */
.header .logo img,
.header.header-scrolled .logo img {
  max-height: 48px !important;
}

/* Always expose the Home carousel navigation dots. */
.home #homecarousel.owl-theme .owl-dots,
.homebanner #homecarousel.owl-theme .owl-dots {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative;
  z-index: 20;
  margin-top: 8px !important;
  text-align: center;
}

.home #homecarousel.owl-theme .owl-dots .owl-dot,
.homebanner #homecarousel.owl-theme .owl-dots .owl-dot {
  display: inline-block !important;
  visibility: visible !important;
}

.home #homecarousel.owl-theme .owl-dots .owl-dot span,
.homebanner #homecarousel.owl-theme .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  margin: 4px 5px;
}

/* Put all three Home carousel headlines flush with the top image corners on desktop. */
@media (min-width: 992px) {
  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    top: 14px !important;
    bottom: auto !important;
    margin: 0 !important;
    margin-top: 0 !important;
    transform: none !important;
    width: auto !important;
    max-width: min(39%, 620px) !important;
    padding: 16px 20px !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, 0.78) !important;
    box-shadow: none !important;
    clip-path: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .homebanner .homecarousel .text-animation:not(.right) {
    left: 14px !important;
    right: auto !important;
  }

  .homebanner .homecarousel .text-animation.right {
    left: auto !important;
    right: 14px !important;
    margin-left: 0 !important;
  }

  .homebanner .homecarousel .text-animation h1 {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    font-size: clamp(26px, 2.25vw, 40px) !important;
    line-height: 1.14 !important;
  }
}

@media (max-width: 991px) {
  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    top: 6% !important;
    bottom: auto !important;
    transform: none !important;
  }
}

/* Match the heading directly below the carousel to the next section heading. */
.techwidget-section h3 {
  font-size: 34px !important;
  line-height: 1.2 !important;
}

@media (max-width: 991px) {
  .techwidget-section h3 {
    font-size: 29px !important;
  }
}

@media (max-width: 767px) {
  .techwidget-section h3 {
    font-size: 25px !important;
  }
}

/* Products: center every iota logo above its associated title/description. */
.ecrio-product-brand-picture {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
}

.ecrio-product-detail-heading {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ecrio-product-detail-heading .product-heading,
.ecrio-product-detail-card {
  text-align: center;
}

.ecrio-product-brand-logo--detail-large,
.ecrio-product-brand-logo--detail,
.ecrio-product-detail-card .ecrio-product-brand-logo--detail {
  margin-left: auto !important;
  margin-right: auto !important;
  align-self: center !important;
}

@media (max-width: 575px) {
  .header .logo img,
  .header.header-scrolled .logo img {
    max-height: 44px !important;
  }
}

/* Keep the Home header visually consistent before and after scrolling.
 * The original theme makes the Home header transparent at the top and
 * switches it to white after scroll, which makes the Ecrio logo appear
 * directly over the carousel image before the transition. */
.page-template-home .header,
.page-template-home .header.header-scrolled {
  background-color: #fff !important;
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}

.page-template-home .header.header-scrolled {
  box-shadow: 0 2px 20px rgba(1, 41, 112, 0.1);
}

/* Home carousel desktop caption: compact corner card.
 * Keep the same light translucent treatment used on tablet/mobile, but avoid
 * a wide banner that covers the carousel artwork. */
@media (min-width: 992px) {
  .homebanner .homecarousel .text-animation,
  .homebanner .homecarousel .text-animation.vtop,
  .homebanner .homecarousel .text-animation.vmiddle,
  .homebanner .homecarousel .text-animation.right {
    top: 6% !important;
    bottom: auto !important;
    width: clamp(420px, 34vw, 620px) !important;
    max-width: calc(100% - 8vw) !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 14px 18px !important;
    box-sizing: border-box;
    display: block !important;
    transform: none !important;
    border-radius: 10px !important;
    background: rgba(255, 255, 255, 0.72) !important;
    border: 1px solid rgba(255, 255, 255, 0.42);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    box-shadow: 0 8px 24px rgba(9, 34, 58, 0.16);
  }

  .homebanner .homecarousel .text-animation:not(.right) {
    left: 4% !important;
    right: auto !important;
  }

  .homebanner .homecarousel .text-animation.right {
    left: auto !important;
    right: 4% !important;
    margin-left: 0 !important;
  }

  .homebanner .homecarousel .text-animation h1 {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(28px, 2vw, 36px) !important;
    line-height: 1.13 !important;
    letter-spacing: -0.015em;
    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}


/* Home page infographic hero */
.page-template-home .edge-ai-framework-hero {
  padding: 0;
}

.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
  width: 100%;
  margin-top: 88px;
}

.page-template-home .edge-ai-framework-hero .container-fluid,
.page-template-home .edge-ai-framework-hero .row,
.page-template-home .edge-ai-framework-hero .col-lg-12 {
  padding-left: 0;
  padding-right: 0;
}

.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
  padding: 0 24px 16px;
}

.page-template-home .edge-ai-framework-hero .edge-ai-framework-graphic {
  display: block;
  width: 100%;
  max-width: 1600px;
  height: auto;
  margin: 0 auto;
  border-radius: 24px;
}

@media (max-width: 1199.98px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 82px;
  }

  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
    padding: 0 20px 14px;
  }
}

@media (max-width: 991.98px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 74px;
  }

  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
    padding: 0 14px 12px;
  }

  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero .edge-ai-framework-graphic,
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-graphic {
    border-radius: 18px;
  }
}

@media (max-width: 575.98px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 68px;
  }

  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
    padding: 0 10px 10px;
  }

  .page-template-home .edge-ai-framework-hero .edge-ai-framework-graphic {
    border-radius: 14px;
  }
}

/* Framework hero: use the full viewport width on every screen size. */
.page-template-home .edge-ai-framework-hero,
.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap,
.page-template-home .edge-ai-framework-hero .container-fluid,
.page-template-home .edge-ai-framework-hero .row,
.page-template-home .edge-ai-framework-hero .col-lg-12,
.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
  width: 100% !important;
  max-width: none !important;
}

.page-template-home .edge-ai-framework-hero {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
  height: auto !important;
}

.page-template-home .edge-ai-framework-hero .container-fluid,
.page-template-home .edge-ai-framework-hero .row,
.page-template-home .edge-ai-framework-hero .col-lg-12,
.page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-media {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-template-home .edge-ai-framework-hero .row {
  --bs-gutter-x: 0;
}

.page-template-home .edge-ai-framework-hero .edge-ai-framework-graphic {
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  object-fit: contain !important;
  border-radius: 0 !important;
}

@media (min-width: 992px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-graphic {
    min-width: 100vw !important;
  }
}

@media (max-width: 991.98px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 68px !important;
  }
}

@media (max-width: 575.98px) {
  .page-template-home .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 62px !important;
  }
}

/* Final framework hero breakout: do not depend on WordPress body template classes. */
.edge-ai-framework-hero {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin-left: -50vw !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.edge-ai-framework-hero .edge-ai-framework-hero-wrap,
.edge-ai-framework-hero .container-fluid,
.edge-ai-framework-hero .row,
.edge-ai-framework-hero .col-lg-12,
.edge-ai-framework-hero .edge-ai-framework-hero-media {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.edge-ai-framework-hero .row {
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.edge-ai-framework-hero .edge-ai-framework-graphic {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 0 !important;
}

@media (max-width: 991.98px) {
  .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 68px !important;
  }
}

@media (max-width: 575.98px) {
  .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 62px !important;
  }
}

/* Final framework hero breakout: do not depend on WordPress body template classes. */
.edge-ai-framework-hero {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin-left: -50vw !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.edge-ai-framework-hero .edge-ai-framework-hero-wrap,
.edge-ai-framework-hero .container-fluid,
.edge-ai-framework-hero .row,
.edge-ai-framework-hero .col-lg-12,
.edge-ai-framework-hero .edge-ai-framework-hero-media {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.edge-ai-framework-hero .row {
  --bs-gutter-x: 0 !important;
  --bs-gutter-y: 0 !important;
}

.edge-ai-framework-hero .edge-ai-framework-graphic {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 0 !important;
}

@media (max-width: 991.98px) {
  .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 68px !important;
  }
}

@media (max-width: 575.98px) {
  .edge-ai-framework-hero .edge-ai-framework-hero-wrap {
    margin-top: 62px !important;
  }
}

/* Management review alignment updates - 2026-09 */
@media (min-width: 992px) {
  footer .footer-content {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: start;
    column-gap: 28px;
  }

  footer .footer-menu-links {
    margin: 0;
    align-items: flex-start;
  }

  footer .footer-menu-links li {
    margin-bottom: 0;
  }

  footer .ecrio-footer-company-links {
    margin-top: 8px;
    line-height: 1.55;
  }

  footer .ecrio-social-links--footer {
    margin: 25px 0 0;
    align-self: start;
  }

  footer .copyright-txt {
    margin: 0;
    align-self: start;
    text-align: right;
  }
}

/* Contact headings share the same baseline and type size. */
.contactmain-section .main-contactform {
  align-items: stretch;
}

.genericpage .contactus-box .contact-form {
  padding-top: 35px;
}

.genericpage .contactus-box .contact-form h2,
.genericpage .contactus-box .card h4 {
  margin: 0 0 18px !important;
  font-size: 20px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

@media (max-width: 991px) {
  .genericpage .contactus-box .contact-form {
    padding-top: 30px;
  }
}
