/* The support hub (/support) and the FAQ (/faq), 2026-11 redesign. Page layer over
   tg.css: --tg-* tokens only, .tg-support-* / .tg-faq-page-* classes. The search box
   is css/tg-search.css; the floating assistant is css/support.css. */

/* The header is sticky, so an in-page jump must not land under it. */
.tg-support-panel,
.tg-support-panel [id],
.tg-support-help,
.tg-support-help-card,
#articles,
#article,
.tg-faq-page-group,
.tg-faq-page-sub,
.tg-faq details[id] {
    scroll-margin-top: 88px;
}

/* ===== Hero and search ================================================ */

.tg-support-hero {
    padding-bottom: var(--tg-space-6);
}

.tg-support-hero-inner {
    gap: var(--tg-space-4);
}

.tg-support-hero .tg-search {
    margin-top: var(--tg-space-3);
}

/* ===== Help-desk article (?slug=) ===================================== */

.tg-support-article {
    border-block: 1px solid var(--tg-line);
    background: var(--tg-ink-2);
}

.tg-support-article :is(p, h2) {
    margin: 0;
}

.tg-support-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    color: #c6d1ff;
    font-family: var(--tg-font-display);
    font-weight: 600;
    text-decoration: none;
}

.tg-support-back::before {
    content: '\2190';
}

.tg-support-article-body {
    color: var(--tg-text-soft);
    white-space: pre-line;
}

/* ===== Topic cards ==================================================== */

.tg-support-topics-section {
    padding-top: 0;
}

.tg-support-topics {
    display: grid;
    gap: var(--tg-space-3);
    grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.tg-support-topic {
    display: flex;
    align-items: center;
    gap: var(--tg-space-4);
    height: 100%;
    min-height: 76px;
    padding: 14px 18px;
    border: 1px solid var(--tg-line);
    border-radius: var(--tg-radius);
    background: var(--tg-surface-1);
    color: var(--tg-text);
    text-decoration: none;
    transition:
        border-color var(--tg-dur-fast) var(--tg-ease),
        background-color var(--tg-dur-fast) var(--tg-ease),
        transform var(--tg-dur-fast) var(--tg-ease);
}

.tg-support-topic:hover {
    border-color: var(--tg-line-strong);
    background: var(--tg-surface-2);
    transform: translateY(-1px);
}

.tg-support-topic.is-selected {
    border-color: var(--tg-blue);
    background: linear-gradient(180deg, rgb(61 99 255 / 14%), rgb(61 99 255 / 6%)), var(--tg-surface-1);
    box-shadow: 0 0 0 1px var(--tg-blue) inset;
}

.tg-support-topic-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.tg-support-topic-text strong {
    color: #ffffff;
    font-family: var(--tg-font-display);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
}

.tg-support-topic-text span {
    color: var(--tg-text-faint);
    font-size: var(--tg-size-small);
    line-height: 1.4;
}

/* ===== One topic: fixes first, then the routes onward ================= */

.tg-support-panels {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-5);
    margin-top: var(--tg-space-6);
}

/* With JavaScript, only the chosen topic is in the page; nothing chosen, nothing shown. */
.tg-support-panels.is-enhanced:not(.has-open-topic) {
    margin-top: 0;
}

.tg-support-panel {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-4);
    padding: clamp(20px, 3vw, 36px);
    border: 1px solid var(--tg-line-strong);
    border-radius: var(--tg-radius-lg);
    background: linear-gradient(180deg, rgb(255 255 255 / 3%), rgb(255 255 255 / 0%)), var(--tg-surface-1);
    box-shadow: var(--tg-shadow);
}

.tg-support-panel[hidden] {
    display: none;
}

.tg-support-panels.is-enhanced .tg-support-panel {
    animation: tg-support-in var(--tg-dur) var(--tg-ease) both;
}

@keyframes tg-support-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
}

.tg-support-panel-head {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-2);
    max-width: 720px;
}

.tg-support-panel-head h2:focus {
    outline: none;
}

.tg-support-panel-head h2:focus-visible {
    outline: 2px solid var(--tg-focus);
    outline-offset: 4px;
}

.tg-support-kicker {
    margin: var(--tg-space-2) 0 0;
    color: var(--tg-text-soft);
    font-family: var(--tg-font-display);
    font-size: var(--tg-size-small);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tg-support-panel .tg-steps {
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}

.tg-support-panel .tg-steps > li {
    background: var(--tg-ink-2);
}

.tg-support-panel .tg-steps b,
.tg-support-panel .tg-faq-body b,
.tg-support-help-card b {
    color: #ffffff;
    font-weight: 600;
}

.tg-support-code {
    padding: 1px 8px;
    border: 1px solid var(--tg-line-strong);
    border-radius: 8px;
    background: var(--tg-surface-2);
    font-family: var(--tg-font-display);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.tg-support-stuck {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-3);
    padding-top: var(--tg-space-2);
    border-top: 1px solid var(--tg-line);
}

.tg-support-routes {
    display: grid;
    gap: var(--tg-space-3);
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: tg-route;
}

.tg-support-routes > li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 16px;
    border: 1px solid var(--tg-line);
    border-radius: var(--tg-radius);
    background: var(--tg-ink-2);
    counter-increment: tg-route;
}

.tg-support-routes > li > span {
    color: var(--tg-text-faint);
    font-size: var(--tg-size-small);
}

.tg-support-routes a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #c6d1ff;
    font-family: var(--tg-font-display);
    font-weight: 600;
    text-decoration: none;
}

.tg-support-routes a::before {
    content: counter(tg-route) '.';
    margin-right: 8px;
    color: var(--tg-text-faint);
}

.tg-support-routes a::after {
    content: '\2192';
    margin-left: 6px;
    transition: transform var(--tg-dur-fast) var(--tg-ease);
}

.tg-support-routes a:hover {
    color: #ffffff;
}

.tg-support-routes a:hover::after {
    transform: translateX(3px);
}

/* The shared routes, written once after the topics (moved into the open topic by
   js/support-hub.js, which then hides this empty holder). */
.tg-support-shared[hidden] {
    display: none;
}

.tg-support-panel .tg-faq {
    margin: 0;
}

.tg-support-panel .tg-faq-body p {
    margin: 0 0 var(--tg-space-3);
}

.tg-support-panel .tg-faq-body p:last-child {
    margin-bottom: 0;
}

/* ===== Still need help: checks, a session, a person ================== */

.tg-support-help-grid {
    align-items: start;
}

.tg-support-help-card {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-3);
}

.tg-support-help-card :is(h3, p) {
    margin: 0;
}

.tg-support-help-card .tg-faq {
    margin: 0;
}

.tg-support-help-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tg-space-2);
}

.tg-support-help-actions .tg-btn {
    min-height: 48px;
}

.tg-support-privacy .tg-ticks li {
    font-size: 0.95rem;
}

.tg-support-privacy p {
    margin: var(--tg-space-3) 0 0;
}

.tg-support-assistant[hidden] {
    display: none;
}

/* ===== Help-desk list and the three reading links ===================== */

.tg-support-kb {
    display: grid;
    gap: var(--tg-space-3);
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.tg-support-kb-link {
    display: flex;
    flex-direction: column;
    gap: 4px;
    height: 100%;
    padding: 16px 18px;
    border: 1px solid var(--tg-line);
    border-radius: var(--tg-radius);
    background: var(--tg-surface-1);
    color: var(--tg-text-soft);
    font-size: var(--tg-size-small);
    text-decoration: none;
}

.tg-support-kb-link strong {
    color: #ffffff;
    font-family: var(--tg-font-display);
    font-size: 1rem;
    font-weight: 600;
}

.tg-support-kb-link:hover {
    border-color: var(--tg-line-strong);
}

.tg-support-browse {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tg-space-2) var(--tg-space-6);
    margin: var(--tg-space-3) 0 0;
    padding: 0;
    list-style: none;
}

.tg-support-browse a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
}

.tg-support-legal {
    margin: var(--tg-space-4) 0 0;
}

/* ===== FAQ page ======================================================= */

.tg-faq-page-hero {
    padding-bottom: var(--tg-space-5);
}

.tg-faq-page-hero .tg-search {
    margin-top: var(--tg-space-2);
}

.tg-faq-page-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tg-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.tg-faq-page-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--tg-line);
    border-radius: var(--tg-radius-pill);
    background: var(--tg-surface-1);
    color: var(--tg-text-soft);
    font-family: var(--tg-font-display);
    font-size: var(--tg-size-small);
    font-weight: 600;
    text-decoration: none;
}

.tg-faq-page-nav a:hover {
    border-color: var(--tg-line-strong);
    color: #ffffff;
}

.tg-faq-page-group {
    display: grid;
    gap: var(--tg-space-4) clamp(24px, 4vw, 64px);
    grid-template-columns: minmax(0, 1fr);
}

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

.tg-faq-page-group + .tg-faq-page-group {
    margin-top: var(--tg-space-7);
}

.tg-faq-page-group > h2 {
    margin: 0;
}

/* A block inside a group (Plans and payments in Account): under the group's questions. */
.tg-faq-page-sub {
    display: flex;
    flex-direction: column;
    gap: var(--tg-space-3);
}

.tg-faq-page-sub > h3 {
    margin: var(--tg-space-3) 0 0;
}

@media (min-width: 900px) {
    .tg-faq-page-sub {
        grid-column: 2;
    }
}

/* The answer keeps class="faq-answer": build-website.js builds the FAQPage JSON-LD from
   <summary> + <div class="faq-answer">, so here it takes .tg-faq-body's look. */
.tg-faq .faq-answer {
    padding: 0 20px 20px;
    color: var(--tg-text-soft);
}

.tg-faq .faq-answer :is(strong, b) {
    color: #ffffff;
    font-weight: 600;
}

.tg-faq-page-code {
    padding: 1px 6px;
    border: 1px solid var(--tg-line-strong);
    border-radius: 6px;
    background: var(--tg-surface-2);
    color: #ffffff;
    font-family: var(--tg-font-display);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.tg-faq-page-more {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--tg-space-5);
    margin-top: var(--tg-space-8);
}

.tg-faq-page-more :is(h2, p) {
    margin: 0;
}

/* The topics answer the hero's question, so they sit right under the search box. */
.tg-section.tg-support-hero {
    padding-bottom: var(--tg-space-5);
}
