/* Hand-authored shared CTA component. No script, icon font, or animation dependency. */
.faq-cta {
    align-items: center;
}
@media (max-width: 599px) {
    .faq-cta > .df-action,
    .blog-archive__cta > .df-action,
    .blog-single__cta > .df-action {
        width: 100%;
    }
}
.df-action {
    --action-ink: var(--df-blue, #303090);
    --action-paper: var(--df-paper, #fbfaf6);
    --action-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: stretch;
    justify-content: space-between;
    flex: 0 0 auto;
    min-inline-size: 210px;
    min-block-size: 60px;
    max-inline-size: 100%;
    box-sizing: border-box;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--action-ink);
    border-radius: 6px;
    background: var(--action-paper);
    color: var(--action-ink);
    font-family: 'Source Sans 3', sans-serif;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: 0.005em;
    text-align: start;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform 160ms var(--action-ease);
}

.df-action::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: var(--df-lavender-100, #ecebf5);
    transform: translateX(-101%);
    transition: transform 280ms var(--action-ease);
}

.df-action:hover,
.df-action:focus {
    background: var(--action-paper);
    color: var(--action-ink);
    border-color: var(--action-ink);
    text-decoration: none;
    box-shadow: none;
}

.df-action--catalog,
.df-action--catalog:hover,
.df-action--catalog:focus {
    background: var(--action-ink);
    color: var(--action-paper);
}

.df-action--catalog::before {
    background: var(--df-blue-dark, #25256f);
}

.df-action__label {
    display: flex;
    align-items: center;
    padding: 16px 22px;
    overflow-wrap: anywhere;
}

.df-action__end {
    display: grid;
    flex: 0 0 58px;
    place-items: center;
    align-self: stretch;
    position: relative;
}

.df-action--catalog .df-action__end {
    border-inline-start: 1px solid rgb(251 250 246 / 24%);
    background: rgb(251 250 246 / 5%);
}

.df-action__folio {
    position: relative;
    display: block;
    inline-size: 24px;
    block-size: 28px;
}

.df-action__sheet {
    position: absolute;
    inset: 3px 4px;
    border: 1.25px solid currentColor;
    border-radius: 1px;
    transform-origin: 50% 90%;
    transition:
        transform 280ms var(--action-ease),
        opacity 220ms var(--action-ease);
}

.df-action__sheet:first-child {
    transform: translate(-3px, 1px) rotate(-9deg);
    opacity: 0.45;
}
.df-action__sheet:nth-child(2) {
    transform: translate(3px, -1px) rotate(9deg);
    opacity: 0.65;
}
.df-action__sheet:last-child {
    background: var(--action-ink);
}
.df-action__sheet:last-child::after {
    content: '';
    position: absolute;
    inset-inline: 3px;
    top: 7px;
    block-size: 1px;
    background: currentColor;
    box-shadow: 0 4px 0 currentColor;
}

.df-action__disc {
    display: block;
    position: relative;
    inline-size: 36px;
    block-size: 36px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--action-ink);
    color: var(--action-paper);
}

.df-action__arrow {
    position: absolute;
    inset: 8px;
    inline-size: 20px;
    block-size: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition:
        transform 280ms var(--action-ease),
        opacity 220ms var(--action-ease);
}

.df-action__arrow:last-child {
    transform: translate(-24px, 24px);
    opacity: 0;
}

/* Opt-in homepage appearances; default contact/catalog geometry stays shared. */
.df-action--filled,
.df-action--filled:hover,
.df-action--filled:focus {
    background: var(--action-ink);
    color: var(--action-paper);
}
.df-action--filled::before {
    background: var(--df-blue-dark, #25256f);
}
.df-action--filled .df-action__end {
    border-inline-start: 1px solid rgb(251 250 246 / 24%);
    background: rgb(251 250 246 / 5%);
}
.df-action--filled .df-action__disc {
    background: var(--action-paper);
    color: var(--action-ink);
}
.df-action--quiet,
.df-action--quiet:hover,
.df-action--quiet:focus {
    min-inline-size: 0;
    min-block-size: 48px;
    border-color: transparent;
    background: transparent;
}
.df-action--quiet .df-action__label {
    padding: 12px 12px 12px 0;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.28em;
}
.df-action--quiet .df-action__end {
    flex-basis: 48px;
}
.df-action--quiet .df-action__disc {
    background: transparent;
    color: var(--action-ink);
    box-shadow: inset 0 0 0 1px currentColor;
}

.front-page .df-action:focus-visible {
    border-radius: 6px;
}

.df-action:focus-visible {
    outline: 3px solid var(--df-focus, #2f5fd0);
    outline-offset: 4px;
    border-radius: 6px;
}
.df-action:focus-visible::before {
    transform: translateX(0);
}
.df-action:focus-visible .df-action__sheet:first-child {
    transform: translate(-6px, 0) rotate(-18deg);
    opacity: 0.8;
}
.df-action:focus-visible .df-action__sheet:nth-child(2) {
    transform: translate(6px, -2px) rotate(18deg);
    opacity: 0.8;
}
.df-action:focus-visible .df-action__arrow:first-child {
    transform: translate(24px, -24px);
    opacity: 0;
}
.df-action:focus-visible .df-action__arrow:last-child {
    transform: translate(0);
    opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
    .df-action:hover::before {
        transform: translateX(0);
    }
    .df-action:hover .df-action__sheet:first-child {
        transform: translate(-6px, 0) rotate(-18deg);
        opacity: 0.8;
    }
    .df-action:hover .df-action__sheet:nth-child(2) {
        transform: translate(6px, -2px) rotate(18deg);
        opacity: 0.8;
    }
    .df-action:hover .df-action__arrow:first-child {
        transform: translate(24px, -24px);
        opacity: 0;
    }
    .df-action:hover .df-action__arrow:last-child {
        transform: translate(0);
        opacity: 1;
    }
}

.df-action:active {
    transform: translateY(1px);
}
.df-action:active::before {
    transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
    .df-action,
    .df-action::before,
    .df-action * {
        transition: none;
    }
    .df-action:active {
        transform: none;
    }
    /* Keep decorative geometry static even when hover/focus selectors match. */
    .df-action .df-action__sheet:first-child {
        transform: translate(-3px, 1px) rotate(-9deg) !important;
    }
    .df-action .df-action__sheet:nth-child(2) {
        transform: translate(3px, -1px) rotate(9deg) !important;
    }
    .df-action .df-action__arrow:first-child {
        transform: none !important;
        opacity: 1 !important;
    }
    .df-action .df-action__arrow:last-child {
        transform: none !important;
        opacity: 0 !important;
    }
}

@media (forced-colors: active) {
    .df-action {
        border-color: ButtonText;
        color: ButtonText;
        background: ButtonFace;
    }
    .df-action::before {
        display: none;
    }
    .df-action__disc {
        border: 1px solid ButtonText;
    }
    .df-action--catalog .df-action__end {
        border-color: ButtonText;
    }
    .df-action--filled,
    .df-action--filled:hover,
    .df-action--filled:focus,
    .df-action--quiet,
    .df-action--quiet:hover,
    .df-action--quiet:focus {
        border-color: ButtonText;
        color: ButtonText;
        background: ButtonFace;
    }
    .df-action--filled .df-action__end {
        border-color: ButtonText;
    }
    .df-action--filled .df-action__disc,
    .df-action--quiet .df-action__disc {
        color: ButtonText;
        background: ButtonFace;
    }
}
