/**
 * Magna AI — page content styles.
 *
 * ══════════════════════════════════════════════════════════════════════════════
 * ★ WHY THIS FILE EXISTS (R4-B, 2026-09-30). The page templates emitted class
 *   names such as `.aisg-page-section` / `.aisg-page-title` for which NO sheet
 *   shipped. Referenced-but-absent, and its enqueue is `file_exists()`-guarded —
 *   so the pages rendered unstyled with no error anywhere.
 *
 * ★ STANDALONE, like `aisg-header-footer.css`: own `:root` tokens, NO dependency
 *   on the admin shell. The admin sheet never loads on a public page.
 *
 * ★ SCOPE — page CONTENT only. Header/footer live in `aisg-header-footer.css`.
 *   These are the primitives the fifteen page templates are built from, so a
 *   template never has to invent a class the sheets do not define (the identity
 *   pass found seven such invented classes rendering unstyled).
 *
 * @package AISG
 */

/* ── Local tokens. Warm neutral, matching the header/footer dark shell. ── */
:root {
    --aisg-page-max:      880px;
    --aisg-page-wide:     1140px;
    --aisg-page-gutter:   24px;
    --aisg-page-text:     #e2e8f0;
    --aisg-page-dim:      rgba(226, 232, 240, 0.78);
    --aisg-page-faint:    rgba(226, 232, 240, 0.55);
    --aisg-page-heading:  #ffffff;
    --aisg-page-surface:  rgba(255, 255, 255, 0.04);
    --aisg-page-border:   rgba(255, 255, 255, 0.10);
    --aisg-page-accent:   #CD853F;
    --aisg-page-radius:   12px;
    --aisg-page-gap:      20px;
}

/* ══════════════════════════════════════════════════════════════════
 * SECTION + CONTAINER — the two primitives every page starts with
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-section {
    padding: 48px 0;
    color: var(--aisg-page-text);
}

.aisg-page-section-tight { padding: 32px 0; }
.aisg-page-section-flush { padding-top: 0; }

.aisg-page-container {
    max-width: var(--aisg-page-max);
    margin: 0 auto;
    padding: 0 var(--aisg-page-gutter);
}

.aisg-page-container-wide { max-width: var(--aisg-page-wide); }

/* ══════════════════════════════════════════════════════════════════
 * TYPOGRAPHY
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-header {
    text-align: center;
    margin-bottom: 32px;
}

.aisg-page-title {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--aisg-page-heading);
    margin: 0 0 12px;
}

.aisg-page-subtitle {
    font-size: 16px;
    line-height: 1.6;
    color: var(--aisg-page-dim);
    margin: 0;
}

.aisg-page-content { font-size: 15px; line-height: 1.75; color: var(--aisg-page-dim); }
.aisg-page-content h2 { font-size: 22px; font-weight: 700; color: var(--aisg-page-heading); margin: 32px 0 12px; }
.aisg-page-content h3 { font-size: 18px; font-weight: 600; color: var(--aisg-page-heading); margin: 24px 0 10px; }
.aisg-page-content p  { margin: 0 0 16px; }
.aisg-page-content ul,
.aisg-page-content ol { margin: 0 0 16px; padding-left: 22px; }
.aisg-page-content li { margin-bottom: 8px; }
.aisg-page-content a  { color: var(--aisg-page-accent); text-decoration: none; }
.aisg-page-content a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════
 * CARDS + GRIDS
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--aisg-page-gap);
}

.aisg-page-card {
    background: var(--aisg-page-surface);
    border: 1px solid var(--aisg-page-border);
    border-radius: var(--aisg-page-radius);
    padding: 22px;
}

.aisg-page-card-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--aisg-page-heading);
    margin: 0 0 8px;
}

.aisg-page-card-text {
    font-size: 14px;
    line-height: 1.65;
    color: var(--aisg-page-dim);
    margin: 0;
}

.aisg-page-card-icon { font-size: 24px; line-height: 1; margin-bottom: 12px; display: block; }

/* ══════════════════════════════════════════════════════════════════
 * STEPS (How It Works)
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-steps { counter-reset: aisg-step; display: grid; gap: var(--aisg-page-gap); }

.aisg-page-step {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--aisg-page-surface);
    border: 1px solid var(--aisg-page-border);
    border-radius: var(--aisg-page-radius);
    padding: 20px;
}

.aisg-page-step-num {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--aisg-page-accent);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.aisg-page-step-body { min-width: 0; }
.aisg-page-step-title { font-size: 16px; font-weight: 600; color: var(--aisg-page-heading); margin: 0 0 6px; }
.aisg-page-step-text  { font-size: 14px; line-height: 1.6; color: var(--aisg-page-dim); margin: 0; }

/* ══════════════════════════════════════════════════════════════════
 * FAQ — native <details>, so it works with JavaScript absent
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-faq { display: grid; gap: 10px; }

.aisg-page-faq-item {
    background: var(--aisg-page-surface);
    border: 1px solid var(--aisg-page-border);
    border-radius: var(--aisg-page-radius);
    overflow: hidden;
}

.aisg-page-faq-q {
    cursor: pointer;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 600;
    color: var(--aisg-page-heading);
    list-style: none;
}

.aisg-page-faq-q::-webkit-details-marker { display: none; }
.aisg-page-faq-item[open] .aisg-page-faq-q { border-bottom: 1px solid var(--aisg-page-border); }

.aisg-page-faq-a {
    padding: 14px 20px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--aisg-page-dim);
    margin: 0;
}

/* ══════════════════════════════════════════════════════════════════
 * CTA BAND + BUTTONS
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-cta {
    text-align: center;
    background: var(--aisg-page-surface);
    border: 1px solid var(--aisg-page-border);
    border-radius: var(--aisg-page-radius);
    padding: 32px 24px;
}

.aisg-page-cta-title { font-size: 22px; font-weight: 700; color: var(--aisg-page-heading); margin: 0 0 8px; }
.aisg-page-cta-text  { font-size: 15px; color: var(--aisg-page-dim); margin: 0 0 20px; }

.aisg-page-btn {
    display: inline-block;
    padding: 12px 26px;
    background: var(--aisg-page-accent);
    color: #fff !important;
    border: 1px solid #b8732e;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none !important;
}

.aisg-page-btn:hover { background: #b8732e; }
.aisg-page-btn-outline { background: transparent; border-color: var(--aisg-page-border); color: var(--aisg-page-text) !important; }
.aisg-page-btn-outline:hover { background: var(--aisg-page-surface); }

/* ══════════════════════════════════════════════════════════════════
 * FORM PRIMITIVES (login / register / contact)
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-form { display: grid; gap: 14px; max-width: 420px; margin: 0 auto; }
.aisg-page-field { display: grid; gap: 6px; }
.aisg-page-label { font-size: 13px; font-weight: 600; color: var(--aisg-page-dim); }

.aisg-page-input,
.aisg-page-textarea,
.aisg-page-select {
    width: 100%;
    padding: 11px 14px;
    font-size: 14px;
    color: var(--aisg-page-text);
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid var(--aisg-page-border);
    border-radius: 8px;
}

.aisg-page-input:focus,
.aisg-page-textarea:focus,
.aisg-page-select:focus { outline: 2px solid var(--aisg-page-accent); outline-offset: 1px; }

.aisg-page-textarea { min-height: 120px; resize: vertical; }

.aisg-page-note { font-size: 12px; color: var(--aisg-page-faint); margin: 0; }

/* ══════════════════════════════════════════════════════════════════
 * PRICING CARDS
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--aisg-page-gap); }

.aisg-page-plan {
    background: var(--aisg-page-surface);
    border: 1px solid var(--aisg-page-border);
    border-radius: var(--aisg-page-radius);
    padding: 26px 22px;
    text-align: center;
    display: flex;
    flex-direction: column;
}

.aisg-page-plan-featured { border-color: var(--aisg-page-accent); }
.aisg-page-plan-name  { font-size: 17px; font-weight: 700; color: var(--aisg-page-heading); margin: 0 0 6px; }
.aisg-page-plan-price { font-size: 30px; font-weight: 700; color: var(--aisg-page-heading); margin: 0 0 4px; }
.aisg-page-plan-cycle { font-size: 12px; color: var(--aisg-page-faint); margin: 0 0 18px; }
.aisg-page-plan-list  { list-style: none; margin: 0 0 22px; padding: 0; text-align: left; flex: 1; }
.aisg-page-plan-list li { font-size: 14px; color: var(--aisg-page-dim); padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.aisg-page-plan-list li:last-child { border-bottom: 0; }

/* ══════════════════════════════════════════════════════════════════
 * UTILITY
 * ══════════════════════════════════════════════════════════════════ */
.aisg-page-center { text-align: center; }
.aisg-page-muted  { color: var(--aisg-page-faint); }
.aisg-page-stack  { display: grid; gap: var(--aisg-page-gap); }
.aisg-page-divider { height: 1px; background: var(--aisg-page-border); border: 0; margin: 32px 0; }

/* ══════════════════════════════════════════════════════════════════
 * BREAKPOINTS — same three as the header/footer sheet
 * ══════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .aisg-page-section { padding: 40px 0; }
    .aisg-page-grid,
    .aisg-page-plans { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}

@media (max-width: 768px) {
    :root { --aisg-page-gutter: 16px; }

    .aisg-page-section { padding: 32px 0; }
    .aisg-page-title   { font-size: 26px; }
    .aisg-page-subtitle{ font-size: 15px; }
    .aisg-page-grid,
    .aisg-page-plans { grid-template-columns: 1fr; }
    .aisg-page-header  { margin-bottom: 24px; }
}

@media (max-width: 480px) {
    :root { --aisg-page-gutter: 12px; }

    .aisg-page-section { padding: 26px 0; }
    .aisg-page-title   { font-size: 22px; }
    .aisg-page-card,
    .aisg-page-step,
    .aisg-page-plan    { padding: 18px 16px; }
    .aisg-page-btn     { display: block; width: 100%; text-align: center; }
}
