/* Homepage M2 only: services and the connected capability system. */
.home #services-overview {
    padding-block: 26px 30px;
    background: linear-gradient(140deg, #edf5ff 0, #fff 23%, #fff 83%, #f0f5ff 100%);
}
.home #services-overview > .cv-container,
.home #capabilities > .cv-container {
    width: min(calc(100% - 120px), 1268px);
}
.home #services-overview .cv-home-v1-section-heading {
    position: relative;
    margin: 0 0 16px;
    padding-right: 155px;
}
.home #services-overview .cv-eyebrow,
.home #capabilities .cv-eyebrow { margin-bottom: 7px; font-size: 12px; letter-spacing: .15em; }
.home #services-overview h2 { font-size: 30px; line-height: 1.12; }
.home #services-overview .cv-home-m2-all-services {
    position: absolute; right: 0; bottom: 6px;
    color: #4937dd; font-size: 13px; text-decoration: none;
}
.home #services-overview .cv-home-v1-service-grid { gap: 10px; grid-template-columns: repeat(6,minmax(0,1fr)); }
.home #services-overview .cv-home-v1-service-card {
    --cv-service-color: #207bff;
    position: relative; padding: 10px 17px 8px; min-height: 270px;
    border: 1px solid var(--cv-service-color); border-radius: 7px;
    background: radial-gradient(ellipse at 55% 0, color-mix(in srgb,var(--cv-service-color) 23%,transparent),transparent 64%), #03132c;
    box-shadow: inset 0 1px 8px color-mix(in srgb,var(--cv-service-color) 24%,transparent),0 5px 14px #061a3614;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.home #services-overview .cv-home-v1-service-card--technical-seo { --cv-service-color: #784cff; }
.home #services-overview .cv-home-v1-service-card--on-page-content-seo { --cv-service-color: #ff881f; }
.home #services-overview .cv-home-v1-service-card--local-seo { --cv-service-color: #00cab8; }
.home #services-overview .cv-home-v1-service-card--google-business-profile-optimisation { --cv-service-color: #338aff; }
.home #services-overview .cv-home-v1-service-card--link-building { --cv-service-color: #ec258f; }
.home #services-overview .cv-home-v1-service-card:hover,
.home #services-overview .cv-home-v1-service-card:focus-within {
    border-color: #85edff; transform: translateY(-3px);
    box-shadow: inset 0 1px 12px color-mix(in srgb,var(--cv-service-color) 35%,transparent),0 8px 18px #061a362b;
}
.home #services-overview .cv-home-v1-service-card__top { justify-content: space-between; margin-bottom: 10px; }
.home #services-overview .cv-home-v1-service-card__icon {
    width: 54px; height: 54px; flex-basis: 54px; border-radius: 10px;
    background: linear-gradient(145deg,color-mix(in srgb,var(--cv-service-color) 70%,white),var(--cv-service-color) 55%);
    box-shadow: 0 0 20px color-mix(in srgb,var(--cv-service-color) 35%,transparent),inset 0 1px 1px #ffffff66;
}
.home #services-overview .cv-home-v1-service-card__icon img { width: 34px; height: 34px; }
.home #services-overview .cv-home-v1-service-card__number { color: color-mix(in srgb,var(--cv-service-color) 65%,white); font-size: 16px; }
.home #services-overview .cv-home-v1-service-card h3 { margin-bottom: 8px; font-size: 18px; line-height: 1.16; }
.home #services-overview .cv-home-v1-service-card h3 a { color: #fff; }
.home #services-overview .cv-home-v1-service-card > p { color: #e0e7f3; font-size: 14px; line-height: 1.35; margin-bottom: 6px; }
.home #services-overview .cv-card__link {
    position: static; display: flex; align-items: center; justify-content: space-between;
    gap: 8px; min-height: 44px; color: #55f3f0; font-size: 13px;
}
.home #services-overview .cv-card__link::after { position: absolute; inset: 0; content: ''; border-radius: inherit; }
.home #services-overview .cv-card__link > span {
    display: grid; place-items: center; width: 29px; height: 29px;
    border: 1px solid var(--cv-service-color); border-radius: 50%; font-size: 18px;
}
.home #services-overview a:focus-visible,
.home #capabilities a:focus-visible { outline: 3px solid #68e8ff; outline-offset: 4px; border-radius: 3px; }
.home #services-overview .cv-home-m2-all-services:focus-visible { outline-color: #4937dd; }
.home #services-overview .cv-card__link:focus-visible::after { outline: 3px solid #68e8ff; outline-offset: 3px; }

.home #capabilities {
    padding-block: 32px;
    background: radial-gradient(ellipse at 95% 100%,#14265c80,transparent 48%),linear-gradient(135deg,#031027,#041a35 62%,#031027);
}
.home #capabilities .cv-home-m2-system { display: grid; grid-template-columns: 350px minmax(0,1fr); gap: 38px; align-items: center; }
.home #capabilities .cv-home-v1-section-heading { margin: 0; max-width: none; }
.home #capabilities .cv-eyebrow { color: #7aabff; }
.home #capabilities h2 { font-size: 32px; line-height: 1.08; letter-spacing: -.035em; }
.home #capabilities h2 span { color: #6795ff; }
.home #capabilities .cv-home-m2-system__intro { margin: 12px 0 16px; color: #d6e1f3; font-size: 15px; line-height: 1.4; }
.home #capabilities .cv-button { min-height: 44px; padding: 11px 22px; border: 1px solid #7766ff; border-radius: 4px; background: linear-gradient(110deg,#5143ef,#654aff); color: #fff; font-size: 13px; }
.home #capabilities .cv-button:hover { background: #4834de; }
.home #capabilities .cv-home-v1-capability-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 23px; align-items: stretch; }
.home #capabilities .cv-home-v1-capability-card {
    --cv-step-color: #00c9e8;
    position: relative; width: auto; height: auto; min-width: 0; grid-column: auto; justify-self: stretch;
    padding: 14px 10px; border-radius: 6px; border: 1px solid #1d6092;
    background: linear-gradient(155deg,#092647,#04132b 75%); box-shadow: inset 0 1px 12px #1064c018;
    text-align: center; align-items: center;
}
.home #capabilities .cv-home-m2-step--keyword { --cv-step-color: #ff941f; }
.home #capabilities .cv-home-m2-step--local { --cv-step-color: #00c3ae; }
.home #capabilities .cv-home-m2-step--authority { --cv-step-color: #a666ff; }
.home #capabilities .cv-home-m2-step--reporting { --cv-step-color: #5089ff; }
.home #capabilities .cv-home-v1-capability-card:not(:last-child)::after {
    content: ''; position: absolute; z-index: 1; top: 50%; right: -17px;
    width: 9px; height: 9px; border-top: 2px solid #32bfff; border-right: 2px solid #32bfff;
    transform: translateY(-50%) rotate(45deg);
}
.home #capabilities .cv-home-m2-system__icon {
    display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; margin-bottom: 12px;
    color: var(--cv-step-color); border-radius: 50%;
    background: color-mix(in srgb,var(--cv-step-color) 19%,transparent);
    box-shadow: 0 0 18px color-mix(in srgb,var(--cv-step-color) 12%,transparent);
}
.home #capabilities .cv-home-m2-system__icon img,
.home #capabilities .cv-home-m2-system__icon svg { width: 30px; height: 30px; }
.home #capabilities .cv-home-v1-capability-card h3 { font-size: 15px; line-height: 1.2; margin: 0 0 10px; }
.home #capabilities .cv-home-v1-capability-card > p:last-child { color: #d6e1f3; font-size: 12px; line-height: 1.4; margin: 0; }
@media (max-width: 1199px) {
    .home #services-overview > .cv-container,
    .home #capabilities > .cv-container { width: calc(100% - 100px); margin-left: 28px; margin-right: 72px; }
    .home #services-overview .cv-home-v1-service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
    .home #services-overview .cv-home-v1-service-card { min-height: 260px; }
    .home #services-overview .cv-home-v1-section-heading { padding-right: 0; }
    .home #services-overview .cv-home-m2-all-services { position: static; display: inline-flex; align-items: center; gap: 5px; min-height: 44px; }
    .home #capabilities .cv-home-m2-system { grid-template-columns: minmax(0,1fr); gap: 28px; }
    .home #capabilities .cv-home-v1-section-heading { max-width: 610px; }
    .home #capabilities .cv-home-v1-capability-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
    .home #capabilities .cv-home-v1-capability-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 5px 16px; padding: 15px 18px; text-align: left; }
    .home #capabilities .cv-home-m2-system__icon { grid-row: 1 / 3; margin: 0; }
    .home #capabilities .cv-home-v1-capability-card h3 { font-size: 17px; margin: 0; }
    .home #capabilities .cv-home-v1-capability-card > p:last-child { font-size: 14px; }
    .home #capabilities .cv-home-v1-capability-card:not(:last-child)::after { top: auto; bottom: -17px; left: 37px; right: auto; transform: rotate(135deg); }
}
@media (max-width: 600px) {
    .home #services-overview, .home #capabilities { padding-block: 28px; }
    .home #services-overview > .cv-container,
    .home #capabilities > .cv-container { width: calc(100% - 84px); margin-left: 15px; margin-right: 69px; }
    .home #services-overview h2, .home #capabilities h2 { font-size: 27px; line-height: 1.13; }
    .home #services-overview .cv-eyebrow, .home #capabilities .cv-eyebrow { font-size: 10px; }
    .home #services-overview .cv-home-v1-section-heading { margin-bottom: 8px; }
    .home #services-overview .cv-home-v1-service-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
    .home #services-overview .cv-home-v1-service-card { min-height: 0; padding: 8px 17px 6px; }
    .home #services-overview .cv-home-v1-service-card__top { margin-bottom: 6px; }
    .home #services-overview .cv-home-v1-service-card__icon { width: 44px; height: 44px; flex-basis: 44px; border-radius: 8px; }
    .home #services-overview .cv-home-v1-service-card__icon img { width: 28px; height: 28px; }
    .home #services-overview .cv-home-v1-service-card h3 { font-size: 18px; margin-bottom: 6px; }
    .home #services-overview .cv-home-v1-service-card > p { margin-bottom: 2px; }
    .home #capabilities .cv-home-v1-capability-card { padding: 14px 13px; grid-template-columns: 38px minmax(0,1fr); column-gap: 12px; }
    .home #capabilities .cv-home-m2-system__icon { width: 38px; height: 38px; }
    .home #capabilities .cv-home-m2-system__icon img,
    .home #capabilities .cv-home-m2-system__icon svg { width: 25px; height: 25px; }
    .home #capabilities .cv-home-v1-capability-card h3 { font-size: 16px; }
    .home #capabilities .cv-home-v1-capability-card > p:last-child { font-size: 13px; }
    .home #capabilities .cv-home-v1-capability-card:not(:last-child)::after { left: 27px; }
}
@media (prefers-reduced-motion: reduce) {
    .home #services-overview .cv-home-v1-service-card { transition: none; }
    .home #services-overview .cv-home-v1-service-card:hover,
    .home #services-overview .cv-home-v1-service-card:focus-within { transform: none; }
}
