/* Utility Classes - Scalable, token-based utilities for common patterns */
/* No hardcoded values - all use design tokens */

/* ==================== Spacing Utilities ==================== */
.flex-row {
    display: flex;
    gap: var(--space-4);
    align-items: center;
}

.flex-row-sm {
    display: flex;
    gap: var(--space-3);
    align-items: center;
}

.flex-row-lg {
    display: flex;
    gap: var(--space-6);
    align-items: center;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.flex-1 {
    flex: 1;
}

.mt-sm {
    margin-top: var(--space-2);
}

.mt-md {
    margin-top: var(--space-4);
}

.mt-lg {
    margin-top: var(--space-6);
}

.mb-sm {
    margin-bottom: var(--space-2);
}

.mb-md {
    margin-bottom: var(--space-4);
}

.mb-lg {
    margin-bottom: var(--space-6);
}

.text-center {
    text-align: center;
}

.max-width-content {
    max-width: min(800px, 100%);
    margin-inline: auto;
}

/* ==================== Background Utilities ==================== */
.bg-muted {
    background-color: var(--surface-muted, #f7f7f8);
}

.bg-surface {
    background-color: var(--surface, #ffffff);
}

.section-padding {
    padding: var(--space-section-y) 0;
}

/* ==================== Typography Utilities ==================== */
.text-brand {
    color: var(--brand, #F55722);
}

.text-secondary {
    color: var(--text-secondary, #333);
}

.text-muted {
    color: var(--muted, #9aa0a6);
}

.text-white {
    color: var(--brand-contrast, #ffffff);
}

.opacity-80 {
    opacity: 0.8;
}

.font-size-lg {
    font-size: clamp(var(--fs-400), 1.2vw, 1.125rem);
}

.font-size-xl {
    font-size: clamp(1.25rem, 1.5vw, 1.5rem);
}

.font-weight-semibold {
    font-weight: 600;
}

.font-weight-bold {
    font-weight: 700;
}

/* ==================== Social Links ==================== */
.social-links-container {
    display: flex;
    gap: var(--space-4);
    margin-top: var(--space-3);
}

.social-link {
    font-size: clamp(1.25rem, 1.5vw, 1.5rem);
    color: var(--brand, #F55722);
    text-decoration: none;
    transition: color var(--motion-duration-fast, 0.2s) ease, transform var(--motion-duration-fast, 0.2s) ease;
}

.social-link:hover {
    color: var(--brand-hover, #FF7A45);
    transform: translateY(-2px);
}

.social-link i {
    display: inline-block;
}

/* ==================== Card Utilities ==================== */
.card-surface {
    background-color: var(--surface, #ffffff);
    border-radius: var(--radius-md, 14px);
    padding: var(--space-6);
    box-shadow: var(--elev-1, 0 6px 24px rgba(0, 0, 0, 0.08));
}

.card-icon {
    font-size: clamp(2rem, 2.5vw, 2.5rem);
    color: var(--brand, #F55722);
    margin-bottom: var(--space-4);
}

.card-title {
    margin: 0 0 var(--space-5) 0;
    text-align: center;
    font-weight: 600;
    color: var(--text-primary, #000);
    font-size: clamp(1.25rem, 1.5vw, 1.5rem);
}

.card-description {
    text-align: center;
    color: var(--text-secondary, #333);
    margin-bottom: var(--space-6);
}

/* ==================== Form Utilities ==================== */
.form-header-icon {
    font-size: clamp(1.5rem, 2vw, 1.75rem);
    color: var(--brand, #F55722);
    margin-bottom: var(--space-4);
}

.form-header-title {
    margin-bottom: var(--space-5);
    text-align: center;
    font-weight: 600;
    color: var(--text-primary, #000);
    font-size: clamp(1.25rem, 1.5vw, 1.5rem);
}

.form-header-description {
    text-align: center;
    color: var(--text-secondary, #333);
    margin-bottom: var(--space-6);
}

.form-note {
    font-size: clamp(0.875rem, 1vw, 0.9375rem);
    color: var(--text-secondary, #333);
    margin-bottom: var(--space-5);
}

.form-note i {
    color: var(--brand, #F55722);
    margin-right: var(--space-2);
}

/* ==================== Progress/Investment Utilities ==================== */
.progress-marker-25 {
    left: 25%;
}

.progress-marker-50 {
    left: 50%;
}

.progress-marker-75 {
    left: 75%;
}

.icon-brand {
    color: var(--brand, #F55722);
}

.icon-brand-lg {
    font-size: clamp(1.5rem, 2vw, 1.75rem);
    color: var(--brand, #F55722);
}

/* ==================== Display Utilities ==================== */
.hidden {
    display: none !important;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ==================== Button Utilities ==================== */
.btn-inline-flex {
    margin: 0 auto;
    display: inline-flex;
    align-items: center;
}

.btn-icon {
    margin-right: var(--space-3);
}

/* ==================== Admin Panel Utilities ==================== */
.admin-panel {
    display: none;
}

.admin-panel.active {
    display: block;
}

.no-data-message {
    display: none;
    text-align: center;
    padding: var(--space-5);
}

.no-data-message.active {
    display: block;
}

/* ==================== Message/Alert Utilities ==================== */
.message-title {
    margin: 0 0 var(--space-2) 0;
    font-size: clamp(0.9375rem, 1vw, 1rem);
    font-weight: 600;
}

.message-text {
    margin: 0;
    font-size: clamp(0.875rem, 1vw, 0.9375rem);
    line-height: var(--lh-normal, 1.6);
}

.success-icon {
    font-size: clamp(2.5rem, 3vw, 3rem);
    color: #4CAF50;
    margin-bottom: var(--space-5);
    display: block;
}

/* ==================== Responsive Utilities ==================== */
@media (max-width: 768px) {
    .flex-row,
    .flex-row-sm,
    .flex-row-lg {
        flex-direction: column;
        align-items: stretch;
    }
    
    .social-links-container {
        justify-content: center;
        flex-wrap: wrap;
    }
}

