
.ctco05-faq,
.ctco05-faq *{
    box-sizing:border-box;
}

.ctco05-faq{
    width:100%;
    overflow:hidden;
    padding:var(--ctco05-pad) 0;
    background:var(--ctco05-bg);
    color:var(--ctco05-title);
    font-family:Arial,Helvetica,sans-serif;
}

.ctco05-shell{
    width:min(var(--ctco05-container),calc(100% - 60px));
    margin:0 auto;
}

.ctco05-reveal{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .9s ease,
        transform 1s cubic-bezier(.2,.7,.2,1);
}

.ctco05-visible{
    opacity:1!important;
    transform:none!important;
}

.ctco05-delay-1{
    transition-delay:.12s;
}

.ctco05-faq__grid{
    display:grid;
    grid-template-columns:.78fr 1.22fr;
    gap:var(--ctco05-gap);
    align-items:start;
}

.ctco05-faq__heading{
    position:sticky;
    top:40px;
}

.ctco05-kicker{
    display:inline-block;
    color:var(--ctco05-accent);
    font-size:12px;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.ctco05-faq__heading h2{
    margin:16px 0 0;
    color:var(--ctco05-title);
    font-size:var(--ctco05-title-size);
    line-height:1.12;
    font-weight:600;
    letter-spacing:-.04em;
}

.ctco05-faq__heading p{
    max-width:470px;
    margin:23px 0 0;
    color:var(--ctco05-text);
    font-size:calc(var(--ctco05-body) + 1px);
    line-height:1.78;
}

.ctco05-faq__items{
    border-top:1px solid var(--ctco05-border);
}

.ctco05-faq__item{
    border-bottom:1px solid var(--ctco05-border);
    background:transparent;
    transition:
        background .3s ease,
        padding .3s ease;
}

.ctco05-faq__item[open]{
    padding:0 22px;
    background:var(--ctco05-open);
    border-radius:var(--ctco05-radius);
}

.ctco05-faq__item summary{
    position:relative;
    display:grid;
    grid-template-columns:42px 1fr 28px;
    gap:16px;
    align-items:center;
    min-height:82px;
    padding:22px 0;
    cursor:pointer;
    list-style:none;
}

.ctco05-faq__item summary::-webkit-details-marker{
    display:none;
}

.ctco05-faq__item summary>span{
    color:var(--ctco05-accent);
    font-size:11px;
    font-weight:700;
}

.ctco05-faq__item summary strong{
    color:var(--ctco05-title);
    font-size:var(--ctco05-question);
    line-height:1.4;
    font-weight:600;
}

.ctco05-faq__item summary i{
    position:relative;
    display:block;
    width:24px;
    height:24px;
}

.ctco05-faq__item summary i::before,
.ctco05-faq__item summary i::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    background:var(--ctco05-accent);
    transform:translate(-50%,-50%);
    transition:transform .25s ease,opacity .25s ease;
}

.ctco05-faq__item summary i::before{
    width:15px;
    height:1px;
}

.ctco05-faq__item summary i::after{
    width:1px;
    height:15px;
}

.ctco05-faq__item[open] summary i::after{
    opacity:0;
    transform:translate(-50%,-50%) rotate(90deg);
}

.ctco05-faq__answer{
    padding:0 44px 27px 58px;
}

.ctco05-faq__answer p{
    margin:0;
    color:var(--ctco05-text);
    font-size:var(--ctco05-body);
    line-height:1.78;
}

@media(max-width:1024px){
    .ctco05-faq__grid{
        grid-template-columns:1fr;
        gap:50px;
    }

    .ctco05-faq__heading{
        position:static;
    }

    .ctco05-faq__heading p{
        max-width:720px;
    }
}

@media(max-width:767px){
    .ctco05-shell{
        width:min(var(--ctco05-container),calc(100% - 30px));
    }

    .ctco05-faq{
        padding:75px 0;
    }

    .ctco05-faq__heading h2{
        font-size:clamp(31px,9vw,var(--ctco05-title-size));
    }

    .ctco05-faq__item summary{
        grid-template-columns:32px 1fr 24px;
        gap:10px;
    }

    .ctco05-faq__item summary strong{
        font-size:17px;
    }

    .ctco05-faq__item[open]{
        padding:0 15px;
    }

    .ctco05-faq__answer{
        padding:0 34px 24px 42px;
    }
}

@media(prefers-reduced-motion:reduce){
    .ctco05-reveal{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
    }
}
