
/* ==================================================
   IOTS — ADDITIONAL CSS
   Wersja uporządkowana
   ================================================== */

/* ==================================================
   1. ZMIENNE I USTAWIENIA GLOBALNE
   ================================================== */

:root {
    --iots-primary: #1559ed;
    --iots-primary-hover: #4b7ef5;
    --iots-heading-accent: #3487e8;

    --iots-text: #101828;
    --iots-text-body: #444;
    --iots-text-muted: #667085;

    --iots-white: #fff;
    --iots-surface-soft: #f5f7fb;
    --iots-surface-blue: #eff6ff;

    --iots-border: #e5e7eb;
    --iots-border-soft: #e6e9ef;
    --iots-border-blue: #dbeafe;

    --iots-radius-sm: 8px;
    --iots-radius-md: 14px;
    --iots-radius-lg: 16px;
    --iots-radius-pill: 999px;

    --iots-shadow-card: 0 12px 30px rgba(0, 0, 0, 0.08);
    --iots-shadow-soft: 0 8px 24px rgba(0, 0, 0, 0.04);

    --iots-transition: 0.25s ease;
}

body,
.site,
#main-container,
main {
    background-color: var(--iots-white) !important;
}

.site-title,
.site-name {
    display: none !important;
}

/* Sticky header Blocksy */
header.ct-header,
header.ct-header.sticky,
[data-header*="type-1"] .ct-header [data-sticky*="yes"] [data-row*="middle"],
[data-header*="type-1"] .ct-header [data-sticky*="yes"] [data-row*="middle"] > div {
    background: var(--iots-white) !important;
}


/* ==================================================
   2. WSPÓLNE KARTY I PRZYCISKI
   ================================================== */

.iots-related-product-card,
.iots-related-article-card,
.iots-benefit-card,
.katalog-produkt {
    border: 1px solid var(--iots-border) !important;
    border-radius: var(--iots-radius-md);
    transition:
        transform var(--iots-transition),
        box-shadow var(--iots-transition),
        border-color var(--iots-transition);
}

.iots-related-product-card:hover,
.iots-related-article-card:hover,
.iots-benefit-card:hover,
.katalog-produkt:hover {
    transform: translateY(-4px);
    border-color: var(--iots-primary) !important;
    box-shadow: var(--iots-shadow-card);
}

.katalog-button,
.katalog-filtry button,
.iots-product-shop-button,
.iots-cta a,
.ct-button,
.n2-ss-button-container a,
.ff-btn,
.elementor-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--iots-primary) !important;
    color: var(--iots-white) !important;
    border: 1px solid var(--iots-primary) !important;
    border-radius: var(--iots-radius-sm) !important;
    text-decoration: none !important;
    cursor: pointer;
    transition:
        background var(--iots-transition),
        color var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.katalog-button:hover,
.katalog-filtry button:hover,
.iots-product-shop-button:hover,
.iots-cta a:hover,
.ct-button:hover,
.n2-ss-button-container a:hover,
.ff-btn:hover,
.ff-btn:focus,
.elementor-button:hover {
    background: var(--iots-white) !important;
    color: var(--iots-primary) !important;
    border-color: var(--iots-primary) !important;
    transform: translateY(-2px);
}

.ff-btn:hover *,
.ff-btn:focus * {
    color: var(--iots-primary) !important;
}


/* ==================================================
   3. KATALOG PRODUKTÓW
   ================================================== */

.katalog-sortowanie {
    max-width: 1200px;
    margin: 0 auto 25px;
    text-align: right;
}

.katalog-sortowanie select {
    padding: 10px 15px;
    background: var(--iots-white);
    border: 1px solid #ddd;
    border-radius: var(--iots-radius-sm);
}

/* Filtry */
.katalog-filtry {
    max-width: 1200px;
    margin: 0 auto 35px;
    padding: 20px;
    background: #f7f7f7;
    border-radius: 12px;
}

.katalog-filtry form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}

.katalog-filtry input,
.katalog-filtry select {
    height: 45px;
    padding: 0 15px;
    background: var(--iots-white);
    border: 2px solid #d9d9d9 !important;
    border-radius: var(--iots-radius-sm);
    font-size: 15px;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.katalog-filtry input {
    flex: 1;
    min-width: 240px;
}

.katalog-filtry select {
    min-width: 180px;
}

.katalog-filtry input:hover,
.katalog-filtry select:hover {
    border-color: var(--iots-primary) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
}

.katalog-filtry input:focus,
.katalog-filtry select:focus {
    border-color: var(--iots-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(21, 89, 237, 0.18);
}

.katalog-filtry button {
    min-height: 50px;
    padding: 5px 30px;
    font-family: "Nunito", sans-serif;
    font-size: 16px;
    font-weight: 600;
}

/* Siatka */
.katalog-produkty {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

/* Karta produktu */
.katalog-produkt {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: 22px;
    overflow: hidden;
    box-sizing: border-box;
    background: var(--iots-white);
}

.katalog-zdjecie {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 180px;
    margin-bottom: 20px;
    overflow: visible;
}

.katalog-zdjecie img,
.katalog-zdjecie .katalog-lightbox-image {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 70% !important;
    max-height: 150px !important;
    object-fit: contain;
}

.katalog-zdjecie .katalog-lightbox-image {
    position: relative;
    z-index: 1;
    cursor: pointer;
    transition: transform var(--iots-transition);
}

.katalog-zdjecie .katalog-lightbox-image:hover {
    z-index: 10;
    transform: scale(1.35);
}

.katalog-logo-producenta {
    max-width: 80%;
    max-height: 180px;
    object-fit: contain;
}

.katalog-zdjecie .katalog-logo-producenta {
    width: auto !important;
    height: auto !important;
    max-width: 70% !important;
    max-height: 120px !important;
}

.katalog-nazwa {
    display: flex;
    align-items: flex-start;
    min-height: 55px;
    margin: 0 0 15px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
}

.katalog-producent,
.katalog-kategoria,
.katalog-sku {
    font-size: 14px;
    line-height: 1.5;
}

.katalog-producent,
.katalog-kategoria {
    margin-bottom: 10px;
}

.katalog-sku {
    margin-bottom: 15px;
}

.katalog-opis {
    flex-grow: 1;
    margin-bottom: 20px;
    color: #555;
    font-size: 14px;
    line-height: 1.5;
}

.katalog-button {
    min-height: 50px;
    margin-top: auto;
    padding: 5px 30px;
    font-family: "Nunito", sans-serif;
    font-size: 16px;
    font-weight: 600;
}

/* Paginacja */
.katalog-pagination {
    max-width: 1200px;
    margin: 50px auto;
    text-align: center;
}

.katalog-pagination a,
.katalog-pagination span {
    display: inline-block;
    margin: 0 5px;
    padding: 8px 12px;
    border-radius: 5px;
}

/* Etykiety */
.iot-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 8px 16px;
    background: var(--iots-white);
    border: 1px solid #4883c4;
    border-radius: var(--iots-radius-pill);
    color: var(--iots-primary);
    font-family: "Roboto Mono", monospace;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .katalog-produkty {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .katalog-filtry form {
        flex-direction: column;
        align-items: stretch;
    }

    .katalog-filtry input,
    .katalog-filtry select,
    .katalog-filtry button {
        width: 100%;
        height: 30px;
        min-height: 30px;
    }
}

@media (max-width: 600px) {
    .katalog-produkty {
        grid-template-columns: 1fr;
    }

    .katalog-produkt {
        padding: 18px;
    }

    .katalog-zdjecie {
        height: 200px;
    }
}


/* ==================================================
   4. KATALOG ROZWIĄZAŃ
   ================================================== */

.post-type-archive-iots_solution,
.post-type-archive-iots_solution main,
.post-type-archive-iots_solution .site-main {
    background: var(--iots-white) !important;
}

.solutions-grid,
.solution-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

.solution-card {
    display: flex !important;
    flex-direction: column !important;
    width: auto;
    min-height: 100%;
    padding: 24px !important;
    background: var(--iots-white) !important;
    border: 1px solid var(--iots-border) !important;
    border-radius: var(--iots-radius-lg) !important;
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity var(--iots-transition),
        transform var(--iots-transition),
        box-shadow var(--iots-transition),
        border-color var(--iots-transition);
}

.solution-card:hover {
    transform: translateY(-4px);
    border-color: var(--iots-primary) !important;
    box-shadow: var(--iots-shadow-card);
}

/*
 * Naprawa filtrowania:
 * samo opacity nie usuwało kafelka z CSS Grid, dlatego pozostawała po nim luka.
 */
.solution-card.solution-hidden {
    display: none !important;
}

/* Obraz / placeholder */
.solution-image,
.post-type-archive-iots_solution .ct-media-container,
.solution-card .ct-media-container {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 330px !important;
    max-width: 100% !important;
    height: 90px !important;
    margin: 0 auto 12px !important;
    overflow: hidden;
    background: var(--iots-surface-soft) !important;
    border: 1px solid var(--iots-border-soft) !important;
    border-radius: var(--iots-radius-md) !important;
}

.solution-placeholder-image {
    width: 100%;
    aspect-ratio: 4 / 3;
}

.solution-image img,
.post-type-archive-iots_solution .ct-media-container img,
.solution-card .ct-media-container img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 85% !important;
    max-height: 90px !important;
    object-fit: contain !important;
}

.solution-category,
.post-type-archive-iots_solution .meta-categories {
    min-height: 18px;
    margin-top: 0 !important;
    margin-bottom: 4px !important;
}

.solution-category,
.post-type-archive-iots_solution .meta-categories a,
.iots_solution .meta-categories a {
    color: var(--iots-primary) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.solution-content h3,
.post-type-archive-iots_solution .entry-title {
    min-height: 50px;
    margin: 0 0 12px !important;
    color: var(--iots-text) !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
}

.solution-content p,
.post-type-archive-iots_solution .entry-excerpt,
.iots_solution .entry-excerpt {
    color: var(--iots-text-muted) !important;
    font-size: 14px !important;
    line-height: 1.6;
}

.solution-content p {
    flex-grow: 1;
    margin-bottom: 20px;
}

.solution-content a {
    margin-top: auto;
    color: var(--iots-primary) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 0.2s ease;
}

.solution-content a:hover,
.solution-card:hover .solution-content a {
    color: var(--iots-primary-hover) !important;
    text-decoration: none;
}

/* Karty archiwum Blocksy */
.post-type-archive-iots_solution .entry-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 22px !important;
    background: var(--iots-white) !important;
    border: 1px solid var(--iots-border) !important;
    border-radius: var(--iots-radius-md) !important;
    transition:
        transform var(--iots-transition),
        box-shadow var(--iots-transition),
        border-color var(--iots-transition);
}

.post-type-archive-iots_solution .entry-card:hover {
    transform: translateY(-4px);
    border-color: var(--iots-primary) !important;
    box-shadow: var(--iots-shadow-card);
}

.post-type-archive-iots_solution .meta-author,
.post-type-archive-iots_solution .meta-date {
    display: none !important;
}

.post-type-archive-iots_solution .entry-title a {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--iots-text) !important;
    font-weight: 600;
    text-decoration: none;
}

.iots_solution .entry-title a {
    color: var(--iots-text) !important;
    font-weight: 600;
    text-decoration: none;
}

.iots_solution .entry-title a:hover {
    color: var(--iots-primary) !important;
}

.post-type-archive-iots_solution .entry-excerpt {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-height: 120px;
}

.post-type-archive-iots_solution .entry-excerpt::after {
    content: "Zobacz więcej →";
    display: block;
    margin-top: auto;
    color: var(--iots-primary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: color 0.2s ease;
}

.post-type-archive-iots_solution .entry-card:hover .entry-excerpt::after {
    color: var(--iots-primary-hover) !important;
}

.post-type-archive-iots_solution .page-title,
.post-type-archive-iots_solution .hero-title {
    display: none !important;
}

/* Pasek kategorii */
.solutions-filter {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    max-width: none !important;
    margin: 40px 0 !important;
    padding: 28px 0;
    gap: 12px;
    background: transparent !important;
}

.solutions-filter::before,
.solutions-filter::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 100vw;
    height: 1px;
    transform: translateX(-50%);
    background: var(--iots-border);
}

.solutions-filter::before {
    top: 0;
}

.solutions-filter::after {
    bottom: 0;
}

.solution-filter {
    appearance: none;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 8px 20px !important;
    background: var(--iots-white) !important;
    border: 1px solid #d9e2ec !important;
    border-radius: var(--iots-radius-pill) !important;
    color: #344054 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer;
    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.solution-filter:hover {
    background: #f5f8ff !important;
    border-color: var(--iots-primary) !important;
    color: var(--iots-primary) !important;
}

.solution-filter.active {
    background: var(--iots-primary) !important;
    border-color: var(--iots-primary) !important;
    color: var(--iots-white) !important;
}

/* Hero katalogu */
.solutions-hero-title h2 {
    max-width: 900px;
    font-size: 48px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.03em;
}

.solutions-hero-description {
    max-width: 800px;
}

.solutions-hero-description p {
    color: var(--iots-text-muted);
    font-size: 18px !important;
    line-height: 1.7 !important;
}

/* Powiązane rozwiązania */
.related-solutions {
    margin-top: 60px;
}

.related-solutions .solutions-grid {
    margin-top: 25px;
}

/* Zachowuje dotychczasowy wariant sekcji powiązanych bez obrazka. */
.related-solutions .solution-image {
    display: none !important;
}

@media (max-width: 1000px) {
    .solutions-grid,
    .solution-grid,
    .post-type-archive-iots_solution .entries {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .solutions-grid,
    .solution-grid,
    .post-type-archive-iots_solution .entries {
        grid-template-columns: 1fr !important;
    }
}


/* ==================================================
   5. POJEDYNCZE ROZWIĄZANIE I WSPÓLNE SEKCJE
   ================================================== */

.single-iots_solution,
.single-iots_solution main,
.single-iots_solution .site-main {
    background: var(--iots-white) !important;
}

.iots-solution-page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 70px 32px;
}

/* Hero */
.iots-hero {
    max-width: 1120px;
    margin: 0 auto 40px;
    padding: 40px 55px;
    overflow: hidden;
    background: var(--iots-white);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 18px;
    box-shadow: var(--iots-shadow-soft);
}

.single-iots_solution .iots-hero {
    padding: 50px;
    border: 2px solid var(--iots-border-blue);
    border-radius: var(--iots-radius-lg);
}

.iots-hero h1 {
    margin-bottom: 20px;
    color: #111;
    font-size: 42px;
    line-height: 1.15;
}

.iots-hero p {
    max-width: 720px;
    color: #555;
    font-size: 18px;
    line-height: 1.7;
}

.iots-hero-intro {
    margin-top: 22px;
    color: #555;
    font-size: 17px;
    line-height: 1.8;
}

.iots-hero-intro p {
    margin-bottom: 18px;
}

.iots-hero-intro ul {
    margin: 20px 0;
    padding-left: 22px;
}

.iots-hero-intro li {
    margin-bottom: 10px;
}

.iots-hero-image {
    display: flex;
    justify-content: center;
}

.iots-hero-image img {
    width: 60%;
    max-width: 100%;
    height: auto;
    border-radius: var(--iots-radius-lg);
}

.single-iots_solution .iots-hero-image img {
    border-radius: var(--iots-radius-md);
}

/* Sekcje treści */
.iots-article-page,
.iots-solution-page {
    counter-reset: iots-section;
}

.iots-section {
    margin-bottom: 60px;
    padding: 40px;
    background: var(--iots-white);
    border: 1px solid #e5e5e5;
    border-radius: var(--iots-radius-lg);
}

.single-iots_solution .iots-section,
.single-iots_solution .iots-cta {
    border: 2px solid var(--iots-border-blue);
}

.iots-section h2 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 20px;
    color: #111;
    font-size: 30px;
    text-align: left;
}

.iots-section h2::before {
    counter-increment: iots-section;
    content: counter(iots-section, decimal-leading-zero);
    color: var(--iots-primary);
    font-family: "Roboto Mono", monospace;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.iots-section p {
    color: var(--iots-text-body);
    font-size: 16px;
    line-height: 1.7;
}

.iots-section-content img {
    height: auto;
    border-radius: 12px;
}

.iots-problem-box {
    padding-left: 25px;
    background: var(--iots-white);
    border-left: 4px solid #0066cc;
}

/* Kategoria na pojedynczej stronie */
.iots-solution-category {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-bottom: 18px;
    padding: 8px 16px;
    background: var(--iots-white);
    border: 1px solid #4883c4;
    border-radius: var(--iots-radius-pill);
    color: var(--iots-primary);
    font-family: "Roboto Mono", monospace;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

/* Korzyści */
.iots-benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.iots-benefit-card {
    padding: 30px;
    background: var(--iots-white);
}

.iots-benefit-card h3 {
    margin: 0 0 15px;
    color: #111;
    font-size: 22px;
}

.iots-benefit-card p {
    margin: 0;
    color: #555;
    line-height: 1.6;
}

/* Specyfikacja */
.iots-spec-table {
    max-width: 900px;
    overflow: hidden;
    border: 1px solid #e5e5e5;
    border-radius: var(--iots-radius-md);
}

.iots-spec-row {
    display: grid;
    grid-template-columns: 40% 60%;
    border-bottom: 1px solid #e5e5e5;
}

.iots-spec-row:last-child {
    border-bottom: none;
}

.iots-spec-name,
.iots-spec-value {
    padding: 18px 22px;
}

.iots-spec-name {
    background: var(--iots-surface-blue);
    font-weight: 600;
}

/* CTA */
.iots-cta {
    margin-top: 70px;
    padding: 40px;
    background: var(--iots-white);
    border: 1px solid #e6e6e6;
    border-radius: var(--iots-radius-lg);
    text-align: center;
}

.iots-cta h2 {
    margin-bottom: 15px;
    color: #111;
    font-size: 28px;
}

.iots-cta p {
    margin-bottom: 25px;
    color: var(--iots-text-body);
}

.iots-cta a {
    padding: 14px 30px;
    font-weight: 600;
}

/* FAQ */
.iots-faq-item {
    margin-bottom: 10px;
    overflow: hidden;
    background: var(--iots-white);
    border: 1px solid var(--iots-border);
    border-radius: 12px;
    transition:
        border-color var(--iots-transition),
        box-shadow var(--iots-transition);
}

.iots-faq-item:hover {
    border-color: var(--iots-primary);
}

.iots-faq-item.active {
    border-color: var(--iots-primary);
    box-shadow: 0 8px 20px rgba(21, 89, 237, 0.12);
}

.iots-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 22px;
    background: var(--iots-white);
    border: 0;
    font-size: 18px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.iots-faq-question span {
    font-size: 26px;
    transition: transform 0.2s ease;
}

.iots-faq-answer {
    display: none;
    padding: 0 22px 20px;
    line-height: 1.7;
}

.iots-faq-item.active .iots-faq-answer {
    display: block;
}

.iots-faq-item.active .iots-faq-question span {
    transform: rotate(45deg);
}

/* Lightbox */
#iots-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999999;
    display: none;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.85);
}

#iots-lightbox.active {
    display: flex;
}

#iots-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
}

#iots-lightbox-close {
    position: absolute;
    top: 25px;
    right: 35px;
    padding: 0;
    background: none;
    border: 0;
    color: var(--iots-white);
    font-size: 50px;
    line-height: 1;
    cursor: pointer;
}

#iots-lightbox-close:hover {
    color: #ffc800;
}

/* Ukrycie domyślnych elementów Blocksy */
.single-iots_solution .entry-meta,
.single-iots_solution .post-meta,
.single-iots_solution .author,
.single-iots_solution .posted-on,
.single-iots_solution .page-title {
    display: none !important;
}

@media (max-width: 900px) {
    .iots-hero {
        grid-template-columns: 1fr;
    }

    .iots-benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .iots-solution-page {
        padding: 40px 20px;
    }

    .iots-hero {
        padding: 30px 25px;
    }

    .single-iots_solution .iots-hero {
        padding: 30px 25px;
    }

    .iots-hero h1 {
        font-size: 32px;
    }

    .iots-benefits-grid,
    .iots-spec-row {
        grid-template-columns: 1fr;
    }

    .iots-section,
    .iots-cta {
        padding: 25px;
    }
}


/* ==================================================
   6. BLOG I ARCHIWA ARTYKUŁÓW
   ================================================== */

/*
 * Selektory są zawężone do bloga i archiwów artykułów.
 * Nie nadpisują już automatycznie każdego archiwum CPT.
 */
body.blog .entry-card,
body.category .entry-card,
body.tag .entry-card,
body.author .entry-card,
body.date .entry-card,
.post-type-archive-iots_article .entry-card,
.post.type-post.entry-card {
    display: flex !important;
    flex-direction: column !important;
    padding: 24px !important;
    background: var(--iots-white) !important;
    border: 1px solid var(--iots-border) !important;
    border-radius: var(--iots-radius-lg) !important;
    transition:
        transform var(--iots-transition),
        box-shadow var(--iots-transition),
        border-color var(--iots-transition);
}

body.blog .entry-card:hover,
body.category .entry-card:hover,
body.tag .entry-card:hover,
body.author .entry-card:hover,
body.date .entry-card:hover,
.post-type-archive-iots_article .entry-card:hover,
.post.type-post.entry-card:hover {
    transform: translateY(-4px);
    border-color: var(--iots-primary) !important;
    box-shadow: var(--iots-shadow-card);
}

body.blog .ct-media-container,
body.category .ct-media-container,
body.tag .ct-media-container,
body.author .ct-media-container,
body.date .ct-media-container,
.post-type-archive-iots_article .ct-media-container {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    height: 180px !important;
    margin: 0 0 20px !important;
    overflow: hidden;
    background: var(--iots-surface-soft) !important;
    border: 1px solid var(--iots-border-soft) !important;
    border-radius: var(--iots-radius-md) !important;
}

body.blog .ct-media-container img,
body.category .ct-media-container img,
body.tag .ct-media-container img,
body.author .ct-media-container img,
body.date .ct-media-container img,
.post-type-archive-iots_article .ct-media-container img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

body.blog .entry-title,
body.category .entry-title,
body.tag .entry-title,
body.author .entry-title,
body.date .entry-title,
.post-type-archive-iots_article .entry-title {
    order: 2;
    margin: 0 0 12px !important;
    font-size: 17px !important;
    line-height: 1.35 !important;
}

body.blog .entry-title a,
body.category .entry-title a,
body.tag .entry-title a,
body.author .entry-title a,
body.date .entry-title a {
    color: var(--iots-text) !important;
    font-weight: 600;
    text-decoration: none;
}

.post-type-archive-iots_article .entry-title a {
    color: var(--iots-heading-accent) !important;
    font-weight: 600;
    text-decoration: none;
}

body.blog .entry-title a:hover,
body.category .entry-title a:hover,
body.tag .entry-title a:hover,
body.author .entry-title a:hover,
body.date .entry-title a:hover,
.post-type-archive-iots_article .entry-title a:hover {
    color: var(--iots-primary) !important;
}

body.blog .entry-excerpt,
body.category .entry-excerpt,
body.tag .entry-excerpt,
body.author .entry-excerpt,
body.date .entry-excerpt,
.post-type-archive-iots_article .entry-excerpt {
    order: 3;
    flex-grow: 1;
    margin-bottom: 20px;
    color: var(--iots-text-muted) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

body.blog .entry-meta,
body.category .entry-meta,
body.tag .entry-meta,
body.author .entry-meta,
body.date .entry-meta,
.post-type-archive-iots_article .entry-meta,
.post-type-archive-post .entry-meta,
body.blog .entry-divider,
body.category .entry-divider,
body.tag .entry-divider,
body.author .entry-divider,
body.date .entry-divider,
.post-type-archive-iots_article .entry-divider {
    display: none !important;
}

@media (max-width: 700px) {
    body.blog .entry-card,
    body.category .entry-card,
    body.tag .entry-card,
    body.author .entry-card,
    body.date .entry-card,
    .post-type-archive-iots_article .entry-card,
    .post.type-post.entry-card {
        padding: 18px !important;
    }

    body.blog .ct-media-container,
    body.category .ct-media-container,
    body.tag .ct-media-container,
    body.author .ct-media-container,
    body.date .ct-media-container,
    .post-type-archive-iots_article .ct-media-container {
        height: 160px !important;
    }
}


/* ==================================================
   7. POJEDYNCZY ARTYKUŁ
   ================================================== */

.iots-article-page + .entry-header,
.iots-article-page .entry-header,
.single-iots_article .entry-header,
.single-iots_article .entry-meta,
.single-iots_article .author,
.single-iots_article .posted-by,
.single-iots_article .entry-author,
.single-iots_article .meta-author,
.single-iots_article .meta-date {
    display: none;
}

.single-iots_article .iots-hero-text {
    padding: 40px;
    background: var(--iots-white);
    border: none !important;
    border-radius: var(--iots-radius-lg);
    box-shadow: none !important;
    transition: var(--iots-transition);
}

.single-iots_article .iots-solution-category {
    margin-bottom: 16px;
}

.single-iots_article .iots-hero-text h1 {
    margin: 0;
}

/* Galeria */
.article-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.article-gallery-card {
    overflow: hidden;
    border-radius: var(--iots-radius-lg);
}

.article-gallery-image {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    border: 1px solid var(--iots-border);
    border-radius: var(--iots-radius-lg);
    cursor: pointer;
    transition:
        transform var(--iots-transition),
        box-shadow var(--iots-transition),
        border-color var(--iots-transition);
}

.article-gallery-image:hover {
    transform: translateY(-4px);
    border-color: var(--iots-primary);
    box-shadow: var(--iots-shadow-card);
}

.article-gallery-card img {
    transition: transform 0.3s ease;
}

.article-gallery-card:hover img {
    transform: scale(1.04);
}

/* Powiązane produkty i artykuły */
.iots-related-products,
.iots-related-articles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.iots-related-product-card,
.iots-related-article-card {
    display: block;
    overflow: hidden;
    padding: 14px;
    background: var(--iots-white);
    color: inherit;
    text-decoration: none;
}

.iots-related-product-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.iots-related-product-image,
.iots-related-article-image {
    overflow: hidden;
}

.iots-related-product-image {
    aspect-ratio: 1 / 1;
}

.iots-related-article-image {
    aspect-ratio: 4 / 3;
}

.iots-related-product-image img,
.iots-related-article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iots-related-product-card h3,
.iots-related-article-card h3 {
    margin: 0;
    padding: 12px 14px;
    font-size: 16px;
    line-height: 1.3;
}

.iots-product-shop-button {
    margin: 8px 14px 14px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
}

/* Kolory nagłówków na pojedynczych stronach */
.single-iots_article h2,
.single-iots_article h4,
.single-iots_solution h2,
.single-iots_solution h4,
.single-iots_solution h5 {
    color: var(--iots-heading-accent) !important;
}

@media (max-width: 1000px) {
    .iots-related-products,
    .iots-related-articles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .article-gallery {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {
    .iots-related-products,
    .iots-related-articles,
    .article-gallery {
        grid-template-columns: 1fr;
    }

    .single-iots_article .iots-hero-text {
        padding: 25px;
    }
}


/* ==================================================
   SOLUTIONS CATALOG - EMPTY STATE + PLACEHOLDER
================================================== */

/* Dodaj na końcu uporządkowanego Additional CSS. */

.iots-catalog-empty {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
    padding: 36px 24px;
    border: 1px solid var(--iots-border, #e5e7eb);
    border-radius: 14px;
    background: #fff;
    color: var(--iots-text-muted, #667085);
    text-align: center;
}

.iots-catalog-empty[hidden] {
    display: none !important;
}

.solution-placeholder-image {
    width: 100%;
    height: 100%;
    background: #f5f7fb;
}

/* ==========================================================
   IOTS MASTER CSS v1
   Fundament komponentów + pierwsza migracja: katalog Rozwiązania
   ========================================================== */

/* ----------------------------------------------------------
   01. DESIGN TOKENS
   ---------------------------------------------------------- */
:root {
    --iots-color-white: #ffffff;
    --iots-color-background: #ffffff;
    --iots-color-surface: #f8faff;
    --iots-color-surface-blue: #eff6ff;

    --iots-color-blue: #1559ed;
    --iots-color-blue-hover: #0f46c5;
    --iots-color-blue-soft: #dbeafe;

    --iots-color-text: #101828;
    --iots-color-text-body: #475467;
    --iots-color-text-muted: #667085;
    --iots-color-border: #e4eaf2;

    --iots-container: 1120px;
    --iots-gutter: 24px;

    --iots-radius-sm: 8px;
    --iots-radius-md: 12px;
    --iots-radius-lg: 14px;
    --iots-radius-pill: 999px;

    --iots-shadow-card: 0 14px 34px rgba(16, 24, 40, 0.09);
    --iots-shadow-focus: 0 0 0 4px rgba(21, 89, 237, 0.16);
    --iots-transition: 180ms ease;
}

/* Aliasy zgodności ze starszym arkuszem. */
:root {
    --iots-primary: var(--iots-color-blue);
    --iots-primary-hover: var(--iots-color-blue-hover);
    --iots-text: var(--iots-color-text);
    --iots-text-body: var(--iots-color-text-body);
    --iots-text-muted: var(--iots-color-text-muted);
    --iots-white: var(--iots-color-white);
    --iots-surface-soft: var(--iots-color-surface);
    --iots-surface-blue: var(--iots-color-surface-blue);
    --iots-border: var(--iots-color-border);
    --iots-border-blue: var(--iots-color-blue-soft);
}

/* ----------------------------------------------------------
   02. CONTAINER AND GRID
   ---------------------------------------------------------- */
.iots-container,
.iots-catalog {
    width: min(100% - (2 * var(--iots-gutter)), var(--iots-container));
    margin-inline: auto;
}

.iots-grid {
    display: grid;
    gap: 24px;
}

.iots-grid--catalog {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ----------------------------------------------------------
   03. DIGITAL LABEL
   ---------------------------------------------------------- */
.iots-tag {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    width: fit-content;
    min-height: 24px;
    padding: 4px 9px;
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-pill);
    font-family: "JetBrains Mono", "Roboto Mono", monospace;
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

/* ----------------------------------------------------------
   04. BASE CARD
   ---------------------------------------------------------- */
.iots-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-lg);
    transition:
        transform var(--iots-transition),
        border-color var(--iots-transition),
        box-shadow var(--iots-transition);
}

.iots-card:hover {
    transform: translateY(-4px);
    border-color: var(--iots-color-blue);
    box-shadow: var(--iots-shadow-card);
}

.iots-card:focus-within {
    border-color: var(--iots-color-blue);
    box-shadow: var(--iots-shadow-focus);
}

.iots-card__media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100px;
    overflow: hidden;
    background: var(--iots-color-surface);
    border: 0;
    border-bottom: 1px solid var(--iots-color-border);
    border-radius: 0;
    text-decoration: none;
}

.iots-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px 14px;
    transition: transform var(--iots-transition);
}

.iots-card:hover .iots-card__image {
    transform: scale(1.025);
}

.iots-card__placeholder {
    display: block;
    aspect-ratio: auto !important;
    width: 100%;
    height: 100%;
    background:
        linear-gradient(135deg, rgba(21, 89, 237, 0.08), rgba(21, 89, 237, 0)),
        var(--iots-color-surface);
}

.iots-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
}

.iots-card__label {
    margin: 0 0 10px !important;
}

.iots-card__title {
    min-height: 44px;
    margin: 0 0 10px !important;
    color: var(--iots-color-text) !important;
    font-size: 16px !important;
    font-weight: 700;
    line-height: 1.35 !important;
    letter-spacing: -0.01em;
}

.iots-card__title a {
    display: inline;
    margin: 0 !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-decoration: none !important;
    text-transform: none !important;
}

.iots-card__title a:hover {
    color: var(--iots-color-blue) !important;
}

.iots-card__description {
    flex: 1 1 auto;
    margin: 0 0 18px !important;
    color: var(--iots-color-text-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.58 !important;
}

.iots-card__link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 5px;
    margin-top: auto;
    color: var(--iots-color-blue) !important;
    font-family: "JetBrains Mono", "Roboto Mono", monospace;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.3;
    letter-spacing: 0.055em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.iots-card__link:hover {
    color: var(--iots-color-blue-hover) !important;
}

/* ----------------------------------------------------------
   05. FILTER
   ---------------------------------------------------------- */
.iots-filter {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    margin: 0 0 34px !important;
    padding: 0 !important;
    background: transparent !important;
}

.iots-filter::before,
.iots-filter::after {
    content: none !important;
}

.iots-filter__button {
    appearance: none;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 14px !important;
    background: var(--iots-color-white) !important;
    border: 1px solid var(--iots-color-blue-soft) !important;
    border-radius: var(--iots-radius-pill) !important;
    color: #344054 !important;
    font-family: "JetBrains Mono", "Roboto Mono", monospace;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.025em;
    cursor: pointer;
    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.iots-filter__button:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-surface-blue) !important;
    border-color: var(--iots-color-blue) !important;
    transform: translateY(-1px);
}

.iots-filter__button:focus-visible {
    outline: none;
    border-color: var(--iots-color-blue) !important;
    box-shadow: var(--iots-shadow-focus);
}

.iots-filter__button.active,
.iots-filter__button.iots-is-active,
.iots-filter__button[aria-pressed="true"] {
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue) !important;
    border-color: var(--iots-color-blue) !important;
}

/* ----------------------------------------------------------
   06. CATALOG EMPTY STATE
   ---------------------------------------------------------- */
.iots-catalog__empty {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
    padding: 32px 24px;
    color: var(--iots-color-text-muted);
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-lg);
    text-align: center;
}

.iots-catalog__empty[hidden],
.iots-is-hidden {
    display: none !important;
}

/* ----------------------------------------------------------
   07. FIRST MIGRATION — SOLUTIONS CATALOG
   These selectors intentionally override legacy .solution-* styles.
   ---------------------------------------------------------- */
.iots-solutions-catalog-page .elementor-widget-shortcode,
.iots-solutions-catalog-page .elementor-widget-shortcode > .elementor-widget-container {
    width: 100%;
    max-width: none;
    overflow: visible;
}

.iots-solutions-catalog-page .iots-catalog--solutions {
    position: relative;
    left: 50%;
    width: min(calc(100vw - 40px), var(--iots-container)) !important;
    max-width: none !important;
    margin: 0 !important;
    transform: translateX(-50%);
}

.iots-catalog--solutions .solutions-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

.iots-catalog--solutions .solution-card.iots-card {
    display: flex !important;
    width: auto !important;
    min-height: 100%;
    padding: 0 !important;
    border-radius: var(--iots-radius-lg) !important;
}

.iots-catalog--solutions .solution-image.iots-card__media {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    height: 100px !important;
    margin: 0 !important;
    background: var(--iots-color-surface) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--iots-color-border) !important;
    border-radius: 0 !important;
}

.iots-catalog--solutions .solution-image .iots-card__image {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
}

.iots-catalog--solutions .solution-content.iots-card__body {
    padding: 20px !important;
}

.iots-catalog--solutions .solution-category.iots-tag {
    min-height: 24px;
    margin: 0 0 10px !important;
    font-size: 10px !important;
}

.iots-catalog--solutions .solution-content .iots-card__title {
    min-height: 44px;
    margin: 0 0 10px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
}

.iots-catalog--solutions .solution-content .iots-card__description {
    margin: 0 0 18px !important;
    font-size: 13.5px !important;
    line-height: 1.58 !important;
}

.iots-catalog--solutions .solution-content .iots-card__link {
    margin-top: auto;
    font-size: 11px !important;
}

.iots-catalog--solutions .solutions-filter.iots-filter {
    justify-content: flex-start;
    margin: 0 0 34px !important;
    padding: 0 !important;
}

/* ----------------------------------------------------------
   08. RESPONSIVE
   ---------------------------------------------------------- */
@media (max-width: 1000px) {
    .iots-grid--catalog,
    .iots-catalog--solutions .solutions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    :root {
        --iots-gutter: 16px;
    }

    .iots-solutions-catalog-page .iots-catalog--solutions {
        width: min(calc(100vw - 28px), var(--iots-container)) !important;
    }

    .iots-grid--catalog,
    .iots-catalog--solutions .solutions-grid {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .iots-filter {
        gap: 8px;
        margin-bottom: 26px !important;
    }

    .iots-filter__button {
        min-height: 32px;
        padding: 7px 12px !important;
        font-size: 10.5px !important;
    }

    .iots-card__media,
    .iots-catalog--solutions .solution-image.iots-card__media {
        height: 112px !important;
    }

    .iots-card__title,
    .iots-catalog--solutions .solution-content .iots-card__title {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .iots-card,
    .iots-card__image,
    .iots-filter__button {
        transition: none !important;
    }

    .iots-card:hover,
    .iots-filter__button:hover {
        transform: none;
    }
}

/* ----------------------------------------------------------
   09. SECOND MIGRATION — ARTICLES CATALOG
   ---------------------------------------------------------- */

/*
 * Blog korzysta z tego samego kontenera, filtra, siatki i karty
 * co katalog Rozwiązania. Różnice ograniczają się do wariantu
 * zdjęcia, nieco mniejszego tytułu i odnośnika.
 */
.iots-blog-catalog-page .elementor-widget-shortcode,
.iots-blog-catalog-page .elementor-widget-shortcode > .elementor-widget-container {
    width: 100%;
    max-width: none;
    overflow: visible;
}

.iots-blog-catalog-page .iots-catalog--articles {
    position: relative;
    left: 50%;
    width: min(calc(100vw - 40px), var(--iots-container)) !important;
    max-width: none !important;
    margin: 0 !important;
    transform: translateX(-50%);
}

.iots-catalog--articles .iots-grid--catalog,
.iots-catalog--articles .articles-grid,
.iots-catalog--articles .solutions-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
}

.iots-catalog--articles .iots-card--article {
    display: flex !important;
    width: auto !important;
    min-height: 100%;
    padding: 0 !important;
    border-radius: var(--iots-radius-lg) !important;
}

.iots-catalog--articles .iots-card__media {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    height: 100px !important;
    margin: 0 !important;
    background: var(--iots-color-surface) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--iots-color-border) !important;
    border-radius: 0 !important;
}

.iots-catalog--articles .iots-card__image {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    object-fit: cover !important;
}

.iots-catalog--articles .iots-card__body {
    padding: 20px !important;
}

.iots-catalog--articles .iots-card__label {
    min-height: 24px;
    margin: 0 0 10px !important;
    font-size: 10px !important;
}

.iots-catalog--articles .iots-card__title {
    min-height: 41px;
    margin: 0 0 10px !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
}

.iots-catalog--articles .iots-card__description {
    margin: 0 0 18px !important;
    font-size: 13px !important;
    line-height: 1.58 !important;
}

.iots-catalog--articles .iots-card__link {
    margin-top: auto;
    font-size: 10.5px !important;
    letter-spacing: 0.055em !important;
}

.iots-catalog--articles .iots-filter {
    justify-content: flex-start;
    margin: 0 0 34px !important;
    padding: 0 !important;
}

/*
 * Usunięcie popularnych widgetów udostępniania tylko na stronie
 * katalogu Blog. Nie obejmuje zwykłych profili społecznościowych
 * w nagłówku i stopce.
 */
.iots-blog-catalog-page .ct-share-box,
.iots-blog-catalog-page .elementor-widget-share-buttons,
.iots-blog-catalog-page .elementor-share-buttons-wrapper,
.iots-blog-catalog-page .addtoany_share_save_container,
.iots-blog-catalog-page .heateor_sss_sharing_container,
.iots-blog-catalog-page .sharedaddy,
.iots-blog-catalog-page .sd-sharing,
.iots-blog-catalog-page .wp-block-jetpack-sharing-buttons,
.iots-blog-catalog-page .essb_links,
.iots-blog-catalog-page .sassy-social-share,
.iots-blog-catalog-page .post-share,
.iots-blog-catalog-page .post-sharing,
.iots-blog-catalog-page .social-share-buttons {
    display: none !important;
}

@media (max-width: 1000px) {
    .iots-catalog--articles .iots-grid--catalog,
    .iots-catalog--articles .articles-grid,
    .iots-catalog--articles .solutions-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .iots-blog-catalog-page .iots-catalog--articles {
        width: min(calc(100vw - 28px), var(--iots-container)) !important;
    }

    .iots-catalog--articles .iots-grid--catalog,
    .iots-catalog--articles .articles-grid,
    .iots-catalog--articles .solutions-grid {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .iots-catalog--articles .iots-card__media {
        height: 130px !important;
    }

    .iots-catalog--articles .iots-card__title {
        min-height: 0;
    }
}

/* ==========================================================
   IOTS MASTER — SINGLE SOLUTION MIGRATION v1
   ========================================================== */

.single-iots_solution .iots-solution-page-v2 {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin: 0 auto;
    padding: 64px 0 84px;
}

.single-iots_solution .iots-solution-hero-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 44px;
    align-items: center;
    margin: 0 0 42px;
    padding: 46px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-iots_solution .iots-solution-hero-v2__text {
    min-width: 0;
}

.single-iots_solution .iots-solution-hero-v2__category {
    margin-bottom: 18px;
}

.single-iots_solution .iots-solution-hero-v2 h1 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.single-iots_solution .iots-solution-hero-v2__excerpt {
    max-width: 680px;
    margin: 22px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 17px;
    line-height: 1.72;
}

.single-iots_solution .iots-solution-hero-v2__media {
    overflow: hidden;
    min-height: 260px;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-iots_solution .iots-solution-hero-v2__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 260px;
    max-height: 380px;
    object-fit: cover;
}

.single-iots_solution .iots-solution-sections-v2 {
    counter-reset: iots-solution-section;
    display: grid;
    gap: 28px;
}

.single-iots_solution .iots-section-v2 {
    margin: 0;
    padding: 36px 38px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-iots_solution .iots-section-v2__title {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 22px;
    color: var(--iots-color-text);
    font-size: clamp(25px, 3vw, 31px);
    line-height: 1.2;
}

.single-iots_solution .iots-section-v2__title::before {
    counter-increment: iots-solution-section;
    content: counter(iots-solution-section, decimal-leading-zero);
    color: var(--iots-color-primary);
    font-family: var(--iots-font-mono);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .1em;
}

.single-iots_solution .iots-section-v2__content {
    color: var(--iots-color-text-body);
    font-size: 16px;
    line-height: 1.75;
}

.single-iots_solution .iots-section-v2__content > :first-child {
    margin-top: 0;
}

.single-iots_solution .iots-section-v2__content > :last-child {
    margin-bottom: 0;
}

.single-iots_solution .iots-section-v2__content p,
.single-iots_solution .iots-section-v2__content li {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.single-iots_solution .iots-section-v2__content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--iots-radius-md);
}

.single-iots_solution .iots-section-v2--problem {
    border-left-width: 5px;
}

.single-iots_solution .iots-benefits-grid-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.single-iots_solution .iots-benefit-card-v2 {
    min-height: 100%;
    padding: 24px;
    border-width: 1px;
    box-shadow: none;
}

.single-iots_solution .iots-benefit-card-v2:hover {
    border-color: var(--iots-color-primary);
    box-shadow: var(--iots-shadow-hover);
    transform: translateY(-3px);
}

.single-iots_solution .iots-benefit-card-v2 h3 {
    margin: 0 0 10px;
    color: var(--iots-color-text);
    font-size: 17px;
    line-height: 1.35;
}

.single-iots_solution .iots-benefit-card-v2__text p {
    margin: 0;
    color: var(--iots-color-text-muted);
    font-size: 13.5px;
    line-height: 1.65;
}

.single-iots_solution .iots-spec-table-v2 {
    overflow: hidden;
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-iots_solution .iots-spec-row-v2 {
    display: grid;
    grid-template-columns: minmax(180px, 38%) 1fr;
    border-bottom: 1px solid var(--iots-color-border);
}

.single-iots_solution .iots-spec-row-v2:last-child {
    border-bottom: 0;
}

.single-iots_solution .iots-spec-row-v2__name,
.single-iots_solution .iots-spec-row-v2__value {
    padding: 16px 20px;
}

.single-iots_solution .iots-spec-row-v2__name {
    background: var(--iots-color-surface);
    color: var(--iots-color-text);
    font-weight: 600;
}

.single-iots_solution .iots-faq-v2 {
    display: grid;
    gap: 10px;
}

.single-iots_solution .iots-faq-entry-v2 {
    overflow: hidden;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
    transition:
        border-color var(--iots-transition),
        box-shadow var(--iots-transition);
}

.single-iots_solution .iots-faq-entry-v2:hover,
.single-iots_solution .iots-faq-entry-v2[open] {
    border-color: var(--iots-color-primary);
    box-shadow: 0 8px 22px rgba(47, 95, 245, .1);
}

.single-iots_solution .iots-faq-entry-v2 summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    color: var(--iots-color-text);
    font-size: 16px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.single-iots_solution .iots-faq-entry-v2 summary::-webkit-details-marker {
    display: none;
}

.single-iots_solution .iots-faq-entry-v2__icon {
    flex: none;
    color: var(--iots-color-primary);
    font-family: var(--iots-font-mono);
    font-size: 22px;
    line-height: 1;
    transition: transform var(--iots-transition);
}

.single-iots_solution .iots-faq-entry-v2[open] .iots-faq-entry-v2__icon {
    transform: rotate(45deg);
}

.single-iots_solution .iots-faq-entry-v2__answer {
    padding: 0 20px 20px;
    color: var(--iots-color-text-muted);
}

.single-iots_solution .iots-related-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

.single-iots_solution .iots-related-card .iots-card__media {
    display: flex !important;
    height: 96px !important;
    border-bottom: 1px solid var(--iots-color-border);
}

.single-iots_solution .iots-related-card .iots-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.single-iots_solution .iots-related-card .iots-card__body {
    padding: 20px;
}

.single-iots_solution .iots-related-card .iots-card__title {
    font-size: 15px;
}

.single-iots_solution .iots-cta-v2 {
    margin: 34px 0 0;
    padding: 38px;
    border: 2px solid var(--iots-color-border-blue);
    box-shadow: var(--iots-shadow-card);
}

@media (max-width: 900px) {
    .single-iots_solution .iots-solution-hero-v2 {
        grid-template-columns: 1fr;
    }

    .single-iots_solution .iots-benefits-grid-v2,
    .single-iots_solution .iots-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .single-iots_solution .iots-solution-page-v2 {
        width: min(calc(100% - 28px), var(--iots-container));
        padding: 38px 0 56px;
    }

    .single-iots_solution .iots-solution-hero-v2,
    .single-iots_solution .iots-section-v2,
    .single-iots_solution .iots-cta-v2 {
        padding: 26px 22px;
        border-radius: var(--iots-radius-md);
    }

    .single-iots_solution .iots-solution-hero-v2 {
        gap: 28px;
    }

    .single-iots_solution .iots-solution-hero-v2__media,
    .single-iots_solution .iots-solution-hero-v2__media img {
        min-height: 190px;
    }

    .single-iots_solution .iots-benefits-grid-v2,
    .single-iots_solution .iots-related-grid {
        grid-template-columns: 1fr !important;
    }

    .single-iots_solution .iots-spec-row-v2 {
        grid-template-columns: 1fr;
    }

    .single-iots_solution .iots-spec-row-v2__name {
        border-bottom: 1px solid var(--iots-color-border);
    }
}

/* ==========================================================
   IOTS MASTER v4 — TOKEN FIXES + SINGLE ARTICLE
   ========================================================== */

/* Brakujące aliasy używane również przez Single Solution v2. */
:root {
    --iots-color-primary: var(--iots-color-blue);
    --iots-color-border-blue: var(--iots-color-blue-soft);
    --iots-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    --iots-shadow-hover: 0 18px 38px rgba(16, 24, 40, 0.13);
}

.single-iots_article .iots-article-page-v2 {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin: 0 auto;
    padding: 64px 0 84px;
}

.single-iots_article .iots-article-hero-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: 44px;
    align-items: center;
    margin: 0 0 38px;
    padding: 46px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-iots_article .iots-article-hero-v2__text {
    min-width: 0;
}

.single-iots_article .iots-article-hero-v2 .iots-tag {
    margin-bottom: 18px;
}

.single-iots_article .iots-article-hero-v2 h1 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.single-iots_article .iots-article-hero-v2__meta {
    margin-top: 16px;
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.single-iots_article .iots-article-hero-v2__excerpt {
    max-width: 680px;
    margin: 22px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 17px;
    line-height: 1.72;
}

.single-iots_article .iots-article-hero-v2__media {
    overflow: hidden;
    min-height: 280px;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-iots_article .iots-article-hero-v2__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 280px;
    max-height: 420px;
    object-fit: cover;
}

.single-iots_article .iots-article-sections-v2 {
    counter-reset: iots-article-section;
    display: grid;
    gap: 28px;
}

.single-iots_article .iots-article-section-v2 {
    margin: 0;
    padding: 38px 40px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-iots_article .iots-article-section-v2__title {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 24px;
    color: var(--iots-color-text);
    font-size: clamp(25px, 3vw, 31px);
    line-height: 1.2;
}

.single-iots_article .iots-article-section-v2__title::before {
    counter-increment: iots-article-section;
    content: counter(iots-article-section, decimal-leading-zero);
    color: var(--iots-color-primary);
    font-family: var(--iots-font-mono);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .1em;
}

.single-iots_article .iots-article-section-v2__content {
    color: var(--iots-color-text-body);
    font-size: 16px;
    line-height: 1.78;
}

.single-iots_article .iots-article-section-v2--text .iots-article-section-v2__content,
.single-iots_article .iots-article-section-v2--intro .iots-article-section-v2__content,
.single-iots_article .iots-article-section-v2--custom .iots-article-section-v2__content {
    max-width: 860px;
}

.single-iots_article .iots-article-section-v2--intro {
    border-left-width: 5px;
}

.single-iots_article .iots-article-section-v2__content > :first-child {
    margin-top: 0;
}

.single-iots_article .iots-article-section-v2__content > :last-child {
    margin-bottom: 0;
}

.single-iots_article .iots-article-section-v2__content p,
.single-iots_article .iots-article-section-v2__content li {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.single-iots_article .iots-article-section-v2__content a:not(.iots-card__link) {
    color: var(--iots-color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.single-iots_article .iots-article-section-v2__content blockquote {
    margin: 28px 0;
    padding: 20px 24px;
    background: var(--iots-color-surface-blue);
    border-left: 4px solid var(--iots-color-primary);
    border-radius: 0 var(--iots-radius-md) var(--iots-radius-md) 0;
}

.single-iots_article .iots-article-gallery-v2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.single-iots_article .iots-article-gallery-v2__item {
    overflow: hidden;
    margin: 0;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-iots_article .iots-article-gallery-v2__image {
    display: block;
    width: 100%;
    height: 270px;
    object-fit: cover;
    transition: transform var(--iots-transition);
}

.single-iots_article .iots-article-gallery-v2__item:hover .iots-article-gallery-v2__image {
    transform: scale(1.025);
}

.single-iots_article .iots-article-products-grid-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.single-iots_article .iots-article-product-card-v2 {
    overflow: hidden;
    min-height: 100%;
    padding: 0;
}

.single-iots_article .iots-article-product-card-v2__media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
    padding: 14px;
    background: var(--iots-color-surface);
    border-bottom: 1px solid var(--iots-color-border);
}

.single-iots_article .iots-article-product-card-v2__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.single-iots_article .iots-article-product-card-v2__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 20px;
}

.single-iots_article .iots-article-product-card-v2 h3 {
    margin: 0 0 18px;
    color: var(--iots-color-text);
    font-size: 15px;
    line-height: 1.4;
}

.single-iots_article .iots-article-product-card-v2 h3 a {
    color: inherit;
    text-decoration: none;
}

.single-iots_article .iots-article-product-card-v2 .iots-card__link {
    margin-top: auto;
}

.single-iots_article .iots-article-related-grid-v2 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.single-iots_article .iots-article-related-card-v2 {
    min-height: 100%;
    padding: 0 !important;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__media {
    display: flex !important;
    height: 94px !important;
    border-bottom: 1px solid var(--iots-color-border);
}

.single-iots_article .iots-article-related-card-v2 .iots-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__body {
    padding: 18px;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__label {
    font-size: 9px;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__title {
    min-height: 40px;
    font-size: 14px;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__description {
    font-size: 12.5px;
}

.single-iots_article .iots-article-related-card-v2 .iots-card__link {
    font-size: 10px;
}

.single-iots_article .iots-article-cta-v2 {
    margin: 34px 0 0;
    padding: 38px;
    border: 2px solid var(--iots-color-border-blue);
    box-shadow: var(--iots-shadow-card);
}

/* Nieopisane widgety udostępniania usuwamy także z pojedynczych artykułów. */
.single-iots_article .ct-share-box,
.single-iots_article .elementor-widget-share-buttons,
.single-iots_article .elementor-share-buttons-wrapper,
.single-iots_article .addtoany_share_save_container,
.single-iots_article .heateor_sss_sharing_container,
.single-iots_article .sharedaddy,
.single-iots_article .sd-sharing,
.single-iots_article .wp-block-jetpack-sharing-buttons,
.single-iots_article .essb_links,
.single-iots_article .sassy-social-share,
.single-iots_article .post-share,
.single-iots_article .post-sharing,
.single-iots_article .social-share-buttons {
    display: none !important;
}

@media (max-width: 1000px) {
    .single-iots_article .iots-article-related-grid-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .single-iots_article .iots-article-products-grid-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .single-iots_article .iots-article-hero-v2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .single-iots_article .iots-article-page-v2 {
        width: min(calc(100% - 28px), var(--iots-container));
        padding: 38px 0 56px;
    }

    .single-iots_article .iots-article-hero-v2,
    .single-iots_article .iots-article-section-v2,
    .single-iots_article .iots-article-cta-v2 {
        padding: 26px 22px;
        border-radius: var(--iots-radius-md);
    }

    .single-iots_article .iots-article-gallery-v2,
    .single-iots_article .iots-article-products-grid-v2,
    .single-iots_article .iots-article-related-grid-v2 {
        grid-template-columns: 1fr;
    }

    .single-iots_article .iots-article-gallery-v2__image {
        height: 220px;
    }

    .single-iots_article .iots-article-hero-v2__media,
    .single-iots_article .iots-article-hero-v2__media img {
        min-height: 200px;
    }
}

/* ==========================================================
   IOTS MASTER v5 — PRODUCT CATALOG
   ========================================================== */

.iots-product-catalog-v2 {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin: 0 auto;
    padding: 12px 0 72px;
}

.iots-product-filters-v2 {
    margin: 0 0 30px;
    padding: 24px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-soft);
}

.iots-product-filter-fields-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.iots-product-filter-field-v2 {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.iots-product-filter-field-v2--search {
    grid-column: span 2;
}

.iots-product-filter-field-v2 > span {
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.iots-product-filter-field-v2 input,
.iots-product-filter-field-v2 select {
    width: 100%;
    min-width: 0;
    height: 44px;
    padding: 0 13px;
    color: var(--iots-color-text);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-border) !important;
    border-radius: var(--iots-radius-sm);
    box-shadow: none;
    font-size: 13px;
    line-height: 1;
    transition:
        border-color var(--iots-transition),
        box-shadow var(--iots-transition);
}

.iots-product-filter-field-v2 input:hover,
.iots-product-filter-field-v2 select:hover {
    border-color: var(--iots-color-blue) !important;
}

.iots-product-filter-field-v2 input:focus,
.iots-product-filter-field-v2 select:focus {
    border-color: var(--iots-color-blue) !important;
    outline: none;
    box-shadow: var(--iots-shadow-focus);
}

.iots-product-filter-actions-v2 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
}

.iots-product-filter-actions-v2 button,
.iots-product-filter-actions-v2 a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 17px;
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .045em;
    text-decoration: none !important;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.iots-product-filter-actions-v2 button {
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue) !important;
    border: 1px solid var(--iots-color-blue) !important;
}

.iots-product-filter-actions-v2 a {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
}

.iots-product-filter-actions-v2 button:hover,
.iots-product-filter-actions-v2 a:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white) !important;
    border-color: var(--iots-color-blue) !important;
    transform: translateY(-1px);
}

.iots-product-results-bar-v2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 18px;
    padding: 0 2px;
}

.iots-product-results-bar-v2 p {
    margin: 0;
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.iots-product-grid-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.iots-product-card-v2 {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 100%;
    padding: 0 !important;
    overflow: hidden;
}

.iots-product-card-v2__media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 168px;
    padding: 18px;
    overflow: hidden;
    background:
        linear-gradient(
            145deg,
            var(--iots-color-surface-blue),
            var(--iots-color-surface)
        );
    border-bottom: 1px solid var(--iots-color-border);
    text-decoration: none !important;
}

.iots-product-card-v2__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform var(--iots-transition);
}

.iots-product-card-v2:hover .iots-product-card-v2__image {
    transform: scale(1.035);
}

.iots-product-card-v2__placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    color: var(--iots-color-blue);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: 50%;
    font-family: var(--iots-font-mono);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: .06em;
    box-shadow: 0 10px 25px rgba(21, 89, 237, .1);
}

.iots-product-card-v2__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 21px;
}

.iots-product-card-v2__manufacturer {
    margin: 0 0 11px;
    font-size: 9px !important;
}

.iots-product-card-v2__title {
    min-height: 43px;
    margin: 0 0 14px;
    color: var(--iots-color-text);
    font-size: 15.5px;
    line-height: 1.38;
}

.iots-product-card-v2__title a {
    color: inherit !important;
    text-decoration: none !important;
}

.iots-product-card-v2__title a:hover {
    color: var(--iots-color-blue) !important;
}

.iots-product-card-v2__meta {
    display: grid;
    gap: 7px;
    margin: 0 0 15px;
}

.iots-product-card-v2__meta > div {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 8px;
    align-items: baseline;
}

.iots-product-card-v2__meta dt,
.iots-product-card-v2__meta dd {
    margin: 0;
    font-size: 11.5px;
    line-height: 1.4;
}

.iots-product-card-v2__meta dt {
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.iots-product-card-v2__meta dd {
    min-width: 0;
    color: var(--iots-color-text-body);
    overflow-wrap: anywhere;
}

.iots-product-card-v2__description {
    margin: 0 0 18px;
    color: var(--iots-color-text-muted);
    font-size: 13px;
    line-height: 1.62;
}

.iots-product-card-v2__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    min-height: 40px;
    margin-top: auto;
    padding: 9px 15px;
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue);
    border: 1px solid var(--iots-color-blue);
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
    text-decoration: none !important;
    text-transform: uppercase;
    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.iots-product-card-v2__button:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    border-color: var(--iots-color-blue);
    transform: translateY(-1px);
}

.iots-product-pagination-v2 {
    margin: 40px 0 0;
}

.iots-product-pagination-v2 .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.iots-product-pagination-v2 .page-numbers li {
    margin: 0;
}

.iots-product-pagination-v2 a.page-numbers,
.iots-product-pagination-v2 span.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 7px 10px;
    color: var(--iots-color-blue);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    line-height: 1;
    text-decoration: none !important;
}

.iots-product-pagination-v2 span.current,
.iots-product-pagination-v2 a.page-numbers:hover {
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue);
    border-color: var(--iots-color-blue);
}

.iots-product-empty-v2 {
    padding: 42px 26px;
    text-align: center;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-lg);
}

.iots-product-empty-v2 h3 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
    font-size: 20px;
}

.iots-product-empty-v2 p {
    margin: 0 0 18px;
    color: var(--iots-color-text-muted);
}

.iots-product-empty-v2 a {
    color: var(--iots-color-blue);
    font-weight: 600;
}

@media (max-width: 1000px) {
    .iots-product-filter-fields-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iots-product-filter-field-v2--search {
        grid-column: span 2;
    }

    .iots-product-grid-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .iots-product-catalog-v2 {
        width: min(calc(100% - 28px), var(--iots-container));
        padding-bottom: 54px;
    }

    .iots-product-filters-v2 {
        padding: 19px;
        border-radius: var(--iots-radius-md);
    }

    .iots-product-filter-fields-v2 {
        grid-template-columns: 1fr;
    }

    .iots-product-filter-field-v2--search {
        grid-column: auto;
    }

    .iots-product-filter-actions-v2 {
        align-items: stretch;
        flex-direction: column;
    }

    .iots-product-filter-actions-v2 button,
    .iots-product-filter-actions-v2 a {
        width: 100%;
    }

    .iots-product-results-bar-v2 {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .iots-product-grid-v2 {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .iots-product-card-v2__media {
        height: 190px;
    }

    .iots-product-card-v2__title {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .iots-product-card-v2__image,
    .iots-product-card-v2__button,
    .iots-product-filter-actions-v2 button,
    .iots-product-filter-actions-v2 a {
        transition: none !important;
    }

    .iots-product-card-v2:hover .iots-product-card-v2__image,
    .iots-product-card-v2__button:hover,
    .iots-product-filter-actions-v2 button:hover,
    .iots-product-filter-actions-v2 a:hover {
        transform: none;
    }
}

/* ==========================================================
   IOTS MASTER v6 — SINGLE PRODUCT / CATALOG MODE
   ========================================================== */

.single-product.iots-single-product-v1 .site-main > .product,
.single-product.iots-single-product-v1 main > .product,
.single-product.iots-single-product-v1 .ct-container-full > .product {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin-right: auto;
    margin-left: auto;
    padding-top: 62px;
    padding-bottom: 82px;
}

.single-product.iots-single-product-v1 div.product {
    color: var(--iots-color-text-body);
}

.single-product.iots-single-product-v1 div.product::after {
    display: table;
    clear: both;
    content: "";
}

.single-product.iots-single-product-v1 div.product .woocommerce-product-gallery,
.single-product.iots-single-product-v1 div.product .summary {
    box-sizing: border-box;
    margin-bottom: 38px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-product.iots-single-product-v1 div.product .woocommerce-product-gallery {
    width: calc(47% - 18px);
    padding: 28px;
}

.single-product.iots-single-product-v1 div.product .summary {
    width: calc(53% - 18px);
    padding: 40px;
}

.single-product.iots-single-product-v1 .woocommerce-product-gallery__image,
.single-product.iots-single-product-v1 .woocommerce-product-gallery__image a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
    background:
        linear-gradient(
            145deg,
            var(--iots-color-surface-blue),
            var(--iots-color-surface)
        );
    border-radius: var(--iots-radius-md);
}

.single-product.iots-single-product-v1 .woocommerce-product-gallery__image img {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
}

.single-product.iots-single-product-v1 .flex-control-thumbs {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px !important;
}

.single-product.iots-single-product-v1 .flex-control-thumbs li {
    width: auto !important;
    margin: 0 !important;
}

.single-product.iots-single-product-v1 .flex-control-thumbs img {
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-sm);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__manufacturer {
    margin: 0 0 18px;
}

.single-product.iots-single-product-v1 .product_title {
    margin: 0 0 20px;
    color: var(--iots-color-text);
    font-size: clamp(33px, 4vw, 46px);
    line-height: 1.13;
    letter-spacing: -.025em;
}

.single-product.iots-single-product-v1 .woocommerce-product-details__short-description {
    margin: 0 0 22px;
    color: var(--iots-color-text-muted);
    font-size: 15.5px;
    line-height: 1.72;
}

.single-product.iots-single-product-v1 .woocommerce-product-details__short-description > :last-child {
    margin-bottom: 0;
}

.single-product.iots-single-product-v1 .price,
.single-product.iots-single-product-v1 form.cart,
.single-product.iots-single-product-v1 .product_meta,
.single-product.iots-single-product-v1 .woocommerce-product-rating,
.single-product.iots-single-product-v1 .woocommerce-tabs {
    display: none !important;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta {
    display: grid;
    gap: 9px;
    margin: 22px 0 25px;
    padding: 18px;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta > div {
    display: grid;
    grid-template-columns: 106px minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta dt,
.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta dd {
    margin: 0;
    line-height: 1.45;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta dt {
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta dd {
    min-width: 0;
    color: var(--iots-color-text-body);
    font-size: 12.5px;
    overflow-wrap: anywhere;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__shop-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    padding: 12px 20px;
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue);
    border: 1px solid var(--iots-color-blue);
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
    text-decoration: none !important;
    text-transform: uppercase;
    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__shop-button:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    transform: translateY(-1px);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__shop-note {
    margin: 10px 0 0;
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    line-height: 1.45;
    text-align: center;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__sections {
    clear: both;
    display: grid;
    gap: 28px;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__section,
.single-product.iots-single-product-v1 .iots-single-product-v1__related {
    margin: 0;
    padding: 38px 40px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-border-blue);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__section h2,
.single-product.iots-single-product-v1 .iots-single-product-v1__related h2 {
    margin: 0 0 23px;
    color: var(--iots-color-text);
    font-size: clamp(25px, 3vw, 31px);
    line-height: 1.2;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__content {
    max-width: 880px;
    color: var(--iots-color-text-body);
    font-size: 16px;
    line-height: 1.78;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__content > :first-child {
    margin-top: 0;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__content > :last-child {
    margin-bottom: 0;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--iots-radius-md);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__specs {
    overflow: hidden;
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__spec-row {
    display: grid;
    grid-template-columns: minmax(190px, 36%) 1fr;
    border-bottom: 1px solid var(--iots-color-border);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__spec-row:last-child {
    border-bottom: 0;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__spec-name,
.single-product.iots-single-product-v1 .iots-single-product-v1__spec-value {
    padding: 15px 20px;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__spec-name {
    color: var(--iots-color-text);
    background: var(--iots-color-surface);
    font-weight: 600;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__spec-value {
    color: var(--iots-color-text-body);
}

.single-product.iots-single-product-v1 .iots-single-product-v1__related {
    clear: both;
    margin-top: 28px;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1 {
    min-height: 100%;
    overflow: hidden;
    padding: 0 !important;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1__media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 145px;
    padding: 14px;
    background: var(--iots-color-surface);
    border-bottom: 1px solid var(--iots-color-border);
    text-decoration: none !important;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1__placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    color: var(--iots-color-blue);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: 50%;
    font-family: var(--iots-font-mono);
    font-weight: 700;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 20px;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1__body .iots-tag {
    align-self: flex-start;
    margin: 0 0 10px;
    font-size: 9px;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1 h3 {
    margin: 0 0 10px;
    color: var(--iots-color-text);
    font-size: 15px;
    line-height: 1.4;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1 h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1 p {
    margin: 0 0 16px;
    color: var(--iots-color-text-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

.single-product.iots-single-product-v1 .iots-single-product-related-card-v1 .iots-card__link {
    margin-top: auto;
    font-size: 10px;
}

.single-product.iots-single-product-v1 .iots-single-product-v1__cta {
    clear: both;
    margin-top: 28px;
    padding: 38px;
    border: 2px solid var(--iots-color-border-blue);
    box-shadow: var(--iots-shadow-card);
}

.woocommerce .iots-wc-loop-button {
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue) !important;
    border-color: var(--iots-color-blue) !important;
}

.woocommerce .iots-wc-loop-button:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white) !important;
}

@media (max-width: 900px) {
    .single-product.iots-single-product-v1 div.product .woocommerce-product-gallery,
    .single-product.iots-single-product-v1 div.product .summary {
        float: none;
        width: 100%;
    }

    .single-product.iots-single-product-v1 .iots-single-product-v1__related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .single-product.iots-single-product-v1 .site-main > .product,
    .single-product.iots-single-product-v1 main > .product,
    .single-product.iots-single-product-v1 .ct-container-full > .product {
        width: min(calc(100% - 28px), var(--iots-container));
        padding-top: 38px;
        padding-bottom: 56px;
    }

    .single-product.iots-single-product-v1 div.product .woocommerce-product-gallery,
    .single-product.iots-single-product-v1 div.product .summary,
    .single-product.iots-single-product-v1 .iots-single-product-v1__section,
    .single-product.iots-single-product-v1 .iots-single-product-v1__related,
    .single-product.iots-single-product-v1 .iots-single-product-v1__cta {
        padding: 24px 21px;
        border-radius: var(--iots-radius-md);
    }

    .single-product.iots-single-product-v1 .woocommerce-product-gallery__image,
    .single-product.iots-single-product-v1 .woocommerce-product-gallery__image a {
        min-height: 245px;
    }

    .single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta > div,
    .single-product.iots-single-product-v1 .iots-single-product-v1__spec-row {
        grid-template-columns: 1fr;
    }

    .single-product.iots-single-product-v1 .iots-single-product-v1__quick-meta > div {
        gap: 3px;
    }

    .single-product.iots-single-product-v1 .iots-single-product-v1__spec-name {
        border-bottom: 1px solid var(--iots-color-border);
    }

    .single-product.iots-single-product-v1 .iots-single-product-v1__related-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================
   IOTS MASTER v7 — PAGINATION SAFETY + ARTICLE WITHOUT IMAGE
   ========================================================== */

/*
 * Wariant pojedynczego artykułu bez zdjęcia wyróżniającego.
 * Tekst i tytuł wykorzystują całą wewnętrzną szerokość hero.
 */
.single-iots_article .iots-article-hero-v2--no-media {
    grid-template-columns: minmax(0, 1fr);
}

.single-iots_article .iots-article-hero-v2--no-media .iots-article-hero-v2__text {
    width: 100%;
    max-width: none;
}

.single-iots_article .iots-article-hero-v2--no-media h1,
.single-iots_article .iots-article-hero-v2--no-media .iots-article-hero-v2__excerpt {
    max-width: 100%;
}

/*
 * Dodatkowe zabezpieczenie dla starszego HTML artykułu,
 * zanim nowy snippet zostanie zapisany lub cache zostanie wyczyszczony.
 */
@supports selector(:has(*)) {
    .single-iots_article .iots-article-hero-v2:not(:has(.iots-article-hero-v2__media)) {
        grid-template-columns: minmax(0, 1fr);
    }

    .single-iots_article
    .iots-article-hero-v2:not(:has(.iots-article-hero-v2__media))
    .iots-article-hero-v2__text,
    .single-iots_article
    .iots-article-hero-v2:not(:has(.iots-article-hero-v2__media))
    h1,
    .single-iots_article
    .iots-article-hero-v2:not(:has(.iots-article-hero-v2__media))
    .iots-article-hero-v2__excerpt {
        width: 100%;
        max-width: none;
    }
}

/*
 * Długie adresy filtrów i paginacji nie powinny rozpychać
 * kontenera ani przejmować stylów motywu.
 */
.iots-product-pagination-v2 {
    width: 100%;
    overflow-wrap: anywhere;
}

/* ==========================================================
   IOTS MASTER v8 — HOMEPAGE
   ========================================================== */

.iots-homepage-v1 {
    overflow: hidden;
    color: var(--iots-color-text-body);
    background: var(--iots-color-white);
}

.iots-homepage-v1 .iots-container {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin-right: auto;
    margin-left: auto;
}

.iots-homepage-v1 .iots-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 17px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .085em;
    text-transform: uppercase;
}

.iots-homepage-v1 .iots-eyebrow::before {
    width: 22px;
    height: 1px;
    background: currentColor;
    content: "";
}

.iots-home-hero-v1 {
    padding: 88px 0 82px;
    background:
        radial-gradient(circle at 82% 20%, rgba(21, 89, 237, .08), transparent 28%),
        linear-gradient(180deg, #fff, var(--iots-color-surface));
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-home-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: 58px;
    align-items: center;
}

.iots-home-hero-v1__content h1 {
    max-width: 760px;
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(42px, 5.5vw, 66px);
    line-height: 1.06;
    letter-spacing: -.038em;
}

.iots-home-hero-v1__content h1 span {
    color: var(--iots-color-blue);
}

.iots-home-hero-v1__content > p {
    max-width: 660px;
    margin: 25px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 17px;
    line-height: 1.72;
}

.iots-home-hero-v1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 31px;
}

.iots-homepage-v1 .iots-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 21px;
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
    text-decoration: none !important;
    text-transform: uppercase;
    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        border-color var(--iots-transition),
        transform var(--iots-transition);
}

.iots-homepage-v1 .iots-button--primary {
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue);
    border: 1px solid var(--iots-color-blue);
}

.iots-homepage-v1 .iots-button--secondary {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
}

.iots-homepage-v1 .iots-button:hover {
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-white);
    border-color: var(--iots-color-blue);
    transform: translateY(-2px);
}

.iots-home-flow-v1 {
    padding: 30px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-home-flow-v1__nodes {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.iots-home-flow-v1__node {
    display: grid;
    flex: 1 1 0;
    gap: 6px;
    min-width: 0;
    padding: 19px 10px;
    text-align: center;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.iots-home-flow-v1__node--its {
    background: var(--iots-color-surface-blue);
    border-color: var(--iots-color-blue-soft);
}

.iots-home-flow-v1__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 0 auto 3px;
    color: var(--iots-color-blue);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: 11px;
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 700;
}

.iots-home-flow-v1__node strong {
    color: var(--iots-color-text);
    font-size: 13px;
}

.iots-home-flow-v1__node small {
    color: var(--iots-color-text-muted);
    font-size: 10px;
}

.iots-home-flow-v1__arrow {
    flex: none;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 18px;
}

.iots-home-flow-v1__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 14px;
    padding: 13px 15px;
    color: var(--iots-color-text-muted);
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.iots-home-flow-v1__status strong {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--iots-color-blue);
}

.iots-home-flow-v1__status i {
    width: 7px;
    height: 7px;
    background: var(--iots-color-blue);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(21, 89, 237, .1);
}

.iots-home-tech-v1 {
    padding: 25px 0;
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-home-tech-v1 .iots-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
}

.iots-home-tech-v1__label {
    flex: none;
    margin: 0;
    color: var(--iots-color-text-muted);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.iots-home-tech-v1__list {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 9px;
}

.iots-home-tech-v1__list span {
    padding: 7px 12px;
    color: var(--iots-color-text-muted);
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: 999px;
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    letter-spacing: .035em;
}

.iots-home-section-v1 {
    padding: 82px 0;
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-home-section-v1:nth-of-type(even) {
    background: var(--iots-color-surface);
}

.iots-home-section-head-v1 {
    max-width: 700px;
    margin-bottom: 38px;
}

.iots-home-section-head-v1--row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    max-width: none;
}

.iots-home-section-head-v1 h2 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.iots-home-section-head-v1 p {
    max-width: 650px;
    margin: 15px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 15.5px;
    line-height: 1.7;
}

.iots-home-section-link-v1 {
    flex: none;
    padding-bottom: 5px;
    color: var(--iots-color-blue) !important;
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .045em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.iots-home-category-grid-v1 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.iots-home-category-card-v1 {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 25px !important;
    color: inherit !important;
    text-decoration: none !important;
}

.iots-home-category-card-v1__number {
    margin: 0 0 18px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
}

.iots-home-category-card-v1 h3 {
    margin: 0 0 10px;
    color: var(--iots-color-text);
    font-size: 17px;
    line-height: 1.35;
}

.iots-home-category-card-v1 p {
    margin: 0 0 20px;
    color: var(--iots-color-text-muted);
    font-size: 13px;
    line-height: 1.62;
}

.iots-home-category-card-v1__link {
    margin-top: auto;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.iots-home-card-grid-v1 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.iots-home-card-grid-v1 .iots-card {
    min-height: 100%;
    padding: 0 !important;
    overflow: hidden;
}

.iots-home-card-media-v1 {
    display: flex !important;
    height: 112px !important;
    overflow: hidden;
    background: var(--iots-color-surface);
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-home-card-media-v1 .iots-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iots-home-card-placeholder-v1 {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 100%;
}

.iots-home-card-placeholder-v1 span {
    width: 11px;
    height: 11px;
    background: var(--iots-color-blue);
    border-radius: 50%;
    opacity: .28;
}

.iots-home-card-placeholder-v1 span:nth-child(2) {
    opacity: .55;
}

.iots-home-card-placeholder-v1 span:nth-child(3) {
    opacity: .9;
}

.iots-home-card-grid-v1 .iots-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 20px;
}

.iots-home-card-grid-v1 .iots-card__label {
    align-self: flex-start;
    margin-bottom: 10px;
    font-size: 9px;
}

.iots-home-card-grid-v1 .iots-card__title {
    min-height: 42px;
    margin-bottom: 10px;
    font-size: 15px;
}

.iots-home-card-grid-v1 .iots-card__description {
    margin-bottom: 17px;
    font-size: 12.8px;
}

.iots-home-card-grid-v1 .iots-card__link {
    margin-top: auto;
    font-size: 10px;
}

.iots-home-why-v1 {
    background: var(--iots-color-surface-blue) !important;
}

.iots-home-why-grid-v1 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.iots-home-why-grid-v1 article {
    padding: 0 3px;
}

.iots-home-why-grid-v1 article > span {
    display: block;
    margin-bottom: 13px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
}

.iots-home-why-grid-v1 h3 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
    font-size: 16px;
    line-height: 1.4;
}

.iots-home-why-grid-v1 p {
    margin: 0;
    color: var(--iots-color-text-muted);
    font-size: 13px;
    line-height: 1.62;
}

.iots-home-its-v1 {
    background: var(--iots-color-white) !important;
}

.iots-home-its-v1__panel {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 54px;
    align-items: center;
    padding: 46px !important;
    background:
        linear-gradient(145deg, var(--iots-color-white), var(--iots-color-surface-blue));
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-home-its-v1__content h2 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(29px, 4vw, 40px);
    line-height: 1.16;
}

.iots-home-its-v1__content p {
    margin: 17px 0 24px;
    color: var(--iots-color-text-muted);
    font-size: 15px;
    line-height: 1.7;
}

.iots-home-dashboard-v1 {
    padding: 23px;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-md);
    box-shadow: 0 14px 32px rgba(21, 89, 237, .1);
}

.iots-home-dashboard-v1__top {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 17px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.iots-home-dashboard-v1__bars {
    display: flex;
    align-items: end;
    gap: 8px;
    height: 104px;
    margin-bottom: 17px;
    padding: 0 2px;
}

.iots-home-dashboard-v1__bars i {
    flex: 1 1 0;
    min-width: 0;
    background: linear-gradient(180deg, var(--iots-color-blue), rgba(21, 89, 237, .38));
    border-radius: 4px 4px 0 0;
}

.iots-home-dashboard-v1__rows {
    display: grid;
    gap: 7px;
}

.iots-home-dashboard-v1__rows div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 9px 11px;
    color: var(--iots-color-text-muted);
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: 6px;
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
}

.iots-home-dashboard-v1__rows strong {
    color: var(--iots-color-blue);
}

.iots-home-industry-grid-v1 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.iots-home-industry-chip-v1 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 13px;
    min-height: 68px;
    padding: 17px 18px;
    color: var(--iots-color-text) !important;
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none !important;
    transition:
        color var(--iots-transition),
        border-color var(--iots-transition),
        box-shadow var(--iots-transition),
        transform var(--iots-transition);
}

.iots-home-industry-chip-v1 span {
    flex: none;
    color: var(--iots-color-blue);
}

.iots-home-industry-chip-v1:hover {
    color: var(--iots-color-blue) !important;
    border-color: var(--iots-color-blue);
    box-shadow: var(--iots-shadow-hover);
    transform: translateY(-2px);
}

.iots-home-cta-v1 {
    margin-top: 72px !important;
    margin-bottom: 82px !important;
    padding: 43px !important;
    border: 2px solid var(--iots-color-blue-soft);
    box-shadow: var(--iots-shadow-card);
}

@media (max-width: 1000px) {
    .iots-home-hero-v1__grid,
    .iots-home-its-v1__panel {
        grid-template-columns: 1fr;
    }

    .iots-home-flow-v1 {
        max-width: 670px;
    }

    .iots-home-category-grid-v1,
    .iots-home-card-grid-v1 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iots-home-why-grid-v1,
    .iots-home-industry-grid-v1 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .iots-homepage-v1 .iots-container {
        width: min(calc(100% - 28px), var(--iots-container));
    }

    .iots-home-hero-v1 {
        padding: 58px 0 54px;
    }

    .iots-home-hero-v1__grid {
        gap: 36px;
    }

    .iots-home-hero-v1__content h1 {
        font-size: clamp(37px, 12vw, 49px);
    }

    .iots-home-hero-v1__content > p {
        font-size: 15.5px;
    }

    .iots-home-hero-v1__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .iots-homepage-v1 .iots-button {
        width: 100%;
    }

    .iots-home-flow-v1 {
        padding: 20px;
    }

    .iots-home-flow-v1__nodes {
        align-items: stretch;
        flex-direction: column;
    }

    .iots-home-flow-v1__node {
        width: 100%;
    }

    .iots-home-flow-v1__arrow {
        transform: rotate(90deg);
    }

    .iots-home-tech-v1 .iots-container {
        align-items: flex-start;
        flex-direction: column;
    }

    .iots-home-tech-v1__list {
        justify-content: flex-start;
    }

    .iots-home-section-v1 {
        padding: 58px 0;
    }

    .iots-home-section-head-v1--row {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .iots-home-category-grid-v1,
    .iots-home-card-grid-v1,
    .iots-home-why-grid-v1,
    .iots-home-industry-grid-v1 {
        grid-template-columns: 1fr;
    }

    .iots-home-its-v1__panel {
        width: min(calc(100% - 28px), var(--iots-container)) !important;
        padding: 27px 22px !important;
    }

    .iots-home-dashboard-v1 {
        padding: 18px;
    }

    .iots-home-cta-v1 {
        width: min(calc(100% - 28px), var(--iots-container)) !important;
        margin-top: 54px !important;
        margin-bottom: 58px !important;
        padding: 29px 23px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .iots-homepage-v1 .iots-button,
    .iots-home-industry-chip-v1 {
        transition: none !important;
    }

    .iots-homepage-v1 .iots-button:hover,
    .iots-home-industry-chip-v1:hover {
        transform: none;
    }
}

/* ==========================================================
   IOTS MASTER v9 — INDUSTRIES
   ========================================================== */

.iots-industries-catalog-v1,
.iots-industry-page-v1 {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin-right: auto;
    margin-left: auto;
}

.iots-industries-catalog-v1 {
    padding: 64px 0 82px;
}

.iots-industries-catalog-v1__head {
    max-width: 760px;
    margin-bottom: 38px;
}

.iots-industries-catalog-v1__head .iots-eyebrow,
.iots-industry-page-v1 .iots-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 17px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .085em;
    text-transform: uppercase;
}

.iots-industries-catalog-v1__head .iots-eyebrow::before,
.iots-industry-page-v1 .iots-eyebrow::before {
    width: 22px;
    height: 1px;
    background: currentColor;
    content: "";
}

.iots-industries-catalog-v1__head h1 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(35px, 5vw, 50px);
    line-height: 1.12;
    letter-spacing: -.03em;
}

.iots-industries-catalog-v1__head p {
    margin: 20px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 16px;
    line-height: 1.72;
}

.iots-industries-grid-v1 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.iots-industry-card-v1 {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 20px;
    min-height: 100%;
    padding: 23px !important;
}

.iots-industry-card-v1__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    overflow: hidden;
    color: var(--iots-color-blue) !important;
    background: var(--iots-color-surface-blue);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-md);
    font-family: var(--iots-font-mono);
    font-size: 25px;
    text-decoration: none !important;
}

.iots-industry-card-v1__icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iots-industry-card-v1__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.iots-industry-card-v1 h3 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
    font-size: 18px;
    line-height: 1.35;
}

.iots-industry-card-v1 h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

.iots-industry-card-v1 p {
    margin: 0 0 13px;
    color: var(--iots-color-text-muted);
    font-size: 13.5px;
    line-height: 1.62;
}

.iots-industry-card-v1__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 16px;
}

.iots-industry-card-v1__tags span {
    padding: 4px 8px;
    color: var(--iots-color-text-muted);
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: 999px;
    font-family: var(--iots-font-mono);
    font-size: 8.5px;
    letter-spacing: .03em;
}

.iots-industry-card-v1 .iots-card__link {
    margin-top: auto;
    font-size: 10px;
}

.iots-industries-empty-v1 {
    padding: 38px 28px;
    text-align: center;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-lg);
}

.iots-industries-empty-v1 h2 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
}

.iots-industries-empty-v1 p {
    margin: 0;
    color: var(--iots-color-text-muted);
}

.iots-industries-cta-v1 {
    margin-top: 42px;
    padding: 39px;
    border: 2px solid var(--iots-color-blue-soft);
    box-shadow: var(--iots-shadow-card);
}

.iots-industry-page-v1 {
    padding: 64px 0 82px;
}

.iots-industry-hero-v1 {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
    gap: 42px;
    align-items: center;
    margin-bottom: 30px;
    padding: 44px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-industry-hero-v1:not(:has(.iots-industry-hero-v1__media)) {
    grid-template-columns: 1fr;
}

.iots-industry-hero-v1__title-row {
    display: flex;
    align-items: center;
    gap: 18px;
}

.iots-industry-hero-v1__icon {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    color: var(--iots-color-blue);
    background: var(--iots-color-surface-blue);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-md);
    font-family: var(--iots-font-mono);
    font-size: 27px;
}

.iots-industry-hero-v1 h1 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(35px, 5vw, 50px);
    line-height: 1.1;
    letter-spacing: -.03em;
}

.iots-industry-hero-v1__content > p {
    max-width: 760px;
    margin: 22px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 16.5px;
    line-height: 1.72;
}

.iots-industry-hero-v1__media {
    overflow: hidden;
    min-height: 260px;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.iots-industry-hero-v1__media img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    max-height: 380px;
    object-fit: cover;
}

.iots-industry-section-v1 {
    margin-top: 28px;
    padding: 38px 40px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-industry-section-v1 > h2,
.iots-industry-its-v1 h2 {
    margin: 0 0 23px;
    color: var(--iots-color-text);
    font-size: clamp(25px, 3vw, 31px);
    line-height: 1.2;
}

.iots-industry-section-v1__content {
    max-width: 880px;
    color: var(--iots-color-text-body);
    font-size: 16px;
    line-height: 1.78;
}

.iots-industry-section-v1__content > :first-child {
    margin-top: 0;
}

.iots-industry-section-v1__content > :last-child {
    margin-bottom: 0;
}

.iots-industry-challenges-v1,
.iots-industry-solutions-grid-v1,
.iots-industry-products-grid-v1,
.iots-industry-articles-grid-v1 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.iots-industry-challenge-v1 {
    min-height: 100%;
    padding: 23px !important;
}

.iots-industry-challenge-v1 > span {
    display: block;
    margin-bottom: 13px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
}

.iots-industry-challenge-v1 h3 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
    font-size: 16px;
    line-height: 1.4;
}

.iots-industry-challenge-v1 div,
.iots-industry-challenge-v1 p {
    margin-top: 0;
    color: var(--iots-color-text-muted);
    font-size: 13px;
    line-height: 1.62;
}

.iots-industry-solutions-grid-v1 .iots-card,
.iots-industry-articles-grid-v1 .iots-card {
    min-height: 100%;
    padding: 0 !important;
    overflow: hidden;
}

.iots-industry-solutions-grid-v1 .iots-card__media,
.iots-industry-articles-grid-v1 .iots-card__media {
    display: flex !important;
    height: 100px !important;
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-industry-solutions-grid-v1 .iots-card__image,
.iots-industry-articles-grid-v1 .iots-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.iots-industry-solutions-grid-v1 .iots-card__body,
.iots-industry-articles-grid-v1 .iots-card__body {
    display: flex;
    flex-direction: column;
    padding: 20px;
}

.iots-industry-solutions-grid-v1 .iots-card__title,
.iots-industry-articles-grid-v1 .iots-card__title {
    font-size: 15px;
}

.iots-industry-solutions-grid-v1 .iots-card__description,
.iots-industry-articles-grid-v1 .iots-card__description {
    font-size: 12.8px;
}

.iots-industry-products-grid-v1 .iots-card {
    min-height: 100%;
    overflow: hidden;
    padding: 0 !important;
}

.iots-industry-product-card-v1__media {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
    padding: 15px;
    background: var(--iots-color-surface);
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-industry-product-card-v1__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.iots-industry-product-card-v1__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 20px;
}

.iots-industry-product-card-v1__body .iots-tag {
    align-self: flex-start;
    margin-bottom: 10px;
    font-size: 9px;
}

.iots-industry-product-card-v1 h3 {
    margin: 0 0 18px;
    color: var(--iots-color-text);
    font-size: 15px;
    line-height: 1.4;
}

.iots-industry-product-card-v1 .iots-card__link {
    margin-top: auto;
}

.iots-industry-its-v1 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    margin-top: 28px;
    padding: 38px 40px;
    background: linear-gradient(145deg, var(--iots-color-white), var(--iots-color-surface-blue));
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-industry-its-v1 h2 {
    margin-bottom: 13px;
}

.iots-industry-its-v1 > div > div {
    max-width: 760px;
    color: var(--iots-color-text-muted);
    line-height: 1.72;
}

.iots-industry-its-v1 > a {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    color: var(--iots-color-white) !important;
    background: var(--iots-color-blue);
    border: 1px solid var(--iots-color-blue);
    border-radius: var(--iots-radius-sm);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .045em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.iots-industry-cta-v1 {
    margin-top: 28px;
    padding: 39px;
    border: 2px solid var(--iots-color-blue-soft);
    box-shadow: var(--iots-shadow-card);
}

@media (max-width: 900px) {
    .iots-industry-hero-v1 {
        grid-template-columns: 1fr;
    }

    .iots-industry-challenges-v1,
    .iots-industry-solutions-grid-v1,
    .iots-industry-products-grid-v1,
    .iots-industry-articles-grid-v1 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .iots-industries-catalog-v1,
    .iots-industry-page-v1 {
        width: min(calc(100% - 28px), var(--iots-container));
        padding-top: 40px;
        padding-bottom: 58px;
    }

    .iots-industries-grid-v1 {
        grid-template-columns: 1fr;
    }

    .iots-industry-card-v1 {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 15px;
        padding: 19px !important;
    }

    .iots-industry-card-v1__icon {
        width: 58px;
        height: 58px;
    }

    .iots-industry-hero-v1,
    .iots-industry-section-v1,
    .iots-industry-its-v1,
    .iots-industries-cta-v1,
    .iots-industry-cta-v1 {
        padding: 26px 22px;
        border-radius: var(--iots-radius-md);
    }

    .iots-industry-hero-v1__title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .iots-industry-challenges-v1,
    .iots-industry-solutions-grid-v1,
    .iots-industry-products-grid-v1,
    .iots-industry-articles-grid-v1 {
        grid-template-columns: 1fr;
    }

    .iots-industry-its-v1 {
        align-items: stretch;
        flex-direction: column;
    }

    .iots-industry-its-v1 > a {
        width: 100%;
    }
}

/* ==========================================================
   IOTS MASTER v10 — INDUSTRY CARD DESCRIPTION + GRAPHIC ICON
   ========================================================== */

/* Graficzna ikona w katalogu Branż. */
.iots-industry-card-v1__icon-content,
.iots-industry-hero-v1__icon-content {
    display: block;
    width: 100%;
    height: 100%;
}

.iots-industry-card-v1__icon .iots-industry-icon-image-v2,
.iots-industry-hero-v1__icon .iots-industry-icon-image-v2 {
    width: 100%;
    height: 100%;
    padding: 10px;
    object-fit: contain;
}

.iots-industry-card-v1__icon .iots-industry-icon-symbol-v2,
.iots-industry-hero-v1__icon .iots-industry-icon-symbol-v2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.iots-industry-hero-v1__icon .iots-industry-icon-symbol-v2 {
    width: 100%;
    height: 100%;
}

/* HOME: pełne kafelki Branż z ikoną i krótkim opisem. */
.iots-home-industry-grid-v2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.iots-home-industry-card-v2 {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    min-height: 112px;
    padding: 20px !important;
    color: inherit !important;
    text-decoration: none !important;
}

.iots-home-industry-card-v2__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    overflow: hidden;
    color: var(--iots-color-blue);
    background: var(--iots-color-surface-blue);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-md);
    font-family: var(--iots-font-mono);
    font-size: 23px;
    line-height: 1;
}

.iots-home-industry-card-v2__icon img {
    width: 100%;
    height: 100%;
    padding: 8px;
    object-fit: contain;
}

.iots-home-industry-card-v2__content {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.iots-home-industry-card-v2__content strong {
    color: var(--iots-color-text);
    font-size: 15px;
    line-height: 1.35;
}

.iots-home-industry-card-v2__content small {
    color: var(--iots-color-text-muted);
    font-size: 12.5px;
    line-height: 1.55;
}

.iots-home-industry-card-v2__arrow {
    flex: none;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 16px;
    transition: transform var(--iots-transition);
}

.iots-home-industry-card-v2:hover .iots-home-industry-card-v2__arrow {
    transform: translateX(3px);
}

@media (max-width: 750px) {
    .iots-home-industry-grid-v2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .iots-home-industry-card-v2 {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 13px;
    }

    .iots-home-industry-card-v2__icon {
        width: 50px;
        height: 50px;
    }

    .iots-home-industry-card-v2__arrow {
        display: none;
    }
}

/* ==========================================================
   IOTS MASTER v11 — ABOUT PAGE
   ========================================================== */

.iots-about-v1 {
    overflow: hidden;
    color: var(--iots-color-text-body);
    background: var(--iots-color-white);
}

.iots-about-v1 .iots-container {
    width: min(calc(100% - 40px), var(--iots-container));
    max-width: var(--iots-container);
    margin-right: auto;
    margin-left: auto;
}

.iots-about-v1 .iots-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 17px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .085em;
    text-transform: uppercase;
}

.iots-about-v1 .iots-eyebrow::before {
    width: 22px;
    height: 1px;
    background: currentColor;
    content: "";
}

.iots-about-hero-v1 {
    padding: 84px 0 78px;
    background:
        radial-gradient(circle at 88% 20%, rgba(21, 89, 237, .08), transparent 28%),
        linear-gradient(180deg, #fff, var(--iots-color-surface));
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-about-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(370px, .92fr);
    gap: 56px;
    align-items: center;
}

.iots-about-hero-v1__content h1 {
    max-width: 760px;
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(40px, 5.4vw, 62px);
    line-height: 1.07;
    letter-spacing: -.038em;
}

.iots-about-hero-v1__content h1 span {
    color: var(--iots-color-blue);
}

.iots-about-hero-v1__content > p {
    max-width: 690px;
    margin: 24px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 17px;
    line-height: 1.74;
}

.iots-about-hero-v1__diagram {
    display: grid;
    gap: 11px;
    padding: 28px;
    background: var(--iots-color-white);
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-about-hero-v1__diagram > div {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 3px 13px;
    align-items: center;
    padding: 16px;
    background: var(--iots-color-surface);
    border: 1px solid var(--iots-color-border);
    border-radius: var(--iots-radius-md);
}

.iots-about-hero-v1__diagram > div > span {
    grid-row: span 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: var(--iots-color-blue);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: 10px;
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 700;
}

.iots-about-hero-v1__diagram strong {
    color: var(--iots-color-text);
    font-size: 14px;
}

.iots-about-hero-v1__diagram small {
    color: var(--iots-color-text-muted);
    font-size: 11px;
}

.iots-about-hero-v1__diagram > i {
    justify-self: center;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 18px;
    font-style: normal;
    transform: rotate(90deg);
}

.iots-about-section-v1 {
    padding: 80px 0;
    border-bottom: 1px solid var(--iots-color-border);
}

.iots-about-section-v1:nth-of-type(odd) {
    background: var(--iots-color-surface);
}

.iots-about-section-head-v1 {
    max-width: 760px;
    margin-bottom: 37px;
}

.iots-about-section-head-v1 h2,
.iots-about-tech-v1__panel h2 {
    margin: 0;
    color: var(--iots-color-text);
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.iots-about-section-head-v1 > p,
.iots-about-tech-v1__panel > div:first-child > p {
    max-width: 690px;
    margin: 15px 0 0;
    color: var(--iots-color-text-muted);
    font-size: 15.5px;
    line-height: 1.72;
}

.iots-about-story-v1__grid {
    display: grid;
    grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
    gap: 62px;
    align-items: start;
}

.iots-about-story-v1 .iots-about-section-head-v1 {
    margin: 0;
}

.iots-about-story-v1__content {
    max-width: 720px;
}

.iots-about-story-v1__content p {
    margin: 0 0 20px;
    color: var(--iots-color-text-body);
    font-size: 16px;
    line-height: 1.78;
}

.iots-about-story-v1__content p:last-child {
    margin-bottom: 0;
}

.iots-about-process-v1 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 21px;
}

.iots-about-process-v1 article {
    position: relative;
    padding-top: 25px;
    border-top: 2px solid var(--iots-color-blue-soft);
}

.iots-about-process-v1 article::before {
    position: absolute;
    top: -6px;
    left: 0;
    width: 10px;
    height: 10px;
    background: var(--iots-color-blue);
    border: 3px solid var(--iots-color-white);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--iots-color-blue);
    content: "";
}

.iots-about-process-v1 article > span,
.iots-about-competence-grid-v1 article > span,
.iots-about-values-grid-v1 article > span {
    display: block;
    margin: 0 0 12px;
    color: var(--iots-color-blue);
    font-family: var(--iots-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
}

.iots-about-process-v1 h3,
.iots-about-competence-grid-v1 h3,
.iots-about-values-grid-v1 h3 {
    margin: 0 0 9px;
    color: var(--iots-color-text);
    font-size: 16px;
    line-height: 1.4;
}

.iots-about-process-v1 p,
.iots-about-competence-grid-v1 p,
.iots-about-values-grid-v1 p {
    margin: 0;
    color: var(--iots-color-text-muted);
    font-size: 13px;
    line-height: 1.65;
}

.iots-about-competence-grid-v1 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.iots-about-competence-grid-v1 article {
    min-height: 100%;
    padding: 26px !important;
}

.iots-about-tech-v1 {
    background: var(--iots-color-white) !important;
}

.iots-about-tech-v1__panel {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 55px;
    align-items: center;
    padding: 43px !important;
    background:
        linear-gradient(145deg, var(--iots-color-white), var(--iots-color-surface-blue));
    border: 2px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-lg);
    box-shadow: var(--iots-shadow-card);
}

.iots-about-tech-v1__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.iots-about-tech-v1__list span {
    padding: 9px 13px;
    color: var(--iots-color-text);
    background: var(--iots-color-white);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: 999px;
    font-family: var(--iots-font-mono);
    font-size: 9.5px;
    letter-spacing: .04em;
    box-shadow: 0 6px 14px rgba(21, 89, 237, .05);
}

.iots-about-values-grid-v1 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.iots-about-values-grid-v1 article {
    padding: 0 3px;
}

.iots-about-cta-v1 {
    margin-top: 72px !important;
    margin-bottom: 82px !important;
    padding: 42px !important;
    border: 2px solid var(--iots-color-blue-soft);
    box-shadow: var(--iots-shadow-card);
}

@media (max-width: 1000px) {
    .iots-about-hero-v1__grid,
    .iots-about-story-v1__grid,
    .iots-about-tech-v1__panel {
        grid-template-columns: 1fr;
    }

    .iots-about-hero-v1__diagram {
        max-width: 680px;
    }

    .iots-about-process-v1,
    .iots-about-values-grid-v1 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .iots-about-v1 .iots-container {
        width: min(calc(100% - 28px), var(--iots-container));
    }

    .iots-about-hero-v1 {
        padding: 57px 0 53px;
    }

    .iots-about-hero-v1__grid {
        gap: 35px;
    }

    .iots-about-hero-v1__content h1 {
        font-size: clamp(37px, 12vw, 49px);
    }

    .iots-about-hero-v1__content > p {
        font-size: 15.5px;
    }

    .iots-about-hero-v1__diagram {
        padding: 20px;
    }

    .iots-about-section-v1 {
        padding: 57px 0;
    }

    .iots-about-process-v1,
    .iots-about-competence-grid-v1,
    .iots-about-values-grid-v1 {
        grid-template-columns: 1fr;
    }

    .iots-about-tech-v1__panel {
        width: min(calc(100% - 28px), var(--iots-container)) !important;
        padding: 27px 22px !important;
    }

    .iots-about-cta-v1 {
        width: min(calc(100% - 28px), var(--iots-container)) !important;
        margin-top: 54px !important;
        margin-bottom: 58px !important;
        padding: 29px 23px !important;
    }
}

/* ==========================================================
   IOTS — SINGLE SOLUTION v3
   Wklej NA KOŃCU Additional CSS.
   Wymaga aktywnego snippetu: IOTS — Solutions Single Template v3.
   ========================================================== */

body.iots-solution-single-v3-page {
    --iots-sv3-blue: var(--iots-color-blue, #1559ed);
    --iots-sv3-blue-dark: var(--iots-color-blue-hover, #0f46c5);
    --iots-sv3-blue-soft: var(--iots-color-blue-soft, #dbeafe);
    --iots-sv3-surface: var(--iots-color-surface, #f8faff);
    --iots-sv3-surface-blue: var(--iots-color-surface-blue, #eff6ff);
    --iots-sv3-text: var(--iots-color-text, #101828);
    --iots-sv3-body: var(--iots-color-text-body, #475467);
    --iots-sv3-muted: var(--iots-color-text-muted, #667085);
    --iots-sv3-border: var(--iots-color-border, #e4eaf2);
    --iots-sv3-border-strong: #cbd9f3;
    --iots-sv3-white: #ffffff;
    --iots-sv3-radius-sm: 10px;
    --iots-sv3-radius-md: 16px;
    --iots-sv3-radius-lg: 24px;
    --iots-sv3-shadow-soft: 0 10px 30px rgba(16, 24, 40, .055);
    --iots-sv3-shadow-card: 0 18px 46px rgba(21, 89, 237, .09);
    --iots-sv3-shadow-hover: 0 24px 52px rgba(16, 24, 40, .13);
    --iots-sv3-mono: var(--iots-font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace);
}

/* Domyślny nagłówek Blocksy zostaje zastąpiony przez hero szablonu. */
body.iots-solution-single-v3-page .entry-header,
body.iots-solution-single-v3-page .entry-meta,
body.iots-solution-single-v3-page .author,
body.iots-solution-single-v3-page .posted-by,
body.iots-solution-single-v3-page .entry-author,
body.iots-solution-single-v3-page .meta-author,
body.iots-solution-single-v3-page .meta-date {
    display: none !important;
}

body.iots-solution-single-v3-page .iots-solution-page-v3,
body.iots-solution-single-v3-page .iots-solution-page-v3 * {
    box-sizing: border-box;
}

body.iots-solution-single-v3-page .iots-solution-page-v3 {
    width: min(calc(100% - 40px), 1240px);
    max-width: 1240px;
    margin: 0 auto;
    padding: 54px 0 92px;
    color: var(--iots-sv3-text);
}

body.iots-solution-single-v3-page .iots-solution-page-v3 h1,
body.iots-solution-single-v3-page .iots-solution-page-v3 h2,
body.iots-solution-single-v3-page .iots-solution-page-v3 h3,
body.iots-solution-single-v3-page .iots-solution-page-v3 h4 {
    color: var(--iots-sv3-text) !important;
}

body.iots-solution-single-v3-page .iots-solution-page-v3 a:focus-visible,
body.iots-solution-single-v3-page .iots-solution-page-v3 summary:focus-visible {
    outline: 3px solid rgba(21, 89, 237, .28);
    outline-offset: 4px;
}

/* ---------- wspólne komponenty ---------- */
body.iots-solution-single-v3-page .iots-dotmark {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}

body.iots-solution-single-v3-page .iots-dotmark i {
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

body.iots-solution-single-v3-page .iots-dotmark i:nth-child(1) { background: #1cb0dc; }
body.iots-solution-single-v3-page .iots-dotmark i:nth-child(2) { background: #4883c4; }
body.iots-solution-single-v3-page .iots-dotmark i:nth-child(3) { background: #1559ed; }
body.iots-solution-single-v3-page .iots-dotmark i:nth-child(4) { background: #101828; }

body.iots-solution-single-v3-page .iots-solution-page-v3 .iots-tag {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    margin: 0;
    padding: 6px 12px;
    overflow: hidden;
    color: var(--iots-sv3-blue) !important;
    border: 1px solid var(--iots-sv3-blue);
    border-radius: 999px;
    background: var(--iots-sv3-white);
    font-family: var(--iots-sv3-mono);
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 1.35;
    letter-spacing: .075em;
    text-transform: uppercase;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.iots-solution-single-v3-page .iots-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 11px 19px;
    border: 1px solid var(--iots-sv3-blue);
    border-radius: 9px;
    font-family: var(--iots-sv3-mono);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .015em;
    text-decoration: none !important;
    transition: transform .22s ease, color .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease;
}

body.iots-solution-single-v3-page .iots-button--primary {
    color: #fff !important;
    background: var(--iots-sv3-blue);
}

body.iots-solution-single-v3-page .iots-button--primary:hover {
    color: var(--iots-sv3-blue) !important;
    background: #fff;
    box-shadow: 0 10px 25px rgba(21, 89, 237, .12);
    transform: translateY(-2px);
}

body.iots-solution-single-v3-page .iots-button--outline {
    color: var(--iots-sv3-blue) !important;
    background: #fff;
}

body.iots-solution-single-v3-page .iots-button--outline:hover {
    color: #fff !important;
    background: var(--iots-sv3-blue);
    transform: translateY(-2px);
}

/* ---------- hero ---------- */
body.iots-solution-single-v3-page .iots-solution-hero-v3 {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: clamp(36px, 5vw, 72px);
    align-items: center;
    overflow: hidden;
    padding: clamp(38px, 5vw, 68px);
    border: 1px solid var(--iots-sv3-border-strong);
    border-radius: var(--iots-sv3-radius-lg);
    background: linear-gradient(130deg, rgba(239, 246, 255, .88), rgba(255, 255, 255, .98) 46%, #fff 100%);
    box-shadow: var(--iots-sv3-shadow-card);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image:
        linear-gradient(rgba(21, 89, 237, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(21, 89, 237, .035) 1px, transparent 1px);
    background-size: 34px 34px;
    content: "";
    -webkit-mask-image: linear-gradient(to right, #000, transparent 72%);
    mask-image: linear-gradient(to right, #000, transparent 72%);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__content {
    min-width: 0;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__eyebrow,
body.iots-solution-single-v3-page .iots-solution-cta-v3__eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 17px;
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .105em;
    text-transform: uppercase;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__category {
    margin-bottom: 22px;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3 h1 {
    max-width: 18ch;
    margin: 0;
    font-size: clamp(38px, 5.1vw, 64px);
    font-weight: 650;
    line-height: 1.03;
    letter-spacing: -.038em;
    text-wrap: balance;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__excerpt {
    max-width: 62ch;
    margin: 24px 0 0;
    color: var(--iots-sv3-body) !important;
    font-size: clamp(16px, 1.65vw, 18px);
    line-height: 1.7;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 34px;
    padding-top: 24px;
    border-top: 1px solid var(--iots-sv3-border);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta > div {
    min-width: 0;
    padding: 0 16px;
    border-left: 1px solid var(--iots-sv3-border);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta > div:first-child {
    padding-left: 0;
    border-left: 0;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta span,
body.iots-solution-single-v3-page .iots-solution-hero-v3__meta strong {
    display: block;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta span {
    margin-bottom: 5px;
    color: var(--iots-sv3-muted);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__meta strong {
    color: var(--iots-sv3-text);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__visual {
    position: relative;
    overflow: hidden;
    min-height: 430px;
    border: 1px solid var(--iots-sv3-border-strong);
    border-radius: 20px;
    background: var(--iots-sv3-surface);
    box-shadow: 0 20px 40px rgba(16, 24, 40, .1);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}

/* Placeholder technologiczny */
body.iots-solution-single-v3-page .iots-solution-hero-v3__placeholder {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: linear-gradient(145deg, #f8fbff, #eaf2ff);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__grid {
    position: absolute;
    inset: 0;
    opacity: .65;
    background-image:
        linear-gradient(rgba(21, 89, 237, .075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(21, 89, 237, .075) 1px, transparent 1px);
    background-size: 30px 30px;
    -webkit-mask-image: radial-gradient(circle at 64% 50%, #000 0, transparent 70%);
    mask-image: radial-gradient(circle at 64% 50%, #000 0, transparent 70%);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__source {
    position: absolute;
    left: 8%;
    display: flex;
    width: 104px;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid var(--iots-sv3-border-strong);
    border-radius: 10px;
    background: rgba(255, 255, 255, .9);
    box-shadow: var(--iots-sv3-shadow-soft);
    color: var(--iots-sv3-text);
    font-family: var(--iots-sv3-mono);
    font-size: 10px;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__source span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--iots-sv3-blue);
    box-shadow: 0 0 0 5px rgba(21, 89, 237, .1);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__source--one { top: 18%; }
body.iots-solution-single-v3-page .iots-solution-hero-v3__source--two { top: 44%; }
body.iots-solution-single-v3-page .iots-solution-hero-v3__source--three { top: 70%; }

body.iots-solution-single-v3-page .iots-solution-hero-v3__line {
    position: absolute;
    left: calc(8% + 104px);
    width: 38%;
    height: 1px;
    opacity: .65;
    background: linear-gradient(90deg, var(--iots-sv3-blue), rgba(21, 89, 237, .1));
    transform-origin: left center;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__line::after {
    position: absolute;
    top: -3px;
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--iots-sv3-blue);
    box-shadow: 0 0 0 7px rgba(21, 89, 237, .08);
    content: "";
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__line--one { top: 25%; transform: rotate(16deg); }
body.iots-solution-single-v3-page .iots-solution-hero-v3__line--two { top: 51%; transform: rotate(0deg); }
body.iots-solution-single-v3-page .iots-solution-hero-v3__line--three { top: 77%; transform: rotate(-16deg); }

body.iots-solution-single-v3-page .iots-solution-hero-v3__core {
    position: absolute;
    top: 50%;
    right: 12%;
    display: grid;
    width: 132px;
    height: 132px;
    place-items: center;
    border: 1px solid var(--iots-sv3-blue);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 14px rgba(21, 89, 237, .055), 0 18px 45px rgba(21, 89, 237, .16);
    transform: translateY(-50%);
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__core::after {
    position: absolute;
    inset: -27px;
    border: 1px dashed rgba(21, 89, 237, .25);
    border-radius: 50%;
    content: "";
    animation: iots-solution-spin-v3 18s linear infinite;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__core span,
body.iots-solution-single-v3-page .iots-solution-hero-v3__core strong {
    position: absolute;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__core span {
    top: 35px;
    color: var(--iots-sv3-muted);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    letter-spacing: .1em;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__core strong {
    top: 52px;
    color: var(--iots-sv3-blue);
    font-size: 30px;
    letter-spacing: -.04em;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__status {
    position: absolute;
    right: 8%;
    bottom: 7%;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--iots-sv3-muted);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    letter-spacing: .07em;
}

body.iots-solution-single-v3-page .iots-solution-hero-v3__status span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #20a36a;
    box-shadow: 0 0 0 5px rgba(32, 163, 106, .1);
}

@keyframes iots-solution-spin-v3 {
    to { transform: rotate(360deg); }
}

/* ---------- przepływ rozwiązania ---------- */
body.iots-solution-single-v3-page .iots-solution-flow-v3 {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: 18px;
    align-items: stretch;
    margin-top: 26px;
    padding: 24px;
    border: 1px solid var(--iots-sv3-border);
    border-radius: var(--iots-sv3-radius-md);
    background: #fff;
    box-shadow: var(--iots-sv3-shadow-soft);
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__step {
    padding: 10px 8px;
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__step > span {
    display: block;
    margin-bottom: 8px;
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .085em;
    text-transform: uppercase;
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__step strong {
    display: block;
    margin-bottom: 7px;
    color: var(--iots-sv3-text);
    font-size: 15px;
    line-height: 1.35;
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__step p {
    margin: 0;
    color: var(--iots-sv3-muted);
    font-size: 12.5px;
    line-height: 1.55;
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__step--accent {
    border-radius: 12px;
    background: var(--iots-sv3-surface-blue);
}

body.iots-solution-single-v3-page .iots-solution-flow-v3__arrow {
    align-self: center;
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 20px;
}

/* ---------- układ i spis treści ---------- */
body.iots-solution-single-v3-page .iots-solution-layout-v3 {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: clamp(30px, 4vw, 58px);
    align-items: start;
    margin-top: clamp(54px, 7vw, 88px);
    scroll-margin-top: 110px;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3 {
    position: relative;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3__inner {
    position: sticky;
    top: 110px;
    padding: 20px;
    border: 1px solid var(--iots-sv3-border);
    border-radius: var(--iots-sv3-radius-md);
    background: #fff;
    box-shadow: var(--iots-sv3-shadow-soft);
}

body.iots-solution-single-v3-page .iots-solution-toc-v3__eyebrow {
    display: block;
    margin-bottom: 15px;
    color: var(--iots-sv3-muted);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3 ol {
    display: grid;
    gap: 3px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3 a {
    display: grid;
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 7px;
    align-items: start;
    padding: 8px 9px;
    color: var(--iots-sv3-body) !important;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none !important;
    transition: color .2s ease, background .2s ease;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3 a > span {
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    font-weight: 600;
}

body.iots-solution-single-v3-page .iots-solution-toc-v3 a:hover,
body.iots-solution-single-v3-page .iots-solution-toc-v3 a[aria-current="location"] {
    color: var(--iots-sv3-blue) !important;
    background: var(--iots-sv3-surface-blue);
}

body.iots-solution-single-v3-page .iots-solution-sections-v3 {
    display: grid;
    gap: 28px;
    min-width: 0;
}

/* ---------- sekcje ---------- */
body.iots-solution-single-v3-page .iots-solution-section-v3 {
    position: relative;
    margin: 0;
    padding: clamp(28px, 4vw, 42px);
    scroll-margin-top: 105px;
    border: 1px solid var(--iots-sv3-border-strong);
    border-radius: var(--iots-sv3-radius-lg);
    background: #fff;
    box-shadow: var(--iots-sv3-shadow-soft);
}

body.iots-solution-single-v3-page .iots-solution-section-v3--problem {
    overflow: hidden;
    background: linear-gradient(140deg, var(--iots-sv3-surface-blue), #fff 72%);
    border-color: #bcd0f5;
}

body.iots-solution-single-v3-page .iots-solution-section-v3--problem::after {
    position: absolute;
    top: -78px;
    right: -50px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(21, 89, 237, .13);
    border-radius: 50%;
    content: "";
}

body.iots-solution-single-v3-page .iots-solution-section-v3--how {
    background-image:
        linear-gradient(rgba(21, 89, 237, .027) 1px, transparent 1px),
        linear-gradient(90deg, rgba(21, 89, 237, .027) 1px, transparent 1px);
    background-size: 30px 30px;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__header {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 26px;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__number {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    color: var(--iots-sv3-blue);
    border: 1px solid var(--iots-sv3-blue-soft);
    border-radius: 11px;
    background: var(--iots-sv3-surface-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 11px;
    font-weight: 600;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__eyebrow {
    display: block;
    margin-bottom: 7px;
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__header h2 {
    margin: 0;
    font-size: clamp(25px, 3vw, 34px);
    font-weight: 650;
    line-height: 1.12;
    letter-spacing: -.025em;
    text-wrap: balance;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__content {
    position: relative;
    z-index: 1;
    color: var(--iots-sv3-body);
    font-size: 16px;
    line-height: 1.78;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__content > :first-child { margin-top: 0; }
body.iots-solution-single-v3-page .iots-solution-section-v3__content > :last-child { margin-bottom: 0; }

body.iots-solution-single-v3-page .iots-solution-section-v3__content p,
body.iots-solution-single-v3-page .iots-solution-section-v3__content ul,
body.iots-solution-single-v3-page .iots-solution-section-v3__content ol,
body.iots-solution-single-v3-page .iots-solution-section-v3__content blockquote {
    max-width: 76ch;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__content h3 {
    margin: 31px 0 12px;
    font-size: 21px;
    line-height: 1.3;
}

body.iots-solution-single-v3-page .iots-solution-section-v3__content a {
    color: var(--iots-sv3-blue);
}

body.iots-solution-single-v3-page .iots-solution-section-v3__content blockquote {
    margin: 28px 0;
    padding: 20px 22px;
    color: var(--iots-sv3-text);
    border-left: 4px solid var(--iots-sv3-blue);
    border-radius: 0 12px 12px 0;
    background: var(--iots-sv3-surface-blue);
}

/* ---------- korzyści ---------- */
body.iots-solution-single-v3-page .iots-solution-benefits-grid-v3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

body.iots-solution-single-v3-page .iots-solution-benefit-card-v3 {
    position: relative;
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--iots-sv3-border);
    border-radius: var(--iots-sv3-radius-md);
    background: #fff;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

body.iots-solution-single-v3-page .iots-solution-benefit-card-v3:hover {
    border-color: var(--iots-sv3-blue);
    box-shadow: var(--iots-sv3-shadow-card);
    transform: translateY(-4px);
}

body.iots-solution-single-v3-page .iots-solution-benefit-card-v3__number {
    display: block;
    margin-bottom: 20px;
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 11px;
    font-weight: 600;
}

body.iots-solution-single-v3-page .iots-solution-benefit-card-v3 h3 {
    margin: 0 0 10px;
    font-size: 17px;
    line-height: 1.35;
}

body.iots-solution-single-v3-page .iots-solution-benefit-card-v3__text,
body.iots-solution-single-v3-page .iots-solution-benefit-card-v3__text p {
    margin: 0;
    color: var(--iots-sv3-muted);
    font-size: 13.5px;
    line-height: 1.6;
}

/* ---------- specyfikacja ---------- */
body.iots-solution-single-v3-page .iots-solution-spec-v3 {
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--iots-sv3-border);
    border-radius: var(--iots-sv3-radius-md);
    background: #fff;
}

body.iots-solution-single-v3-page .iots-solution-spec-v3__row {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr);
    margin: 0;
    border-top: 1px solid var(--iots-sv3-border);
}

body.iots-solution-single-v3-page .iots-solution-spec-v3__row:first-child {
    border-top: 0;
}

body.iots-solution-single-v3-page .iots-solution-spec-v3 dt,
body.iots-solution-single-v3-page .iots-solution-spec-v3 dd {
    margin: 0;
    padding: 15px 18px;
    font-size: 13.5px;
    line-height: 1.5;
}

body.iots-solution-single-v3-page .iots-solution-spec-v3 dt {
    color: var(--iots-sv3-text);
    background: var(--iots-sv3-surface);
    font-weight: 650;
}

body.iots-solution-single-v3-page .iots-solution-spec-v3 dd {
    color: var(--iots-sv3-body);
    border-left: 1px solid var(--iots-sv3-border);
}

/* ---------- FAQ ---------- */
body.iots-solution-single-v3-page .iots-solution-faq-v3 {
    display: grid;
    gap: 10px;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__item {
    overflow: hidden;
    border: 1px solid var(--iots-sv3-border);
    border-radius: 13px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__item[open] {
    border-color: var(--iots-sv3-blue);
    box-shadow: 0 12px 30px rgba(21, 89, 237, .07);
}

body.iots-solution-single-v3-page .iots-solution-faq-v3 summary {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 24px;
    gap: 12px;
    align-items: center;
    padding: 18px 19px;
    color: var(--iots-sv3-text);
    cursor: pointer;
    list-style: none;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3 summary::-webkit-details-marker {
    display: none;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__number {
    color: var(--iots-sv3-blue);
    font-family: var(--iots-sv3-mono);
    font-size: 10px;
    font-weight: 600;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__question {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.45;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__icon {
    position: relative;
    width: 20px;
    height: 20px;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__icon::before,
body.iots-solution-single-v3-page .iots-solution-faq-v3__icon::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 1.5px;
    background: var(--iots-sv3-blue);
    content: "";
    transform: translate(-50%, -50%);
    transition: transform .2s ease;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__item[open] .iots-solution-faq-v3__icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__answer {
    padding: 0 19px 19px 65px;
    color: var(--iots-sv3-body);
    font-size: 14px;
    line-height: 1.7;
}

body.iots-solution-single-v3-page .iots-solution-faq-v3__answer > :first-child { margin-top: 0; }
body.iots-solution-single-v3-page .iots-solution-faq-v3__answer > :last-child { margin-bottom: 0; }

/* ---------- rozwiązania powiązane ---------- */
body.iots-solution-single-v3-page .iots-solution-related-grid-v3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3 {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--iots-sv3-border);
    border-radius: var(--iots-sv3-radius-md);
    background: #fff;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3:hover {
    border-color: var(--iots-sv3-blue);
    box-shadow: var(--iots-sv3-shadow-hover);
    transform: translateY(-4px);
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__media {
    display: block;
    overflow: hidden;
    height: 130px;
    border-bottom: 1px solid var(--iots-sv3-border);
    background: var(--iots-sv3-surface);
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3:hover .iots-solution-related-card-v3__image {
    transform: scale(1.035);
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background:
        linear-gradient(rgba(21, 89, 237, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(21, 89, 237, .045) 1px, transparent 1px),
        var(--iots-sv3-surface-blue);
    background-size: 25px 25px;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__placeholder span {
    width: 11px;
    height: 11px;
    border: 2px solid var(--iots-sv3-blue);
    border-radius: 50%;
    background: #fff;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__placeholder span:nth-child(2) {
    width: 28px;
    height: 28px;
    background: var(--iots-sv3-blue);
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__body {
    display: flex;
    flex: 1;
    min-width: 0;
    flex-direction: column;
    padding: 19px;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__tag {
    margin-bottom: 12px !important;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3 h3 {
    margin: 0 0 10px;
    font-size: 17px;
    line-height: 1.35;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3 h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3 h3 a:hover {
    color: var(--iots-sv3-blue) !important;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3 p {
    flex: 1;
    margin: 0 0 17px;
    color: var(--iots-sv3-muted);
    font-size: 13px;
    line-height: 1.58;
}

body.iots-solution-single-v3-page .iots-solution-related-card-v3__link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 5px;
    margin-top: auto;
    color: var(--iots-sv3-blue) !important;
    font-family: var(--iots-sv3-mono);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .045em;
    text-decoration: none !important;
    text-transform: uppercase;
}

/* ---------- CTA ---------- */
body.iots-solution-single-v3-page .iots-solution-cta-v3 {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 36px;
    align-items: center;
    overflow: hidden;
    margin-top: clamp(52px, 7vw, 82px);
    padding: clamp(34px, 5vw, 54px);
    border: 1px solid var(--iots-sv3-blue);
    border-radius: var(--iots-sv3-radius-lg);
    background: linear-gradient(125deg, var(--iots-sv3-surface-blue), #fff 62%);
    box-shadow: var(--iots-sv3-shadow-card);
}

body.iots-solution-single-v3-page .iots-solution-cta-v3::after {
    position: absolute;
    z-index: -1;
    top: -100px;
    right: -55px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(21, 89, 237, .16);
    border-radius: 50%;
    box-shadow: 0 0 0 33px rgba(21, 89, 237, .035), 0 0 0 68px rgba(21, 89, 237, .025);
    content: "";
}

body.iots-solution-single-v3-page .iots-solution-cta-v3__eyebrow {
    margin-bottom: 13px;
}

body.iots-solution-single-v3-page .iots-solution-cta-v3 h2 {
    max-width: 780px;
    margin: 0;
    font-size: clamp(27px, 3.5vw, 40px);
    line-height: 1.12;
    letter-spacing: -.025em;
    text-wrap: balance;
}

body.iots-solution-single-v3-page .iots-solution-cta-v3 p {
    max-width: 720px;
    margin: 16px 0 0;
    color: var(--iots-sv3-body);
    font-size: 15px;
    line-height: 1.65;
}

body.iots-solution-single-v3-page .iots-solution-cta-v3__actions {
    display: flex;
    min-width: 210px;
    flex-direction: column;
    gap: 10px;
}

/* ---------- responsywność ---------- */
@media (max-width: 1080px) {
    body.iots-solution-single-v3-page .iots-solution-hero-v3 {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3 h1 {
        max-width: 20ch;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__visual {
        min-height: 390px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__image {
        min-height: 390px;
    }

    body.iots-solution-single-v3-page .iots-solution-layout-v3 {
        grid-template-columns: 200px minmax(0, 1fr);
        gap: 30px;
    }

    body.iots-solution-single-v3-page .iots-solution-benefits-grid-v3,
    body.iots-solution-single-v3-page .iots-solution-related-grid-v3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    body.iots-solution-single-v3-page .iots-solution-page-v3 {
        width: min(calc(100% - 30px), 1240px);
        padding-top: 30px;
    }

    body.iots-solution-single-v3-page .iots-solution-flow-v3 {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    body.iots-solution-single-v3-page .iots-solution-flow-v3__arrow {
        justify-self: center;
        transform: rotate(90deg);
    }

    body.iots-solution-single-v3-page .iots-solution-layout-v3 {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-toc-v3__inner {
        position: static;
    }

    body.iots-solution-single-v3-page .iots-solution-toc-v3 ol {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.iots-solution-single-v3-page .iots-solution-cta-v3 {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-cta-v3__actions {
        min-width: 0;
        flex-flow: row wrap;
    }
}

@media (max-width: 620px) {
    body.iots-solution-single-v3-page .iots-solution-page-v3 {
        width: min(calc(100% - 22px), 1240px);
        padding: 20px 0 62px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3 {
        gap: 30px;
        padding: 27px 22px 22px;
        border-radius: 18px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3 h1 {
        font-size: clamp(34px, 11vw, 46px);
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__actions,
    body.iots-solution-single-v3-page .iots-solution-cta-v3__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-button {
        width: 100%;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__meta {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__meta > div {
        padding: 0;
        border-left: 0;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__visual,
    body.iots-solution-single-v3-page .iots-solution-hero-v3__image {
        min-height: 320px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__source {
        left: 5%;
        width: 90px;
        padding: 8px 9px;
        font-size: 9px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__line {
        left: calc(5% + 90px);
        width: 31%;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__core {
        right: 7%;
        width: 112px;
        height: 112px;
    }

    body.iots-solution-single-v3-page .iots-solution-hero-v3__core span { top: 28px; }
    body.iots-solution-single-v3-page .iots-solution-hero-v3__core strong { top: 43px; font-size: 27px; }

    body.iots-solution-single-v3-page .iots-solution-flow-v3 {
        padding: 17px;
    }

    body.iots-solution-single-v3-page .iots-solution-toc-v3 ol {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-section-v3 {
        padding: 25px 21px;
        border-radius: 18px;
    }

    body.iots-solution-single-v3-page .iots-solution-section-v3__header {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 13px;
    }

    body.iots-solution-single-v3-page .iots-solution-section-v3__number {
        width: 38px;
        height: 38px;
    }

    body.iots-solution-single-v3-page .iots-solution-section-v3__content {
        font-size: 15px;
    }

    body.iots-solution-single-v3-page .iots-solution-benefits-grid-v3,
    body.iots-solution-single-v3-page .iots-solution-related-grid-v3 {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-spec-v3__row {
        grid-template-columns: 1fr;
    }

    body.iots-solution-single-v3-page .iots-solution-spec-v3 dd {
        border-top: 1px solid var(--iots-sv3-border);
        border-left: 0;
    }

    body.iots-solution-single-v3-page .iots-solution-faq-v3 summary {
        grid-template-columns: 27px minmax(0, 1fr) 22px;
        gap: 9px;
        padding: 16px;
    }

    body.iots-solution-single-v3-page .iots-solution-faq-v3__answer {
        padding: 0 16px 17px 52px;
    }

    body.iots-solution-single-v3-page .iots-solution-cta-v3 {
        padding: 29px 22px;
        border-radius: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.iots-solution-single-v3-page .iots-solution-page-v3 *,
    body.iots-solution-single-v3-page .iots-solution-page-v3 *::before,
    body.iots-solution-single-v3-page .iots-solution-page-v3 *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ==========================================================
   IOTS — INTERAKTYWNY HERO STRONY GŁÓWNEJ v2

   Shortcode:
   [iots_home_hero]

   Ten blok jest niezależny od wcześniejszych stylów.
   Wklej go na samym końcu Additional CSS.
   ========================================================== */

.iots-home-hero-v2 {
    --iots-h2-bg: #f7f8fc;
    --iots-h2-white: #ffffff;
    --iots-h2-navy: #26225b;
    --iots-h2-indigo: #2d2a7d;
    --iots-h2-blue: #4883c4;
    --iots-h2-cyan: #1cb0dc;
    --iots-h2-accent: #1d6e92;
    --iots-h2-text: #1a1750;
    --iots-h2-body: #4c4f79;
    --iots-h2-muted: #7b7ea0;
    --iots-h2-line: rgba(26, 23, 80, 0.09);
    --iots-h2-line-strong: rgba(26, 23, 80, 0.16);
    --iots-h2-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-h2-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-h2-text);
    background: var(--iots-h2-bg);
    border-top: 1px solid var(--iots-h2-line);
    border-bottom: 1px solid var(--iots-h2-line);
    font-family: var(--iots-h2-font);
    -webkit-font-smoothing: antialiased;
}

.iots-home-hero-v2--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-home-hero-v2,
.iots-home-hero-v2 * {
    box-sizing: border-box;
}

.iots-home-hero-v2__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 900px 600px at 82% -5%,
            rgba(28, 176, 220, 0.11),
            transparent 60%
        ),
        radial-gradient(
            ellipse 700px 500px at -5% 32%,
            rgba(45, 42, 125, 0.08),
            transparent 60%
        );
    pointer-events: none;
}

.iots-home-hero-v2__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-inline: clamp(20px, 3.4vw, 40px);
}

.iots-home-hero-v2__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(390px, 0.95fr);
    gap: clamp(34px, 4vw, 64px);
    align-items: center;
    min-height: 660px;
    padding-block:
        clamp(74px, 8vw, 104px)
        clamp(60px, 6.5vw, 78px);
}

.iots-home-hero-v2__content {
    min-width: 0;
}

.iots-home-hero-v2__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--iots-h2-accent);
    font-family: var(--iots-h2-mono);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.iots-home-hero-v2__dotring {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.iots-home-hero-v2__title {
    max-width: 790px;
    margin: 22px 0 24px !important;
    padding: 0 !important;
    color: var(--iots-h2-text) !important;
    font-family: var(--iots-h2-font) !important;
    font-size: clamp(42px, 4.6vw, 64px) !important;
    font-weight: 700 !important;
    line-height: 1.055 !important;
    letter-spacing: -0.032em !important;
    text-transform: none !important;
}

.iots-home-hero-v2__title-line,
.iots-home-hero-v2__title-accent {
    display: block;
}

.iots-home-hero-v2__title-accent {
    padding-bottom: 0.08em;
    background:
        linear-gradient(
            100deg,
            var(--iots-h2-cyan),
            var(--iots-h2-blue) 58%,
            var(--iots-h2-indigo)
        );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}

.iots-home-hero-v2__lead {
    max-width: 590px;
    margin: 0 0 34px !important;
    padding: 0 !important;
    color: var(--iots-h2-body) !important;
    font-family: var(--iots-h2-font) !important;
    font-size: clamp(17px, 1.4vw, 19px) !important;
    font-weight: 400 !important;
    line-height: 1.66 !important;
}

.iots-home-hero-v2__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 42px;
}

.iots-home-hero-v2__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 23px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: var(--iots-h2-font) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    transition:
        transform 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease;
}

.iots-home-hero-v2__button--primary {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            var(--iots-h2-cyan),
            var(--iots-h2-blue)
        ) !important;
    border-color: var(--iots-h2-blue) !important;
    box-shadow:
        0 12px 26px -16px rgba(45, 42, 125, 0.62) !important;
}

.iots-home-hero-v2__button--primary:hover,
.iots-home-hero-v2__button--primary:focus-visible {
    color: var(--iots-h2-blue) !important;
    background: var(--iots-h2-white) !important;
    border-color: var(--iots-h2-blue) !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 30px -18px rgba(45, 42, 125, 0.5) !important;
}

.iots-home-hero-v2__button--secondary {
    color: var(--iots-h2-text) !important;
    background: rgba(255, 255, 255, 0.58) !important;
    border-color: var(--iots-h2-line-strong) !important;
    backdrop-filter: blur(8px);
}

.iots-home-hero-v2__button--secondary:hover,
.iots-home-hero-v2__button--secondary:focus-visible {
    color: var(--iots-h2-blue) !important;
    background: var(--iots-h2-white) !important;
    border-color: var(--iots-h2-blue) !important;
    transform: translateY(-2px);
}

.iots-home-hero-v2__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.28) !important;
    outline-offset: 3px;
}

.iots-home-hero-v2__proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 32px);
    padding-top: 27px;
    border-top: 1px solid var(--iots-h2-line);
}

.iots-home-hero-v2__proof-item {
    min-width: 0;
}

.iots-home-hero-v2__proof-item strong {
    display: block;
    margin: 0 0 5px;
    color: var(--iots-h2-text);
    font-family: var(--iots-h2-mono);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.4;
}

.iots-home-hero-v2__proof-item span {
    display: block;
    color: var(--iots-h2-muted);
    font-size: 12.5px;
    line-height: 1.55;
}

/* ==========================================================
   WIZUALIZACJA ITS
   ========================================================== */

.iots-home-hero-v2__visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 480px;
    perspective: 1200px;
}

.iots-home-hero-v2__orbit-shell {
    width: 100%;
    transform-style: preserve-3d;
    transition: transform 250ms cubic-bezier(0.2, 0.7, 0.3, 1);
    will-change: transform;
}

.iots-home-hero-v2__svg {
    display: block;
    width: min(100%, 530px);
    height: auto;
    margin: 0 auto;
    overflow: visible;
}

.iots-home-hero-v2__ring {
    transform-box: fill-box;
    transform-origin: center;
}

.iots-home-hero-v2__ring--forward {
    animation: iots-home-hero-v2-spin 90s linear infinite;
}

.iots-home-hero-v2__ring--reverse {
    animation: iots-home-hero-v2-spin-reverse 130s linear infinite;
}

.iots-home-hero-v2__connectors path {
    opacity: 0.55;
    stroke-width: 1.4;
    transition:
        opacity 250ms ease,
        stroke-width 250ms ease,
        filter 250ms ease;
}

.iots-home-hero-v2__svg.has-active-node
.iots-home-hero-v2__connectors path {
    opacity: 0.14;
}

.iots-home-hero-v2__svg.has-active-node
.iots-home-hero-v2__connectors path.is-active {
    opacity: 1;
    stroke-width: 2;
    filter:
        drop-shadow(0 0 4px rgba(28, 176, 220, 0.55));
}

.iots-home-hero-v2__particles {
    transition: opacity 200ms ease;
}

.iots-home-hero-v2__svg.has-active-node
.iots-home-hero-v2__particles {
    opacity: 0.17;
}

.iots-home-hero-v2__core-glow {
    transform-box: fill-box;
    transform-origin: center;
    animation:
        iots-home-hero-v2-pulse 3.2s ease-in-out infinite;
}

.iots-home-hero-v2__core-ring {
    transform-origin: 240px 240px;
    animation:
        iots-home-hero-v2-spin 40s linear infinite;
    opacity: 0.72;
}

.iots-home-hero-v2__node {
    cursor: pointer;
    outline: none;
}

.iots-home-hero-v2__node-hit {
    pointer-events: all;
}

.iots-home-hero-v2__node-halo {
    opacity: 0;
    transform: scale(0.4);
    transform-box: fill-box;
    transform-origin: center;
    transition:
        opacity 220ms ease,
        transform 220ms ease;
}

.iots-home-hero-v2__node-dot {
    transform-box: fill-box;
    transform-origin: center;
    transition:
        transform 220ms cubic-bezier(0.2, 0.8, 0.3, 1.3),
        filter 220ms ease;
}

.iots-home-hero-v2__node:hover
.iots-home-hero-v2__node-dot,
.iots-home-hero-v2__node:focus
.iots-home-hero-v2__node-dot,
.iots-home-hero-v2__node.is-active
.iots-home-hero-v2__node-dot {
    transform: scale(1.5);
    filter:
        drop-shadow(0 0 6px rgba(28, 176, 220, 0.8));
}

.iots-home-hero-v2__node:hover
.iots-home-hero-v2__node-halo,
.iots-home-hero-v2__node:focus
.iots-home-hero-v2__node-halo,
.iots-home-hero-v2__node.is-active
.iots-home-hero-v2__node-halo {
    opacity: 0.18;
    transform: scale(1);
}

.iots-home-hero-v2__node-label {
    fill: var(--iots-h2-body);
    font-family: var(--iots-h2-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.04em;
    opacity: 0.86;
    pointer-events: none;
    transition:
        opacity 200ms ease,
        fill 200ms ease;
}

.iots-home-hero-v2__node-label--core {
    fill: #ffffff;
    font-size: 10.5px;
    font-weight: 600;
    opacity: 1;
}

.iots-home-hero-v2__node:hover
.iots-home-hero-v2__node-label,
.iots-home-hero-v2__node:focus
.iots-home-hero-v2__node-label,
.iots-home-hero-v2__node.is-active
.iots-home-hero-v2__node-label {
    fill: var(--iots-h2-text);
    opacity: 1;
}

.iots-home-hero-v2__svg.has-active-node
.iots-home-hero-v2__node:not(.is-active)
.iots-home-hero-v2__node-label {
    opacity: 0.34;
}

/* Tooltip węzła */
.iots-home-hero-v2__tooltip {
    position: absolute;
    z-index: 5;
    top: 0;
    left: 0;
    width: max-content;
    max-width: 220px;
    padding: 12px 16px;
    opacity: 0;
    pointer-events: none;
    color: var(--iots-h2-text);
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--iots-h2-line-strong);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(26, 23, 80, 0.14);
    backdrop-filter: blur(10px);
    transform:
        translate(-50%, -100%)
        translateY(-14px)
        scale(0.94);
    transition:
        opacity 160ms ease,
        transform 160ms ease;
}

.iots-home-hero-v2__tooltip.is-visible {
    opacity: 1;
    transform:
        translate(-50%, -100%)
        translateY(-20px)
        scale(1);
}

.iots-home-hero-v2__tooltip strong {
    display: block;
    margin: 0 0 4px;
    color: var(--iots-h2-navy);
    font-family: var(--iots-h2-mono);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.iots-home-hero-v2__tooltip span {
    display: block;
    color: var(--iots-h2-muted);
    font-size: 12.5px;
    line-height: 1.45;
}

@keyframes iots-home-hero-v2-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes iots-home-hero-v2-spin-reverse {
    to {
        transform: rotate(-360deg);
    }
}

@keyframes iots-home-hero-v2-pulse {
    0%,
    100% {
        opacity: 0.85;
        transform: scale(1);
    }

    50% {
        opacity: 0.35;
        transform: scale(1.12);
    }
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 980px) {
    .iots-home-hero-v2__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        padding-top: 62px;
    }

    .iots-home-hero-v2__content {
        max-width: 780px;
    }

    .iots-home-hero-v2__title {
        font-size: clamp(40px, 7vw, 56px) !important;
    }

    .iots-home-hero-v2__visual {
        min-height: 390px;
    }

    .iots-home-hero-v2__visual-first
    .iots-home-hero-v2__visual {
        order: -1;
    }

    .iots-home-hero-v2__svg {
        width: min(100%, 480px);
    }
}

/* ==========================================================
   TELEFON
   ========================================================== */

@media (max-width: 640px) {
    .iots-home-hero-v2__inner {
        padding-inline: 20px;
    }

    .iots-home-hero-v2__grid {
        gap: 30px;
        padding-block: 52px 44px;
    }

    .iots-home-hero-v2__eyebrow {
        font-size: 10.5px;
        letter-spacing: 0.105em;
    }

    .iots-home-hero-v2__title {
        margin-top: 18px !important;
        font-size: clamp(36px, 11vw, 47px) !important;
        line-height: 1.08 !important;
    }

    .iots-home-hero-v2__lead {
        margin-bottom: 27px !important;
        font-size: 16px !important;
        line-height: 1.62 !important;
    }

    .iots-home-hero-v2__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 32px;
    }

    .iots-home-hero-v2__button {
        width: 100%;
    }

    .iots-home-hero-v2__proof {
        grid-template-columns: minmax(0, 1fr);
        gap: 17px;
    }

    .iots-home-hero-v2__proof-item {
        padding-left: 14px;
        border-left:
            2px solid rgba(28, 176, 220, 0.55);
    }

    .iots-home-hero-v2__visual {
        min-height: 310px;
    }

    .iots-home-hero-v2__node-label {
        font-size: 10px;
    }

    .iots-home-hero-v2__tooltip {
        max-width: 180px;
        padding: 10px 12px;
    }
}

/* ==========================================================
   OGRANICZENIE ANIMACJI
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
    .iots-home-hero-v2 *,
    .iots-home-hero-v2 *::before,
    .iots-home-hero-v2 *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .iots-home-hero-v2__orbit-shell {
        transform: none !important;
    }
}

/* ==========================================================
   IOTS — HERO STRONY PRODUKTY v1

   Shortcode:
   [iots_products_hero]

   Wklej cały blok na końcu Additional CSS.
   ========================================================== */

.iots-products-hero-v1 {
    --iots-ph-bg: #f7f8fc;
    --iots-ph-surface: #ffffff;
    --iots-ph-surface-alt: #eef1fa;
    --iots-ph-navy: #26225b;
    --iots-ph-indigo: #2d2a7d;
    --iots-ph-blue: #4883c4;
    --iots-ph-cyan: #1cb0dc;
    --iots-ph-accent: #1d6e92;
    --iots-ph-text: #1a1750;
    --iots-ph-body: #4c4f79;
    --iots-ph-muted: #7b7ea0;
    --iots-ph-line: rgba(26, 23, 80, 0.09);
    --iots-ph-line-strong: rgba(26, 23, 80, 0.16);
    --iots-ph-shadow: 0 28px 70px -42px rgba(26, 23, 80, 0.4);
    --iots-ph-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-ph-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-ph-text);
    background: var(--iots-ph-bg);
    border-top: 1px solid var(--iots-ph-line);
    border-bottom: 1px solid var(--iots-ph-line);
    font-family: var(--iots-ph-font);
    -webkit-font-smoothing: antialiased;
}

.iots-products-hero-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-products-hero-v1,
.iots-products-hero-v1 * {
    box-sizing: border-box;
}

.iots-products-hero-v1__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 780px 520px at 85% 5%,
            rgba(28, 176, 220, 0.1),
            transparent 61%
        ),
        radial-gradient(
            ellipse 620px 450px at -3% 60%,
            rgba(45, 42, 125, 0.075),
            transparent 62%
        ),
        linear-gradient(
            rgba(26, 23, 80, 0.024) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.024) 1px,
            transparent 1px
        );
    background-size: auto, auto, 42px 42px, 42px 42px;
    pointer-events: none;
}

.iots-products-hero-v1__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-inline: clamp(20px, 3.4vw, 40px);
}

.iots-products-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(430px, 0.98fr);
    gap: clamp(42px, 5vw, 76px);
    align-items: center;
    min-height: 650px;
    padding-block:
        clamp(72px, 7.5vw, 100px)
        clamp(62px, 6.5vw, 84px);
}

.iots-products-hero-v1__content {
    min-width: 0;
}

.iots-products-hero-v1__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--iots-ph-accent);
    font-family: var(--iots-ph-mono);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.iots-products-hero-v1__dotring {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.iots-products-hero-v1__title {
    max-width: 760px;
    margin: 22px 0 24px !important;
    padding: 0 !important;
    color: var(--iots-ph-text) !important;
    font-family: var(--iots-ph-font) !important;
    font-size: clamp(42px, 4.5vw, 62px) !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.032em !important;
    text-transform: none !important;
}

.iots-products-hero-v1__title-line,
.iots-products-hero-v1__title-accent {
    display: block;
}

.iots-products-hero-v1__title-accent {
    padding-bottom: 0.08em;
    background:
        linear-gradient(
            100deg,
            var(--iots-ph-cyan),
            var(--iots-ph-blue) 58%,
            var(--iots-ph-indigo)
        );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}

.iots-products-hero-v1__lead {
    max-width: 590px;
    margin: 0 0 34px !important;
    padding: 0 !important;
    color: var(--iots-ph-body) !important;
    font-family: var(--iots-ph-font) !important;
    font-size: clamp(17px, 1.35vw, 18.5px) !important;
    font-weight: 400 !important;
    line-height: 1.66 !important;
}

.iots-products-hero-v1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 40px;
}

.iots-products-hero-v1__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 23px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: var(--iots-ph-font) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    transition:
        transform 180ms ease,
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.iots-products-hero-v1__button--primary {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            var(--iots-ph-cyan),
            var(--iots-ph-blue)
        ) !important;
    border-color: var(--iots-ph-blue) !important;
    box-shadow:
        0 12px 26px -16px rgba(45, 42, 125, 0.62) !important;
}

.iots-products-hero-v1__button--primary:hover,
.iots-products-hero-v1__button--primary:focus-visible {
    color: var(--iots-ph-blue) !important;
    background: var(--iots-ph-surface) !important;
    border-color: var(--iots-ph-blue) !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 30px -18px rgba(45, 42, 125, 0.5) !important;
}

.iots-products-hero-v1__button--secondary {
    color: var(--iots-ph-text) !important;
    background: rgba(255, 255, 255, 0.62) !important;
    border-color: var(--iots-ph-line-strong) !important;
    backdrop-filter: blur(8px);
}

.iots-products-hero-v1__button--secondary:hover,
.iots-products-hero-v1__button--secondary:focus-visible {
    color: var(--iots-ph-blue) !important;
    background: var(--iots-ph-surface) !important;
    border-color: var(--iots-ph-blue) !important;
    transform: translateY(-2px);
}

.iots-products-hero-v1__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.28) !important;
    outline-offset: 3px;
}

.iots-products-hero-v1__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 30px);
    padding-top: 26px;
    border-top: 1px solid var(--iots-ph-line);
}

.iots-products-hero-v1__stat {
    min-width: 0;
}

.iots-products-hero-v1__stat strong {
    display: block;
    margin: 0 0 4px;
    color: var(--iots-ph-text);
    font-family: var(--iots-ph-mono);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
}

.iots-products-hero-v1__stat span {
    display: block;
    color: var(--iots-ph-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

/* ==========================================================
   STATYCZNY PANEL PRODUKTOWY
   ========================================================== */

.iots-products-hero-v1__visual {
    min-width: 0;
}

.iots-products-hero-v1__panel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 18px;
    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(28, 176, 220, 0.1),
            transparent 36%
        ),
        rgba(255, 255, 255, 0.86);
    border: 1px solid var(--iots-ph-line-strong);
    border-radius: 20px;
    box-shadow: var(--iots-ph-shadow);
    backdrop-filter: blur(14px);
}

.iots-products-hero-v1__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        );
    background-size: 28px 28px;
    pointer-events: none;
}

.iots-products-hero-v1__panel > * {
    position: relative;
    z-index: 1;
}

.iots-products-hero-v1__panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 42px;
    padding: 0 4px 14px;
    border-bottom: 1px solid var(--iots-ph-line);
}

.iots-products-hero-v1__panel-label {
    color: var(--iots-ph-muted);
    font-family: var(--iots-ph-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-products-hero-v1__panel-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--iots-ph-accent);
    font-family: var(--iots-ph-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.iots-products-hero-v1__panel-status i {
    width: 7px;
    height: 7px;
    background: var(--iots-ph-cyan);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.12);
}

.iots-products-hero-v1__product-grid {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.iots-products-hero-v1__product-card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 104px;
    padding: 15px 16px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--iots-ph-line);
    border-radius: 13px;
}

.iots-products-hero-v1__product-card:nth-child(2) {
    margin-left: 22px;
}

.iots-products-hero-v1__product-card:nth-child(3) {
    margin-left: 44px;
}

.iots-products-hero-v1__product-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    color: var(--iots-ph-blue);
    background:
        linear-gradient(
            145deg,
            rgba(28, 176, 220, 0.1),
            rgba(72, 131, 196, 0.06)
        );
    border: 1px solid rgba(72, 131, 196, 0.22);
    border-radius: 12px;
}

.iots-products-hero-v1__product-card:nth-child(2)
.iots-products-hero-v1__product-icon {
    color: var(--iots-ph-cyan);
}

.iots-products-hero-v1__product-card:nth-child(3)
.iots-products-hero-v1__product-icon {
    color: var(--iots-ph-indigo);
}

.iots-products-hero-v1__product-icon svg {
    display: block;
    width: 36px;
    height: 36px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-products-hero-v1__product-copy {
    min-width: 0;
}

.iots-products-hero-v1__product-copy > span {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ph-accent);
    font-family: var(--iots-ph-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.iots-products-hero-v1__product-copy strong {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ph-text);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.iots-products-hero-v1__product-copy small {
    display: block;
    color: var(--iots-ph-muted);
    font-size: 11.5px;
    line-height: 1.42;
}

.iots-products-hero-v1__product-code {
    align-self: start;
    color: rgba(26, 23, 80, 0.32);
    font-family: var(--iots-ph-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
}

.iots-products-hero-v1__integration {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 112px;
}

.iots-products-hero-v1__integration-lines {
    position: absolute;
    top: 0;
    left: 54%;
    width: 46%;
    height: 62px;
    transform: translateX(-50%);
}

.iots-products-hero-v1__integration-lines i {
    position: absolute;
    top: 0;
    width: 1px;
    height: 48px;
    background:
        linear-gradient(
            var(--iots-ph-blue),
            rgba(72, 131, 196, 0.1)
        );
}

.iots-products-hero-v1__integration-lines i::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 7px;
    height: 7px;
    background: var(--iots-ph-cyan);
    border: 2px solid var(--iots-ph-surface);
    border-radius: 50%;
    transform: translateX(-50%);
}

.iots-products-hero-v1__integration-lines i:nth-child(1) {
    left: 22%;
}

.iots-products-hero-v1__integration-lines i:nth-child(2) {
    left: 50%;
}

.iots-products-hero-v1__integration-lines i:nth-child(3) {
    left: 78%;
}

.iots-products-hero-v1__core {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-top: 48px;
    padding: 11px 16px;
    color: #ffffff;
    background:
        linear-gradient(
            135deg,
            var(--iots-ph-cyan),
            var(--iots-ph-blue) 58%,
            var(--iots-ph-indigo)
        );
    border-radius: 10px;
    box-shadow:
        0 14px 28px -16px rgba(45, 42, 125, 0.72);
}

.iots-products-hero-v1__core span {
    font-family: var(--iots-ph-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.iots-products-hero-v1__core small {
    padding-left: 11px;
    border-left: 1px solid rgba(255, 255, 255, 0.32);
    font-size: 11px;
    line-height: 1.3;
}

.iots-products-hero-v1__protocols {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    padding-top: 13px;
    border-top: 1px solid var(--iots-ph-line);
}

.iots-products-hero-v1__protocols span {
    padding: 5px 9px;
    color: var(--iots-ph-body);
    background: rgba(238, 241, 250, 0.82);
    border: 1px solid var(--iots-ph-line);
    border-radius: 999px;
    font-family: var(--iots-ph-mono);
    font-size: 9.5px;
    font-weight: 500;
    line-height: 1;
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1000px) {
    .iots-products-hero-v1__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        padding-top: 62px;
    }

    .iots-products-hero-v1__content {
        max-width: 780px;
    }

    .iots-products-hero-v1__title {
        font-size: clamp(40px, 7vw, 56px) !important;
    }

    .iots-products-hero-v1--visual-first
    .iots-products-hero-v1__visual {
        order: -1;
    }

    .iots-products-hero-v1__panel {
        max-width: 680px;
        margin-inline: auto;
    }
}

/* ==========================================================
   TELEFON
   ========================================================== */

@media (max-width: 640px) {
    .iots-products-hero-v1__inner {
        padding-inline: 20px;
    }

    .iots-products-hero-v1__grid {
        gap: 32px;
        padding-block: 52px 44px;
    }

    .iots-products-hero-v1__eyebrow {
        font-size: 10.5px;
        letter-spacing: 0.105em;
    }

    .iots-products-hero-v1__title {
        margin-top: 18px !important;
        font-size: clamp(36px, 11vw, 47px) !important;
        line-height: 1.08 !important;
    }

    .iots-products-hero-v1__lead {
        margin-bottom: 27px !important;
        font-size: 16px !important;
        line-height: 1.62 !important;
    }

    .iots-products-hero-v1__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 32px;
    }

    .iots-products-hero-v1__button {
        width: 100%;
    }

    .iots-products-hero-v1__stats {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .iots-products-hero-v1__stat {
        padding-left: 13px;
        border-left: 2px solid rgba(28, 176, 220, 0.55);
    }

    .iots-products-hero-v1__panel {
        padding: 14px;
        border-radius: 16px;
    }

    .iots-products-hero-v1__panel-head {
        align-items: flex-start;
        gap: 10px;
    }

    .iots-products-hero-v1__panel-status {
        font-size: 9px;
    }

    .iots-products-hero-v1__product-card,
    .iots-products-hero-v1__product-card:nth-child(2),
    .iots-products-hero-v1__product-card:nth-child(3) {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 96px;
        margin-left: 0;
        padding: 13px;
    }

    .iots-products-hero-v1__product-icon {
        width: 46px;
        height: 46px;
    }

    .iots-products-hero-v1__product-icon svg {
        width: 31px;
        height: 31px;
    }

    .iots-products-hero-v1__product-code {
        display: none;
    }

    .iots-products-hero-v1__integration-lines {
        left: 50%;
        width: 78%;
    }

    .iots-products-hero-v1__core {
        gap: 8px;
        padding: 10px 13px;
    }

    .iots-products-hero-v1__core small {
        max-width: 150px;
    }
}
/* ==========================================================
   IOTS — HERO STRONY KONTAKT v1

   Shortcode:
   [iots_contact_hero]

   Wklej cały blok na końcu Additional CSS.
   ========================================================== */

.iots-contact-hero-v1 {
    --iots-ch-bg: #f7f8fc;
    --iots-ch-surface: #ffffff;
    --iots-ch-surface-alt: #eef1fa;
    --iots-ch-navy: #26225b;
    --iots-ch-indigo: #2d2a7d;
    --iots-ch-blue: #4883c4;
    --iots-ch-cyan: #1cb0dc;
    --iots-ch-accent: #1d6e92;
    --iots-ch-text: #1a1750;
    --iots-ch-body: #4c4f79;
    --iots-ch-muted: #7b7ea0;
    --iots-ch-line: rgba(26, 23, 80, 0.09);
    --iots-ch-line-strong: rgba(26, 23, 80, 0.16);
    --iots-ch-shadow: 0 28px 70px -42px rgba(26, 23, 80, 0.4);
    --iots-ch-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-ch-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-ch-text);
    background: var(--iots-ch-bg);
    border-top: 1px solid var(--iots-ch-line);
    border-bottom: 1px solid var(--iots-ch-line);
    font-family: var(--iots-ch-font);
    -webkit-font-smoothing: antialiased;
}

.iots-contact-hero-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-contact-hero-v1,
.iots-contact-hero-v1 * {
    box-sizing: border-box;
}

.iots-contact-hero-v1__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 800px 520px at 83% 3%,
            rgba(28, 176, 220, 0.1),
            transparent 61%
        ),
        radial-gradient(
            ellipse 650px 460px at -3% 68%,
            rgba(45, 42, 125, 0.075),
            transparent 62%
        ),
        linear-gradient(
            rgba(26, 23, 80, 0.022) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.022) 1px,
            transparent 1px
        );
    background-size: auto, auto, 42px 42px, 42px 42px;
    pointer-events: none;
}

.iots-contact-hero-v1__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-inline: clamp(20px, 3.4vw, 40px);
}

.iots-contact-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(430px, 0.98fr);
    gap: clamp(42px, 5vw, 76px);
    align-items: center;
    min-height: 640px;
    padding-block:
        clamp(72px, 7.5vw, 100px)
        clamp(62px, 6.5vw, 84px);
}

.iots-contact-hero-v1__content {
    min-width: 0;
}

.iots-contact-hero-v1__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--iots-ch-accent);
    font-family: var(--iots-ch-mono);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.iots-contact-hero-v1__dotring {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.iots-contact-hero-v1__title {
    max-width: 790px;
    margin: 22px 0 24px !important;
    padding: 0 !important;
    color: var(--iots-ch-text) !important;
    font-family: var(--iots-ch-font) !important;
    font-size: clamp(42px, 4.5vw, 62px) !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.032em !important;
    text-transform: none !important;
}

.iots-contact-hero-v1__title-line,
.iots-contact-hero-v1__title-accent {
    display: block;
}

.iots-contact-hero-v1__title-accent {
    padding-bottom: 0.08em;
    background:
        linear-gradient(
            100deg,
            var(--iots-ch-cyan),
            var(--iots-ch-blue) 58%,
            var(--iots-ch-indigo)
        );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}

.iots-contact-hero-v1__lead {
    max-width: 590px;
    margin: 0 0 34px !important;
    padding: 0 !important;
    color: var(--iots-ch-body) !important;
    font-family: var(--iots-ch-font) !important;
    font-size: clamp(17px, 1.35vw, 18.5px) !important;
    font-weight: 400 !important;
    line-height: 1.66 !important;
}

.iots-contact-hero-v1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 34px;
}

.iots-contact-hero-v1__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 23px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: var(--iots-ch-font) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    transition:
        transform 180ms ease,
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.iots-contact-hero-v1__button--primary {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            var(--iots-ch-cyan),
            var(--iots-ch-blue)
        ) !important;
    border-color: var(--iots-ch-blue) !important;
    box-shadow:
        0 12px 26px -16px rgba(45, 42, 125, 0.62) !important;
}

.iots-contact-hero-v1__button--primary:hover,
.iots-contact-hero-v1__button--primary:focus-visible {
    color: var(--iots-ch-blue) !important;
    background: var(--iots-ch-surface) !important;
    border-color: var(--iots-ch-blue) !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 30px -18px rgba(45, 42, 125, 0.5) !important;
}

.iots-contact-hero-v1__button--secondary {
    color: var(--iots-ch-text) !important;
    background: rgba(255, 255, 255, 0.62) !important;
    border-color: var(--iots-ch-line-strong) !important;
    backdrop-filter: blur(8px);
}

.iots-contact-hero-v1__button--secondary:hover,
.iots-contact-hero-v1__button--secondary:focus-visible {
    color: var(--iots-ch-blue) !important;
    background: var(--iots-ch-surface) !important;
    border-color: var(--iots-ch-blue) !important;
    transform: translateY(-2px);
}

.iots-contact-hero-v1__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.28) !important;
    outline-offset: 3px;
}

.iots-contact-hero-v1__note {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    max-width: 590px;
    padding-top: 25px;
    border-top: 1px solid var(--iots-ch-line);
}

.iots-contact-hero-v1__note > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    color: var(--iots-ch-accent);
    background: rgba(28, 176, 220, 0.09);
    border: 1px solid rgba(28, 176, 220, 0.24);
    border-radius: 8px;
    font-family: var(--iots-ch-mono);
    font-size: 17px;
    line-height: 1;
}

.iots-contact-hero-v1__note p {
    margin: 2px 0 0 !important;
    color: var(--iots-ch-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.6 !important;
}

/* ==========================================================
   PANEL KONTAKTOWY
   ========================================================== */

.iots-contact-hero-v1__visual {
    min-width: 0;
}

.iots-contact-hero-v1__panel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 18px;
    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(28, 176, 220, 0.1),
            transparent 36%
        ),
        rgba(255, 255, 255, 0.88);
    border: 1px solid var(--iots-ch-line-strong);
    border-radius: 20px;
    box-shadow: var(--iots-ch-shadow);
    backdrop-filter: blur(14px);
}

.iots-contact-hero-v1__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        );
    background-size: 28px 28px;
    pointer-events: none;
}

.iots-contact-hero-v1__panel > * {
    position: relative;
    z-index: 1;
}

.iots-contact-hero-v1__panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 42px;
    padding: 0 4px 14px;
    border-bottom: 1px solid var(--iots-ch-line);
}

.iots-contact-hero-v1__panel-label {
    color: var(--iots-ch-muted);
    font-family: var(--iots-ch-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-contact-hero-v1__panel-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--iots-ch-accent);
    font-family: var(--iots-ch-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.iots-contact-hero-v1__panel-status i {
    width: 7px;
    height: 7px;
    background: var(--iots-ch-cyan);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.12);
}

.iots-contact-hero-v1__cards {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.iots-contact-hero-v1__card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 104px;
    padding: 15px 16px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--iots-ch-line);
    border-radius: 13px;
}

.iots-contact-hero-v1__card:nth-child(2) {
    margin-left: 22px;
}

.iots-contact-hero-v1__card:nth-child(3) {
    margin-left: 44px;
}

.iots-contact-hero-v1__card-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    color: var(--iots-ch-blue);
    background:
        linear-gradient(
            145deg,
            rgba(28, 176, 220, 0.1),
            rgba(72, 131, 196, 0.06)
        );
    border: 1px solid rgba(72, 131, 196, 0.22);
    border-radius: 12px;
}

.iots-contact-hero-v1__card:nth-child(2)
.iots-contact-hero-v1__card-icon {
    color: var(--iots-ch-cyan);
}

.iots-contact-hero-v1__card:nth-child(3)
.iots-contact-hero-v1__card-icon {
    color: var(--iots-ch-indigo);
}

.iots-contact-hero-v1__card-icon svg {
    display: block;
    width: 36px;
    height: 36px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-contact-hero-v1__card-copy {
    min-width: 0;
}

.iots-contact-hero-v1__card-copy > span {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ch-accent);
    font-family: var(--iots-ch-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.iots-contact-hero-v1__card-copy strong {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ch-text);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.iots-contact-hero-v1__card-copy small {
    display: block;
    color: var(--iots-ch-muted);
    font-size: 11.5px;
    line-height: 1.42;
}

/* Przebieg kontaktu */
.iots-contact-hero-v1__process {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
    padding: 24px 8px 6px;
    border-top: 1px solid var(--iots-ch-line);
}

.iots-contact-hero-v1__process-line {
    position: absolute;
    top: 31px;
    left: 12.5%;
    right: 12.5%;
    height: 1px;
    background:
        linear-gradient(
            90deg,
            rgba(28, 176, 220, 0.28),
            var(--iots-ch-blue),
            rgba(45, 42, 125, 0.42)
        );
}

.iots-contact-hero-v1__step {
    position: relative;
    z-index: 2;
    display: grid;
    justify-items: center;
    gap: 9px;
    text-align: center;
}

.iots-contact-hero-v1__step i {
    width: 14px;
    height: 14px;
    background: var(--iots-ch-surface);
    border: 4px solid var(--iots-ch-cyan);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.08);
}

.iots-contact-hero-v1__step:nth-child(3) i {
    border-color: var(--iots-ch-blue);
}

.iots-contact-hero-v1__step:nth-child(4) i,
.iots-contact-hero-v1__step:nth-child(5) i {
    border-color: var(--iots-ch-indigo);
}

.iots-contact-hero-v1__step span {
    color: var(--iots-ch-body);
    font-family: var(--iots-ch-mono);
    font-size: 9.5px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.04em;
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1000px) {
    .iots-contact-hero-v1__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        padding-top: 62px;
    }

    .iots-contact-hero-v1__content {
        max-width: 780px;
    }

    .iots-contact-hero-v1__title {
        font-size: clamp(40px, 7vw, 56px) !important;
    }

    .iots-contact-hero-v1--visual-first
    .iots-contact-hero-v1__visual {
        order: -1;
    }

    .iots-contact-hero-v1__panel {
        max-width: 680px;
        margin-inline: auto;
    }
}

/* ==========================================================
   TELEFON
   ========================================================== */

@media (max-width: 640px) {
    .iots-contact-hero-v1__inner {
        padding-inline: 20px;
    }

    .iots-contact-hero-v1__grid {
        gap: 32px;
        padding-block: 52px 44px;
    }

    .iots-contact-hero-v1__eyebrow {
        font-size: 10.5px;
        letter-spacing: 0.105em;
    }

    .iots-contact-hero-v1__title {
        margin-top: 18px !important;
        font-size: clamp(36px, 11vw, 47px) !important;
        line-height: 1.08 !important;
    }

    .iots-contact-hero-v1__lead {
        margin-bottom: 27px !important;
        font-size: 16px !important;
        line-height: 1.62 !important;
    }

    .iots-contact-hero-v1__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 30px;
    }

    .iots-contact-hero-v1__button {
        width: 100%;
    }

    .iots-contact-hero-v1__panel {
        padding: 14px;
        border-radius: 16px;
    }

    .iots-contact-hero-v1__panel-head {
        align-items: flex-start;
        gap: 10px;
    }

    .iots-contact-hero-v1__panel-status {
        font-size: 9px;
    }

    .iots-contact-hero-v1__card,
    .iots-contact-hero-v1__card:nth-child(2),
    .iots-contact-hero-v1__card:nth-child(3) {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 96px;
        margin-left: 0;
        padding: 13px;
    }

    .iots-contact-hero-v1__card-icon {
        width: 46px;
        height: 46px;
    }

    .iots-contact-hero-v1__card-icon svg {
        width: 31px;
        height: 31px;
    }

    .iots-contact-hero-v1__process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px 10px;
        padding-top: 22px;
    }

    .iots-contact-hero-v1__process-line {
        display: none;
    }

    .iots-contact-hero-v1__step {
        padding: 10px;
        background: rgba(238, 241, 250, 0.72);
        border: 1px solid var(--iots-ch-line);
        border-radius: 10px;
    }
}
/* ==========================================================
   IOTS — HERO STRONY O NAS v1

   Shortcode:
   [iots_about_hero]

   Wklej cały blok na końcu Additional CSS.
   ========================================================== */

.iots-about-hero-v1 {
    --iots-ah-bg: #f7f8fc;
    --iots-ah-surface: #ffffff;
    --iots-ah-surface-alt: #eef1fa;
    --iots-ah-navy: #26225b;
    --iots-ah-indigo: #2d2a7d;
    --iots-ah-blue: #4883c4;
    --iots-ah-cyan: #1cb0dc;
    --iots-ah-accent: #1d6e92;
    --iots-ah-text: #1a1750;
    --iots-ah-body: #4c4f79;
    --iots-ah-muted: #7b7ea0;
    --iots-ah-line: rgba(26, 23, 80, 0.09);
    --iots-ah-line-strong: rgba(26, 23, 80, 0.16);
    --iots-ah-shadow: 0 28px 70px -42px rgba(26, 23, 80, 0.4);
    --iots-ah-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-ah-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-ah-text);
    background: var(--iots-ah-bg);
    border-top: 1px solid var(--iots-ah-line);
    border-bottom: 1px solid var(--iots-ah-line);
    font-family: var(--iots-ah-font);
    -webkit-font-smoothing: antialiased;
}

.iots-about-hero-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-about-hero-v1,
.iots-about-hero-v1 * {
    box-sizing: border-box;
}

.iots-about-hero-v1__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 820px 540px at 84% 3%,
            rgba(28, 176, 220, 0.1),
            transparent 61%
        ),
        radial-gradient(
            ellipse 660px 470px at -3% 70%,
            rgba(45, 42, 125, 0.075),
            transparent 62%
        ),
        linear-gradient(
            rgba(26, 23, 80, 0.022) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.022) 1px,
            transparent 1px
        );
    background-size: auto, auto, 42px 42px, 42px 42px;
    pointer-events: none;
}

.iots-about-hero-v1__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding-inline: clamp(20px, 3.4vw, 40px);
}

.iots-about-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(450px, 0.98fr);
    gap: clamp(42px, 5vw, 76px);
    align-items: center;
    min-height: 660px;
    padding-block:
        clamp(72px, 7.5vw, 100px)
        clamp(62px, 6.5vw, 84px);
}

.iots-about-hero-v1__content {
    min-width: 0;
}

.iots-about-hero-v1__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--iots-ah-accent);
    font-family: var(--iots-ah-mono);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.iots-about-hero-v1__dotring {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.iots-about-hero-v1__title {
    max-width: 790px;
    margin: 22px 0 24px !important;
    padding: 0 !important;
    color: var(--iots-ah-text) !important;
    font-family: var(--iots-ah-font) !important;
    font-size: clamp(42px, 4.5vw, 62px) !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.032em !important;
    text-transform: none !important;
}

.iots-about-hero-v1__title-line,
.iots-about-hero-v1__title-accent {
    display: block;
}

.iots-about-hero-v1__title-accent {
    padding-bottom: 0.08em;
    background:
        linear-gradient(
            100deg,
            var(--iots-ah-cyan),
            var(--iots-ah-blue) 58%,
            var(--iots-ah-indigo)
        );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}

.iots-about-hero-v1__lead {
    max-width: 595px;
    margin: 0 0 34px !important;
    padding: 0 !important;
    color: var(--iots-ah-body) !important;
    font-family: var(--iots-ah-font) !important;
    font-size: clamp(17px, 1.35vw, 18.5px) !important;
    font-weight: 400 !important;
    line-height: 1.66 !important;
}

.iots-about-hero-v1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 34px;
}

.iots-about-hero-v1__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 23px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: var(--iots-ah-font) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    transition:
        transform 180ms ease,
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.iots-about-hero-v1__button--primary {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            var(--iots-ah-cyan),
            var(--iots-ah-blue)
        ) !important;
    border-color: var(--iots-ah-blue) !important;
    box-shadow:
        0 12px 26px -16px rgba(45, 42, 125, 0.62) !important;
}

.iots-about-hero-v1__button--primary:hover,
.iots-about-hero-v1__button--primary:focus-visible {
    color: var(--iots-ah-blue) !important;
    background: var(--iots-ah-surface) !important;
    border-color: var(--iots-ah-blue) !important;
    transform: translateY(-2px);
    box-shadow:
        0 16px 30px -18px rgba(45, 42, 125, 0.5) !important;
}

.iots-about-hero-v1__button--secondary {
    color: var(--iots-ah-text) !important;
    background: rgba(255, 255, 255, 0.62) !important;
    border-color: var(--iots-ah-line-strong) !important;
    backdrop-filter: blur(8px);
}

.iots-about-hero-v1__button--secondary:hover,
.iots-about-hero-v1__button--secondary:focus-visible {
    color: var(--iots-ah-blue) !important;
    background: var(--iots-ah-surface) !important;
    border-color: var(--iots-ah-blue) !important;
    transform: translateY(-2px);
}

.iots-about-hero-v1__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.28) !important;
    outline-offset: 3px;
}

.iots-about-hero-v1__note {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    max-width: 595px;
    padding-top: 25px;
    border-top: 1px solid var(--iots-ah-line);
}

.iots-about-hero-v1__note > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    color: var(--iots-ah-accent);
    background: rgba(28, 176, 220, 0.09);
    border: 1px solid rgba(28, 176, 220, 0.24);
    border-radius: 8px;
    font-family: var(--iots-ah-mono);
    font-size: 17px;
    line-height: 1;
}

.iots-about-hero-v1__note p {
    margin: 2px 0 0 !important;
    color: var(--iots-ah-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.6 !important;
}

/* ==========================================================
   PANEL „OD ŹRÓDŁA DO DECYZJI”
   ========================================================== */

.iots-about-hero-v1__visual {
    min-width: 0;
}

.iots-about-hero-v1__panel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 18px;
    background:
        radial-gradient(
            circle at 86% 12%,
            rgba(28, 176, 220, 0.1),
            transparent 36%
        ),
        rgba(255, 255, 255, 0.88);
    border: 1px solid var(--iots-ah-line-strong);
    border-radius: 20px;
    box-shadow: var(--iots-ah-shadow);
    backdrop-filter: blur(14px);
}

.iots-about-hero-v1__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(26, 23, 80, 0.026) 1px,
            transparent 1px
        );
    background-size: 28px 28px;
    pointer-events: none;
}

.iots-about-hero-v1__panel > * {
    position: relative;
    z-index: 1;
}

.iots-about-hero-v1__panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 42px;
    padding: 0 4px 14px;
    border-bottom: 1px solid var(--iots-ah-line);
}

.iots-about-hero-v1__panel-label {
    color: var(--iots-ah-muted);
    font-family: var(--iots-ah-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-about-hero-v1__panel-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--iots-ah-accent);
    font-family: var(--iots-ah-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.iots-about-hero-v1__panel-status i {
    width: 7px;
    height: 7px;
    background: var(--iots-ah-cyan);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.12);
}

.iots-about-hero-v1__process {
    display: grid;
    gap: 0;
    margin-top: 14px;
}

.iots-about-hero-v1__stage {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 94px;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--iots-ah-line);
    border-radius: 13px;
}

.iots-about-hero-v1__stage:nth-of-type(3) {
    margin-left: 16px;
}

.iots-about-hero-v1__stage:nth-of-type(5) {
    margin-left: 32px;
}

.iots-about-hero-v1__stage:nth-of-type(7) {
    margin-left: 48px;
}

.iots-about-hero-v1__stage--core {
    background:
        linear-gradient(
            135deg,
            rgba(28, 176, 220, 0.1),
            rgba(72, 131, 196, 0.06)
        ),
        rgba(255, 255, 255, 0.98);
    border-color: rgba(72, 131, 196, 0.28);
}

.iots-about-hero-v1__stage-marker {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    color: var(--iots-ah-blue);
    background:
        linear-gradient(
            145deg,
            rgba(28, 176, 220, 0.1),
            rgba(72, 131, 196, 0.06)
        );
    border: 1px solid rgba(72, 131, 196, 0.22);
    border-radius: 12px;
}

.iots-about-hero-v1__stage:nth-of-type(3)
.iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-cyan);
}

.iots-about-hero-v1__stage:nth-of-type(5)
.iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-indigo);
}

.iots-about-hero-v1__stage:nth-of-type(7)
.iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-blue);
}

.iots-about-hero-v1__stage-marker svg {
    display: block;
    width: 36px;
    height: 36px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-about-hero-v1__stage-copy {
    min-width: 0;
}

.iots-about-hero-v1__stage-copy > span {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ah-accent);
    font-family: var(--iots-ah-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.iots-about-hero-v1__stage-copy strong {
    display: block;
    margin-bottom: 4px;
    color: var(--iots-ah-text);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.iots-about-hero-v1__stage-copy small {
    display: block;
    color: var(--iots-ah-muted);
    font-size: 11.5px;
    line-height: 1.42;
}

.iots-about-hero-v1__connector {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 14px;
    height: 20px;
    margin-left: 16px;
}

.iots-about-hero-v1__connector i {
    justify-self: center;
    width: 1px;
    height: 20px;
    background:
        linear-gradient(
            var(--iots-ah-cyan),
            rgba(72, 131, 196, 0.24)
        );
}

.iots-about-hero-v1__connector span {
    display: none;
}

/* Zasady pracy */
.iots-about-hero-v1__principles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--iots-ah-line);
}

.iots-about-hero-v1__principles span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px;
    color: var(--iots-ah-body);
    background: rgba(238, 241, 250, 0.82);
    border: 1px solid var(--iots-ah-line);
    border-radius: 999px;
    font-family: var(--iots-ah-mono);
    font-size: 9.5px;
    font-weight: 500;
    line-height: 1.2;
}

.iots-about-hero-v1__principles i {
    width: 6px;
    height: 6px;
    background: var(--iots-ah-cyan);
    border-radius: 50%;
}

.iots-about-hero-v1__principles span:nth-child(2) i {
    background: var(--iots-ah-blue);
}

.iots-about-hero-v1__principles span:nth-child(3) i {
    background: var(--iots-ah-indigo);
}

/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1000px) {
    .iots-about-hero-v1__grid {
        grid-template-columns: minmax(0, 1fr);
        min-height: auto;
        padding-top: 62px;
    }

    .iots-about-hero-v1__content {
        max-width: 780px;
    }

    .iots-about-hero-v1__title {
        font-size: clamp(40px, 7vw, 56px) !important;
    }

    .iots-about-hero-v1--visual-first
    .iots-about-hero-v1__visual {
        order: -1;
    }

    .iots-about-hero-v1__panel {
        max-width: 700px;
        margin-inline: auto;
    }
}

/* ==========================================================
   TELEFON
   ========================================================== */

@media (max-width: 640px) {
    .iots-about-hero-v1__inner {
        padding-inline: 20px;
    }

    .iots-about-hero-v1__grid {
        gap: 32px;
        padding-block: 52px 44px;
    }

    .iots-about-hero-v1__eyebrow {
        font-size: 10.5px;
        letter-spacing: 0.105em;
    }

    .iots-about-hero-v1__title {
        margin-top: 18px !important;
        font-size: clamp(36px, 11vw, 47px) !important;
        line-height: 1.08 !important;
    }

    .iots-about-hero-v1__lead {
        margin-bottom: 27px !important;
        font-size: 16px !important;
        line-height: 1.62 !important;
    }

    .iots-about-hero-v1__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 30px;
    }

    .iots-about-hero-v1__button {
        width: 100%;
    }

    .iots-about-hero-v1__panel {
        padding: 14px;
        border-radius: 16px;
    }

    .iots-about-hero-v1__panel-head {
        align-items: flex-start;
        gap: 10px;
    }

    .iots-about-hero-v1__panel-status {
        font-size: 9px;
    }

    .iots-about-hero-v1__stage,
    .iots-about-hero-v1__stage:nth-of-type(3),
    .iots-about-hero-v1__stage:nth-of-type(5),
    .iots-about-hero-v1__stage:nth-of-type(7) {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 94px;
        margin-left: 0;
        padding: 13px;
    }

    .iots-about-hero-v1__stage-marker {
        width: 46px;
        height: 46px;
    }

    .iots-about-hero-v1__stage-marker svg {
        width: 31px;
        height: 31px;
    }

    .iots-about-hero-v1__connector {
        grid-template-columns: 46px minmax(0, 1fr);
        margin-left: 0;
    }

    .iots-about-hero-v1__principles {
        justify-content: flex-start;
    }
}

/* ==========================================================
   IOTS — SEKCJA „JAK PRACUJEMY” v1

   Shortcode:
   [iots_about_how_we_work]

   Domyślna kotwica:
   #jak-pracujemy

   Wklej cały blok na końcu Additional CSS.
   ========================================================== */

.iots-about-work-v1 {
    --iots-aw-bg: #f7f8fc;
    --iots-aw-surface: #ffffff;
    --iots-aw-alt: #eef1fa;
    --iots-aw-navy: #26225b;
    --iots-aw-indigo: #2d2a7d;
    --iots-aw-blue: #4883c4;
    --iots-aw-cyan: #1cb0dc;
    --iots-aw-accent: #1d6e92;
    --iots-aw-text: #1a1750;
    --iots-aw-body: #4c4f79;
    --iots-aw-muted: #7b7ea0;
    --iots-aw-line: rgba(26, 23, 80, 0.09);
    --iots-aw-line-strong: rgba(26, 23, 80, 0.16);
    --iots-aw-shadow: 0 24px 60px -40px rgba(26, 23, 80, 0.38);
    --iots-aw-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-aw-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-aw-text);
    background: var(--iots-aw-bg);
    border-top: 1px solid var(--iots-aw-line);
    border-bottom: 1px solid var(--iots-aw-line);
    font-family: var(--iots-aw-font);
    -webkit-font-smoothing: antialiased;
    scroll-margin-top: 100px;
}

.iots-about-work-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-about-work-v1,
.iots-about-work-v1 * {
    box-sizing: border-box;
}

.iots-about-work-v1__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 860px 520px at 90% 3%,
            rgba(28, 176, 220, 0.075),
            transparent 62%
        ),
        radial-gradient(
            ellipse 620px 440px at -5% 78%,
            rgba(45, 42, 125, 0.065),
            transparent 64%
        );
    pointer-events: none;
}

.iots-about-work-v1__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding:
        clamp(76px, 8vw, 108px)
        clamp(20px, 3.4vw, 40px);
}

/* Nagłówek */
.iots-about-work-v1__header {
    max-width: 1080px;
    margin-bottom: clamp(44px, 5vw, 66px);
}

.iots-about-work-v1__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--iots-aw-accent);
    font-family: var(--iots-aw-mono);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.iots-about-work-v1__dotring {
    display: block;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.iots-about-work-v1__header-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.75fr);
    gap: clamp(32px, 5vw, 78px);
    align-items: end;
}

.iots-about-work-v1__title {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--iots-aw-text) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: clamp(38px, 4vw, 54px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
    text-transform: none !important;
}

.iots-about-work-v1__title span,
.iots-about-work-v1__title strong {
    display: block;
}

.iots-about-work-v1__title strong {
    padding-bottom: 0.08em;
    background:
        linear-gradient(
            100deg,
            var(--iots-aw-cyan),
            var(--iots-aw-blue) 58%,
            var(--iots-aw-indigo)
        );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
    font-weight: 700;
}

.iots-about-work-v1__lead {
    margin: 0 0 3px !important;
    padding: 0 !important;
    color: var(--iots-aw-body) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: 16.5px !important;
    line-height: 1.68 !important;
}

/* Etapy */
.iots-about-work-v1__stages {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.iots-about-work-v1__rail {
    position: absolute;
    z-index: 0;
    top: 44px;
    right: 7%;
    left: 7%;
    height: 1px;
    background:
        linear-gradient(
            90deg,
            rgba(28, 176, 220, 0.34),
            var(--iots-aw-blue),
            rgba(45, 42, 125, 0.4)
        );
}

.iots-about-work-v1__stage {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    min-height: 350px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid var(--iots-aw-line);
    border-radius: 16px;
    box-shadow: var(--iots-aw-shadow);
}

.iots-about-work-v1__stage:nth-of-type(3) {
    margin-top: 18px;
}

.iots-about-work-v1__stage:nth-of-type(4) {
    margin-top: 36px;
}

.iots-about-work-v1__stage:nth-of-type(5) {
    margin-top: 54px;
}

.iots-about-work-v1__stage-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 24px;
}

.iots-about-work-v1__number {
    color: rgba(26, 23, 80, 0.34);
    font-family: var(--iots-aw-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
}

.iots-about-work-v1__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    color: var(--iots-aw-blue);
    background:
        linear-gradient(
            145deg,
            rgba(28, 176, 220, 0.1),
            rgba(72, 131, 196, 0.06)
        );
    border: 1px solid rgba(72, 131, 196, 0.22);
    border-radius: 12px;
}

.iots-about-work-v1__stage:nth-of-type(3)
.iots-about-work-v1__icon {
    color: var(--iots-aw-cyan);
}

.iots-about-work-v1__stage:nth-of-type(4)
.iots-about-work-v1__icon {
    color: var(--iots-aw-indigo);
}

.iots-about-work-v1__stage:nth-of-type(5)
.iots-about-work-v1__icon {
    color: var(--iots-aw-blue);
}

.iots-about-work-v1__icon svg {
    display: block;
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-about-work-v1__stage-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--iots-aw-accent);
    font-family: var(--iots-aw-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-about-work-v1__stage h3 {
    margin: 0 0 12px !important;
    color: var(--iots-aw-text) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    line-height: 1.28 !important;
    letter-spacing: -0.015em !important;
}

.iots-about-work-v1__stage > p {
    margin: 0 !important;
    color: var(--iots-aw-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.62 !important;
}

.iots-about-work-v1__result {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--iots-aw-line);
}

.iots-about-work-v1__result > span {
    color: var(--iots-aw-cyan);
    font-family: var(--iots-aw-mono);
    font-size: 14px;
    line-height: 1.4;
}

.iots-about-work-v1__result strong {
    color: var(--iots-aw-body);
    font-family: var(--iots-aw-mono);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.45;
}

/* Zasady */
.iots-about-work-v1__principles-section {
    display: grid;
    grid-template-columns: minmax(260px, 0.76fr) minmax(0, 1.44fr);
    gap: clamp(30px, 5vw, 70px);
    align-items: start;
    margin-top: clamp(72px, 8vw, 106px);
    padding-top: clamp(54px, 6vw, 76px);
    border-top: 1px solid var(--iots-aw-line);
}

.iots-about-work-v1__principles-head > span {
    display: block;
    margin-bottom: 12px;
    color: var(--iots-aw-accent);
    font-family: var(--iots-aw-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-about-work-v1__principles-head h2 {
    max-width: 430px;
    margin: 0 !important;
    color: var(--iots-aw-text) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: clamp(29px, 3vw, 39px) !important;
    font-weight: 700 !important;
    line-height: 1.14 !important;
    letter-spacing: -0.025em !important;
}

.iots-about-work-v1__principles-grid {
    display: grid;
    gap: 10px;
}

.iots-about-work-v1__principle {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 19px 20px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--iots-aw-line);
    border-radius: 13px;
}

.iots-about-work-v1__principle > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--iots-aw-accent);
    background: rgba(28, 176, 220, 0.09);
    border: 1px solid rgba(28, 176, 220, 0.22);
    border-radius: 10px;
    font-family: var(--iots-aw-mono);
    font-size: 10px;
    font-weight: 600;
}

.iots-about-work-v1__principle:nth-child(2) > span {
    color: var(--iots-aw-blue);
    background: rgba(72, 131, 196, 0.08);
    border-color: rgba(72, 131, 196, 0.22);
}

.iots-about-work-v1__principle:nth-child(3) > span {
    color: var(--iots-aw-indigo);
    background: rgba(45, 42, 125, 0.07);
    border-color: rgba(45, 42, 125, 0.18);
}

.iots-about-work-v1__principle h3 {
    margin: 0 0 6px !important;
    color: var(--iots-aw-text) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

.iots-about-work-v1__principle p {
    margin: 0 !important;
    color: var(--iots-aw-muted) !important;
    font-size: 13px !important;
    line-height: 1.58 !important;
}

/* CTA */
.iots-about-work-v1__cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(30px, 5vw, 70px);
    align-items: center;
    margin-top: clamp(70px, 8vw, 104px);
    padding: clamp(34px, 4.5vw, 54px);
    background:
        radial-gradient(
            ellipse 480px 270px at 8% 8%,
            rgba(28, 176, 220, 0.1),
            transparent 62%
        ),
        rgba(255, 255, 255, 0.88);
    border: 1px solid var(--iots-aw-line-strong);
    border-radius: 20px;
    box-shadow: var(--iots-aw-shadow);
}

.iots-about-work-v1__cta-copy > span {
    display: block;
    margin-bottom: 10px;
    color: var(--iots-aw-accent);
    font-family: var(--iots-aw-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.iots-about-work-v1__cta h2 {
    max-width: 650px;
    margin: 0 0 12px !important;
    color: var(--iots-aw-text) !important;
    font-family: var(--iots-aw-font) !important;
    font-size: clamp(28px, 3.3vw, 42px) !important;
    font-weight: 700 !important;
    line-height: 1.13 !important;
    letter-spacing: -0.026em !important;
}

.iots-about-work-v1__cta p {
    max-width: 690px;
    margin: 0 !important;
    color: var(--iots-aw-body) !important;
    font-size: 15px !important;
    line-height: 1.62 !important;
}

.iots-about-work-v1__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px;
}

.iots-about-work-v1__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 22px !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: var(--iots-aw-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    text-align: center;
    text-decoration: none !important;
    white-space: nowrap;
    transition:
        transform 180ms ease,
        color 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.iots-about-work-v1__button--primary {
    color: #ffffff !important;
    background:
        linear-gradient(
            135deg,
            var(--iots-aw-cyan),
            var(--iots-aw-blue)
        ) !important;
    border-color: var(--iots-aw-blue) !important;
    box-shadow:
        0 12px 26px -16px rgba(45, 42, 125, 0.62) !important;
}

.iots-about-work-v1__button--primary:hover,
.iots-about-work-v1__button--primary:focus-visible {
    color: var(--iots-aw-blue) !important;
    background: var(--iots-aw-surface) !important;
    border-color: var(--iots-aw-blue) !important;
    transform: translateY(-2px);
}

.iots-about-work-v1__button--secondary {
    color: var(--iots-aw-text) !important;
    background: rgba(255, 255, 255, 0.6) !important;
    border-color: var(--iots-aw-line-strong) !important;
}

.iots-about-work-v1__button--secondary:hover,
.iots-about-work-v1__button--secondary:focus-visible {
    color: var(--iots-aw-blue) !important;
    background: var(--iots-aw-surface) !important;
    border-color: var(--iots-aw-blue) !important;
    transform: translateY(-2px);
}

.iots-about-work-v1__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.28) !important;
    outline-offset: 3px;
}

/* Tablet */
@media (max-width: 1000px) {
    .iots-about-work-v1__header-grid,
    .iots-about-work-v1__principles-section,
    .iots-about-work-v1__cta {
        grid-template-columns: minmax(0, 1fr);
    }

    .iots-about-work-v1__header-grid {
        gap: 24px;
    }

    .iots-about-work-v1__lead {
        max-width: 760px;
    }

    .iots-about-work-v1__stages {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iots-about-work-v1__rail {
        display: none;
    }

    .iots-about-work-v1__stage,
    .iots-about-work-v1__stage:nth-of-type(3),
    .iots-about-work-v1__stage:nth-of-type(4),
    .iots-about-work-v1__stage:nth-of-type(5) {
        min-height: 320px;
        margin-top: 0;
    }

    .iots-about-work-v1__principles-section {
        gap: 30px;
    }

    .iots-about-work-v1__actions {
        justify-content: flex-start;
    }
}

/* Telefon */
@media (max-width: 640px) {
    .iots-about-work-v1 {
        scroll-margin-top: 74px;
    }

    .iots-about-work-v1__inner {
        padding:
            62px
            20px;
    }

    .iots-about-work-v1__eyebrow {
        font-size: 10.5px;
        letter-spacing: 0.105em;
    }

    .iots-about-work-v1__title {
        font-size: clamp(34px, 10.5vw, 44px) !important;
    }

    .iots-about-work-v1__lead {
        font-size: 15.5px !important;
    }

    .iots-about-work-v1__stages {
        grid-template-columns: minmax(0, 1fr);
    }

    .iots-about-work-v1__stage,
    .iots-about-work-v1__stage:nth-of-type(3),
    .iots-about-work-v1__stage:nth-of-type(4),
    .iots-about-work-v1__stage:nth-of-type(5) {
        min-height: 0;
        padding: 18px;
    }

    .iots-about-work-v1__principle {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 13px;
        padding: 16px;
    }

    .iots-about-work-v1__principle > span {
        width: 38px;
        height: 38px;
    }

    .iots-about-work-v1__cta {
        padding: 26px 20px;
        border-radius: 16px;
    }

    .iots-about-work-v1__actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .iots-about-work-v1__button {
        width: 100%;
        white-space: normal;
    }
}

/* ==========================================================
   IOTS — ETAP 1: UI + MIKROINTERAKCJE + KONTAKT v2

   Ten blok ZASTĘPUJE poprzedni blok:
   „IOTS — ETAP 1: STABILIZACJA UI + MIKROINTERAKCJE v1”.
   Nie doklejaj obu wersji jednocześnie.
   ========================================================== */

:root {
    --iots-page-header-gap: 0px;
    --iots-ui-navy: #26225b;
    --iots-ui-indigo: #2d2a7d;
    --iots-ui-blue: #4883c4;
    --iots-ui-cyan: #1cb0dc;
    --iots-ui-text: #1a1750;
    --iots-ui-body: #4c4f79;
    --iots-ui-muted: #7b7ea0;
    --iots-ui-bg: #f7f8fc;
    --iots-ui-alt: #eef1fa;
    --iots-ui-surface: #ffffff;
    --iots-ui-line: rgba(26, 23, 80, 0.10);
    --iots-ui-line-strong: rgba(26, 23, 80, 0.18);
    --iots-ui-shadow: 0 24px 60px -38px rgba(26, 23, 80, 0.42);
    --iots-ui-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-ui-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;
}

/* ----------------------------------------------------------
   1. JEDNAKOWY START TREŚCI POD HEADEREM
   ---------------------------------------------------------- */
body.page-id-331 .site-main,
body.page-id-334 .site-main,
body.page-id-354 .site-main,
body.page-id-4734 .site-main,
body.iots-blog-catalog-page .site-main,
body.iots-industries-catalog-page-v1 .site-main {
    margin-top: var(--iots-page-header-gap) !important;
    padding-top: 0 !important;
}

body.page-id-331 .site-main > .elementor > .e-con:first-child,
body.page-id-334 .site-main > .elementor > .e-con:first-child,
body.page-id-354 .site-main > .elementor > .e-con:first-child,
body.page-id-4734 .site-main > .elementor > .e-con:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
    --padding-top: 0px;
}

body.iots-blog-catalog-page .ct-container-full,
body.iots-industries-catalog-page-v1 .ct-container-full {
    padding-top: 0 !important;
}

/* ----------------------------------------------------------
   2. BLOG — MINIMALNE ODSUNIĘCIE FILTRÓW
   ---------------------------------------------------------- */
body.iots-blog-catalog-page .iots-catalog--articles {
    overflow: visible !important;
}

body.iots-blog-catalog-page .iots-catalog--articles .iots-filter {
    padding-top: 6px !important;
    overflow: visible !important;
}

/* ----------------------------------------------------------
   3. HERO KONTAKT — SZYBSZE, DELIKATNIE WIĘKSZE KÓŁECZKA
   ---------------------------------------------------------- */
.iots-contact-hero-v1__panel-status i {
    position: relative;
    animation: iots-contact-status-pulse-v2 2.15s ease-out infinite;
}

.iots-contact-hero-v1__card {
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease,
        background-color 220ms ease;
}

.iots-contact-hero-v1__card:hover {
    z-index: 3;
    transform: translateY(-4px) translateX(2px);
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.48);
    box-shadow: 0 18px 36px -28px rgba(26, 23, 80, 0.62);
}

.iots-contact-hero-v1__card-icon {
    transition:
        color 220ms ease,
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-contact-hero-v1__card:hover .iots-contact-hero-v1__card-icon {
    transform: scale(1.055);
    border-color: rgba(28, 176, 220, 0.48);
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.08);
}

.iots-contact-hero-v1__process-line {
    overflow: visible;
}

.iots-contact-hero-v1__process-line::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 30%;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(28, 176, 220, 0.98),
        rgba(72, 131, 196, 0.80),
        transparent
    );
    filter: blur(0.2px);
    transform: translate(-50%, -50%);
    animation: iots-contact-flow-v2 6.4s linear infinite;
}

.iots-contact-hero-v1__step i,
.iots-contact-hero-v1__step span {
    animation-duration: 6.4s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.iots-contact-hero-v1__step i {
    animation-name: iots-contact-step-dot-v2;
}

.iots-contact-hero-v1__step span {
    animation-name: iots-contact-step-label-v2;
}

.iots-contact-hero-v1__step:nth-child(2) i,
.iots-contact-hero-v1__step:nth-child(2) span {
    animation-delay: 0s;
}

.iots-contact-hero-v1__step:nth-child(3) i,
.iots-contact-hero-v1__step:nth-child(3) span {
    animation-delay: 1.6s;
}

.iots-contact-hero-v1__step:nth-child(4) i,
.iots-contact-hero-v1__step:nth-child(4) span {
    animation-delay: 3.2s;
}

.iots-contact-hero-v1__step:nth-child(5) i,
.iots-contact-hero-v1__step:nth-child(5) span {
    animation-delay: 4.8s;
}

@keyframes iots-contact-status-pulse-v2 {
    0%, 48%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.12);
    }
    18% {
        transform: scale(1.23);
        box-shadow:
            0 0 0 6px rgba(28, 176, 220, 0.15),
            0 0 20px rgba(28, 176, 220, 0.58);
    }
}

@keyframes iots-contact-flow-v2 {
    0% { left: 0; opacity: 0; }
    7% { opacity: 1; }
    93% { opacity: 1; }
    100% { left: 100%; opacity: 0; }
}

@keyframes iots-contact-step-dot-v2 {
    0%, 23%, 100% {
        transform: scale(1);
        background: var(--iots-ch-surface);
        box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.08);
    }
    7%, 15% {
        transform: scale(1.34);
        background: var(--iots-ch-cyan);
        box-shadow:
            0 0 0 6px rgba(28, 176, 220, 0.16),
            0 0 20px rgba(28, 176, 220, 0.52);
    }
}

@keyframes iots-contact-step-label-v2 {
    0%, 23%, 100% {
        color: var(--iots-ch-body);
        transform: translateY(0);
    }
    7%, 15% {
        color: var(--iots-ch-indigo);
        transform: translateY(-2px);
    }
}

/* ----------------------------------------------------------
   4. HERO O NAS — PEŁNY PROCES + ZASADY W PANELU
   ---------------------------------------------------------- */
.iots-about-hero-v1__panel-status i {
    animation: iots-about-status-pulse-v2 2.7s ease-out infinite;
}

.iots-about-hero-v1__stage:nth-child(3) {
    margin-left: 16px;
}

.iots-about-hero-v1__stage:nth-child(5) {
    margin-left: 32px;
}

.iots-about-hero-v1__stage:nth-child(7) {
    margin-left: 48px;
}

.iots-about-hero-v1__stage:nth-child(3) .iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-cyan);
}

.iots-about-hero-v1__stage:nth-child(5) .iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-indigo);
}

.iots-about-hero-v1__stage:nth-child(7) .iots-about-hero-v1__stage-marker {
    color: var(--iots-ah-blue);
}

.iots-about-hero-v1__stage {
    animation: iots-about-stage-sequence-v2 8s ease-in-out infinite;
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease,
        background-color 220ms ease;
}

.iots-about-hero-v1__stage:nth-of-type(1) { animation-delay: 0s; }
.iots-about-hero-v1__stage:nth-of-type(2) { animation-delay: 2s; }
.iots-about-hero-v1__stage:nth-of-type(3) { animation-delay: 4s; }
.iots-about-hero-v1__stage:nth-of-type(4) { animation-delay: 6s; }

.iots-about-hero-v1__stage:hover {
    z-index: 4;
    transform: translateX(5px) translateY(-2px);
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.50);
    box-shadow: 0 18px 38px -30px rgba(26, 23, 80, 0.64);
}

.iots-about-hero-v1__stage-marker {
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-about-hero-v1__stage:hover .iots-about-hero-v1__stage-marker {
    transform: rotate(-2deg) scale(1.06);
    border-color: rgba(28, 176, 220, 0.48);
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.09);
}

.iots-about-hero-v1__connector i {
    position: relative;
    overflow: visible;
}

.iots-about-hero-v1__connector i::after {
    content: "";
    position: absolute;
    top: -2px;
    left: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--iots-ah-cyan);
    box-shadow: 0 0 13px rgba(28, 176, 220, 0.66);
    transform: translateX(-50%);
    animation: iots-about-connector-pulse-v2 3.2s ease-in-out infinite;
}

.iots-about-hero-v1__connector:nth-child(4) i::after {
    animation-delay: 1.05s;
}

.iots-about-hero-v1__connector:nth-child(6) i::after {
    animation-delay: 2.1s;
}

.iots-about-hero-v1__principles span {
    position: relative;
    overflow: hidden;
    cursor: default;
    animation: iots-about-principle-pill-v2 6.3s ease-in-out infinite;
    transition:
        color 200ms ease,
        background-color 200ms ease,
        border-color 200ms ease,
        transform 200ms ease,
        box-shadow 200ms ease;
}

.iots-about-hero-v1__principles span:nth-child(2) {
    animation-delay: 2.1s;
}

.iots-about-hero-v1__principles span:nth-child(3) {
    animation-delay: 4.2s;
}

.iots-about-hero-v1__principles span:hover {
    color: var(--iots-ah-text);
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.48);
    transform: translateY(-2px);
    box-shadow: 0 12px 24px -20px rgba(26, 23, 80, 0.65);
}

.iots-about-hero-v1__principles i {
    animation: iots-about-principle-dot-v2 2.1s ease-in-out infinite;
}

.iots-about-hero-v1__principles span:nth-child(2) i {
    animation-delay: .7s;
}

.iots-about-hero-v1__principles span:nth-child(3) i {
    animation-delay: 1.4s;
}

@keyframes iots-about-status-pulse-v2 {
    0%, 55%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.12);
    }
    20% {
        transform: scale(1.22);
        box-shadow:
            0 0 0 6px rgba(28, 176, 220, 0.15),
            0 0 19px rgba(28, 176, 220, 0.48);
    }
}

@keyframes iots-about-stage-sequence-v2 {
    0%, 22%, 100% {
        border-color: var(--iots-ah-line);
        background-color: rgba(255, 255, 255, 0.74);
        box-shadow: none;
    }
    7%, 15% {
        border-color: rgba(28, 176, 220, 0.44);
        background-color: #ffffff;
        box-shadow: 0 18px 34px -30px rgba(28, 176, 220, 0.72);
    }
}

@keyframes iots-about-connector-pulse-v2 {
    0%, 100% { top: -2px; opacity: 0; transform: translateX(-50%) scale(.9); }
    14% { opacity: 1; transform: translateX(-50%) scale(1.18); }
    76% { opacity: 1; }
    92% { top: calc(100% - 4px); opacity: 0; transform: translateX(-50%) scale(1); }
}

@keyframes iots-about-principle-pill-v2 {
    0%, 28%, 100% {
        border-color: var(--iots-ah-line);
        box-shadow: none;
    }
    8%, 18% {
        border-color: rgba(72, 131, 196, 0.38);
        box-shadow: 0 9px 20px -18px rgba(26, 23, 80, 0.58);
    }
}

@keyframes iots-about-principle-dot-v2 {
    0%, 100% { transform: scale(1); opacity: .8; }
    45% { transform: scale(1.42); opacity: 1; box-shadow: 0 0 9px currentColor; }
}

/* ----------------------------------------------------------
   5. „JAK PRACUJEMY” — ETAPY + ZASADY „PROSTE WDROŻENIE...”
   ---------------------------------------------------------- */
.iots-about-work-v1__stage {
    transition:
        opacity 520ms ease,
        transform 520ms cubic-bezier(.2, .7, .2, 1),
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-about-work-v1.is-motion-ready .iots-about-work-v1__stage {
    opacity: 0;
    transform: translateY(20px);
}

.iots-about-work-v1.is-motion-ready .iots-about-work-v1__stage.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

.iots-about-work-v1__rail::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        var(--iots-aw-cyan),
        var(--iots-aw-blue),
        var(--iots-aw-indigo)
    );
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 1.1s cubic-bezier(.2, .7, .2, 1);
}

.iots-about-work-v1.is-in-view .iots-about-work-v1__rail::after {
    transform: scaleX(1);
}

.iots-about-work-v1__stage:hover {
    border-color: rgba(72, 131, 196, 0.44);
    box-shadow: 0 22px 42px -32px rgba(26, 23, 80, 0.58);
}

.iots-about-work-v1__icon {
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-about-work-v1__stage:hover .iots-about-work-v1__icon {
    transform: translateY(-2px) scale(1.04);
    border-color: rgba(28, 176, 220, 0.46);
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.07);
}

.iots-about-work-v1__principle {
    position: relative;
    overflow: hidden;
    transition:
        opacity 520ms ease,
        transform 520ms cubic-bezier(.2, .7, .2, 1),
        background-color 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-about-work-v1__principles-section.is-principles-motion-ready
.iots-about-work-v1__principle {
    opacity: 0;
    transform: translateY(18px);
}

.iots-about-work-v1__principles-section.is-principles-motion-ready
.iots-about-work-v1__principle.is-principle-revealed {
    opacity: 1;
    transform: translateY(0);
}

.iots-about-work-v1__principle::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 2px;
    background: linear-gradient(
        90deg,
        var(--iots-aw-cyan),
        var(--iots-aw-blue),
        var(--iots-aw-indigo)
    );
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 300ms ease;
}

.iots-about-work-v1__principle:hover {
    transform: translateY(-4px);
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.40);
    box-shadow: 0 20px 38px -32px rgba(26, 23, 80, 0.62);
}

.iots-about-work-v1__principle:hover::after {
    transform: scaleX(1);
}

.iots-about-work-v1__principle > span {
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-about-work-v1__principle:hover > span {
    transform: scale(1.07) rotate(-2deg);
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.07);
}

/* ----------------------------------------------------------
   6. NOWA SEKCJA KONTAKTOWA — SHORTCODE [iots_contact_section]
   ---------------------------------------------------------- */
.iots-contact-section-v2 {
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--iots-ui-text);
    background: var(--iots-ui-bg);
    border-top: 1px solid var(--iots-ui-line);
    border-bottom: 1px solid var(--iots-ui-line);
    font-family: var(--iots-ui-font);
    scroll-margin-top: 100px;
}

.iots-contact-section-v2--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-contact-section-v2,
.iots-contact-section-v2 * {
    box-sizing: border-box;
}

.iots-contact-section-v2__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 760px 440px at 90% 0%,
            rgba(28, 176, 220, 0.10),
            transparent 64%
        ),
        radial-gradient(
            ellipse 620px 420px at -5% 100%,
            rgba(45, 42, 125, 0.07),
            transparent 64%
        );
    pointer-events: none;
}

.iots-contact-section-v2__inner {
    width: min(calc(100% - 40px), 1240px);
    margin: 0 auto;
    padding: clamp(74px, 8vw, 108px) 0;
}

.iots-contact-section-v2__grid {
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
    align-items: stretch;
    gap: clamp(22px, 3.5vw, 42px);
}

.iots-contact-section-v2__info {
    position: relative;
    overflow: hidden;
    padding: clamp(30px, 4vw, 48px);
    color: #ffffff;
    background:
        radial-gradient(
            ellipse 520px 300px at 100% 0%,
            rgba(28, 176, 220, 0.22),
            transparent 66%
        ),
        linear-gradient(145deg, var(--iots-ui-navy), var(--iots-ui-indigo));
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 22px;
    box-shadow: 0 32px 70px -48px rgba(26, 23, 80, 0.90);
}

.iots-contact-section-v2__info::after {
    content: "";
    position: absolute;
    right: -72px;
    bottom: -72px;
    width: 200px;
    height: 200px;
    border: 1px dashed rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    box-shadow:
        0 0 0 32px rgba(255, 255, 255, 0.025),
        0 0 0 64px rgba(255, 255, 255, 0.018);
    pointer-events: none;
}

.iots-contact-section-v2__dotmark {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 24px;
}

.iots-contact-section-v2__dotmark i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.iots-contact-section-v2__dotmark i:nth-child(1) { background: var(--iots-ui-cyan); }
.iots-contact-section-v2__dotmark i:nth-child(2) { background: #72d8f2; }
.iots-contact-section-v2__dotmark i:nth-child(3) { background: #91aee0; }
.iots-contact-section-v2__dotmark i:nth-child(4) { background: #ffffff; }

.iots-contact-section-v2__eyebrow {
    display: block;
    margin-bottom: 14px;
    color: #8de7fa;
    font-family: var(--iots-ui-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.iots-contact-section-v2__info h2 {
    max-width: 540px;
    margin: 0 !important;
    color: #ffffff !important;
    font-family: var(--iots-ui-font) !important;
    font-size: clamp(34px, 4vw, 50px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -.028em !important;
}

.iots-contact-section-v2__lead {
    max-width: 590px;
    margin: 22px 0 30px !important;
    color: rgba(255, 255, 255, 0.74) !important;
    font-size: 16px !important;
    line-height: 1.72 !important;
}

.iots-contact-section-v2__contacts {
    display: grid;
    gap: 10px;
}

.iots-contact-section-v2__contact {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: center;
    min-height: 74px;
    padding: 12px 14px;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 13px;
    text-decoration: none !important;
    transition:
        transform 220ms ease,
        background-color 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.iots-contact-section-v2__contact:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.105);
    border-color: rgba(141, 231, 250, 0.42);
    transform: translateX(4px);
    box-shadow: 0 16px 30px -26px rgba(0, 0, 0, 0.72);
}

.iots-contact-section-v2__contact-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    color: #8de7fa;
    background: rgba(28, 176, 220, 0.09);
    border: 1px solid rgba(141, 231, 250, 0.20);
    border-radius: 11px;
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.iots-contact-section-v2__contact:hover .iots-contact-section-v2__contact-icon {
    transform: scale(1.06) rotate(-2deg);
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.08);
}

.iots-contact-section-v2__contact-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-contact-section-v2__contact small,
.iots-contact-section-v2__contact strong {
    display: block;
}

.iots-contact-section-v2__contact small {
    margin-bottom: 3px;
    color: rgba(255, 255, 255, 0.55);
    font-family: var(--iots-ui-mono);
    font-size: 9.5px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.iots-contact-section-v2__contact strong {
    color: #ffffff;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.45;
}

.iots-contact-section-v2__contact > i {
    color: #8de7fa;
    font-family: var(--iots-ui-mono);
    font-size: 15px;
    font-style: normal;
}

.iots-contact-section-v2__availability {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 22px;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--iots-ui-mono);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: .04em;
}

.iots-contact-section-v2__availability span {
    width: 8px;
    height: 8px;
    background: var(--iots-ui-cyan);
    border-radius: 50%;
    animation: iots-contact-section-availability 2.3s ease-out infinite;
}

.iots-contact-section-v2__note {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.iots-contact-section-v2__note > span {
    color: #8de7fa;
    font-family: var(--iots-ui-mono);
    font-size: 18px;
    line-height: 1.3;
}

.iots-contact-section-v2__note p {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.63) !important;
    font-size: 12.5px !important;
    line-height: 1.6 !important;
}

.iots-contact-section-v2__form-card {
    padding: clamp(28px, 4vw, 46px);
    background:
        radial-gradient(
            ellipse 440px 230px at 100% 0%,
            rgba(28, 176, 220, 0.075),
            transparent 65%
        ),
        #ffffff;
    border: 1px solid var(--iots-ui-line-strong);
    border-radius: 22px;
    box-shadow: var(--iots-ui-shadow);
}

.iots-contact-section-v2__form-head {
    max-width: 690px;
    margin-bottom: 28px;
}

.iots-contact-section-v2__form-head > span {
    display: block;
    margin-bottom: 10px;
    color: #1d6e92;
    font-family: var(--iots-ui-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.iots-contact-section-v2__form-head h3 {
    margin: 0 !important;
    color: var(--iots-ui-text) !important;
    font-family: var(--iots-ui-font) !important;
    font-size: clamp(29px, 3vw, 39px) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    letter-spacing: -.024em !important;
}

.iots-contact-section-v2__form-head p {
    max-width: 650px;
    margin: 13px 0 0 !important;
    color: var(--iots-ui-body) !important;
    font-size: 14.5px !important;
    line-height: 1.65 !important;
}

.iots-contact-section-v2__admin-note {
    padding: 16px;
    color: #8a2630;
    background: #fff4f4;
    border: 1px solid #f1c8cb;
    border-radius: 10px;
}

/* Fluent Forms wewnątrz nowej sekcji. */
body.page-id-334 .iots-contact-section-v2 #fluentform_3,
.iots-contact-section-v2 .frm-fluent-form {
    padding: 0 !important;
    color: var(--iots-ui-text);
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.iots-contact-section-v2 .ff-el-group {
    margin-bottom: 17px;
}

.iots-contact-section-v2 .ff-el-input--label label {
    margin-bottom: 7px;
    color: var(--iots-ui-text);
    font-family: var(--iots-ui-font);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}

.iots-contact-section-v2 .ff-el-form-control {
    min-height: 52px;
    padding: 12px 14px;
    color: var(--iots-ui-text);
    background: rgba(247, 248, 252, 0.78);
    border: 1px solid rgba(26, 23, 80, 0.16);
    border-radius: 10px;
    box-shadow: none;
    font-family: var(--iots-ui-font);
    font-size: 15px;
    line-height: 1.4;
    transition:
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.iots-contact-section-v2 textarea.ff-el-form-control {
    min-height: 150px;
    resize: vertical;
}

.iots-contact-section-v2 .ff-el-form-control:hover {
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.46);
}

.iots-contact-section-v2 .ff-el-form-control:focus {
    outline: none;
    background: #ffffff;
    border-color: var(--iots-ui-blue);
    box-shadow: 0 0 0 4px rgba(72, 131, 196, 0.14);
}

.iots-contact-section-v2 .ff-el-form-control::placeholder {
    color: #8a8ca3;
    opacity: 1;
}

/* Disclaimer ma takie samo tło jak reszta formularza, bez osobnego boxa. */
.iots-contact-section-v2 .ff-el-tc {
    padding: 2px 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.iots-contact-section-v2 .ff-el-form-check-label {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    color: var(--iots-ui-body);
    font-size: 12px;
    line-height: 1.55;
}

.iots-contact-section-v2 input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--iots-ui-blue);
}

.iots-contact-section-v2 .ff-btn-submit {
    min-height: 50px;
    padding: 12px 25px !important;
    border-radius: 9px !important;
    font-family: var(--iots-ui-font);
    font-size: 14px;
    font-weight: 600;
}

.iots-contact-section-v2 .ff-el-is-error .ff-el-form-control {
    border-color: #c83f49;
    box-shadow: 0 0 0 3px rgba(200, 63, 73, 0.10);
}

.iots-contact-section-v2 .error,
.iots-contact-section-v2 .text-danger {
    margin-top: 6px;
    color: #a92f39;
    font-size: 12px;
}

@keyframes iots-contact-section-availability {
    0%, 48%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 4px rgba(28, 176, 220, 0.10);
    }
    18% {
        transform: scale(1.24);
        box-shadow:
            0 0 0 6px rgba(28, 176, 220, 0.12),
            0 0 18px rgba(28, 176, 220, 0.55);
    }
}

/* ----------------------------------------------------------
   7. MAPA — KARTA LOKALIZACJI
   ---------------------------------------------------------- */
body.page-id-334 .elementor-element-c684c55 {
    position: relative;
    isolation: isolate;
    width: min(calc(100% - 40px), 1240px) !important;
    max-width: 1240px !important;
    margin: clamp(50px, 7vw, 86px) auto clamp(64px, 8vw, 104px) !important;
    padding: 62px 16px 16px !important;
    overflow: hidden;
    background:
        radial-gradient(
            ellipse 520px 260px at 0% 0%,
            rgba(28, 176, 220, 0.11),
            transparent 64%
        ),
        #ffffff;
    border: 1px solid var(--iots-ui-line-strong);
    border-radius: 22px;
    box-shadow: var(--iots-ui-shadow);
}

body.page-id-334 .elementor-element-c684c55::before {
    content: "LOKALIZACJA / DOJAZD";
    position: absolute;
    z-index: 2;
    top: 22px;
    left: 24px;
    color: #1d6e92;
    font-family: var(--iots-ui-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
}

body.page-id-334 .elementor-element-c684c55::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: 20px;
    right: 24px;
    width: 12px;
    height: 12px;
    border: 3px solid var(--iots-ui-cyan);
    border-radius: 50%;
    box-shadow:
        0 0 0 5px rgba(28, 176, 220, 0.10),
        0 0 18px rgba(28, 176, 220, 0.24);
}

body.page-id-334 .elementor-element-55b9f60,
body.page-id-334 .elementor-element-55b9f60 .elementor-custom-embed {
    width: 100% !important;
}

body.page-id-334 .elementor-element-55b9f60 iframe {
    display: block;
    width: 100% !important;
    height: clamp(340px, 42vw, 500px) !important;
    border: 0 !important;
    border-radius: 15px;
    filter: saturate(0.82) contrast(0.96);
}

/* ----------------------------------------------------------
   8. TESTOWE HERO POJEDYNCZEGO ARTYKUŁU

   Test zmienia WYŁĄCZNIE hero. Pozostałe sekcje zachowują obecny wygląd.
   Aktywacja:
   /adres-artykulu/?iots_article_layout_test=1
   ---------------------------------------------------------- */
body.iots-article-layout-test-v2.single-iots_article .iots-article-hero-v2 {
    position: relative;
    isolation: isolate;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 clamp(48px, 6vw, 74px);
    margin-inline: calc(50% - 50vw);
    padding:
        clamp(72px, 8vw, 104px)
        max(20px, calc((100vw - 1240px) / 2 + 40px));
    overflow: hidden;
    grid-template-columns: minmax(0, 1.06fr) minmax(340px, .94fr);
    gap: clamp(38px, 5vw, 72px);
    min-height: clamp(510px, 62vh, 690px);
    background:
        radial-gradient(
            ellipse 820px 500px at 90% -6%,
            rgba(28, 176, 220, 0.12),
            transparent 62%
        ),
        radial-gradient(
            ellipse 660px 430px at -6% 88%,
            rgba(45, 42, 125, 0.08),
            transparent 64%
        ),
        #f7f8fc;
    border: 0;
    border-top: 1px solid rgba(26, 23, 80, 0.10);
    border-bottom: 1px solid rgba(26, 23, 80, 0.12);
    border-radius: 0;
    box-shadow: none;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: clamp(20px, 5vw, 86px);
    bottom: -110px;
    width: 300px;
    height: 300px;
    border: 1px dashed rgba(45, 42, 125, 0.10);
    border-radius: 50%;
    box-shadow:
        0 0 0 48px rgba(45, 42, 125, 0.018),
        0 0 0 96px rgba(28, 176, 220, 0.014);
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2__text {
    align-self: center;
    max-width: 720px;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2 .iots-tag {
    margin-bottom: 20px;
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(72, 131, 196, 0.30);
    box-shadow: 0 7px 20px -18px rgba(26, 23, 80, 0.60);
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2 h1 {
    max-width: 760px;
    color: var(--iots-ui-text);
    font-size: clamp(43px, 5.3vw, 68px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2__meta {
    margin-top: 22px;
    color: #1d6e92;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .11em;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2__excerpt {
    max-width: 650px;
    margin-top: 24px;
    color: var(--iots-ui-body);
    font-size: 17px;
    line-height: 1.72;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2__media {
    align-self: center;
    min-height: clamp(340px, 38vw, 460px);
    padding: clamp(16px, 2vw, 24px);
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(26, 23, 80, 0.12);
    border-radius: 20px;
    box-shadow: 0 28px 64px -46px rgba(26, 23, 80, 0.55);
    animation: iots-article-hero-float-v2 8s ease-in-out infinite;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2__media img {
    min-height: clamp(308px, 34vw, 412px);
    max-height: 430px;
    border-radius: 14px;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2--no-media {
    grid-template-columns: minmax(0, 850px);
    justify-content: center;
    text-align: center;
}

body.iots-article-layout-test-v2.single-iots_article
.iots-article-hero-v2--no-media .iots-article-hero-v2__text {
    max-width: 850px;
}

@keyframes iots-article-hero-float-v2 {
    0%, 100% {
        transform: translateY(0);
        box-shadow: 0 28px 64px -46px rgba(26, 23, 80, 0.55);
    }
    50% {
        transform: translateY(-5px);
        box-shadow: 0 34px 68px -46px rgba(26, 23, 80, 0.62);
    }
}

/* ----------------------------------------------------------
   9. RESPONSYWNOŚĆ
   ---------------------------------------------------------- */
@media (max-width: 1000px) {
    .iots-contact-section-v2__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .iots-contact-section-v2__info,
    .iots-contact-section-v2__form-card {
        border-radius: 18px;
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2 {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        padding-top: 72px;
        padding-bottom: 72px;
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2__text {
        max-width: 780px;
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2__media {
        width: 100%;
        max-width: 760px;
        min-height: 320px;
    }
}

@media (max-width: 767px) {
    .iots-contact-hero-v1__card:hover,
    .iots-about-hero-v1__stage:hover {
        transform: translateY(-2px);
    }

    .iots-about-hero-v1__stage:nth-child(3),
    .iots-about-hero-v1__stage:nth-child(5),
    .iots-about-hero-v1__stage:nth-child(7) {
        margin-left: 0;
    }

    .iots-contact-section-v2 {
        scroll-margin-top: 74px;
    }

    .iots-contact-section-v2__inner {
        width: min(calc(100% - 28px), 1240px);
        padding: 62px 0;
    }

    .iots-contact-section-v2__info,
    .iots-contact-section-v2__form-card {
        padding: 25px 20px;
        border-radius: 16px;
    }

    .iots-contact-section-v2__info h2 {
        font-size: clamp(34px, 10vw, 43px) !important;
    }

    .iots-contact-section-v2__contact {
        grid-template-columns: 42px minmax(0, 1fr) auto;
        gap: 11px;
        padding: 11px;
    }

    .iots-contact-section-v2__contact-icon {
        width: 42px;
        height: 42px;
    }

    .iots-contact-section-v2__contact strong {
        font-size: 12.5px;
    }

    .iots-contact-section-v2 .ff-t-container {
        display: block;
    }

    .iots-contact-section-v2 .ff-t-cell {
        width: 100%;
        padding: 0;
    }

    body.page-id-334 .elementor-element-c684c55 {
        width: min(calc(100% - 28px), 1240px) !important;
        padding: 56px 10px 10px !important;
        border-radius: 17px;
    }

    body.page-id-334 .elementor-element-c684c55::before {
        top: 20px;
        left: 18px;
        font-size: 9.5px;
    }

    body.page-id-334 .elementor-element-c684c55::after {
        top: 18px;
        right: 18px;
    }

    body.page-id-334 .elementor-element-55b9f60 iframe {
        height: 330px !important;
        border-radius: 12px;
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2 {
        padding:
            60px
            20px;
        gap: 30px;
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2 h1 {
        font-size: clamp(39px, 11.5vw, 52px);
    }

    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2__media,
    body.iots-article-layout-test-v2.single-iots_article
    .iots-article-hero-v2__media img {
        min-height: 240px;
    }
}

/* ----------------------------------------------------------
   10. REDUKCJA RUCHU
   ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .iots-contact-hero-v1__panel-status i,
    .iots-contact-hero-v1__process-line::after,
    .iots-contact-hero-v1__step i,
    .iots-contact-hero-v1__step span,
    .iots-about-hero-v1__panel-status i,
    .iots-about-hero-v1__stage,
    .iots-about-hero-v1__connector i::after,
    .iots-about-hero-v1__principles span,
    .iots-about-hero-v1__principles i,
    .iots-contact-section-v2__availability span,
    body.iots-article-layout-test-v2.single-iots_article .iots-article-hero-v2__media {
        animation: none !important;
    }

    .iots-about-work-v1.is-motion-ready .iots-about-work-v1__stage,
    .iots-about-work-v1__principles-section.is-principles-motion-ready
    .iots-about-work-v1__principle {
        opacity: 1;
        transform: none;
    }

    .iots-about-work-v1__rail::after {
        transform: scaleX(1);
        transition: none;
    }
}

/* ==========================================================
   IOTS — ETAP 1 v2.1 — DODATEK DO AKTYWNEGO CSS v2

   Ten blok DOKLEJ na końcu istniejącego CSS v2.
   Nie usuwa ani nie zastępuje poprzedniego pakietu.
   ========================================================== */

/* ----------------------------------------------------------
   1. SEKCJA PRZEJŚCIOWA KONTAKT
   Shortcode: [iots_contact_bridge]
   ---------------------------------------------------------- */
.iots-contact-bridge-v1 {
    position: relative;
    isolation: isolate;
    width: 100%;
    overflow: hidden;
    color: var(--iots-ui-text, #1a1750);
    background: #ffffff;
    border-block: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif);
}

.iots-contact-bridge-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-contact-bridge-v1,
.iots-contact-bridge-v1 * {
    box-sizing: border-box;
}

.iots-contact-bridge-v1__backdrop {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(ellipse 760px 410px at 92% 0%, rgba(28, 176, 220, 0.095), transparent 65%),
        radial-gradient(ellipse 620px 360px at -8% 100%, rgba(45, 42, 125, 0.055), transparent 68%);
    pointer-events: none;
}

.iots-contact-bridge-v1__inner {
    width: min(calc(100% - 40px), 1240px);
    margin-inline: auto;
    padding-block: clamp(76px, 8.5vw, 112px);
}

.iots-contact-bridge-v1__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
    gap: clamp(24px, 5vw, 76px);
    align-items: end;
    margin-bottom: clamp(36px, 5vw, 58px);
}

.iots-contact-bridge-v1__eyebrow,
.iots-contact-bridge-v1__visual-eyebrow {
    display: block;
    color: #1d6e92;
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.iots-contact-bridge-v1__heading .iots-contact-bridge-v1__eyebrow {
    grid-column: 1 / -1;
    margin-bottom: -8px;
}

.iots-contact-bridge-v1__heading h2 {
    max-width: 760px;
    margin: 0 !important;
    color: var(--iots-ui-text, #1a1750) !important;
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif) !important;
    font-size: clamp(36px, 4.5vw, 58px) !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.03em !important;
}

.iots-contact-bridge-v1__heading > p {
    margin: 0 !important;
    color: var(--iots-ui-body, #4c4f79) !important;
    font-size: clamp(15px, 1.45vw, 17px) !important;
    line-height: 1.72 !important;
}

.iots-contact-bridge-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(24px, 4.5vw, 58px);
    align-items: stretch;
}

.iots-contact-bridge-v1__steps {
    display: grid;
    gap: 12px;
}

.iots-contact-bridge-v1__step {
    position: relative;
    display: grid;
    grid-template-columns: 35px 54px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-height: 144px;
    padding: 22px 22px 22px 18px;
    overflow: hidden;
    background: rgba(247, 248, 252, 0.78);
    border: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
    border-radius: 16px;
    transition:
        transform 230ms ease,
        background-color 230ms ease,
        border-color 230ms ease,
        box-shadow 230ms ease;
}

.iots-contact-bridge-v1__step::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 2px;
    background: linear-gradient(90deg, var(--iots-ui-cyan, #1cb0dc), var(--iots-ui-blue, #4883c4), var(--iots-ui-indigo, #2d2a7d));
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 300ms ease;
}

.iots-contact-bridge-v1__step:hover {
    z-index: 2;
    transform: translateY(-4px);
    background: #ffffff;
    border-color: rgba(72, 131, 196, 0.44);
    box-shadow: 0 24px 50px -40px rgba(26, 23, 80, 0.72);
}

.iots-contact-bridge-v1__step:hover::after {
    transform: scaleX(1);
}

.iots-contact-bridge-v1__step-number {
    padding-top: 4px;
    color: var(--iots-ui-blue, #4883c4);
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.iots-contact-bridge-v1__step-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    color: var(--iots-ui-blue, #4883c4);
    background: #ffffff;
    border: 1px solid rgba(72, 131, 196, 0.20);
    border-radius: 13px;
    transition: transform 230ms ease, box-shadow 230ms ease;
}

.iots-contact-bridge-v1__step:hover .iots-contact-bridge-v1__step-icon {
    transform: scale(1.06) rotate(-2deg);
    box-shadow: 0 0 0 6px rgba(28, 176, 220, 0.07);
}

.iots-contact-bridge-v1__step-icon svg {
    width: 30px;
    height: 30px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-contact-bridge-v1__step h3 {
    margin: 0 0 7px !important;
    color: var(--iots-ui-text, #1a1750) !important;
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif) !important;
    font-size: 18px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
}

.iots-contact-bridge-v1__step p {
    margin: 0 !important;
    color: var(--iots-ui-body, #4c4f79) !important;
    font-size: 13.5px !important;
    line-height: 1.62 !important;
}

.iots-contact-bridge-v1__visual {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 456px;
    padding: clamp(30px, 4.5vw, 54px);
    overflow: hidden;
    color: #ffffff;
    background:
        radial-gradient(ellipse 470px 280px at 100% 0%, rgba(28, 176, 220, 0.22), transparent 68%),
        linear-gradient(145deg, var(--iots-ui-navy, #26225b), var(--iots-ui-indigo, #2d2a7d));
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 22px;
    box-shadow: 0 34px 70px -50px rgba(26, 23, 80, 0.90);
}

.iots-contact-bridge-v1__visual-orbit {
    position: absolute;
    z-index: -1;
    right: -64px;
    top: -62px;
    width: 270px;
    height: 270px;
    border: 1px dashed rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    animation: iots-contact-bridge-orbit 22s linear infinite;
}

.iots-contact-bridge-v1__visual-orbit::before,
.iots-contact-bridge-v1__visual-orbit::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 50%;
}

.iots-contact-bridge-v1__visual-orbit::before { inset: 36px; }
.iots-contact-bridge-v1__visual-orbit::after { inset: 76px; }

.iots-contact-bridge-v1__visual-orbit i {
    position: absolute;
    width: 8px;
    height: 8px;
    background: var(--iots-ui-cyan, #1cb0dc);
    border-radius: 50%;
    box-shadow: 0 0 18px rgba(28, 176, 220, 0.72);
}

.iots-contact-bridge-v1__visual-orbit i:nth-child(1) { top: 19px; left: 74px; }
.iots-contact-bridge-v1__visual-orbit i:nth-child(2) { right: 23px; top: 110px; }
.iots-contact-bridge-v1__visual-orbit i:nth-child(3) { left: 31px; bottom: 54px; }

.iots-contact-bridge-v1__visual-eyebrow {
    margin-bottom: 13px;
    color: #8de7fa;
}

.iots-contact-bridge-v1__visual > h3 {
    max-width: 540px;
    margin: 0 !important;
    color: #ffffff !important;
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif) !important;
    font-size: clamp(27px, 3vw, 39px) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em !important;
}

.iots-contact-bridge-v1__flow {
    display: grid;
    grid-template-columns: minmax(86px, 1fr) 44px minmax(86px, 1fr) 44px minmax(86px, 1fr);
    align-items: center;
    gap: 8px;
    margin-top: clamp(34px, 5vw, 52px);
}

.iots-contact-bridge-v1__flow-node {
    display: grid;
    align-content: center;
    min-height: 100px;
    padding: 14px 10px;
    text-align: center;
    background: rgba(255, 255, 255, 0.075);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    transition: transform 220ms ease, background-color 220ms ease, border-color 220ms ease;
}

.iots-contact-bridge-v1__flow-node:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(141, 231, 250, 0.42);
}

.iots-contact-bridge-v1__flow-node span {
    color: #8de7fa;
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 9px;
    letter-spacing: 0.08em;
}

.iots-contact-bridge-v1__flow-node strong {
    display: block;
    margin-top: 7px;
    color: #ffffff;
    font-size: 12px;
    line-height: 1.35;
}

.iots-contact-bridge-v1__flow-line {
    position: relative;
    height: 1px;
    overflow: visible;
    background: rgba(255, 255, 255, 0.17);
}

.iots-contact-bridge-v1__flow-line::after {
    content: "›";
    position: absolute;
    right: -2px;
    top: 50%;
    color: #8de7fa;
    font-size: 18px;
    line-height: 1;
    transform: translateY(-53%);
}

.iots-contact-bridge-v1__flow-line i {
    position: absolute;
    top: -3px;
    left: 0;
    width: 7px;
    height: 7px;
    background: var(--iots-ui-cyan, #1cb0dc);
    border-radius: 50%;
    box-shadow: 0 0 13px rgba(28, 176, 220, 0.72);
    animation: iots-contact-bridge-flow 2.8s ease-in-out infinite;
}

.iots-contact-bridge-v1__flow-line:nth-of-type(2) i {
    animation-delay: 1.4s;
}

.iots-contact-bridge-v1__materials {
    margin-top: 30px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.iots-contact-bridge-v1__materials small {
    display: block;
    margin-bottom: 11px;
    color: rgba(255, 255, 255, 0.55);
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 9.5px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.iots-contact-bridge-v1__materials > div {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.iots-contact-bridge-v1__materials span {
    padding: 6px 9px;
    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 999px;
    font-size: 10.5px;
}

@keyframes iots-contact-bridge-flow {
    0%, 12% { left: 0; opacity: 0; transform: scale(0.75); }
    28% { opacity: 1; }
    78% { opacity: 1; }
    92%, 100% { left: calc(100% - 7px); opacity: 0; transform: scale(1.15); }
}

@keyframes iots-contact-bridge-orbit {
    to { transform: rotate(360deg); }
}

/* Animacja wejścia — bez JS elementy pozostają widoczne. */
.iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__heading,
.iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__step,
.iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__visual {
    opacity: 0;
    transform: translateY(18px);
}

.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__heading,
.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__visual,
.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__step {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 560ms ease, transform 560ms ease;
}

.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__step:nth-child(1) { transition-delay: 100ms; }
.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__step:nth-child(2) { transition-delay: 190ms; }
.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__step:nth-child(3) { transition-delay: 280ms; }
.iots-contact-bridge-v1.is-motion-ready.is-in-view .iots-contact-bridge-v1__visual { transition-delay: 180ms; }

/* ----------------------------------------------------------
   2. WŁASNA KARTA MAPY
   Shortcode: [iots_contact_location]
   ---------------------------------------------------------- */
.iots-contact-location-v1 {
    width: 100%;
    color: var(--iots-ui-text, #1a1750);
    background: var(--iots-ui-bg, #f7f8fc);
    border-block: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif);
}

.iots-contact-location-v1--full {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.iots-contact-location-v1,
.iots-contact-location-v1 * {
    box-sizing: border-box;
}

.iots-contact-location-v1__inner {
    width: min(calc(100% - 40px), 1240px);
    margin-inline: auto;
    padding-block: clamp(66px, 8vw, 102px);
}

.iots-contact-location-v1__card {
    display: grid;
    grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--iots-ui-line-strong, rgba(26, 23, 80, 0.18));
    border-radius: 22px;
    box-shadow: var(--iots-ui-shadow, 0 24px 60px -38px rgba(26, 23, 80, 0.42));
}

.iots-contact-location-v1__info {
    position: relative;
    padding: clamp(30px, 4vw, 50px);
    overflow: hidden;
    background:
        radial-gradient(ellipse 390px 220px at 0% 0%, rgba(28, 176, 220, 0.10), transparent 68%),
        #ffffff;
}

.iots-contact-location-v1__info::after {
    content: "";
    position: absolute;
    right: -62px;
    bottom: -70px;
    width: 180px;
    height: 180px;
    border: 1px dashed rgba(72, 131, 196, 0.17);
    border-radius: 50%;
    box-shadow: 0 0 0 30px rgba(72, 131, 196, 0.025), 0 0 0 60px rgba(72, 131, 196, 0.018);
    pointer-events: none;
}

.iots-contact-location-v1__eyebrow {
    display: block;
    margin-bottom: 13px;
    color: #1d6e92;
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.iots-contact-location-v1__info h2 {
    max-width: 500px;
    margin: 0 !important;
    color: var(--iots-ui-text, #1a1750) !important;
    font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif) !important;
    font-size: clamp(32px, 3.7vw, 48px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.028em !important;
}

.iots-contact-location-v1__lead {
    max-width: 510px;
    margin: 18px 0 28px !important;
    color: var(--iots-ui-body, #4c4f79) !important;
    font-size: 14.5px !important;
    line-height: 1.68 !important;
}

.iots-contact-location-v1__address {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 16px;
    background: var(--iots-ui-bg, #f7f8fc);
    border: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
    border-radius: 14px;
}

.iots-contact-location-v1__address-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    color: var(--iots-ui-blue, #4883c4);
    background: #ffffff;
    border: 1px solid rgba(72, 131, 196, 0.20);
    border-radius: 12px;
}

.iots-contact-location-v1__address-icon svg,
.iots-contact-location-v1__button svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iots-contact-location-v1__address small,
.iots-contact-location-v1__address strong {
    display: block;
}

.iots-contact-location-v1__address small {
    margin-bottom: 4px;
    color: #1d6e92;
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.iots-contact-location-v1__address strong {
    color: var(--iots-ui-text, #1a1750);
    font-size: 14px;
    line-height: 1.5;
}

.iots-contact-location-v1__button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 48px;
    margin-top: 18px;
    padding: 10px 18px;
    color: #ffffff !important;
    background: var(--iots-ui-navy, #26225b);
    border: 1px solid var(--iots-ui-navy, #26225b);
    border-radius: 9px;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 600;
    transition: transform 210ms ease, background-color 210ms ease, color 210ms ease, border-color 210ms ease;
}

.iots-contact-location-v1__button span {
    display: grid;
    place-items: center;
}

.iots-contact-location-v1__button svg {
    width: 22px;
    height: 22px;
}

.iots-contact-location-v1__button i {
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-style: normal;
}

.iots-contact-location-v1__button:hover {
    color: var(--iots-ui-navy, #26225b) !important;
    background: #ffffff;
    border-color: var(--iots-ui-navy, #26225b);
    transform: translateY(-2px);
}

.iots-contact-location-v1__map {
    position: relative;
    min-height: 500px;
    padding: 14px;
    background: #eef1fa;
}

.iots-contact-location-v1__map::after {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(26, 23, 80, 0.09);
    border-radius: 15px;
    pointer-events: none;
}

.iots-contact-location-v1__map-label {
    position: absolute;
    z-index: 3;
    top: 30px;
    left: 30px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 11px;
    color: var(--iots-ui-text, #1a1750);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
    border-radius: 999px;
    box-shadow: 0 12px 28px -22px rgba(26, 23, 80, 0.55);
    backdrop-filter: blur(10px);
    font-family: var(--iots-ui-mono, "IBM Plex Mono", monospace);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.iots-contact-location-v1__map-label i {
    width: 8px;
    height: 8px;
    background: var(--iots-ui-cyan, #1cb0dc);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.10);
    animation: iots-contact-location-dot 2.4s ease-out infinite;
}

.iots-contact-location-v1__map iframe {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 472px;
    border: 0 !important;
    border-radius: 15px;
    filter: saturate(0.80) contrast(0.97);
}

@keyframes iots-contact-location-dot {
    0%, 48%, 100% { transform: scale(1); box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.10); }
    18% { transform: scale(1.28); box-shadow: 0 0 0 8px rgba(28, 176, 220, 0.09), 0 0 18px rgba(28, 176, 220, 0.48); }
}

.iots-contact-location-v1.is-motion-ready .iots-contact-location-v1__card {
    opacity: 0;
    transform: translateY(18px);
}

.iots-contact-location-v1.is-motion-ready.is-in-view .iots-contact-location-v1__card {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 600ms ease, transform 600ms ease;
}

/* ----------------------------------------------------------
   3. AWARYJNA POPRAWKA OBECNEGO WIDGETU MAPY ATOMIC FLEXBOX

   Możesz ją pozostawić do czasu zastąpienia starej sekcji shortcode'em
   [iots_contact_location]. Po usunięciu starej mapy reguły niczego nie zmienią.
   ---------------------------------------------------------- */
body.page-id-334 .e-con.e-atomic-element[data-id="c684c55"] {
    --width: min(calc(100% - 40px), 1240px) !important;
    --max-width: 1240px !important;
    --content-width: 100% !important;
    --container-widget-width: 100% !important;
    inline-size: min(calc(100% - 40px), 1240px) !important;
    width: min(calc(100% - 40px), 1240px) !important;
    max-inline-size: 1240px !important;
    max-width: 1240px !important;
    flex: 0 1 auto !important;
    align-self: center !important;
    margin: clamp(50px, 7vw, 86px) auto clamp(64px, 8vw, 104px) !important;
    padding: 62px 16px 16px !important;
}

body.page-id-334 .e-con.e-atomic-element[data-id="c684c55"] > [data-id="55b9f60"] {
    --width: 100% !important;
    --max-width: none !important;
    --container-widget-width: 100% !important;
    --container-widget-flex-grow: 1 !important;
    inline-size: 100% !important;
    width: 100% !important;
    max-inline-size: none !important;
    max-width: none !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
}

body.page-id-334 .e-con.e-atomic-element[data-id="c684c55"] .elementor-widget-container,
body.page-id-334 .e-con.e-atomic-element[data-id="c684c55"] .elementor-custom-embed {
    inline-size: 100% !important;
    width: 100% !important;
    max-inline-size: none !important;
    max-width: none !important;
}

/* ----------------------------------------------------------
   4. RESPONSYWNOŚĆ
   ---------------------------------------------------------- */
@media (max-width: 1024px) {
    .iots-contact-bridge-v1__heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .iots-contact-bridge-v1__grid {
        grid-template-columns: 1fr;
    }

    .iots-contact-bridge-v1__visual {
        min-height: 420px;
    }

    .iots-contact-location-v1__card {
        grid-template-columns: 1fr;
    }

    .iots-contact-location-v1__map {
        min-height: 420px;
    }

    .iots-contact-location-v1__map iframe {
        min-height: 392px;
    }
}

@media (max-width: 767px) {
    .iots-contact-bridge-v1__inner,
    .iots-contact-location-v1__inner {
        width: min(calc(100% - 28px), 1240px);
    }

    .iots-contact-bridge-v1__heading h2 {
        font-size: clamp(34px, 11vw, 46px) !important;
    }

    .iots-contact-bridge-v1__step {
        grid-template-columns: 28px 46px minmax(0, 1fr);
        min-height: 0;
        padding: 18px 15px;
    }

    .iots-contact-bridge-v1__step-icon {
        width: 46px;
        height: 46px;
    }

    .iots-contact-bridge-v1__step-icon svg {
        width: 26px;
        height: 26px;
    }

    .iots-contact-bridge-v1__visual {
        min-height: 0;
        padding: 28px 20px;
    }

    .iots-contact-bridge-v1__flow {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .iots-contact-bridge-v1__flow-line {
        width: 1px;
        height: 30px;
        margin-inline: auto;
    }

    .iots-contact-bridge-v1__flow-line::after {
        content: "⌄";
        right: auto;
        top: auto;
        bottom: -7px;
        left: 50%;
        transform: translateX(-50%);
    }

    .iots-contact-bridge-v1__flow-line i {
        top: 0;
        left: -3px;
        animation-name: iots-contact-bridge-flow-mobile;
    }

    .iots-contact-location-v1__info {
        padding: 28px 20px;
    }

    .iots-contact-location-v1__map {
        min-height: 350px;
        padding: 10px;
    }

    .iots-contact-location-v1__map::after {
        inset: 10px;
    }

    .iots-contact-location-v1__map iframe {
        min-height: 330px;
    }

    .iots-contact-location-v1__map-label {
        top: 22px;
        left: 22px;
    }

    body.page-id-334 .e-con.e-atomic-element[data-id="c684c55"] {
        --width: calc(100% - 28px) !important;
        inline-size: calc(100% - 28px) !important;
        width: calc(100% - 28px) !important;
        padding: 58px 10px 10px !important;
    }
}

@keyframes iots-contact-bridge-flow-mobile {
    0%, 12% { top: 0; opacity: 0; transform: scale(0.75); }
    28% { opacity: 1; }
    78% { opacity: 1; }
    92%, 100% { top: calc(100% - 7px); opacity: 0; transform: scale(1.15); }
}

@media (prefers-reduced-motion: reduce) {
    .iots-contact-bridge-v1__visual-orbit,
    .iots-contact-bridge-v1__flow-line i,
    .iots-contact-location-v1__map-label i {
        animation: none !important;
    }

    .iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__heading,
    .iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__step,
    .iots-contact-bridge-v1.is-motion-ready .iots-contact-bridge-v1__visual,
    .iots-contact-location-v1.is-motion-ready .iots-contact-location-v1__card {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
/* ==========================================================
   IOTS — ETAP 2A: Kontakt / mapa / spójność adresów
   Wklej na końcu Additional CSS.
   ========================================================== */

/* 1. Hero Kontakt: ciemniejszy akcent zgodny z panelem sekcji poniżej. */
.iots-contact-hero-v1__title-accent {
    background: none !important;
    color: #26225b !important;
    -webkit-text-fill-color: #26225b !important;
}

/* Główny przycisk w tym samym granatowym kierunku. */
.iots-contact-hero-v1__button--primary {
    color: #ffffff !important;
    background: #26225b !important;
    border-color: #26225b !important;
    box-shadow: 0 12px 26px -16px rgba(38, 34, 91, 0.62) !important;
}

.iots-contact-hero-v1__button--primary:hover,
.iots-contact-hero-v1__button--primary:focus-visible {
    color: #26225b !important;
    background: #ffffff !important;
    border-color: #26225b !important;
}

/* 2. Etykieta mapy: prawy górny róg. */
.iots-contact-location-v1__map-label {
    right: 30px !important;
    left: auto !important;
}

@media (max-width: 767px) {
    .iots-contact-location-v1__map-label {
        right: 20px !important;
        left: auto !important;
    }
}

/* ==========================================================
   IOTS — HERO BLOG / WIEDZA v1 + poprawka filtrów

   Shortcode:
   [iots_blog_hero]

   Wklej cały blok na końcu Additional CSS.
   ========================================================== */

.iots-blog-hero-v1 {
    --iots-bh-bg: #f7f8fc;
    --iots-bh-surface: #ffffff;
    --iots-bh-surface-alt: #eef1fa;
    --iots-bh-navy: #26225b;
    --iots-bh-indigo: #2d2a7d;
    --iots-bh-blue: #4883c4;
    --iots-bh-cyan: #1cb0dc;
    --iots-bh-accent: #1d6e92;
    --iots-bh-text: #1a1750;
    --iots-bh-body: #4c4f79;
    --iots-bh-muted: #7b7ea0;
    --iots-bh-line: rgba(26, 23, 80, 0.09);
    --iots-bh-line-strong: rgba(26, 23, 80, 0.16);
    --iots-bh-shadow: 0 28px 70px -42px rgba(26, 23, 80, 0.42);
    --iots-bh-font: "IBM Plex Sans", "Inter", Arial, sans-serif;
    --iots-bh-mono: "IBM Plex Mono", "JetBrains Mono", Consolas, monospace;

    position: relative;
    isolation: isolate;
    width: 100%;
    overflow: hidden;
    background: var(--iots-bh-bg);
    border-top: 1px solid var(--iots-bh-line);
    border-bottom: 1px solid var(--iots-bh-line);
    color: var(--iots-bh-text);
    font-family: var(--iots-bh-font);
}

.iots-blog-hero-v1--full {
    left: 50%;
    width: 100vw;
    max-width: 100vw !important;
    margin-left: -50vw !important;
}

.iots-blog-hero-v1__background {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(ellipse 720px 480px at 86% 2%, rgba(28, 176, 220, 0.13), transparent 65%),
        radial-gradient(ellipse 620px 460px at 2% 100%, rgba(45, 42, 125, 0.09), transparent 64%),
        linear-gradient(rgba(45, 42, 125, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(45, 42, 125, 0.035) 1px, transparent 1px);
    background-size: auto, auto, 38px 38px, 38px 38px;
    mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.76) 66%, transparent 100%);
}

.iots-blog-hero-v1__inner {
    width: min(calc(100% - 40px), 1200px);
    margin: 0 auto;
    padding: 86px 0 78px;
}

.iots-blog-hero-v1__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.94fr);
    gap: clamp(38px, 5.2vw, 72px);
    align-items: center;
}

.iots-blog-hero-v1__content,
.iots-blog-hero-v1__visual {
    min-width: 0;
}

.iots-blog-hero-v1__eyebrow {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    color: var(--iots-bh-accent);
    font-family: var(--iots-bh-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.105em;
    text-transform: uppercase;
}

.iots-blog-hero-v1__eyebrow svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.iots-blog-hero-v1__title {
    max-width: 760px;
    margin: 0;
    color: var(--iots-bh-text);
    font-family: var(--iots-bh-font);
    font-size: clamp(41px, 5.1vw, 64px);
    font-weight: 650;
    line-height: 1.04;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.iots-blog-hero-v1__title span,
.iots-blog-hero-v1__title em {
    display: block;
}

.iots-blog-hero-v1__title em {
    color: var(--iots-bh-accent);
    font-style: normal;
}

.iots-blog-hero-v1__lead {
    max-width: 650px;
    margin: 25px 0 0;
    color: var(--iots-bh-body);
    font-size: clamp(16px, 1.65vw, 18px);
    line-height: 1.68;
}

.iots-blog-hero-v1__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 31px;
}

.iots-blog-hero-v1__button {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 19px;
    border: 1px solid var(--iots-bh-indigo);
    border-radius: 8px;
    font-family: var(--iots-bh-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
    transition:
        transform 180ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease;
}

.iots-blog-hero-v1__button--primary {
    background: var(--iots-bh-indigo);
    color: #fff !important;
    box-shadow: 0 12px 28px -20px rgba(38, 34, 91, 0.75);
}

.iots-blog-hero-v1__button--secondary {
    background: rgba(255, 255, 255, 0.76);
    color: var(--iots-bh-indigo) !important;
}

.iots-blog-hero-v1__button:hover,
.iots-blog-hero-v1__button:focus-visible {
    transform: translateY(-2px);
}

.iots-blog-hero-v1__button--primary:hover,
.iots-blog-hero-v1__button--primary:focus-visible {
    background: #fff;
    color: var(--iots-bh-indigo) !important;
}

.iots-blog-hero-v1__button--secondary:hover,
.iots-blog-hero-v1__button--secondary:focus-visible {
    background: var(--iots-bh-indigo);
    color: #fff !important;
}

.iots-blog-hero-v1__button:focus-visible {
    outline: 3px solid rgba(28, 176, 220, 0.35);
    outline-offset: 3px;
}

.iots-blog-hero-v1__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 690px;
    margin-top: 35px;
    padding-top: 23px;
    border-top: 1px solid var(--iots-bh-line-strong);
}

.iots-blog-hero-v1__stat {
    min-width: 0;
    padding-right: 17px;
}

.iots-blog-hero-v1__stat + .iots-blog-hero-v1__stat {
    padding-left: 19px;
    border-left: 1px solid var(--iots-bh-line-strong);
}

.iots-blog-hero-v1__stat strong,
.iots-blog-hero-v1__stat span {
    display: block;
}

.iots-blog-hero-v1__stat strong {
    margin-bottom: 5px;
    color: var(--iots-bh-indigo);
    font-family: var(--iots-bh-mono);
    font-size: 16px;
    font-weight: 600;
}

.iots-blog-hero-v1__stat span {
    color: var(--iots-bh-muted);
    font-size: 11.5px;
    line-height: 1.45;
}

.iots-blog-hero-v1__panel {
    position: relative;
    padding: 24px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid var(--iots-bh-line-strong);
    border-radius: 18px;
    box-shadow: var(--iots-bh-shadow);
    backdrop-filter: blur(12px);
}

.iots-blog-hero-v1__panel::before {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(28, 176, 220, 0.07), transparent 35%, rgba(45, 42, 125, 0.04));
    content: "";
}

.iots-blog-hero-v1__panel-head {
    position: relative;
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--iots-bh-line);
    color: var(--iots-bh-indigo);
    font-family: var(--iots-bh-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.iots-blog-hero-v1__panel-head small {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: var(--iots-bh-muted);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.iots-blog-hero-v1__panel-head i {
    width: 7px;
    height: 7px;
    background: var(--iots-bh-cyan);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(28, 176, 220, 0.11);
}

.iots-blog-hero-v1__cards {
    position: relative;
    display: grid;
    gap: 11px;
}

.iots-blog-hero-v1__card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-width: 0;
    padding: 14px;
    background: rgba(247, 248, 252, 0.86);
    border: 1px solid var(--iots-bh-line);
    border-radius: 12px;
}

.iots-blog-hero-v1__card-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--iots-bh-surface-alt);
    border: 1px solid var(--iots-bh-line-strong);
    border-radius: 9px;
    color: var(--iots-bh-blue);
    font-family: var(--iots-bh-mono);
    font-size: 10px;
    font-weight: 600;
}

.iots-blog-hero-v1__card div {
    min-width: 0;
}

.iots-blog-hero-v1__card small,
.iots-blog-hero-v1__card strong,
.iots-blog-hero-v1__card p {
    display: block;
}

.iots-blog-hero-v1__card small {
    margin-bottom: 3px;
    color: var(--iots-bh-accent);
    font-family: var(--iots-bh-mono);
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.iots-blog-hero-v1__card strong {
    overflow: hidden;
    color: var(--iots-bh-text);
    font-size: 13px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.iots-blog-hero-v1__card p {
    margin: 4px 0 0;
    color: var(--iots-bh-muted);
    font-size: 10.5px;
    line-height: 1.45;
}

.iots-blog-hero-v1__card svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: var(--iots-bh-blue);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.4;
}

.iots-blog-hero-v1__flow {
    position: relative;
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
    margin-top: 17px;
    padding: 13px 14px;
    background: var(--iots-bh-navy);
    border-radius: 10px;
    color: #fff;
    font-family: var(--iots-bh-mono);
    font-size: 8.5px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.iots-blog-hero-v1__flow i {
    color: var(--iots-bh-cyan);
    font-style: normal;
}

/* ----------------------------------------------------------
   Blog — odstęp i brak obcinania górnej linii filtrów
   ---------------------------------------------------------- */

body.iots-blog-catalog-page .ct-container-full,
body.iots-blog-catalog-page .entry-content,
body.iots-blog-catalog-page .iots-catalog--articles,
body.iots-blog-catalog-page .iots-catalog--articles .iots-filter {
    overflow: visible !important;
}

body.iots-blog-catalog-page .iots-catalog--articles {
    padding-top: 42px !important;
    scroll-margin-top: 110px;
}

body.iots-blog-catalog-page .iots-catalog--articles .iots-filter {
    margin-top: 0 !important;
    padding: 4px 2px 2px !important;
}

body.iots-blog-catalog-page .iots-catalog--articles .iots-filter__button,
body.iots-blog-catalog-page .iots-catalog--articles .solution-filter {
    position: relative;
    isolation: isolate;
}

/* Kotwica dodawana w Elementorze bezpośrednio nad [articles_catalog]. */
#katalog-artykulow {
    scroll-margin-top: 110px;
}

@media (max-width: 960px) {
    .iots-blog-hero-v1__inner {
        padding: 72px 0 66px;
    }

    .iots-blog-hero-v1__grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .iots-blog-hero-v1__visual {
        width: min(100%, 680px);
    }

    .iots-blog-hero-v1--visual-first .iots-blog-hero-v1__visual {
        order: -1;
    }
}

@media (max-width: 650px) {
    .iots-blog-hero-v1__inner {
        width: min(calc(100% - 28px), 1200px);
        padding: 57px 0 52px;
    }

    .iots-blog-hero-v1__grid {
        gap: 34px;
    }

    .iots-blog-hero-v1__eyebrow {
        margin-bottom: 19px;
        font-size: 10px;
    }

    .iots-blog-hero-v1__title {
        font-size: clamp(37px, 11.8vw, 49px);
    }

    .iots-blog-hero-v1__lead {
        margin-top: 20px;
        font-size: 15.5px;
    }

    .iots-blog-hero-v1__actions {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 26px;
    }

    .iots-blog-hero-v1__button {
        width: 100%;
    }

    .iots-blog-hero-v1__stats {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 28px;
        padding-top: 18px;
    }

    .iots-blog-hero-v1__stat,
    .iots-blog-hero-v1__stat + .iots-blog-hero-v1__stat {
        padding: 0;
        border-left: 0;
    }

    .iots-blog-hero-v1__stat + .iots-blog-hero-v1__stat {
        padding-top: 13px;
        border-top: 1px solid var(--iots-bh-line);
    }

    .iots-blog-hero-v1__panel {
        padding: 17px;
        border-radius: 15px;
    }

    .iots-blog-hero-v1__panel-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .iots-blog-hero-v1__card {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 11px;
        padding: 12px;
    }

    .iots-blog-hero-v1__card svg {
        display: none;
    }

    .iots-blog-hero-v1__card p {
        font-size: 10px;
    }

    .iots-blog-hero-v1__flow {
        flex-wrap: wrap;
        justify-content: center;
        font-size: 8px;
    }

    body.iots-blog-catalog-page .iots-catalog--articles {
        padding-top: 30px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .iots-blog-hero-v1 *,
    .iots-blog-hero-v1 *::before,
    .iots-blog-hero-v1 *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* =========================================================
   IOTS — ZESPÓŁ — TŁO BEZPIECZNE
   Klasa Elementora: iots-team-bg-safe
   ========================================================= */

.iots-team-bg-safe {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f7f9fd 48%,
            #f1f5fb 100%
        );
}

/* Delikatna poświata technologiczna */
.iots-team-bg-safe::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: -180px;
    right: -140px;

    width: 520px;
    height: 520px;

    pointer-events: none;

    background:
        radial-gradient(
            circle,
            rgba(21, 89, 237, 0.12) 0%,
            rgba(21, 89, 237, 0.05) 38%,
            rgba(21, 89, 237, 0) 72%
        );
}

/* Bardzo subtelna siatka punktów */
.iots-team-bg-safe::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;

    pointer-events: none;

    opacity: 0.42;

    background-image:
        radial-gradient(
            circle,
            rgba(38, 34, 91, 0.13) 1px,
            transparent 1.2px
        );

    background-size: 28px 28px;

    mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            #000 22%,
            #000 78%,
            transparent 100%
        );

    -webkit-mask-image:
        linear-gradient(
            to bottom,
            transparent 0%,
            #000 22%,
            #000 78%,
            transparent 100%
        );
}

/* Zawartość zawsze nad dekoracją */
.iots-team-bg-safe > * {
    position: relative;
    z-index: 1;
}

@media (max-width: 767px) {
    .iots-team-bg-safe::before {
        top: -110px;
        right: -180px;
        width: 400px;
        height: 400px;
    }

    .iots-team-bg-safe::after {
        background-size: 24px 24px;
        opacity: 0.3;
    }
}
/* =========================================================
   IOTS — ZESPÓŁ — TŁO SIGNATURE / TELEMETRY
   Klasa Elementora: iots-team-bg-signature
   ========================================================= */

.iots-team-bg-signature {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    background:
        radial-gradient(
            circle at 12% 22%,
            rgba(21, 89, 237, 0.14) 0%,
            rgba(21, 89, 237, 0.04) 28%,
            transparent 53%
        ),
        radial-gradient(
            circle at 88% 72%,
            rgba(72, 131, 196, 0.15) 0%,
            rgba(72, 131, 196, 0.04) 30%,
            transparent 58%
        ),
        linear-gradient(
            135deg,
            #f9fbff 0%,
            #eef4fc 48%,
            #f8faff 100%
        );
}

/* Techniczna siatka */
.iots-team-bg-signature::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -2px;

    pointer-events: none;

    opacity: 0.48;

    background-image:
        linear-gradient(
            rgba(38, 34, 91, 0.06) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(38, 34, 91, 0.06) 1px,
            transparent 1px
        );

    background-size: 44px 44px;

    mask-image:
        radial-gradient(
            ellipse at center,
            #000 20%,
            rgba(0, 0, 0, 0.78) 58%,
            transparent 100%
        );

    -webkit-mask-image:
        radial-gradient(
            ellipse at center,
            #000 20%,
            rgba(0, 0, 0, 0.78) 58%,
            transparent 100%
        );
}

/* Okręgi przypominające sygnał i przepływ danych */
.iots-team-bg-signature::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: 50%;
    right: -170px;

    width: 520px;
    height: 520px;

    pointer-events: none;

    border:
        1px solid rgba(21, 89, 237, 0.17);

    border-radius: 50%;

    box-shadow:
        0 0 0 58px rgba(21, 89, 237, 0.045),
        0 0 0 116px rgba(21, 89, 237, 0.028),
        0 0 90px rgba(21, 89, 237, 0.13);

    transform: translateY(-50%);

    animation:
        iots-team-signal 8s ease-in-out infinite;
}

.iots-team-bg-signature > * {
    position: relative;
    z-index: 1;
}

@keyframes iots-team-signal {
    0%,
    100% {
        transform:
            translateY(-50%)
            scale(0.97);

        opacity: 0.72;
    }

    50% {
        transform:
            translateY(-50%)
            scale(1.03);

        opacity: 1;
    }
}

@media (max-width: 767px) {
    .iots-team-bg-signature::before {
        background-size: 32px 32px;
        opacity: 0.32;
    }

    .iots-team-bg-signature::after {
        top: 78%;
        right: -230px;

        width: 420px;
        height: 420px;

        box-shadow:
            0 0 0 42px rgba(21, 89, 237, 0.04),
            0 0 0 84px rgba(21, 89, 237, 0.025),
            0 0 60px rgba(21, 89, 237, 0.1);
    }
}

/* Dostępność — wyłączenie ruchu */
@media (prefers-reduced-motion: reduce) {
    .iots-team-bg-signature::after {
        animation: none;
    }
}
/* =========================================================
   IOTS — ZESPÓŁ — KOŁOWE ZDJĘCIA
   Klasa sekcji: iots-team-bg-signature
   ========================================================= */

.iots-team-bg-signature .elementor-image-box-img {
    display: block;

    width: 190px;
    max-width: 100%;
    aspect-ratio: 1 / 1;

    margin: 0 auto 18px !important;
    padding: 0 !important;
    overflow: hidden !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
}

.iots-team-bg-signature .elementor-image-box-img img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: center 20%;

    background: transparent !important;
    border: 0 !important;
    border-radius: 50% !important;

    opacity: 1 !important;
    visibility: visible !important;
}

/* ==========================================================
   IOTS — KATALOG BRANŻ
   Ujednolicenie kart /industries/ z kartami Branże na Home
   ========================================================== */

/* Siatka jak na Home */
.iots-industries-catalog-v1 .iots-industries-grid-v1 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

/* Niska, pozioma karta */
.iots-industries-catalog-v1 .iots-industry-card-v1 {
    position: relative;

    display: grid !important;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 16px;
    align-items: center;

    min-width: 0;
    min-height: 112px;
    padding: 20px !important;

    overflow: hidden;
}

/* Ikona — te same proporcje co na Home */
.iots-industries-catalog-v1
.iots-industry-card-v1__icon {
    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;

    color: var(--iots-color-blue);
    background: var(--iots-color-surface-blue);
    border: 1px solid var(--iots-color-blue-soft);
    border-radius: var(--iots-radius-md);

    text-decoration: none !important;
}

/* Grafika wewnątrz ikony */
.iots-industries-catalog-v1
.iots-industry-card-v1__icon img {
    display: block;

    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;

    padding: 8px !important;

    object-fit: contain !important;
}

/* Treść i strzałka */
.iots-industries-catalog-v1
.iots-industry-card-v1__body {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 16px;
    align-items: center;

    min-width: 0;
    height: 100%;
}

/* Nazwa branży */
.iots-industries-catalog-v1
.iots-industry-card-v1 h3 {
    grid-column: 1;
    grid-row: 1;

    min-width: 0;
    margin: 0 0 7px !important;

    color: var(--iots-color-text);
    font-size: 15px !important;
    font-weight: 700;
    line-height: 1.35 !important;
}

.iots-industries-catalog-v1
.iots-industry-card-v1 h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

/* Krótki opis */
.iots-industries-catalog-v1
.iots-industry-card-v1 p {
    grid-column: 1;
    grid-row: 2;

    min-width: 0;
    margin: 0 !important;

    color: var(--iots-color-text-muted);
    font-size: 12.5px !important;
    line-height: 1.55 !important;
}

/*
 * Tagi są ukryte w katalogu, ponieważ na Home ich nie ma
 * i zwiększają wysokość pojedynczych kart.
 */
.iots-industries-catalog-v1
.iots-industry-card-v1__tags {
    display: none !important;
}

/* Link zamieniony wizualnie w samą strzałkę */
.iots-industries-catalog-v1
.iots-industry-card-v1 .iots-card__link {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;

    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;
    margin: 0 !important;
    padding: 0 !important;

    color: var(--iots-color-blue) !important;
    border-radius: 50%;

    font-size: 0 !important;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none !important;

    transition:
        color var(--iots-transition),
        background var(--iots-transition),
        transform var(--iots-transition);
}

.iots-industries-catalog-v1
.iots-industry-card-v1 .iots-card__link span {
    display: block;

    font-family: var(--iots-font-mono);
    font-size: 16px;
    line-height: 1;

    transition: transform var(--iots-transition);
}

/* Zachowanie identyczne z Home */
.iots-industries-catalog-v1
.iots-industry-card-v1:hover .iots-card__link {
    background: var(--iots-color-surface-blue);
}

.iots-industries-catalog-v1
.iots-industry-card-v1:hover .iots-card__link span {
    transform: translateX(3px);
}

/* Tablet i telefon */
@media (max-width: 750px) {
    .iots-industries-catalog-v1 .iots-industries-grid-v1 {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    .iots-industries-catalog-v1 .iots-industry-card-v1 {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 13px;

        min-height: 104px;
        padding: 17px !important;
    }

    .iots-industries-catalog-v1
    .iots-industry-card-v1__icon {
        width: 50px !important;
        height: 50px !important;
    }

    /*
     * Tak samo jak na Home — na bardzo małym ekranie
     * strzałkę ukrywamy, żeby zostawić więcej miejsca na nazwę.
     */
    .iots-industries-catalog-v1
    .iots-industry-card-v1 .iots-card__link {
        display: none !important;
    }

    .iots-industries-catalog-v1
    .iots-industry-card-v1__body {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .iots-industries-catalog-v1
    .iots-industry-card-v1 .iots-card__link,
    .iots-industries-catalog-v1
    .iots-industry-card-v1 .iots-card__link span {
        transition: none !important;
    }

    .iots-industries-catalog-v1
    .iots-industry-card-v1:hover .iots-card__link span {
        transform: none;
    }
}

/* ==================================================
   IOTS — GLOBALNE BREADCRUMBS v1
   ================================================== */

.iots-breadcrumbs-v1 {
  position: relative;
  z-index: 3;
  width: 100%;
  background: var(--iots-ui-bg, #f7f8fc);
  border-bottom: 1px solid var(--iots-ui-line, rgba(26, 23, 80, 0.10));
  font-family: var(--iots-ui-font, "IBM Plex Sans", Arial, sans-serif);
}

.iots-breadcrumbs-v1__inner {
  width: min(calc(100% - 40px), 1180px);
  margin: 0 auto;
  padding: 11px 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.iots-breadcrumbs-v1__inner::-webkit-scrollbar {
  display: none;
}

.iots-breadcrumbs-v1 nav,
.iots-breadcrumbs-v1 #breadcrumbs {
  width: max-content;
  min-width: 100%;
  margin: 0;
  padding: 0;
  color: var(--iots-ui-muted, #7b7ea0);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.iots-breadcrumbs-v1 a {
  color: var(--iots-ui-body, #4c4f79);
  text-decoration: none;
  transition: color 160ms ease;
}

.iots-breadcrumbs-v1 a:hover,
.iots-breadcrumbs-v1 a:focus-visible {
  color: var(--iots-ui-cyan, #1cb0dc);
}

.iots-breadcrumbs-v1 a:focus-visible {
  outline: 2px solid rgba(28, 176, 220, 0.35);
  outline-offset: 3px;
  border-radius: 3px;
}

.iots-breadcrumbs-v1 .breadcrumb_last {
  color: var(--iots-ui-text, #1a1750);
  font-weight: 600;
}

.iots-breadcrumbs-v1__separator {
  display: inline-block;
  margin: 0 9px;
  color: var(--iots-ui-muted, #7b7ea0);
}

@media (max-width: 767px) {
  .iots-breadcrumbs-v1__inner {
    width: 100%;
    padding: 10px 18px;
  }

  .iots-breadcrumbs-v1 nav,
  .iots-breadcrumbs-v1 #breadcrumbs {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .iots-breadcrumbs-v1 a {
    transition: none;
  }
}
