.life-lidou-info {
    margin: 1rem 0 1.5rem;
}

.life-lidou-info h2 {
    font-size: 1.15rem;
    margin: 1.25rem 0 .5rem;
}

.life-lidou-prices {
    width: 100%;
    border-collapse: collapse;
}

.life-lidou-prices th,
.life-lidou-prices td {
    padding: .5rem;
    border-bottom: 1px solid rgba(199, 162, 74, .28);
    text-align: left;
}

.life-lidou-closed {
    font-weight: 600;
    color: var(--wp--preset--color--life-action-strong, #d8b65d);
}

.life-lidou-form {
    display: grid;
    gap: 1rem;
    margin: 1rem 0;
    /* The variation form may lay its children out in a flex row; take a full row. */
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
}

.life-lidou-form fieldset {
    display: grid;
    gap: .35rem;
    /* A fieldset defaults to min-width: min-content, which let wide inputs push past its edge. */
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid rgba(199, 162, 74, .28);
    border-radius: 8px;
}

.life-lidou-form fieldset[hidden] {
    display: none;
}

/* Each participant is a collapsible card; the summary row names them when it is closed. */
.life-lidou-participant {
    border: 1px solid rgba(199, 162, 74, .28);
    border-radius: 8px;
}

.life-lidou-participant > summary {
    display: flex;
    gap: .75rem;
    align-items: center;
    min-height: 44px;
    padding: .5rem 1rem;
    cursor: pointer;
    list-style: none;
}

.life-lidou-participant > summary::-webkit-details-marker {
    display: none;
}

.life-lidou-participant > summary::after {
    content: "";
    flex: none;
    width: .55rem;
    height: .55rem;
    margin-inline-start: auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .15s;
}

.life-lidou-participant[open] > summary::after {
    transform: rotate(-135deg);
}

.life-lidou-participant__title {
    font-weight: 600;
    white-space: nowrap;
}

.life-lidou-participant__summary {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: .8;
}

.life-lidou-participant[open] .life-lidou-participant__summary {
    display: none;
}

.life-lidou-form .life-lidou-participant > fieldset {
    padding-top: 0;
    border: 0;
}

.life-lidou-form .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.life-lidou-remove {
    justify-self: start;
    min-height: 44px;
    margin-top: .5rem;
    padding: 0;
    color: var(--wp--preset--color--life-action, #c7a24a);
    background: none;
    border: 0;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.life-lidou-group {
    display: grid;
    gap: .35rem;
}

.life-lidou-add {
    min-height: 44px;
    padding: .5rem 1rem;
    color: var(--wp--preset--color--life-action, #c7a24a);
    background: transparent;
    border: 1px dashed currentColor;
    border-radius: 8px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.life-lidou-add::before {
    content: "+ ";
}

.life-lidou-add:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.life-lidou-group__note {
    margin: 0;
    color: var(--wp--preset--color--life-action, #c7a24a);
}

.life-lidou-group__note:empty {
    display: none;
}

.life-lidou-form legend {
    font-weight: 600;
    padding-inline: .25rem;
}

.life-lidou-form input:not([type="checkbox"]),
.life-lidou-form select,
.life-lidou-form textarea {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: .5rem;
    color: var(--wp--preset--color--life-ink, #eee8da);
    background: var(--wp--preset--color--life-bg-soft, #101820);
    border: 1px solid rgba(238, 232, 218, .45);
    border-radius: 6px;
    font: inherit;
}

.life-lidou-consent {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
}

.life-lidou-consent input {
    min-width: 20px;
    min-height: 20px;
    margin-top: .2rem;
}

/* Wish categories: a wrapping row of 44px-tall checkbox labels inside the participant block. */
.life-lidou-form .life-lidou-wishes {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    padding: .5rem 1rem;
}

.life-lidou-wishes label {
    display: inline-flex;
    gap: .4rem;
    align-items: center;
    min-height: 44px;
}

.life-lidou-lunar {
    margin: .25rem 0 0;
    color: var(--wp--preset--color--life-action, #c7a24a);
}

.life-lidou-lunar:empty {
    display: none;
}

/* Prices must not wrap mid-number in the plans table. */
.life-lidou-prices td:nth-child(2), .life-lidou-prices th:nth-child(2) { white-space: nowrap; }

.life-lidou-prices tbody th {
    font-weight: 600;
    vertical-align: top;
}

.life-lidou-prices td {
    vertical-align: top;
}

.life-lidou-compare-link {
    margin: 0 0 1rem;
}

.life-lidou-compare-link a {
    color: var(--wp--preset--color--life-action, #c7a24a);
}

.life-lidou-compare-link a::after {
    content: " ↓";
}

/* Phones: each plan becomes a card; the cell's data-label stands in for the column header. */
@media (max-width: 720px) {
    .life-lidou-prices thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }

    .life-lidou-prices,
    .life-lidou-prices tbody,
    .life-lidou-prices tr,
    .life-lidou-prices th,
    .life-lidou-prices td {
        display: block;
        box-sizing: border-box;
        width: 100%;
    }

    .life-lidou-prices tr {
        margin-bottom: 1rem;
        padding: .5rem 0;
        border: 1px solid rgba(199, 162, 74, .28);
        border-radius: 8px;
    }

    .life-lidou-prices th,
    .life-lidou-prices td {
        padding: .35rem 1rem;
        border: 0;
    }

    .life-lidou-prices td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-size: .85em;
        opacity: .8;
    }
}
