.section-imgtxtio {
    content-visibility: auto;
    contain-intrinsic-size: 650px;
}

.section-imgtxtio img { border: none !important; display: block; }

/* ── Dark variant (default) ─────────────────────── */
.section-imgtxtio.imgtxtio--dark { background: #0a0a0a; }

/* ── IMAGE SIDE ──────────────────────────────────── */
.imgtxtio__img-side {
    position: relative;
    overflow: hidden;
    min-height: 650px;
}

.imgtxtio__img-desktop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.imgtxtio__img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, 0) 45%);
    pointer-events: none;
}

.imgtxtio__title-block {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2.25rem 2.5rem;
}

.imgtxtio__eyebrow {
    font-family: 'League Spartan', sans-serif;
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .4);
    display: block;
    margin-bottom: .5rem;
}

.imgtxtio__title {
    font-family: 'League Spartan', sans-serif;
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 300;
    line-height: 1.18;
    color: #fff;
    letter-spacing: -.01em;
    margin: 0;
    padding: 0;
}

.imgtxtio__title em {
    font-family: 'Lato', sans-serif;
    font-style: italic;
    font-weight: 300;
    font-size: .95em;
}

/* ── CONTENT SIDE ────────────────────────────────── */
.imgtxtio--dark .imgtxtio__content {
    background: #0a0a0a;
    border-right: 1px solid rgba(255, 255, 255, .08);
    padding: 4rem 4rem 4rem 4.5rem;
}

.imgtxtio--light .imgtxtio__content {
    padding: 4rem 4rem 4rem 4.5rem;
}

/* Swap border when columns are inverted */
@media (min-width: 992px) {
    .imgtxtio--dark.imgtxtio--inverted .imgtxtio__content {
        border-right: none;
        border-left: 1px solid rgba(255, 255, 255, .08);
    }
}

.imgtxtio__divider {
    width: 28px;
    height: 1px;
    background: #119199;
    display: block;
    margin-bottom: 2rem;
    flex-shrink: 0;
}

.imgtxtio--dark .imgtxtio__body {
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, .55);
    font-weight: 300;
}

.imgtxtio--light .imgtxtio__body {
    font-size: 1.05rem;
    line-height: 1.7;
    color: rgba(0, 0, 0, .65);
    font-weight: 300;
}

.imgtxtio__body p { margin-bottom: .75rem; }
.imgtxtio__body p:last-child { margin-bottom: 0; }

/* ── MOBILE IMAGE ────────────────────────────────── */
.imgtxtio__mobile-img-wrap {
    position: relative;
    width: 100%;
    height: 500px;
    overflow: hidden;
    background: #030303;
}

.imgtxtio__img-mobile {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.imgtxtio__mobile-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, 0) 50%);
    pointer-events: none;
}

.imgtxtio__mobile-title-block {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem 1.5rem 1.75rem;
}

/* ── ICONS ROW (desktop) ─────────────────────────── */
.imgtxtio__icons-row {
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.imgtxtio--dark .imgtxtio__icons-row { background: #0a0a0a; }
.imgtxtio--light .imgtxtio__icons-row { border-top-color: rgba(0, 0, 0, .08); }

.imgtxtio__icon-item {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3rem 2rem;
    border-right: 1px solid rgba(255, 255, 255, .08);
}

.imgtxtio--light .imgtxtio__icon-item { border-right-color: rgba(0, 0, 0, .08); }
.imgtxtio__icon-item:last-child { border-right: none !important; }

.imgtxtio__icon-wrap {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .07);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
}

.imgtxtio--light .imgtxtio__icon-wrap { background: rgba(0, 0, 0, .06); }

.imgtxtio__icon-name {
    font-family: 'League Spartan', sans-serif;
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    display: block;
    margin-bottom: .5rem;
}

.imgtxtio--light .imgtxtio__icon-name { color: #0e0e0e; }

.imgtxtio__icon-desc {
    font-family: 'Lato', sans-serif;
    font-size: .95rem;
    font-weight: 300;
    line-height: 1.5;
    color: rgba(255, 255, 255, .5);
    margin: 0;
    padding: 0;
}

.imgtxtio--light .imgtxtio__icon-desc { color: rgba(0, 0, 0, .55); }

/* ── ICONS SWIPER (mobile) ───────────────────────── */

/* Swiper minimal base (no CDN CSS needed) */
.imgtxtio__swiper { overflow: hidden; }
.imgtxtio__swiper .swiper-wrapper { display: flex; width: 100%; box-sizing: content-box; }
.imgtxtio__swiper .swiper-slide { flex-shrink: 0; width: 100%; }

.imgtxtio__icons-swiper-wrap {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding: 2.5rem 1.5rem 1rem;
}

.imgtxtio--dark .imgtxtio__icons-swiper-wrap { background: #0a0a0a; }
.imgtxtio--light .imgtxtio__icons-swiper-wrap { border-top-color: rgba(0, 0, 0, .08); }

.imgtxtio__icon-slide {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 1rem 1rem;
}

.imgtxtio__swiper-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 1.5rem;
    padding-bottom: 1rem;
}

.imgtxtio__swiper-pagination .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .25);
    opacity: 1;
    cursor: pointer;
    transition: background .2s;
}

.imgtxtio--light .imgtxtio__swiper-pagination .swiper-pagination-bullet {
    background: rgba(0, 0, 0, .2);
}

.imgtxtio__swiper-pagination .swiper-pagination-bullet-active {
    background: #119199;
}

/* ── MOBILE RESPONSIVE ───────────────────────────── */
@media (max-width: 991.98px) {
    .imgtxtio--dark .imgtxtio__content {
        padding: 2.5rem 1.5rem 3rem;
        border-right: none;
        border-top: 1px solid rgba(255, 255, 255, .08);
    }

    .imgtxtio--light .imgtxtio__content {
        padding: 2.5rem 1.5rem 3rem;
    }

    .imgtxtio__body--desktop-only { display: none; }
}
