/* Estilo del modal */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
}

.modal.hidden {
    display: none;
}

.modal-content {
    background: white;
    padding: 20px;
    border-radius: 8px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    max-width: 500px;
    width: 90%;
    margin-bottom: 10px; /* Espacio menor antes de la frase final */
}

.logo-modal {
    width: 100px;
    margin-bottom: 10px; /* Reducido para disminuir el espacio */
}

.modal h2 {
    font-family: 'Poppins', sans-serif;
    color: #0056b3;
    font-size: 24px;
    margin-bottom: 8px; /* Reducido para ajustar espacio */
}

.modal p {
    font-family: 'Roboto', sans-serif;
    color: #7e8186;
    font-size: 16px;
    margin-bottom: 15px; /* Reducido para ajustar espacio */
    line-height: 1.5;
}

.button-download {
    background-color: #0facee;
    color: white;
    padding: 10px 20px;
    font-family: 'Roboto Slab', sans-serif;
    border: none;
    border-radius: 4px;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-bottom: 15px; /* Ajustado para mantener proporción */
}


.button-download:hover {
    background-color: #0056b3;
}

/* Botón de cerrar, centrado y pequeño */
.close-modal {
    background-color: #0facee;
    color: white;
    padding: 0;
    font-family: 'Roboto Slab', sans-serif;
    border: none;
    border-radius: 50%;
    font-size: 18px;
    cursor: pointer;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px auto 0; /* Centrado horizontal y espacio superior */
    transition: background-color 0.3s ease;
}

.close-modal:hover {
    background-color: #0056b3;
}

/* Línea divisora verde */
.divider {
    border: 0;
    border-top: 2px solid #0facee;
    margin: 20px 0;
}


/* General Styles */
body, button, input, select, textarea {
    font: 14px/24px "Roboto", sans-serif;
    color: #7e8186;
    background-color: #fff;
    margin: 0;
    padding: 0;
}

body {
    background-color: #f5f5f5;
}

/* Estilo Base de Botones */
button {
    background-color: #0facee;
    color: #fff;
    padding: 15px 30px;
    font-family: "Roboto Slab", sans-serif;
    border: none;
    cursor: pointer;
    width: 100%;
    margin-top: 20px;
    border-radius: 4px;
    display: block;
    transition: background-color 0.238s ease;
}

/* Hover y Focus */
button:hover,
button:focus {
    background-color: #0056b3;
    outline: none;
}

/* Contenedor General */
.container {
    max-width: 100%;
    margin: 20px auto;
    padding: 10px;
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
}

.disabled {
    pointer-events: none;
    opacity: 0.5;
}

/* Header Styles */
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 10px;
    border-bottom: 2px solid #0facee;
    margin-bottom: 15px;
    background-color: ghostwhite;
}

/* Header Central */
.header-center {
    flex: 2;
    text-align: center;
    margin: 0 10px;
}

/* Header Izquierda y Derecha */
.header-left, .header-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

.header-right {
    align-items: flex-end;
}

/* Título del Header */
.header-center h1 {
    font-family: 'Poppins', sans-serif;
    font-size: 30px;
    font-weight: 800;
    color: #0056b3;
    letter-spacing: 0.7px;
    margin: 5px 0 10px;
    animation: zoomIn 0.8s ease-out;
    text-transform: uppercase;
    line-height: 30px;
}

/* Subtítulo del Header */
.header-center h4 {
    font-family: 'Roboto', sans-serif;
    font-size: 12px;
    color: #7e8186;
    margin-top: 10px;
    font-style: italic;
    opacity: 0.7;
}

/* Animación Zoom */
@keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale(0.8) rotate(-2deg);
    }
    50% {
        opacity: 0.5;
        transform: scale(1.05);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Icono WhatsApp, Calculos y Vademecum */ 

.whatsapp-button, .calc-button, .vademecum-button {
    background-color: #0facee;
    color: #fff;
    padding: 8px 12px;
    font-family: 'Roboto Slab', sans-serif;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 5px 0;
    width: 140px;
    height: 35px;
    transition: background-color 0.3s ease;
}

.whatsapp-button img {
    width: 18px;
    margin-right: 5px;
}

.whatsapp-button:hover {
    background-color: #25D366;
}

.calc-button:hover, .vademecum-button:hover {
    background-color: #0056b3;
}

.calc-button:active, .vademecum-button:active,
.calc-button:focus, .vademecum-button:focus {
    background-color: #0facee; /* Restablece el color original al perder el foco */
    outline: none; /* Elimina el borde de enfoque */
}


/* Ocultar Elementos */
.hidden {
    display: none;
}

/* Encabezado h1 */
h1 {
    font-family: "Latin Modern Roman", serif; /* Fallback a serif */
    color: #0056b3;
    font-size: 24px;
    line-height: 32px;
    margin: 10px 0;
    font-style: oblique;
    text-align: center;
}

/* Encabezado h2 */
h2 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    color: #fafbfd;
    font-size: 20px;
    line-height: 30px;
    text-align: center;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* Encabezado h3 */
h3 {
    font-family: "Futura", sans-serif; /* Fallback a sans-serif */
    color: aliceblue;
    font-size: 20px;
    line-height: 32px;
    padding: 10px;
    font-style: oblique;
    text-align: center;
    border-radius: 8px;
    background-color: #6dd4f7;
    margin-bottom: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Encabezado h4 */
h4 {
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    line-height: 1.6;
    color: aliceblue; /* Elimina el color duplicado */
    margin: 0;
    font-style: oblique;
    text-align: center;
    background-color: ghostwhite;
}

/* Título Inferior h5 */
h5 {
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 400;
    color: white;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

/* Título h6 con bordes redondeados */
h6 {
    font-family: "Futura", sans-serif;
    color: aliceblue;
    font-size: 20px;
    line-height: 32px;
    padding: 10px;
    font-style: oblique;
    text-align: center;
    background-color: #6dd4f7;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    margin: 0;
    box-sizing: border-box;
    width: calc(100% - 7px);
}

/* DATOS DE CLIENTE CODIGO Y CONTACTO */

.cliente-info {
    display: flex; /* Alinear en línea usando flexbox */
    margin-bottom: 1px; /* Espacio entre grupos de campos */
    gap: 15px; /* Espacio entre el label y el input */
    margin-left: 20px;
    justify-content: center;
    text-align: center;
}

.cliente-info label {
    font-family: "Montserrat", sans-serif;
    color: #0056b3;
    font-size: 14px; /* Resaltar con un tamaño adecuado */
    font-weight: bold;
    padding-top: 8px; /* Alinear verticalmente con el input */
    white-space: nowrap; /* Evitar que el texto del label se divida */
    margin: 0; /* Eliminar márgenes adicionales */
    line-height: 1.1; /* Centrado vertical del texto */
}

.cliente-info input {
    font-family: cursive, sans-serif;
    flex-grow: 1; /* Expandir el input según el espacio disponible */
    border: 1px solid #e1e1e1; /* Bordes sutiles */
    border-radius: 4px; /* Bordes suaves */
    font-size: 15px; /* Tamaño de fuente cómodo */
    max-width: calc(100% - 150px); /* Limitar el ancho del input */
    height: 30px; /* Alinear la altura con el label */
}


/* Estilo select de "Subtipo y Producto" */

.section[data-section="lente"] select {
    background-color: #e6f7ff; /* Color de fondo para resaltar */
    border: 2px solid #0facee; /* Bordes más destacados */
    padding: 6px;
    border-radius: 4px;
    font-size: 14px; /* Tamaño de fuente más grande */
    width: 100%; /* Asegura que el campo de selección ocupe todo el ancho disponible */
    margin-top: 6px; /* Espacio entre el label y el campo */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Sombra para resaltar */
    font-style: oblique;
    font-weight: bold;

}

 /* FOOTER LOGO GPERM */
.footer-logo {
    display: flex;
    justify-content: center; /* Centrar horizontalmente */
    align-items: center;     /* Centrar verticalmente si tiene más altura */
    margin-top: 20px;
    padding: 20px 0;
    background-color: #f5f5f5; /* Color de fondo claro */
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); /* Sombra superior */
}

.footer-logo img {
    max-width: 120px; /* Tamaño del logo más pequeño */
    height: auto;
    transition: transform 0.3s ease, opacity 0.3s ease; /* Transición suave */
    opacity: 0.8; /* Opacidad inicial */
}

.footer-logo img:hover {
    transform: scale(1.1); /* Aumentar ligeramente al pasar el cursor */
    opacity: 1; /* Restaurar opacidad al pasar el cursor */
}


/* Estilos Campos del Formulario */
.field-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px; /* Espacio reducido entre elementos */
}

.field-group.center {
    justify-content: center;
    text-align: center;
    margin: 18px 0; /* Margen más ajustado */
    gap: 8px; /* Espacio más compacto */
}

/* Ancho dinámico de campos */
.field-third, .field-quarter, .field-larger, .field-small {
    flex-shrink: 0;
}

.field-third {
    width: 30%; /* Ligero ajuste de ancho */
}

.field-quarter {
    width: 16%; /* Compacto */
}

.field-larger {
    width: 72%;
}

.field-small {
    width: 20%;
}

/* Campo completo y medio */
.field-half {
    flex: 1;
    min-width: 170px; /* Ligero ajuste al ancho mínimo */
    margin-left: 12px;
}

.field-half:first-child {
    margin-left: 0;
}

.field-full {
    flex: 1;
    margin-right: 18px; /* Ajuste más compacto */
}

/* Espaciado entre labels */
.field-group.center label {
    margin-right: 8px;
    font-weight: 500;
}

.par-label {
    font-weight: bold;
    color: #0056b3;
    font-size: 1em;
    margin-right: 55px;
    display: inherit;

}



/* Estilo de inputs, selects y textareas */
input[type="text"],
input[type="number"],
select,
textarea {
    width: 100%;
    background-color: #fafafa;
    border: 1px solid #d0d0d0; /* Borde más claro */
    padding: 10px 14px; /* Espacio más ajustado */
    margin-bottom: 12px; /* Margen inferior reducido */
    border-radius: 5px; /* Bordes más suaves */
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease; /* Transición más rápida */
}

/* Efecto al hacer foco */
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: #0078d4;
    box-shadow: 0 0 6px rgba(0, 120, 212, 0.25);
}

/* Flechas personalizadas en select */
select {
    appearance: none;
    background-color: #fff;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDZMMCA2TDEgNkw4IDdMMTggN1Y4TDEgOUw4IDEwTDExIDEzTDEyIDEzTDEyIDZaIiBmaWxsPSIjMDA3OGQ0Ii8+Cjwvc3ZnPgo=');
    background-position: right 12px center;
    background-repeat: no-repeat;
    padding-right: 40px; /* Espacio para la flecha */
}

/* Textarea refinado */
textarea {
    min-height: 90px; /* Altura mínima más ajustada */
    resize: vertical;
}

/* Ajuste del input tipo number para mostrar flechas */
input[type="number"] {
    -moz-appearance: textfield; /* Eliminar flechas en Firefox */
    appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: auto; /* Flechas visibles en Chrome */
    margin: 0;
}


/* CARRITO */ 

/* Estilo refinado para el ícono del carrito */
.icon-carrito {
    width: 32px;  /* Tamaño más compacto */
    height: 32px;
    border-radius: 50%;  /* Ícono circular */
    object-fit: cover;
    border: 1px solid rgba(0, 0, 0, 0.1); /* Borde sutil */
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);  /* Sombra ligera */
    transition: transform 0.2s ease, box-shadow 0.2s ease;  /* Transición más natural */
}

/* Efecto hover más suave */
.icon-carrito:hover {
    transform: scale(1.15);  /* Crece ligeramente */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);  /* Sombra más definida */
}

/* Botón con ícono de papelera */
.icon-button .icon-trash::before {
    content: '🗑️'; /* Ícono más moderno */
    font-size: 18px;  /* Tamaño ajustado */
    vertical-align: middle;  /* Alineación correcta */
    display: inline-block;
    transition: color 0.3s ease; /* Transición en el color */
}

/* Efecto hover para el ícono de papelera */
.icon-button:hover .icon-trash::before {
    color: red;  /* Cambia a rojo al pasar el cursor */
}

/* CABEZERA DE ITEM CARRITO */

.detalles-par {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    margin-top: 10px;
}

.columna-lente {
    flex: 1;
    background-color: #f9f9f9;
    padding: 10px;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.columna-lente h4 {
    text-align: center;
    margin-bottom: 10px;
    font-weight: bold;
    color: #0056b3;
}

/* Grid layout con columnas fijas */
.grid-layout {
    display: grid;
    grid-template-columns: 45% 30% 15% auto; /* Producto, Caso, Cantidad, Expand */
    gap: 10px;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #e1e1e1;
}

/* Estilo para las columnas */
.columna {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}


/* Columna de "Producto" con ancho fijo */
.columna-clasificacion {
    width: 100%; /* Usar todo el espacio disponible en su celda */
    max-width: 300px; /* Ancho máximo para evitar que desborde */
    word-wrap: break-word; /* Asegura que las palabras largas se ajusten */
}

/* Columna de "Caso" con ancho fijo */
.columna-caso {
    width: 100%; /* Para asegurar que ocupe su celda */
    max-width: 250px; /* Ancho fijo */
}

/* Estilo de la columna de caso */
.columna-caso .valor-caso {
    width: 100%; /* Ocupa el espacio disponible */
    max-width: 180px; /* Limitar el tamaño */
    text-align: center;
    font-weight: bold;
    padding: 10px;
    background-color: #e6f7ff;
    border-radius: 6px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}


/* Subtipo y Producto: Formato individual */
.clasificacion-etiqueta {
    font-size: 12px;
    color: #7e8186; /* Neutro para subtipo */
    font-style: italic;
    text-transform: capitalize;
}


/* Nombre del producto resaltado en azul */
.nombre-producto {
    font-weight: bold;
    color: #0056b3;
    font-size: 14px;
    margin-top: 2px;
}

/* Estilo del valor del caso */
.valor-caso {
    font-weight: bold;
    padding: 10px;
    background-color: #e6f7ff;
    border-radius: 6px;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
    width: 100%; /* Para ajustarse al ancho de la columna */
    white-space: nowrap; /* Evitar saltos de línea dentro del caso */
    overflow: hidden; /* Ocultar texto desbordante */
    text-overflow: ellipsis; /* Mostrar '...' si el texto es muy largo */
}


/* Columna de "Cantidad" alineada a la derecha */
.columna-cantidad {
    display: flex;
    justify-content: flex-end; /* Alinea el texto a la derecha */
    align-items: center;
    font-weight: bold;
    color: #0056b3;
    min-width: 120px; /* Fijar un ancho mínimo para la cantidad */
    text-align: right;
}

/* Ajuste del icono de expansión al final */
.icon-expand {
    font-size: 18px;
    cursor: pointer;
    justify-self: end; /* Alinea el icono al final */
}


/* Contador estilizado */
.contador-item {
    position: absolute;
    top: 5px;
    left: 10px;
    font-size: 12px;
    font-weight: bold;
    color: rgba(0, 0, 0, 0.15); /* Esfumado */
    transition: color 0.3s ease;
}

.producto-item:hover .contador-item {
    color: rgba(0, 0, 0, 0.4); /* Mayor opacidad al pasar el cursor */
}


/* Estilo del contador del par */
.contador-item span {
    display: block;
}

/* Tipo centrado (sin resaltado) */
.tipo-centrado {
    text-align: center;
    font-weight: normal;
    font-size: 12px;
    color: #7e8186; /* Color neutro */
    font-style: italic;
    text-transform: capitalize;
    
}

/* Contenedor para productos del par */
.par-productos p {
    margin: 5px 0;
    text-align: left; /* Alineado a la izquierda */
    font-size: 14px;
}

/* Ajuste del contenedor del producto-item */
.producto-item {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 15px;
    background-color: #f9f9f9;
    border-radius: 6px;
    transition: background-color 0.3s ease;
    margin-bottom: 10px;
}

.producto-item:hover {
    background-color: #e9e9e9;
}

.producto-item p {
    margin: 0;
}

/* Ajuste de márgenes en los párrafos */
.producto-resumen p {
    margin: 0;
    line-height: 1.4;
}

.producto-detalles {
    display: none; /* Oculto por defecto */
    margin-top: 10px;
    padding: 10px;
    background-color: #f1f1f1;
    border-radius: 4px;
    animation: fadeIn 0.3s ease-in-out;
}

.producto-resumen {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font-weight: bold;
}

.producto-resumen:hover .icon-expand {
    transform: scale(1.2);
}



.producto-caso-cantidad {
    display: flex;
    gap: 10px;
}


.producto-info p {
    margin: 5px 0;
}

.producto-info-compacto p {
    margin: 0;
    font-weight: bold;
}


.producto-actions {
    display: flex;
    gap: 10px;
    margin-top: 10px;
}

/* Efecto hover para el ícono dentro del botón */
.producto-actions button:hover .icon-trash::before {
    font-size: 14px; /* Aumenta el tamaño del ícono al hacer hover */
    color: darkred; /* Cambia el color del ícono al hacer hover */
}

/* Estilo común para los botones de acción */
.producto-actions button {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #0facee;
    color: #fff;
    padding: 5px 10px; /* Ajusta el padding para un botón más pequeño */
    font-family: "Roboto Slab", sans-serif;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all ease 0.238s;
    margin: 2px; /* Ajusta el margen si es necesario */
}

.producto-actions button:hover {
    background-color: #0056b3;
}


.etiqueta {
    font-size: 12px;
    color: #7e8186;
    font-style: italic;
    margin-bottom: 2px;
}

.campo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.campo label {
    font-size: 10px;
    color: #7e8186;
    font-style: italic;
    margin-bottom: 2px;
}

/* Animación "Auto Fantástico" en el botón de agregar lente */
#addProductButton:hover::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: #0facee;
    animation: autofantastico 3s ease-in-out infinite;
}

/* Ajustes del botón para soportar la animación */
#addProductButton {
    position: relative;
    overflow: hidden; /* Evita que la animación se salga del botón */
}


label {
    font-weight: bold;
    display: block;
    margin-top: 10px;
}

.pedidoOriginal-group {
    display: flex;
    align-items: center;
    margin-left: 10px;
}

.pedidoOriginal-input {
    width: 100%;
    max-width: 200px;
    margin-left: 10px;
}

#productosAgregados {
    margin-top: 10px;
    border: 2px solid #0facee;;
    border-radius: 5px;
    padding: 10px;
    border-style: groove;
}


/* Estilo del carrito vacío */
#productosAgregados.empty {
    text-align: center;
    color: #ccc;
    font-size: 17px;
    padding: 10px;
    margin: 1px;
    margin-top: 15px;
    font-style: oblique;
    border-style: dotted;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
}

/* Efecto de hover en el carrito */
#productosAgregados.empty:hover {
    border-color: #0facee;
    color: #0facee;
    background-color: #f0f8ff;
}

/* Ajuste de margen del párrafo */
#productosAgregados.empty p {
    margin: 0; /* Elimina márgenes del párrafo */
    padding: 0;
}


/* Estilo para el contenedor del carrito */
.carrito.empty {
    text-align: center;
    color: #ccc;
    font-size: 15px;
    font-style: oblique;
    border: 1px dotted #ccc;
    border-radius: 8px;
    transition: all 0.3s ease;
    margin: 5px 0; /* Reducir márgenes superior e inferior */
    padding: 0;    /* Eliminar padding extra */
}

/* Estilo para el ícono del carrito */
.carrito-icon {
    font-size: 55px;
    color: #0facee;
    transition: transform 0.3s ease, color 0.3s ease;
    margin-bottom: 5px; /* Espacio controlado entre ícono y texto */
}

/* Opcional: Ajustar el contenedor del ícono y del texto */
.carrito.empty i,
.carrito.empty p {
    line-height: 1; /* Ajusta la altura de línea */
}


.par-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1em;
}

.par-wrapper label {
    margin-right: 10px;
}

/* Ocultar todas las secciones por defecto */
.section {
    display: none;
}

/* Barra azul con el texto "LENTES DE CONTACTO" */
.titulo-lentes-superior {
    background-color: #0056b3;
    color: white;
    padding: 1px 0;
    text-align: center;
    height: auto;
    border-top-left-radius: 8px;   /* Redondeo superior izquierdo */
    border-top-right-radius: 8px;  /* Redondeo superior derecho */
}

/* Contenedor inferior centrado y estilizado */
.titulo-lentes-inferior {
    background-color: #0056b3;
    color: white;
    padding: 12px 0;  /* Espaciado cómodo */
    text-align: center;
    height: auto;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;

    display: flex;  /* Flexbox para centrar */
    align-items: center;  /* Alinear verticalmente */
    justify-content: center;  /* Alinear horizontalmente */
    gap: 15px;  /* Espacio entre elementos */
    flex-wrap: wrap;  /* Permitir ajuste en pantallas pequeñas */
}


/* Contenedor de las pestañas */
.tabs {
    overflow: hidden;
    background-color: #0facee;
    margin: 0; /* Eliminar márgenes */
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 800px;
    padding: 0;
    flex-wrap: nowrap;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Sombra ligera */
    border-radius: 0; /* Sin bordes redondeados */
}

/* Estilo de los botones de pestaña */
.tablink {
    background-color: #0facee;
    color: white;
    border: none;
    cursor: pointer;
    padding: 12px 16px;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 1px;
    flex-grow: 1;
    text-align: center;
    margin: 0;
    transition: background-color 0.3s ease, transform 0.3s ease;
    position: relative;
    overflow: hidden;
    border-radius: 0;
}

/* Hover en pestañas */
.tablink:hover {
    background-color: #0056b3;
    transform: scale(1.05); /* Escalar ligeramente */
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15); /* Sombra más pronunciada */
}

/* Pestaña activa */
.tablink.active {
    background-color: #0056b3;
    color: white;
}

/* Borde inferior animado estilo "Auto Fantástico" */
.tablink.active::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background-color: #0facee; /* Color cyan */
    animation: autofantastico 3s ease-in-out infinite; /* Animación más lenta */
}

/* Animación tipo "Auto Fantástico" */
@keyframes autofantastico {
    0% {
        transform: translateX(-100%);
    }
    50% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(100%);
    }
}


/* EFECTO AL EDITAR CON LOS BOTONES EDITAR BLOQUEADOS */
#order-form::before {
    content: '';
    display: block;
    height: 80px; /* Ajusta este valor según la altura de las pestañas */
    margin-top: -80px; /* Compensa la altura para que las pestañas queden visibles */
}

button.disabled {
    opacity: 0.5;
    pointer-events: none;
    cursor: not-allowed;
}



/* Estilización del checkbox personalizado */
.icon-par {
    max-height: 54px; /* Ajusta la altura máxima según sea necesario */
    width: auto;
    vertical-align: middle;
    margin-right: 5px; /* Ajusta el espacio a la derecha de la imagen */
}

.custom-checkbox-label {
    position: relative;
    padding-left: 25px;
    cursor: pointer;
    display: inline-block;
    font-size: 14px;
    line-height: 1.2;
}

.custom-checkbox-label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 18px;
    height: 18px;
    border: 2px solid #0facee;
    border-radius: 4px;
    background: white;
    box-sizing: border-box;
}

.custom-checkbox-label::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 4px;
    width: 10px;
    height: 10px;
    background: #0facee;
    opacity: 0;
    transform: scale(0);
    transition: all 0.2s ease;
    border-radius: 2px;
}

.custom-checkbox:checked + .custom-checkbox-label::before {
    background: white; /* Deja el fondo blanco */
    border-color: #0056b3; /* Cambia solo el color del borde */
}

.custom-checkbox:checked + .custom-checkbox-label::after {
    opacity: 1;
    transform: scale(1);
    background: #0056b3; /* Usa un color más oscuro para el indicador */
}


.custom-checkbox {
    position: absolute;
    opacity: 0; /* Hace el checkbox invisible pero aún presente en el DOM */
}

/* Reducir espacio de la sección "¿Es un par?" y "Ojo" */
.section.compact {
    padding: 10;
    margin-bottom: 10px;
}

.field-group.center.compact {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin: 1px 0;
}

.field-group.center.compact .field-half.compact {
    flex: 1;
    min-width: auto;
    margin: 0;
}

.field-group.center.compact label {
    margin-right: 5px;
    font-size: 14px;
    line-height: 1.2;
}

.field-group.center.compact select,
.field-group.center.compact input[type="checkbox"] {
    margin-top: 0;
    padding: 5px;
    font-size: 14px;
    height: auto;
}

.field-group.center.compact input[type="checkbox"] {
    width: auto;
    height: auto;
}


/* Ocultar flechitas de los campos number, excepto en el campo 'cantidad' */
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Mostrar flechitas solo en el campo 'cantidad' */
input[name="cantidad"] {
  -moz-appearance: number-input;
  appearance: number-input;
}

input[name="cantidad"]::-webkit-inner-spin-button,
input[name="cantidad"]::-webkit-outer-spin-button {
  -webkit-appearance: auto;
  margin: 0;
}

.small-icon {
    font-size: 18px; /* Ajusta el tamaño según tus necesidades */
    
}

.fade-in {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/*ESTILO TITULO DE INFO PRODUCTO*/
#product-name {
    color: white;
    font-size: 1.3em; /* Tamaño general más ajustado */
    padding: 12px 17px;
    line-height: 1.4; /* Mejor espaciado entre líneas */
    text-align: center;
}

#product-name .sublinea {
    font-size: 0.85em; /* Más pequeño para la segunda línea */
    font-weight: normal; /* Reducir grosor de texto */
    display: block;
    margin-top: 5px;
}

#product-name:only-child {
    padding: 8px; /* Espaciado más compacto si es solo una línea */
}



/* Estilos para el tab lateral */
.product-info-tab {
    position: fixed;
    right: -400px;
    top: 0;
    width: 100%; /* Ocupar todo el ancho en móviles y pantallas más pequeñas */
    max-width: 350px; /* Mantener el ancho máximo en pantallas más grandes */
    height: 100vh; /* Asegurar que ocupe toda la altura de la pantalla visible */
    background-color: #f4f4f4;
    box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
    overflow-y: auto; /* Habilitar scroll si es necesario */
    transition: right 0.3s ease;
    padding: 15px;
    z-index: 1000;
    overflow: visible;     /* Mostrar contenido cuando está expandido */

}

/* Título para Parámetros Disponibles */
#parametros-disponibles-title {
    font-size: 1.2em;
    font-weight: bold;
    color: #0056b3;
    margin-top: 15px;
    padding-bottom: 5px;
    border-bottom: 2px solid #0056b3;
}

/* Título para Parámetros Especiales */
#parametros-especiales-title {
    font-size: 1.2em;
    font-weight: bold;
    color: #d97706; /* Naranja brillante */
    margin-top: 15px;
    padding-bottom: 5px;
    border-bottom: 2px solid #ffa500;
}

/* Cuando está colapsado, sólo deja visible la barra superior */
#product-info-tab.collapsed {
  width: 30px;              /* Suficiente para el botón */
  overflow: hidden;         /* Oculta el contenido interno */
}

/* CSS: cuando está colapsado, solo muestro el botón */
#product-info-tab.collapsed > *:not(#close-tab) {
  display: none !important;
}

/* Botón siempre visible en la esquina */
#product-info-tab .close-tab {
  position: absolute;
  top: 5px;
  right: 5px;
}

.product-info-tab.open {
    right: 0;
    height: calc(100vh - 20px); /* Dejar un pequeño margen en la parte inferior */
    overflow-y: auto; /* Permitir el scroll vertical completo */
}

/* Ajustar la altura del tab para pantallas medianas (como 17-19 pulgadas) */
@media (max-height: 768px) {
    .product-info-tab {
        height: calc(100vh - 20px); /* Asegurar margen y evitar superposición con la barra de tareas */
        overflow-y: scroll; /* Habilitar desplazamiento si el contenido excede la pantalla */
    }
}

/* Ajustes para pantallas de menos de 600px de ancho */
@media (max-width: 600px) {
    .product-info-tab {
        width: 100%; /* Ocupar el ancho completo de la pantalla en móviles */
        max-width: none; /* Eliminar el ancho máximo */
        padding: 10px; /* Reducir el padding para optimizar el espacio */
    }

    .product-info-tab h3 {
        font-size: 1em; /* Reducir el tamaño del título */
    }

    #product-details ul li {
        font-size: 1em; /* Ajustar el tamaño de fuente en pantallas pequeñas */
        padding: 6px; /* Reducir el padding interno */
    }

    .close-tab {
        width: 18px; /* Ajustar el tamaño del botón de cerrar */
        height: 18px;
        font-size: 10px; /* Reducir el tamaño de la fuente del botón de cerrar */
    }
}

/* Asegurarse de que el contenido sea completamente visible con scroll */
.product-info-tab.open {
    right: 0;
    overflow-y: auto; /* Habilitar el desplazamiento vertical */
}

/* Ajustes generales para pantallas grandes */
.product-info-tab h3 {
    width: calc(100% - 7px); /* Reducción del margen */
    margin: 0 auto;
    padding: 8px 0; /* Reducción del padding */
    border-bottom: 1px solid #ccc; /* Línea más fina */
    text-align: center;
    font-size: 1.4em; /* Tamaño de la fuente ligeramente más pequeño */
}

/* Imagen con bordes inferiores redondeados */
.product-image {
    width: calc(100% - 7px); /* Alineación perfecta con el h6 */
    height: auto;
    margin: 0; /* Sin márgenes adicionales */
    display: block; /* Imagen en bloque */
    border-bottom-left-radius: 8px; /* Borde inferior izquierdo redondeado */
    border-bottom-right-radius: 8px; /* Borde inferior derecho redondeado */
    overflow: hidden; /* Evitar desbordes de contenido */
}

/* Estilo del botón de cerrar */
.close-tab {
 position: absolute;
    top: 5px;
    right: 5px;
    margin: 0;
    padding: 0;
    width: 20px;
    height: 20px;
    background-color: rgba(0, 174, 239, 0.5);
    color: white;
    border: none;
    border-radius: 50%;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s, opacity 0.3s;
    opacity: 0.5;
    z-index: 1001;
}

#product-info-tab .close-tab:hover {
    background-color: rgba(0, 174, 239, 0.8);
    opacity: 1;
}

#product-info-tab .close-tab:focus {
    box-shadow: 0 0 5px #0facee;
}


/* Centrar todo el contenido dentro del tab de información del producto */
#product-details {
    text-align: center;  /* Centra todos los textos y elementos dentro de esta sección */
}


/* Ajustes generales para la sección de detalles del producto */
#product-details ul {
    margin-top: 4px; /* Reducción del espacio superior */
    margin-bottom: 8px; /* Reducción del espacio inferior */
    padding-left: 15px; /* Mantiene la indentación para la lista */
}

/* Ajuste para la sección de información adicional */
#additional-info {
    margin-top: 8px; /* Reducción del margen superior */
    margin-bottom: 8px; /* Reducción del margen inferior */
    line-height: 1.3em; /* Ajuste de espacio entre líneas */
    font-size: 1em; /* Tamaño de fuente más pequeño */
}

/* Mejora en el título de la sección de parámetros disponibles */
#product-details p strong {
    font-size: 1.1em; /* Reducción del tamaño de la fuente */
    font-weight: bold;
    margin-bottom: 4px; /* Reducción del espacio inferior */
}

#product-details p {
    margin-bottom: 4px;
    font-size: 1em;
    line-height: 1.3em;
}

/* Parámetros Disponibles */
#product-ranges li {
    margin-bottom: 4px; /* Espacio entre elementos */
    font-size: 1em; /* Tamaño de fuente */
    padding: 6px; /* Espaciado interno */
    border-radius: 6px; /* Bordes redondeados */
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.08); /* Sombra */
    background-color: #eaf4fb; /* Fondo celeste claro */
    border: 1px solid #b0d7f5; /* Borde celeste */
    color: #333; /* Texto gris oscuro */
}

/* Parámetros Especiales */
#product-special-ranges li {
    margin-bottom: 4px; /* Espacio entre elementos */
    font-size: 1em; /* Tamaño de fuente */
    padding: 6px; /* Espaciado interno */
    border-radius: 6px; /* Bordes redondeados */
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.08); /* Sombra */
    background-color: #fff7e6; /* Fondo naranja suave */
    border: 1px solid #f0c04a; /* Borde naranja brillante */
    color: #333; /* Texto gris oscuro */
}


/* Ajuste del contenedor del mensaje de stock */
#mensajeStock {
    display: block;
    font-size: 1.2em;  /* Aumenta el tamaño del texto del mensaje de stock */
    margin: 10px auto 20px auto;  /* Espacio arriba y abajo, centrado horizontal */
    color: red;  /* Cambia el color a rojo o según el estado */
    font-weight: bold;  /* Aumenta el peso del texto */
    text-align: center;  /* Centra el texto del mensaje */
    width: fit-content;  /* Ajusta el ancho al contenido del texto */
}

/* Viñeta luminosa antes del mensaje de stock */
#mensajeStock::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 10px;
    background-color: currentColor;  /* La viñeta usa el color actual del texto */
    box-shadow: 0 0 10px currentColor;  /* Efecto de brillo */
    animation: pulsar 1.5s infinite;  /* Animación de pulso */
    vertical-align: middle;  /* Alinea la viñeta con el texto */
}

@keyframes pulsar {
    0% {
        box-shadow: 0 0 5px currentColor;
    }
    50% {
        box-shadow: 0 0 15px currentColor;
    }
    100% {
        box-shadow: 0 0 5px currentColor;
    }
}


/* Alinear y ajustar los elementos que tienen la clase 'sin-salto' */
.sin-salto {
    display: flex;
    justify-content: center;  /* Centra el contenido horizontalmente */
    gap: 4px;  /* Espacio entre los elementos */
    align-items: center;
    margin-bottom: 0;
    white-space: normal;  /* Permitir que el texto se ajuste si es necesario */
    flex-wrap: wrap;  /* Ajusta el contenido si es más ancho que el contenedor */
}


/* Contenedor para mostrar DK y H2O en la misma línea y centrados */
.unified-fields {
    display: flex;
    justify-content: space-around; /* Separar DK y H2O */
    align-items: center;
    margin-bottom: 10px;
    gap: 10px; /* Controla el espacio entre DK y H2O */
}

.solo-dk {
    justify-content: center; /* Alinea DK a la derecha cuando está solo */
}


/* Estilos para el estado válido (verde) */
input.valid {
    border-color: green;
}

/* Estilos para el estado inválido (rojo) */
input.invalid {
    border-color: red;
}

/* Estilos para los parámetros especiales (naranja) */
input.special {
    border-color: orange;
}

/* Mostrar mensajes de error */
.error-message {
    color: red;
    font-weight: bold;
    display: none; /* Ocultar por defecto */
}

input:focus, select:focus {
    outline: none;
}

.color-palette-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 15px;
    padding: 10px;
    max-width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

.color-thumbnail {
    width: 80px;
    height: 80px;
    object-fit: contain;
    background-color: #f0f0f0;
    border-radius: 50%; /* Forma circular */
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Efecto hover para resaltar la imagen */
.color-thumbnail:hover {
    transform: scale(1.25);
    z-index: 2;
    opacity: 1;
}

/* Responsive: Ajustar tamaño en pantallas más pequeñas */
@media (max-width: 600px) {
    .color-thumbnail {
        width: 60px;
        height: 60px;
    }
}



select {
    white-space: normal; /* Asegurarse de que las opciones se muestren correctamente */
}

select option {
    display: block; /* Asegura que cada opción esté en su propia línea */
}


/* Responsive adjustments */
@media (min-width: 600px) {
    .container {
        max-width: 600px;
        padding: 15px;
    }

    .header {
        flex-direction: row;
        text-align: left;
    }

    .header-center {
        align-items: center;
        text-align: center;
    }

    .header-left, .header-right {
        flex: 1;
    }

    h1 {
        font-size: 26px;
    }

    .calc-button {
        padding: 10px 20px;
    }
}

@media (min-width: 1024px) {
    .container {
        max-width: 800px;
    }

    .header {
        flex-direction: row;
        text-align: left;
    }

    h1 {
        font-size: 30px;
    }

    .calc-button {
        padding: 10px 25px;
    }
}

