.tdfaq-layout,
.tdfaq-layout * { box-sizing: border-box; }
.tdfaq-layout {
    --tdfaq-left: 34%;
    display: grid;
    grid-template-columns: minmax(0,var(--tdfaq-left)) minmax(0,1fr);
    align-items: start;
    width: 100%;
    font-family: "Manrope", sans-serif;
}
.tdfaq-left { min-width: 0; }
.tdfaq-left-inner.is-sticky { position: relative; transform: translate3d(0,0,0); will-change: transform; }
.tdfaq-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 13px 5px;
    line-height: 1.1;
    margin-bottom: 16px;
}
.tdfaq-heading { margin: 0; white-space: normal; letter-spacing: -0.045em; }
.tdfaq-subheading { margin-top: 14px; white-space: normal; }
.tdfaq-button {
    margin-top: 42px;
    min-height: 61px;
    padding: 8px 10px 8px 26px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 28px;
    text-decoration: none !important;
    transition: transform .3s ease, opacity .3s ease;
}
.tdfaq-button:hover { transform: translateY(-2px); }
.tdfaq-button-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.tdfaq-button:hover .tdfaq-button-icon { transform: rotate(45deg); }
.tdfaq-list { display: flex; flex-direction: column; min-width: 0; }
.tdfaq-item { overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.tdfaq-question-button {
    appearance: none;
    border: 0 !important;
    outline: 0;
    background: transparent !important;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
    cursor: pointer;
    box-shadow: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    line-height: normal;
}
.tdfaq-question { flex: 1; }
.tdfaq-toggle { position: relative; width: 22px; height: 22px; flex: 0 0 22px; }
.tdfaq-toggle::before,
.tdfaq-toggle::after {
    content: "";
    position: absolute;
    left: 50%; top: 50%;
    width: 18px; height: 1.5px;
    transform: translate(-50%,-50%);
    transition: transform .42s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}
.tdfaq-toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
.tdfaq-item.is-open .tdfaq-toggle::before { transform: translate(-50%,-50%) rotate(45deg); }
.tdfaq-item.is-open .tdfaq-toggle::after { transform: translate(-50%,-50%) rotate(-45deg); }
.tdfaq-answer {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows .52s cubic-bezier(.22,1,.36,1), opacity .32s ease;
}
.tdfaq-answer-inner { min-height: 0; overflow: hidden; }
.tdfaq-answer-content { min-height: 0; }
.tdfaq-answer-content > *:first-child { margin-top: 0; }
.tdfaq-answer-content > *:last-child { margin-bottom: 0; }
.tdfaq-item.is-open .tdfaq-answer { grid-template-rows: 1fr; opacity: 1; }

@media (max-width: 1024px) {
    .tdfaq-heading { letter-spacing: -0.035em; }
}
@media (max-width: 767px) {
    .tdfaq-layout { grid-template-columns: 1fr; }
    .tdfaq-left-inner.is-sticky { position: static; transform: none !important; }
    .tdfaq-button { margin-top: 28px; }
    .tdfaq-list { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .tdfaq-answer, .tdfaq-toggle::before, .tdfaq-toggle::after, .tdfaq-button, .tdfaq-button-icon { transition-duration: .01ms !important; }
}
