/* FAQ category tabs below contact. */
.page-home .panel-faq { background: #fff; }
.page-home .faq { display: grid; grid-template-columns: 270px minmax(0, 1fr); column-gap: 28px; width: 100%; max-width: 1240px; margin: 0 auto; }
.page-home .faq__header { grid-column: 1 / -1; margin-bottom: 34px; text-align: center; }
.page-home .faq__eyebrow { margin: 0 0 7px; color: #1e5eff; font-size: 15px; line-height: 1.2; font-weight: 900; letter-spacing: .04em; }
.page-home .faq__title { margin: 0 0 10px; color: #20242a; font-size: 48px; line-height: 1.15; font-weight: 900; }
.page-home .faq__lead { margin: 0; color: #4c5563; font-size: 18px; line-height: 1.5; font-weight: 500; }
.page-home .faq__tabs { display: grid; grid-template-rows: repeat(5, minmax(0, 1fr)); gap: 11px; width: 100%; min-height: 370px; }
.page-home .faq__tab { position: relative; min-height: 64px; padding: 14px 48px 14px 22px; border: 1px solid #dce3ec; border-radius: 16px; background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%); color: #343a43; font: inherit; font-size: 16px; line-height: 1.3; font-weight: 900; text-align: left; cursor: pointer; word-break: keep-all; transition: border-color .2s ease, background-color .2s ease, color .2s ease, transform .2s ease; }
.page-home .faq__tab::after { position: absolute; top: 50%; right: 20px; color: #a7b2c2; font-size: 19px; line-height: 1; content: "\2192"; transform: translateY(-50%); transition: color .2s ease, transform .2s ease; }
.page-home .faq__tab:hover { border-color: #aac5ff; color: #1e5eff; transform: translateX(3px); }
.page-home .faq__tab:hover::after { color: #1e5eff; }
.page-home .faq__tab.is-active { border-color: #1e5eff; background: #1e5eff; color: #fff; }
.page-home .faq__tab.is-active::after { color: #fff; transform: translate(3px, -50%); }
.page-home .faq__tab:focus-visible { outline: 3px solid rgba(30, 94, 255, .22); outline-offset: 2px; }
.page-home .faq__categories { width: 100%; min-width: 0; }
.page-home .faq-category { position: relative; display: grid; min-height: 370px; padding: 28px 38px; overflow: hidden; border: 1px solid rgba(214, 222, 232, .9); border-radius: 22px; background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%); box-shadow: none; animation: faq-panel-in .24s ease both; }
.page-home .faq-category[hidden] { display: none !important; }
.page-home .faq-category::before { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(135deg, rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 42%); pointer-events: none; content: ""; }
.page-home .faq-category > * { position: relative; z-index: 1; }
.page-home .faq-category__title { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.page-home .faq-category__items { display: grid; grid-auto-rows: minmax(82px, 1fr); min-width: 0; height: 100%; }
.page-home .faq-item { display: grid; align-content: center; }
.page-home .faq-item + .faq-item { border-top: 1px solid #e8eef7; }
.page-home .faq-item__question { margin: 0; padding: 16px 8px 6px; color: #2f343a; font-size: 17px; line-height: 1.45; font-weight: 800; word-break: keep-all; }
.page-home .faq-item p { margin: 0; padding: 0 8px 16px; color: #596474; font-size: 15px; line-height: 1.6; font-weight: 500; word-break: keep-all; }
@keyframes faq-panel-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (min-width: 861px) {
    html body.page-home #section-faq { min-height: 100svh !important; }
    html body.page-home #section-faq > .home-panel__inner { display: flex !important; align-items: center !important; width: min(calc(100% - 80px), 1240px) !important; min-height: 100svh !important; box-sizing: border-box !important; padding: 90px 0 30px !important; }
    html body.page-home #section-faq .faq { transform: translateY(-100px) !important; }
}

@media (max-width: 860px) {
    html body.page-home #section-faq > .home-panel__inner { width: min(calc(100% - 32px), 620px) !important; min-height: calc(100svh - var(--home-header-height, 60px)) !important; padding: 76px 0 28px !important; }
    .page-home .faq { display: block; }
    .page-home .faq__header { margin-bottom: 18px; }
    .page-home .faq__eyebrow { margin-bottom: 5px; font-size: 12px; }
    .page-home .faq__title { margin-bottom: 8px; font-size: 32px; }
    .page-home .faq__lead { font-size: 14px; }
    .page-home .faq__tabs { display: flex; gap: 8px; width: 100%; min-height: 0; margin-bottom: 14px; padding: 2px 1px 6px; overflow-x: auto; scrollbar-width: none; }
    .page-home .faq__tabs::-webkit-scrollbar { display: none; }
    .page-home .faq__tab { flex: 0 0 auto; min-width: 104px; min-height: 42px; padding: 8px 12px; border-radius: 12px; font-size: 13px; text-align: center; }
    .page-home .faq__tab::after { display: none; }
    .page-home .faq__tab:hover { transform: none; }
    .page-home .faq__categories { width: 100%; }
    .page-home .faq-category { display: block; min-height: 0; padding: 16px 16px 10px; border-radius: 18px; }
    .page-home .faq-category__items { display: block; height: auto; }
    .page-home .faq-item { display: block; }
    .page-home .faq-item__question { padding: 11px 2px 4px; font-size: 14px; }
    .page-home .faq-item p { padding: 0 2px 11px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .faq-category { animation: none; }
    .page-home .faq__tab { transition: none; }
}


/* Desktop horizontal FAQ categories and compact answer panel. */
@media (min-width: 861px) {
    .page-home .faq { display: block; width: 100%; max-width: 1140px; margin: 0 auto; }
    .page-home .faq__header { margin-bottom: 38px; }
    .page-home .faq__tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: none; gap: 10px; width: min(100%, 960px); min-height: 0; margin: 0 auto 48px; }
    .page-home .faq__tab { min-height: 48px; padding: 10px 14px; border-radius: 14px; font-size: 15px; text-align: center; }
    .page-home .faq__tab::after { display: none; }
    .page-home .faq__tab:hover { transform: translateY(-1px); }
    .page-home .faq__categories { width: min(100%, 960px); margin: 0 auto; }
    .page-home .faq-category { display: block; min-height: 0; padding: 10px 30px; border-radius: 20px; }
    .page-home .faq-category__items { display: block; height: auto; }
    .page-home .faq-item { display: block; padding: 7px 0; }
    .page-home .faq-item__question { padding: 10px 8px 4px; }
    .page-home .faq-item p { padding: 0 8px 10px; line-height: 1.55; }
}


/* FAQ hierarchy and question-answer distinction. */
.page-home .panel-faq .faq__eyebrow { margin-bottom: 12px; color: #1e5eff !important; -webkit-text-fill-color: #1e5eff !important; text-shadow: none !important; }
.page-home .faq__title { margin-bottom: 18px; }
.page-home .faq__lead { color: #505b69; line-height: 1.65; }
.page-home .faq-item__question,
.page-home .faq-item p { position: relative; padding-left: 46px; text-align: left; }
.page-home .faq-item__question { padding-top: 13px; padding-bottom: 8px; color: #26303d; }
.page-home .faq-item p { padding-bottom: 15px; color: #667180; }
.page-home .faq-item__question::before,
.page-home .faq-item p::before { display: grid; position: absolute; left: 8px; width: 26px; height: 26px; place-items: center; border-radius: 8px; font-size: 13px; line-height: 1; font-weight: 900; }
.page-home .faq-item__question::before { top: 11px; box-sizing: border-box; padding-bottom: 1px; background: #1e5eff; color: #fff; content: "Q"; }
.page-home .faq-item p::before { top: 0; border: 1px solid #cfe0ff; background: #edf4ff; color: #1e5eff; content: "A"; }

@media (max-width: 860px) {
    .page-home .faq__header { margin-bottom: 24px; }
    .page-home .faq__eyebrow { margin-bottom: 8px; }
    .page-home .faq__title { margin-bottom: 12px; }
    .page-home .faq__tabs { margin-bottom: 22px; }
    .page-home .faq-item__question,
    .page-home .faq-item p { padding-left: 36px; }
    .page-home .faq-item__question::before,
    .page-home .faq-item p::before { left: 2px; width: 24px; height: 24px; border-radius: 7px; font-size: 12px; }
    .page-home .faq-item__question::before { top: 9px; }
}


/* FAQ typing animation. */
.page-home .faq-item__question.is-typing-pending,
.page-home .faq-item p.is-typing-pending { visibility: hidden; }
.page-home .faq-item__question.is-typing::after,
.page-home .faq-item p.is-typing::after { display: inline-block; width: 2px; height: 1em; margin-left: 4px; background: #1e5eff; vertical-align: -.12em; content: ""; animation: faq-typing-cursor .65s steps(1, end) infinite; }
@keyframes faq-typing-cursor { 50% { opacity: 0; } }

.page-home .faq-category.is-faq-typing .faq-item {
    animation: faq-item-typing-in 280ms cubic-bezier(.22, 1, .36, 1) both;
}
.page-home .faq-category.is-faq-typing .faq-item:nth-child(2) { animation-delay: 80ms; }
.page-home .faq-category.is-faq-typing .faq-item:nth-child(3) { animation-delay: 160ms; }
@keyframes faq-item-typing-in {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .faq-category.is-faq-typing .faq-item,
    .page-home .faq-item__question.is-typing::after,
    .page-home .faq-item p.is-typing::after { display: none; animation: none; }
}
