/* Theme and Contrast Fixes */

/* Base Text Contrast */
body {
    color: var(--color-text);
    background-color: var(--color-background);
}

/* Form Input Styles */
.form-input,
.form-control,
.form-textarea,
select {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text);
    background-color: var(--color-surface);
    background-clip: padding-box;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-base);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-input:focus,
.form-control:focus,
.form-textarea:focus,
select:focus {
    border-color: var(--color-primary);
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.form-group {
    margin-bottom: 1.25rem;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.form-label i {
    color: var(--color-primary);
}

/* Form validation states */
.form-input:invalid,
.form-control:invalid,
.form-textarea:invalid {
    border-color: var(--color-error);
}

.form-input:valid,
.form-control:valid,
.form-textarea:valid {
    border-color: var(--color-success);
}

/* Select dropdown styling */
select.form-control {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    padding-right: 2.5rem;
}

/* Dark theme select dropdown */
[data-theme="dark"] select.form-control,
[data-color-scheme="dark"] select.form-control {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23adb5bd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}

/* Form validation icons */
.form-validation-icon {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    display: none;
}

.form-input:valid + .form-validation-icon {
    display: block;
    color: var(--color-success);
}

/* Form row for side-by-side inputs */
.form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-left: -0.5rem;
    margin-right: -0.5rem;
}

.form-row > .form-group {
    flex: 1 0 0%;
    min-width: 0;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

/* Button styles */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    border-radius: var(--radius-base);
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, 
                border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.btn--primary {
    color: #fff;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn--primary:hover {
    background-color: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.btn--full-width {
    display: flex;
    width: 100%;
}

.btn--xl {
    padding: 1rem 1.5rem;
    font-size: 1.1rem;
}

.btn i {
    margin-right: 0.5rem;
}

/* Form group with icon */
.form-group {
    position: relative;
}

/* Adjust padding for inputs with icons */
.form-group i + input,
.form-group i + select,
.form-group i + textarea {
    padding-left: 2.5rem;
}

/* Position icons inside inputs */
.form-group i:first-child {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    color: var(--color-text-secondary);
}

/* Textarea specific styles */
.form-textarea {
    min-height: 120px;
    resize: vertical;
}

/* Focus states */
.form-input:focus,
.form-control:focus,
.form-textarea:focus,
select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

/* Disabled state */
.form-input:disabled,
.form-control:disabled,
.form-textarea:disabled,
select:disabled {
    background-color: var(--color-secondary);
    opacity: 0.65;
}

/* Readonly state */
.form-input[readonly],
.form-control[readonly],
.form-textarea[readonly] {
    background-color: var(--color-secondary);
    opacity: 1;
}

/* Default Theme (Light) */
:root {
    --color-text: #212529;
    --color-text-secondary: #495057;
    --color-wtext: #f8f9fa;
    --color-border: #dee2e6;
    --color-card-border: #e9ecef;
    --color-surface: #ffffff;
    --color-background: #f8f9fa;
    --color-primary: #0d6efd;
    --color-primary-hover: #0b5ed7;
}

/* Dark Theme */
[data-theme="dark"],
[data-color-scheme="dark"] {
    --color-text: #f8f9fa;
    --color-wtext: #f8f9fa;
    --color-text-secondary: #dee2e6;
    --color-border: #495057;
    --color-card-border: #3a4047;
    --color-surface: #2b3035;
    --color-background: #1a1d20;
    --color-primary: #4dabf7;
    --color-primary-hover: #74c0fc;
}

/* System Dark Theme */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]):not([data-color-scheme="light"]) {
        --color-text: #f8f9fa;
        --color-text-secondary: #dee2e6;
        --color-border: #495057;
        --color-card-border: #3a4047;
        --color-surface: #2b3035;
        --color-background: #1a1d20;
        --color-primary: #4dabf7;
        --color-primary-hover: #74c0fc;
    }
}

/* Light Theme Override */
[data-theme="light"],
[data-color-scheme="light"] {
    --color-text: #212529;
    --color-text-secondary: #495057;
    --color-border: #dee2e6;
    --color-card-border: #e9ecef;
    --color-surface: #ffffff;
    --color-background: #f8f9fa;
    --color-primary: #0d6efd;
    --color-primary-hover: #0b5ed7;
}

/* Text Contrast */
body {
    color: var(--color-text);
    background-color: var(--color-background);
}

/* Hero Title Styling - High Contrast */
.hero-title {
    color: #000000; /* Pure black for maximum contrast */
    margin-bottom: 1rem;
    line-height: 1.2;
    text-shadow: 0 1px 3px rgba(255, 255, 255, 0.8), 
                 0 0 0 #000, 
                 1px 1px 0 #fff, 
                 -1px -1px 0 #fff;
    font-weight: 700;
    letter-spacing: -0.5px;
}

/* Light theme specific - Force high contrast */
[data-theme="light"] .hero-title,
[data-color-scheme="light"] .hero-title,
:root:not([data-theme="dark"]):not([data-color-scheme="dark"]) .hero-title {
    color: #000000 !important;
    text-shadow: 0 1px 3px rgba(255, 255, 255, 0.8), 
                 0 0 0 #000, 
                 1px 1px 0 #fff, 
                 -1px -1px 0 #fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.gradient-text {
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
    text-shadow: none;
    position: relative;
    z-index: 1;
}

/* Hero section styles */
.hero {
    position: relative;
}

.hero .container {
    position: relative;
}

/* Dark theme overrides */
[data-theme="dark"] .hero-title,
[data-color-scheme="dark"] .hero-title,
:root:not([data-theme="light"]):not([data-color-scheme="light"]) .hero-title {
    color: #ffffff;
}

/* System dark mode preference */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]):not([data-color-scheme="light"]) .hero-title {
        color: #ffffff;
    }
}

/* Footer Styles */
.footer {
    background-color: var(--color-surface);
    color: var(--color-text);
    padding: 4rem 0 2rem;
    border-top: 1px solid var(--color-border);
}

.footer-content {
    display: grid;
    grid-template-columns: 1.5fr 2fr;
    gap: 3rem;
    margin-bottom: 3rem;
}

.footer-brand h3 {
    color: var(--color-text);
    margin: 1rem 0;
    font-size: 1.5rem;
}

.footer-brand p {
    color: var(--color-text-secondary);
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.footer-section h4 {
    color: var(--color-text);
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.footer-section ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-section li {
    margin-bottom: 0.75rem;
}

.footer-section a {
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color 0.2s;
}

.footer-section a:hover {
    color: var(--color-primary);
}

.footer-bottom {
    border-top: 1px solid var(--color-border);
    padding-top: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.footer-bottom p {
    color: var(--color-text-secondary);
    margin: 0;
    font-size: 0.9rem;
}

.footer-badges {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: var(--color-secondary);
    color: var(--color-text);
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    font-size: 0.8rem;
    font-weight: 500;
}

/* Light theme specific overrides */
[data-theme="light"] .footer,
[data-color-scheme="light"] .footer {
    background-color: #f8f9fa;
}

/* Responsive footer styles */
@media (max-width: 768px) {
  .footer-content {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 2rem;
  }
  .footer-links {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  .footer-section h4 {
    font-size: 1rem;
    margin-bottom: 1rem;
  }
  .footer-section li {
    margin-bottom: 0.5rem;
  }
  .footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
    padding-top: 1.5rem;
  }
  .footer-badges {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
  .footer {
    padding: 2rem 0 1rem;
  }
  .footer-section a {
    padding: 0.75rem 0.5rem;
    font-size: 1rem;
    min-width: 44px;
    min-height: 44px;
    display: inline-block;
  }
  .badge {
    font-size: 0.95rem;
    min-width: 44px;
    min-height: 44px;
    justify-content: center;
  }
}

[data-theme="light"] .footer-section a,
[data-color-scheme="light"] .footer-section a {
    color: #495057;
}

[data-theme="light"] .footer-section a:hover,
[data-color-scheme="light"] .footer-section a:hover {
    color: var(--color-primary);
}

[data-theme="light"] .footer-bottom,
[data-color-scheme="light"] .footer-bottom {
    border-top-color: #e9ecef;
}

[data-theme="light"] .badge,
[data-color-scheme="light"] .badge {
    background-color: #e9ecef;
    color: #212529;
}

/* Links */
a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.2s;
}

a:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.2s;
    cursor: pointer;
}

.btn--primary {
    background-color: var(--color-primary);
    color: white;
    border: 1px solid var(--color-primary);
}

.btn--primary:hover {
    background-color: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
}

.btn--outline {
    background-color: transparent;
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
}

.btn--outline:hover {
    background-color: rgba(13, 110, 253, 0.1);
}

/* Cards */
.service-card,
.team-member,
.project-card,
.tech-category {
    background-color: var(--color-surface);
    border: 1px solid var(--color-card-border);
    border-radius: 0.5rem;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

/* Card hover states */
.service-card:hover,
.team-member:hover,
.project-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transform: translateY(-5px);
}

/* Form Elements */
.form-control,
textarea {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    padding: 0.75rem 1rem;
    border-radius: 0.375rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.form-control:focus,
textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
    outline: none;
}

/* Typography */
.section-title {
    color: var(--color-text);
    margin-bottom: 1rem;
}

.section-subtitle,
.service-meta,
.member-role,
.tech-item {
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.stat-label {
    color: var(--color-wtext);
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* Code Blocks */
pre, code {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.25rem;
    padding: 0.5rem;
    overflow-x: auto;
}

/* Form Labels */
.form-label {
    color: var(--color-text);
    margin-bottom: 0.5rem;
    display: block;
    font-weight: 500;
}

/* Disabled Buttons */
.btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* Placeholders */
::placeholder {
    color: #6c757d;
    opacity: 1;
}

/* Dark Theme Placeholder */
[data-theme="dark"] ::placeholder,
[data-color-scheme="dark"] ::placeholder {
    color: #adb5bd;
}

@media (prefers-color-scheme: dark) {
    :not([data-theme="light"]):not([data-color-scheme="light"]) ::placeholder {
        color: #adb5bd;
    }
}
