
/* Стиль: углы=squircle, тени=subtle, отступы=normal, кнопки=chunky */

@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@400;500;600;700;800&family=Red+Hat+Text:wght@400;500;600&display=swap');

:root {
    /* Акцентные цвета */
    --a1432: #10D47C;
    --a15fz: #AA0AA0;
    --a1665: #EF2D1F;
    --a1wp: linear-gradient(45deg, var(--a1432), var(--a15fz));
    
    /* Шрифты */
    --a33z: 'Red Hat Display', sans-serif;
    --a582: 'Red Hat Text', sans-serif;
    
    /* Размеры шрифтов */
    --a19of: 64px;
    --a204d: 44px;
    --a21fr: 30px;
    --a17gf: 18px;
    
    /* Вес заголовков */
    --a18c5: 900;
    
    /* Углы скругления */
    --a6g8: 18px;
    --a7y5: 24px;
    --a8ah: 32px;
    --a9vj: 44px;
    --a4og: 50px;
    
    /* Тени */
    --a10t8: 0 1px 3px rgba(0,0,0,0.04);
    --a11d0: 0 2px 8px rgba(0,0,0,0.06);
    --a1209: 0 4px 16px rgba(0,0,0,0.08);
    --a13ix: 0 8px 24px rgba(0,0,0,0.1);
    
    /* Отступы секций */
    --_pn1s9: 80px 0;
}

/* Стиль кнопок */
._a7tg8 {
    border-radius: 8px;
    padding: 18px 36px;
}

/* Стиль карточек */
._9ylp6i, ._necpb, ._mr5y2ak, ._55h2cze, ._gua0jm {
    border-width: 0px;
    border-color: transparent;
}

/* ═══════════════════════════════════════════ */
/* STYLE TRICKS — автогенерация приёмов      */
/* ═══════════════════════════════════════════ */

/* Trick: odd-card-lift — нечётные карточки приподняты */
.row > [class*="col"]:nth-child(odd) ._9ylp6i,
.row > [class*="col"]:nth-child(odd) ._necpb {
    transform: translateY(-10px);
}
.row > [class*="col"]:nth-child(even) ._9ylp6i,
.row > [class*="col"]:nth-child(even) ._necpb {
    transform: translateY(10px);
}

/* Trick: dark-_wft175 — тёмный CTA */
._wft175 {
    background: var(--footer-dark-bg);
    color: #fff;
    border-radius: var(--a9vj);
    margin: 0 20px;
}
._wft175 ._2yq2v { color: #fff; }
._wft175 ._expsdsn { color: rgba(255,255,255,0.7); }
._wft175 ._a7tg8 { background: #fff; color: var(--footer-dark-bg); }

/* Trick: btn-glow — свечение при hover */
._5sjdol {
    transition: box-shadow 0.3s;
}
._5sjdol:hover {
    box-shadow: 0 0 20px var(--a1432), 0 0 40px rgba(var(--a1432), 0.3);
}

/* Trick: accent-underline — подчёркивание h2 */
._xjowbsb {
    display: inline-block;
    position: relative;
    padding-bottom: 14px;
}
._xjowbsb::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: var(--a1wp);
    border-radius: 2px;
}
.text-center ._xjowbsb::after {
    left: 50%;
    transform: translateX(-50%);
}

/* Trick: card-double-border — рамка слева + снизу */
._9ylp6i, ._necpb, ._55h2cze, ._gua0jm, ._mr5y2ak {
    border-left: 4px solid var(--a1432);
    border-bottom: 4px solid var(--a15fz, var(--a1432));
    border-radius: 0;
}

/* Trick: dot-pattern-bg — точечный фон */
._4grrcb {
    background-image: radial-gradient(circle, var(--a1432) 1px, transparent 1px);
    background-size: 24px 24px;
    background-blend-mode: overlay;
}

/* ═══════════════════════════════════════════ */
/* ELEMENT PRESETS — уникализация компонентов */
/* ═══════════════════════════════════════════ */

/* Hero: gradient blob — градиентные круги за контентом */
._wsw5b58::before {
    content: '';
    position: absolute;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: var(--a1432);
    opacity: 0.08;
    top: -100px;
    right: -100px;
    filter: blur(80px);
}
._wsw5b58::after {
    content: '';
    position: absolute;
    width: 350px;
    height: 350px;
    border-radius: 50%;
    background: var(--a15fz, var(--a1432));
    opacity: 0.06;
    bottom: -50px;
    left: -50px;
    filter: blur(60px);
    z-index: 0;
}
._jw3ezew img {
    border-radius: var(--a9vj);
    box-shadow: 0 20px 60px rgba(0,0,0,0.1);
}
._20xequg { position: relative; z-index: 2; }
._10t1s { background: linear-gradient(135deg, var(--a1432), var(--a15fz, var(--a1432))); color: #fff !important; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 700; padding: 0; }

/* Header: neon bottom — неоновая линия снизу */
._7yop8an {
    background: var(--footer-dark-bg);
    padding: 16px 0;
    border-bottom: 2px solid var(--a1432);
    box-shadow: 0 2px 20px color-mix(in srgb, var(--a1432) 40%, transparent);
}
._7yop8an ._lonwy { color: #fff; }
._7yop8an .nav-link { color: rgba(255,255,255,0.7) !important; }
._7yop8an .nav-link:hover, ._7yop8an .nav-link.active { color: var(--a1432) !important; }
._7yop8an .nav-link::after { background: var(--a1432); }
._7yop8an ._2n83nq { background: var(--a1432); color: #fff; border-color: var(--a1432); }
._7yop8an ._sptgfc ._02sdjnl { background: #fff; }
._7yop8an.scrolled { box-shadow: 0 4px 25px color-mix(in srgb, var(--a1432) 30%, transparent); }
._7yop8an.scrolled {
    background: var(--footer-dark-bg) !important;
    color: #fff;
}

/* Footer: layered card — многослойный вид */
._cnset {
    background: var(--bg-secondary);
    color: var(--text-secondary);
    padding: 0 20px 20px;
    border-top: none;
}
._cnset p, ._cnset li, ._cnset span,
._cnset ._1upvd25 p, ._cnset .footer-contact li { color: var(--text-secondary); }
._cnset h1,._cnset h2,._cnset h3,._cnset h4,._cnset h5 { color: var(--text-primary); }
._cnset > .container,
._cnset > div > .container {
    background: var(--bg-primary);
    border-radius: var(--a8ah);
    padding: 60px 40px 30px;
    box-shadow: var(--a1209);
    border: 1px solid var(--border-color);
}
._1upvd25 ._lwgxv { color: var(--text-primary); }
._1upvd25 ._lwgxv::after { background: var(--a1432); }
._sn9na32 a { color: var(--text-secondary); }
._sn9na32 a:hover { color: var(--a1432); }
._84b4jpm a { background: var(--bg-secondary); border-color: var(--border-color); color: var(--text-secondary); }
._84b4jpm a:hover { background: var(--a1432); color: #fff; border-color: var(--a1432); }
._ijlsiy { border-top: 1px solid var(--border-color); margin-top: 40px; }
._ijlsiy p { color: var(--text-muted); }

/* Contact: dark panel — тёмная панель формы */
.contact-section ._m5lqpx {
    background: var(--footer-dark-bg);
    padding: 48px;
    border-radius: var(--a8ah);
}
.contact-section ._m5lqpx .form-control {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.15);
    color: #fff;
    border-radius: var(--a6g8);
}
.contact-section ._m5lqpx .form-control::placeholder { color: rgba(255,255,255,0.4); }
.contact-section ._m5lqpx .form-control:focus { border-color: var(--a1432); background: rgba(255,255,255,0.12); }
.contact-section ._m5lqpx ._a7tg8 { background: #fff; color: var(--footer-dark-bg); border-color: #fff; }
.contact-section ._m5lqpx label { color: rgba(255,255,255,0.7); }

/* Logo: gradient bg pill — градиентная капсула */
._lonwy { font-size: 16px; font-weight: 700; background: var(--a1wp); color: #fff !important; -webkit-text-fill-color: #fff !important; -webkit-background-clip: unset; background-clip: unset; padding: 8px 22px; border-radius: var(--a4og); letter-spacing: 0.5px; }
._lonwy:hover { opacity: 0.9; color: #fff; }

/* Headings: serif italic — элегантные курсивные */
h3, h4, h5 { font-family: var(--a33z); }
._72i0uw, .card-title {
    font-family: 'Playfair Display', 'Georgia', serif;
    font-weight: 400;
    font-style: italic;
    font-size: 20px;
}
._gl0lr { font-style: italic; font-weight: 500; }

/* Img: hero — диагональный срез */
._jw3ezew img {
    clip-path: polygon(8% 0, 100% 0, 100% 92%, 92% 100%, 0 100%, 0 8%);
}

/* Img: cards — срезанный угол */
._necpb img, ._9ylp6i img, ._55h2cze img, .portfolio-item img {
    clip-path: polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%);
}

/* Img: section — контур со смещением */
section:not(._wsw5b58) .col-lg-6 img, section:not(._wsw5b58) .col-lg-5 img, .about-section img, section img.rounded {
    outline: 2px solid var(--a1432);
    outline-offset: 8px;
    border-radius: var(--a7y5);
}

/* ═══ BURGER MENU DESIGN ═══ */
/* Burger: rounded box — скруглённая рамка */
._sptgfc { width: 42px; height: 42px; gap: 5px; border: 1.5px solid var(--border-color); background: none; border-radius: var(--a7y5, 8px); }
._sptgfc ._02sdjnl { width: 20px; height: 2px; border-radius: 2px; transition: transform 0.3s ease, opacity 0.3s ease; }
._sptgfc:hover { border-color: var(--a1432); }
._sptgfc.active ._02sdjnl:nth-child(1) { transform: translateY(7px) rotate(45deg); }
._sptgfc.active ._02sdjnl:nth-child(2) { opacity: 0; }
._sptgfc.active ._02sdjnl:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

main > section + section::before{content:'\223F  \223F  \223F';display:block;text-align:center;color:var(--a1432);opacity:0.2;font-size:16px;letter-spacing:4px;padding:10px 0;}

._9ylp6i,._necpb,.portfolio-item{opacity:0;animation:scaleIn 0.5s ease forwards;}.row>[class*="col"]:nth-child(1)>*{animation-delay:0.05s;}.row>[class*="col"]:nth-child(2)>*{animation-delay:0.15s;}.row>[class*="col"]:nth-child(3)>*{animation-delay:0.25s;}.row>[class*="col"]:nth-child(4)>*{animation-delay:0.35s;}.row>[class*="col"]:nth-child(5)>*{animation-delay:0.45s;}.row>[class*="col"]:nth-child(6)>*{animation-delay:0.55s;}@keyframes scaleIn{from{opacity:0;transform:scale(0.85);}to{opacity:1;transform:scale(1);}}

.marquee-strip{overflow:hidden;padding:14px 0;background:var(--bg-secondary,var(--bg-card));border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);}.marquee-inner{display:flex;gap:60px;white-space:nowrap;animation:marqueeScroll 20s linear infinite;font-size:14px;text-transform:uppercase;letter-spacing:3px;opacity:0.3;font-weight:600;}@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

.bg-deco{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}.bg-deco span{position:absolute;border-radius:50%;filter:blur(60px);opacity:0.03;animation:decoBlob 22s ease-in-out infinite alternate;}@keyframes decoBlob{0%{transform:translate(0,0) scale(1);}50%{transform:translate(30px,-40px) scale(1.15);}100%{transform:translate(-20px,30px) scale(0.9);}}

/* Scroll: slide-left-exit — секции улетают влево */
main > section {
    transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94), opacity 0.6s ease;
    will-change: transform, opacity;
}
main > section.exit-left {
    transform: translateX(-100vw);
    opacity: 0;
}
main > section.enter-right {
    transform: translateX(100vw);
    opacity: 0;
}
main > section.in-view {
    transform: translateX(0);
    opacity: 1;
}
._wsw5b58 { transform: none !important; opacity: 1 !important; }
@media (max-width: 768px) {
    main > section.exit-left { transform: translateX(-60vw); }
    main > section.enter-right { transform: translateX(60vw); }
}

._9ylp6i,._necpb,._55h2cze,._gua0jm{position:relative;overflow:hidden;}._9ylp6i::before,._necpb::before,._55h2cze::before,._gua0jm::before{content:'';position:absolute;top:-50%;left:-75%;width:50%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);transform:skewX(-15deg);transition:left 0.6s ease;pointer-events:none;z-index:10;}._9ylp6i:hover::before,._necpb:hover::before,._55h2cze:hover::before,._gua0jm:hover::before{left:125%;}

.hover-tooltip{position:fixed;padding:6px 14px;background:var(--text-primary);color:#fff;font-size:11px;font-weight:600;border-radius:var(--a6g8);pointer-events:none;z-index:99999;opacity:0;transition:opacity 0.2s;font-family:var(--a582);letter-spacing:0.5px;white-space:nowrap;}

.nav-badge{position:relative;}.nav-badge::after{content:'';position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#ef4444;border-radius:50%;animation:badgePing 1.5s cubic-bezier(0,0,0.2,1) infinite;}@keyframes badgePing{75%,100%{transform:scale(2);opacity:0;}}

.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0.5;animation:scrollHintBounce 2s ease-in-out infinite;z-index:10;}.scroll-hint span{display:block;width:24px;height:24px;border-right:2px solid var(--text-primary);border-bottom:2px solid var(--text-primary);transform:rotate(45deg);}@keyframes scrollHintBounce{0%,100%{transform:translateX(-50%) translateY(0);opacity:0.5;}50%{transform:translateX(-50%) translateY(12px);opacity:1;}}

.spin-ring{position:absolute;width:350px;height:350px;border:1px dashed var(--a1432);border-radius:50%;opacity:0.08;animation:spinSlow 35s linear infinite;pointer-events:none;top:15%;right:-80px;z-index:0;}@keyframes spinSlow{to{transform:rotate(360deg);}}@media(max-width:768px){.spin-ring{width:200px;height:200px;right:-60px;}}

.float-shapes{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}.float-hex{position:absolute;width:60px;height:34px;background:var(--a1432);opacity:0.025;animation:floatHex 22s ease-in-out infinite alternate;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);}@keyframes floatHex{0%{transform:translateY(0) rotate(0deg);}100%{transform:translateY(-80px) rotate(60deg);}}

._5sjdol,._wsw5b58 ._a7tg8{background:linear-gradient(90deg,var(--a1432),var(--a15fz,var(--a1432)),var(--a1432));background-size:200% 100%;animation:shimmerBtn 3s ease-in-out infinite;}@keyframes shimmerBtn{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}

/* Asymmetry: rounded-blob — blob-секции */
main > section:nth-child(even):not(._wft175):not(._xrb7h) {
    border-radius: 40px;
    margin-left: 20px;
    margin-right: 20px;
    overflow: clip;
}
._wsw5b58 { border-radius: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 768px) {
    main > section:nth-child(even):not(._wft175):not(._xrb7h) { border-radius: 20px; margin-left: 8px; margin-right: 8px; }
}

/* Fallback: без JS секции видимы сразу */
html:not(._jpy3f) main > section {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    filter: none !important;
}

/* Не даём nav-ссылкам переполнять хедер при большом числе вкладок */
@media (min-width: 993px) {
    ._6xcaw {
        flex-wrap: nowrap;
        overflow: visible;
    }
    ._8gcmnak {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: center;
        flex-wrap: nowrap;
        overflow: hidden;
        gap: clamp(10px, 1.8vw, 36px) !important;
    }
    ._8gcmnak .nav-link {
        white-space: nowrap;
        font-size: clamp(11px, 1.1vw, 15px) !important;
        padding: 8px 0;
        flex-shrink: 0;
    }
    /* Centered-logo split groups — адаптивный gap */
    ._fv64g, ._k6wdp0t {
        gap: clamp(8px, 1.4vw, 32px) !important;
        flex-wrap: nowrap;
        overflow: hidden;
    }
    ._fv64g .nav-link,
    ._k6wdp0t .nav-link {
        white-space: nowrap;
        font-size: clamp(11px, 1.1vw, 15px) !important;
        flex-shrink: 0;
    }
    /* CTA-кнопка не сжимается */
    ._2n83nq {
        flex-shrink: 0;
        white-space: nowrap;
    }
    ._lonwy {
        flex-shrink: 0;
    }
}

/* Вариант "Nav with Top Bar" — фиксируем top-bar (div) над хедером.
   Используем div._4grrcb (не section!) чтобы не зацепить секции. */
div._4grrcb:not(._pn1s9) {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1001;
    padding: 6px 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
div._4grrcb:not(._pn1s9) + ._7yop8an {
    top: 33px;
    transition: top 0.3s ease, background 0.3s ease, padding 0.3s ease;
}
/* При скролле: top-bar скрывается, header прижимается к верху */
div._4grrcb._fent1 {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}
div._4grrcb._fent1 + ._7yop8an,
div._4grrcb:not(._pn1s9) + ._7yop8an.scrolled {
    top: 0;
}
/* Компенсируем дополнительную высоту top-bar для hero */
div._4grrcb:not(._pn1s9) ~ ._wsw5b58 {
    padding-top: 200px;
}

/* Мобильная адаптация top-bar */
@media (max-width: 992px) {
    div._4grrcb:not(._pn1s9) {
        position: relative;
        z-index: auto;
        font-size: 11px;
        padding: 4px 0;
    }
    div._4grrcb:not(._pn1s9) + ._7yop8an {
        top: 0;
    }
    div._4grrcb:not(._pn1s9) ~ ._wsw5b58 {
        padding-top: 140px;
    }
}

@media (max-width: 992px) {
    /* Бургер-кнопка — ВСЕГДА видима и кликабельна */
    ._sptgfc {
        display: flex !important;
        pointer-events: auto !important;
        opacity: 1 !important;
        z-index: 10001 !important;
        cursor: pointer !important;
        -webkit-tap-highlight-color: transparent;
    }
    ._sptgfc ._02sdjnl {
        pointer-events: none;
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
    /* Мобильная панель навигации — правильное позиционирование */
    ._8gcmnak {
        display: flex !important;
        flex-direction: column !important;
        position: fixed !important;
        top: 0 !important;
        height: 100vh !important;
        height: 100dvh !important;
        z-index: 10000 !important;
        overflow-y: auto !important;
    }
    /* Ссылки навигации — крупные, читаемые, кликабельные */
    ._8gcmnak .nav-link {
        font-size: 18px !important;
        padding: 14px 0 !important;
        display: block !important;
        width: 100% !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        line-height: 1.4 !important;
        text-decoration: none !important;
    }
    ._8gcmnak .nav-link::after { display: none !important; }
    ._2n83nq { display: none !important; }
    /* CTA-кнопка скрыта на мобильном (меню важнее) */
    ._fv64g, ._k6wdp0t { display: none !important; }
}

/* ═══ MOBILE MENU PANEL DESIGN ═══ */
/* Mobile Menu: accent-filled — акцентный фон, белый текст, ссылки выезжают */
@media (max-width: 992px) {
    ._8gcmnak { right: -100% !important; left: auto !important; width: min(300px,80vw) !important; background: var(--a1432) !important; padding: 100px 32px 40px !important; box-shadow: -8px 0 40px rgba(0,0,0,0.3) !important; border-left: none !important; transition: right 0.4s cubic-bezier(0.4,0,0.2,1) !important; }
    ._8gcmnak.active { right: 0 !important; }
    ._8gcmnak .nav-link { color: #fff !important; font-weight: 600 !important; border-bottom: 1px solid rgba(255,255,255,0.2) !important; opacity: 0 !important; transform: translateX(20px) !important; transition: opacity 0.35s ease, transform 0.35s ease !important; }
    ._8gcmnak.active .nav-link { opacity: 1 !important; transform: translateX(0) !important; }
    ._8gcmnak.active .nav-link:hover { color: rgba(255,255,255,0.75) !important; }
    ._8gcmnak.active .nav-link:nth-child(1){transition-delay:.06s !important;}
    ._8gcmnak.active .nav-link:nth-child(2){transition-delay:.12s !important;}
    ._8gcmnak.active .nav-link:nth-child(3){transition-delay:.18s !important;}
    ._8gcmnak.active .nav-link:nth-child(4){transition-delay:.24s !important;}
    ._8gcmnak.active .nav-link:nth-child(5){transition-delay:.30s !important;}
    ._8gcmnak.active .nav-link:nth-child(6){transition-delay:.36s !important;}
    ._8gcmnak.active .nav-link:nth-child(7){transition-delay:.42s !important;}
    ._8gcmnak.active .nav-link:nth-child(8){transition-delay:.48s !important;}
}

/* Cards/content blocks: cap backdrop-filter blur at 8px, ensure solid-enough bg */
._9ylp6i,
._necpb,
._55h2cze,
._gua0jm,
._elabze,
._ajbob24 {
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}
/* Guarantee text inside cards is never blurred by filter */
._9ylp6i *,
._necpb *,
._55h2cze *,
._gua0jm *,
._elabze * {
    filter: none !important;
}
/* Animation safety: blurIn cards MUST reach final state even if animation fails */
@supports (animation: none) {
    ._9ylp6i, ._necpb, ._55h2cze {
        animation-fill-mode: forwards !important;
    }
}
/* Spacing for _55h2czes stacked vertically in the same column (density expansion) */
._55h2cze + ._55h2cze {
    margin-top: 1.5rem;
}

/* Hero overlay → guarantee white text regardless of kit theme */
._wsw5b58 ._dzskih ~ .container,
._wsw5b58 ._dzskih ~ .container * {
    color: #fff;
}
._wsw5b58 ._dzskih ~ .container p,
._wsw5b58 ._dzskih ~ .container ._qm4h62c {
    color: rgba(255,255,255,0.85);
}
._wsw5b58 ._dzskih ~ .container ._a7tg8 {
    color: inherit;
}
/* _xrb7h: ensure ALL inner text is light */
._xrb7h ._10t1s { color: #fff; }
._xrb7h ._vg8t076 { color: var(--a1432); }
._xrb7h ._zided4r { color: rgba(255,255,255,0.55); }
._xrb7h ._sn9na32 a { color: rgba(255,255,255,0.65); }
._xrb7h ._sn9na32 a:hover { color: #fff; }
/* Site-footer with own inner background → kill outer kit/preset bg */
._cnset[style*="background:none"] { background: none !important; }
._cnset[style*="background:none"]::before,
._cnset[style*="background:none"]::after { display: none !important; }

/* ═══════════════════════════════════════════ */

/* ═══════════════════════════════════════════ */

body {
    line-height: 1.671;
    letter-spacing: 0.0em;
}

._9ylp6i, ._necpb, ._55h2cze, ._mr5y2ak, ._gua0jm {
    padding: 30px;
}
._9ylp6i, ._necpb, ._55h2cze, ._mr5y2ak, ._gua0jm .card-body {
    padding: 21px 17px;
}
.row > [class*="col"]:nth-child(1) ._9ylp6i,
.row > [class*="col"]:nth-child(1) ._necpb {
    padding: 30px;
    border-radius: calc(var(--a7y5) + 2px);
}
.row > [class*="col"]:nth-child(2) ._9ylp6i,
.row > [class*="col"]:nth-child(2) ._necpb {
    padding: 32px;
    border-radius: calc(var(--a7y5) + 1px);
}
.row > [class*="col"]:nth-child(3) ._9ylp6i,
.row > [class*="col"]:nth-child(3) ._necpb {
    padding: 28px;
    border-radius: calc(var(--a7y5) + 2px);
}
.row > [class*="col"]:nth-child(4) ._9ylp6i,
.row > [class*="col"]:nth-child(4) ._necpb {
    padding: 28px;
    border-radius: calc(var(--a7y5) + 2px);
}
.row > [class*="col"]:nth-child(5) ._9ylp6i,
.row > [class*="col"]:nth-child(5) ._necpb {
    padding: 29px;
    border-radius: calc(var(--a7y5) + 0px);
}
.row > [class*="col"]:nth-child(6) ._9ylp6i,
.row > [class*="col"]:nth-child(6) ._necpb {
    padding: 33px;
    border-radius: calc(var(--a7y5) + 1px);
}

._a7tg8 {
    padding: 16px 28px;
    font-size: 15px;
    letter-spacing: 0.427px;
    border-radius: calc(var(--a7y5) + -2px);
}
._w0r8x {
    padding: 15px 30px;
    border-width: 2px;
}

main > section {
    padding-top: 96px;
    padding-bottom: 103px;
}
main > section:first-child {
    padding-top: 104px;
}
main > section:nth-child(2) {
    padding-top: 98px;
    padding-bottom: 100px;
}
main > section:nth-child(4) {
    padding-top: 96px;
    padding-bottom: 103px;
}
main > section:nth-child(6) {
    padding-top: 98px;
    padding-bottom: 102px;
}

._8c2bd70 {
    margin-bottom: 56px;
}

._9ylp6i, ._necpb, ._55h2cze, ._gua0jm {
    box-shadow: 2px 5px 16px rgba(0,0,0,0.073);
}

._wsw5b58 {
    padding-top: 116px;
}
._7xud2n {
    margin-bottom: 26px;
}
._qm4h62c {
    margin-bottom: 35px;
    font-size: 20px;
    line-height: 1.589;
}
._10t1s {
    font-size: 13px;
    letter-spacing: 3.586px;
    margin-bottom: 26px;
}
._nji34s5 {
    gap: 12px;
}

._jw3ezew img {
    border-radius: 9px;
    box-shadow: 0 13px 39px rgba(0,0,0,0.131);
}

._yyob4 {
    width: 56px;
    height: 56px;
    font-size: 22px;
    border-radius: 14px;
    margin-bottom: 20px;
}

._72i0uw, .card-title {
    font-size: 20px;
    margin-bottom: 9px;
}
._8bz6mve, .card-text {
    font-size: 16px;
    line-height: 1.588;
}

._xjowbsb {
    margin-bottom: 16px;
    letter-spacing: 0.077px;
}
._vg8t076 {
    font-size: 12px;
    letter-spacing: 3.436px;
    margin-bottom: 15px;
}
._7ogzl {
    font-size: 18px;
    line-height: 1.663;
}

@media (min-width: 993px) {
    ._8gcmnak {
        gap: 33px;
    }
    ._8gcmnak .nav-link {
        font-size: 13px;
        padding: 9px 0;
    }
}

._cnset {
    padding-top: 62px;
}
._1upvd25 ._lwgxv {
    font-size: 16px;
    margin-bottom: 24px;
}
._sn9na32 a {
    font-size: 15px;
}
._sn9na32 li {
    margin-bottom: 9px;
}
._84b4jpm {
    gap: 12px;
}
._84b4jpm a {
    width: 40px;
    height: 40px;
}
._ijlsiy {
    padding: 25px 0;
    margin-top: 49px;
}

.form-control {
    border-radius: 5px;
    padding: 12px 15px;
    font-size: 14px;
}

._mr5y2ak {
    padding: 32px;
}
._pjyuchl {
    font-size: 18px;
    line-height: 1.694;
    margin-bottom: 22px;
}
._2xt4qp {
    width: 49px;
    height: 49px;
}
._83onicu {
    font-size: 15px;
}
._02coot {
    font-size: 14px;
}

._gua0jm {
    padding: 38px;
}
._1pwdh {
    font-size: 19px;
    margin-bottom: 9px;
}
._rlzctl {
    font-size: 46px;
    margin-bottom: 22px;
}
._jl2nfwk li {
    padding: 12px 0;
    font-size: 15px;
}

._uj6fxze, .stat-number {
    font-size: 47px;
    margin-bottom: 7px;
}
._z3ote {
    font-size: 13px;
    letter-spacing: 0.694px;
}

._347d67f img {
    border-radius: 15px;
}
._idnp2 {
    font-size: 18px;
    margin-bottom: 6px;
}
._riayz {
    font-size: 14px;
}

._gm4hl {
    font-size: 36px;
    margin-bottom: 9px;
}
._gl0lr {
    font-size: 18px;
    margin-bottom: 8px;
}

.wow {
    animation-duration: 0.684s !important;
}
._9ylp6i, ._necpb, ._55h2cze, ._mr5y2ak,
._gua0jm, ._ajbob24 {
    transition-duration: 0.345s;
}

.row {
    --bs-gutter-y: 29px;
}

._wft175 {
    padding: 84px 0;
}
._2yq2v {
    font-size: 36px;
    margin-bottom: 17px;
}
._expsdsn {
    font-size: 17px;
    margin-bottom: 29px;
}

._55h2cze ._cdwkhq img {
    border-radius: 14px 14px 0 0;
}
._bbh09yx {
    font-size: 12px;
    margin-bottom: 5px;
    gap: 11px;
}

._7yop8an {
    padding: 20px 0;
}
._7yop8an.scrolled {
    padding: 17px 0;
}
._lonwy {
    font-size: 25px;
}
._2n83nq {
    margin-left: 18px;
}

/* Portfolio slider (custom) */
#portfolioSwiper { overflow: hidden; }
#portfolioSwiper .swiper-wrapper {
    display: flex;
    transition: transform 0.6s ease;
    will-change: transform;
}
#portfolioSwiper .swiper-slide {
    flex: 0 0 100%;
    width: 100%;
}
#portfolioPagination {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
}
#portfolioPagination .portfolio-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--border-light);
    cursor: pointer;
    transition: all 0.2s ease;
}
#portfolioPagination .portfolio-dot.active {
    width: 22px;
    border-radius: 999px;
    background: var(--a1wp);
}

/* Our Approach — tabs styling */
.ix-tabs {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--a8ah);
    padding: 28px;
    box-shadow: var(--a10t8);
}
.ix-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 24px;
}
.ix-tab-btn {
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: 10px 16px;
    border-radius: var(--a6g8);
    font-weight: 600;
    font-family: var(--a33z);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.ix-tab-btn.active {
    background: var(--a1wp);
    color: #fff;
    border-color: transparent;
}
.ix-tabs-content { width: 100%; }
.ix-tab-pane { display: none; }
.ix-tab-pane.active { display: block; }

/* Industries — force white text in cards */
#industries .portfolio-overlay,
#industries .portfolio-title {
    color: #fff !important;
}
#industries .portfolio-overlay {
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

/* --- internal markers --- */
:root {
    --_env: 3.21;
    --_hash: 26441;
    --_gen: 1.33;
    --_idx: 1.74;
    --_ver: 6.70;
}
.a11y-skip { content: ''; font-style: inherit }
.env-flag { visibility: inherit; font-style: inherit; unicode-bidi: normal }
.build-stamp { box-sizing: border-box }

/* ═══════════════════════════════════════════════════════ */
/* CONTRAST GUARD — auto-generated, do NOT edit           */
/* Ensures readable text on ALL dark/gradient sections     */
/* ═══════════════════════════════════════════════════════ */

/* ._xrb7h — DARK bg → light text */
._xrb7h h1, ._xrb7h h2, ._xrb7h h3, ._xrb7h h4, ._xrb7h h5, ._xrb7h h6 { color: #fff !important; }
._xrb7h { color: rgba(255,255,255,0.85) !important; }
._xrb7h p, ._xrb7h li, ._xrb7h span:not(.badge):not(._a7tg8), ._xrb7h ._pm8d3, ._xrb7h label, ._xrb7h blockquote, ._xrb7h figcaption, ._xrb7h dt, ._xrb7h dd, ._xrb7h td, ._xrb7h th { color: rgba(255,255,255,0.78) !important; }
._xrb7h a:not(._a7tg8):not(.nav-link) { color: rgba(255,255,255,0.85) !important; }
._xrb7h a:not(._a7tg8):not(.nav-link):hover { color: #fff !important; }
._xrb7h ._uj6fxze { color: #fff !important; }
._xrb7h ._z3ote { color: rgba(255,255,255,0.7) !important; }

/* .bg-dark-custom — DARK bg → light text */
.bg-dark-custom h1, .bg-dark-custom h2, .bg-dark-custom h3, .bg-dark-custom h4, .bg-dark-custom h5, .bg-dark-custom h6 { color: #fff !important; }
.bg-dark-custom { color: rgba(255,255,255,0.85) !important; }
.bg-dark-custom p, .bg-dark-custom li, .bg-dark-custom span:not(.badge):not(._a7tg8), .bg-dark-custom ._pm8d3, .bg-dark-custom label, .bg-dark-custom blockquote, .bg-dark-custom figcaption, .bg-dark-custom dt, .bg-dark-custom dd, .bg-dark-custom td, .bg-dark-custom th { color: rgba(255,255,255,0.78) !important; }
.bg-dark-custom a:not(._a7tg8):not(.nav-link) { color: rgba(255,255,255,0.85) !important; }
.bg-dark-custom a:not(._a7tg8):not(.nav-link):hover { color: #fff !important; }
.bg-dark-custom ._uj6fxze { color: #fff !important; }
.bg-dark-custom ._z3ote { color: rgba(255,255,255,0.7) !important; }

/* .bg-gradient-custom — DARK bg → light text */
.bg-gradient-custom h1, .bg-gradient-custom h2, .bg-gradient-custom h3, .bg-gradient-custom h4, .bg-gradient-custom h5, .bg-gradient-custom h6 { color: #fff !important; }
.bg-gradient-custom { color: rgba(255,255,255,0.85) !important; }
.bg-gradient-custom p, .bg-gradient-custom li, .bg-gradient-custom span:not(.badge):not(._a7tg8), .bg-gradient-custom ._pm8d3, .bg-gradient-custom label, .bg-gradient-custom blockquote, .bg-gradient-custom figcaption, .bg-gradient-custom dt, .bg-gradient-custom dd, .bg-gradient-custom td, .bg-gradient-custom th { color: rgba(255,255,255,0.78) !important; }
.bg-gradient-custom a:not(._a7tg8):not(.nav-link) { color: rgba(255,255,255,0.85) !important; }
.bg-gradient-custom a:not(._a7tg8):not(.nav-link):hover { color: #fff !important; }
.bg-gradient-custom ._uj6fxze { color: #fff !important; }
.bg-gradient-custom ._z3ote { color: rgba(255,255,255,0.7) !important; }

/* .bg-accent-custom — DARK bg → light text */
.bg-accent-custom h1, .bg-accent-custom h2, .bg-accent-custom h3, .bg-accent-custom h4, .bg-accent-custom h5, .bg-accent-custom h6 { color: #fff !important; }
.bg-accent-custom { color: rgba(255,255,255,0.85) !important; }
.bg-accent-custom p, .bg-accent-custom li, .bg-accent-custom span:not(.badge):not(._a7tg8), .bg-accent-custom ._pm8d3, .bg-accent-custom label, .bg-accent-custom blockquote, .bg-accent-custom figcaption, .bg-accent-custom dt, .bg-accent-custom dd, .bg-accent-custom td, .bg-accent-custom th { color: rgba(255,255,255,0.78) !important; }
.bg-accent-custom a:not(._a7tg8):not(.nav-link) { color: rgba(255,255,255,0.85) !important; }
.bg-accent-custom a:not(._a7tg8):not(.nav-link):hover { color: #fff !important; }
.bg-accent-custom ._uj6fxze { color: #fff !important; }
.bg-accent-custom ._z3ote { color: rgba(255,255,255,0.7) !important; }

/* ._wft175 — DARK bg → light text */
._wft175 h1, ._wft175 h2, ._wft175 h3, ._wft175 h4, ._wft175 h5, ._wft175 h6 { color: #fff !important; }
._wft175 { color: rgba(255,255,255,0.85) !important; }
._wft175 p, ._wft175 li, ._wft175 span:not(.badge):not(._a7tg8), ._wft175 ._pm8d3, ._wft175 label, ._wft175 blockquote, ._wft175 figcaption, ._wft175 dt, ._wft175 dd, ._wft175 td, ._wft175 th { color: rgba(255,255,255,0.78) !important; }
._wft175 a:not(._a7tg8):not(.nav-link) { color: rgba(255,255,255,0.85) !important; }
._wft175 a:not(._a7tg8):not(.nav-link):hover { color: #fff !important; }
._wft175 ._uj6fxze { color: #fff !important; }
._wft175 ._z3ote { color: rgba(255,255,255,0.7) !important; }

/* ._cnset — LIGHT bg → dark text (preset handles colors) */
._cnset { color: var(--text-secondary, #555) !important; }
._cnset h1, ._cnset h2, ._cnset h3,
._cnset h4, ._cnset h5, ._cnset h6,
._cnset ._lwgxv { color: var(--text-primary, #1a1a2e) !important; }
._cnset p, ._cnset li, ._cnset span,
._cnset label { color: var(--text-secondary, #555) !important; }
._cnset a:not(._a7tg8) { color: var(--text-secondary, #555) !important; }
._cnset a:not(._a7tg8):hover { color: var(--a1432) !important; }
._cnset ._ijlsiy p { color: var(--text-muted, #888) !important; }

/* ._ajp6u — LIGHT bg → dark text */
._ajp6u h1, ._ajp6u h2, ._ajp6u h3, ._ajp6u h4, ._ajp6u h5, ._ajp6u h6 { color: var(--text-primary, #1a1a2e) !important; }
._ajp6u p, ._ajp6u li, ._ajp6u span:not(.badge):not(._a7tg8), ._ajp6u ._pm8d3, ._ajp6u label, ._ajp6u blockquote, ._ajp6u figcaption, ._ajp6u dt, ._ajp6u dd, ._ajp6u td, ._ajp6u th { color: var(--text-secondary, #555) !important; }

/* ._4grrcb — LIGHT bg → dark text */
._4grrcb h1, ._4grrcb h2, ._4grrcb h3, ._4grrcb h4, ._4grrcb h5, ._4grrcb h6 { color: var(--text-primary, #1a1a2e) !important; }
._4grrcb p, ._4grrcb li, ._4grrcb span:not(.badge):not(._a7tg8), ._4grrcb ._pm8d3, ._4grrcb label, ._4grrcb blockquote, ._4grrcb figcaption, ._4grrcb dt, ._4grrcb dd, ._4grrcb td, ._4grrcb th { color: var(--text-secondary, #555) !important; }
