/* Estilos Generales para Páginas de Servicios */
html, body { 
    overflow-y: auto !important; 
    height: auto !important; 
    position: relative; 
    cursor: none; 
}

.service-page-content { 
    padding: 100px 5vw; 
    max-width: 1200px; 
    margin: 0 auto; 
}

.back-link { 
    display: inline-flex; 
    align-items: center; 
    gap: 10px; 
    margin-bottom: 40px; 
    text-decoration: none; 
    font-weight: 700; 
    text-transform: uppercase; 
    font-size: 1.2rem; 
    transition: transform 0.3s; 
}

.back-link:hover { 
    transform: translateX(-10px); 
}

.service-hero { 
    margin-bottom: 80px; 
}

.service-title { 
    font-size: clamp(3rem, 8vw, 6rem); 
    margin: 0 0 20px 0; 
    text-transform: uppercase; 
    font-family: 'Disket Mono', monospace; 
    line-height: 0.9; 
    /* El color se hereda del body o se define por tema abajo */
}

.service-subtitle { 
    font-size: 1.5rem; 
    margin-bottom: 40px; 
    font-family: 'Cutive Mono', monospace; 
    max-width: 800px; 
}

.hero-image { 
    width: 100%; 
    height: 50vh; 
    object-fit: cover; 
    border-radius: 20px; 
    /*margin-bottom: 60px; 
    filter: grayscale(100%); 
    transition: filter 0.5s;*/ 
}

.hero-image:hover { 
    filter: grayscale(0%); 
}

.section-title { 
    font-size: 2.5rem; 
    margin-top: 80px; 
    margin-bottom: 40px; 
    text-transform: uppercase; 
    border-bottom: 2px solid currentColor; 
    padding-bottom: 15px; 
    font-family: 'Disket Mono', monospace; 
}

.details-text { 
    font-size: 1.1rem; 
    line-height: 1.6; 
    margin-bottom: 40px; 
    text-align: justify; 
}

.grid-2 { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 40px; 
}

.card { 
    padding: 30px; 
    border: 1px solid currentColor; 
    transition: transform 0.3s; 
}

.card:hover { 
    transform: translateY(-10px); 
}

.card h3 { 
    font-family: 'Disket Mono', monospace; 
    margin-top: 0; 
    font-size: 1.5rem; 
    text-transform: uppercase; 
}

/* Iframe del formulario */
.contact-frame {
    width: 100%;
    border: none;
    height: 600px; /* Altura inicial */
    margin-top: 60px;
    overflow: hidden;
}

/* Theme Overrides */
body.white-theme { background-color: #ffffff; color: #000; }
body.white-theme .back-link { color: #000; }
body.white-theme .service-title { color: #000; }

body.gray-theme { background-color: #cccccc; color: #000; }
body.gray-theme .back-link { color: #000; }
body.gray-theme .service-title { color: #000; }

body.dark-theme { background-color: #1a1a1a; color: #fff; }
body.dark-theme .back-link { color: #fff; }
body.dark-theme .service-title { color: #fff; }

@media (max-width: 768px) {
    .grid-2 { grid-template-columns: 1fr; }
    .service-page-content { padding: 40px 20px; }
    .hero-image { height: 30vh; }
}

.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: rgba(0,0,0,0.8);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s, transform 0.3s;
    z-index: 100;
}

.back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
}

.back-to-top:hover {
    transform: translateY(-5px);
}

body.white-theme .back-to-top, body.gray-theme .back-to-top {
    background: rgba(0,0,0,0.8);
    color: #fff;
}

body.dark-theme .back-to-top {
    background: rgba(255,255,255,0.2);
    color: #fff;
}
