.ars-faq {
    box-sizing: border-box;
    width: 100%;
    padding-block: var(--arsfaq-section-padding, 48px);
    color: var(--arsfaq-answer, #55515f);
    background: var(--arsfaq-section-bg, #fff);
}

.ars-faq *,
.ars-faq *::before,
.ars-faq *::after { box-sizing: border-box; }

.ars-faq__inner {
    width: min(100% - 32px, var(--arsfaq-max-width, 1000px));
    margin-inline: auto;
}

.ars-faq__header {
    max-width: 820px;
    margin-bottom: 28px;
}

.ars-faq--align-center .ars-faq__header { margin-inline: auto; text-align: center; }
.ars-faq--align-left .ars-faq__header { margin-right: auto; text-align: left; }
.ars-faq--align-right .ars-faq__header { margin-left: auto; text-align: right; }

.ars-faq__eyebrow {
    display: inline-block;
    width: 34px;
    height: 5px;
    margin-bottom: 12px;
    border-radius: 99px;
    background: var(--arsfaq-accent, #ef3f3f);
    transform: skewX(-18deg);
}

.ars-faq__title {
    margin: 0;
    color: var(--arsfaq-heading, #3214a8);
    font-size: var(--arsfaq-title-size, 32px);
    font-weight: 800;
    line-height: 1.35;
}

.ars-faq__intro {
    margin-top: 10px;
    color: var(--arsfaq-answer, #55515f);
    font-size: var(--arsfaq-answer-size, 16px);
    line-height: 1.9;
}
.ars-faq__intro > :first-child { margin-top: 0; }
.ars-faq__intro > :last-child { margin-bottom: 0; }

.ars-faq__tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 20px;
}

.ars-faq__search-wrap {
    position: relative;
    display: block;
    width: min(100%, 460px);
}

.ars-faq__search {
    width: 100%;
    min-height: 48px;
    padding: 10px 48px 10px 15px;
    border: 1px solid var(--arsfaq-search-border, #ddd6eb);
    border-radius: calc(var(--arsfaq-radius, 12px) * .75);
    outline: none;
    color: var(--arsfaq-question, #24164f);
    background: var(--arsfaq-search-bg, #fff);
    font: inherit;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.ars-faq__search:focus {
    border-color: var(--arsfaq-accent, #ef3f3f);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--arsfaq-accent, #ef3f3f) 14%, transparent);
}

.ars-faq__search-icon {
    position: absolute;
    top: 50%;
    right: 17px;
    width: 16px;
    height: 16px;
    border: 2px solid var(--arsfaq-icon, #4d20c8);
    border-radius: 50%;
    transform: translateY(-56%);
    pointer-events: none;
}
.ars-faq__search-icon::after {
    position: absolute;
    bottom: -5px;
    left: -4px;
    width: 7px;
    height: 2px;
    border-radius: 2px;
    background: var(--arsfaq-icon, #4d20c8);
    content: "";
    transform: rotate(45deg);
}

.ars-faq__controls { display: flex; flex-wrap: wrap; gap: 8px; }
.ars-faq__control {
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--arsfaq-border, #e8e3f1);
    border-radius: 8px;
    color: var(--arsfaq-question, #24164f);
    background: var(--arsfaq-item-bg, #fff);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.ars-faq__control:hover,
.ars-faq__control:focus-visible {
    border-color: var(--arsfaq-accent, #ef3f3f);
    color: var(--arsfaq-accent, #ef3f3f);
}

.ars-faq__grid {
    display: grid;
    grid-template-columns: repeat(var(--arsfaq-columns-desktop, 1), minmax(0, 1fr));
    align-items: start;
    gap: var(--arsfaq-gap, 14px);
}

.ars-faq__item {
    overflow: hidden;
    min-width: 0;
    border: var(--arsfaq-border-width, 1px) solid var(--arsfaq-border, #e8e3f1);
    border-radius: var(--arsfaq-radius, 12px);
    background: var(--arsfaq-item-bg, #fff);
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ars-faq__item.is-open {
    border-color: color-mix(in srgb, var(--arsfaq-accent, #ef3f3f) 42%, var(--arsfaq-border, #e8e3f1));
    background: var(--arsfaq-active-bg, #faf8ff);
}

.ars-faq__question-heading { margin: 0; padding: 0; font: inherit; }

.ars-faq__trigger {
    display: flex;
    width: 100%;
    min-height: 58px;
    align-items: center;
    gap: 13px;
    padding: var(--arsfaq-question-padding, 20px);
    border: 0;
    outline: none;
    color: var(--arsfaq-question, #24164f);
    background: transparent;
    font: inherit;
    font-size: var(--arsfaq-question-size, 18px);
    font-weight: 800;
    line-height: 1.6;
    text-align: right;
    cursor: pointer;
}

.ars-faq__trigger:focus-visible {
    box-shadow: inset 0 0 0 2px var(--arsfaq-accent, #ef3f3f);
}

.ars-faq__question-text { flex: 1 1 auto; min-width: 0; }

.ars-faq__number {
    display: inline-flex;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--arsfaq-accent, #ef3f3f);
    font-size: 13px;
    font-weight: 800;
}

.ars-faq__icon {
    position: relative;
    display: inline-flex;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--arsfaq-icon, #4d20c8);
    background: var(--arsfaq-icon-bg, #f0ebff);
    transition: color .2s ease, background .2s ease, transform var(--arsfaq-duration, 260ms) ease;
}

.ars-faq__item.is-open .ars-faq__icon {
    color: #fff;
    background: var(--arsfaq-accent, #ef3f3f);
}

.ars-faq--icon-left .ars-faq__icon { order: 3; }
.ars-faq--icon-right .ars-faq__icon { order: -1; }
.ars-faq--icon-left .ars-faq__number { order: -1; }
.ars-faq--icon-right .ars-faq__number { order: 3; }

.ars-faq--icon-plus-minus .ars-faq__icon i,
.ars-faq--icon-plus-minus .ars-faq__icon b {
    position: absolute;
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    content: "";
    transition: transform var(--arsfaq-duration, 260ms) ease, opacity var(--arsfaq-duration, 260ms) ease;
}
.ars-faq--icon-plus-minus .ars-faq__icon b { transform: rotate(90deg); }
.ars-faq--icon-plus-minus .is-open .ars-faq__icon b { opacity: 0; transform: rotate(0); }

.ars-faq--icon-chevron .ars-faq__icon i {
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform var(--arsfaq-duration, 260ms) ease;
}
.ars-faq--icon-chevron .is-open .ars-faq__icon i { transform: translateY(2px) rotate(225deg); }

.ars-faq--icon-arrow .ars-faq__icon::before {
    content: "←";
    font-size: 17px;
    line-height: 1;
    transition: transform var(--arsfaq-duration, 260ms) ease;
}
.ars-faq--icon-arrow .is-open .ars-faq__icon::before { transform: rotate(-90deg); }

.ars-faq--icon-question .ars-faq__icon::before {
    content: "؟";
    font-size: 18px;
    font-weight: 900;
    transition: transform var(--arsfaq-duration, 260ms) ease;
}
.ars-faq--icon-question .is-open .ars-faq__icon::before { transform: rotate(12deg) scale(1.05); }

.ars-faq__panel {
    display: grid;
    grid-template-rows: 0fr;
    opacity: .45;
    visibility: hidden;
    transition: grid-template-rows var(--arsfaq-duration, 260ms) ease, opacity var(--arsfaq-duration, 260ms) ease, visibility 0s linear var(--arsfaq-duration, 260ms);
}

.ars-faq__item.is-open .ars-faq__panel {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    transition: grid-template-rows var(--arsfaq-duration, 260ms) ease, opacity var(--arsfaq-duration, 260ms) ease, visibility 0s;
}

.ars-faq__panel-grid { overflow: hidden; min-height: 0; }
.ars-faq__answer {
    padding: 0 var(--arsfaq-answer-padding, 20px) var(--arsfaq-answer-padding, 20px);
    color: var(--arsfaq-answer, #55515f);
    font-size: var(--arsfaq-answer-size, 16px);
    line-height: 1.95;
}
.ars-faq__answer > :first-child { margin-top: 0; }
.ars-faq__answer > :last-child { margin-bottom: 0; }
.ars-faq__answer a { color: var(--arsfaq-accent, #ef3f3f); text-decoration: underline; text-underline-offset: 3px; }
.ars-faq__answer ul,
.ars-faq__answer ol { padding-right: 22px; }

.ars-faq__no-results {
    margin-top: 16px;
    padding: 18px;
    border: 1px dashed var(--arsfaq-border, #e8e3f1);
    border-radius: var(--arsfaq-radius, 12px);
    color: var(--arsfaq-answer, #55515f);
    text-align: center;
    background: var(--arsfaq-item-bg, #fff);
}

.ars-faq__item[hidden] { display: none !important; }

/* Design: soft cards */
.ars-faq--soft-card .ars-faq__item {
    border-color: transparent;
    box-shadow: 0 12px 34px rgba(42, 23, 82, .09);
}
.ars-faq--soft-card .ars-faq__item:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(42, 23, 82, .13); }

/* Design: accent side */
.ars-faq--accent-side .ars-faq__item { border-right-width: 5px; border-right-color: var(--arsfaq-accent, #ef3f3f); }
.ars-faq--accent-side .ars-faq__trigger { padding-right: calc(var(--arsfaq-question-padding, 20px) - 2px); }

/* Design: separated */
.ars-faq--separated .ars-faq__grid { gap: calc(var(--arsfaq-gap, 14px) + 7px); }
.ars-faq--separated .ars-faq__item { border: 0; box-shadow: 0 9px 26px rgba(43, 27, 76, .08); }
.ars-faq--separated .ars-faq__item.is-open { box-shadow: 0 13px 30px rgba(43, 27, 76, .12); }

/* Design: minimal */
.ars-faq--minimal .ars-faq__grid { gap: 0; }
.ars-faq--minimal .ars-faq__item {
    border-width: 0 0 var(--arsfaq-border-width, 1px);
    border-radius: 0;
    background: transparent;
}
.ars-faq--minimal .ars-faq__item.is-open { background: transparent; }
.ars-faq--minimal .ars-faq__trigger { padding-inline: 0; }
.ars-faq--minimal .ars-faq__answer { padding-inline: 0; }
.ars-faq--minimal .ars-faq__icon { border-radius: 8px; }

.ars-faq-empty-admin {
    padding: 14px;
    border: 1px dashed #cbbde9;
    border-radius: 8px;
    color: #5a477d;
    background: #faf8ff;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 900px) {
    .ars-faq__grid { grid-template-columns: repeat(var(--arsfaq-columns-tablet, 1), minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .ars-faq { padding-block: var(--arsfaq-section-padding, 48px); }
    .ars-faq__inner { width: min(100% - 24px, var(--arsfaq-max-width, 1000px)); }
    .ars-faq__title { font-size: var(--arsfaq-title-size-mobile, 25px); }
    .ars-faq__intro { font-size: var(--arsfaq-answer-size-mobile, 15px); }
    .ars-faq__tools { align-items: stretch; flex-direction: column; }
    .ars-faq__search-wrap { width: 100%; }
    .ars-faq__controls { width: 100%; }
    .ars-faq__control { flex: 1 1 auto; }
    .ars-faq__grid { grid-template-columns: repeat(var(--arsfaq-columns-mobile, 1), minmax(0, 1fr)); }
    .ars-faq__trigger {
        gap: 10px;
        padding: max(14px, calc(var(--arsfaq-question-padding, 20px) * .8));
        font-size: var(--arsfaq-question-size-mobile, 16px);
    }
    .ars-faq__answer {
        padding: 0 max(14px, calc(var(--arsfaq-answer-padding, 20px) * .8)) max(14px, calc(var(--arsfaq-answer-padding, 20px) * .8));
        font-size: var(--arsfaq-answer-size-mobile, 15px);
    }
    .ars-faq__icon { width: 31px; height: 31px; flex-basis: 31px; }
    .ars-faq__number { width: 29px; height: 29px; flex-basis: 29px; }
}

@media (prefers-reduced-motion: reduce) {
    .ars-faq *,
    .ars-faq *::before,
    .ars-faq *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; }
}
