/* Variables CSS personalizadas */
:root {
    --color-primary: #1ED9A7;
    --color-secondary: #7c3aed;
    --color-secondary-dark: #5b21b6;
    --color-text-primary: #232b3b;
    --color-text-secondary: #7a7a7a;
}

/* Estilos para las barras de progreso */
.progress-mobile,
.progress-desktop { 
    display: none;
}

#progressContainer-mobile #progressBar-mobile,
#progressContainer-desktop #progressBar-desktop {
    background-color: var(--color-primary);
    transition: width 0.3s ease-in-out;
}

/* Media queries para la visibilidad de las barras */
@media (max-width: 1279px) {
    .progress-mobile { display: block !important; }
    .progress-desktop { display: none !important; }
}

@media (min-width: 1280px) {
    .progress-desktop { display: block !important; }
    .progress-mobile { display: none !important; }
}

/* Transiciones y utilidades */
.transition-all {
    transition: all 0.3s ease;
}

/* Estilos para botones personalizados */
.custom-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.9rem 2.2rem;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    letter-spacing: 1px;
    transition: all 0.2s ease;
}

.custom-btn-primary {
    background: var(--color-secondary);
    color: white;
    box-shadow: 0 2px 8px 0 rgba(124,58,237,0.08);
}

.custom-btn-primary:hover {
    background: var(--color-secondary-dark);
    transform: translateY(-2px) scale(1.03);
}

.custom-btn i,
.custom-btn svg {
    margin-right: 0.7em;
    font-size: 1.2em;
    vertical-align: middle;
}

/* Estilos para fondos geométricos */
.geometric-bg {
    position: relative;
    overflow: hidden;
    background: #fff;
}

.geometric-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url('data:image/svg+xml;utf8,<svg width="100%25" height="100%25" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="%23e0e0e0" stroke-width="2"><polygon points="40,20 60,20 50,40"/><rect x="80" y="30" width="20" height="20" rx="5"/><circle cx="150" cy="50" r="10"/><polygon points="200,40 220,40 210,60"/><rect x="250" y="30" width="20" height="20" rx="5"/><circle cx="320" cy="50" r="10"/></g></svg>');
    opacity: 0.12;
    background-repeat: repeat;
}

/* Utilidades de texto */
.text-mega {
    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--color-text-primary);
}

.text-title {
    font-size: clamp(1.5rem, 4vw, 2rem);
    font-weight: 500;
    color: var(--color-text-primary);
}

.text-body {
    color: var(--color-text-secondary);
    font-size: 1.1rem;
    line-height: 1.6;
}

/* Estilos para la página de error 404 */
.main-error-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 100vh;
    text-align: center;
    padding: 2rem;
}

.main-error-wrapper-img {
    max-width: 300px;
    margin-bottom: 2rem;
}

.main-error-wrapper-title {
    font-size: 4rem;
    font-weight: 700;
    color: #1ED9A7;
    margin-bottom: 1rem;
}

.main-error-wrapper-subtitle {
    font-size: 1.5rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 1rem;
}

.main-error-wrapper-text {
    color: #666;
    margin-bottom: 2rem;
    max-width: 500px;
}

.ti-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 1.5rem;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.ti-btn-primary {
    background-color: #1ED9A7;
    color: white;
    border: none;
}

.ti-btn-primary:hover {
    background-color: #19c090;
    transform: translateY(-2px);
}

.ti-btn i {
    margin-right: 0.5rem;
}

.error-big {
    font-size: 8rem;
    font-weight: 700;
    color: #232b3b;
    margin-bottom: 1rem;
    letter-spacing: 2px;
}

.error-message {
    font-size: 1.5rem;
    font-weight: 500;
    color: #232b3b;
    margin-bottom: 0.5rem;
}

.error-desc {
    color: #7a7a7a;
    margin-bottom: 2rem;
    font-size: 1.1rem;
}

.error-btn {
    display: inline-block;
    background: #7c3aed;
    color: #fff;
    font-weight: 600;
    padding: 0.9rem 2.2rem;
    border-radius: 0.5rem;
    font-size: 1rem;
    text-decoration: none;
    box-shadow: 0 2px 8px 0 rgba(124,58,237,0.08);
    transition: background 0.2s, transform 0.2s;
    margin-top: 1.5rem;
    letter-spacing: 1px;
}
.error-btn:hover {
    background: #5b21b6;
    transform: translateY(-2px) scale(1.03);
}
.arrow-left {
    font-size: 1.2em;
    margin-right: 0.7em;
    vertical-align: middle;
}