.jm-faq-hero { border-bottom: 1px solid var(--jm-soft-line); background: var(--jm-ivory); }
.jm-faq-hero__inner { display: grid; min-height: 390px; grid-template-columns: minmax(0, .95fr) minmax(360px, .55fr); gap: clamp(56px, 9vw, 120px); align-items: center; padding-block: 70px; }
.jm-faq-hero h1 { max-width: 660px; margin: 18px 0 0; color: var(--jm-ink); font-family: var(--jm-serif); font-size: clamp(48px, 4.5vw, 64px); font-weight: 400; letter-spacing: -.04em; line-height: .96; }
.jm-faq-hero__intro { align-self: end; padding-bottom: 5px; border-top: 1px solid var(--jm-line); }
.jm-faq-hero__intro p { margin-top: 18px; color: var(--jm-muted); line-height: 1.75; }
.jm-faq-layout { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: clamp(64px, 9vw, 126px); align-items: start; }
.jm-faq-aside { position: sticky; top: 100px; }
.jm-faq-aside h2 { font-family: var(--jm-serif); font-size: clamp(42px, 4.3vw, 64px); font-weight: 400; letter-spacing: -.04em; line-height: .97; }
.jm-faq-aside > p { max-width: 340px; margin-top: 20px; color: var(--jm-muted); font-size: 13px; line-height: 1.75; }
.jm-faq-aside .jm-text-link { margin-top: 25px; }
.jm-faq-list { border-top: 1px solid var(--jm-line); }
.jm-faq-item { border-bottom: 1px solid var(--jm-line); scroll-margin-top: 90px; }
.jm-faq-item h3 { margin: 0; }
.jm-faq-question { display: grid; width: 100%; min-height: 80px; grid-template-columns: 36px 1fr 28px; gap: 18px; align-items: center; padding: 18px 0; border: 0; background: transparent; color: var(--jm-ink); cursor: pointer; text-align: left; }
.jm-faq-question__number { color: var(--jm-rose); font-family: var(--jm-serif); font-size: 19px; line-height: 1; }
.jm-faq-question__text { font-size: 14px; font-weight: 600; line-height: 1.45; }
.jm-faq-question__icon { position: relative; width: 20px; height: 20px; justify-self: end; }
.jm-faq-question__icon::before, .jm-faq-question__icon::after { position: absolute; top: 50%; left: 50%; width: 15px; height: 1px; background: currentColor; content: ""; transform: translate(-50%, -50%); transition: transform 220ms var(--jm-ease); }
.jm-faq-question__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.jm-faq-question[aria-expanded="true"] .jm-faq-question__icon::after { transform: translate(-50%, -50%) rotate(0); }
.jm-faq-answer[hidden] { display: none; }
.jm-faq-answer__inner { max-width: 680px; padding: 0 46px 27px 54px; color: var(--jm-muted); font-size: 14px; line-height: 1.8; }
.jm-faq-answer__inner p + p { margin-top: 12px; }
.jm-faq-answer__inner a { color: var(--jm-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--jm-rose); text-underline-offset: 3px; }
.jm-faq-contact__actions { display: flex; flex-wrap: wrap; gap: 11px; }

@media (max-width: 768px) {
  .jm-faq-hero h1 { font-size: clamp(44px, 11.5vw, 54px); }
  .jm-faq-hero__inner, .jm-faq-layout { grid-template-columns: 1fr; }
  .jm-faq-hero__inner { min-height: 365px; gap: 34px; padding-block: 58px; }
  .jm-faq-aside { position: static; }
  .jm-faq-aside h2 { font-size: 43px; }
  .jm-faq-layout { gap: 45px; }
  .jm-faq-question { min-height: 74px; grid-template-columns: 26px 1fr 22px; gap: 13px; }
  .jm-faq-answer__inner { padding: 0 18px 25px 39px; font-size: 13px; }
  .jm-faq-contact__actions { flex-direction: column; }
  .jm-faq-contact__actions .jm-button { width: 100%; }
}
