/* Canonical FAQ component: one V3 visual system for every template. */
.faq-component { background: #fff; padding: 48px 0; }
.faq-component__container { width: 100%; max-width: 1300px; padding: 0 18px; margin: 0 auto; }
.faq-component__heading { margin-bottom: 32px; }
.faq-component__eyebrow { display: inline-flex; align-items: center; justify-content: center; min-width: 53px; height: 32px; margin-bottom: 24px; padding: 0 12px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 999px; color: rgba(0, 0, 0, .65); font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: .1px; }
/* Two FAQ-specific classes deliberately outrank legacy page-wide h2 rules. */
.faq-component h2.faq-component__title { margin: 0 0 16px; color: #282828; font-size: 28px; font-weight: 600; line-height: 32px; letter-spacing: -.5px; font-feature-settings: 'liga' off; }
.faq-component__description { margin: 0; color: #524f4f; font-size: var(--gsf-static-md-fs, 16px); font-weight: 400; line-height: var(--gsf-static-md-lh, 24px); letter-spacing: var(--gsf-static-md-ls, .12px); }
.faq-component__description a { color: #006746; font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: rgba(0, 103, 70, .3); text-underline-offset: 3px; transition: text-decoration-color .2s ease; }
.faq-component__description a:hover, .faq-component__description a:focus-visible { text-decoration-color: #006746; }
.faq-component__description a:active { color: #006746; }
.faq-component__list { max-width: 720px; border-top: 1px solid #dedede; }
.faq-component__item { padding: 28px 0; border-bottom: 1px solid #dedede; }
.faq-component__item:last-child { border-bottom: 0; }
.faq-component__question { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 24px; padding: 0; border: 0; background: transparent; color: #262626; font: inherit; text-align: left; cursor: pointer; }
.faq-component__question span:first-child { flex: 1 1 auto; font-size: 18px; font-weight: 500; line-height: 28px; letter-spacing: .12px; }
.faq-component__icon { position: relative; flex: 0 0 24px; width: 24px; height: 24px; }
.faq-component__icon::before, .faq-component__icon::after { position: absolute; top: 50%; left: 50%; width: 15px; height: 1.75px; border-radius: 999px; background: #262626; content: ""; transform: translate(-50%, -50%); transition: transform .2s ease; }
.faq-component__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-component__question[aria-expanded="true"] .faq-component__icon::after { transform: translate(-50%, -50%); }
.faq-component__answer { max-height: 0; overflow: hidden; padding: 0 44px 0 0; color: rgba(0, 0, 0, .75); transition: max-height .35s ease; }
.faq-component__answer-content { padding-top: 8px; font-size: 16px; font-weight: 400; line-height: 23px; letter-spacing: .1px; }
.faq-component__answer-content p { margin: 0; }

/* Canonical desktop spacing is 80px (not the old V3 96px). */
@media (min-width: 992px) {
    .faq-component { padding: 80px 20px; }
    .faq-component__container { display: flex; align-items: flex-start; justify-content: space-between; gap: 64px; padding: 0 50px; }
    .faq-component__heading { flex: 0 0 350px; width: 350px; margin-bottom: 0; }
    .faq-component__list { flex: 0 1 720px; }
    .faq-component h2.faq-component__title { margin-bottom: 24px; font-size: 48px; font-weight: 600; line-height: 52px; letter-spacing: -.48px; }
}

.faq-component--custom-spacing { padding-top: var(--faq-desktop-padding-top, 80px); padding-bottom: var(--faq-desktop-padding-bottom, 80px); }
@media (max-width: 991px) { .faq-component__list { max-width: 100%; } }
@media (max-width: 767px) {
    .faq-component { padding: 48px 0; }
    .faq-component--custom-spacing { padding-top: var(--faq-mobile-padding-top, 48px); padding-bottom: var(--faq-mobile-padding-bottom, 48px); }
    .faq-component__item { padding: 20px 0; }
    .faq-component__question span:first-child { font-size: 16px; line-height: 24px; }
    .faq-component__answer-content { font-size: 14px; line-height: 20px; }
    .faq-component__eyebrow { margin-bottom: 16px; }
    .faq-component h2.faq-component__title { max-width: 260px; }
    .faq-component h2.faq-component__title br { display: block; }
}
