/* EV Charger Installation Services cards */

.services-section {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
}

.services-title {
    font-family: "Public Sans", sans-serif !important;
    font-weight: 600 !important; /* SemiBold */
    font-size: 45.83px !important;
    line-height: 55px !important; /* exact spec */
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #0A0A0A !important;
}

.services-title .highlight {
    font-family: "Public Sans", sans-serif !important;
    font-weight: 600 !important; /* SemiBold */
    font-size: 45.83px !important;
    line-height: 55px !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    color: #2E6CF6 !important; /* blue highlight for "Installation" */
}

/* Holder for all service cards (parent div) */
.services-cards-holder {
    width: 100% !important;
    max-width: 1400px !important;
    column-gap: 20px !important; /* horizontal gap */
    row-gap: 0 !important;     /* no vertical gap since single row */
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: flex-start !important;
    margin-left: auto !important;
    margin-right: auto !important; /* center within container */
    opacity: 1 !important;
}

.service-card {
    width: 280px !important;
    height: 380px !important;
    min-height: 380px !important;
    max-height: 380px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: 0 2px 12px rgba(1, 33, 82, 0.06) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    flex-shrink: 0 !important;
}

.service-image {
    width: 100% !important;
    height: 280px !important; /* Image area height - increased */
    overflow: hidden !important;
}

.service-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important; /* prevent inline gaps shifting image */
}

.service-body {
    padding: 12px 16px 16px 16px !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.service-title {
    margin: 0 0 6px 0 !important;
    font-family: "Public Sans", sans-serif !important;
    font-weight: 700 !important; /* Bold */
    font-size: 21px !important;
    line-height: 1.2 !important;
    text-align: left !important; /* Cards in design show left titles */
    color: #012152 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-height: 52.8px !important; /* 2 lines × 22px × 1.2 line-height */
    flex-shrink: 0 !important;
}

.service-subtitle {
    margin: 0 0 8px 0 !important;
    font-family: "Public Sans", sans-serif !important;
    font-weight: 500 !important; /* Medium */
    font-size: 14px !important;
    line-height: 20px !important;
    color: #012152 !important;
    opacity: 0.9 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    text-overflow: ellipsis !important;
    max-height: 80px !important; /* 4 lines × 20px line-height */
    word-wrap: break-word !important;
    word-break: break-word !important;
    position: relative !important;
    visibility: visible !important;
}

.service-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-family: "Public Sans", sans-serif !important;
    font-weight: 700 !important; /* Bold */
    font-size: 16px !important;
    line-height: 24px !important;
    color: #012152 !important;
    text-decoration: none !important; /* underline handled on inner span */
    flex-shrink: 0 !important;
    margin-top: auto !important;
}

/* underline styling per spec but visible */
.service-link-text {
    text-decoration: underline !important;
    text-decoration-style: solid !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
    text-decoration-skip-ink: auto !important;
}

.service-link-icon {
    color: #012152 !important;
}

/* Tablet down: allow wrapping and adjust layout */
@media (max-width: 1200px) {
    .services-cards-holder {
        flex-wrap: wrap !important;
        column-gap: 16px !important;
        row-gap: 24px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .service-card { 
        width: calc(50% - 8px) !important; 
        max-width: 300px !important;
    }
}

/* Tablet down: make the holder fluid and reduce gaps */
@media (max-width: 992px) {
    .services-cards-holder {
        width: 100% !important;
        column-gap: 16px !important;
        row-gap: 24px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .service-card { 
        width: calc(50% - 8px) !important; 
        max-width: 300px !important;
        height: auto !important; 
    }
}

/* Mobile: tighter spacing and smaller headings */
@media (max-width: 768px) {
    .services-cards-holder {
        flex-wrap: wrap !important;
    }
    .service-card { 
        width: 100% !important; 
        max-width: 100% !important;
        height: auto !important;
    }
    .service-image { height: 220px !important; }
    .services-title,
    .services-title .highlight {
        font-size: 32px !important;
        line-height: 40px !important;
    }
}

@media (max-width: 480px) {
    .service-image { height: 200px !important; }
}


