/* ============================================================
   Divi Service Cards — Frontend CSS
   ============================================================ */

/* ── Variables & Reset ──────────────────────────────────── */
.dsc-service-card {
    --dsc-card-bg:         #ffffff;
    --dsc-card-border:     #e8ecf0;
    --dsc-icon-color:      #0d2d6e;
    --dsc-title-color:     #1a1a2e;
    --dsc-desc-color:      #6b7280;
    --dsc-check-color:     #2563eb;
    --dsc-divider-color:   #e5e7eb;
    --dsc-btn-bg:          #0d2d6e;
    --dsc-btn-text:        #ffffff;
    --dsc-btn-arrow-bg:    #1a3f8a;
    --dsc-hover-bg:        #1d4ed8;
    --dsc-hover-text:      #ffffff;
    --dsc-hover-btn-bg:    rgba(255,255,255,0.15);
    --dsc-hover-btn-border:#ffffff;
    --dsc-title-size:      22px;
    --dsc-title-weight:    700;
    --dsc-desc-size:       14px;
    --dsc-list-size:       14px;
    --dsc-btn-size:        15px;
    --dsc-radius:          12px;
    --dsc-padding:         36px;
    --dsc-icon-size:       70px;
    --dsc-corner-size:     140px;
    --dsc-transition:      0.38s cubic-bezier(0.4, 0, 0.2, 1);

    position:         relative;
    background:       var(--dsc-card-bg);
    border:           1.5px solid var(--dsc-card-border);
    border-radius:    var(--dsc-radius);
    overflow:         hidden;
    display:          flex;
    flex-direction:   column;
    transition:       background var(--dsc-transition),
                      border-color var(--dsc-transition),
                      transform 0.25s ease,
                      box-shadow 0.25s ease;
    box-sizing:       border-box;
    width:            100%;
}

.dsc-service-card.dsc-has-shadow {
    box-shadow: 0 4px 24px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04);
}

/* ── Hover state ────────────────────────────────────────── */
.dsc-service-card:hover {
    background:    var(--dsc-hover-bg);
    border-color:  var(--dsc-hover-bg);
    transform:     translateY(-4px);
    box-shadow:    0 16px 48px rgba(29,78,216,0.25), 0 4px 12px rgba(29,78,216,0.18);
}

/* ── Corner image ───────────────────────────────────────── */
.dsc-corner-wrap {
    position:       absolute;
    top:            0;
    right:          0;
    width:          var(--dsc-corner-size);
    height:         var(--dsc-corner-size);
    overflow:       hidden;
    z-index:        1;
    border-radius:  0 var(--dsc-radius) 0 0;
    pointer-events: none;
}

.dsc-corner-img {
    position:    absolute;
    top:         0;
    right:       0;
    width:       100%;
    height:      100%;
    object-fit:  cover;
    object-position: center;
    clip-path:   polygon(100% 0, 100% 100%, 100% 100%, 0 0);
    border-radius: 0 var(--dsc-radius) 0 0;
}

/* Page-curl overlay */
.dsc-corner-fold {
    position:   absolute;
    top:        0;
    right:      0;
    width:      100%;
    height:     100%;
    background: linear-gradient(
        225deg,
        transparent 50%,
        rgba(255,255,255,0.97) 50%
    );
    z-index:    2;
    clip-path:  polygon(100% 0, 100% 100%, 0 0);
}

/* Curl shadow detail */
.dsc-corner-fold::after {
    content:    '';
    position:   absolute;
    bottom:     0;
    left:       0;
    width:      40%;
    height:     40%;
    background: linear-gradient(135deg, rgba(0,0,0,0.06) 0%, transparent 60%);
    border-radius: 0 0 0 4px;
}

/* ── Card inner ─────────────────────────────────────────── */
.dsc-card-inner {
    position:       relative;
    z-index:        3;
    padding:        var(--dsc-padding);
    display:        flex;
    flex-direction: column;
    flex:           1;
}

/* ── Icon ───────────────────────────────────────────────── */
.dsc-icon {
    width:         var(--dsc-icon-size);
    height:        var(--dsc-icon-size);
    color:         var(--dsc-icon-color);
    margin-bottom: 20px;
    flex-shrink:   0;
    transition:    color var(--dsc-transition), filter var(--dsc-transition);
}

.dsc-icon svg,
.dsc-icon img {
    width:  100%;
    height: 100%;
    display: block;
}

.dsc-icon-img img {
    object-fit: contain;
    /* Colorize PNG icons on hover via filter */
    filter: none;
    transition: filter var(--dsc-transition);
}

.dsc-service-card:hover .dsc-icon {
    color: var(--dsc-hover-text);
}

.dsc-service-card:hover .dsc-icon-img img {
    filter: brightness(0) invert(1);
}

/* ── Title ──────────────────────────────────────────────── */
.dsc-title {
    font-size:     var(--dsc-title-size);
    font-weight:   var(--dsc-title-weight);
    color:         var(--dsc-title-color);
    margin:        0 0 12px 0;
    line-height:   1.3;
    transition:    color var(--dsc-transition);
}

.dsc-service-card:hover .dsc-title {
    color: var(--dsc-hover-text);
}

/* ── Description ────────────────────────────────────────── */
.dsc-desc {
    font-size:     var(--dsc-desc-size);
    color:         var(--dsc-desc-color);
    margin:        0 0 22px 0;
    line-height:   1.65;
    transition:    color var(--dsc-transition);
}

.dsc-service-card:hover .dsc-desc {
    color: rgba(255,255,255,0.85);
}

/* ── List ───────────────────────────────────────────────── */
.dsc-list {
    list-style:    none;
    margin:        0 0 28px 0;
    padding:       0;
    flex:          1;
}

.dsc-list-item {
    display:       flex;
    align-items:   center;
    gap:           10px;
    padding:       10px 0;
    border-bottom: 1px solid var(--dsc-divider-color);
    transition:    border-color var(--dsc-transition);
}

.dsc-list-item:first-child {
    border-top: 1px solid var(--dsc-divider-color);
}

.dsc-service-card:hover .dsc-list-item {
    border-color: rgba(255,255,255,0.25);
}

.dsc-check {
    width:      18px;
    height:     18px;
    flex-shrink: 0;
    color:      var(--dsc-check-color);
    transition: color var(--dsc-transition);
}

.dsc-check svg {
    width:  100%;
    height: 100%;
    display: block;
}

.dsc-service-card:hover .dsc-check {
    color: var(--dsc-hover-text);
}

.dsc-list-text {
    font-size:   var(--dsc-list-size);
    font-weight: 500;
    color:       var(--dsc-check-color);
    line-height: 1.4;
    transition:  color var(--dsc-transition);
}

.dsc-service-card:hover .dsc-list-text {
    color: var(--dsc-hover-text);
}

/* ── Button ─────────────────────────────────────────────── */
.dsc-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             0;
    text-decoration: none;
    border-radius:   6px;
    overflow:        hidden;
    align-self:      flex-start;
    transition:      background var(--dsc-transition),
                     border-color var(--dsc-transition),
                     box-shadow 0.2s ease;
    border:          2px solid transparent;
    margin-top:      auto;
}

.dsc-btn-arrow {
    display:          flex;
    align-items:      center;
    justify-content:  center;
    width:            46px;
    height:           46px;
    background:       var(--dsc-btn-arrow-bg);
    color:            var(--dsc-btn-text);
    flex-shrink:      0;
    transition:       background var(--dsc-transition);
}

.dsc-btn-arrow svg {
    width:  20px;
    height: 20px;
    display: block;
    transition: transform 0.25s ease;
}

.dsc-btn-label {
    background:    var(--dsc-btn-bg);
    color:         var(--dsc-btn-text);
    font-size:     var(--dsc-btn-size);
    font-weight:   600;
    padding:       0 22px;
    height:        46px;
    display:       flex;
    align-items:   center;
    letter-spacing: 0.01em;
    transition:    background var(--dsc-transition), color var(--dsc-transition);
}

/* Button hover (default state) */
.dsc-btn:hover .dsc-btn-arrow svg {
    transform: translateX(3px);
}

/* Button in hover card */
.dsc-service-card:hover .dsc-btn {
    border-color: var(--dsc-hover-btn-border);
}

.dsc-service-card:hover .dsc-btn-arrow {
    background: rgba(255,255,255,0.2);
}

.dsc-service-card:hover .dsc-btn-label {
    background: var(--dsc-hover-btn-bg);
    color:      var(--dsc-hover-text);
}

/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */

/* Tablet & smaller desktop */
@media (max-width: 980px) {
    .dsc-card-inner {
        padding: calc(var(--dsc-padding) * 0.85);
    }

    .dsc-corner-wrap {
        --dsc-corner-size: calc(var(--dsc-corner-size) * 0.75);
        width:  calc(var(--dsc-corner-size) * 0.75);
        height: calc(var(--dsc-corner-size) * 0.75);
    }
}

/* Mobile */
@media (max-width: 640px) {
    .dsc-service-card {
        --dsc-title-size: 19px;
        --dsc-padding:    24px;
        --dsc-icon-size:  56px;
        --dsc-corner-size: 100px;
    }

    .dsc-service-card:hover {
        transform: translateY(-2px);
    }

    .dsc-btn-arrow {
        width:  40px;
        height: 40px;
    }

    .dsc-btn-label {
        height:    40px;
        padding:   0 16px;
        font-size: 14px;
    }

    .dsc-list-item {
        padding: 8px 0;
    }
}

/* Extra small mobile */
@media (max-width: 400px) {
    .dsc-service-card {
        --dsc-padding:     20px;
        --dsc-title-size:  17px;
        --dsc-icon-size:   50px;
        --dsc-corner-size: 80px;
    }
}

/* ============================================================
   DIVI BUILDER (Visual Builder) support
   ============================================================ */
.et-fb .dsc-service-card {
    cursor: pointer;
}

/* Prevent hover transform in builder */
.et-fb .dsc-service-card:hover {
    transform: none;
}
