/* ========================================================================= faq.css — dreamy help center Frosted accordion panels, rose search bar, category pills — all built on the site's token system (no new colors/fonts invented here). ========================================================================= */ /* --- hero ------------------------------------------------------------- */ .faq-hero { padding-top: clamp(7rem, 16vw, 9rem); /* clear the fixed nav */ padding-bottom: clamp(1.5rem, 4vw, 2.5rem); text-align: center; } .faq-hero h1 { font-size: var(--step-hero); /* fluid display size */ margin-bottom: 0.6rem; } .faq-hero p { max-width: 52ch; /* readable measure */ margin-inline: auto; color: var(--ink-soft); font-size: 1.1rem; } /* --- search bar ------------------------------------------------------- */ .faq-search { /* the search wrapper */ max-width: 560px; margin: 0 auto clamp(1.5rem, 4vw, 2rem); position: relative; /* anchor the icon */ } .faq-search input { /* the input field */ width: 100%; min-height: 56px; /* generous touch target */ padding: 0.9rem 1.2rem 0.9rem 3rem; /* room for the icon */ font-family: var(--font-body); font-size: 1.05rem; color: var(--ink); background: var(--panel); /* frosted cloud card */ border: 1.5px solid var(--panel-border); border-radius: var(--radius-pill); /* pill shape */ 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; /* no iOS inner shadow */ appearance: none; } .faq-search input::placeholder { color: var(--ink-soft); opacity: 0.8; } .faq-search input:focus { /* focus ring, no glow */ outline: none; border-color: var(--rose); box-shadow: 0 12px 30px rgba(255, 143, 171, 0.22); } .faq-search input:focus-visible { /* keyboard a11y ring */ outline: 2.5px solid var(--rose); outline-offset: 2px; } .faq-search .search-icon { /* magnifier glyph */ position: absolute; left: 1.15rem; top: 50%; transform: translateY(-50%); color: var(--rose); pointer-events: none; } /* --- category pills --------------------------------------------------- */ .faq-cats { /* the filter row */ display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; margin-bottom: clamp(2rem, 5vw, 3rem); } .faq-cat { /* one pill button */ 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; /* tappable area */ min-height: 42px; /* touch target */ cursor: pointer; transition: all var(--dur-fast) var(--ease-gentle); display: inline-flex; align-items: center; gap: 0.4rem; } .faq-cat:hover { /* hover lift */ border-color: var(--rose); color: var(--rose-deep); transform: translateY(-1px); } .faq-cat:focus-visible { /* keyboard ring */ outline: 2.5px solid var(--rose); outline-offset: 2px; } .faq-cat .count { /* the (n) badge */ font-size: 0.78rem; opacity: 0.7; font-weight: 600; } .faq-cat[aria-pressed="true"] { /* active selected pill */ 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; } /* --- accordion -------------------------------------------------------- */ .faq-list { /* the accordion list */ max-width: 820px; margin: 0 auto clamp(3rem, 8vw, 5rem); display: flex; flex-direction: column; gap: 0.8rem; } .faq-item { /* one Q/A card */ background: var(--panel); /* frosted cloud */ border: 1.5px solid var(--panel-border); border-radius: var(--radius-card); overflow: hidden; /* clip the expanding ans */ 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 { /* gentle hover */ box-shadow: 0 12px 30px rgba(157, 170, 242, 0.16); border-color: rgba(255, 143, 171, 0.35); } .faq-q { /* the question header */ 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; /* touch target */ } .faq-q:focus-visible { /* keyboard ring */ outline: 2.5px solid var(--rose); outline-offset: -3px; border-radius: 6px; } .faq-q .q-tag { /* category mini-badge */ 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; } /* the question copy */ .faq-q .chevron { /* expand/collapse icon */ flex: none; color: var(--rose); transition: transform var(--dur-fast) var(--ease-spring); } .faq-item[data-open="true"] .chevron { /* rotate when open */ transform: rotate(180deg); } /* answer panel: grid-template-rows animates 0fr→1fr smoothly */ .faq-a-wrap { display: grid; grid-template-rows: 0fr; /* collapsed by default */ transition: grid-template-rows var(--dur-slow) var(--ease-soft); } .faq-item[data-open="true"] .faq-a-wrap { grid-template-rows: 1fr; /* expand */ } .faq-a { /* answer inner scroller */ overflow: hidden; /* required by grid trick */ min-height: 0; } .faq-a-inner { /* answer content pad */ padding: 0 1.4rem 1.2rem; color: var(--ink); opacity: 0; /* fade in with expand */ 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 { /* inline endpoint pill */ 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; } /* --- empty state (no results) ----------------------------------------- */ .faq-empty { /* shown when search 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; } /* --- footer CTA ------------------------------------------------------- */ .faq-cta { /* "still have questions" */ 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; } /* hide items filtered out by search or category */ .faq-item[data-hidden="true"] { display: none; } /* reduced motion: skip the accordion slide */ @media (prefers-reduced-motion: reduce) { .faq-a-wrap, .faq-a-inner, .faq-q .chevron { transition: none; } }