.ecqa-logocarousel {
    --ecqa-logo-bg: transparent;
    --ecqa-logo-arrow: #27378f;
    --ecqa-logo-box: #fff;
    --ecqa-logo-height: 115px;
    --ecqa-logo-width: 230px;
    --ecqa-logo-scale: 78%;
    --ecqa-logo-gap: 38px;
    --ecqa-logo-pad-top: 65px;
    --ecqa-logo-pad-bottom: 65px;
    --ecqa-logo-max-width: 1220px;
    --ecqa-logo-desktop: 3;
    --ecqa-logo-tablet: 2;
    --ecqa-logo-mobile: 1;
    --ecqa-logo-duration: 500ms;
    box-sizing: border-box;
    width: 100%;
    padding: var(--ecqa-logo-pad-top) 22px var(--ecqa-logo-pad-bottom);
    background: var(--ecqa-logo-bg);
}

/* ECQA shared section heading standard */
.ecqa-logocarousel__header h2 {
    font-family: inherit !important;
    font-size: 36px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
}
@media (max-width: 991px) { .ecqa-logocarousel__header h2 { font-size: 32px !important; } }
@media (max-width: 767px) { .ecqa-logocarousel__header h2 { font-size: 28px !important; } }

.ecqa-logocarousel.has-background {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: none;
    margin-right: -50vw;
    margin-left: -50vw;
    overflow: hidden;
    border-radius: 46px;
}

.ecqa-logocarousel *, .ecqa-logocarousel *::before, .ecqa-logocarousel *::after { box-sizing: border-box; }
.ecqa-logocarousel__inner { width: 100%; max-width: var(--ecqa-logo-max-width); margin: 0 auto; }

.ecqa-logocarousel__header { max-width: 780px; margin: 0 auto 45px; text-align: center; }
.ecqa-logocarousel__header h2 { margin: 0 0 18px; color: #111c2f; font-size: clamp(2rem, 3vw, 2.65rem); font-weight: 600; line-height: 1.16; }
.ecqa-logocarousel__header p { margin: 0; color: #52647a; font-size: 1.08rem; line-height: 1.55; }

.ecqa-logocarousel__carousel { display: grid; grid-template-columns: 50px minmax(0, 1fr) 50px; gap: 24px; align-items: center; }
.ecqa-logocarousel__viewport { min-width: 0; overflow: hidden; }
.ecqa-logocarousel__track {
    display: flex;
    gap: var(--ecqa-logo-gap);
    transform: translate3d(0, 0, 0);
    transition: transform var(--ecqa-logo-duration) cubic-bezier(.22, .7, .25, 1);
    will-change: transform;
}

.ecqa-logocarousel__slide {
    display: flex;
    min-width: 0;
    flex: 0 0 calc((100% - (var(--ecqa-logo-desktop) - 1) * var(--ecqa-logo-gap)) / var(--ecqa-logo-desktop));
    align-items: center;
    justify-content: center;
}

.ecqa-logocarousel__logo {
    display: flex;
    width: 100%;
    max-width: calc(var(--ecqa-logo-width) + 48px);
    height: calc(var(--ecqa-logo-height) + 40px);
    padding: 20px 24px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--ecqa-logo-box);
    color: inherit;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

a.ecqa-logocarousel__logo:hover,
a.ecqa-logocarousel__logo:focus-visible { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(24, 44, 82, .1); }
a.ecqa-logocarousel__logo:focus-visible { outline: 3px solid rgba(39, 55, 143, .28); outline-offset: 3px; }

.ecqa-logocarousel__logo img {
    display: block;
    width: var(--ecqa-logo-scale);
    max-width: var(--ecqa-logo-width);
    height: var(--ecqa-logo-scale);
    max-height: var(--ecqa-logo-height);
    object-fit: contain;
    object-position: center;
}

.ecqa-logocarousel__arrow {
    display: inline-flex;
    width: 48px;
    height: 48px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1.5px solid var(--ecqa-logo-arrow);
    border-radius: 50%;
    background: #fff;
    color: var(--ecqa-logo-arrow);
    cursor: pointer;
    transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

.ecqa-logocarousel__arrow--prev,
.ecqa-logocarousel__arrow--next { background: var(--ecqa-logo-arrow); color: #fff; }
.ecqa-logocarousel__arrow:hover, .ecqa-logocarousel__arrow:focus-visible { transform: scale(1.06); background: var(--ecqa-logo-arrow); color: #fff; }
.ecqa-logocarousel__arrow:focus-visible { outline: 3px solid rgba(39, 55, 143, .25); outline-offset: 3px; }
.ecqa-logocarousel__arrow:disabled { opacity: .35; cursor: default; transform: none; }
.ecqa-logocarousel__arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 900px) {
    .ecqa-logocarousel__slide { flex-basis: calc((100% - (var(--ecqa-logo-tablet) - 1) * var(--ecqa-logo-gap)) / var(--ecqa-logo-tablet)); }
}

@media (max-width: 600px) {
    .ecqa-logocarousel.has-background { border-radius: 28px; }
    .ecqa-logocarousel__carousel { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 10px; }
    .ecqa-logocarousel__slide { flex-basis: calc((100% - (var(--ecqa-logo-mobile) - 1) * var(--ecqa-logo-gap)) / var(--ecqa-logo-mobile)); }
    .ecqa-logocarousel__arrow { width: 40px; height: 40px; }
    .ecqa-logocarousel__logo { height: calc(var(--ecqa-logo-height) + 30px); padding: 15px 18px; }
    .ecqa-logocarousel__header { margin-bottom: 34px; }
    .ecqa-logocarousel__header h2 { font-size: 1.9rem; }
}

@media (prefers-reduced-motion: reduce) {
    .ecqa-logocarousel__track { transition: none; }
}
/* ECQA universal main module heading */
html body h2.ecqa-section-title.ecqa-section-title {
    font-family: inherit !important;
    font-size: 36px !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    text-transform: none !important;
}
@media (max-width: 991px) {
    html body h2.ecqa-section-title.ecqa-section-title { font-size: 32px !important; }
}
@media (max-width: 767px) {
    html body h2.ecqa-section-title.ecqa-section-title { font-size: 28px !important; }
}

/* ECQA unified action-button hover — 2026-09-11 */
@media (hover: hover) and (pointer: fine) {
  .ecqa-project__button:hover,
  .ecqa-contactcta__button:hover,
  .ecqa-hero .ecqa-button:hover,
  .ecqa-project-card__button:hover,
  .ecqa-contentblock__button:hover,
  .ecqa-contentblock__button--primary:hover,
  .ecqa-contentblock__button--secondary:hover,
  .ecqa-newsletter__fields button:hover,
  .ecqa-video-services__button:hover,
  .ecqa-featurecard__button:hover,
  .ecqa-contactform__form button[type="submit"]:hover,
  .ecqa-contactform__form input[type="submit"]:hover,
  .ecqa-contactform__form .btn-primary:hover,
  .ecqa-contactform__form .visBtn:hover,
  .ecqa-trainingprovider__button:hover,
  .ecqa-exam-card__button:hover,
  .ecqa-news__button:hover {
    background: #1f2d73 !important;
    border-color: #1f2d73 !important;
    color: #fff !important;
    opacity: 1 !important;
    filter: none !important;
    transform: translateY(-2px);
  }
}
