.nova-accordion {
    --nova-acc-duration: 320ms;
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.nova-accordion,
.nova-accordion * {
    box-sizing: border-box;
}

.nova-accordion__item {
    width: 100%;
    background-color: #f2f2f2;
    border-radius: 44px;
    overflow: hidden;
    transition:
        background-color var(--nova-acc-duration) ease,
        border-color var(--nova-acc-duration) ease,
        box-shadow var(--nova-acc-duration) ease;
}

.nova-accordion__header {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    border: 0;
    margin: 0;
    background: transparent !important;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 28px 22px 28px 40px;
    cursor: pointer;
    text-align: left;
    font: inherit;
}

.nova-accordion__header:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -8px;
}


.nova-accordion .nova-accordion__header:hover,
.nova-accordion .nova-accordion__header:focus,
.nova-accordion .nova-accordion__header:active,
.nova-accordion .nova-accordion__header[aria-expanded="true"] {
    background: transparent !important;
    color: inherit;
    box-shadow: none;
}

.nova-accordion .nova-accordion__header::-moz-focus-inner {
    border: 0;
}

.nova-accordion__title {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    color: #202124;
    font-size: clamp(20px, 2.25vw, 28px);
    line-height: 1.2;
    font-weight: 400;
}

.nova-accordion__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: #465a58;
    transition:
        transform var(--nova-acc-duration) cubic-bezier(.2, .8, .2, 1),
        background-color var(--nova-acc-duration) ease;
}

.nova-accordion__icon-lines {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(0deg);
    transition: transform var(--nova-acc-duration) cubic-bezier(.2, .8, .2, 1);
}

.nova-accordion__icon-line {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    width: 24px;
    height: 4px;
    border-radius: 999px;
    background-color: #fff;
    transform-origin: center;
    transition:
        background-color var(--nova-acc-duration) ease,
        transform var(--nova-acc-duration) cubic-bezier(.2, .8, .2, 1);
}

.nova-accordion__icon-line--horizontal {
    transform: translate(-50%, -50%) rotate(0deg);
}

.nova-accordion__icon-line--vertical {
    transform: translate(-50%, -50%) rotate(90deg);
}

.nova-accordion__item.is-open .nova-accordion__icon-lines {
    transform: rotate(45deg);
}

.nova-accordion__content {
    max-height: 0;
    overflow: hidden;
    color: #111;
    opacity: 0;
    visibility: hidden;
    transition:
        max-height var(--nova-acc-duration) cubic-bezier(.2, .8, .2, 1),
        opacity calc(var(--nova-acc-duration) * .8) ease,
        visibility 0s linear var(--nova-acc-duration);
}

.nova-accordion__item.is-open .nova-accordion__content {
    opacity: 1;
    visibility: visible;
    transition:
        max-height var(--nova-acc-duration) cubic-bezier(.2, .8, .2, 1),
        opacity calc(var(--nova-acc-duration) * .8) ease,
        visibility 0s linear 0s;
}

.nova-accordion__content-inner {
    padding: 0 40px 34px 40px;
}

.nova-accordion__content-inner > :first-child {
    margin-top: 0;
}

.nova-accordion__content-inner > :last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .nova-accordion__header {
        padding: 22px 16px 22px 24px;
    }

    .nova-accordion__title {
        font-size: 20px;
    }

    .nova-accordion__icon {
        flex-basis: 48px;
        width: 48px;
        height: 48px;
    }

    .nova-accordion__icon-line {
        width: 19px;
        height: 3px;
    }

    .nova-accordion__content-inner {
        padding: 0 24px 26px 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nova-accordion__item,
    .nova-accordion__content,
    .nova-accordion__icon,
    .nova-accordion__icon-lines,
    .nova-accordion__icon-line {
        transition-duration: 1ms !important;
    }
}

/* Elementor editor helper: collapsed WYSIWYG content is difficult to select/edit in the preview iframe.
   When enabled in the widget settings, all answers stay visible only inside Elementor's backend editor. */
body.elementor-editor-active .nova-accordion.is-editor-open-all .nova-accordion__item,
html.elementor-html body .nova-accordion.is-editor-open-all .nova-accordion__item {
    overflow: hidden;
}

body.elementor-editor-active .nova-accordion.is-editor-open-all .nova-accordion__content,
html.elementor-html body .nova-accordion.is-editor-open-all .nova-accordion__content {
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    transition: none !important;
}

body.elementor-editor-active .nova-accordion.is-editor-open-all .nova-accordion__icon-lines,
html.elementor-html body .nova-accordion.is-editor-open-all .nova-accordion__icon-lines {
    transform: rotate(45deg);
}

body.elementor-editor-active .nova-accordion .nova-accordion__header,
html.elementor-html body .nova-accordion .nova-accordion__header {
    pointer-events: auto;
}

/* v0.1.3: robust backend/editor preview mode.
   The class is now printed directly by PHP in Elementor edit mode, so we do not rely on iframe body classes. */
.nova-accordion.is-editor-open-all .nova-accordion__item {
    overflow: hidden;
}

.nova-accordion.is-editor-open-all .nova-accordion__content {
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    transition: none !important;
}

.nova-accordion.is-editor-open-all .nova-accordion__icon-lines {
    transform: rotate(45deg);
}

/* v0.1.3: keep long responsive headings readable and away from the icon. */
.nova-accordion__header,
.nova-accordion__title {
    white-space: normal !important;
}

.nova-accordion__title {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

@media (max-width: 767px) {
    .nova-accordion__header {
        align-items: center;
    }

    .nova-accordion__title {
        line-height: 1.18;
    }
}
