.page-faq {
  --faq-rail-w: 208px;
  --faq-gap: clamp(20px, 3vw, 40px);
  --faq-card-pad: clamp(18px, 2.4vw, 26px);
  display: block;
  padding-bottom: clamp(56px, 8vw, 104px);
}

.page-faq .page-faq__crumb {
  margin-top: clamp(16px, 3vw, 30px);
}

/* ---------- Hero ---------- */
.page-faq .page-faq__hero {
  display: grid;
  gap: clamp(22px, 3vw, 34px);
  grid-template-columns: 1fr;
  margin: clamp(20px, 4vw, 44px) 0 clamp(28px, 4vw, 52px);
  padding-bottom: clamp(24px, 3vw, 40px);
  border-bottom: 1px solid var(--yy-line);
  position: relative;
}

.page-faq .page-faq__hero::before {
  content: "";
  position: absolute;
  inset: -18px -10px auto -10px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(34, 211, 238, 0.45), transparent);
  pointer-events: none;
}

.page-faq .page-faq__hero-text .yy-lead {
  max-width: 62ch;
}

.page-faq .page-faq__jump {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr;
}

.page-faq .page-faq__jump-item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  row-gap: 3px;
  align-items: baseline;
  padding: 14px 16px;
  border: 1px solid var(--yy-line);
  border-left: 2px solid rgba(34, 211, 238, 0.5);
  border-radius: var(--yy-radius-sm);
  background: linear-gradient(135deg, rgba(19, 28, 68, 0.85), rgba(10, 18, 48, 0.55));
  text-decoration: none;
  transition: border-color var(--yy-fast) var(--yy-ease), transform var(--yy-fast) var(--yy-ease), background var(--yy-mid) var(--yy-ease);
}

.page-faq .page-faq__jump-item:hover,
.page-faq .page-faq__jump-item:focus-visible {
  border-left-color: var(--yy-cyan);
  transform: translateX(3px);
}

.page-faq .page-faq__jump-idx {
  grid-row: 1 / 3;
  color: var(--yy-purple);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  align-self: center;
}

.page-faq .page-faq__jump-title {
  color: var(--yy-text);
  font-weight: 600;
  font-size: 1rem;
}

.page-faq .page-faq__jump-desc {
  color: var(--yy-muted);
  font-size: 0.83rem;
  line-height: 1.6;
}

/* ---------- Layout ---------- */
.page-faq .page-faq__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--faq-gap);
  align-items: start;
}

.page-faq .page-faq__rail {
  border: 1px solid var(--yy-line);
  border-radius: var(--yy-radius);
  background: linear-gradient(180deg, rgba(19, 28, 68, 0.72), rgba(10, 18, 48, 0.35));
  padding: 14px 16px;
}

.page-faq .page-faq__rail-title {
  margin: 0 0 10px;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: var(--yy-muted);
  font-family: var(--yy-font-mono);
  text-transform: uppercase;
}

.page-faq .page-faq__rail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}

.page-faq .page-faq__rail-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 8px 8px 0;
  color: var(--yy-muted);
  text-decoration: none;
  border-bottom: 1px dashed rgba(30, 42, 90, 0.9);
  transition: color var(--yy-fast) var(--yy-ease);
}

.page-faq .page-faq__rail-link:hover,
.page-faq .page-faq__rail-link:focus-visible {
  color: var(--yy-cyan);
}

.page-faq .page-faq__rail-item:last-child .page-faq__rail-link {
  border-bottom: 0;
}

.page-faq .page-faq__rail-idx {
  color: var(--yy-purple);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  min-width: 2.2em;
}

.page-faq .page-faq__rail-label {
  font-size: 0.92rem;
}

/* ---------- Sections ---------- */
.page-faq .page-faq__section {
  scroll-margin-top: calc(var(--yy-header-h) + 24px);
}

.page-faq .page-faq__head {
  margin-bottom: clamp(18px, 2.4vw, 28px);
}

.page-faq .page-faq__sub {
  margin: 10px 0 0;
  color: var(--yy-muted);
  max-width: 64ch;
  line-height: 1.8;
}

.page-faq .page-faq__split {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 3vw, 34px);
  align-items: start;
}

/* ---------- Accordion ---------- */
.page-faq .page-faq__accordion {
  border: 1px solid var(--yy-line);
  border-radius: var(--yy-radius);
  overflow: hidden;
  background: rgba(19, 28, 68, 0.45);
}

.page-faq .page-faq__accordion .yy-accordion__item + .yy-accordion__item {
  border-top: 1px solid var(--yy-line);
}

.page-faq .page-faq__accordion .yy-accordion__trigger {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 16px var(--faq-card-pad);
  color: var(--yy-text);
  cursor: pointer;
  font-family: var(--yy-font-head);
  font-size: 1.02rem;
  font-weight: 600;
  transition: background var(--yy-fast) var(--yy-ease);
}

.page-faq .page-faq__accordion .yy-accordion__trigger:hover,
.page-faq .page-faq__accordion .yy-accordion__trigger:focus-visible {
  background: rgba(34, 211, 238, 0.07);
}

.page-faq .page-faq__accordion .yy-accordion__label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.page-faq .page-faq__stepno {
  color: var(--yy-cyan);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  padding: 3px 8px;
  border: 1px solid rgba(34, 211, 238, 0.4);
  border-radius: 6px;
}

.page-faq .page-faq__accordion .yy-accordion__meta {
  color: var(--yy-muted);
  font-size: 0.8rem;
  font-family: var(--yy-font-mono);
  white-space: nowrap;
}

.page-faq .page-faq__accordion .yy-accordion__icon {
  width: 16px;
  height: 16px;
  border-right: 2px solid var(--yy-cyan);
  border-bottom: 2px solid var(--yy-cyan);
  transform: rotate(45deg);
  transition: transform var(--yy-mid) var(--yy-ease);
}

.page-faq .page-faq__accordion .yy-accordion__item[data-open] .yy-accordion__icon {
  transform: rotate(-135deg);
}

.page-faq .page-faq__accordion .yy-accordion__body {
  padding: 0 var(--faq-card-pad) 20px;
  color: var(--yy-muted);
  line-height: 1.85;
}

.page-faq .page-faq__accordion .yy-accordion__body p {
  margin: 0 0 12px;
}

.page-faq .page-faq__list {
  margin: 0;
  padding-left: 1.2em;
  display: grid;
  gap: 7px;
}

.page-faq .page-faq__list li {
  position: relative;
  line-height: 1.75;
}

.page-faq .page-faq__inline-contact {
  margin-top: 14px;
  color: var(--yy-text);
}

.page-faq .page-faq__mail {
  color: var(--yy-cyan);
  text-decoration: none;
  border-bottom: 1px dashed rgba(34, 211, 238, 0.55);
}

/* ---------- Media ---------- */
.page-faq .page-faq__media {
  margin: 0;
  border: 1px solid var(--yy-line);
  border-radius: var(--yy-radius);
  overflow: hidden;
  background: linear-gradient(160deg, rgba(167, 139, 250, 0.14), rgba(10, 18, 48, 0.5));
}

.page-faq .page-faq__media .yy-media__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

.page-faq .page-faq__media--tall .yy-media__img {
  max-height: 560px;
  object-position: center top;
}

.page-faq .page-faq__media .yy-media__cap {
  padding: 10px 14px;
  font-size: 0.78rem;
  color: var(--yy-muted);
  border-top: 1px solid var(--yy-line);
  line-height: 1.6;
}

/* ---------- Navigation panel ---------- */
.page-faq .page-faq__navpanel {
  display: grid;
  gap: clamp(18px, 2.4vw, 26px);
}

.page-faq .page-faq__navpanel .yy-h3 {
  margin: 6px 0 6px;
  color: var(--yy-text);
}

.page-faq .page-faq__navpanel .yy-timeline__time {
  color: var(--yy-purple);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
}

.page-faq .page-faq__navpanel p {
  margin: 0;
  color: var(--yy-muted);
  line-height: 1.8;
}

.page-faq .page-faq__stat {
  border: 1px solid var(--yy-line);
  border-left: 3px solid var(--yy-orange);
  border-radius: var(--yy-radius-sm);
  padding: 18px var(--faq-card-pad);
  background: linear-gradient(135deg, rgba(251, 146, 60, 0.12), rgba(10, 18, 48, 0.4));
}

.page-faq .page-faq__stat-num {
  margin: 0;
  font-size: clamp(2rem, 5vw, 2.8rem);
  font-weight: 700;
  color: var(--yy-orange);
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.page-faq .page-faq__stat-label {
  margin: 8px 0 0;
  color: var(--yy-muted);
  font-size: 0.9rem;
  line-height: 1.7;
}

/* ---------- Download filter ---------- */
.page-faq .page-faq__chips {
  margin-bottom: clamp(16px, 2.2vw, 24px);
}

.page-faq .page-faq__dl {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}

.page-faq .page-faq__dl-item {
  border: 1px solid var(--yy-line);
  border-radius: var(--yy-radius);
  padding: var(--faq-card-pad);
  background: linear-gradient(180deg, rgba(19, 28, 68, 0.62), rgba(10, 18, 48, 0.32));
  transition: border-color var(--yy-fast) var(--yy-ease), transform var(--yy-fast) var(--yy-ease);
}

.page-faq .page-faq__dl-item:hover {
  border-color: rgba(34, 211, 238, 0.45);
  transform: translateY(-2px);
}

.page-faq .page-faq__dl-item .yy-h3 {
  margin: 0 0 8px;
  color: var(--yy-text);
}

.page-faq .page-faq__dl-item p {
  margin: 0 0 8px;
  color: var(--yy-muted);
  line-height: 1.8;
}

.page-faq .page-faq__dl-item .yy-note {
  margin: 10px 0 0;
}

/* ---------- Bento cards ---------- */
.page-faq .page-faq__bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--yy-gap);
}

.page-faq .page-faq__card {
  padding: var(--faq-card-pad);
}

.page-faq .page-faq__card p {
  margin: 10px 0 0;
  color: var(--yy-muted);
  line-height: 1.8;
}

.page-faq .page-faq__card .yy-card__title {
  color: var(--yy-text);
  margin: 6px 0 0;
}

.page-faq .page-faq__card--accent {
  border-left: 2px solid var(--yy-purple);
}

.page-faq .page-faq__tags {
  margin-top: clamp(18px, 2.4vw, 28px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.page-faq .page-faq__tags-note {
  flex: 1 1 220px;
  margin: 0;
  color: var(--yy-muted);
  font-size: 0.86rem;
  line-height: 1.7;
}

/* ---------- Support ---------- */
.page-faq .page-faq__support-inner {
  display: grid;
  gap: clamp(20px, 3vw, 34px);
  grid-template-columns: 1fr;
  border: 1px solid var(--yy-line);
  border-radius: var(--yy-radius);
  padding: clamp(22px, 3vw, 36px);
  background:
    radial-gradient(120% 140% at 8% 0%, rgba(34, 211, 238, 0.13), transparent 58%),
    radial-gradient(120% 140% at 100% 100%, rgba(167, 139, 250, 0.16), transparent 60%),
    rgba(19, 28, 68, 0.5);
}

.page-faq .page-faq__support-text p {
  margin: 12px 0 0;
  color: var(--yy-muted);
  line-height: 1.85;
  max-width: 58ch;
}

.page-faq .page-faq__support-actions {
  display: grid;
  gap: 14px;
  align-content: start;
}

.page-faq .page-faq__support-mail {
  margin: 0;
  font-size: clamp(0.95rem, 2.4vw, 1.15rem);
  color: var(--yy-cyan);
  letter-spacing: 0.05em;
  word-break: break-all;
}

.page-faq .page-faq__support-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.page-faq .page-faq__support-note {
  margin: 0;
  color: var(--yy-muted);
  font-size: 0.86rem;
  line-height: 1.75;
}

.page-faq .page-faq__support-note a {
  color: var(--yy-cyan);
  text-decoration: none;
  border-bottom: 1px dashed rgba(34, 211, 238, 0.5);
}

/* ---------- Responsive ---------- */
@media (min-width: 620px) {
  .page-faq .page-faq__jump {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-faq .page-faq__dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-faq .page-faq__bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-faq .page-faq__card--wide {
    grid-column: 1 / -1;
  }
}

@media (min-width: 900px) {
  .page-faq .page-faq__hero {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    align-items: start;
  }

  .page-faq .page-faq__jump {
    grid-template-columns: 1fr;
  }

  .page-faq .page-faq__layout {
    grid-template-columns: var(--faq-rail-w) minmax(0, 1fr);
  }

  .page-faq .page-faq__rail {
    position: sticky;
    top: calc(var(--yy-header-h) + 20px);
  }

  .page-faq .page-faq__split {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }

  .page-faq .page-faq__split--reverse {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }

  .page-faq .page-faq__support-inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: center;
  }

  .page-faq .page-faq__bento {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-faq .page-faq__card--wide {
    grid-column: span 2;
  }
}

@media (min-width: 1100px) {
  .page-faq {
    --faq-rail-w: 232px;
  }

  .page-faq .page-faq__media--tall .yy-media__img {
    max-height: 620px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-faq .page-faq__jump-item,
  .page-faq .page-faq__dl-item,
  .page-faq .page-faq__accordion .yy-accordion__icon,
  .page-faq .page-faq__rail-link {
    transition: none;
  }

  .page-faq .page-faq__jump-item:hover,
  .page-faq .page-faq__dl-item:hover {
    transform: none;
  }
}
