/*
 * EvolveClub public design system
 *
 * This public-only layer normalises typography, colour contrast, focus,
 * spacing and responsive behaviour without changing admin density or
 * removing legacy selectors that existing screens still depend on.
 */

.site-public {
    --action-orange: #b84a06;
    --action-orange-hover: #963b04;
    --brand-dark: #a84306;
    --focus-ring: #0b6f94;
    --text-secondary: #526a75;
    --surface-soft: #f5f9fa;
    --radius-control: 12px;
    --radius-card: 20px;
    --shadow-card: 0 12px 34px rgba(18, 62, 85, .08);
    color: var(--ink);
    font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 16px;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

.site-public :where(button, input, select, textarea) {
    font-family: inherit;
}

.site-public small {
    font-size: .75rem !important;
    line-height: 1.45;
}

.site-public :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--focus-ring) !important;
    outline-offset: 3px !important;
}

.site-public :where(a, button, input, select, textarea, summary) {
    -webkit-tap-highlight-color: rgba(18, 62, 85, .14);
}

.site-public .btn {
    min-height: 44px;
    border-radius: var(--radius-control);
    font-size: .9375rem;
    font-weight: 700;
}

.site-public .btn-primary {
    color: #fff;
    border-color: var(--action-orange);
    background: var(--action-orange);
    box-shadow: 0 9px 20px rgba(168, 67, 6, .22);
}

.site-public .btn-primary:hover,
.site-public .btn-primary:focus-visible {
    color: #fff;
    border-color: var(--action-orange-hover);
    background: var(--action-orange-hover);
}

.site-public .btn-outline {
    color: var(--navy);
    border-color: #9db5bf;
}

.site-public .eyebrow,
.site-public .spotlight-kicker {
    font-size: .75rem;
    font-weight: 800;
}

.site-public .lead {
    line-height: 1.6;
}

.site-public .help,
.site-public .text-muted,
.site-public .field-validation-error,
.site-public .form-label small {
    font-size: .8125rem;
    line-height: 1.5;
}

.site-public .form-label {
    font-size: .875rem;
    font-weight: 700;
}

.site-public .form-control {
    min-height: 48px;
    border-radius: var(--radius-control);
    font-size: 1rem;
}

.site-public .form-control:focus {
    border-color: var(--focus-ring);
    box-shadow: 0 0 0 4px rgba(11, 111, 148, .13);
}

.site-public .card,
.site-public .form-card {
    border-radius: var(--radius-card);
}

/* Header typography and touch targets. */
.site-public .header-community-bar,
.site-public .header-community-inner > span:first-child,
.site-public .header-community-inner > a {
    font-size: .75rem;
}

.site-public .site-header .brand-copy small {
    font-size: .75rem;
    line-height: 1.25;
}

.site-public .site-header .nav-primary > a {
    min-height: 44px;
    padding: 10px 11px;
    font-size: .9375rem;
    font-weight: 700;
}

.site-public .site-search-toggle {
    min-height: 44px;
    font-size: .875rem;
}

.site-public .site-search-toggle:hover,
.site-public .site-search-toggle[aria-expanded="true"],
.site-public .archive-carousel-controls button:hover:not(:disabled),
.site-public .quiz-option:has(input:checked) .quiz-option-letter,
.site-public .about-timeline article > span,
.site-public .about-choice-row strong,
.site-public .alumni-registration-steps .is-current b,
.site-public .alumni-registration-steps .is-complete b,
.site-public .course-session-quizzes a,
.site-public .alumni-photo-guidance-icon {
    color: #fff;
    border-color: var(--action-orange);
    background: var(--action-orange);
}

.site-public .site-account-menu {
    min-width: 215px;
}

.site-public .site-account-copy {
    align-content: center;
}

.site-public .site-account-copy small {
    overflow: hidden;
    font-size: .75rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-public .site-account-copy strong {
    display: block;
    overflow: hidden;
    font-size: .875rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-public .site-account-copy.is-guest strong {
    margin-top: 0;
    font-size: .9375rem;
}

.site-public .site-account-summary strong,
.site-public .site-account-dropdown a strong,
.site-public .site-account-dropdown button strong {
    font-size: .875rem;
}

.site-public .site-account-summary span,
.site-public .site-account-dropdown a small,
.site-public .site-account-dropdown button small {
    font-size: .8125rem;
    line-height: 1.4;
}

.site-public .site-account-dropdown > a > span svg,
.site-public .site-account-dropdown form > button > span svg,
.site-public .footer-pin svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.site-public .site-search-suggestions > a > span,
.site-public .search-result-card > span,
.site-public .search-result-card p,
.site-public .profile-security-link small,
.site-public .account-private-badge,
.site-public .account-activity-table th,
.site-public .account-activity-table td,
.site-public .account-activity-table td:first-child span,
.site-public .account-activity-table td:first-child em,
.site-public .account-activity-table code,
.site-public .login-method {
    font-size: .8125rem;
    line-height: 1.45;
}

/* Homepage hierarchy and card readability. */
.site-public .hero-pathway-links strong {
    font-size: .9375rem;
}

.site-public .hero-pathway-links small,
.site-public .hero-stats .stat span {
    font-size: .8125rem;
}

.site-public .section-heading > p,
.site-public .benefit-card p,
.site-public .community-story p,
.site-public .campus-section-heading p,
.site-public .home-story-card p,
.site-public .home-gallery-heading p {
    font-size: .9375rem;
    line-height: 1.65;
}

.site-public .about-timeline p,
.site-public .about-practice-card p,
.site-public .about-guide-card p,
.site-public .about-origin-section p,
.site-public .about-technical-lead > p,
.site-public .about-profile-links a {
    font-size: .9375rem;
    line-height: 1.65;
}

.site-public .campus-card-location,
.site-public .home-story-card small,
.site-public .home-gallery-heading > div:last-child > span,
.site-public .archive-banner-card figcaption strong {
    font-size: .8125rem;
}

.site-public .home-gallery-overlay small,
.site-public .community-gallery-overlay small,
.site-public .gallery-lightbox figcaption span {
    font-size: .75rem;
}

/* Public cards and directory information. */
.site-public .meta,
.site-public .pill,
.site-public .course-card .help,
.site-public .blog-card-meta,
.site-public .blog-read-link {
    font-size: .8125rem;
}

.site-public .course-card .text-muted,
.site-public .blog-card p {
    font-size: .9375rem;
    line-height: 1.6;
}

.site-public .course-session-schedule-heading > span,
.site-public .course-session-schedule-card p,
.site-public .course-session-schedule-card small,
.site-public .course-session-quizzes a,
.site-public .course-linked-quizzes > div:first-child p,
.site-public .course-linked-quizzes a > span,
.site-public .course-linked-quizzes a > small,
.site-public .course-linked-quizzes a > b {
    font-size: .8125rem;
    line-height: 1.5;
}

.site-public .alumni-current-position small,
.site-public .alumni-college small,
.site-public .alumni-achievements strong {
    font-size: .75rem;
}

.site-public .alumni-current-position strong {
    font-size: 1.0625rem;
}

.site-public .alumni-current-position p,
.site-public .alumni-current-position p b,
.site-public .alumni-college strong,
.site-public .alumni-card a,
.site-public .alumni-more-details summary,
.site-public .alumni-achievements,
.site-public .alumni-credentials dt,
.site-public .alumni-credentials dd {
    font-size: .8125rem;
    line-height: 1.5;
}

/* Authentication, profile and registration flows. */
.site-public .auth-story-benefit small,
.site-public .auth-security-note small,
.site-public .member-type-option small,
.site-public .member-details p,
.site-public .profile-security-link small,
.site-public .account-security-card p,
.site-public .account-security-note p,
.site-public .alumni-registration-intro > p,
.site-public .alumni-registration-intro li,
.site-public .alumni-registration-form > header p,
.site-public .alumni-registration-note,
.site-public .alumni-access-card > p,
.site-public .alumni-access-note,
.site-public .alumni-account-identity span,
.site-public .alumni-locked-email small {
    font-size: .8125rem;
    line-height: 1.55;
}

.site-public .alumni-registration-form > header > span,
.site-public .alumni-access-step,
.site-public .alumni-account-identity small,
.site-public .profile-member-type small,
.site-public .alumni-registration-steps small {
    font-size: .75rem;
}

/* Quiz text must remain readable during a timed task. */
.site-public .quiz-instruction-facts span,
.site-public .quiz-instruction-list p,
.site-public .quiz-attempt-policy p,
.site-public .quiz-terms-check span,
.site-public .quiz-back-link,
.site-public .quiz-status-guide strong {
    font-size: .8125rem;
}

.site-public .quiz-status-guide small,
.site-public .question-state-legend span,
.site-public .question-navigator small,
.site-public .quiz-timer small,
.site-public .quiz-timer span,
.site-public .quiz-question-meta,
.site-public .quiz-step-center > span,
.site-public .question-review-toggle,
.site-public .result-rank-card small,
.site-public .quiz-certificate-share-heading small,
.site-public .quiz-certificate-share-heading p,
.site-public .quiz-share-status {
    font-size: .75rem;
}

/* Footer: readable, compact and mobile-friendly. */
.site-public .footer-brand-lockup strong,
.site-public .footer-cta > span,
.site-public .footer-location-card small,
.site-public .site-footer .footer-bottom {
    font-size: .8125rem;
}

.site-public .footer-brand-lockup p,
.site-public .footer-location-card p,
.site-public .footer-trust-row {
    font-size: .875rem;
}

.site-public .site-footer .footer-navigation nav > a {
    min-height: 42px;
    margin: 0;
    padding: 9px 0;
    font-size: .9375rem;
}

/* A lone course is a featured item, not a narrow third-column card. */
.site-public .balanced-card-grid-3 > .course-card:only-child {
    display: grid;
    width: min(100%, 780px);
    max-width: 780px;
    grid-column: 1 / -1 !important;
    grid-template-columns: minmax(260px, .88fr) minmax(300px, 1.12fr);
    justify-self: center;
}

.site-public .balanced-card-grid-3 > .course-card:only-child .card-media {
    width: 100%;
    height: 100%;
    min-height: 360px;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
    background: #082f43;
}

.site-public .balanced-card-grid-3 > .course-card:only-child .card-body {
    min-width: 0;
    padding: clamp(24px, 3.2vw, 36px);
}

@media (max-width: 960px) {
    .site-public.quiz-attempt-page .quiz-question-step {
        scroll-margin-top: 124px;
    }

    .site-public .site-header .nav-primary > a {
        min-height: 48px;
        font-size: 1rem;
    }
}

@media (max-width: 640px) {
    .site-public .account-activity-section,
    .site-public .account-activity-layout,
    .site-public .account-activity-card,
    .site-public .account-activity-table-wrap {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .site-public .account-activity-card {
        padding: 16px;
        overflow: hidden;
    }

    .site-public .account-activity-table {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .site-public .account-activity-table td {
        min-width: 0;
        grid-template-columns: minmax(88px, 32%) minmax(0, 1fr);
    }

    .site-public .account-activity-table td > *,
    .site-public .account-activity-table td strong,
    .site-public .account-activity-table code {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .site-public .account-activity-card .pagination {
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
    }

    .site-public .balanced-card-grid-3 > .course-card:only-child {
        display: flex;
        width: min(100%, 480px);
        max-width: 480px;
    }

    .site-public .balanced-card-grid-3 > .course-card:only-child .card-media {
        height: clamp(280px, 95vw, 460px);
        min-height: 0;
    }

    .site-public .header-community-inner > span:first-child,
    .site-public .header-community-inner > a {
        font-size: .75rem;
    }

    .site-public .site-header .brand-copy small {
        max-width: 160px;
        font-size: .75rem;
    }

    .site-public .footer-navigation {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 480px) {
    .site-public .footer-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
        gap: 24px 14px;
    }

    .site-public .footer-navigation nav {
        min-width: 0;
    }

    .site-public .site-footer .footer-navigation nav > a {
        min-width: 0;
        min-height: 40px;
        padding: 8px 0;
        font-size: .8125rem;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .site-public .footer-location-card {
        display: grid;
        min-width: 0;
        padding: 13px;
        grid-column: auto;
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 9px;
    }

    .site-public .footer-location-card .footer-pin {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
        border-radius: 10px;
    }

    .site-public .footer-location-card strong,
    .site-public .footer-location-card p {
        min-width: 0;
        font-size: .75rem;
        overflow-wrap: anywhere;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-public,
    .site-public *,
    .site-public *::before,
    .site-public *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
