/* Copyright (c) California Commission on Teacher Credentialing. All rights reserved. */

/* ============================================
   BASE STYLES & OVERRIDES
   ============================================ */

/* Smooth scrolling for anchor links */
html,
body {
    scroll-behavior: smooth;
    /* Offset for fixed header when scrolling to anchors */
    scroll-padding-top: 80px;
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
    html,
    body {
        scroll-behavior: auto;
    }
}

/* Scroll offset for anchor targets */
[id] {
    scroll-margin-top: 80px;
}

.k-grid a.rowbutton {
    color: #fff;
}

legend {
    font-size: 1.0em;
    text-decoration: underline;
    text-underline-offset: 5px;
}

/* Temporary Styles to address font-size issues with the state template -- Remove when upgrade to R4 3.3 */
h2 {
    font-size: 1.875rem; /*30px*/
}

h3 {
    font-size: 1.5rem; /*24px*/
}

h4 {
    font-size: 1.25rem; /*20px*/
}

a {
    color: var(--primary);
    text-decoration: underline;
}

    a:hover {
        color: var(--primary-dark);
    }

.error {
    color: #b50909;
}

.k-dropzone-hint {
    color: #323232 !important;
}

/* ============================================
   PUBLIC PORTAL - MODERN CLEAN DESIGN
   Professional, minimal, no heavy borders
   R4 Compliant
   ============================================ */

:root {
    /* CTC Brand Colors - matches ctc.ca.gov header */
    --ctc-navy: #003366;
    --ctc-navy-dark: #002244;
    --ctc-navy-light: #004488;
    --ctc-gold: #B8860B;
    --ctc-gold-light: #DAA520;
    /* Primary Palette */
    --primary: #005ea2;
    --primary-dark: #1a4480;
    --primary-darker: #003366;
    --primary-light: #73b3e7;
    /* Semantic Colors */
    --success: #2e8540;
    --warning: #e5a000;
    --error: #d63e04;
    --info: #02bfe7;
    /* Neutral Palette */
    --gray-100: #f8f9fa;
    --gray-200: #e9ecef;
    --gray-300: #dee2e6;
    --gray-400: #ced4da;
    --gray-500: #71767a;
    --gray-600: #565c65;
    --gray-700: #495057;
    --gray-800: #3d4551;
    --gray-900: #1b1b1b;
    --white: #ffffff;
    --body-bg: #f8f9fa;
}

/* ============================================
   WELCOME SECTION
   ============================================ */

.welcome-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--ctc-navy);
    margin: 0 0 1.25rem 0;
    line-height: 1.3;
    text-align: center;
}

.welcome-text {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--gray-700);
    margin-bottom: 0;
    text-align: center;
}

/* ============================================
   PROCESS FLOW - How It Works (numbered steps)
   ============================================ */

.process-flow {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: 1rem;
    align-items: stretch;
    margin-top: 1.5rem;
}

.process-step {
    display: flex;
    flex-direction: column;
}

.process-step-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.process-step-number {
    width: 36px;
    height: 36px;
    background-color: var(--ctc-navy);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    font-weight: 700;
    flex-shrink: 0;
}

.process-step-header h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    color: var(--ctc-navy);
}

.process-step-body {
    background-color: var(--white);
    border-radius: 8px;
    padding: 1.5rem;
    border: 2px solid var(--gray-200);
    flex: 1;
    display: flex;
    flex-direction: column;
}

    .process-step-body > .mt-3:last-child {
        margin-top: auto !important;
        padding-top: 1rem;
    }

    .process-step-body:hover {
        border-color: var(--ctc-gold);
        box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.1);
    }

    .process-step-body > p {
        color: var(--gray-600);
        line-height: 1.7;
        margin-bottom: 0.75rem;
        font-size: 0.9375rem;
    }

.process-checklist {
    border-top: 1px solid var(--gray-200);
    margin-top: 1rem;
    padding-top: 1rem;
}

    .process-checklist h4 {
        font-size: 1rem;
        font-weight: 600;
        color: var(--gray-800);
        margin-bottom: 0.75rem;
    }

.process-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 3rem;
    color: var(--ctc-gold);
    font-size: 1.5rem;
}

/* ============================================
   CHECKLISTS
   ============================================ */

.checklist {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .checklist li {
        padding: 0.625rem 0;
        padding-left: 2rem;
        position: relative;
        color: var(--gray-700);
        line-height: 1.6;
        font-size: 1rem;
        border-bottom: 1px solid var(--gray-100);
    }

        .checklist li:last-child {
            border-bottom: none;
        }

        .checklist li > .mdi-check {
            position: absolute;
            left: 0;
            color: var(--success);
            font-size: 1.25rem;
            line-height: 1.6;
        }

        .checklist li em {
            color: var(--gray-500);
            font-size: 0.9375rem;
        }

/* ============================================
   CTA BUTTONS
   ============================================ */

.btn-cta {
    background-color: var(--ctc-navy);
    border-color: var(--ctc-navy);
    color: var(--white);
    font-size: 1.125rem;
    font-weight: 700;
    padding: 1rem 2rem;
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .btn-cta:hover {
        background-color: var(--ctc-navy-light);
        border-color: var(--ctc-navy-light);
        color: var(--white);
        text-decoration: none;
    }

    .btn-cta:focus,
    .btn-cta:focus-visible {
        outline: 3px solid var(--ctc-gold);
        outline-offset: 2px;
        box-shadow: 0 0 0 4px rgba(184, 134, 11, 0.3);
        background-color: var(--ctc-navy);
        border-color: var(--ctc-navy);
        color: var(--white);
    }

/* ============================================
   CONTACT INFO
   ============================================ */

.contact-info {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    color: var(--gray-700);
}

    .contact-item strong {
        min-width: 80px;
    }

    .contact-item i {
        color: var(--primary);
        font-size: 1.25rem;
    }

/* ============================================
   CONTENT SECTIONS
   ============================================ */

.content-section {
    margin-bottom: 3.5rem;
}

.section-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 2rem;
    color: var(--gray-900);
    text-align: left;
    letter-spacing: -0.3px;
}

.lead-text {
    font-size: 1.125rem;
    line-height: 1.8;
    margin-bottom: 2rem;
    color: var(--gray-600);
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* ============================================
   CARD OVERRIDES - Public Portal Styling
   ============================================ */

.card.shadow {
    border-radius: 12px;
    overflow: hidden;
}

    .card.shadow .card-header.bg-white {
        padding: 1.25rem 1.75rem;
        border-bottom: 1px solid var(--gray-200);
    }

        .card.shadow .card-header.bg-white h2 {
            margin: 0;
            font-size: 1.375rem;
            font-weight: 700;
            color: var(--gray-900);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.625rem;
        }

            .card.shadow .card-header.bg-white h2 i {
                color: var(--primary);
                font-size: 1.5rem;
            }

    .card.shadow .card-body {
        padding: 2rem;
    }

/* ============================================
   INFO GRID - Statistics Cards
   ============================================ */

.info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

.info-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.75rem 1.25rem;
    background-color: var(--white);
    border-radius: 8px;
    border: 2px solid var(--gray-200);
    transition: all 0.2s ease;
}

    .info-item:hover {
        border-color: var(--primary);
        box-shadow: 0 0 0 3px rgba(0, 94, 162, 0.1);
    }

.info-icon {
    width: 56px;
    height: 56px;
    background-color: var(--ctc-navy);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    margin-bottom: 1rem;
}

    .info-icon i {
        font-size: 1.5rem;
    }

.info-content h3 {
    font-size: 1.375rem;
    font-weight: 700;
    margin: 0 0 0.375rem 0;
    color: var(--ctc-navy);
}

.info-content p {
    margin: 0;
    color: var(--gray-600);
    line-height: 1.5;
    font-size: 0.875rem;
}

/* ============================================
   FEATURE CARDS - How It Works
   ============================================ */

.feature-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2rem;
}

.feature-card {
    background-color: var(--white);
    border-radius: 8px;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 2px solid var(--gray-200);
    transition: all 0.2s ease;
}

    .feature-card:hover {
        border-color: var(--ctc-gold);
        box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.1);
    }

.feature-card-icon {
    width: 64px;
    height: 64px;
    background-color: var(--ctc-navy);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

    .feature-card-icon i {
        font-size: 1.75rem;
        color: var(--white);
    }

.feature-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 1rem 0;
    color: var(--gray-900);
}

.feature-card > p {
    color: var(--gray-600);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
    font-size: 0.9375rem;
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
    width: 100%;
    text-align: left;
}

    .feature-list li {
        padding: 0.5rem 0;
        padding-left: 1.75rem;
        position: relative;
        color: var(--gray-700);
        line-height: 1.5;
        font-size: 0.9375rem;
    }

        .feature-list li::before {
            content: "\2713";
            position: absolute;
            left: 0;
            color: var(--success);
            font-weight: 700;
        }

.feature-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    margin-top: auto;
    font-size: 0.9375rem;
    padding: 0.5rem 1rem;
    border-radius: 6px;
    transition: all 0.2s ease;
}

    .feature-link:hover {
        color: var(--primary-dark);
        background-color: var(--gray-100);
        text-decoration: none;
    }

/* ============================================
   QUICK LINKS - Left Aligned with Hover
   ============================================ */

.quick-links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.quick-link-section {
    text-align: left;
}

    .quick-link-section h4 {
        font-size: 0.9375rem;
        font-weight: 700;
        margin: 0 0 0.875rem 0;
        color: var(--ctc-navy);
        padding-bottom: 0.5rem;
        border-bottom: 2px solid var(--ctc-navy);
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

.quick-links-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .quick-links-list li {
        margin-bottom: 0.25rem;
    }

    .quick-links-list a {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        color: var(--primary);
        text-decoration: none;
        padding: 0.5rem 0.625rem;
        font-size: 0.9375rem;
        border-radius: 4px;
        margin-left: -0.625rem;
        transition: all 0.15s ease;
    }

        .quick-links-list a:hover {
            background-color: var(--gray-100);
            color: var(--primary-dark);
        }

    .quick-links-list i {
        font-size: 1rem;
        color: var(--primary);
        flex-shrink: 0;
        width: 20px;
        text-align: center;
    }

.quick-links-subhead {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--gray-700);
    padding: 0.5rem 0.75rem;
    margin-top: 0.5rem;
    font-size: 0.9375rem;
}

/* ============================================
   RESPONSIVE - Mobile First
   ============================================ */

@media (max-width: 1024px) {
    .info-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .feature-cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-flow {
        grid-template-columns: 1fr;
    }

    .process-arrow {
        padding-top: 0;
        transform: rotate(90deg);
    }

    .quick-links-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .welcome-title {
        font-size: 1.375rem;
    }

    .info-grid {
        grid-template-columns: 1fr;
    }

    .feature-cards-grid {
        grid-template-columns: 1fr;
    }

    .process-flow {
        grid-template-columns: 1fr;
    }

    .quick-links-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .btn-cta {
        font-size: 1rem;
        padding: 0.875rem 1.5rem;
    }

    .section-title {
        font-size: 1.5rem;
    }

    .card.shadow .card-body {
        padding: 1.25rem;
    }
}

/* ============================================
   ACCESSIBILITY - R4 Compliant
   ============================================ */

.feature-link:focus,
.quick-links-list a:focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .card.shadow,
    .feature-card,
    .process-step-body,
    .info-item {
        border: 2px solid var(--gray-900);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        transform: none !important;
    }
}

/* ============================================
   ACCORDION - Bootstrap 5 Overrides
   ============================================ */

.accordion-item {
    border: 1px solid var(--gray-300);
    margin-bottom: 0;
}

    .accordion-item:first-of-type {
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
    }

    .accordion-item:last-of-type {
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
    }

.accordion-button {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gray-900);
    background-color: var(--white);
    padding: 1rem 1.25rem;
}

    .accordion-button:not(.collapsed) {
        color: var(--ctc-navy);
        background-color: var(--gray-100);
        box-shadow: inset 0 -1px 0 var(--gray-300);
    }

    /* Fix purple focus state - use CTC brand colors */
    .accordion-button:focus {
        border-color: var(--primary);
        box-shadow: 0 0 0 0.25rem rgba(0, 94, 162, 0.25);
        z-index: 3;
    }

    .accordion-button::after {
        /* Custom chevron color - CTC navy (Bootstrap rotates via transform) */
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003366'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    }

.accordion-body {
    padding: 1.25rem;
    color: var(--gray-700);
    line-height: 1.7;
    font-size: 1rem;
}

/* Card body text - consolidated */
.card.shadow .card-body p,
.card.shadow .card-body li,
.card.shadow .card-body address {
    font-size: 1rem;
    line-height: 1.6;
}

/* Accordion responsive */
@media (max-width: 768px) {
    .accordion-button {
        padding: 0.875rem 1rem;
        font-size: 0.9375rem;
    }

    .accordion-body {
        padding: 1rem;
        font-size: 0.9375rem;
    }
}

/* ============================================
   CARD CONTENT ALIGNMENT
   ============================================ */

/* Lead text should be left-aligned and full width inside cards */
.card.shadow .card-body .lead-text {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
    max-width: none;
}

/* Card body additional styling */
.card.shadow .card-body strong {
    font-weight: 600;
    color: var(--gray-900);
}

.card.shadow .card-body .text-muted {
    font-size: 0.9375rem;
}