| |
| |
| |
| |
| |
|
|
| |
| .faq-hero { |
| padding-top: clamp(7rem, 16vw, 9rem); |
| padding-bottom: clamp(1.5rem, 4vw, 2.5rem); |
| text-align: center; |
| } |
| .faq-hero h1 { |
| font-size: var(--step-hero); |
| margin-bottom: 0.6rem; |
| } |
| .faq-hero p { |
| max-width: 52ch; |
| margin-inline: auto; |
| color: var(--ink-soft); |
| font-size: 1.1rem; |
| } |
|
|
| |
| .faq-search { |
| max-width: 560px; |
| margin: 0 auto clamp(1.5rem, 4vw, 2rem); |
| position: relative; |
| } |
| .faq-search input { |
| width: 100%; |
| min-height: 56px; |
| padding: 0.9rem 1.2rem 0.9rem 3rem; |
| font-family: var(--font-body); |
| font-size: 1.05rem; |
| color: var(--ink); |
| background: var(--panel); |
| border: 1.5px solid var(--panel-border); |
| border-radius: var(--radius-pill); |
| box-shadow: 0 12px 30px rgba(157, 170, 242, 0.16); |
| transition: border-color var(--dur-fast) var(--ease-gentle), |
| box-shadow var(--dur-fast) var(--ease-gentle); |
| -webkit-appearance: none; |
| appearance: none; |
| } |
| .faq-search input::placeholder { color: var(--ink-soft); opacity: 0.8; } |
| .faq-search input:focus { |
| outline: none; |
| border-color: var(--rose); |
| box-shadow: 0 12px 30px rgba(255, 143, 171, 0.22); |
| } |
| .faq-search input:focus-visible { |
| outline: 2.5px solid var(--rose); |
| outline-offset: 2px; |
| } |
| .faq-search .search-icon { |
| position: absolute; |
| left: 1.15rem; |
| top: 50%; |
| transform: translateY(-50%); |
| color: var(--rose); |
| pointer-events: none; |
| } |
|
|
| |
| .faq-cats { |
| display: flex; |
| flex-wrap: wrap; |
| justify-content: center; |
| gap: 0.6rem; |
| margin-bottom: clamp(2rem, 5vw, 3rem); |
| } |
| .faq-cat { |
| font-family: var(--font-body); |
| font-size: 0.95rem; |
| font-weight: 700; |
| color: var(--ink-soft); |
| background: var(--panel); |
| border: 1.5px solid var(--panel-border); |
| border-radius: var(--radius-pill); |
| padding: 0.55rem 1.2rem; |
| min-height: 42px; |
| cursor: pointer; |
| transition: all var(--dur-fast) var(--ease-gentle); |
| display: inline-flex; |
| align-items: center; |
| gap: 0.4rem; |
| } |
| .faq-cat:hover { |
| border-color: var(--rose); |
| color: var(--rose-deep); |
| transform: translateY(-1px); |
| } |
| .faq-cat:focus-visible { |
| outline: 2.5px solid var(--rose); |
| outline-offset: 2px; |
| } |
| .faq-cat .count { |
| font-size: 0.78rem; |
| opacity: 0.7; |
| font-weight: 600; |
| } |
| .faq-cat[aria-pressed="true"] { |
| background: var(--rose); |
| border-color: var(--rose); |
| color: #fff; |
| box-shadow: 0 8px 20px -6px rgba(255, 143, 171, 0.55); |
| } |
| .faq-cat[aria-pressed="true"] .count { opacity: 0.9; } |
|
|
| |
| .faq-list { |
| max-width: 820px; |
| margin: 0 auto clamp(3rem, 8vw, 5rem); |
| display: flex; |
| flex-direction: column; |
| gap: 0.8rem; |
| } |
|
|
| .faq-item { |
| background: var(--panel); |
| border: 1.5px solid var(--panel-border); |
| border-radius: var(--radius-card); |
| overflow: hidden; |
| box-shadow: 0 8px 24px rgba(157, 170, 242, 0.10); |
| transition: box-shadow var(--dur-fast) var(--ease-gentle), |
| border-color var(--dur-fast) var(--ease-gentle); |
| } |
| .faq-item:hover { |
| box-shadow: 0 12px 30px rgba(157, 170, 242, 0.16); |
| border-color: rgba(255, 143, 171, 0.35); |
| } |
|
|
| .faq-q { |
| width: 100%; |
| display: flex; |
| align-items: center; |
| gap: 0.9rem; |
| padding: 1.1rem 1.4rem; |
| font-family: var(--font-body); |
| font-size: 1.08rem; |
| font-weight: 700; |
| color: var(--ink); |
| text-align: left; |
| background: none; |
| border: none; |
| cursor: pointer; |
| min-height: 44px; |
| } |
| .faq-q:focus-visible { |
| outline: 2.5px solid var(--rose); |
| outline-offset: -3px; |
| border-radius: 6px; |
| } |
| .faq-q .q-tag { |
| flex: none; |
| font-size: 0.7rem; |
| font-weight: 700; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| color: var(--rose-deep); |
| background: rgba(255, 143, 171, 0.14); |
| border-radius: var(--radius-pill); |
| padding: 0.18rem 0.6rem; |
| } |
| .faq-q .q-text { flex: 1; } |
|
|
| .faq-q .chevron { |
| flex: none; |
| color: var(--rose); |
| transition: transform var(--dur-fast) var(--ease-spring); |
| } |
| .faq-item[data-open="true"] .chevron { |
| transform: rotate(180deg); |
| } |
|
|
| |
| .faq-a-wrap { |
| display: grid; |
| grid-template-rows: 0fr; |
| transition: grid-template-rows var(--dur-slow) var(--ease-soft); |
| } |
| .faq-item[data-open="true"] .faq-a-wrap { |
| grid-template-rows: 1fr; |
| } |
| .faq-a { |
| overflow: hidden; |
| min-height: 0; |
| } |
| .faq-a-inner { |
| padding: 0 1.4rem 1.2rem; |
| color: var(--ink); |
| opacity: 0; |
| transform: translateY(-4px); |
| transition: opacity var(--dur-slow) var(--ease-soft), |
| transform var(--dur-slow) var(--ease-soft); |
| } |
| .faq-item[data-open="true"] .faq-a-inner { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| .faq-a-inner p { margin: 0 0 0.6rem; max-width: none; } |
| .faq-a-inner p:last-child { margin-bottom: 0; } |
| .faq-a-inner code { |
| font-family: var(--font-mono, 'JetBrains Mono', monospace); |
| font-size: 0.85em; |
| background: rgba(157, 170, 242, 0.14); |
| color: var(--rose-deep); |
| padding: 0.1em 0.45em; |
| border-radius: 6px; |
| } |
| .faq-a-inner a { color: var(--rose-deep); font-weight: 700; } |
|
|
| |
| .faq-empty { |
| text-align: center; |
| padding: 2.5rem 1rem; |
| color: var(--ink-soft); |
| } |
| .faq-empty .emoji { font-size: 2.5rem; display: block; margin-bottom: 0.5rem; } |
|
|
| |
| .faq-cta { |
| max-width: 720px; |
| margin: 0 auto clamp(4rem, 10vw, 6rem); |
| text-align: center; |
| background: var(--panel); |
| border: 1.5px solid var(--panel-border); |
| border-radius: var(--radius-card); |
| padding: clamp(2rem, 5vw, 3rem); |
| box-shadow: 0 14px 36px rgba(157, 170, 242, 0.16); |
| } |
| .faq-cta h2 { font-size: var(--step-h3); margin-bottom: 0.6rem; } |
| .faq-cta p { color: var(--ink-soft); margin-bottom: 1.5rem; } |
|
|
| |
| .faq-item[data-hidden="true"] { display: none; } |
|
|
| |
| @media (prefers-reduced-motion: reduce) { |
| .faq-a-wrap, .faq-a-inner, .faq-q .chevron { transition: none; } |
| } |
|
|