/**
 * Services Grid Widget Styles
 * 
 * @package DM_WCAG_Core
 */

/* ====================================
   SERVICES GRID
   ==================================== */
.dm-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    list-style: none;
    margin: 0;
    padding: 0;
    justify-items: stretch;
    box-sizing: border-box;
    width: 100%;
}

.dm-services-grid * {
    box-sizing: border-box;
}

/* ====================================
   SERVICE CARD
   ==================================== */
.dm-service-card {
    background: #1a1a1a;
    border-radius: 10px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
}

/* Fix for anchor tag wrapper */
.dm-service-card__link {
    display: flex;
    flex-direction: column;
    width: 100%;
    flex-grow: 1;
    /* Allow link to fill the card */
    text-decoration: none;
    color: inherit;
}

.dm-service-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

/* Focus styles managed by global WCAG settings */

/* ====================================
   CARD IMAGE
   ==================================== */
.dm-service-card__image {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: inherit;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Overlay pseudo-element */
.dm-service-card__image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
    /* Prevent blocking clicks on link below */
}

.dm-service-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.dm-service-card:hover .dm-service-card__image img {
    transform: scale(1.05);
}

.dm-service-card__image a {
    display: block;
    height: 100%;
}

/* Focus styles managed by global WCAG settings */

/* ====================================
   CARD ICON
   ==================================== */
.dm-service-card__icon {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 54px;
    height: 54px;
    background: #00FF88;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* Left positioning modifier */
.dm-service-card--icon-left .dm-service-card__icon {
    left: 15px;
    right: auto;
}

.dm-service-card__icon i {
    font-size: 24px;
    color: #FFFFFF;
}

/* SVG Icon Support */
.dm-service-card__icon .dm-svg-icon {
    /* Size and color controlled via inline styles from Elementor */
    display: block;
}


/* ====================================
   CARD CONTENT
   ==================================== */
.dm-service-card__content {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.dm-service-card__title {
    margin: 0 0 15px 0;
    font-size: 20px;
    font-weight: 700;
    color: #FFFFFF;
    line-height: 1.3;
}

.dm-service-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.dm-service-card__title a:hover {
    color: #00FF88;
}

/* Focus styles managed by global WCAG settings */

.dm-service-card__description {
    margin: 0 0 20px 0;
    color: #CCCCCC;
    font-size: 14px;
    line-height: 1.6;
    flex: 1;
}

/* ====================================
   CARD CTA
   ==================================== */
.dm-service-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #00FF88;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: color 0.3s ease, gap 0.3s ease;
    margin-top: auto;
}

.dm-service-card__cta:hover {
    color: #FFFFFF;
    gap: 12px;
}

/* Focus styles managed by global WCAG settings */

/* ====================================
   WCAG: REDUCED MOTION
   ==================================== */
@media (prefers-reduced-motion: reduce) {

    .dm-service-card,
    .dm-service-card__image img,
    .dm-service-card__title a,
    .dm-service-card__cta {
        transition: none !important;
    }

    .dm-service-card:hover {
        transform: none !important;
    }

    .dm-service-card:hover .dm-service-card__image img {
        transform: none !important;
    }
}

/* Fallback when animations are disabled via WCAG plugin */
body.wcag-no-animations .dm-service-card,
body.wcag-animations-disabled .dm-service-card {
    transition: none !important;
}

body.wcag-no-animations .dm-service-card:hover,
body.wcag-animations-disabled .dm-service-card:hover {
    transform: none !important;
}

/* ====================================
   ACCESSIBILITY
   ==================================== */
/* Focus styles managed by global WCAG settings */

/* ====================================
   RESPONSIVE
   ==================================== */
@media screen and (max-width: 1024px) {
    .dm-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 768px) {
    .dm-services-grid {
        grid-template-columns: 100%;
        gap: 20px;
    }

    .dm-service-card__content {
        padding: 15px;
    }

    .dm-service-card__icon {
        width: 48px;
        height: 48px;
    }

    .dm-service-card__icon i {
        font-size: 20px;
    }
}

/* ====================================
   ELEMENTOR EDITOR
   ==================================== */
.elementor-editor-active .dm-services-grid {
    min-height: 200px;
}