/* Wspólny wygląd strony FAQ i okna pytań; bez wpływu na istniejące karty. */
.faq-page { background: #faf9f7; }
.faq-shell { --faq-red: #df1722; --faq-ink: #1f2d4a; color: var(--faq-ink); padding-block: 58px 72px; max-width: 1000px; }
.faq-intro { max-width: 720px; margin-bottom: 30px; }
.faq-intro h1, .faq-intro h2 { font-size: clamp(2rem, 4.6vw, 3.5rem); line-height: 1.12; letter-spacing: -.035em; margin: 12px 0 20px; color: var(--faq-ink); }
.faq-intro > p:last-child { color: #58677a; max-width: 620px; margin-bottom: 0; }
.faq-filters { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; }
.faq-filters[hidden], .faq-group[hidden] { display: none; }
.faq-item[hidden] { display: none; }
.faq-subfilters { padding: 14px; border: 1px solid #dde5ec; border-radius: 18px; background: #f3f6f9; }
.faq-filters.faq-subfilters button[aria-pressed="true"] { background: #1f2d4a; border-color: #1f2d4a; }
.faq-filters button { min-height: 44px; border: 1px solid #dde5ec; border-radius: 99px; padding: 10px 17px; background: #fff; color: var(--faq-ink); font-size: .8125rem; font-weight: 700; line-height: 1.4; transition: background .2s, border-color .2s, color .2s; }
.faq-filters button span { margin-left: 6px; font-size: .75rem; opacity: .75; }
.faq-filters button:hover { background: #fff4f2; border-color: #df1722; color: #b61019; }
.faq-filters button[aria-pressed="true"] { color: #fff; background: var(--faq-red); border-color: var(--faq-red); }
.faq-status { font-size: .8125rem; color: #58677a; margin: 0 0 28px; }
.faq-group { margin-bottom: 32px; }
.faq-group > h2 { font-size: .8125rem; letter-spacing: .07em; text-transform: uppercase; color: #58677a; margin: 0 0 12px; line-height: 1.6; }
.faq-item { margin-bottom: 10px; border: 1px solid #dde5ec; border-radius: 18px; background: #fff; scroll-margin-top: 125px; transition: border-color .2s, box-shadow .2s, background .2s; overflow: clip; }
.faq-item:hover, .faq-item:focus-within, .faq-item[data-expanded="true"] { border-color: #e6b7b6; background: #fffdfc; box-shadow: 0 5px 18px #1f2d4a07; }
.faq-item > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; cursor: pointer; padding: 22px 26px; font-size: 1rem; font-weight: 700; line-height: 1.5; color: var(--faq-ink); }
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary { transition: color .2s; }
.faq-item > summary:focus-visible { color: var(--faq-red); }
@media (hover: hover) and (pointer: fine) {
  .faq-item > summary:hover { color: var(--faq-red); }
}
.faq-item > summary:focus-visible { outline-offset: -5px; border-radius: 17px; }
.faq-plus { display: grid; place-items: center; flex: 0 0 28px; height: 28px; font-size: 1.65rem; font-weight: 400; line-height: 1; color: var(--faq-red); transition: transform .2s; transform-origin: center; }
.faq-item[open] .faq-plus { transform: rotate(45deg); }
.faq-item[data-expanded="false"] .faq-plus { transform: rotate(0); }
.faq-answer { padding: 0 26px 24px; color: #58677a; font-size: .9375rem; line-height: 1.8; }
.faq-answer p { margin: 0 0 12px; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer strong { color: var(--faq-ink); }
.faq-answer a, .faq-email a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.faq-answer a:hover, .faq-email a:hover { color: #b61019; }
.faq-ask { padding: 28px; border: 1px solid #e6e0d8; border-radius: 20px; background: #f3eee7; margin-top: 40px; }
.faq-ask h2 { margin: 0 0 8px; font-size: 1.4rem; line-height: 1.3; color: var(--faq-ink); }
.faq-ask p { color: #58677a; margin: 0; }
.faq-ask-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-block: 20px; }
.faq-text-link { font-size: .875rem; font-weight: 700; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; }
.faq-text-link span, .faq-context-link span { color: #df1722; transition: transform .2s; }
.faq-text-link:hover span, .faq-context-link:hover span { transform: translate(2px, -2px); }
.faq-ask .faq-email { font-size: .75rem; line-height: 1.8; }
.faq-context-link { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding-block: 8px; font-size: .8125rem; font-weight: 700; text-underline-offset: 4px; }
.faq-context-link:hover { text-decoration: underline; }
.faq-context-row { margin: 4px 0 20px; }
.brand-contact .faq-context-link, .aq-visit .faq-context-link, .wk-visit .faq-context-link { color: #fff; }
.brand-contact .faq-context-link span, .aq-visit .faq-context-link span, .wk-visit .faq-context-link span { color: #ff858a; }
/* Natywny dialog izoluje fokus od strony. Nagłówek z zamknięciem pozostaje widoczny. */
.faq-dialog { width: min(960px, calc(100% - 36px)); max-width: none; height: min(860px, calc(100dvh - 48px)); max-height: calc(100dvh - 48px); padding: 0; border: 1px solid #dde5ec; border-radius: 24px; color: #1f2d4a; background: #faf9f7; box-shadow: 0 24px 90px #10203b40; overflow: hidden; }
.faq-dialog[open] { display: flex; flex-direction: column; }
.faq-dialog::backdrop { background: #142039a6; backdrop-filter: blur(4px); }
.faq-dialog-bar { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 24px; background: #fff; border-bottom: 1px solid #dde5ec; }
.faq-dialog-bar a { font-size: .8125rem; font-weight: 700; }
.faq-dialog-close { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid #dde5ec; border-radius: 50%; background: #f6f8fa; color: #1f2d4a; font-size: 1.7rem; line-height: 1; }
.faq-dialog-close:hover { background: #fff4f2; color: #df1722; border-color: #df1722; }
.faq-dialog-body { overflow-y: auto; overscroll-behavior: contain; min-height: 0; flex: 1; scrollbar-gutter: stable; }
.faq-dialog .faq-shell { width: 100%; max-width: none; margin: 0; padding: 30px 32px; }
.faq-dialog .faq-intro h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.faq-dialog .faq-item { scroll-margin-top: 16px; }
.faq-loading { padding: 32px; }
@media(max-width: 540px) {
  .faq-shell { padding-block: 36px 44px; }
  .faq-intro { margin-bottom: 24px; }
  .faq-filters { gap: 8px; }
  .faq-filters button { padding: 10px 13px; }
  .faq-item > summary { padding: 18px 16px; gap: 12px; font-size: .9375rem; }
  .faq-answer { padding: 0 16px 20px; }
  .faq-ask { padding: 22px 18px; }
  .faq-dialog { width: calc(100% - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); border-radius: 18px; }
  .faq-dialog-bar { padding: 8px 14px; }
  .faq-dialog .faq-shell { padding: 24px 16px; }
  .faq-dialog .faq-filters button { font-size: .75rem; padding-inline: 11px; }
}
@media(prefers-reduced-motion: reduce) {
  .faq-plus, .faq-item, .faq-item > summary, .faq-filters button, .faq-text-link span, .faq-context-link span { transition: none; }
  .faq-page { scroll-behavior: auto; }
}
