/* Compact public-page polish for the unified Virtual Fairs screens. */
:root {
    --vf-page-bg: #f8fafc;
    --vf-panel: #ffffff;
    --vf-ink: #1a1a2e;
    --vf-muted: #667085;
    --vf-line: #e7eaf0;
    --vf-primary: #4F46E5;
    --vf-primary-dark: #3730A3;
    --vf-primary-soft: #EEF2FF;
}

.public-page {
    background: var(--vf-page-bg);
}

.public-page .navbar-modern {
    padding: 0.65rem 0;
}

.public-page .navbar-logo {
    width: 42px;
    height: 42px;
}

.public-page .navbar-brand-text {
    font-size: 1.35rem;
}

.public-page .footer-modern {
    padding-top: 3.25rem;
}

.public-page .footer-content .row.g-4 {
    --bs-gutter-y: 1.25rem;
}

.public-page .section-header {
    margin-bottom: 2rem;
}

.public-page .section-title,
.public-page .section-header h2 {
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    line-height: 1.12;
}

.public-page .section-description,
.public-page .about-hero-subtitle,
.public-page .contact-hero-subtitle {
    color: var(--vf-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.public-page .about-hero-section,
.public-page .contact-hero-section {
    padding: 72px 0 42px;
    background: linear-gradient(135deg, #fff 0%, #EEF2FF 58%, #f8fafc 100%);
}

.public-page .about-hero-title,
.public-page .contact-hero-title {
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: 0;
}

.public-page .about-stats-grid {
    margin-top: 2rem;
    gap: 1rem;
}

.public-page .stat-card,
.public-page .value-card,
.public-page .contact-info-card,
.public-page .contact-form-card,
.public-page .filter-sidebar,
.public-page .event-card,
.public-page .cta-card {
    border: 1px solid var(--vf-line);
    box-shadow: 0 10px 28px rgba(17, 24, 39, 0.06);
}

.public-page .stat-card {
    padding: 1.35rem 1rem;
}

.public-page .stat-card h3 {
    font-size: clamp(2rem, 4vw, 2.7rem);
}

.public-page .mission-section,
.public-page .gallery-section,
.public-page .contact-section,
.public-page .cta-section {
    padding: 52px 0;
}

.public-page .value-card {
    padding: 1.6rem;
    border-left: 4px solid var(--vf-primary);
}

.public-page .value-icon {
    width: 54px;
    height: 54px;
    margin-bottom: 1rem;
}

.public-page .value-card h3 {
    font-size: 1.1rem;
}

.public-page .value-card p {
    font-size: 0.94rem;
    line-height: 1.6;
}

.public-page .bg-gray.margin_60_35 {
    padding: 30px 0 24px;
}

.public-page .container.margin_60_35 {
    padding-top: 34px;
    padding-bottom: 42px;
}

.public-page .page-header-icon {
    width: 46px;
    height: 46px;
}

.public-page .page-header-title {
    font-size: clamp(1.45rem, 3vw, 2rem);
}

.public-page .page-header-subtitle {
    font-size: 0.95rem;
}

.public-page .filter-sidebar-header,
.public-page .filter-section {
    padding: 0.85rem 1rem;
}

.public-page .event-card-image {
    height: 164px;
}

.public-page .event-card-content {
    padding: 1rem;
}

.public-page .event-card-title {
    font-size: 1rem;
    line-height: 1.35;
}

.public-page .event-card-meta {
    gap: 0.55rem;
    font-size: 0.86rem;
}

.public-page .event-view-btn,
.public-page .filter-apply-btn,
.public-page .cta-button,
.public-page .btn-submit {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.public-page .contact-info-card {
    padding: 1.25rem;
}

.public-page .info-icon {
    width: 52px;
    height: 52px;
    margin-bottom: 0.85rem;
}

.public-page .contact-form-card {
    padding: 1.6rem;
}

.public-page .form-header {
    margin-bottom: 1rem;
}

.public-page .form-group {
    margin-bottom: 0.75rem;
}

.auth-page,
body:has(.auth-split-container),
body:has(.auth-container) {
    background: #fff;
}

.auth-split-container,
.auth-container {
    min-height: 100vh;
}

.auth-image-section,
.auth-left {
    background: linear-gradient(135deg, #4F46E5 0%, #3730A3 52%, #6366F1 100%) !important;
}

.auth-image-content,
.auth-content {
    max-width: 560px;
    padding: 2rem 1.5rem;
}

.auth-image-content h1,
.auth-content h1 {
    font-size: clamp(2rem, 4vw, 2.7rem);
    line-height: 1.13;
    margin-bottom: 1rem;
}

.auth-image-content p,
.auth-content p {
    font-size: 1rem;
    line-height: 1.65;
}

.auth-form-section,
.auth-right {
    padding: 2rem !important;
}

.auth-form-wrapper,
.auth-form {
    max-width: 430px;
}

.auth-logo {
    margin-bottom: 0.9rem !important;
}

.auth-form-header {
    margin-bottom: 1.35rem !important;
}

.auth-form-header h2 {
    font-size: 1.65rem !important;
}

.auth-form-header p {
    font-size: 0.92rem;
}

.auth-split-container .form-group,
.auth-container .form-group {
    margin-bottom: 0.9rem;
}

.auth-split-container .form-control,
.auth-container .form-control {
    min-height: 44px;
    padding: 0.72rem 0.9rem;
}

.auth-split-container .form-btn,
.auth-container .form-btn {
    min-height: 46px;
    padding: 0.75rem 1rem;
}

.user-features,
.customer-features,
.vendor-features,
.auth-features {
    gap: 0.8rem !important;
    margin-top: 1.8rem !important;
}

.user-feature,
.customer-feature,
.vendor-feature,
.auth-feature {
    padding: 0.95rem !important;
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
}

.auth-svg-icon {
    width: 30px;
    height: 30px;
    object-fit: contain;
    display: inline-block;
    margin-bottom: 0.45rem;
}

.registration-icon {
    width: 52px;
    min-width: 52px !important;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--vf-primary-soft);
    border: 1px solid rgba(79, 70, 229, 0.18);
}

.registration-icon .auth-svg-icon {
    margin-bottom: 0;
    width: 30px;
    height: 30px;
}

.registration-card {
    padding: 1.15rem !important;
    gap: 1rem !important;
    background: #fff !important;
}

.registration-content h3 {
    font-size: 1rem !important;
}

.registration-content p {
    font-size: 0.86rem !important;
    line-height: 1.45;
}

.step-indicator {
    margin-bottom: 1.25rem !important;
}

@media (max-width: 991px) {
    .public-page .about-hero-section,
    .public-page .contact-hero-section {
        padding: 52px 0 34px;
    }

    .public-page .about-stats-grid {
        grid-template-columns: 1fr;
    }

    .auth-split-container,
    .auth-container {
        min-height: auto;
    }

    .auth-image-section,
    .auth-left {
        min-height: 300px !important;
    }
}
