/* Reset básico */

.cores-principais{
    color: #febc04;
    color: #764ba2;
}

.btn-outline-primary {
    border-color: #febc04;
    color: #febc04;
}

.btn-outline-info {
    border-color: #764ba2;
    color: #764ba2;
}

.btn-outline-info:hover {
  background-color: #775a94;
  border-color: #764ba2;
  color: white;
}

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f5f5f5;
   /*  padding-top: 70px; Para evitar sobreposição do cabeçalho */
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Garante que o body ocupe toda a altura da viewport */
}

/* Estilo do cabeçalho e rodapé */
footer {
    background-color: #333;
    color: white;
    padding: 10px 0;
    text-align: center;
    flex-shrink: 0; /* Impede que o footer encolha */
}

/* Estilo do cabeçalho fixo */
header {
    background-color: #333;
    padding: 10px 0;
    text-align: center;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid #ddd;
}

/* Navbar genérica - NÃO AFETA HEADER CUSTOMIZADO */
.old-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
}

.old-navbar .navbar-brand img {
    max-height: 60px;
    margin-right: 20px;
}

.old-navbar .navbar-nav {
    display: flex;
    align-items: center;
    gap: 30px;
    margin-left: auto;
}

/* Links gerais - NÃO AFETA O HEADER */
main a,
section a,
.content a,
#app a:not(.custom-nav-link):not(.account-btn):not(.navbar-brand a) {
    color: #8f5bc4;
    text-decoration: underline;
}

/* Estilos de navegação específicos para OLD NAVBAR - NÃO AFETA HEADER CUSTOMIZADO */
.old-navbar .nav-item { 
    position: relative;
}

.old-navbar .nav-item .nav-link {
    font-size: 1.2rem;
    color: white;
    transition: color 0.2s;
    padding: 10px 0;
}

.old-navbar .nav-item .nav-link:hover {
   color: #764ba2;
}

/* Badge específico para OLD NAVBAR - NÃO AFETA HEADER CUSTOMIZADO */
.old-navbar .nav-item .badge {
    font-size: 1rem;
    padding: 0.3em 0.6em;
    background-color: #764ba2;
    color: white;
    border-radius: 60%;
    position: absolute;
    top: -14px;
    right: -10px;
}

/* Estilo do contêiner principal */
#app {
    display: flex;
    flex-direction: column;
    flex: 1;
}

main {
    padding: 20px;
    background-color: white;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    flex: 1; /* Permite que o main cresça para preencher o espaço restante */
}

/* Estilo para a lista de produtos */
#product-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center
}

/* Estilos para os cards de produto */
.product-card {
    background: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 10px;
    text-align: center;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s;
    flex: 1 0 30%; /* Ajuste para caber 3 por linha */
    margin: 5px; /* Espaço entre os cartões */
}

.product-card:hover {
    transform: scale(1.05);
}

.product-card-img {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
    border-radius: 5px;
}

.product-card-body {
    text-align: left;
}

.product-card-title {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: #333;
}

.product-card-text {
    margin-bottom: 1rem;
    color: #666;
}

/* Estilos para mensagens de alerta */
.alert {
    margin-top: 10px;
    padding: 10px;
    border-radius: 5px;
    text-align: center;
}

/* Estilos para mensagens de sucesso */
.alert-success {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
    font-size: 1rem;
}

/* Estilos para mensagens de erro */
.alert-danger {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #f44336;
    font-size: 1rem;
}

.alert-warning {
    background-color: #f8ffaa;
    border-color: #fff56b;
    color: #4d4d4d;
    font-size: 1rem;
}

/* Estilos para campos inválidos */
.is-invalid {
    border-color: #dc3545;
}

.is-invalid:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Estilos para campos de formulário */
.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="password"],
.form-group input[type="number"] {
    width: 100%;
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
}

.form-group input[type="number"] {
    max-width: 100px;
}

.form-group .btn {
    padding: 10px 15px;
    font-size: 1rem;
    border-radius: 5px;
}

/* Estilo para botões */
.btn-primary {
    background-color: #764ba2 !important;
    border-color: #672aa4 !important;
    color: white;
    transition: background-color 0.2s, border-color 0.2s;
}

.btn-primary:hover {
    background-color: #764ba2 !important;
    border-color: #a179c9 !important;
}

.btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
    color: white;
    transition: background-color 0.2s, border-color 0.2s;
}

.btn-danger {
    background-color: #764ba2 !important;
    border-color: #623292 !important;
    color: white;
    transition: background-color 0.2s, border-color 0.2s;
}

.btn-secondary:hover {
    background-color: #5a6268;
    border-color: #545b62;
}

/* Estilos para a página de detalhes do produto */
#product-details {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

#product-image {
    width: 100%;
    border-radius: 5px;
    margin-bottom: 10px;
}

@media (min-width: 768px) {
    #product-image {
        width: 100%;
        max-width: 500px;
    }
}

.col-md-4 {
    width: 30%;
}

#product-description {
    margin-top: 15px;
    font-size: 1rem;
    line-height: 1.5;
}

#product-price {
    color: #000000;
    margin-top: 10px;
    font-weight: bold;
    }

#product-quantity {
    width: 100px;
    margin-top: 15px;
}

/* Estilo para a lista do carrinho */
.cart-item {
    background: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.cart-item h3 {
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 1.25rem;
}

.cart-item p {
    margin-bottom: 5px;
}

.cart-item .btn {
    padding: 5px 10px;
    font-size: 0.9rem;
    border-radius: 4px;
}

#totals {
    margin-top: 20px;
    text-align: right;
}

#totals p {
    margin: 5px 0;
}

#totals .btn {
    margin-top: 10px;
    padding: 10px 20px;
}

/* Estilo para paginação */
.pagination {
    display: flex;
    justify-content: center;
    padding: 10px 0;
}

.pagination .page-link {
    margin: 0 5px;
    padding: 10px 15px;
    background-color: white;
    border: 1px solid #764ba2;
    color: #764ba2;
    text-decoration: none;
    border-radius: 4px;
    border-bottom-color: #000000;
    transition: background-color 0.2s, color 0.2s;
}

.active>.page-link{
    background-color: #764ba2 !important;
    color: white;
}

.pagination .page-link:hover {
    background-color: #764ba2 !important;
    border-color: #c6c6c6 !important;
}

.pagination .page-link.active {
    background-color: #764ba2;
    color: white;
    border-color: #9c64d3;
}

.pagination .page-link.disabled {
    color: #ccc;
    border-color: #ccc;
}

/* Estilo para o checkout */
form#checkout-form {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

fieldset {
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 20px;
    width: 100%;
}

fieldset.personal-info {
    flex: 0 0 100%;
    margin-right: 15px;
}

fieldset.payment-info {
    flex: 0 0 100%;
}

legend {
    font-size: 1.2rem;
    font-weight: bold;
    color: #764ba2;
}

.d-none {
    display: none !important;
}

#login-form {
    padding: 20px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Estilos para a página de login */
#login-container {
    max-width: 500px;
    margin: 50px auto;
    padding: 20px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Estilos para a página de dashboard */
#dashboard {
    padding: 20px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    margin: 50px auto;
}

#dashboard h2 {
    color: #764ba2;
}

/* ESTILOS ESPECÍFICOS PARA CONTEÚDO PRINCIPAL - NÃO AFETA O HEADER */
main h1,
section h1,
.content h1,
#app h1:not(.logo-section h1) {
    text-transform: uppercase;
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-top: 20px;
    margin-bottom: 20px;
    color: #764ba2;
}

main h4,
section h4,
.content h4,
#app h4:not(.logo-section h4) {
    text-transform: uppercase;
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-top: 20px;
    margin-bottom: 20px;
    color: #935dca;
}

.text-center {
    text-align: center;
    font-size: 1.2rem;
}

main h5,
section h5,
.content h5 {
    text-transform: uppercase;
    text-align: left;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-top: 20px;
    margin-bottom: 20px;
}

#dashboard .order-details {
    margin-top: 20px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
}

.container {
    max-width: 400px;
    /* margin-top: 50px; */
}

.account-message {
    background-color: #fff3cd;
    border: 1px solid #ffeeba;
    padding: 10px;
    margin-top: 20px;
    color: #856404;
    border-radius: 4px;
}