/*
Theme Name: Stackinova Child
Theme URI: https://www.stackinova.com/
Author: Stackinova Technologies Private Limited
Author URI: https://www.aloksinha.in/
Description: Child theme for Stackinova - AI Agency & Technology WordPress Theme
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: stackinova
Text Domain: stackinova-child
Copyright (C) 2026 Stackinova Technologies Private Limited
*/

/* ================================================
   HEADING FONT — self-hosted, not proxied through
   the wpdoctor-fonts auto-rehosting (avoids the
   hashed-filename TTF fallback it generates)
================================================ */
@font-face {
    font-family: 'Bricolage Grotesque';
    src: url('/wp-content/uploads/fonts/BricolageGrotesque-VariableFont_opsz.woff2') format('woff2-variations'),
         url('/wp-content/uploads/fonts/BricolageGrotesque-VariableFont_opsz.woff2') format('woff2');
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

/* ================================================
   CHILD THEME TOKEN OVERRIDES
   Parent vars already defined in stackinova/assets/css/style.css
   Only override or extend here — no duplication
================================================ */
:root {
    /* ── Brand (logo-matched) ── */
    --color-primary:        #010ed0;
    --color-primary-hover:  #0211e8;
    --color-primary-light:  rgba(1, 14, 208, 0.12);
    --color-secondary:      #89c7fe;
    --color-accent:         #45D0BD;
    --color-accent-two:     #44B6E9;

    /* ── Dark backgrounds ── */
    --color-bg-dark:        #05081a;
    --color-bg-dark-mid:    #080d2a;
    --color-bg-dark-soft:   #0d1235;

    /* ── Text ── */
    --color-heading:        #000662;
    --color-paragraph:      #60616c;
    --color-text-light:     rgba(255, 255, 255, 0.9);
    --color-text-muted:     rgba(255, 255, 255, 0.55);

    /* ── UI ── */
    --color-border:         rgba(255, 255, 255, 0.08);
    --color-card-bg:        rgba(255, 255, 255, 0.04);
    --color-success:        #2dd98f;
    --color-warning:        #f5a623;
    --color-error:          #ff4f4f;

    /* ── Gradients ── */
    --gradient-primary:     linear-gradient(135deg, #010ed0 0%, #0b3cff 100%);
    --gradient-hero:        linear-gradient(135deg, #05081a 0%, #080d2a 60%, #010ed0 100%);
    --gradient-card:        linear-gradient(135deg, rgba(1,14,208,0.15) 0%, rgba(69,208,189,0.08) 100%);

    /* ── Spacing ── */
    --site-padding:             40px;
    --alignment-min-width:      600px;
    --alignment-threshold:      1820px;

    /* ── Radius ── */
    --radius-sm:    6px;
    --radius-base:  12px;
    --radius-lg:    20px;
    --radius-xl:    32px;
    --radius-pill:  100px;

    /* ── Shadows ── */
    --shadow-card:    0 4px 24px rgba(1, 14, 208, 0.15);
    --shadow-glow:    0 0 40px rgba(1, 14, 208, 0.35);
    --shadow-soft:    0px 2px 12px 0px #e7e7e7;

    /* ── Transitions ── */
    --transition-fast:    0.18s;
    --transition-base:    0.25s;
    --transition-normal:  0.3s;
    --transition-medium:  0.35s;
    --transition-slow:    0.5s;

    /* ── Easing ── */
    --ease-default:   ease-in-out;
    --ease-smooth:    cubic-bezier(0.22, 1, 0.36, 1);
    --ease-bounce:    cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-standard:  cubic-bezier(0.4, 0, 0.2, 1);

    /* ── Composite transitions ── */
    --transition-default:   all var(--transition-medium) var(--ease-default);
    --transition-hover:     background var(--transition-normal), color var(--transition-normal), transform var(--transition-normal);
    --transition-card:      transform var(--transition-slow) var(--ease-smooth), opacity var(--transition-slow) var(--ease-smooth);
    --transition-accordion: max-height 0.45s var(--ease-smooth);
    --transition-panel:     opacity var(--transition-slow), visibility var(--transition-slow);

    /* ── Fonts (parent also defines these — override ensures child wins) ── */
    --font-heading: 'Bricolage Grotesque', sans-serif;

    /* ── Font weights (parent also defines these — override ensures child wins) ── */
    --fw-light:     300;
    --fw-normal:    400;
    --fw-medium:    500;
    --fw-semibold:  600;
    --fw-bold:      700;
    --fw-extrabold: 800;
    --fw-black:     900;
}

/* ── Responsive token scaling ── */
@media (max-width: 1024px) {
    :root {
        --site-padding:          24px;
        --alignment-threshold:   950px;
    }
}
@media (max-width: 768px) {
    :root {
        --site-padding:          16px;
        --alignment-threshold:   700px;
    }
}
@media (max-width: 480px) {
    :root {
        --site-padding:          12px;
        --alignment-threshold:   440px;
    }
}

/* ================================================
   CONTAINER WIDTH — wide screens
================================================ */
@media (min-width: 1600px) {
    .container { max-width: 1560px; }
}
@media (min-width: 1920px) {
    .container { max-width: 1880px; }
}

/* ================================================
   BOOTSTRAP CONTAINER / ROW RESET
================================================ */
.elementor-widget-container .container,
.e-con-full .container,
.e-con .container {
    max-width: 100% !important;
    padding-left:  var(--site-padding) !important;
    padding-right: var(--site-padding) !important;
    margin-left:  0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}
.elementor-widget-container .row,
.e-con-full .row,
.e-con .row {
    margin-left:  0 !important;
    margin-right: 0 !important;
}
.elementor-widget-container .row > [class*="col-"],
.e-con-full .row > [class*="col-"],
.e-con .row > [class*="col-"] {
    padding-left:  0 !important;
    padding-right: 0 !important;
}
.team-style-two-area .row > [class*="col-"] {
    padding-left: 15px !important;
}

/* Column padding exceptions */
.elementor-widget-container .row > .service-style-one-single,
.e-con-full .row > .service-style-one-single,
.e-con .row > .service-style-one-single,
.elementor-widget-container .row > .col-xl-4.pr-50,
.e-con-full .row > .col-xl-4.pr-50,
.e-con .row > .col-xl-4.pr-50,
.elementor-widget-container .row > .col-xl-8,
.e-con-full .row > .col-xl-8,
.e-con .row > .col-xl-8,
.elementor-widget-container .row > .col-lg-12,
.e-con-full .row > .col-lg-12,
.e-con .row > .col-lg-12,
.elementor-widget-container .row > .process-two-single,
.e-con-full .row > .process-two-single,
.e-con .row > .process-two-single,
.elementor-widget-container .row > .community-card,
.e-con-full .row > .community-card,
.e-con .row > .community-card {
    padding-left:  15px !important;
    padding-right: 15px !important;
}
@media (max-width: 768px) {
    .elementor-widget-container .row > .service-style-one-single,
    .e-con-full .row > .service-style-one-single,
    .e-con .row > .service-style-one-single,
    .elementor-widget-container .row > .process-two-single,
    .e-con-full .row > .process-two-single,
    .e-con .row > .process-two-single,
    .elementor-widget-container .row > .community-card,
    .e-con-full .row > .community-card,
    .e-con .row > .community-card {
        padding-left:  10px !important;
        padding-right: 10px !important;
    }
}

/* ================================================
   MISC FIXES
================================================ */
@media (max-width: 767px) {
    .about-style-five-area { overflow-x: hidden; }
    .award-style-one-item .logo img {
        height: 89px;
        object-fit: contain;
    }
}

/* ================================================
   BTN-STYLE-ONE — Arrow Animation
================================================ */
.btn-style-one i.fa-arrow-right,
.btn-style-one i.fas.fa-arrow-right {
    display: inline-block;
    transition: transform 0.3s var(--ease-standard);
    transform: translate(0, 0);
}
.btn-style-one:hover i.fa-arrow-right,
.btn-style-one:hover i.fas.fa-arrow-right {
    transform: translate(4px, -4px);
}

/* ================================================
   CUSTOM PAGE HEADER
================================================ */
.custom-page-header {
    background-color: var(--color-primary);
    padding: 60px 0;
    text-align: center;
    color: var(--white);
}
.custom-page-header h1 {
    font-size: 36px;
    font-weight: var(--fw-bold);
    margin-bottom: 15px;
}
.custom-breadcrumb {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    gap: 10px;
}
.custom-breadcrumb li {
    color: var(--white);
    font-size: 14px;
}
.custom-breadcrumb li a {
    color: var(--white);
    text-decoration: none;
    transition: opacity var(--transition-base) var(--ease-default);
}
.custom-breadcrumb li a:hover { opacity: 0.75; }
.custom-breadcrumb li + li::before {
    content: '/';
    margin-right: 10px;
    opacity: 0.7;
}

/* Hide default theme breadcrumb */
.breadcrumb-area { display: none !important; }

/* ================================================
   SI SPLIT TEXT
================================================ */
.elementor-widget-si_split_text.elementor-invisible {
    visibility: hidden !important;
}
.elementor-widget-si_split_text.si-revealed {
    visibility: visible !important;
}
.si-page-banner-hero .elementor-widget-si_split_text.si-revealed {
    visibility: visible !important;
}
h2[data-si-split]:not(.si-split-heading),
h1[data-si-split]:not(.si-split-heading) {
    visibility: hidden !important;
}

/* ================================================
   SI PAGE BANNER SPLIT
================================================ */
.si-page-banner-split {
    position: relative !important;
    width: 100% !important;
    min-height: 758px !important;
    height: auto !important;
    overflow: visible !important;
    display: block !important;
    flex-direction: unset !important;
    align-items: unset !important;
    justify-content: unset !important;
    padding: 0 !important;
    background: var(--color-bg-dark) !important;
    box-sizing: border-box !important;
}

.si-page-banner-split .elementor-element-b12c81d h1,
.si-page-banner-split .elementor-element-b12c81d .si-split-heading {
    transition: none !important;
    color: var(--white) !important;
    font-size: 56px !important;
    font-weight: var(--fw-semibold) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.5px !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    -webkit-font-smoothing: antialiased !important;
}

.si-page-banner-split .elementor-element-b12c81d .si-split-word,
.si-page-banner-split .elementor-element-b12c81d .si-split-word-inner,
.si-page-banner-split .elementor-element-b12c81d h1 span {
    color: var(--white) !important;
    transition: transform 0.6s var(--ease-smooth) !important;
    text-shadow: 0px 2px 10px #000;
    font-weight: var(--fw-semibold) !important;
    -webkit-font-smoothing: antialiased !important;
}

.si-page-banner-split .elementor-element-b12c81d h1 .si-split-word:last-child .si-split-word-inner,
.si-page-banner-split .elementor-element-b12c81d h1 .si-split-word:nth-last-child(-n+2) .si-split-word-inner {
    font-weight: var(--fw-bold) !important;
}

.si-page-banner-split .elementor-element-b12c81d {
    position: absolute !important;
    top: 50px !important;
    left: 6% !important;
    width: 55% !important;
    max-width: 55% !important;
    z-index: 5 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    right: unset !important;
    bottom: unset !important;
}

.si-page-banner-split .elementor-element-b12c81d .elementor-widget-container {
    display: block !important;
    position: static !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

.si-page-banner-split .elementor-element-9187693 {
    position: absolute !important;
    top: 105px !important;
    left: 3% !important;
    right: auto !important;
    width: 95% !important;
    max-width: 95% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    z-index: 1 !important;
    display: block !important;
}
.si-page-banner-split .elementor-element-9187693 .elementor-widget-container {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.si-page-banner-split .elementor-element-9187693 img {
    width: 100% !important;
    height: auto !important;
    max-height: 520px !important;
    border-radius: var(--radius-lg) !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
}

.si-page-banner-split .elementor-element-b12c81d p,
.si-page-banner-split .elementor-element-b12c81d p.si-revealed,
html body .si-page-banner-split .elementor-element-b12c81d .elementor-widget-container p {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    pointer-events: none !important;
}

#si-moved-para {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: unset !important;
    left: unset !important;
    width: 28% !important;
    font-family: 'Sora', sans-serif !important;
    font-size: 15px !important;
    color: var(--color-text-light) !important;
    line-height: 1.7 !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 0 40px 0 !important;
    background: none !important;
    z-index: 6 !important;
    pointer-events: auto !important;
}

/* ── SI Banner Split Responsive ── */
@media (min-width: 1440px) {
    .si-page-banner-split { min-height: 800px !important; }
    .si-page-banner-split .elementor-element-b12c81d { top: 50px !important; left: 6% !important; width: 55% !important; max-width: 55% !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading { font-size: 55px !important; }
    .si-page-banner-split .elementor-element-9187693 { top: 105px !important; left: 3% !important; width: 95% !important; max-width: 95% !important; }
    #si-moved-para { bottom: 55px !important; right: 4% !important; }
}
@media (max-width: 1439px) and (min-width: 1024px) {
    .si-page-banner-split { min-height: 720px !important; }
    .si-page-banner-split .elementor-element-b12c81d { top: 50px !important; left: 6% !important; width: 55% !important; max-width: 55% !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading { font-size: 56px !important; line-height: 1.15 !important; }
    .si-page-banner-split .elementor-element-9187693 { top: 105px !important; left: 3% !important; width: 95% !important; max-width: 95% !important; }
    #si-moved-para { bottom: 55px !important; right: 4% !important; width: 28% !important; max-width: 340px !important; font-size: 12px !important; }
}
@media (max-width: 1023px) and (min-width: 768px) {
    .si-page-banner-split { min-height: 580px !important; }
    .si-page-banner-split .elementor-element-b12c81d { top: 40px !important; left: 5% !important; width: 52% !important; max-width: 52% !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading { font-size: 40px !important; line-height: 1.2 !important; }
    .si-page-banner-split .elementor-element-9187693 { top: 90px !important; left: 2% !important; width: 96% !important; max-width: 96% !important; }
    #si-moved-para { bottom: 30px !important; right: 3% !important; width: 35% !important; max-width: 35% !important; font-size: 11px !important; padding: 0 0 20px 0 !important; }
}
@media (max-width: 767px) {
    .si-page-banner-split { min-height: auto !important; padding: 50px 20px 40px !important; display: flex !important; flex-direction: column !important; align-items: flex-start !important; overflow: visible !important; }
    .si-page-banner-split .elementor-element-b12c81d { position: relative !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important; width: 100% !important; max-width: 100% !important; margin-bottom: 24px !important; z-index: 2 !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading,
    .elementor-632 .elementor-element.elementor-element-b12c81d .si-split-heading { font-size: 28px !important; line-height: 1.2 !important; letter-spacing: -0.3px !important; }
    .si-page-banner-split .elementor-element-9187693 { position: relative !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important; width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
    .si-page-banner-split .elementor-element-9187693 img { max-height: 280px !important; object-position: center top !important; }
    #si-moved-para { position: relative !important; bottom: auto !important; top: auto !important; left: auto !important; right: auto !important; width: 100% !important; max-width: 100% !important; margin-top: 24px !important; font-size: 13px !important; padding: 0 !important; }
}
@media (max-width: 575px) {
    .si-page-banner-split { padding: 40px 15px 30px !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading,
    .elementor-632 .elementor-element.elementor-element-b12c81d .si-split-heading { font-size: 24px !important; line-height: 1.2 !important; }
    #si-moved-para { font-size: 13px !important; line-height: 1.6 !important; }
}
@media (max-width: 375px) {
    .si-page-banner-split { padding: 35px 12px 25px !important; }
    .si-page-banner-split .elementor-element-b12c81d h1,
    .si-page-banner-split .elementor-element-b12c81d .si-split-heading,
    .elementor-632 .elementor-element.elementor-element-b12c81d .si-split-heading { font-size: 22px !important; line-height: 1.2 !important; }
    #si-moved-para { font-size: 13px !important; }
}

/* ================================================
   SI PAGE BANNER HERO
================================================ */
.si-page-banner-hero {
    position: relative !important;
    width: 100% !important;
    min-height: 346px !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 170px 0 80px 0 !important;
    box-sizing: border-box !important;
}
.si-page-banner-hero .elementor-widget {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 120px !important;
    box-sizing: border-box !important;
}
.si-page-banner-hero .elementor-widget-container {
    width: 100% !important;
    max-width: 1200px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
.si-page-banner-hero h1,
.si-page-banner-hero .si-split-heading {
    font-size: 56px !important;
    text-shadow: 0px 2px 10px #000;
    color: var(--white) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.25px !important;
    text-align: left !important;
    transition: none !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.si-page-banner-hero .si-split-word,
.si-page-banner-hero .si-split-word-inner,
.si-page-banner-hero h1 span {
    color: var(--white) !important;
    transition: transform 0.6s var(--ease-smooth) !important;
}
.si-page-banner-hero p {
    font-size: 14px !important;
    font-weight: var(--fw-semibold) !important;
    color: var(--white) !important;
    line-height: 1.6 !important;
    text-align: left !important;
    max-width: 50% !important;
    width: 50% !important;
    margin-top: 28px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

/* Hero banner breadcrumb */
.si-breadcrumb-nav {
    margin-top: 20px !important;
}
.si-page-banner-hero .custom-breadcrumb {
    justify-content: flex-start !important;
}

/* ── Hero Responsive ── */
@media (min-width: 1440px) {
    .si-page-banner-hero { padding: 180px 0 90px 0 !important; min-height: 400px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 60px !important; }
    .si-page-banner-hero p { font-size: 15px !important; }
}
@media (max-width: 1439px) and (min-width: 1024px) {
    .si-page-banner-hero { padding: 170px 0 80px 0 !important; min-height: 346px !important; }
    .si-page-banner-hero .elementor-widget { padding: 0 120px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 56px !important; }
    .si-page-banner-hero p { font-size: 14px !important; }
}
@media (max-width: 1023px) and (min-width: 768px) {
    .si-page-banner-hero { padding: 120px 0 60px 0 !important; min-height: 300px !important; }
    .si-page-banner-hero .elementor-widget { padding: 0 60px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 44px !important; line-height: 1.2 !important; }
    .si-page-banner-hero p { font-size: 13px !important; margin-top: 20px !important; }
}
@media (max-width: 767px) and (min-width: 576px) {
    .si-page-banner-hero { padding: 100px 0 50px 0 !important; min-height: auto !important; }
    .si-page-banner-hero .elementor-widget { padding: 0 40px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 36px !important; line-height: 1.25 !important; }
    .si-page-banner-hero p { font-size: 13px !important; max-width: 100% !important; width: 100% !important; margin-top: 16px !important; }
}
@media (max-width: 575px) {
    .si-page-banner-hero { padding: 80px 0 40px 0 !important; min-height: auto !important; overflow: hidden !important; }
    .si-page-banner-hero .elementor-widget { padding: 0 20px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 30px !important; line-height: 1.3 !important; }
    .si-page-banner-hero p { font-size: 13px !important; line-height: 1.6 !important; max-width: 100% !important; width: 100% !important; margin-top: 16px !important; }
}
@media (max-width: 375px) {
    .si-page-banner-hero { padding: 70px 0 35px 0 !important; }
    .si-page-banner-hero .elementor-widget { padding: 0 15px !important; }
    .si-page-banner-hero h1, .si-page-banner-hero .si-split-heading { font-size: 26px !important; line-height: 1.3 !important; }
    .si-page-banner-hero p { font-size: 12px !important; }
}

/* ================================================
   FOOTER
================================================ */
.snf-container {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 var(--site-padding) !important;
    box-sizing: border-box !important;
}
.snf-bottom-inner {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    padding: 20px 0 !important;
}
.snf-bottom-links {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    align-items: center !important;
    width: auto !important;
}
.snf-copyright {
    margin: 0 !important;
    text-align: center !important;
    flex: 1 !important;
}
.snf-dmca {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    white-space: nowrap !important;
}
.snf-dmca a:focus { color: var(--white) !important; }

@media (max-width: 768px) {
    .snf-bottom-inner { flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; gap: 8px !important; padding: 16px 0 !important; }
    .snf-bottom-links { flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; width: auto !important; order: 1 !important; }
    .snf-copyright { order: 2 !important; text-align: center !important; width: 100% !important; font-size: 12px !important; flex: unset !important; }
    .snf-dmca { order: 3 !important; width: 100% !important; justify-content: center !important; }
}

/* ================================================
   FONT FALLBACK — Sora → Arial metrics calibration
================================================ */
@font-face {
    font-family: 'Sora Fallback';
    src: local('Arial');
    size-adjust: 114.88%;
    ascent-override: 90%;
    descent-override: 22%;
    line-gap-override: 0%;
}
body,
.smm-menu-link,
.smm-cta-btn,
.smm-btn-inner {
    font-family: 'Sora', 'Sora Fallback', sans-serif;
}

/* ================================================
   SERVICE PAGE — Challenges section
================================================ */
.challenges-area .challenge-card {
    height: 100%;
    padding: 28px 24px;
    border: 1px solid var(--color-border, rgba(0,0,0,0.08));
    border-radius: var(--radius-base, 12px);
    box-shadow: var(--shadow-soft, 0px 2px 12px 0px #e7e7e7);
    transition: var(--transition-hover, all .25s ease);
}
.challenges-area .challenge-card:hover {
    box-shadow: var(--shadow-card, 0 4px 24px rgba(1,14,208,0.15));
    transform: translateY(-4px);
}
.challenges-area .challenge-num {
    display: inline-block;
    font-family: var(--font-heading);
    font-weight: var(--fw-bold, 700);
    font-size: 22px;
    color: var(--color-primary, #010ed0);
    margin-bottom: 10px;
}
.challenges-area .challenge-card h4 {
    margin-bottom: 10px;
}
.challenges-area .challenge-card p {
    margin-bottom: 0;
    font-size: 15px;
}
.challenges-area .row > [class*="col-"] {
    margin-bottom: 24px;
}

/* ================================================
   HEADING FONT — apply to heading-scale text that
   isn't a real h1-h6 tag (custom widget titles/labels)
   Parent tags already covered via global h1-h6 rule.
================================================ */
.si-ind-nav-label,
.si-ind-title,
.sn-culture-card-title,
.sn-case-title,
.sn-service-title,
.sn-step-title,
.sn-filter-item-title,
.sn-section-title,
.snpcta__heading {
    font-family: var(--font-heading);
}
