.intro-split-icon {
    width: 3rem;
    height: 3rem;
}

/* Як TW: w-64 → sm:w-80 → lg:w-96 (одна шкала для обох фреймворків) */
.intro-split-thumb {
    width: 16rem;
    height: 16rem;
    flex-shrink: 0;
}

@media (min-width: 640px) {
    .intro-split-thumb {
        width: 20rem;
        height: 20rem;
    }
}

@media (min-width: 1024px) {
    .intro-split-thumb {
        width: 24rem;
        height: 24rem;
    }
}

/* Bootstrap: flex + gap (no .row negative margins; works with section overflow). Tailwind grid ignores flex on items. */
@media (min-width: 576px) {
    .intro-split-benefits__row > * {
        flex: 1 1 0%;
        min-width: 0;
    }
}


.copy-document__body-stack-gap {
    gap: 4rem;
}

.content-flow-gap {
    gap: 4rem;
}

.content-grid-gap {
    gap: 2rem;
}

.content-prose-measure {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-article-frame {
    max-width: 56rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-cta__lift { transition: transform 150ms ease; }
.content-cta__lift:hover { transform: translateY(-2px); }

.content-col-grow {
    flex: 1 1 0%;
    min-width: 0;
}

.content-img-medium {
    display: block;
    width: 100%;
    height: 22rem;
    min-height: 22rem;
    flex-shrink: 0;
    object-fit: cover;
}
@media (min-width: 768px) {
    .content-img-medium {
        height: 28rem;
        min-height: 28rem;
    }
}

.content-thumb-height {
    display: block;
    width: 100%;
    height: 13rem;
    min-height: 13rem;
    flex-shrink: 0;
    object-fit: cover;
}

.brief-sq-10 { width: 2.5rem; height: 2.5rem; flex-shrink: 0; }

.brief-glass-card,
.brief-glass-panel,
.brief-glass-value {
    backdrop-filter: blur(0.75rem);
    box-shadow: 0 1rem 2rem rgba(15, 23, 42, 0.08);
}

.brief-glass-card {
    background-color: rgba(var(--bs-body-bg-rgb), 0.72);
}

.brief-glass-panel,
.brief-glass-value {
    background-color: rgba(var(--bs-body-bg-rgb), 0.56);
}

.brief-brand-line {
    width: 2.5rem;
    height: 0.125rem;
    background-color: rgba(var(--bs-primary-rgb), 0.45);
}

.brief-orb-one {
    top: -6rem;
    left: -6rem;
    width: 24rem;
    height: 24rem;
    filter: blur(3rem);
}

.brief-orb-two {
    right: -6rem;
    bottom: -6rem;
    width: 20rem;
    height: 20rem;
    filter: blur(3rem);
}

.brief-orb-three {
    top: 50%;
    right: 25%;
    width: 14rem;
    height: 14rem;
    filter: blur(3rem);
}

.brief-cta-hover {
    transition: transform 0.3s ease;
}

.brief-cta-hover:hover {
    transform: scale(1.05);
}

.brief-card-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.brief-card-hover:hover {
    transform: translateY(-0.25rem);
    box-shadow: var(--bs-box-shadow-lg);
}

.brief-icon-hover {
    transition: transform 0.3s ease;
}

.brief-card-hover:hover .brief-icon-hover {
    transform: scale(1.1);
}

.brief-title-hover {
    transition: color 0.3s ease;
}

.brief-card-hover:hover .brief-title-hover {
    color: var(--bs-primary);
}

.content-prose__diamond {
    transform: rotate(45deg);
}

/* content stride — alternating paragraph inset (no surfaces) */
.content-stride__para--odd {
    padding-inline-start: 0;
}

@media (min-width: 768px) {
    .content-stride__para--even {
        padding-inline-start: 2rem;
    }
}

/* gallery v15 — hero image + caption chips.
   Geometry shared by both CSS frameworks (Bootstrap has no utilities for it). */
.gallery-hero-chips__section {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.mxw-5xl {
    max-width: 64rem !important;
}

.mxw-2xl {
    max-width: 42rem !important;
}

.gallery-hero-chips__head {
    margin-bottom: 2.5rem;
}

.gallery-hero-chips__title {
    font-size: 1.875rem;
    margin-bottom: 0.75rem;
}

.gallery-hero-chips__lead {
    font-size: 1.125rem;
}

.gallery-hero-chips__stage {
    aspect-ratio: 16 / 9;
}

.gallery-hero-chips__img {
    object-fit: cover;
}

/* The chips sit in a grid overlay — one chip per cell. Grid cells never overlap, so no
   amount of generated copy can make two chips collide (the cell just grows/wraps). */
.gallery-hero-chips__overlay {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 1fr auto;
    gap: 0.75rem;
    padding: 1.5rem;
}

.gallery-hero-chips__chip {
    /* both frameworks position these absolutely; the overlay owns placement now */
    position: static !important;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    max-width: 20rem;
    padding: 0.75rem 1rem;
    pointer-events: auto;
    --bs-bg-opacity: 0.95;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* a flex item never shrinks below its min-content width — let the copy wrap instead */
.gallery-hero-chips__chip > :not(i) {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.gallery-hero-chips__chip > i {
    flex-shrink: 0;
}

/* one chip per corner — four distinct grid cells, so two chips can never share a spot */
.gallery-hero-chips__chip--tl {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-self: start;
}

.gallery-hero-chips__chip--tr {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: start;
}

.gallery-hero-chips__chip--bl {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
    align-self: end;
}

.gallery-hero-chips__chip--br {
    grid-column: 2;
    grid-row: 3;
    justify-self: end;
    align-self: end;
}

.gallery-hero-chips__chip-text {
    font-size: 0.75rem;
}

/* Phones/tablets: half a stage is too little for a chip, so the whole thing becomes a
   column — photo first, chips under it. Identical in both frameworks. */
@media (max-width: 767.98px) {
    .gallery-hero-chips__stage {
        aspect-ratio: auto;
        display: flex;
        flex-direction: column;
    }

    .gallery-hero-chips__img {
        position: static !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9;
    }

    .gallery-hero-chips__overlay {
        position: static !important;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        padding: 0.75rem;
    }

    .gallery-hero-chips__chip,
    .gallery-hero-chips__chip--tl,
    .gallery-hero-chips__chip--tr,
    .gallery-hero-chips__chip--bl,
    .gallery-hero-chips__chip--br {
        grid-column: 1;
        grid-row: auto;
        justify-self: stretch;
        align-self: auto;
        max-width: none;
    }
}

@media (min-width: 768px) {
    .gallery-hero-chips__title {
        font-size: 2.25rem;
    }
}

.content-grid-gap {
    gap: 2rem;
}

.content-full-frame {
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-heading-gap {
    margin-bottom: 2rem;
}

.content-section-pad {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.content-base-height {
    display: block;
    width: 100%;
    height: 16rem;
    min-height: 16rem;
    flex-shrink: 0;
    object-fit: cover;
}

.content-focus-checklist__button {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    cursor: pointer;
    outline-offset: 0.2rem;
    transition: transform 180ms ease;
}

.content-focus-checklist__button:hover {
    transform: translateY(-0.125rem);
}

.content-focus-checklist__button.is-active {
    transform: translateX(0.25rem);
}

