.ecqa-countercards {
    --ecqa-counter-bg: #eef7fc;
    --ecqa-counter-primary: #27378f;
    --ecqa-counter-text: #111c2f;
    --ecqa-counter-pad-top: 80px;
    --ecqa-counter-pad-bottom: 80px;
    --ecqa-counter-max-width: 1168px;
    box-sizing: border-box;
    width: 100%;
    padding: var(--ecqa-counter-pad-top) 24px var(--ecqa-counter-pad-bottom);
    color: var(--ecqa-counter-text);
    background: var(--ecqa-counter-bg);
}

/* ECQA shared section heading standard */
.ecqa-countercards__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-countercards__header h2 { font-size: 32px !important; } }
@media (max-width: 767px) { .ecqa-countercards__header h2 { font-size: 28px !important; } }

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

.ecqa-countercards.no-background { background: transparent; }
.ecqa-countercards *, .ecqa-countercards *::before, .ecqa-countercards *::after { box-sizing: border-box; }

.ecqa-countercards__inner {
    width: 100%;
    max-width: var(--ecqa-counter-max-width);
    margin: 0 auto;
}

.ecqa-countercards__header {
    max-width: 820px;
    margin: 0 auto 60px;
    text-align: center;
}

.ecqa-countercards__header h2 {
    margin: 0 0 24px;
    color: var(--ecqa-counter-text);
    font-size: 36px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.ecqa-countercards__header p {
    margin: 0;
    color: #52647a;
    font-size: 1.08rem;
    line-height: 1.55;
}

.ecqa-countercards__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    justify-content: center;
}

.ecqa-countercards__card {
    display: flex;
    min-height: 328px;
    padding: 42px 28px 38px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 17px;
    background: #fff;
    color: var(--ecqa-counter-primary);
    text-align: center;
    box-shadow: 0 16px 34px rgba(25, 46, 84, 0.09);
}

.ecqa-countercards__card.is-highlighted {
    background: var(--ecqa-counter-primary);
    color: #fff;
}

.ecqa-countercards__icon {
    width: 96px;
    height: 96px;
    margin-bottom: 28px;
}

.ecqa-countercards__icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ecqa-countercards__number {
    display: flex;
    align-items: baseline;
    justify-content: center;
    margin-bottom: 12px;
    font-size: clamp(3rem, 4.5vw, 3.65rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.035em;
    font-variant-numeric: tabular-nums;
}

.ecqa-countercards__card h3 {
    margin: 0;
    color: var(--ecqa-counter-text);
    font-size: 1.12rem;
    font-weight: 650;
    line-height: 1.35;
}

.ecqa-countercards__card.is-highlighted h3 { color: #fff; }

@media (max-width: 900px) {
    .ecqa-countercards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ecqa-countercards__card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc(50% - 17px); justify-self: center; }
}

@media (max-width: 600px) {
    .ecqa-countercards { padding-right: 20px; padding-left: 20px; }
    .ecqa-countercards.has-background { border-radius: 28px; }
    .ecqa-countercards__header { margin-bottom: 42px; }
    .ecqa-countercards__header h2 { margin-bottom: 18px; font-size: 28px; }
    .ecqa-countercards__header p { font-size: 1rem; }
    .ecqa-countercards__grid { grid-template-columns: 1fr; gap: 22px; }
    .ecqa-countercards__card,
    .ecqa-countercards__card:last-child:nth-child(odd) { grid-column: auto; width: 100%; min-height: 290px; }
}

@media (prefers-reduced-motion: reduce) {
    .ecqa-countercards__value { transition: none !important; }
}
/* ECQA final heading normalization */
html body .ecqa-countercards .ecqa-countercards__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) { html body .ecqa-countercards .ecqa-countercards__header > h2 { font-size: 32px !important; } }
@media (max-width: 767px) { html body .ecqa-countercards .ecqa-countercards__header > h2 { font-size: 28px !important; } }
/* 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);
  }
}
