/* KOMPLEKT world-language and translation loader hotfix */

body.k-translation-busy {
    overflow: hidden !important;
}

.k-brand-protected {
    white-space: nowrap;
    text-transform: none !important;
}

.k-translation-progress {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483500 !important;

    display: grid !important;
    place-items: center !important;

    padding: 20px !important;

    background: rgba(239, 247, 255, .72) !important;
    -webkit-backdrop-filter: blur(11px) saturate(115%);
    backdrop-filter: blur(11px) saturate(115%);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity .18s ease,
        visibility .18s ease;
}

.k-translation-progress.visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto !important;
    cursor: wait;
}

.k-translation-card {
    display: grid;
    justify-items: center;
    gap: 9px;

    width: min(260px, calc(100vw - 42px));
    padding: 22px 24px;

    border: 1px solid rgba(0, 24, 70, .11);
    border-radius: 24px;

    background: rgba(255, 255, 255, .97);
    box-shadow: 0 24px 72px rgba(0, 24, 70, .22);

    color: #001846;
    text-align: center;
}

.k-translation-icon {
    position: relative;

    display: grid;
    place-items: center;

    width: 82px;
    height: 82px;
}

.k-translation-icon::before {
    content: "";

    position: absolute;
    inset: 0;

    border: 4px solid rgba(18, 107, 255, .15);
    border-top-color: #126bff;
    border-right-color: #08ad82;
    border-radius: 50%;

    animation: komplekt-world-spin .78s linear infinite;
}

.k-translation-icon img {
    display: block;

    width: 50px;
    height: 50px;

    object-fit: contain;
}

.k-translation-card strong {
    font-size: 14px;
    font-weight: 950;
    line-height: 1.25;
}

.k-translation-card span {
    color: #53657d;
    font-size: 11.5px;
    font-weight: 800;
    line-height: 1.35;
}

@keyframes komplekt-world-spin {
    to { transform: rotate(360deg); }
}

/* Large searchable language list, populated from Google's live selector. */
[data-language-menu] .language-grid {
    max-height: min(54vh, 430px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

[data-language-menu] [data-world-lang] {
    min-width: 0;
}

[data-language-menu] [data-world-lang].active {
    border-color: #126bff !important;
    background: #edf5ff !important;
    color: #001846 !important;
}

.k-language-help {
    display: none;
}

@media (max-width: 760px) {
    [data-language-menu] .language-menu-panel {
        max-height: min(70vh, 560px) !important;
    }

    [data-language-menu] .language-grid {
        max-height: min(52vh, 410px) !important;
    }

    .k-language-help {
        position: fixed;
        left: 50%;
        bottom: calc(132px + env(safe-area-inset-bottom));
        z-index: 2147483000;

        display: block;
        width: min(340px, calc(100vw - 24px));
        padding: 14px 40px 14px 15px;

        border: 1px solid rgba(18, 107, 255, .19);
        border-radius: 18px;

        background: rgba(255, 255, 255, .98);
        box-shadow: 0 20px 54px rgba(0, 24, 70, .22);

        color: #001846;
        text-align: center;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate(-50%, 10px);

        transition:
            opacity .22s ease,
            visibility .22s ease,
            transform .22s ease;
    }

    .k-language-help.visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate(-50%, 0);
    }

    .k-language-help::after {
        content: "";

        position: absolute;
        left: 50%;
        bottom: -9px;

        width: 17px;
        height: 17px;

        border-right: 1px solid rgba(18, 107, 255, .19);
        border-bottom: 1px solid rgba(18, 107, 255, .19);

        background: #fff;
        transform: translateX(-50%) rotate(45deg);
    }

    .k-language-help strong,
    .k-language-help span {
        position: relative;
        z-index: 1;
        display: block;
    }

    .k-language-help strong {
        font-size: 13px;
        line-height: 1.3;
    }

    .k-language-help span {
        margin-top: 4px;
        color: #43536b;
        font-size: 11.5px;
        font-weight: 800;
        line-height: 1.4;
    }

    .k-language-help-close {
        position: absolute;
        top: 7px;
        right: 8px;
        z-index: 2;

        width: 29px;
        height: 29px;
        padding: 0;

        border: 0;
        border-radius: 50%;

        background: #edf4ff;
        color: #001846;

        font-size: 18px;
        font-weight: 900;
        line-height: 29px;
        cursor: pointer;
    }

    body[data-page="stock-detail"] .page-hero h1,
    body[data-page="stock-detail"] .page-hero.compact h1 {
        max-width: 100%;
        margin-top: 9px !important;
        margin-bottom: 12px !important;
        font-size: clamp(21px, 6vw, 28px) !important;
        line-height: 1.17 !important;
        letter-spacing: -.02em !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    body[data-page="stock-detail"] .detail-product-title {
        max-width: 100%;
        font-size: 19px !important;
        line-height: 1.28 !important;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 380px) {
    body[data-page="stock-detail"] .page-hero h1,
    body[data-page="stock-detail"] .page-hero.compact h1 {
        font-size: 20px !important;
    }

    body[data-page="stock-detail"] .detail-product-title {
        font-size: 18px !important;
    }
}


/* KOMPLEKT NATIVE NAMES + COMPACT MOBILE PRODUCT TITLES 20260724 */
.k-native-language-option,
.k-native-language-option * {
    text-transform: none !important;
}

.k-native-language-option .lang-code {
    direction: ltr !important;
    unicode-bidi: isolate !important;
    text-transform: uppercase !important;
}

.k-native-language-option .lang-native {
    unicode-bidi: plaintext !important;
}

@media (max-width: 760px) {
    body[data-page="stock-detail"] .page-hero h1,
    body[data-page="stock-detail"] .page-hero.compact h1 {
        max-width: 100% !important;
        margin: 7px 0 10px !important;
        font-size: clamp(18px, 4.7vw, 21px) !important;
        line-height: 1.20 !important;
        letter-spacing: -.012em !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    body[data-page="stock-detail"] .detail-product-title {
        max-width: 100% !important;
        font-size: 17px !important;
        line-height: 1.30 !important;
        letter-spacing: 0 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }
}

@media (max-width: 380px) {
    body[data-page="stock-detail"] .page-hero h1,
    body[data-page="stock-detail"] .page-hero.compact h1 {
        font-size: 17px !important;
    }

    body[data-page="stock-detail"] .detail-product-title {
        font-size: 16.5px !important;
    }
}

/* KOMPLEKT DETAIL TITLE FINAL START */

/*
 * Applies automatically to every current and future
 * product and requirement detail page.
 */

body[data-page="stock-detail"] .page-hero.compact,
body[data-page="requirement-detail"] .page-hero.compact {
    padding-top: 24px !important;
    padding-bottom: 14px !important;
}

body[data-page="stock-detail"] .page-hero.compact h1,
body[data-page="requirement-detail"] .page-hero.compact h1 {
    width: 100% !important;
    max-width: 1080px !important;

    margin: 6px 0 8px !important;

    color: var(--navy) !important;

    font-weight: 850 !important;
    letter-spacing: -.018em !important;

    overflow-wrap: anywhere !important;
    word-break: normal !important;

    text-align: left !important;
}

/* Upper product title */
body[data-page="stock-detail"]
.page-hero.compact h1 {
    font-size:
        clamp(
            23px,
            2.15vw,
            31px
        ) !important;

    line-height: 1.18 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;

    overflow: hidden !important;
}

/* Upper requirement title */
body[data-page="requirement-detail"]
.page-hero.compact h1 {
    font-size:
        clamp(
            19px,
            1.55vw,
            25px
        ) !important;

    line-height: 1.25 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;

    overflow: hidden !important;
}

/* Reference, category and status line */
body[data-page="stock-detail"]
.page-hero.compact .lead.small-lead,

body[data-page="requirement-detail"]
.page-hero.compact .lead.small-lead {
    max-width: 100% !important;
    margin: 0 !important;

    color: var(--muted) !important;

    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    letter-spacing: .01em !important;

    overflow-wrap: anywhere !important;
    text-align: left !important;
}

/* Shared lower title styling */
body[data-page="stock-detail"]
.detail-shell.compact-detail
.detail-product-title,

body[data-page="requirement-detail"]
.detail-shell.compact-detail
.detail-product-title {
    width: 100% !important;
    max-width: 100% !important;

    margin: 10px 0 13px !important;

    color: var(--navy) !important;

    font-weight: 830 !important;
    letter-spacing: -.012em !important;

    overflow-wrap: anywhere !important;
    word-break: normal !important;

    text-align: left !important;
}

/* Lower product title */
body[data-page="stock-detail"]
.detail-shell.compact-detail
.detail-product-title {
    font-size:
        clamp(
            20px,
            1.55vw,
            25px
        ) !important;

    line-height: 1.23 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;

    overflow: hidden !important;
}

/* Lower requirement title */
body[data-page="requirement-detail"]
.detail-shell.compact-detail
.detail-product-title {
    font-size:
        clamp(
            18px,
            1.25vw,
            22px
        ) !important;

    line-height: 1.30 !important;

    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;

    overflow: hidden !important;
}

@media (max-width: 760px) {

    body[data-page="stock-detail"]
    .page-hero.compact,

    body[data-page="requirement-detail"]
    .page-hero.compact {
        padding-top: 14px !important;
        padding-bottom: 10px !important;
    }

    body[data-page="stock-detail"]
    .page-hero.compact .eyebrow,

    body[data-page="requirement-detail"]
    .page-hero.compact .eyebrow {
        margin-bottom: 6px !important;

        font-size: 9px !important;
        line-height: 1.25 !important;
        letter-spacing: .09em !important;
    }

    /* Mobile upper product title */
    body[data-page="stock-detail"]
    .page-hero.compact h1 {
        margin: 4px 0 7px !important;

        font-size: 18px !important;
        line-height: 1.25 !important;

        -webkit-line-clamp: 3 !important;
    }

    /* Mobile upper requirement title */
    body[data-page="requirement-detail"]
    .page-hero.compact h1 {
        margin: 4px 0 7px !important;

        font-size: 15.5px !important;
        line-height: 1.33 !important;
        letter-spacing: 0 !important;

        -webkit-line-clamp: 5 !important;
    }

    body[data-page="stock-detail"]
    .page-hero.compact .lead.small-lead,

    body[data-page="requirement-detail"]
    .page-hero.compact .lead.small-lead {
        font-size: 10.5px !important;
        line-height: 1.35 !important;
    }

    body[data-page="stock-detail"]
    .detail-shell.compact-detail,

    body[data-page="requirement-detail"]
    .detail-shell.compact-detail {
        min-width: 0 !important;
        padding: 15px !important;
    }

    /* Mobile lower product title */
    body[data-page="stock-detail"]
    .detail-shell.compact-detail
    .detail-product-title {
        margin: 8px 0 11px !important;

        font-size: 16.5px !important;
        line-height: 1.30 !important;

        -webkit-line-clamp: 3 !important;
    }

    /* Mobile lower requirement title */
    body[data-page="requirement-detail"]
    .detail-shell.compact-detail
    .detail-product-title {
        margin: 8px 0 11px !important;

        font-size: 15px !important;
        line-height: 1.35 !important;
        letter-spacing: 0 !important;

        -webkit-line-clamp: 5 !important;
    }
}

@media (max-width: 380px) {

    body[data-page="stock-detail"]
    .page-hero.compact h1 {
        font-size: 17px !important;
    }

    body[data-page="requirement-detail"]
    .page-hero.compact h1 {
        font-size: 14.5px !important;
    }

    body[data-page="stock-detail"]
    .detail-shell.compact-detail
    .detail-product-title {
        font-size: 16px !important;
    }

    body[data-page="requirement-detail"]
    .detail-shell.compact-detail
    .detail-product-title {
        font-size: 14.5px !important;
    }
}

/* Arabic and other RTL languages */
html[dir="rtl"]
body[data-page="stock-detail"]
.page-hero.compact h1,

html[dir="rtl"]
body[data-page="requirement-detail"]
.page-hero.compact h1,

html[dir="rtl"]
body[data-page="stock-detail"]
.page-hero.compact .lead.small-lead,

html[dir="rtl"]
body[data-page="requirement-detail"]
.page-hero.compact .lead.small-lead,

html[dir="rtl"]
body[data-page="stock-detail"]
.detail-product-title,

html[dir="rtl"]
body[data-page="requirement-detail"]
.detail-product-title {
    text-align: right !important;
}

/* KOMPLEKT DETAIL TITLE FINAL END */
