.faq-page {
  --faq-navy: #061831;
  --faq-blue: #0b50d8;
  --faq-ice: #eef5ff;
  overflow-x: clip;
  background: #fff;
}

.faq-page .site-header { height: 76px; color: #fff; background: var(--faq-navy); border-bottom-color: rgba(255,255,255,.14); }
.faq-page .brand small { color: #b8cae4; }
.faq-page .site-nav a:hover,
.faq-page .site-nav a[aria-current="page"] { color: #8fb8ff; }
.faq-page .site-nav a[aria-current="page"] { box-shadow: inset 0 -2px #4f8cff; }
.faq-kicker { margin: 0 0 20px; color: var(--faq-blue); font-size: 10px; font-weight: 700; letter-spacing: .2em; }

.faq-hero {
  min-height: 510px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(230px, 28vw, 390px);
  color: #fff;
  background: linear-gradient(118deg, #061831 0%, #082a68 70%, #0b50d8 140%);
}

.faq-hero-copy { align-self: center; padding: 76px var(--gutter) 88px max(var(--gutter), calc((100vw - 1280px) / 2 + var(--gutter))); }
.faq-breadcrumb { display: flex; gap: 10px; margin-bottom: 62px; color: #a9bdd9; font-size: 10px; }
.faq-breadcrumb a:hover { color: #fff; }
.faq-hero .faq-kicker { color: #83aeff; }
.faq-hero h1 { margin: 0; font: 600 clamp(44px, 5.4vw, 72px) / 1.38 var(--serif); letter-spacing: .055em; text-wrap: balance; }
.faq-hero-copy > p:last-child { margin: 32px 0 0; color: #cfdbed; font-size: 14px; line-height: 2; letter-spacing: .04em; }
.faq-hero-mark { position: relative; display: grid; place-content: center; justify-items: center; border-left: 1px solid rgba(255,255,255,.14); overflow: hidden; }
.faq-hero-mark::before { position: absolute; inset: 14%; content: ""; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 50px rgba(255,255,255,.025), 0 0 0 100px rgba(255,255,255,.02); }
.faq-hero-mark span { z-index: 1; font: 500 clamp(110px, 15vw, 200px) / .9 var(--serif); color: #a8c8ff; }
.faq-hero-mark i { z-index: 1; width: 1px; height: 38px; background: rgba(255,255,255,.45); }
.faq-hero-mark small { z-index: 1; margin-top: 14px; text-align: center; font-size: 8px; line-height: 1.8; letter-spacing: .18em; }

.faq-groups { max-width: 1280px; margin: auto; padding: 110px var(--gutter) 125px; }
.faq-group { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1.42fr); gap: clamp(55px, 8vw, 120px); padding: 0 0 95px; }
.faq-group + .faq-group { padding-top: 95px; border-top: 1px solid var(--line); }
.faq-group:last-child { padding-bottom: 0; }
.faq-group-heading h2 { margin: 0; font: 600 clamp(27px, 2.7vw, 38px) / 1.6 var(--serif); letter-spacing: .035em; text-wrap: balance; }
.faq-items { border-top: 1px solid var(--navy); }
.faq-items details { border-bottom: 1px solid var(--line); }
.faq-items summary { min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 24px; padding: 20px 4px; color: #132947; font: 600 15px/1.8 var(--serif); text-wrap: pretty; }
.faq-items summary::after { width: 26px; height: 26px; display: grid; place-items: center; content: "＋"; color: var(--faq-blue); border: 1px solid #9ab9e5; border-radius: 50%; font: 500 15px/1 var(--sans); }
.faq-items details[open] summary::after { content: "−"; color: #fff; background: var(--faq-blue); border-color: var(--faq-blue); }
.faq-items details > p { margin: 0; padding: 2px 58px 28px 4px; color: #52647c; font-size: 13px; line-height: 2.05; text-wrap: pretty; }

.faq-contact { padding: 95px var(--gutter); text-align: center; color: #fff; background: var(--faq-navy); }
.faq-contact .faq-kicker { color: #83aeff; }
.faq-contact h2 { margin: 0; font: 600 clamp(28px, 3.3vw, 44px) / 1.6 var(--serif); letter-spacing: .035em; text-wrap: balance; }
.faq-contact > p:not(.faq-kicker) { margin: 20px 0 30px; color: #bdcce2; font-size: 13px; }
.faq-contact a { min-width: 250px; min-height: 52px; display: inline-flex; align-items: center; justify-content: space-between; padding: 0 20px; color: #fff; background: var(--faq-blue); font-size: 12px; font-weight: 700; }

@media (max-width: 900px) {
  .faq-page .site-header { height: 64px; }
  .faq-page .menu-toggle span { background: #fff; }
  .faq-page .site-nav { color: var(--ink); }
  .faq-page .site-nav a[aria-current="page"] { color: var(--faq-blue); box-shadow: none; }
  .faq-hero { min-height: 500px; grid-template-columns: minmax(0, 1fr) 140px; }
  .faq-hero-copy { padding-top: 60px; padding-bottom: 70px; }
  .faq-breadcrumb { margin-bottom: 55px; }
  .faq-group { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 560px) {
  .faq-hero { min-height: 520px; grid-template-columns: minmax(0, 1fr) 64px; }
  .faq-hero-copy { padding-right: 18px; }
  .faq-hero h1 { font-size: 34px; }
  .faq-hero-copy > p:last-child { font-size: 12px; }
  .faq-hero-mark span { font-size: 56px; }
  .faq-hero-mark i { height: 28px; }
  .faq-hero-mark small { display: none; }
  .faq-groups { padding: 78px 24px 90px; }
  .faq-group { gap: 31px; padding-bottom: 70px; }
  .faq-group + .faq-group { padding-top: 70px; }
  .faq-items summary { min-height: 76px; grid-template-columns: minmax(0, 1fr) 26px; gap: 14px; font-size: 14px; }
  .faq-items details > p { padding-right: 4px; font-size: 12px; }
  .faq-contact { padding: 75px 24px 90px; }
  .faq-contact > p:not(.faq-kicker) { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .faq-page * { scroll-behavior: auto; }
}
