/* FAQ module overrides (scoped) - loaded after theme tokens */
.vb-faq-accordion { list-style: none; margin: 0 auto 0; padding: 0; max-width: 720px; }
.vb-faq-accordion-item { border-bottom: 1px solid var(--grey-light); }
.vb-faq-accordion-trigger { width: 100%; background: transparent; border: 0; text-align: left; padding: 16px 0; display: flex; justify-content: space-between; align-items: center; color: var(--grey-dark); font-family: var(--font-sans-1); font-weight: var(--w-regular); font-size: var(--fs-body2); line-height: var(--lh-body1); }
.vb-faq-accordion-trigger:focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring-color); outline-offset: var(--focus-ring-offset); border-radius: 6px; }
.vb-faq-accordion-title { flex: 1 1 auto; }
.vb-faq-accordion-icon { position: relative; width: 16px; height: 16px; flex: 0 0 16px; }
.vb-faq-accordion-icon::before, .vb-faq-accordion-icon::after { content: ""; position: absolute; background: var(--grey-dark); }
.vb-faq-accordion-icon::before { width: 16px; height: 2px; top: 7px; left: 0; }
.vb-faq-accordion-icon::after { width: 2px; height: 16px; top: 0; left: 7px; transition: opacity .2s ease; }
.vb-faq-accordion-trigger[aria-expanded="true"] .vb-faq-accordion-icon::after { opacity: 0; }
.vb-faq-accordion-panel { overflow: hidden; height: 0; padding: 0; color: var(--black); font-size: var(--fs-h4); line-height: var(--lh-h4); transition: height .28s ease; }
.vb-faq-accordion-item.is-open .vb-faq-accordion-panel { padding: 0 0 16px 0; }
.vb-faq-accordion-panel a { text-decoration: underline; }
/* Links inside the accordion get brand-blue focus ring using existing tokens */
.vb-faq-accordion a:focus-visible {
  outline: var(--focus-ring-width) solid var(--brand-blue);
  outline-offset: var(--focus-ring-offset);
  border-radius: 4px;
}
/* FAQ module (scoped) */
.vb-faq { margin: var(--space-32) 0; }
.vb-faq h2 { margin: 0 0 var(--space-16); }
.vb-faq .vb-faq-list { border-top: 1px solid var(--grey-light); }
.vb-faq .vb-faq-item { border-bottom: 1px solid var(--grey-light); }
.vb-faq .vb-faq-question { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; cursor: pointer; font-family: var(--font-sans-2); font-weight: var(--w-semibold); font-size: var(--fs-h4); line-height: var(--lh-h4); color: #fff; margin: 0; }
.vb-faq .vb-faq-question:focus-visible { box-shadow: 0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color); border-radius: 6px; outline: 0; }
.vb-faq .vb-faq-answer { display: none; padding: 12px 0 16px 0; color: #E0E0E0; font-size: var(--fs-body1); line-height: var(--lh-body1); }
.vb-faq .vb-faq-item.is-open .vb-faq-answer { display: block; }

/* Toggle icon */
.vb-faq .vb-faq-question .vb-faq-icon { position: relative; width: 16px; height: 16px; margin-left: 8px; flex: 0 0 16px; }
.vb-faq .vb-faq-question .vb-faq-icon::before, .vb-faq .vb-faq-question .vb-faq-icon::after { content: ""; position: absolute; background: #fff; }
.vb-faq .vb-faq-question .vb-faq-icon::before { width: 16px; height: 2px; top: 7px; left: 0; }
.vb-faq .vb-faq-question .vb-faq-icon::after { height: 16px; width: 2px; top: 0; left: 7px; transition: opacity .2s ease; }
.vb-faq .vb-faq-item.is-open .vb-faq-question .vb-faq-icon::after { opacity: 0; }

/* Section variant */
.vb-faq--section { padding: 48px 0; background: var(--grey-ultralight); }
.vb-faq--section h2 { text-align: center; margin-bottom: var(--space-24); }

/* Inline variant: minimal spacing, inherits page background */
.vb-faq--inline { margin: var(--space-16) 0; }

