.accordion_with_columns {
    --awcol-split: 38.15%;
    --awcol-split-gap: clamp(28px, 84 * (100vw / 1920), 84px);
    --awcol-icon-gap: clamp(16px, 28 * (100vw / 1920), 28px);
    --awcol-body-py: clamp(20px, 56 * (100vw / 1920), 56px);
    --awcol-body-px: clamp(16px, 56 * (100vw / 1920), 56px);
    --awcol-item-title-fz: clamp(17px, 28 * (100vw / 1920), 28px);
    --awcol-item-title-lh: clamp(19px, 32 * (100vw / 1920), 32px);
    --awcol-head-pb: clamp(16px, 28 * (100vw / 1920), 28px);
    --awcol-text-fz: clamp(15px, 19 * (100vw / 1920), 19px);
    --awcol-text-lh: clamp(16px, 24 * (100vw / 1920), 24px);
    --awcol-text-ls: 0.03em;
    --awcol-sep-py: clamp(8px, 12 * (100vw / 1920), 12px);
    --awcol-sep: 2px solid #818181;
}

/* Section bg → body gets the opposite bg, cards get the section bg back. */
.accordion_with_columns.grey {
    background-color: #EDEDED;
}
.accordion_with_columns.white_bg {
    background-color: #fff;
}

.accordion_with_columns.grey .accordion_with_columns__body_inner,
.accordion_with_columns.white_bg .accordion_with_columns__card {
    background-color: #fff;
}

.accordion_with_columns.white_bg .accordion_with_columns__body_inner,
.accordion_with_columns.grey .accordion_with_columns__card {
    background-color: #EDEDED;
}

.accordion_with_columns .accordion_with_columns__title {
    margin-bottom: clamp(26px, 84 * (100vw / 1920), 84px);
}

.accordion_with_columns__item {
    border-top: 2px solid #D1D1D1;
    transition: border-color 0.3s ease;
}

.accordion_with_columns__item.active {
    border-top-color: #000;
}

/* Open body already separates it from the next item */
.accordion_with_columns__item.active:has(.accordion_with_columns__body) + .accordion_with_columns__item {
    border-top-color: transparent;
}

/* ===== Head: title / description / +– icon =====
 * Description column starts at the same --awcol-split + gap as the body's right column. */

.accordion_with_columns__head {
    display: grid;
    /* Explicit gap tracks: title→description uses the body's split gap,
     * description→icon has its own smaller gap. */
    grid-template-columns: var(--awcol-split) var(--awcol-split-gap) 1fr var(--awcol-icon-gap) auto;
    align-items: center;
    padding: 16px 0 var(--awcol-head-pb);
    cursor: pointer;
}

.accordion_with_columns .accordion_with_columns__item_title {
    grid-column: 1;
    margin: 0;
    font-size: var(--awcol-item-title-fz);
    line-height: var(--awcol-item-title-lh);
    font-weight: 500;
    letter-spacing: -0.01em;
    text-transform: uppercase;
}

.accordion_with_columns__description {
    grid-column: 3;
    margin: 0;
    font-size: var(--awcol-text-fz);
    line-height: var(--awcol-text-lh);
    letter-spacing: -0.01em;
    color: #000;
}

.accordion_with_columns__icon {
    grid-column: 5;
    font-size: 1.72em;
    font-weight: 400;
    line-height: 1;
}

.accordion_with_columns__icon:before {
    content: "+";
}

.accordion_with_columns__item.active .accordion_with_columns__icon:before {
    content: "\2013";
}

/* ===== Body: 0fr→1fr grid-row transition ===== */

.accordion_with_columns__body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease;
}

.accordion_with_columns__item.active .accordion_with_columns__body {
    grid-template-rows: 1fr;
}

.accordion_with_columns__body_inner {
    min-height: 0;
    overflow: hidden;
}

.accordion_with_columns__body_content {
    padding: var(--awcol-body-py) 0;
}

/* Per-sibling spacing instead of one gap: the button sits closer than the rest */
.accordion_with_columns__body_content > * + * {
    margin-top: clamp(28px, 56 * (100vw / 1920), 56px);
}

.accordion_with_columns__body_content > .accordion_with_columns__btn {
    margin-top: clamp(16px, 56 * (100vw / 1920), 56px);
}

/* Horizontal padding lives on the children, so the columns grid spans the
 * full item width and its --awcol-split lines up with the head description. */
.accordion_with_columns__cards,
.accordion_with_columns__btn {
    padding: 0 var(--awcol-body-px);
}

.accordion_with_columns__columns {
    display: grid;
    grid-template-columns: var(--awcol-split) 1fr;
    gap: var(--awcol-split-gap);
}

.accordion_with_columns__column--left {
    padding-left: var(--awcol-body-px);
}

.accordion_with_columns__column--right {
    grid-column: 2;
    padding-right: var(--awcol-body-px);
}

.accordion_with_columns__label {
    margin: 0 0 clamp(16px, 28 * (100vw / 1920), 28px);
    font-size: var(--awcol-text-fz);
    line-height: var(--awcol-text-lh);
    font-weight: 500;
    letter-spacing: var(--awcol-text-ls);
    text-transform: uppercase;
    color: #000;
}

/* ===== Wysiwyg text (columns, cards) ===== */

.accordion_with_columns__text {
    font-size: var(--awcol-text-fz);
    line-height: var(--awcol-text-lh);
    letter-spacing: -0.01em;
    color: #000;
}

.accordion_with_columns__text * {
    font-size: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
}

.accordion_with_columns__text > *:not(:last-child) {
    margin-bottom: 12px;
}

.accordion_with_columns__text ul > li {
    position: relative;
    padding-left: 1em;
}

.accordion_with_columns__text ul > li:before {
    content: "•";
    position: absolute;
    left: 0;
}

.accordion_with_columns__text ol {
    list-style: decimal;
    padding-left: 1.2em;
}

/* Left column: every list item is separated by a top border */
.accordion_with_columns__text--list ul {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 28 * (100vw / 1920), 28px);
}

.accordion_with_columns__text--list ul > li {
    padding-top: var(--awcol-sep-py);
    border-top: var(--awcol-sep);
}

.accordion_with_columns__text--list ul > li:before {
    top: var(--awcol-sep-py);
}

/* ===== Right column rows ===== */

.accordion_with_columns__rows {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: clamp(16px, 28 * (100vw / 1920), 28px);
}

.accordion_with_columns__row {
    display: grid;
    grid-template-columns: 34% 1fr;
    gap: clamp(8px, 56 * (100vw / 1920), 56px);
    padding-top: clamp(8px, 16 * (100vw / 1920), 16px);
    border-top: var(--awcol-sep);
}

.accordion_with_columns__row_title,
.accordion_with_columns__row_description {
    margin: 0;
    font-size: var(--awcol-text-fz);
    line-height: var(--awcol-text-lh);
    letter-spacing: var(--awcol-text-ls);
    color: #000;
}

.accordion_with_columns__row_title {
    font-weight: 500;
}

.accordion_with_columns__note {
    margin-top: clamp(16px, 28 * (100vw / 1920), 28px);
    font-weight: 500;
}

/* ===== Cards ===== */

.accordion_with_columns__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(16px, 56 * (100vw / 1920), 56px);
}

/* Card text keeps the previous accordion's tighter tracking */
.accordion_with_columns__card {
    --awcol-text-ls: -0.01em;
}

.accordion_with_columns__card {
    padding: clamp(16px, 56 * (100vw / 1920), 56px);
}

.accordion_with_columns .accordion_with_columns__card_title {
    margin: 0 0 12px;
    font-size: var(--awcol-item-title-fz);
    line-height: var(--awcol-item-title-lh);
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.accordion_with_columns__details {
    margin-top: clamp(16px, 28 * (100vw / 1920), 28px);
}

.accordion_with_columns__detail {
    padding: var(--awcol-sep-py) 0;
    border-top: var(--awcol-sep);
}

.accordion_with_columns__detail:last-child {
    padding-bottom: 0;
}

/* Note sits apart from the bordered details: no border, bigger top gap */
.accordion_with_columns__card_note {
    margin-top: clamp(16px, 28 * (100vw / 1920), 28px);
}

/* ===== Link button (global .block-btn.get-in-touch) ===== */

.accordion_with_columns__btn.block-btn.get-in-touch a {
    margin-top: 0;
    min-width: 0;
    padding: clamp(17px, 29 * (100vw / 1920), 29px) clamp(17px, 56 * (100vw / 1920), 56px);
    font-size: clamp(11px, 19 * (100vw / 1920), 19px);
    line-height: clamp(14px, 24 * (100vw / 1920), 24px);
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

@media (max-width: 1024px) {
    .accordion_with_columns__icon {
        font-size: 24px;
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .accordion_with_columns {
        --awcol-text-ls: -0.01em;
    }

    /* Icon keeps its own column; description sits under the title only */
    .accordion_with_columns__head {
        grid-template-columns: 1fr auto;
        column-gap: var(--awcol-icon-gap);
        grid-template-areas:
            "title icon"
            "desc  icon";
        row-gap: 6px;
    }

    .accordion_with_columns .accordion_with_columns__item_title {
        grid-area: title;
        letter-spacing: 0;
    }

    .accordion_with_columns__description {
        grid-area: desc;
    }

    .accordion_with_columns__icon {
        grid-area: icon;
        align-self: start;
    }

    .accordion_with_columns__body_content {
        padding: var(--awcol-body-py) var(--awcol-body-px);
    }

    .accordion_with_columns__columns {
        grid-template-columns: 1fr;
    }

    .accordion_with_columns__column--right {
        grid-column: auto;
    }

    .accordion_with_columns__column--left,
    .accordion_with_columns__column--right,
    .accordion_with_columns__cards,
    .accordion_with_columns__btn {
        padding: 0;
    }

    .accordion_with_columns__cards {
        grid-template-columns: 1fr;
    }

    .accordion_with_columns__row {
        grid-template-columns: 1fr;
    }

    .accordion_with_columns .accordion_with_columns__card_title {
        margin-bottom: 16px;
    }

}
