/* ============================================================
   STARTEN B2B SHOP UI
   v1.0.0
============================================================ */

.stb2b-shop {
    --st-blue: #1d4192;
    --st-blue-dark: #102c6b;
    --st-blue-deep: #0e2457;
    --st-blue-soft: #eef4ff;
    --st-blue-pale: #f7f9fd;
    --st-yellow: #f3bb24;
    --st-text: #122653;
    --st-body: #607091;
    --st-muted: #8290ab;
    --st-border: #dfe6f2;
    --st-white: #ffffff;
    --st-shadow: 0 12px 36px rgba(18, 54, 117, .07);

    width: 100%;
    position: relative;
    overflow: hidden;
    color: var(--st-text);
    background:
        radial-gradient(circle at 92% 0%, rgba(70, 116, 203, .12), transparent 25%),
        linear-gradient(180deg, #f8faff 0, #ffffff 470px);
}

.stb2b-shop,
.stb2b-shop * { box-sizing: border-box; }

.stb2b-shop a { text-decoration: none; }

.stb2b-shop__container {
    width: min(100% - 48px, 1420px);
    margin: 0 auto;
    padding: 34px 0 78px;
}

.stb2b-svg {
    width: 1em;
    height: 1em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.stb2b-svg svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* HERO */

.stb2b-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(480px, .75fr);
    gap: 64px;
    align-items: center;
    padding: 4px 0 32px;
}

.stb2b-breadcrumb,
.stb2b-single__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    font-size: 13px;
    font-weight: 600;
    color: #7a87a5;
}

.stb2b-breadcrumb a,
.stb2b-single__breadcrumb a { color: var(--st-blue); }

.stb2b-hero h1,
.stb2b-single h1 {
    margin: 0;
    color: #10275d;
    letter-spacing: -1.7px;
}

.stb2b-hero h1 {
    font-size: clamp(40px, 4vw, 62px);
    line-height: .98;
}

.stb2b-hero__lead {
    margin: 16px 0 0;
    color: var(--st-blue);
    font-size: 20px;
    line-height: 1.42;
    font-weight: 700;
}

.stb2b-hero__description {
    max-width: 680px;
    margin: 9px 0 0;
    color: var(--st-body);
    font-size: 15px;
    line-height: 1.72;
}

.stb2b-hero__benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-left: 1px solid var(--st-border);
}

.stb2b-benefit {
    padding: 14px 25px;
    border-right: 1px solid var(--st-border);
}

.stb2b-benefit:last-child { border-right: 0; }

.stb2b-benefit__icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 12px;
    color: var(--st-blue);
    background: #f1f5ff;
}

.stb2b-benefit__icon .stb2b-svg { font-size: 23px; }

.stb2b-benefit strong,
.stb2b-benefit span { display: block; }

.stb2b-benefit strong {
    margin-bottom: 2px;
    color: #172f66;
    font-size: 14px;
}

.stb2b-benefit span {
    color: #68789a;
    font-size: 12px;
    line-height: 1.4;
}

/* CATEGORY NAV */

.stb2b-categories {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 28px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
}

.stb2b-categories::-webkit-scrollbar { display: none; }

.stb2b-category {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    flex: 0 0 auto;
    padding: 0 18px;
    border: 1px solid var(--st-border);
    border-radius: 14px;
    color: var(--st-blue);
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 5px 15px rgba(17, 52, 116, .035);
    transition: .2s ease;
}

.stb2b-category .stb2b-svg { font-size: 19px; }

.stb2b-category small {
    min-width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border-radius: 999px;
    color: #6f80a3;
    background: #f2f5fa;
    font-size: 10px;
    font-weight: 700;
}

.stb2b-category:hover {
    transform: translateY(-2px);
    color: var(--st-blue);
    border-color: #c7d3ea;
    box-shadow: 0 9px 24px rgba(17, 52, 116, .09);
}

.stb2b-category.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, #133676, #2659af);
    box-shadow: 0 8px 20px rgba(28, 70, 154, .20);
}

.stb2b-category.is-active small {
    color: #fff;
    background: rgba(255,255,255,.14);
}

/* LOGIN NOTICE */

.stb2b-login-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 20px;
    padding: 17px 21px;
    border: 1px solid rgba(238, 179, 24, .55);
    border-radius: 16px;
    background: linear-gradient(90deg, #fffaf0, #ffffff);
}

.stb2b-login-notice__content {
    display: flex;
    align-items: center;
    gap: 17px;
}

.stb2b-login-notice__icon {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #173b81;
    background: linear-gradient(135deg, #ffe29a, #fff5cc);
}

.stb2b-login-notice__icon .stb2b-svg { font-size: 23px; }

.stb2b-login-notice strong {
    display: block;
    margin-bottom: 4px;
    color: #173268;
    font-size: 16px;
}

.stb2b-login-notice__content > div:last-child > span {
    display: block;
    color: #6a7693;
    font-size: 13px;
    line-height: 1.5;
}

.stb2b-login-notice__actions {
    display: flex;
    align-items: center;
    gap: 11px;
    flex: 0 0 auto;
}

/* BUTTONS */

.stb2b-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 21px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 750;
    transition: .2s ease;
}

.stb2b-button:hover { transform: translateY(-1px); }

.stb2b-button--primary {
    color: #fff;
    background: linear-gradient(135deg, #163b83, #2454aa);
    box-shadow: 0 8px 18px rgba(30, 67, 145, .18);
}

.stb2b-button--primary:hover { color: #fff; }

.stb2b-button--secondary {
    color: var(--st-blue);
    border: 1px solid #315ba9;
    background: #fff;
}

.stb2b-button--secondary:hover { color: var(--st-blue); }

.stb2b-button--wide { width: 100%; }

/* TOOLBAR */

.stb2b-toolbar {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) 280px 260px auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
}

.stb2b-search,
.stb2b-filter,
.stb2b-sort {
    min-height: 48px;
}

.stb2b-search {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 15px;
    border: 1px solid var(--st-border);
    border-radius: 12px;
    background: #fff;
    color: var(--st-blue);
}

.stb2b-search .stb2b-svg { font-size: 19px; }

.stb2b-search input {
    width: 100%;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--st-text) !important;
    font-size: 14px;
    padding: 0 !important;
}

.stb2b-search input::placeholder { color: #9ba7c0; }

.stb2b-filter select,
.stb2b-sort select {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--st-border);
    border-radius: 12px;
    outline: 0;
    background: #fff;
    color: #425477;
    font-size: 13px;
}

.stb2b-sort {
    display: flex;
    align-items: center;
    gap: 9px;
}

.stb2b-sort > span {
    flex: 0 0 auto;
    color: #7d89a4;
    font-size: 12px;
}

.stb2b-toolbar__submit {
    min-height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: 12px;
    color: #fff;
    background: var(--st-blue);
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}

.stb2b-results {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 0 14px;
    color: #8793ac;
    font-size: 12px;
}

.stb2b-results strong { color: #536383; }

.stb2b-results strong::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 13px;
    margin-left: 10px;
    vertical-align: middle;
    background: #d2d9e7;
}

/* CARDS */

.stb2b-services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.stb2b-service {
    position: relative;
    min-width: 0;
    min-height: 338px;
    display: flex;
    flex-direction: column;
    padding: 21px;
    overflow: hidden;
    border: 1px solid #e0e6f0;
    border-radius: 16px;
    background: linear-gradient(145deg, #fff 0%, #fff 72%, #fafbfe 100%);
    box-shadow: 0 8px 25px rgba(21, 50, 104, .045);
    transition: .25s ease;
}

.stb2b-service::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    opacity: 0;
    background: linear-gradient(90deg, #17418d, #3369c8, #f2bd2c);
    transition: opacity .25s ease;
}

.stb2b-service:hover {
    transform: translateY(-5px);
    border-color: #cbd7ed;
    box-shadow: 0 18px 45px rgba(21, 50, 104, .11);
}

.stb2b-service:hover::before { opacity: 1; }

.stb2b-service__top {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 15px;
}

.stb2b-service__icon {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2e9f6;
    border-radius: 12px;
    color: #154598;
    background: linear-gradient(135deg, #edf3ff, #f8faff);
}

.stb2b-service__icon .stb2b-svg { font-size: 24px; }

.stb2b-service__category {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    padding: 6px 10px;
    overflow: hidden;
    border-radius: 30px;
    color: #2554ad;
    background: #edf4ff;
    font-size: 11px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stb2b-service h3 {
    margin: 0 0 8px;
    color: #132e68;
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: -.25px;
}

.stb2b-service h3 a { color: inherit; }

.stb2b-service__description {
    min-height: 78px;
    margin: 0 0 18px;
    color: #657493;
    font-size: 13px;
    line-height: 1.58;
}

.stb2b-service__features {
    min-height: 42px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin-top: auto;
    padding-bottom: 16px;
}

.stb2b-service__features > div {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #657492;
    font-size: 10.5px;
    line-height: 1.25;
}

.stb2b-service__features > div > span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

.stb2b-feature-dot {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    color: var(--st-blue);
    background: #f0f5ff;
    font-size: 11px;
    font-weight: 900;
}

.stb2b-service__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 13px;
    padding-top: 13px;
    border-top: 1px solid #e8edf5;
}

.stb2b-service__price {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #697895;
    font-size: 11px;
    line-height: 1.25;
}

.stb2b-service__price strong {
    display: block;
    color: #173c83;
}

.stb2b-service__lock {
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #e79f00;
    background: #fff4cf;
}

.stb2b-service__lock .stb2b-svg { font-size: 16px; }

.stb2b-service__price-value {
    color: #163b83;
    font-size: 17px;
    font-weight: 800;
}

.stb2b-service__price-value del {
    margin-right: 5px;
    color: #9aa6bd;
    font-size: 12px;
}

.stb2b-service__button {
    min-width: 126px;
    min-height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 17px;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(135deg, #15397e, #285bb8);
    font-size: 12px;
    font-weight: 750;
    transition: .2s ease;
}

.stb2b-service__button:hover {
    transform: translateX(2px);
    color: #fff;
    box-shadow: 0 8px 18px rgba(23, 67, 151, .18);
}

/* EMPTY + PAGINATION */

.stb2b-empty {
    padding: 60px 30px;
    text-align: center;
    border: 1px dashed #ccd7e9;
    border-radius: 18px;
    background: #fff;
}

.stb2b-empty__icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 13px;
    border-radius: 15px;
    color: var(--st-blue);
    background: #eef4ff;
}

.stb2b-empty__icon .stb2b-svg { font-size: 26px; }

.stb2b-empty h3 { margin: 0 0 7px; color: var(--st-text); }
.stb2b-empty p { margin: 0; color: var(--st-body); }

.stb2b-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 30px;
}

.stb2b-pagination .page-numbers {
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid var(--st-border);
    border-radius: 10px;
    color: var(--st-blue);
    background: #fff;
    font-size: 12px;
    font-weight: 750;
}

.stb2b-pagination .page-numbers.current {
    color: #fff;
    border-color: var(--st-blue);
    background: var(--st-blue);
}

/* SINGLE PRODUCT */

.stb2b-single__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 34px;
    align-items: start;
}

.stb2b-single__main {
    padding: 36px;
    border: 1px solid #e1e7f0;
    border-radius: 20px;
    background: linear-gradient(145deg, #fff, #fbfcff);
    box-shadow: var(--st-shadow);
}

.stb2b-single__eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.stb2b-single h1 {
    font-size: clamp(38px, 4vw, 58px);
    line-height: 1.02;
}

.stb2b-single__lead {
    max-width: 830px;
    margin: 18px 0 0;
    color: var(--st-body);
    font-size: 17px;
    line-height: 1.7;
}

.stb2b-single__features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
}

.stb2b-single__features > div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    padding: 13px;
    border: 1px solid #e7ebf3;
    border-radius: 12px;
    background: #fbfcff;
}

.stb2b-check {
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #1c4c9e;
    background: #ebf3ff;
    font-size: 12px;
    font-weight: 900;
}

.stb2b-single__features strong,
.stb2b-single__features small { display: block; }

.stb2b-single__features strong {
    color: #1c376d;
    font-size: 12px;
}

.stb2b-single__features small {
    margin-top: 2px;
    color: #7684a0;
    font-size: 11px;
    line-height: 1.35;
}

.stb2b-single__purchase {
    position: sticky;
    top: 95px;
    padding: 24px;
    border: 1px solid #dfe6f1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(20, 53, 110, .11);
}

.stb2b-purchase-lock { text-align: center; }

.stb2b-purchase-lock__icon {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 13px;
    border-radius: 50%;
    color: #a97600;
    background: linear-gradient(135deg, #ffe39a, #fff5cf);
}

.stb2b-purchase-lock__icon .stb2b-svg { font-size: 27px; }

.stb2b-purchase-lock > span,
.stb2b-purchase-lock > strong { display: block; }

.stb2b-purchase-lock > span {
    color: #7e8aa4;
    font-size: 13px;
}

.stb2b-purchase-lock > strong {
    margin-top: 2px;
    color: #173b82;
    font-size: 21px;
}

.stb2b-purchase-lock p {
    margin: 10px 0 18px;
    color: #6d7a97;
    font-size: 12px;
    line-height: 1.55;
}

.stb2b-single__purchase .stb2b-button + .stb2b-button { margin-top: 9px; }

.stb2b-single__price-label {
    color: #7d89a3;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.stb2b-single__price {
    margin: 7px 0 18px;
    color: #173b82;
    font-size: 34px;
    line-height: 1.1;
    font-weight: 850;
}

.stb2b-single__price del {
    margin-right: 8px;
    color: #9aa5bb;
    font-size: 18px;
}

.stb2b-single__cart .quantity input.qty {
    min-height: 44px;
    border: 1px solid var(--st-border);
    border-radius: 10px;
}

.stb2b-single__cart .single_add_to_cart_button {
    min-height: 44px !important;
    border-radius: 10px !important;
    background: linear-gradient(135deg, #15397e, #285bb8) !important;
    font-weight: 750 !important;
}

.stb2b-single__assurance {
    display: grid;
    gap: 10px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e8edf5;
}

.stb2b-single__assurance > div {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--st-blue);
}

.stb2b-single__assurance .stb2b-svg { font-size: 21px; }
.stb2b-single__assurance span { min-width: 0; }
.stb2b-single__assurance strong,
.stb2b-single__assurance small { display: block; }
.stb2b-single__assurance strong { color: #28406d; font-size: 12px; }
.stb2b-single__assurance small { color: #7c88a0; font-size: 10.5px; }

.stb2b-single__content {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 48px;
    margin-top: 38px;
    padding: 34px 0;
    border-top: 1px solid #e5eaf2;
}

.stb2b-single__content-title span,
.stb2b-related__heading span {
    display: block;
    margin-bottom: 5px;
    color: #315ba9;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.stb2b-single__content-title h2,
.stb2b-related__heading h2 {
    margin: 0;
    color: #142d65;
    font-size: 29px;
    line-height: 1.16;
}

.stb2b-single__description {
    color: #566784;
    font-size: 15px;
    line-height: 1.75;
}

.stb2b-single__description > *:first-child { margin-top: 0; }

.stb2b-related {
    margin-top: 26px;
    padding-top: 32px;
    border-top: 1px solid #e5eaf2;
}

.stb2b-related__heading { margin-bottom: 18px; }

.stb2b-inline-lock {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 8px;
    color: #805f09;
    background: #fff3c8;
    font-size: 11px;
    font-weight: 700;
}

/* TABLET */

@media (max-width: 1180px) {
    .stb2b-hero {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .stb2b-hero__benefits { border-left: 0; }
    .stb2b-benefit:first-child { padding-left: 0; }

    .stb2b-toolbar {
        grid-template-columns: 1fr 240px;
    }

    .stb2b-sort,
    .stb2b-toolbar__submit { width: 100%; }

    .stb2b-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .stb2b-single__hero { grid-template-columns: minmax(0, 1fr) 340px; }
}

/* MOBILE */

@media (max-width: 767px) {
    .stb2b-shop__container {
        width: min(100% - 28px, 1420px);
        padding-top: 24px;
        padding-bottom: 50px;
    }

    .stb2b-hero { padding-bottom: 23px; }
    .stb2b-hero h1 { font-size: 38px; letter-spacing: -1.1px; }
    .stb2b-hero__lead { font-size: 17px; }

    .stb2b-hero__benefits {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .stb2b-benefit {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 0;
        border-right: 0;
        border-bottom: 1px solid var(--st-border);
    }

    .stb2b-benefit__icon { margin-bottom: 0; }

    .stb2b-categories {
        margin-right: -14px;
        padding-right: 14px;
    }

    .stb2b-category { min-height: 44px; padding: 0 14px; font-size: 12px; }

    .stb2b-login-notice {
        flex-direction: column;
        align-items: stretch;
    }

    .stb2b-login-notice__actions { display: grid; grid-template-columns: 1fr; }

    .stb2b-toolbar { grid-template-columns: 1fr; }
    .stb2b-sort { justify-content: space-between; }
    .stb2b-sort select { flex: 1; }

    .stb2b-results { align-items: flex-start; }

    .stb2b-services { grid-template-columns: 1fr; }
    .stb2b-service { min-height: auto; }
    .stb2b-service__description { min-height: auto; }

    .stb2b-service__features {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .stb2b-service__features--empty { display: none; }

    .stb2b-service__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .stb2b-service__button { width: 100%; }

    .stb2b-single__hero { grid-template-columns: 1fr; }
    .stb2b-single__main { padding: 24px 20px; }
    .stb2b-single h1 { font-size: 39px; letter-spacing: -1.1px; }
    .stb2b-single__lead { font-size: 15px; }
    .stb2b-single__features { grid-template-columns: 1fr; }
    .stb2b-single__purchase { position: static; }

    .stb2b-single__content {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}
