/* Dedicated FAQ layout. All answers remain ordinary, editable WordPress blocks. */
.faq-page { --faq-art-node: #101b20; --faq-art-bubble: #142329; --faq-art-back: #0d1519; --faq-art-lines: #395449; --faq-art-icon: #b1c4bc; --faq-art-glow: .16; }
[data-theme="light"] .faq-page { --faq-art-node: #ffffff; --faq-art-bubble: #ffffff; --faq-art-back: #e6eeea; --faq-art-lines: #a3b9ab; --faq-art-icon: #3f5b4b; --faq-art-glow: .12; }
.faq-hero { --service-hero-height: clamp(650px, calc(100svh - 83px), 790px); }
.faq-hero-art { position: absolute; right: max(-90px, calc((100vw - 1380px) / 2)); top: 50%; width: min(73vw, 990px); height: auto; max-height: 100%; transform: translateY(-50%); }
.faq-art-grid { stroke: var(--grid); }
.faq-art-aura { opacity: var(--faq-art-glow); }
.faq-glow-start { stop-color: var(--lime); }
.faq-glow-end { stop-color: var(--red); stop-opacity: 0; }
.faq-art-connectors { stroke: var(--faq-art-lines); }
.faq-art-node { fill: var(--faq-art-node); stroke: var(--faq-art-lines); }
.faq-art-symbol { stroke: var(--faq-art-icon); }
.faq-art-back-bubble { fill: var(--faq-art-back); stroke: var(--red); }
.faq-art-main-bubble { fill: var(--faq-art-bubble); stroke: var(--accent); }
.faq-art-lime { color: var(--accent); stroke: currentColor; }
.faq-art-red { color: var(--red); }
.faq-hero .service-hero-copy { width: 55%; max-width: 650px; }
.faq-hero h1 { font-size: clamp(49px, 5.5vw, 78px); }
.faq-hero .page-lead { max-width: 490px; }
.faq-topics { padding-bottom: 0; scroll-margin-top: 108px; }
.faq-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.faq-topic-tile { min-width: 0; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; }
.faq-topic-jump { display: flex; flex-direction: column; flex: 1; padding: 24px; min-width: 0; }
.faq-topic-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.faq-topic-number { font: 500 11px var(--font-code); color: var(--red-text); letter-spacing: .08em; }
.faq-topic-tile:nth-child(even) .faq-topic-number { color: var(--accent); }
.faq-topic-icon { color: var(--accent); flex: 0 0 36px; }
.faq-topic-jump h3 { font-family: var(--font-display); font-size: 23px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em; overflow-wrap: break-word; margin: 0 0 25px; }
.faq-topic-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; color: var(--accent); font: 500 11px var(--font-code); }
.faq-topic-action > span { font-size: 21px; line-height: 1; }
.faq-topic-jump:hover h3, .faq-topic-jump:focus-visible h3 { color: var(--accent); }
.faq-topic-jump:focus-visible { outline-offset: -4px; }
.faq-service-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; gap: 14px; padding: 13px 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.faq-service-link:hover { color: var(--accent); }
.faq-service-link:focus-visible { outline-offset: -4px; }
.faq-content { width: min(960px, calc(100% - 40px)); padding: 76px 0 86px; }
.faq-content .faq-topic { margin: 0 0 62px; scroll-margin-top: 112px; }
.faq-content .faq-topic:last-child { margin-bottom: 0; }
.faq-content .faq-topic > h2 { margin: 0 0 23px; padding-top: 10px; font-family: var(--font-display); font-size: clamp(28px, 3.2vw, 39px); line-height: 1.17; font-style: normal; letter-spacing: -.025em; }
.faq-content .wp-block-details { margin: 0 0 12px; }
.faq-content .wp-block-details summary { font-family: var(--font-body); font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.faq-content .wp-block-details summary::marker { color: var(--accent); }
.faq-content .wp-block-details[open] { border-color: var(--accent); }
.faq-content .wp-block-details p { margin: 0; padding: 22px 26px; line-height: 1.75; }
.faq-content .wp-block-details > :last-child { margin-bottom: 0; }
.faq-content .faq-topic > .faq-topic-service-link { margin: 20px 0 0; font-size: 14px; }

@media (min-width: 1400px) {
  .faq-hero-art { right: calc((100vw - 1380px) / 2); }
}
@media (max-width: 1000px) {
  .faq-hero .service-hero-copy { width: 64%; }
  .faq-hero h1 { font-size: clamp(46px, 6.2vw, 64px); }
  .faq-hero-art { right: -100px; width: 80vw; }
  .faq-topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .faq-hero { --service-art-height: clamp(250px, 66vw, 370px); }
  .faq-hero-art { width: min(108vw, 670px); height: 100%; max-height: none; right: 50%; top: 0; transform: translateX(50%); }
  .faq-hero .service-hero-copy { width: 100%; max-width: none; }
  .faq-hero h1 { font-size: clamp(35px, 10.6vw, 56px); }
  .faq-hero .page-lead { max-width: none; }
  .faq-topic-jump { padding: 22px; }
  .faq-topic-jump h3 { font-size: 22px; }
  .faq-service-link { padding-left: 22px; padding-right: 22px; }
  .faq-content { padding-top: 55px; padding-bottom: 65px; }
}
@media (max-width: 560px) {
  .faq-topic-grid { grid-template-columns: 1fr; gap: 13px; }
  .faq-topic-jump { padding: 20px; }
  .faq-topic-meta { margin-bottom: 17px; }
  .faq-topic-jump h3 { margin-bottom: 20px; }
  .faq-service-link { padding-left: 20px; padding-right: 20px; }
  .faq-content { width: calc(100% - 28px); }
  .faq-content .faq-topic { margin-bottom: 45px; }
  .faq-content .wp-block-details p { padding: 20px; font-size: 17px; }
}
@media print {
  .faq-hero { min-height: 0; }
  .faq-hero .service-hero-layout { min-height: 0; padding-top: 25px; }
  .faq-hero-media, .faq-topic-grid, .faq-hero .actions, .faq-hero .service-hero-meta, .faq-contact { display: none; }
  .faq-hero .service-hero-copy { width: 100%; }
}
