.npbs-kcards{background:var(--npbs-kcards-bg);color:var(--npbs-kcards-text);padding:42px 0}
.npbs-kcards__inner{width:100%;margin:0 auto}
.npbs-kcards__header{margin-bottom:34px}
.npbs-kcards--align-left .npbs-kcards__header{text-align:left}
.npbs-kcards--align-center .npbs-kcards__header{text-align:center}
.npbs-kcards--align-right .npbs-kcards__header{text-align:right}
.npbs-kcards__eyebrow{color:var(--npbs-kcards-accent);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.npbs-kcards__heading{font-size:var(--npbs-kcards-heading-size);line-height:1.12;margin:0;color:var(--npbs-kcards-text);font-weight:700}
.npbs-kcards__intro{max-width:780px;margin:18px auto 0;color:#666;font-size:16px;line-height:1.7}
.npbs-kcards--align-left .npbs-kcards__intro{margin-left:0}
.npbs-kcards--align-right .npbs-kcards__intro{margin-right:0}
.npbs-kcards__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--npbs-kcards-gap);align-items:stretch}
.npbs-kcards--cols-2 .npbs-kcards__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.npbs-kcards--cols-4 .npbs-kcards__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.npbs-kcard{background:var(--npbs-kcard-bg);border:1px solid #e2e2e2;border-radius:var(--npbs-kcard-radius);overflow:hidden;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;min-width:0;display:flex;flex-direction:column;height:100%}
.npbs-kcards--hover-lift-orange .npbs-kcard:hover{transform:translateY(-5px);border-color:var(--npbs-kcards-accent);box-shadow:0 16px 34px rgba(0,0,0,.09)}
.npbs-kcards--hover-border-orange .npbs-kcard:hover{border-color:var(--npbs-kcards-accent)}
.npbs-kcard__media{display:block;overflow:hidden;aspect-ratio:16/9;background:#eee;flex:0 0 auto}
.npbs-kcard__image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.npbs-kcards--hover-lift-orange .npbs-kcard:hover .npbs-kcard__image{transform:scale(1.035)}
.npbs-kcard__body{padding:var(--npbs-kcard-padding);display:flex;flex-direction:column;gap:var(--npbs-kcard-space);flex:1 1 auto;min-height:0;box-sizing:border-box}
.npbs-kcard__topline{display:flex;align-items:center;gap:10px;min-height:28px;flex:0 0 auto}
.npbs-kcard__icon{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--npbs-kcards-accent) 12%, white);color:var(--npbs-kcards-accent);font-weight:700;flex:0 0 auto}
.npbs-kcard__badge{color:var(--npbs-kcards-accent);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:12px}
.npbs-kcard__title{font-size:clamp(24px,var(--npbs-kcard-title-size),30px);line-height:1.18;letter-spacing:-.015em;margin:0;font-weight:700;flex:0 0 auto}
.npbs-kcard__title a{color:var(--npbs-kcards-text);text-decoration:none}
.npbs-kcard__description{font-size:var(--npbs-kcard-body-size);line-height:1.7;color:#666;flex:1 1 auto;margin-bottom:8px}
.npbs-kcard__description p{margin:0}
.npbs-kcard__meta{display:flex;flex-direction:column;gap:6px;font-size:var(--npbs-kcard-meta-size);color:#555;border-top:1px solid #eee;padding:12px 0 0;margin-top:auto;flex:0 0 auto}
.npbs-kcard__meta-item{display:flex;align-items:flex-start;gap:7px;line-height:1.45;min-height:0}
.npbs-kcard__meta-item--wide{width:100%}
.npbs-kcard__footer{margin-top:10px;padding-top:12px;border-top:1px solid #eee;flex:0 0 auto}
.npbs-kcard__cta{display:inline-flex;align-items:center;gap:9px;color:var(--npbs-kcards-text);font-weight:700;text-decoration:none}
.npbs-kcard__cta span:last-child{transition:transform .2s ease}
.npbs-kcard__cta:hover{color:var(--npbs-kcards-accent)}
.npbs-kcard__cta:hover span:last-child{transform:translateX(4px)}
.npbs-kcards--minimal .npbs-kcard{box-shadow:none;background:#fff}
.npbs-kcards--enterprise .npbs-kcard__description{background:#f5f6f7;border-radius:calc(var(--npbs-kcard-radius) * .65);padding:16px}
.npbs-kcards--image-focus .npbs-kcard__media{aspect-ratio:4/3}
@media(max-width:991px){.npbs-kcards__grid,.npbs-kcards--cols-4 .npbs-kcards__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.npbs-kcards__heading{font-size:clamp(34px,var(--npbs-kcards-heading-size),44px)}.npbs-kcard__title{font-size:clamp(24px,var(--npbs-kcard-title-size),28px)}}
@media(max-width:640px){.npbs-kcards__grid,.npbs-kcards--cols-2 .npbs-kcards__grid,.npbs-kcards--cols-4 .npbs-kcards__grid{grid-template-columns:1fr}.npbs-kcards{padding:30px 0}.npbs-kcards__heading{font-size:34px}.npbs-kcard__title{font-size:clamp(23px,var(--npbs-kcard-title-size),26px);line-height:1.2}}


/* v1.3.2 — match Industic / Feature Cards typography. */
.npbs-kcards .npbs-kcard .npbs-kcard__title,
.npbs-kcards .npbs-kcard h2.npbs-kcard__title,
.npbs-kcards .npbs-kcard h3.npbs-kcard__title,
.npbs-kcards .npbs-kcard h4.npbs-kcard__title {
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: 0 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__title > a {
    font: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__description,
.npbs-kcards .npbs-kcard .npbs-kcard__description p {
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
}
@media (max-width: 991px) {
    .npbs-kcards .npbs-kcard .npbs-kcard__title,
    .npbs-kcards .npbs-kcard h2.npbs-kcard__title,
    .npbs-kcards .npbs-kcard h3.npbs-kcard__title,
    .npbs-kcards .npbs-kcard h4.npbs-kcard__title {
        font-size: 23px !important;
    }
}
@media (max-width: 640px) {
    .npbs-kcards .npbs-kcard .npbs-kcard__title,
    .npbs-kcards .npbs-kcard h2.npbs-kcard__title,
    .npbs-kcards .npbs-kcard h3.npbs-kcard__title,
    .npbs-kcards .npbs-kcard h4.npbs-kcard__title {
        font-size: 22px !important;
    }
    .npbs-kcards .npbs-kcard .npbs-kcard__description,
    .npbs-kcards .npbs-kcard .npbs-kcard__description p {
        font-size: 15px !important;
        line-height: 1.5 !important;
    }
}

/* v1.3.3 — WPBakery typography controls are the source of truth. */
.npbs-kcards .npbs-kcards__heading {
    font-size: var(--npbs-kcards-heading-size) !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__title,
.npbs-kcards .npbs-kcard h2.npbs-kcard__title,
.npbs-kcards .npbs-kcard h3.npbs-kcard__title,
.npbs-kcards .npbs-kcard h4.npbs-kcard__title {
    font-size: var(--npbs-kcard-title-size) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: 0 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__description,
.npbs-kcards .npbs-kcard .npbs-kcard__description p {
    font-size: var(--npbs-kcard-body-size) !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__meta,
.npbs-kcards .npbs-kcard .npbs-kcard__meta * {
    font-size: var(--npbs-kcard-meta-size) !important;
}

/* v1.4.1 — Enterprise typography aligned with NPBS Feature Cards. */
.npbs-kcards .npbs-kcard .npbs-kcard__title,
.npbs-kcards .npbs-kcard h2.npbs-kcard__title,
.npbs-kcards .npbs-kcard h3.npbs-kcard__title,
.npbs-kcards .npbs-kcard h4.npbs-kcard__title {
    font-size: var(--npbs-kcard-title-size) !important;
    font-weight: 500 !important;
    line-height: 1.28 !important;
    letter-spacing: -0.015em !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__title > a {
    font-weight: 500 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__cta {
    font-weight: 700 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__topline {
    margin-bottom: 0 !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__badge {
    font-weight: 700 !important;
}

/* v1.4.2 — final vertical rhythm between card title and description. */
.npbs-kcards .npbs-kcard .npbs-kcard__title,
.npbs-kcards .npbs-kcard h2.npbs-kcard__title,
.npbs-kcards .npbs-kcard h3.npbs-kcard__title,
.npbs-kcards .npbs-kcard h4.npbs-kcard__title {
    /* The body already has a 12px default gap; 16px here creates an effective 28px separation. */
    margin-bottom: 16px !important;
}
.npbs-kcards .npbs-kcard .npbs-kcard__description {
    margin-top: 0 !important;
}
