/* FAQ page */
.faq-page {
  --faq-ink: #1d1d1f;
  --faq-muted: #6e6e73;
  --faq-accent: #922c43;
  --faq-accent-dark: #741f34;
  --faq-soft: #f5f5f7;
  --faq-line: #e3e3e6;
  --faq-black: #0f0f10;
  --faq-shell: 1140px;
  overflow: clip;
  background: #fff;
  color: var(--faq-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.faq-page *, .faq-page *::before, .faq-page *::after { box-sizing: border-box; }
.faq-shell { width: min(var(--faq-shell), calc(100% - 48px)); margin: 0 auto; }
.faq-page p, .faq-page li, .faq-page a, .faq-page span, .faq-page input, .faq-page button, .faq-page summary { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.faq-page h1, .faq-page h2 { margin: 0; color: var(--faq-ink); font-family: "Source Serif 4", "Times New Roman", serif; font-weight: 700; letter-spacing: -.035em; text-wrap: balance; }
.faq-kicker { margin: 0 0 14px; color: var(--faq-accent); font-size: 12px; font-weight: 750; letter-spacing: .09em; line-height: 1.2; text-transform: uppercase; }
.faq-kicker-light { color: #f0d6dc; }
.faq-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; font-size: 15px; font-weight: 650; line-height: 1; text-decoration: none !important; transition: transform .18s ease, background-color .18s ease, border-color .18s ease; }
.faq-button:hover, .faq-button:focus-visible { transform: translateY(-1px); }
.faq-button-primary { background: var(--faq-accent); color: #fff !important; }
.faq-button-primary:hover, .faq-button-primary:focus-visible { background: var(--faq-accent-dark); color: #fff !important; }
.faq-button-light { background: #fff; color: var(--faq-ink) !important; }
.faq-button-light:hover, .faq-button-light:focus-visible { background: #f4f4f5; color: var(--faq-ink) !important; }
.faq-text-link, .faq-final-link { display: inline-flex; align-items: center; gap: 6px; color: var(--faq-accent) !important; font-size: 15px; font-weight: 650; text-decoration: none !important; }
.faq-text-link span, .faq-final-link span { font-size: 22px; line-height: 1; transition: transform .18s ease; }
.faq-text-link:hover span, .faq-text-link:focus-visible span, .faq-final-link:hover span, .faq-final-link:focus-visible span { transform: translateX(3px); }
.faq-hero { padding: 112px 0 100px; background: #fff; text-align: center; }
.faq-hero-inner { max-width: 1050px; }
.faq-hero h1 { max-width: 980px; margin: 0 auto; font-size: clamp(52px, 6.2vw, 82px); line-height: .98; }
.faq-hero-copy { max-width: 820px; margin: 27px auto 0; color: var(--faq-muted); font-size: clamp(18px, 2vw, 22px); line-height: 1.52; letter-spacing: -.015em; text-wrap: pretty; }
.faq-hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 22px; margin-top: 30px; }
.faq-band { padding: 34px 0; background: var(--faq-black); color: #fff; }
.faq-band-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.faq-band-grid > div { min-height: 86px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 26px; text-align: center; border-right: 1px solid rgba(255,255,255,.14); }
.faq-band-grid > div:last-child { border-right: 0; }
.faq-band-value { color: #fff !important; font-family: "Source Serif 4", "Times New Roman", serif !important; font-size: clamp(29px, 3vw, 40px); font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.faq-band-label { margin-top: 8px; color: rgba(255,255,255,.62) !important; font-size: 13px; line-height: 1.35; }
.faq-finder { padding: 76px 0 68px; background: var(--faq-soft); }
.faq-finder-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 76px; align-items: end; }
.faq-finder h2 { font-size: clamp(38px, 4.6vw, 56px); line-height: 1.10; }
.faq-filter-wrap { width: 100%; max-width: 680px; justify-self: end; }
.faq-filter-line { display: grid; grid-template-columns: 26px minmax(0, 1fr) 34px; gap: 13px; align-items: center; padding: 0 0 13px; border-bottom: 1px solid #b9b9be; transition: border-color .18s ease; }
.faq-filter-line:focus-within { border-bottom-color: var(--faq-accent); }
.faq-filter-line svg { width: 22px; height: 22px; fill: none; stroke: #77777c; stroke-width: 1.65; stroke-linecap: round; }
.faq-filter-line input { width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; color: var(--faq-ink) !important; font-size: clamp(22px, 2.6vw, 31px) !important; font-weight: 500; line-height: 1.25 !important; letter-spacing: -.03em; }
.faq-filter-line input::placeholder { color: #8b8b90; opacity: 1; }
.faq-filter-line button { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: #e5e5e7; color: #55555a; font-size: 22px; line-height: 1; cursor: pointer; }
.faq-result-count { margin: 12px 0 0; color: #6e6e73; font-size: 13px; line-height: 1.4; }
.faq-library { padding: 92px 0 105px; background: #fff; }
.faq-library-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 78px; align-items: start; }
.faq-topics { position: sticky; top: 108px; align-self: start; }
.faq-topics-label { margin: 0 0 18px; color: #66666c; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.faq-topic-list { display: grid; border-top: 1px solid var(--faq-line); }
.faq-topic-list a { position: relative; display: block; padding: 11px 20px 11px 0; border-bottom: 1px solid var(--faq-line); color: #4d4d52 !important; font-size: 14px; font-weight: 600; line-height: 1.35; text-decoration: none !important; transition: color .18s ease, padding-left .18s ease; }
.faq-topic-list a::after { content: "›"; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); color: var(--faq-accent); font-size: 20px; }
.faq-topic-list a:hover, .faq-topic-list a:focus-visible { padding-left: 4px; color: var(--faq-accent) !important; }
.faq-topics-note { margin: 22px 0 0; color: #6e6e73; font-size: 13px; line-height: 1.5; }
.faq-topics-note a { color: var(--faq-accent) !important; font-weight: 650; text-decoration: none !important; }
.faq-sections { min-width: 0; }
.faq-category { padding: 0 0 82px; scroll-margin-top: 120px; }
.faq-category:last-of-type { padding-bottom: 20px; }
.faq-category-head { max-width: 850px; margin-bottom: 30px; }
.faq-category-head h2 { max-width: 840px; font-size: clamp(37px, 4.2vw, 54px); line-height: 1.10; }
.faq-category-head > p:last-child { max-width: 800px; margin: 16px 0 0; color: var(--faq-muted); font-size: 16px; line-height: 1.62; text-wrap: pretty; }
.faq-accordion { border-top: 1px solid var(--faq-line); }
.faq-item { margin: 0; border-bottom: 1px solid var(--faq-line); background: #fff; }
.faq-item[hidden] { display: none !important; }
.faq-item summary { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 34px; gap: 28px; align-items: center; min-height: 82px; padding: 22px 0; list-style: none; color: var(--faq-ink); font-size: 18px; font-weight: 650; line-height: 1.35; letter-spacing: -.018em; cursor: pointer; transition: color .18s ease; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ""; }
.faq-item summary:hover, .faq-item summary:focus-visible { color: var(--faq-accent); outline: 0; }
.faq-toggle { position: relative; width: 30px; height: 30px; display: block; justify-self: end; }
.faq-toggle::before, .faq-toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.5px; background: var(--faq-accent); transform: translate(-50%,-50%); transition: transform .2s ease; }
.faq-toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
.faq-item[open] .faq-toggle::after { transform: translate(-50%,-50%) rotate(0deg); }
.faq-answer { max-width: 850px; padding: 0 54px 26px 0; }
.faq-answer p { margin: 0; color: var(--faq-muted); font-size: 16px; line-height: 1.7; letter-spacing: -.005em; text-wrap: pretty; }
.faq-answer strong { color: var(--faq-ink); font-weight: 650; }
.faq-answer a { color: var(--faq-accent) !important; font-weight: 650; text-decoration: none !important; }
.faq-answer a:hover, .faq-answer a:focus-visible { text-decoration: underline !important; text-underline-offset: 3px; }
.faq-no-results { padding: 64px 0; border-top: 1px solid var(--faq-line); }
.faq-no-results h2 { max-width: 650px; font-size: clamp(38px, 4.5vw, 56px); line-height: 1.10; }
.faq-no-results > p:not(.faq-kicker) { max-width: 680px; margin: 17px 0 24px; color: var(--faq-muted); font-size: 17px; line-height: 1.6; }
.faq-scope { padding: 92px 0; background: var(--faq-black); color: #fff; }
.faq-scope-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 86px; align-items: start; }
.faq-scope h2 { color: #fff !important; font-size: clamp(40px, 4.8vw, 60px); line-height: 1.10; }
.faq-scope-grid > div:last-child { padding-top: 2px; }
.faq-scope-grid > div:last-child p { margin: 0 0 18px; color: #aaaab0 !important; font-size: 16px; line-height: 1.72; text-wrap: pretty; }
.faq-scope-grid > div:last-child a { display: inline-flex; align-items: center; gap: 5px; margin-top: 12px; color: #fff !important; font-size: 15px; font-weight: 650; text-decoration: none !important; }
.faq-scope-grid > div:last-child a span { font-size: 22px; transition: transform .18s ease; }
.faq-scope-grid > div:last-child a:hover span { transform: translateX(3px); }
.faq-final { padding: 96px 0 100px; background: var(--faq-accent); color: #fff; text-align: center; }
.faq-final-inner { max-width: 900px; }
.faq-final h2 { max-width: 860px; margin: 0 auto; color: #fff !important; font-size: clamp(44px, 5.5vw, 68px); line-height: 1.10; }
.faq-final > .faq-shell > p:not(.faq-kicker), .faq-final-inner > p:not(.faq-kicker) { max-width: 720px; margin: 20px auto 0; color: rgba(255,255,255,.78) !important; font-size: 18px; line-height: 1.6; }
.faq-final .faq-final-link { color: #fff !important; }
.faq-final .faq-hero-actions { margin-top: 28px; }
.faq-category[data-filter-empty="true"] { display: none; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 991px) {
  .faq-finder-grid { grid-template-columns: 1fr; gap: 34px; }
  .faq-filter-wrap { max-width: none; justify-self: stretch; }
  .faq-library-grid { grid-template-columns: 1fr; gap: 54px; }
  .faq-topics { position: static; }
  .faq-topic-list { grid-template-columns: repeat(3, minmax(0,1fr)); border-top: 0; gap: 0 22px; }
  .faq-topic-list a:nth-child(-n+3) { border-top: 1px solid var(--faq-line); }
  .faq-scope-grid { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 767px) {
  .faq-shell { width: min(var(--faq-shell), calc(100% - 36px)); }
  .faq-hero { padding: 78px 0 72px; }
  .faq-hero h1 { font-size: clamp(46px, 13vw, 64px); }
  .faq-band { padding: 24px 0; }
  .faq-band-grid { grid-template-columns: 1fr; }
  .faq-band-grid > div { min-height: 74px; padding: 18px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .faq-band-grid > div:last-child { border-bottom: 0; }
  .faq-finder { padding: 58px 0 54px; }
  .faq-library { padding: 66px 0 76px; }
  .faq-topic-list { grid-template-columns: 1fr 1fr; gap: 0 18px; }
  .faq-topic-list a:nth-child(-n+2) { border-top: 1px solid var(--faq-line); }
  .faq-topic-list a:nth-child(3) { border-top: 0; }
  .faq-category { padding-bottom: 62px; }
  .faq-category-head { margin-bottom: 22px; }
  .faq-item summary { min-height: 74px; grid-template-columns: minmax(0,1fr) 28px; gap: 20px; padding: 19px 0; font-size: 16px; }
  .faq-toggle { width: 28px; height: 28px; }
  .faq-answer { padding: 0 38px 22px 0; }
  .faq-answer p { font-size: 15px; }
  .faq-scope { padding: 70px 0; }
  .faq-final { padding: 72px 0 78px; }
}
@media (max-width: 520px) {
  .faq-topic-list { grid-template-columns: 1fr; }
  .faq-topic-list a { border-top: 0 !important; }
  .faq-topic-list a:first-child { border-top: 1px solid var(--faq-line) !important; }
  .faq-filter-line { grid-template-columns: 22px minmax(0,1fr) 32px; gap: 10px; }
  .faq-filter-line input { font-size: 22px !important; }
}
