/* Shared expansion geometry. The approved standalone FAQ is the reference.
   State is JS-owned; interpolation is CSS-owned, on every page and viewport. */
[data-disclosure] {
  --lex-disclosure-duration: 450ms;
  --lex-disclosure-ease: cubic-bezier(.16,1,.3,1);
}
[data-disclosure-panel] {
  display: grid;
  grid-template-rows: 1fr;
}
[data-disclosure-ready] [data-disclosure-panel] {
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--lex-disclosure-duration) var(--lex-disclosure-ease);
}
[data-disclosure-ready] [data-disclosure-item][data-open="true"] > [data-disclosure-panel] {
  grid-template-rows: 1fr;
}
[data-disclosure-inner] { min-height: 0; overflow: hidden; }
[data-disclosure-trigger] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
[data-disclosure-trigger]:focus-visible {
  outline: 2px solid #8fb3cc;
  outline-offset: -3px;
}

/* Private tokens deliberately do not inherit the homepage's 90% type scale,
   service-page overrides, or mobile paragraph recoloring. */
.lex-faq {
  --faq-bg: #080a0c;
  --faq-text: #f4f6f8;
  --faq-para: rgba(228,233,240,.68);
  --faq-accent: #8fb3cc;
  --faq-border: rgba(143,179,204,.24);
  --faq-display: 'Space Grotesk', sans-serif;
  --faq-body: 'Manrope', sans-serif;
  --faq-serif: 'Instrument Serif', serif;
  --faq-eyebrow: calc((clamp(.76rem, .714rem + .23vw, .92rem)) * var(--desktop-type-scale));
  --faq-h2: calc((clamp(2.25rem, 1.68rem + 2.86vw, 4.25rem)) * var(--desktop-type-scale));
  --faq-ui-title: calc((clamp(1.03rem, .98rem + .2vw, 1.18rem)) * var(--desktop-type-scale));
  --faq-paragraph: clamp(1rem, .955rem + .225vw, 1.18rem);
  --faq-leading: 1.72;
  --faq-section-space: clamp(72px, 7.5vw, 120px);
  --faq-heading-space: clamp(20px, 1.8vw, 28px);
  --faq-component-space: clamp(38px, 3.8vw, 58px);
  --faq-shell-pad: clamp(24px, 6.4vw, 104px);
  position: relative;
  z-index: 4;
  padding-block: var(--faq-section-space);
  background: var(--faq-bg);
  color: var(--faq-text);
  font-family: var(--faq-body);
  -webkit-font-smoothing: antialiased;
}
.lex-faq, .lex-faq *, .lex-faq *::before, .lex-faq *::after { box-sizing: border-box; }
.lex-faq ::selection { color: var(--faq-bg); background: var(--faq-accent); }
.lex-faq__shell {
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: var(--faq-shell-pad);
}
.lex-faq__layout {
  display: grid;
  grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr);
  align-items: start;
  gap: clamp(60px,9vw,148px);
}
.lex-faq__intro, .lex-faq__list { min-width: 0; }
.lex-faq__eyebrow {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0;
  color: rgba(255,255,255,.48);
  font: 700 var(--faq-eyebrow)/1.15 var(--faq-display);
  letter-spacing: .2em;
  text-transform: uppercase;
  text-wrap: wrap;
}
.lex-faq__eyebrow::before {
  content: '';
  flex: 0 0 45px;
  height: 1px;
  background: var(--faq-accent);
}
.lex-faq__title {
  margin: var(--faq-heading-space) 0 0;
  font: 700 var(--faq-h2)/.93 var(--faq-display);
  letter-spacing: -.025em;
  text-transform: uppercase;
  text-wrap: balance;
}
.lex-faq__title em {
  display: block;
  color: var(--faq-accent);
  font-family: var(--faq-serif);
  font-weight: 400;
  text-transform: none;
}
.lex-faq__copy {
  max-width: 62ch;
  margin: var(--faq-heading-space) 0 0;
  color: var(--faq-para);
  font-size: var(--faq-paragraph);
  line-height: var(--faq-leading);
  text-wrap: wrap;
}
.lex-faq__list { border-top: 1px solid var(--faq-border); }
.lex-faq__item { border-bottom: 1px solid var(--faq-border); }
.lex-faq__item > h3 { margin: 0; }
.lex-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  min-height: 82px;
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  -webkit-text-fill-color: currentColor;
  font: 700 var(--faq-ui-title)/1.28 var(--faq-display);
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
  text-wrap: wrap;
  cursor: pointer;
  appearance: none;
  transition: color var(--lex-disclosure-duration) var(--lex-disclosure-ease);
}
.lex-faq__question > span:first-child { min-width: 0; }
.lex-faq__question[aria-expanded="true"] { color: #fff; }
.lex-faq__question:focus-visible {
  outline: 2px solid var(--faq-accent);
  outline-offset: 5px;
}
.lex-faq__icon {
  position: relative;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
}
.lex-faq__icon::before, .lex-faq__icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 20px;
  height: 1px;
  background: var(--faq-accent);
  transition: transform var(--lex-disclosure-duration) var(--lex-disclosure-ease);
}
.lex-faq__icon::after { transform: rotate(90deg); }
.lex-faq__question[aria-expanded="true"] .lex-faq__icon::after { transform: rotate(0); }
.lex-faq__answer-inner p {
  max-width: 66ch;
  margin: 0;
  padding: 0 48px 28px 0;
  color: var(--faq-para);
  font-size: var(--faq-paragraph);
  line-height: var(--faq-leading);
  text-wrap: wrap;
}

/* Why Us keeps its existing visual tokens. A real button replaces the old
   clickable div; padding and grid composition remain with .wy-row-h. */
.wy-row-h[data-disclosure-trigger] {
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  appearance: none;
  cursor: pointer;
}
/* As with FAQs, only the inner answer clips. The row and animated grid must
   not add nested clipping surfaces around the changing track. */
.wy-row-inner[data-disclosure-inner] { padding: 0; }
[data-disclosure] .wy-chevron {
  transition: transform var(--lex-disclosure-duration) var(--lex-disclosure-ease);
}

@media (hover: hover) and (pointer: fine) {
  .lex-faq__question:hover { color: #fff; }
}
@media (max-width: 1120px) {
  .lex-faq__layout { grid-template-columns: minmax(0,1fr); gap: var(--faq-component-space); }
}
@media (max-width: 600px) {
  .lex-faq { --faq-eyebrow: calc((clamp(.874rem,.821rem + .265vw,1.058rem)) * var(--desktop-type-scale)); }
  .lex-faq__title { margin-top: calc(var(--faq-heading-space) * 1.12); }
  .lex-faq__answer-inner p { padding-right: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-disclosure] { --lex-disclosure-duration: 0ms; }
  /* Accessibility takes precedence over legacy page-wide .01ms rules. */
  [data-disclosure] [data-disclosure-panel],
  [data-disclosure] [data-disclosure-trigger],
  [data-disclosure] .wy-chevron,
  .lex-faq__icon::before, .lex-faq__icon::after { transition: none !important; }
}
