/* Esto va al inicio de tu CSS para asegurar que el footer baje */
html, body {
    height: 100%; /* Obligatorio */
    margin: 0;
    padding: 0;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.perfil-wrapper {
    flex: 1 0 auto; /* Obliga al contenedor a crecer */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #f4f4f4;
    padding: 60px 20px;
    min-height: calc(100vh - 400px); /* Ajuste matemático para llenar el hueco */
}

.perfil-card {
    background: white;
    width: 100%;
    max-width: 950px; /* Un poco más ancha para que la tabla respire */
    padding: 50px;
    border-radius: 20px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
    margin: auto; /* Centrado extra */
}

/* Título con icono */
.titulo-seccion {
    color: #330006;
    margin-bottom: 25px;
    font-family: Georgia, serif;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}

/* La tabla moderna */
.tabla-moderna {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.tabla-moderna th {
    background-color: #330006;
    color: white;
    padding: 15px;
    text-align: left;
    font-family: 'Times New Roman', serif;
}

.tabla-moderna td {
    padding: 15px;
    border-bottom: 1px solid #eee;
    font-family: Arial, sans-serif;
    color: #333;
}

.carrito-footer {
    margin-top: 30px;
    padding: 20px;
    border-top: 1px solid #eee;
}

.total-contenedor {
    text-align: left;
    margin-bottom: 20px;
}

.botones-carrito {
    display: flex;
    justify-content: flex-end; /* Los empuja a la derecha */
    align-items: center;       /* Los nivela verticalmente */
    gap: 15px;
}

.btn-regresar, .btn-comprar {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 25px;
    height: 45px; /* Altura fija para ambos */
    border-radius: 8px;
    font-weight: bold;
    text-decoration: none;
    transition: 0.3s;
    box-sizing: border-box;
}

.btn-regresar {
    border: 2px solid #4a1a1a;
    color: #4a1a1a;
}

.btn-comprar {
    background-color: #4a1a1a;
    color: white;
    border: 2px solid #4a1a1a;
}

.btn-regresar:hover {
    background-color: #fceeee;
}

.btn-comprar:hover {
    background-color: #330006;
}

.btn-deshabilitado {
    padding: 10px 25px;
    background-color: #ccc;
    color: #666;
    border-radius: 8px;
    border: none;
    cursor: not-allowed;
}

input[type="number"] {
    border: 1px solid #4a1a1a;
    border-radius: 5px;
    padding: 5px;
    color: #4a1a1a;
    font-weight: bold;
    background: white;
}

.btn-actualizar {
    color: #4a1a1a;
    transition: transform 0.3s;
}

.btn-actualizar:hover {
    transform: rotate(180deg); /* Un efecto divertido al actualizar */
}

.metodo-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

.caja-metodo {
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 20px;
    margin-left: 25px; /* Alineado bajo el radio button principal */
    background: #fff;
}

.tarjeta-opcion {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.input-gris {
    width: 100%;
    background-color: #c9bcba; /* El tono de tu imagen */
    border: none;
    border-radius: 20px;
    padding: 12px 20px;
    margin-bottom: 15px;
    color: #4a1a1a;
}

.row-inputs {
    display: flex;
    gap: 10px;
}

.input-gris.sm { width: 25%; }
.input-gris.md { width: 50%; }

.guardar-check {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
}

/* Esto alinea el círculo con el texto */
.fila-metodo {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* Alinea a la izquierda */
    gap: 15px; /* Espacio corto entre radio y texto */
    margin: 10px 0;
    width: 100%;
}

.caja-blanca {
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 20px;
    margin: 10px 0 20px 30px; /* Desplazado un poco a la derecha */
    background: #fff;
    max-width: 600px; /* Para que no se estire demasiado */
}

.sub-opcion {
    margin-bottom: 15px;
}

.input-moderno {
    width: 100%;
    background-color: #c9bcba;
    border: none;
    border-radius: 25px;
    padding: 12px 20px;
    margin-bottom: 12px;
    box-sizing: border-box;
}

.fila-exp-cvv {
    display: flex;
    gap: 10px;
}

.input-moderno.small { width: 25%; }
.input-moderno.medium { width: 50%; }

/* Alinea el radio con el texto sin que se separen */
.fila-metodo-principal, .fila-metodo-radio {
    display: flex !important;
    align-items: center !important;
    gap: 12px; /* Espacio fijo entre círculo y texto */
    margin-bottom: 10px;
    width: fit-content; /* Evita que el label ocupe todo el ancho */
}

.fila-metodo-principal label, .fila-metodo-radio label {
    cursor: pointer;
    margin: 0;
}

.caja-metodo-diseno {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 25px;
    margin: 10px 0 20px 40px; /* Sangría a la derecha */
    max-width: 650px;
}

.input-curvo-gris {
    width: 100%;
    background-color: #c9bcba !important;
    border: none;
    border-radius: 25px;
    padding: 12px 20px;
    margin-bottom: 15px;
    box-sizing: border-box;
}

.fila-tres-columnas {
    display: flex;
    gap: 10px;
}

.fila-tres-columnas input {
    flex: 1;
}

.pago-opciones-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Fuerza todo a la izquierda */
    width: 100%;
    max-width: 700px;
}

.pago-item {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important; /* Alinea contenido del item a la izquierda */
    gap: 12px;
    margin-bottom: 12px;
    width: 100%;
}

.pago-item label {
    margin: 0 !important;
    cursor: pointer;
    text-align: left;
    white-space: nowrap; /* Evita que el texto se rompa en dos líneas */
}

.caja-blanca-detalle {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 25px;
    margin: 0 0 20px 30px; /* Sangría a la derecha pero alineado interno a la izquierda */
    width: 90%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.sub-item {
    padding-left: 10px;
}

.input-marseg {
    width: 100%;
    background-color: #c9bcba !important;
    border: none;
    border-radius: 25px;
    padding: 12px 20px;
    margin-bottom: 15px;
    box-sizing: border-box; /* Importante para que no se salga del cuadro */
}

.fila-inputs-cortos {
    display: flex;
    gap: 10px;
    width: 100%;
}

.fila-inputs-cortos input {
    flex: 1;
}

.linea-divisora {
    width: 100%;
    border: 0.5px solid #eee;
    margin: 15px 0;
}

/* Fuerza la alineación horizontal de radio y texto */
.pago-item, .metodo-row, .opcion-pago {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px; /* Espacio corto entre el círculo y el texto */
    margin-bottom: 12px;
    text-align: left;
}

/* Evita que el texto se estire a todo el ancho */
.pago-item label, .metodo-row label, .opcion-pago label {
    margin: 0 !important;
    cursor: pointer;
    white-space: nowrap;
}

/* Estilo para la caja blanca de detalles */
.caja-blanca-detalle {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 25px;
    margin: 10px 0 20px 35px; /* Sangría a la derecha */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 600px;
}

/* Estilo para los inputs grises redondeados */
.input-marseg {
    width: 100%;
    background-color: #c9bcba !important; /* El tono de tu imagen */
    border: none;
    border-radius: 25px;
    padding: 12px 20px;
    margin-bottom: 15px;
    box-sizing: border-box;
}

.fila-inputs-cortos {
    display: flex;
    gap: 10px;
    width: 100%;
}

/* Esto arregla que el círculo y el texto de "Tarjeta de Crédito" se vean bien */
.pago-item, .metodo-row {
    display: flex !important;
    align-items: center !important;
    gap: 10px;
    margin-bottom: 10px;
}

.pago-item label, .metodo-row label {
    margin: 0 !important;
    cursor: pointer;
}

.caja-blanca-detalle {
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 20px;
    margin-left: 30px; /* Sangría para que esté bajo la opción principal */
    background: #fff;
}