@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --padrao: #FF3131;
    --padrao-rgb: #daa4a4;
    --fonte: Poppins;
    --blue: #2F2E2E;
    --border-color: #f2f2f2;
    --background-white: #ffffff;
    --white: #fff;@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --padrao: #FF3131;
    --padrao-rgb: #daa4a4;
    --fonte: Poppins;
    --blue: #2F2E2E;
    --border-color: #f2f2f2;
    --background-white: #ffffff;
    --white: #fff;
    --gray-light: #f5f5f5;
    --gray: #e8e8e8;
    --gray-medium: #dcdcdc;
    --gray-dark: #a6a6a6;
    --black1: #222;
    --black2: #999;
    --secondaryText: #828282;
    --text: #3e3e3e;
    --light-text: #717171;
    --green: #4BC532;
    --border-radius: 12px;
    --item-border-radius: 10px;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    --card-shadow: 0 6px 16px rgba(0, 0, 0, 0.05);
    --hover-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    --button-shadow: 0 2px 6px rgba(234, 29, 44, 0.2);
    --card-width-desktop: 260px;  
    --card-width-tablet: 260px;  
    --card-width-mobile: 230px; 
    --card-image-height-desktop: 150px;
    --card-image-height-tablet: 140px;
    --card-image-height-mobile: 110px;
}

::selection {
    background-color: var(--padrao); /* Cor de fundo da seleção */
    color: var(--white); /* Cor do texto selecionado */
}
body{
    font-family: var(--fonte);
    background-color: #F0F0EF;
    overflow-x: hidden;
}
input:focus,
textarea:focus {
    border-color: var(--padrao);
    outline: none;
}
.container-loja {
    margin: 0 auto;    
    background-color: #ffffff;
    position: relative;         
}
::-webkit-scrollbar {
    width: 6px; /* Largura da barra de rolagem */
    height: 6px; /* Altura da barra de rolagem */
}
::-webkit-scrollbar-track {
    background-color: #f1f1f1; /* Cor de fundo da trilha da barra de rolagem */
}
::-webkit-scrollbar-thumb {
    background-color: #888; /* Cor do controle deslizante da barra de rolagem */
    border-radius: 6px; /* Borda arredondada do controle deslizante */
}
::-webkit-scrollbar-thumb:hover {
    background-color: #555; /* Cor do controle deslizante ao passar o mouse */
}

/*======== Header and Content Header ========*/
.header-banner {
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-repeat: no-repeat; /* Evita que a imagem se repita */
    background-position: center; /* Centraliza a imagem */
    height: 220px;
}
.store-logo{
    margin-top: -120px;
    margin-left: 9%;
    z-index: 1;
}
.store-logo img{
    background-color: #FFFFFF;
    border-radius: 50%;
    padding: 3px;
    width: 70px;
}
.store-content {
    background-color: #fff;
    max-width: 90%;
    margin: -30px auto 0; /* margem superior negativa e centralização horizontal */
    padding: 20px; /* opcional: adicionar preenchimento interno */
    border-radius: 25px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* sombra leve */
}
.store-content .store-name {
    font-size: 24px;
    font-weight: 600;
}
.store-content .store-data {
    font-size: 11px;
    margin-top: 3px;
    color: var(--secondaryText);
}
.store-content .store-div {
    border: solid 1px;
    margin-top: 2px;
    margin-bottom: 2px;
    color: var(--secondaryText);
}
.store-content .store-address {
    font-size: 11px;
    color: var(--secondaryText);
    margin-top: 8px;
}
.store-address .icon{
    color: var(--padrao);
    font-size: 13px;
    margin-top: 3px;
}
.store-last-content .store-text-data {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* alinha tudo à esquerda */
    flex-wrap: nowrap; /* não quebra linha */
    gap: 10px;
    font-size: 11px;
    color: var(--secondaryText);
    margin-top: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.store-last-content .info-item {
    display: flex;
    align-items: center;
    gap: 5px;
}
.store-last-content .icon{
    color: var(--padrao);
    font-size: 13px;
}
.store-last-content .store-text-data {
    display: flex; /* Usar flexbox para alinhar ícones e textos */
    align-items: center; /* Alinhar verticalmente */
}
.store-last-content .iconLast {
    font-size: 13px;
    color: var(--padrao);
}
.store-last-content .info-item span {
    font-size: 11px;
    font-weight: 500;
}
.store-last-content .store-text-data span {
    font-size: 11px; /* Ajustar tamanho do texto conforme necessário */
    margin-right: 10px; /* Espaço entre os textos */
    margin-top: 2px;
}
@media (max-width: 576px) {
    .store-last-content .store-text-data {
        gap: 6px;
        font-size: 10px;
        flex-wrap: wrap;
    }

    .store-last-content .iconLast,
    .store-last-content .icon {
        font-size: 11px;
    }

    .store-last-content .info-item span,
    .store-last-content .store-text-data span {
        font-size: 10px;
        margin-right: 6px;
    }
}
.header-schedule {
    position: absolute;
    top: 135px; /* Ajuste conforme necessário para a posição vertical desejada */
    right: 35px; /* Ajuste conforme necessário para o alinhamento à direita */
    padding: 0px 10px; /* Espaçamento interno do conteúdo */
    background-color: #D7FFCF; /* Cor de fundo */
    border-radius: 25px; /* Borda arredondada */
}
.header-schedule .schedule {
    display: inline-block;
    padding: 0px 10px; /* Espaçamento interno do conteúdo */
    font-size: 13px; /* Tamanho da fonte */
    color: #4BC532; /* Cor do texto */
}
.schedule .schedule-text {
    color: #4BC532;
    font-size: 12px;
}
@media (min-width: 768px) {
    .store-content .store-name {
        font-size: 26px; /* Aumentar em 2px para telas de computador */
    }
    .store-content .store-data,
    .store-content .store-address,
    .store-last-content .store-text-data span {
        font-size: 13px; /* Aumentar em 2px para telas de computador */
    }
    .header-schedule {
        right: 100px; /* Ajuste conforme necessário para o alinhamento à direita */
    }
}
.user-info {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    padding: 8px 12px;
    margin: 16px auto 0 auto;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    width: 90%;
}
.user-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
} 
.user-name-header {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
}
.loyalty-points {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: var(--padrao);
} 
.loyalty-points ion-icon {
    font-size: 16px;
    color: var(--padrao);
}
.login-button {
    display: none;
    white-space: nowrap;
    width: 100px;
    padding: 8px 12px;
    text-decoration: none;
    text-align: center;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.3s ease;
} 
.login-button:hover {
    background-color: var(--padrao-hover);
} 
.user-info.unlogged .user-panel {
    display: none;
}
.user-info.unlogged .login-button {
    display: block;
} 
.user-icon-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--padrao);
    text-decoration: none;
    transition: color 0.3s ease;
} 
.user-icon-link ion-icon {
    font-size: 24px;
}  
.user-icon-link:hover {
    color: var(--padrao-hover);
}  
@media (max-width: 768px) {
    .user-info {
      margin-top: 12px;
      padding: 6px 10px;
    }
  
    .user-panel {
      flex-wrap: nowrap;
      gap: 5px;
    }
  
    .user-name,
    .loyalty-points {
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
      white-space: nowrap; 
    }
  
    .login-button {
      font-size: 12px;
      padding: 6px 10px;
    }
  
    .user-icon-link ion-icon {
      font-size: 20px;
      display: flex;
      align-items: center;
    }
}

/*======== PWA =========*/
.install-app-container {
    position: relative;
    margin: 16px auto 0 auto;
    width: 90%;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    max-width: 1200px; 
}
.install-app-block {
    position: relative;
    width: 100%;
    transition: all 0.3s ease;
}
@media (min-width: 480px) {
    .install-app-block {
        width: calc(50% - 6px); /* Dois blocos lado a lado com espaçamento */
    }
}
.install-app-button {
    display: none;
    align-items: center;
    gap: 12px;
    background-color: white;
    color: #333;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    font-family: var(--fonte);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    text-align: left;
}
.install-app-button:hover {
    background-color: #f9f9f9;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}
.install-icon {
    font-size: 24px;
    color: var(--padrao); 
    background-color: rgba(var(--padrao-rgb), 0.05);
    padding: 8px;
    border-radius: 8px;
    transition: all 0.3s ease;
}
.install-app-button:hover .install-icon {
    transform: scale(1.05);
}
.install-text-container {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.install-title {
    font-weight: 600;
    color: #333;
    margin-bottom: 2px;
}
.install-subtitle {
    font-size: 12px;
    color: #777;
    font-weight: normal;
}
.install-app-info {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 16px;
    margin-top: 8px;
    z-index: 20;
    display: none;
    transform: translateY(-10px);
    opacity: 0;
    transition: all 0.3s ease;
}
.install-app-info.active {
    display: block;
    transform: translateY(0);
    opacity: 1;
}
.install-app-info-content p {
    margin: 0 0 12px 0;
    font-size: 14px;
    color: var(--text);
    line-height: 1.5;
}
.install-app-actions {
    display: flex;
    gap: 8px;
}
.install-app-now {
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    flex: 1;
    font-family: var(--fonte);
}
.install-app-now:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.close-install-info {
    background-color: #f0f0f0;
    color: var(--text);
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    flex: 1;
    font-family: var(--fonte);
}
.close-install-info:hover {
    background-color: #e0e0e0;
    transform: translateY(-2px);
}
@media (min-width: 768px) {
    .install-app-container {
        width: 90%;
        max-width: 1200px;
        margin: 24px auto 0 auto;
        gap: 20px;
        justify-content: flex-start; 
    }

    .install-app-block {
        width: 300px; 
        margin-right: 20px; 
    }

    .install-app-button {
        padding: 12px 18px;
        font-size: 14px;
        border-radius: 10px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }

    .install-icon {
        font-size: 26px;
        padding: 10px;
    }

    .install-title {
        font-size: 15px;
    }

    .install-subtitle {
        font-size: 13px;
    }

    .install-app-info {
        width: 300px; 
        border-radius: 12px;
        padding: 20px;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
    }

    .install-app-info-content p {
        font-size: 15px;
    }

    .install-app-actions {
        gap: 12px;
    }

    .install-app-now, 
    .close-install-info {
        padding: 10px 16px;
        font-size: 14px;
        border-radius: 8px;
    }
}
@media (min-width: 1200px) {
    .install-app-container {
        max-width: 1200px;
    }
}
@media (max-width: 480px) {
    .install-app-button {
        padding: 8px 12px;
    }

    .install-icon {
        font-size: 20px;
        padding: 6px;
    }

    .install-app-info-content p {
        font-size: 13px;
    }

    .install-app-now, 
    .close-install-info {
        font-size: 12px;
        padding: 6px 10px;
    }
}

/*======== Ratings ========*/
.rating-modal {
    display: none;
    position: fixed;
    z-index: 1001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
}
.rating-modal-content {
    background-color: #fff;
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    animation: modalSlideUp 0.3s ease;
    display: flex;
    flex-direction: column;
    position: relative;
}
@keyframes modalSlideUp {
    from {transform: translateY(100%);}
    to {transform: translateY(0);}
}

.rating-modal-header {
    padding: 16px;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 10;
}
.rating-modal-header h2 {
    font-size: 18px;
    color: var(--text);
    margin: 0;
    font-weight: 600;
}
.close-rating {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.close-rating ion-icon {
    font-size: 24px;
    color: #666;
}
.rating-modal-body {
    padding: 16px;
    overflow-y: auto;
    flex: 1;
}
.rating-summary {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}
.rating-average {
    display: flex;
    justify-content: center;
}
.average-score {
    display: flex;
    align-items: center;
    gap: 16px;
}
.average-number {
    font-size: 42px;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
}
.average-stars {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.stars-container {
    position: relative;
    width: 100px;
    height: 20px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23dddddd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 20px 20px;
}
.stars-filled {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%23EA1D2C' stroke='%23EA1D2C' stroke-width='0' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 20px 20px;
}
.total-ratings {
    font-size: 12px;
    color: #999;
}
.rating-distribution {
    padding: 0 16px;
}
.rating-bar {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}
.rating-label {
    width: 16px;
    text-align: center;
    font-size: 13px;
    color: #666;
    margin-right: 8px;
}
.progress-bar {
    flex: 1;
    height: 6px;
    background-color: #f0f0f0;
    border-radius: 3px;
    overflow: hidden;
    margin-right: 8px;
}
.progress {
    height: 100%;
    background-color: var(--padrao);
    border-radius: 3px;
}
.rating-count {
    width: 24px;
    text-align: right;
    font-size: 13px;
    color: #999;
}
.rating-form-container {
    margin-bottom: 24px;
    padding: 16px;
    background-color: #f9f9f9;
    border-radius: 8px;
}
.rating-form-container h3 {
    font-size: 16px;
    color: var(--text);
    margin-top: 0;
    margin-bottom: 16px;
    font-weight: 600;
}
.rating-stars {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}
.star {
    cursor: pointer;
    font-size: 24px;
    color: #ddd;
    transition: transform 0.2s ease, color 0.2s ease;
}
.star:hover, .star.active {
    transform: scale(1.1);
    color: var(--padrao);
}
.star ion-icon {
    width: 24px;
    height: 24px;
    color: inherit;
}
.rating-text {
    font-size: 14px;
    color: #666;
    margin-left: 8px;
}
.rating-tags-container {
    margin-bottom: 16px;
}
.tag-category {
    margin-bottom: 16px;
}
.tag-category h4 {
    font-size: 14px;
    color: #666;
    margin: 0 0 8px 0;
    font-weight: 500;
}
.tag-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tag-option {
    display: flex;
    align-items: center;
    gap: 4px;
    background-color: #f0f0f0;
    border: 1px solid #e0e0e0;
    border-radius: 16px;
    padding: 6px 12px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
    transition: all 0.2s ease;
}
.tag-option:hover {
    background-color: #e8e8e8;
}
.tag-option.selected {
    background-color: var(--padrao);
    color: white;
    border-color: var(--padrao);
}
.tag-option ion-icon {
    font-size: 16px;
}
#rating-form textarea {
    width: 100%;
    height: 80px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 16px;
    font-family: var(--fonte);
    font-size: 14px;
    resize: none;
}
#rating-form textarea:focus {
    border-color: var(--padrao);
    outline: none;
}
.submit-rating {
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-family: var(--fonte);
    width: 100%;
}
.submit-rating:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.ratings-filter {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    overflow-x: auto;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
}
.ratings-filter::-webkit-scrollbar {
    height: 0;
    display: none;
}
.filter-label {
    font-size: 14px;
    color: #666;
    margin-right: 12px;
    white-space: nowrap;
}
.filter-options {
    display: flex;
    gap: 8px;
}
.filter-btn {
    background-color: #f0f0f0;
    border: none;
    border-radius: 16px;
    padding: 6px 12px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.filter-btn:hover {
    background-color: #e0e0e0;
}
.filter-btn.active {
    background-color: var(--padrao);
    color: white;
}
.ratings-list {
    margin-top: 16px;
}
.rating-response {
    margin-top: 12px;
    padding: 12px;
    background-color: #f9f9f9;
    border-left: 4px solid var(--padrao);
    border-radius: 6px;
}
.response-header {
    font-weight: 600;
    font-size: 13px;
    color: var(--padrao);
    margin-bottom: 6px;
}
.response-text {
    font-size: 14px;
    color: #555;
    line-height: 1.4;
    margin: 0;
}
.ratings-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.rating-item {
    background-color: white;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 16px;
}
.rating-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}
.rating-user {
    display: flex;
    align-items: center;
    gap: 12px;
}
.user-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--padrao);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 12px;
}
.user-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.user-name {
    font-weight: 600;
    color: var(--text);
    font-size: 14px;
}
.rating-date {
    font-size: 12px;
    color: #999;
}
.rating-stars-small {
    position: relative;
    width: 70px;
    height: 14px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23dddddd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 14px 14px;
}
.rating-stars-small .stars-filled {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%23EA1D2C' stroke='%23EA1D2C' stroke-width='0' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 14px 14px;
}
.rating-comment {
    font-size: 14px;
    color: #333;
    line-height: 1.4;
    margin: 0 0 12px 0;
}
.rating-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.rating-tag {
    background-color: #f5f5f5;
    border-radius: 12px;
    padding: 4px 10px;
    font-size: 12px;
    color: #666;
}
@media (min-width: 768px) {
    .rating-modal-content {
        margin: 0;
        width: 550px;
        max-width: 90%;
        height: auto;
        max-height: 90vh;
        border-radius: 8px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    }
    
    @keyframes modalSlideUp {
        from {opacity: 0; transform: translateY(20px);}
        to {opacity: 1; transform: translateY(0);}
    }
    
    .rating-modal-header {
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
    }
    
    .rating-summary {
        flex-direction: row;
        align-items: center;
    }
    
    .rating-average {
        flex: 1;
    }
    
    .rating-distribution {
        flex: 2;
    }
    
    .close-rating {
        position: absolute;
        right: 16px;
        top: 16px;
    }
    
    .rating-modal-header h2 {
        width: 100%;
        text-align: center;
    }
}
@media (max-width: 480px) {
    .rating-modal-header h2 {
        font-size: 16px;
    }
    
    .rating-modal-body {
        padding: 12px;
    }
    
    .average-number {
        font-size: 36px;
    }
    
    .star {
        font-size: 22px;
    }
    
    .star ion-icon {
        width: 22px;
        height: 22px;
    }
    
    .rating-text {
        font-size: 13px;
    }
    
    .tag-category h4 {
        font-size: 13px;
    }
    
    .tag-option {
        padding: 5px 10px;
        font-size: 12px;
    }
    
    #rating-form textarea {
        height: 70px;
        padding: 10px;
    }
    
    .submit-rating {
        padding: 10px 14px;
    }
    
    .filter-btn {
        padding: 5px 10px;
        font-size: 12px;
    }
    
    .rating-item {
        padding: 12px;
    }
    
    .user-avatar {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }
    
    .user-name {
        font-size: 13px;
    }
    
    .rating-date {
        font-size: 11px;
    }
    
    .rating-comment {
        font-size: 13px;
    }
    
    .rating-tag {
        font-size: 11px;
        padding: 3px 8px;
    }
    
    .pagination-button {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
}

/*======== Nav Categories ========*/
.groups {
    margin-top: 15px;
    background-color: var(--background-white);
    width: 100%;
    padding: 0;
    overflow-x: auto;
    white-space: nowrap;
    display: flex !important; /* Força a exibição */
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 2 !important; /* Garante que fique acima de outros elementos */
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); /* Adiciona uma sombra sutil para destacar */
    visibility: visible !important;
    opacity: 1 !important;
    transition: all 0.3s ease;
}
.groups::-webkit-scrollbar {
    display: none;
}
.groups .list-group {
    list-style-type: none;
    width: 100%;
    padding: 0;
    margin: 0;
    display: flex;
}
.groups .list-group a {
    display: inline-block;
    padding: 16px 12px;
    font-size: 16px;
    color: var(--text);
    font-weight: 400;
    text-decoration: none;
    position: relative;
    cursor: pointer;
    transition: color 0.2s ease;
    margin: 0;
    border-radius: 0;
}
.groups .list-group a .quantity-group {
    display: none; /* Removendo a quantidade já que não aparece na imagem */
}
.groups .list-group a:first-child {
    margin-left: 0;
}
.groups .list-group a.active {
    color: var(--padrao);
    font-weight: 500;
    background-color: transparent;
}
.groups .list-group a.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--padrao);
    border-radius: 0;
}
.groups .list-group a:hover {
    transform: none;
    box-shadow: none;
    color: var(--padrao);
}
.list-group .iconMove {
    display: none;
}
@media (max-width: 499px) {
    .groups {
        padding: 0 12px;
    }
    
    .groups .list-group a {
        padding: 14px 10px;
        font-size: 15px;
    }
}
@media (max-width: 767px) {
    .groups {
      padding: 0 8px;
      height: auto !important; /* Garante que a altura seja calculada automaticamente */
      min-height: 48px; /* Define uma altura mínima */
    }
  
    .groups .list-group {
      width: auto; /* Permite que a lista se expanda conforme necessário */
      display: flex !important;
    }
  
    .groups .list-group a {
      padding: 12px 10px;
      font-size: 14px;
      display: inline-block !important;
    }
  
    /* Melhora a visibilidade do item ativo em dispositivos móveis */
    .groups .list-group a.active {
      font-weight: 600;
    }
  
    .groups .list-group a.active::after {
      height: 3px; /* Linha mais grossa para melhor visibilidade */
    }
}

/*======== search box ===========*/
.search-container-header {
    width: 100%;
    max-width: 400px;
    top: 15px;
    margin: 0 auto;
    background-color: #f2f2f2;
    border-radius: 20px; /* Reduzido de 30px para 20px */
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* Reduzido a sombra */
}
.search-box-header {
    display: flex;
    align-items: center;
    height: 45px;
    background-color: #f2f2f2;
    border-radius: 20px; /* Reduzido de 30px para 20px */
    width: 100%;
    padding: 4px 12px; /* Reduzido significativamente */
}
.search-icon {
    color: #717171;
    font-size: 14px; /* Reduzido de 18px para 16px */
    margin-right: 8px; /* Reduzido de 10px para 8px */
}
.search-input {
    border: none;
    background: none;
    width: 100%;
    padding: 4px 0; /* Reduzido de 6px para 4px */
    font-size: 14px;
    color: var(--text);
    line-height: 1; /* Adicionado para reduzir a altura */
}
.search-input::placeholder {
    color: #717171;
}
.search-input:focus {
    outline: none;
}
@media (min-width: 1024px) {
    .search-container-header {
        max-width: 400px;
    }
    .search-box-header {
        padding: 6px 15px; /* Ligeiramente maior para desktop */
    }
    .search-icon {
        font-size: 18px;
    }
    .search-input {
        font-size: 15px;
    }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .search-container-header {
        max-width: 90%;
    }
}
@media (max-width: 767px) {
    .search-container-header {
        width: 90%;
        max-width: 400px;
    }
}

.highlighted-product {
    box-shadow: 0 0 5px rgba(255, 252, 49, 0.74);
    transition: box-shadow 0.3s ease;
}
.highlight {
    background-color: rgba(255, 251, 23, 0.349);
    border-radius: 2px;
    padding: 0 2px;
}
#no-results-message {
    font-size: 16px;
    color: #666;
    text-align: center;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
    margin-top: 20px;
}

/* Styles for when the search bar is fixed */
.search-container-header.fixed {
    position: fixed;
    top: 65px;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/*======== Botões interativos ========*/
.interact {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.interact .interact-buttons {
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    flex-wrap: wrap;
    gap: 5px;
}
.interact .interact-buttons .list-buttom {
    list-style-type: none; 
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.interact .interact-buttons .list-buttom li {
    margin: 0 3px; 
}
.interact .interact-buttons .list-buttom a {
    display: flex; 
    align-items: center; 
    padding: 3px 6px; 
    font-size: 10px;
    color: var(--secondaryText);
    font-weight: 400;
    text-decoration: none;
    border-radius: 25px;
    border: 1px solid var(--secondaryText);
}
.interact .interact-buttons .list-buttom a ion-icon {
    margin-right: 5px; /* Espaço entre o ícone e o texto */
    margin-top: -2px;
}
.interact .interact-buttons .list-buttom a:hover {
    border-color: var(--padrao); 
}
@media (max-width: 320px) {
    .interact .interact-buttons {
        width: 100%;
    }
    .interact .interact-buttons .list-buttom {
        flex-wrap: wrap;
    }
    .interact .interact-buttons .list-buttom li {
        margin: 2px 3px; 
    }
}
@media (min-width: 768px) {
    .interact .interact-buttons .list-buttom a {
        font-size: 12px; /* Aumenta o tamanho da fonte */
        padding: 5px 15px; /* Aumenta o padding */
    }
}
.iconFavorito {
   color: #EC1D27;
   font-size: 15px; 
}
.iconCombos {
    color: #4BC532;
    font-size: 15px; 
}
.iconPromocao {
    color: #04B8CB;
    font-size: 15px; 
}
.iconPontos {
    color: #8A2BE7;
    font-size: 15px; 
}
.iconRating {
    color: #FFD700;
    font-size: 15px; 
}

/*======== Mais Pedidos ========*/
.more-requests {
    margin-top: 15px;
    width: 100%;
    overflow-x: auto; /* Adiciona scroll horizontal */
    white-space: nowrap; /* Evita que os itens quebrem a linha */
}
.more-requests .text-tittle {
    margin-left: 2%;
    font-size: 20px;
    font-weight: bold;
    color: #424141;
}
.more-requests-items {
    display: inline-block; /* Mantém os itens inline para scroll horizontal */
    margin-right: 5px;
    vertical-align: top; /* Alinha os itens ao topo */
}
.promotion {
    position: absolute;
    top: 5px;
    left: 5px;
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 10px;
    font-weight: bold;
    z-index: 1; /* Garante que o quadrinho fique sobre a imagem */
}
.old-price-more-request {
    font-size: 10px;
    color: var(--secondaryText);
    text-decoration: line-through;
    margin-left: -25%; 
}
.more-requests-item {
    display: flex;
    flex-direction: column;
    align-items: left;
    width: 200px;
    margin: 5px;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s, box-shadow 0.3s; /* Transição suave para hover */
}
.more-requests-item:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Efeito de sombra leve */
}
.more-requests-item img {
    width: 100%;
    height: 120px;
    object-fit: cover; /* Ajusta a imagem para cobrir o espaço sem distorcer */
}
.more-requests-info {
    padding: 10px;
    text-align: left; /* Alinha o texto à esquerda */
}
.more-requests-price {
    display: flex;
    justify-content: space-between; /* Alinha o preço e o ícone nos extremos */
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-decoration: none;
    margin-bottom: 5px;
}
.more-requests-price .iconFavorito {
    color: #EC1D27;
    margin-right: 5px; /* Alinha o ícone completamente à direita */
    font-size: 25px;
}
.more-requests-item-name {
    font-size: 12px;
    color: #666;
    margin-top: -2px; /* Espaço entre o nome do produto e o preço */
    margin-left: -2px; /* Margem à esquerda */
    word-wrap: break-word; /* Permite a quebra de linha na descrição */
}
@media (min-width: 768px) {
    .more-requests {
        margin-left: 2%;
    }

    .more-requests-items {
        margin-right: 20px;
    }

    .more-requests-item {
        width: 200px; /* Aumenta a largura dos itens */
    }

    .more-requests-price {
        font-size: 16px;
    }

    .more-requests-item-name {
        font-size: 12px;
    }
}

/*======== products ========*/
.main-products {
    width: 100%;
    padding: 20px;
    background-color: white;
}
.product-group {
    margin-bottom: 30px;
}
.products-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
}
.group-name {
    font-size: 24px;
    font-weight: bold;
    color: #424141;
}
.group-description {
    font-size: 12px;
    color: #777;
    margin-top: 5px;
    margin-bottom: 20px;
}
.product-div {
    height: 1px;
    background-color: #ddd;
    margin-bottom: 10px;
}
.products {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 10px;
    margin-bottom: 5px;
    border-radius: 5px;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s ease;
}
.products:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve ao passar o mouse */
}
.product-image {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 10px;
    margin-left: 20px; /* Espaçamento entre a imagem e a informação do produto */
}
.product-info {
    flex: 1; /* Ocupa todo o espaço disponível */
    display: flex;
    flex-direction: column; /* Garante que os elementos internos fiquem empilhados verticalmente */
}
.product-name {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}
.product-name .iconFavorito {
    color: #EC1D27;
    font-size: 20px;
    margin-left: 10px; 
}
.product-name .iconPromocao {
    color: #04B8CB;
    font-size: 16px;
    margin-left: 10px; 
}
.product-description {
    font-size: 11px;
    color: #666;
    margin-bottom: 18px;
    margin-top: -15px;
}
.product-price {
    font-size: 14px;
    font-weight: bold;
    color: #333;
}
.cart-badge {
    position: absolute;
    background-color: var(--padrao);
    color: white;
    font-size: 11px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    padding: 0 2px;
    border-radius: 50%; 
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: -0.2px; 
    line-height: 1;
}
.cart-badge.top-right {
    top: 5px;
    right: 5px;
}
.cart-badge.top-left {
    top: 5px;
    left: 5px;
}
.cart-badge[data-count="99+"] {
    font-size: 9px;
    padding: 0 2px;
}
@media (max-width: 480px) {
    .cart-badge {
        min-width: 16px;
        height: 16px;
    }
}
.product-price .old-price-more-request {
    font-size: 13px;
    color: #999;
    text-decoration: line-through;
    margin-left: 5px; 
}
.product-promotion {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 5px;
    border-radius: 7px;
    font-size: 10px;
    font-weight: bold;
    z-index: 1;
}
@media (min-width: 1024px) {
    .products {
        width: calc(50% - 5px); /* 50% da largura menos a margem */
    }
}
.details-product-packaging {
    margin-bottom: 24px;
}
.details-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}
.details-subtitle-complements {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.details-obligatory {
    font-size: 12px;
    color: var(--primary-color);
    font-weight: 500;
    margin-bottom: 12px;
}
.packaging-select-wrapper {
    position: relative;
    width: 100%;
}
.packaging-select {
    width: 100%;
    padding: 14px 16px;
    font-size: 16px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.packaging-select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(234, 29, 44, 0.2);
}
.packaging-select:hover {
    background-color: var(--hover-color);
}
.select-icon {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-color);
    pointer-events: none;
    transition: transform 0.3s ease;
} 
.packaging-select:focus + .select-icon {
    transform: translateY(-50%) rotate(180deg);
}
.packaging-select option {
    font-size: 16px;
    padding: 10px;
}
@media (max-width: 768px) {
    .details-title {
      font-size: 16px;
    }
  
    .packaging-select {
      font-size: 14px;
      padding: 12px 14px;
    }
}

/*======== Fidelidade ========*/
.loyalty-requests {
    margin-top: 15px;
    width: 100%;
    overflow-x: auto; /* Adiciona scroll horizontal */
    white-space: nowrap; /* Evita que os itens quebrem a linha */
}
.loyalty-requests .text-tittle {
    margin-left: 2%;
    font-size: 20px;
    font-weight: bold;
    color: #424141;
}
.loyalty-requests-items {
    display: inline-block; /* Mantém os itens inline para scroll horizontal */
    margin-right: 5px;
    vertical-align: top; /* Alinha os itens ao topo */
}
.loyalty-requests-item {
    display: flex;
    flex-direction: column;
    align-items: left;
    width: 200px;
    margin: 5px;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s, box-shadow 0.3s; /* Transição suave para hover */
}
.loyalty-requests-item:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Efeito de sombra leve */
}
.loyalty-requests-item img {
    width: 100%;
    height: 120px;
    object-fit: cover; /* Ajusta a imagem para cobrir o espaço sem distorcer */
}
.loyalty-requests-info {
    padding: 10px;
    text-align: left; /* Alinha o texto à esquerda */
}
.loyalty-requests-price {
    display: flex;
    justify-content: space-between; /* Alinha o preço e o ícone nos extremos */
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-decoration: none;
    margin-bottom: 5px;
}
.loyalty-requests-price .iconPontos {
    color: #8A2BE7;
    margin-right: 5px; /* Alinha o ícone completamente à direita */
    font-size: 18px;
}
.loyalty-requests-item-name {
    font-size: 12px;
    color: #666;
    margin-top: -2px; /* Espaço entre o nome do produto e o preço */
    margin-left: -2px; /* Margem à esquerda */
    word-wrap: break-word; /* Permite a quebra de linha na descrição */
}
/* Estilos para dispositivos maiores */
@media (min-width: 768px) {
    .loyalty-requests {
        margin-left: 2%;
    }

    .loyalty-requests-items {
        margin-right: 20px;
    }

    .loyalty-requests-item {
        width: 200px; /* Aumenta a largura dos itens */
    }

    .loyalty-requests-price {
        font-size: 16px;
    }

    .loyalty-requests-item-name {
        font-size: 12px;
    }
}

/*======== Footer ========*/
.footer {
    background-color: #fff;
    color: var(--text);
    margin-top: 30px;
    padding: 40px 0 20px;
    font-family: var(--fonte);
    border-top: 1px solid #f0f0f0;
}
.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 20px;
    gap: 30px;
}
.footer-column {
    flex: 1;
    min-width: 250px;
}
.footer-logo {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}
.logo-img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin-right: 10px;
    object-fit: cover;
}
.footer-logo h2 {
    font-size: 20px;
    margin: 0;
    color: var(--text);
}
.footer-slogan {
    font-size: 14px;
    color: var(--secondaryText);
    margin: 0 0 20px;
}
.footer h3 {
    font-size: 16px;
    margin: 0 0 20px;
    position: relative;
    padding-bottom: 10px;
    color: var(--text);
    font-weight: 600;
}
.footer h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background-color: var(--padrao);
}
.footer-info {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-info li {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    color: var(--secondaryText);
    font-size: 14px;
}
.footer-info ion-icon {
    margin-right: 10px;
    font-size: 18px;
    color: var(--padrao);
    min-width: 20px;
}
.social-icons {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}
.social-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: #f5f5f5;
    border-radius: 50%;
    color: var(--text);
    font-size: 20px;
    transition: all 0.3s ease;
}
.social-icon:hover {
    background-color: var(--padrao);
    color: white;
    transform: translateY(-3px);
}
.app-download h4 {
    font-size: 14px;
    margin: 0 0 10px;
    color: var(--text);
}
.app-buttons {
    display: flex;
    gap: 10px;
}
.app-button {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    background-color: #f5f5f5;
    border-radius: 6px;
    color: var(--text);
    text-decoration: none;
    font-size: 12px;
    transition: all 0.3s ease;
}
.app-button:hover {
    background-color: var(--padrao);
    color: white;
}
.app-button ion-icon {
    font-size: 18px;
    margin-right: 5px;
}
.footer-bottom {
    max-width: 1200px;
    margin: 30px auto 0;
    padding: 20px 20px 0;
    border-top: 1px solid #f0f0f0;
    text-align: center;
}
.footer-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 15px;
}
.footer-links a {
    color: var(--secondaryText);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.3s ease;
}
.footer-links a:hover {
    color: var(--padrao);
}
.copyright {
    font-size: 12px;
    color: var(--secondaryText);
    margin: 0;
}
@media (max-width: 768px) {
    .footer-container {
        flex-direction: column;
        gap: 30px;
    }
    
    .footer-column {
        flex: 1 1 100%;
    }
    
    .social-icons {
        justify-content: flex-start;
    }
    
    .footer-links {
        flex-direction: column;
        gap: 10px;
        align-items: center;
    }
}
@media (max-width: 480px) {
    .footer {
        padding: 30px 0 15px;
    }
    
    .footer-container {
        padding: 0 15px;
        gap: 25px;
    }
    
    .footer h3 {
        font-size: 16px;
        margin-bottom: 15px;
    }
    
    .footer-info li {
        font-size: 13px;
    }
    
    .social-icon {
        width: 35px;
        height: 35px;
        font-size: 18px;
    }
    
    .app-buttons {
        flex-direction: column;
    }
}

/*======== Imagem Preview ========*/
.image-preview-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    padding-top: 50px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.9);
    transition: opacity 0.3s ease;
}
.image-preview-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 80vh;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    animation: zoomIn 0.3s ease;
}
@keyframes zoomIn {
    from {
      transform: scale(0.8);
      opacity: 0;
    }
    to {
      transform: scale(1);
      opacity: 1;
    }
}
.close-image-preview {
    position: absolute;
    top: 15px;
    right: 25px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    transition: 0.3s;
    cursor: pointer;
    z-index: 10000;
}
.close-image-preview:hover,
.close-image-preview:focus {
    color: #bbb;
    text-decoration: none;
}
.details-product-image img,
.complements-picture,
.flavor-picture {
    cursor: pointer;
    transition: transform 0.2s ease;
}
.details-product-image img:hover,
.complements-picture:hover,
.flavor-picture:hover {
    transform: scale(1.02);
}
@media only screen and (max-width: 700px) {
    .image-preview-content {
      max-width: 95%;
    }
    
    .image-preview-modal {
      padding-top: 60px;
    }
    
    .close-image-preview {
      top: 10px;
      right: 10px;
      font-size: 30px;
    }
}

/*======== Popup Item ========*/
.popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    overflow-y: auto;
}
.popup-content {
    background-color: #fff;
    margin: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;   
    max-height: 90vh;
    overflow-y: auto;
}
.popup-header {
    position: relative;
    height: 200px;
    margin-top: -40px;
}
.popup-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.details-back {
    position: sticky;
    top: 16px; /* Mantém fixo no topo do content */
    left: 16px;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 11; /* Garante que fique acima do conteúdo rolável */
}
@media (max-width: 768px) {
    .popup {
        display: flex;
        align-items: center;
        justify-content: center;
        max-height: 100%;
    }

    .popup-content {
        border-radius: 0px;
        height: 100%;
        max-height: 100%;
        animation: SlideUpProduct 0.3s ease;
    }
    
    @keyframes SlideUpProduct {
        from {transform: translateY(100%);}
        to {transform: translateY(0);}
    }

    .details-back {
        top: 56px;    
    }    
}
.details-back-icon {
    font-size: 24px;
    color: var(--text);
}
.details-product-promotion {
    position: absolute;
    top: 16px;
    right: 16px;
    background-color: var(--green);
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
}
.details-information {
    padding: 16px;
}
.details-information-header {
    margin-bottom: 16px;
}
.details-product-name {
    font-size: 20px;
    font-weight: bold;
    color: var(--text);
    margin-bottom: 4px;
}
.details-product-description {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 8px;
}
.details-product-price {
    font-size: 16px;
    font-weight: bold;
    color: var(--text);
}
.details-product-price.promo {
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    z-index: 1; /* Cor verde quando tem a classe promotion */
}
.details-product-price.fidelidade {
    background-color: #E8D9FF; /* Roxo claro */
    color: #8A2BE7; /* Roxo forte */
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    z-index: 1;
}
.details-old-price-more-request {
    font-size: 12px;
    color: var(--light-text);
    text-decoration: line-through;
    margin-left: 8px;
}
.details-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--text);
    margin: 24px 0 12px;
}
.details-subtitle-complements {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.details-obligatory {
    font-size: 12px;
    color: var(--padrao);
    font-weight: bold;
}

.loading-spinner-product {
    width: 20px;
    height: 20px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid var(--gray-dark);
    border-radius: 50%;
    animation: spinProductPopup 1s linear infinite;
    margin-left: 10px;
    display: inline-block;
}
@keyframes spinProductPopup {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.details-confirm-button.loading {
    pointer-events: none;
    opacity: 0.5;
}

.details-content .search-input-container {
    position: sticky;
    top: 0;
    background-color: #fff;
    z-index: 10;
    padding: 16px;
    padding-top: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-color);
}
.details-content .search-input {
    display: flex;
    align-items: center;
    background-color: var(--gray);
    border-radius: 8px;
    padding: 8px 12px;
    margin: 0;
}
.details-content .search-input ion-icon {
    color: var(--light-text);
    margin-right: 8px;
}
.details-content .search-input input {
    border: none;
    background-color: transparent;
    font-size: 14px;
    width: 100%;
    outline: none;
}

.details-flavors-items,
.details-complements-items {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.flavor-item,
.complements-item {
    display: flex;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--gray);
    position: relative;
}
.flavor-picture,
.complements-picture {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    margin-right: 12px;
    flex-shrink: 0;
}

.flavor-info {
    flex-grow: 1;
    margin-right: 12px;
}
.flavor-name,
.complements-name {
    font-size: 14px;
    font-weight: bold;
    color: var(--text);
    margin-bottom: 4px;
}
.flavor-price,
.complements-price {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.flavor-details-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--padrao);
    cursor: pointer;
    margin-top: 4px;
}
.flavor-details-content {
    display: none;
    font-size: 12px;
    color: var(--light-text);
    margin-top: 4px;
}
.flavor-details.active .flavor-details-content {
    display: block;
}
.flavor-info {
    flex-grow: 1;
    margin-right: 12px;
}
.details-flavors-items .flavor-checkbox-wrapper,
.complements-radio-wrapper {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.flavor-checkbox,
.complements-radio-button {
    flex-shrink: 0;
    align-self: center;
}
.complements-quantity {
    display: flex;
    align-items: center;
    margin-left: auto;
}
.details-complements-sub,
.details-complements-add,
.details-items-sub,
.details-items-add {
    font-size: 24px;
    color: var(--padrao);
    cursor: pointer;
}
.details-items-quantity-selected,
.details-items-quantity-all-selected {
    font-size: 16px;
    font-weight: bold;
    margin: 0 12px;
}
.details-items-quantity {
    display: flex;
    align-items: center;
}
.details-items-quantity-all-selected {
    width: 50px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    font-family: var(--fonte);
    border: none;
    background-color: transparent;
    -moz-appearance: textfield;
}
.details-items-quantity-all-selected::-webkit-outer-spin-button,
.details-items-quantity-all-selected::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Retiradas */
.details-product-complements.withdrawal {
    background-color: #fff5e6; /* Light orange background */
    border: 1px solid #ffd699; /* Darker orange border */
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 24px;
}
.details-product-complements.withdrawal::before {
    content: "Retirada";
    display: inline-block;
    background-color: #ff9900; /* Orange background */
    color: white;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}
.details-product-complements.withdrawal .details-title {
    color: #cc7a00; /* Darker orange text */
}
.details-product-complements.withdrawal .complements-item {
    background-color: white;
    border: 1px solid #ffd699;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 8px;
}
.details-product-complements.withdrawal .complements-name {
    color: #cc7a00; /* Darker orange text */
}
.details-product-complements.withdrawal .complements-price {
    color: #ff9900; /* Orange text */
}
.details-product-complements.withdrawal .custom-checkbox .checkmark {
    border-color: #ff9900;
} 
.details-product-complements.withdrawal .custom-checkbox input:checked ~ .checkmark {
    background-color: #ff9900;
}
.details-product-complements.withdrawal .custom-checkbox:hover input ~ .checkmark,
.details-product-complements.withdrawal .custom-checkbox input:focus ~ .checkmark {
    border-color: #cc7a00;
}
.details-product-complements.withdrawal .custom-checkbox input:checked:focus ~ .checkmark {
    box-shadow: 0 0 0 4px rgba(255, 153, 0, 0.1);
}

/* ====== UPLOAD IMAGE =======*/
.details-product-image-upload {
    margin-bottom: 24px;
    border-radius: 12px;
    padding: 16px;
    background-color: var(--white);
  }
.upload-image-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: var(--padrao);
    color: white;
    padding: 12px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-bottom: 16px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.upload-image-label:hover {
    background-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.upload-image-label:active {
    transform: translateY(0);
}
.upload-image-label ion-icon {
    font-size: 18px;
}
.preview-image-container {
    border-radius: 8px;
    overflow: hidden;
    background-color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}
.preview-image-container:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.preview-image {
    width: 100%;
    height: auto;
    max-height: 200px;
    object-fit: contain;
    border-radius: 8px 8px 0 0;
    background-color: #f0f0f0;
    display: block;
}
.thumbnails-container {
    display: flex;
    gap: 8px;
    padding: 12px;
    overflow-x: auto;
    background-color: #f0f0f0;
    border-top: 1px solid var(--border-color);
}
.thumbnails-container::-webkit-scrollbar {
    height: 4px;
}
.thumbnails-container::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.thumbnails-container::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}
.thumbnail-item {
    width: 60px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.2s ease;
    flex-shrink: 0;
    position: relative;
}
.thumbnail-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.thumbnail-item.active {
    border-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.thumbnail-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.thumbnail-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    background-color: var(--padrao);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    cursor: pointer;
    opacity: 0;
    transform: scale(0.8);
    transition: all 0.2s ease;
    z-index: 2;
}
.thumbnail-item:hover .thumbnail-remove {
    opacity: 1;
    transform: scale(1);
}
.upload-progress-container {
    height: 4px;
    background-color: #e0e0e0;
    border-radius: 2px;
    margin-top: 8px;
    overflow: hidden;
    display: none;
}
.upload-progress-container.active {
    display: block;
}
.upload-progress-bar {
    height: 100%;
    background-color: var(--padrao);
    width: 0%;
    transition: width 0.3s ease;
}
.details-observations-input {
    margin-top: 12px;
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    resize: none;
    transition: border-color 0.3s ease;
}
.details-observations-input:focus {
    border-color: var(--padrao);
    outline: none;
}
.drag-drop-zone {
    border: 2px dashed var(--border-color);
    border-radius: 8px;
    padding: 24px;
    text-align: center;
    margin-bottom: 16px;
    transition: all 0.3s ease;
    background-color: white;
}
.drag-drop-zone.drag-over {
    border-color: var(--padrao);
    background-color: rgba(var(--padrao-rgb), 0.05);
}
  
.drag-drop-text {
    color: var(--light-text);
    font-size: 14px;
    margin-bottom: 8px;
}
.drag-drop-icon {
    font-size: 32px;
    color: var(--light-text);
    margin-bottom: 8px;
}
.multiple-images-notice {
    font-size: 12px;
    color: var(--light-text);
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.multiple-images-notice ion-icon {
    color: var(--padrao);
    font-size: 14px;
}
@media (max-width: 768px) {
    .upload-image-label {
      padding: 10px 14px;
      font-size: 13px;
    }
    
    .thumbnail-item {
      width: 50px;
      height: 50px;
    }
    
    .preview-image {
      max-height: 180px;
    }
}
@media (max-width: 480px) {
    .thumbnail-item {
      width: 40px;
      height: 40px;
    }
    
    .preview-image {
      max-height: 150px;
    }
    
    .drag-drop-zone {
      padding: 16px;
    }
}

/* Estilos personalizados para checkbox e radio button */
.custom-checkbox,
.custom-radio {
    position: relative;
    display: inline-flex; /* Flex para centralizar */
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 10px;
    cursor: pointer;
}
/* Oculta o input padrão */
.custom-checkbox input,
.custom-radio input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
/* Estilos do checkmark */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  background-color: #fff;
  border: 2px solid var(--padrao);
  border-radius: 4px;
}
/* Checkmark para radio */
.custom-radio .checkmark {
    border-radius: 50%;
}
/* Estado ativo */
.custom-checkbox input:checked ~ .checkmark,
.custom-radio input:checked ~ .checkmark {
    background-color: var(--padrao);
}
.custom-checkbox input:checked ~ .checkmark:after {
    content: "";
    position: absolute;
    left: 4px; /* Ajuste esses valores conforme necessário */
    top: 1px; /* Ajuste esses valores conforme necessário */
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
    display: block;
}
  
/* Ponto interno do radio */
.custom-radio .checkmark:after {
    content: "";
    display: none;
    position: absolute;
}
.custom-checkbox input:checked ~ .checkmark:after,
.custom-radio input:checked ~ .checkmark:after {
    display: block;
}
/* Checkmark do radio */
.custom-radio .checkmark:after {
    width: 10px;
    height: 10px;
    background: white;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/*======= Hover e foco =======*/
.details-content .custom-checkbox:hover input ~ .checkmark,
.custom-radio:hover input ~ .checkmark,
.custom-checkbox input:focus ~ .checkmark,
.custom-radio input:focus ~ .checkmark {
    border-color: var(--padrao-hover);
}
.details-content .custom-checkbox input:checked:focus ~ .checkmark,
.custom-radio input:checked:focus ~ .checkmark {
    box-shadow: 0 0 0 4px rgba(var(--padrao-rgb), 0.1);
}

/*======= Estilos para os botões de mais e menos =======*/
.quantity-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    background-color: var(--gray-light);
    border: 1px solid var(--gray);
    border-radius: 50%;
    font-size: 15px;
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s ease;
    outline: none;
}
.quantity-button:hover,
.quantity-button:focus {
    background-color: var(--gray);
}
.quantity-button:active {
    transform: scale(0.95);
}
.details-items-quantity-selected,
.details-items-quantity-all-selected {
    font-size: 15px;
    font-weight: bold;
    margin: 0 12px;
    min-width: 20px;
    text-align: center;
}
.details-observations {
    margin: 24px 0;
}
.details-observations-input {
    width: 100%;
    height: 80px;
    border: 1px solid var(--gray);
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    resize: none;
}
.footer-details-menu {
    position: sticky;
    bottom: 0;
    background-color: #fff;
    padding: 16px;
    border-top: 1px solid var(--gray);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.details-items-quantity {
    display: flex;
    align-items: center;
}
.item-pontos {
    position: relative;
    top: 3px; /* Ajuste para melhor posicionamento */
    background-color: rgba(138, 43, 231, 0.1); /* Fundo sutil para destaque */
    color: #8a2be7;
    font-weight: bold;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}
.details-confirm-button {
    display: flex;
    align-items: center;
    background-color: var(--padrao);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
}
.details-confirm-button.fidelidade {
    display: flex;
    align-items: center;
    background-color: #8A2BE7; /* Roxo forte */
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
}
.details-confirm-cart {
    font-size: 16px;
    margin-right: 8px;
}
.details-confirm-text {
    font-size: 14px;
    font-weight: 400;
}
.details-content {
    flex-grow: 1;
}
@media (min-width: 768px) {
    .popup-content {
      max-width: 720px;
      margin: 0 auto;
    }
  
    .popup-header {
      height: 300px;
      margin-top: 0px;
    }

    .details-back {
        position: absolute;
        top: 16px;
        left: 16px;
        background-color: rgba(255, 255, 255, 0.9);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }
  
    .popup-header img {
      height: 100%;
      object-fit: cover;
      object-position: center;
    }
  
    .details-information {
      padding: 24px;
    }
  
    .details-flavors-items,
    .details-complements-items {
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }
  
    .flavor-item,
    .complements-item {
      border: 1px solid #ccc;
      padding: 16px;
    }
  
    .flavor-picture,
    .complements-picture {
      width: 60px;
      height: 60px;
    }
  
    .flavor-name,
    .complements-name {
      font-size: 14px;
    }
  
    .flavor-price,
    .complements-price {
      font-size: 13px;
    }
  
    .flavor-details-toggle,
    .flavor-details-content {
      font-size: 12px;
    }
  
    .footer-details-menu {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
    }
}
@media (min-width: 1024px) {
    .popup {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: rgba(0, 0, 0, 0.5); /* Fundo escuro semi-transparente */
    }

    .popup-content {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-width: 960px;
        width: 90%;
        height: 90%;
        border-radius: 16px;
        display: flex;
        flex-direction: row;
        overflow: hidden;
        background: #fff;
    }
    
    .details-back {
        position: absolute;
        top: 16px;
        left: 16px;
        background-color: rgba(255, 255, 255, 0.9);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .popup-header {
        width: 40%;
        height: auto;
        margin-top: 0px;
        max-height: 90vh;
    }
  
    .popup-header img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
  
    .details-information {
        width: 60%;
        height: 90vh;
        overflow-y: auto;
    }
  
    .details-content {
        height: calc(100% - 80px); /* Adjust based on your footer height */
        overflow-y: auto;
    }
  
    .details-flavors-items,
    .details-complements-items {
        grid-template-columns: 1fr;
    }
  
    .flavor-item,
    .complements-item {
        border: none;
        padding: 16px 0;
    }
  
    .flavor-picture,
    .complements-picture {
        width: 80px;
        height: 80px;
    }
  
    .flavor-name,
    .complements-name {
        font-size: 16px;
    }
  
    .flavor-price,
    .complements-price {
        font-size: 15px;
    }
  
    .flavor-details-toggle,
    .flavor-details-content {
        font-size: 13px;
    }
  
    .footer-details-menu {
        position: sticky;
        bottom: 0;
        width: 100%;
        background-color: #fff;
        padding: 16px;
        border-top: 1px solid var(--gray);
    }
  
    .details-content::-webkit-scrollbar {
        display: none;
    }
  
    .details-content {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
}

.checkout-header {
    position: sticky;
    top: 0;
    background-color: var(--white);
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 100;
}
.back-button {
    cursor: pointer;
    padding: 8px;
    margin-right: 16px;
}
.back-button ion-icon {
    font-size: 24px;
    color: var(--text);
}
.checkout-header h1 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text);
}
.checkout-content {
    padding: 16px;
    padding-bottom: 80px;
}
.delivery-address,
.payment-methods,
.discount-coupon,
.order-summary {
    background-color: var(--white);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.delivery-address h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.delivery-address h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}
h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
}
.form-row {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}
.form-input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 12px;
}

/* Estilos para a seção de agendamento */
.delivery-time {
    background-color: var(--white);
    border-radius: var(--border-radius);
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.delivery-time h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.delivery-time h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}

/* Estilo para as opções com radio button */
.radio-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    position: relative;
}
.radio-option:last-child {
    border-bottom: none;
}
.option-content {
    flex: 1;
}
.option-text {
    font-size: 15px;
    color: var(--text);
}

/* Estilo personalizado para o radio button */
.radio-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.radio-checkmark {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    background-color: #fff;
    border: 2px solid #ddd;
    border-radius: 50%;
}
.radio-option:hover input ~ .radio-checkmark {
    border-color: #ccc;
}
.radio-option input:checked ~ .radio-checkmark {
    border-color: var(--padrao);
}
.radio-checkmark:after {
    content: "";
    position: absolute;
    display: none;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--padrao);
}
.radio-option input:checked ~ .radio-checkmark:after {
    display: block;
}

/* Campos de agendamento */
.schedule-fields {
    padding: 16px;
    background-color: var(--gray-light);
    border-radius: var(--item-border-radius);
    margin-top: 16px;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}
.schedule-field {
    margin-bottom: 16px;
}
.schedule-field:last-child {
    margin-bottom: 0;
}
.schedule-field label {
    display: block;
    font-size: 14px;
    color: var(--text);
    margin-bottom: 8px;
    font-weight: 500;
}

/* Estilo para o select customizado */
.custom-select {
    position: relative;
    width: 100%;
}
.select-selected {
    background-color: var(--white);
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 12px 16px;
    padding-left: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    position: relative;
    height: 48px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.select-selected:focus, 
.select-selected:hover {
    border-color: var(--padrao);
    box-shadow: 0 0 0 2px rgba(255, 49, 49, 0.1);
}
.select-selected ion-icon {
    position: absolute;
    left: 12px;
    color: var(--light-text);
    font-size: 18px;
}
.select-selected:after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    border: solid var(--light-text);
    border-width: 0 2px 2px 0;
    display: inline-block;
    padding: 3px;
    transform: translateY(-50%) rotate(45deg);
}
.select-selected.select-arrow-active:after {
    transform: translateY(-50%) rotate(-135deg);
}
.select-items {
    position: absolute;
    background-color: var(--white);
    top: 100%;
    left: 0;
    right: 0;
    z-index: 99;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 200px;
    overflow-y: auto;
    box-shadow: var(--shadow);
}
.select-hide {
    display: none;
}
.select-items div {
    padding: 12px 16px;
    padding-left: 40px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color);
    transition: background-color 0.2s ease;
}
.select-items div:last-child {
    border-bottom: none;
}
.select-items div:hover {
    background-color: var(--gray-light);
}
.same-as-selected {
    background-color: rgba(255, 49, 49, 0.05);
}

/* Navegação do select */
.select-nav {
    display: flex;
    justify-content: space-between;
    padding: 8px;
    border-top: 1px solid var(--border-color);
}
.select-nav-btn {
    background: none;
    border: none;
    color: var(--light-text);
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    transition: color 0.2s ease;
}
.select-nav-btn:hover {
    color: var(--padrao);
}
.select-nav-btn:disabled {
    color: var(--gray-medium);
    cursor: not-allowed;
}
@media (min-width: 768px) {
    .delivery-time {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Loading indicator styles */
.schedule-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px 0;
    width: 100%;
}
.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    border-top: 4px solid var(--padrao);
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.schedule-loading-active .schedule-field {
    display: none;
}

.payment-methods {
    background-color: var(--white);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
}
.payment-methods h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.payment-methods h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}
.payment-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
    width: 100%;
}
.payment-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    background-color: #fff;
    position: relative;
}
.payment-card:hover {
    border-color: #ccc;
}
.payment-card.active {
    border: 1px solid var(--padrao); 
    background-color: rgba(var(--padrao-rgb), 0.05);
}    
.payment-card.active::before,
.payment-card.active::after {
    display: none;
}
.payment-card ion-icon {
    font-size: 22px;
    margin-right: 12px;
    color: #666;
    transition: color 0.3s ease;
}
.payment-card.active ion-icon {
    color: var(--padrao);
}
.payment-card span {
    font-size: 14px;
    color: var(--text);
    text-align: left;
    font-weight: 500;
    flex-grow: 1;
}

/* Novo: texto de informação à direita */
.payment-card::after {
    font-size: 12px;
    color: #888;
    margin-left: auto;
    display: none; /* Oculto por padrão */
}
.payment-card:not(.active)::after {
    display: block;
}
.payment-card:first-child::after {
    display: none;
}
.change-field {
    background-color: #f9f9f9;
    border-radius: 10px;
    padding: 16px;
    margin-top: 16px;
    border: 1px solid #eee;
    transition: all 0.3s ease;
}
.change-field label {
    display: block;
    font-size: 14px;
    color: var(--text);
    margin-bottom: 10px;
    font-weight: 500;
}
.change-field input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    transition: all 0.3s ease;
    background-color: white;
}
.change-field input:focus {
    border-color: var(--padrao);
    box-shadow: 0 0 0 2px rgba(255, 49, 49, 0.1);
}
@media (max-width: 480px) {
    .payment-methods {
        padding: 16px;
        margin-left: 0;
        margin-right: 0;
    }

    .payment-card {
        padding: 10px 12px;
    }

    .payment-card ion-icon {
        font-size: 20px;
    }

    .payment-card span {
        font-size: 13px;
    }
}
@media (min-width: 768px) {
    .payment-methods {
        padding: 16px;
        width: 570px;
        margin: auto;
        margin-bottom: 15px;
    }
    
    .order-summary {
        padding: 16px;
        width: 570px;
        margin: auto; 
    }
}

.coupon-input {
    display: flex;
    gap: 12px;
}
.coupon-button {
    background-color: var(--padrao);
    border: none;
    border-radius: 8px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.coupon-button ion-icon {
    color: var(--white);
    font-size: 24px;
}

/* Container dos itens de pedido */
.order-items {
    margin-bottom: 20px;
    max-height: 600px;
    overflow-y: auto;
    padding-right: 8px;
}
.order-items::-webkit-scrollbar {
    width: 6px;
}
.order-items::-webkit-scrollbar-track {
    background: var(--gray-light);
    border-radius: 10px;
}
.order-items::-webkit-scrollbar-thumb {
    background: var(--gray-medium);
    border-radius: 10px;
}
.order-items::-webkit-scrollbar-thumb:hover {
    background: var(--gray-dark);
}

/* Item de pedido */
.order-item {
    display: flex;
    flex-direction: column;
    border-radius: var(--border-radius);
    background-color: var(--white);
    margin-bottom: 12px;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
    border: 1px solid var(--border-color);
    overflow: hidden;
}
.order-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow);
}

/* Cabeçalho do item */
.item-header {
    display: flex;
    align-items: center;
    padding: 12px;
    cursor: pointer;
    background-color: var(--gray-light);
    transition: background-color 0.3s ease;
    position: relative;
}
.item-header:hover {
    background-color: var(--white);
}

/* Imagem do item */
.item-image {
    width: 60px;
    height: 60px;
    border-radius: var(--border-radius);
    object-fit: cover;
    margin-right: 12px;
    background-color: var(--white);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    position: relative;
}

/* Quantidade do item */
.item-quantity {
    position: absolute;
    top: 4px;
    left: 4px;
    background-color: var(--padrao);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Informações do item */
.item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.item-info h3 {
    font-weight: 600;
    font-size: 15px;
    margin-bottom: 4px;
    color: var(--text-primary);
}

/* Seção de preço */
.item-price-section {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 80px;
    justify-content: flex-end;
}
.item-price {
    font-weight: 700;
    font-size: 15px;
    color: var(--text-primary);
}
.item-pontos {
    margin-top: 5px;
    font-size: 12px;
    color: #8a2be7;
    position: relative;
    display: flex;
    align-items: center;
}
.item-pontos::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/opcoes.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}

.collapse-icon {
    font-size: 18px;
    color: var(--gray-dark);
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/* Detalhes do item (seção expansível) */
.item-details {
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    background-color: var(--white);
    border-top: 0 solid var(--border-color);
}
.item-details.show {
    padding: 16px;
    max-height: 500px;
    border-top: 1px solid var(--border-color);
}

/* Seções dentro dos detalhes */
.item-section {
    margin-bottom: 16px;
}
.item-section h4 {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}

/* Ícones para cada tipo de seção */
.item-section h4::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 8px;
}
.item-section:nth-child(1) h4::before {
    background-image: url('/store/assets/imgs/opcoes.png');
}
.item-section:nth-child(2) h4::before {
    background-image: url('/store/assets/imgs/mais.png');
}
.item-section:nth-child(3) h4::before {
    background-image: url('/store/assets/imgs/menos.png');
}
.item-section:nth-child(4) h4::before {
    content: "📝";
    font-size: 14px;
}

/* Listas de detalhes */
.details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.details-list li {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 13px;
    color: var(--text-secondary);
    border-bottom: 1px dashed var(--border-color);
}
.details-list li:last-child {
    border-bottom: none;
}
.additional-price {
    font-weight: 600;
    color: var(--padrao);
}

/* Lista de retiradas */
.removal-list li {
    color: var(--padrao);
}
.item-observation {
    font-size: 13px;
    color: var(--text-secondary);
    font-style: italic;
    padding: 8px;
    background-color: var(--gray-light);
    border-radius: 4px;
}

@media (max-width: 768px) {
    .item-image {
        width: 50px;
        height: 50px;
    }
    
    .item-info h3 {
        font-size: 14px;
    }
    
    .item-price {
        font-size: 14px;
    }
}
@media (max-width: 480px) {
    .item-header {
        padding: 10px;
    }
    
    .item-image {
        width: 40px;
        height: 40px;
        margin-right: 8px;
    }
    
    .item-quantity {
        width: 20px;
        height: 20px;
        font-size: 10px;
    }
    
    .item-info h3 {
        font-size: 13px;
    }
    
    .item-price {
        font-size: 13px;
    }
    
    .item-details.show {
        padding: 12px;
    }
}

.order-totals {
    margin-top: 16px;
}
.total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--text);
}
.total-row.final {
    font-size: 16px;
    font-weight: 600;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}
.checkout-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--white);
    padding: 16px;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}
.confirm-button {
    width: 100%;
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: 8px;
    padding: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

/* Estilo para o botão desabilitado */
.confirm-button:disabled {
    background-color: #b0b0b0; /* Cor de fundo para o botão desabilitado */
    color: #ffffff;  /* Cor do texto */
    cursor: not-allowed;  /* Cursor de "não permitido" */
    opacity: 0.6;  /* Opacidade reduzida para indicar inatividade */
}
.collapse-icon {
    font-size: 18px;
    color: var(--text);
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/*======= Detalhes do item =======*/
.item-details {
    display: none;
    background-color: #f9f9f9;
    border-top: 1px solid #eee;
    padding: 12px;
}
.item-details.show {
    display: block;
}
.item-section {
    margin-bottom: 16px;
}
.item-section:last-child {
    margin-bottom: 0;
}
.item-section h4 {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 8px;
}
.details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.details-list li {
    font-size: 12px;
    color: var(--light-text);
    padding: 4px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.additional-price {
    font-size: 12px;
    color: var(--padrao);
    font-weight: 500;
}
.removal-list li {
    color: #ff6b6b;
}
.item-observation {
    font-size: 12px;
    color: var(--light-text);
    font-style: italic;
    background-color: #fff;
    padding: 8px;
    border-radius: 4px;
    border: 1px solid #eee;
}

/*======= Fidelidade =======*/
.loyalty-info {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.loyalty-card {
    background-color: #f0f8ff; /* Light blue background */
    border: 2px solid #4169e1; /* Royal blue border */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(65, 105, 225, 0.2);
}
.loyalty-card ion-icon {
    font-size: 24px;
    color: #4169e1;
    margin-right: 12px;
}  
.loyalty-card p {
    margin: 0;
    font-size: 14px;
    color: #333;
}  
.loyalty-card strong {
    color: #4169e1;
    font-weight: 600;
}
@media (min-width: 768px) {
    .loyalty-info {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
}

/*======= Fidelidade (Sem Programa Ativo) =======*/
.loyalty-info.inactive {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.loyalty-card.inactive {
    background-color: #f5f5f5; /* Cinza claro */
    border: 2px solid #b0b0b0; /* Cinza médio */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(176, 176, 176, 0.2);
}
.loyalty-card.inactive ion-icon {
    font-size: 24px;
    color: #b0b0b0; /* Cinza médio */
    margin-right: 12px;
}  
.loyalty-card.inactive p {
    margin: 0;
    font-size: 14px;
    color: #666; /* Cinza escuro */
}  
.loyalty-card.inactive strong {
    color: #777;
    font-weight: 600;
}
@media (min-width: 768px) {
    .loyalty-info.inactive {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
}


/*======= Cupom de Desconto =======*/
.discount-info {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.discount-card {
    background-color: #fff0f5; /* Light pink background */
    border: 2px solid #ff1493; /* Deep pink border */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(255, 20, 147, 0.2);
}
.discount-card ion-icon {
    font-size: 24px;
    color: #ff1493;
    margin-right: 12px;
}  
.discount-card p {
    margin: 0;
    font-size: 14px;
    color: #333;
}  
.discount-card strong {
    color: #ff1493;
    font-weight: 600;
}

/*======= Quando o cupom não é aplicável =======*/
.not-applicable .discount-card {
    background-color: #f0f0f0; /* Light gray background */
    border: 2px solid #d3d3d3; /* Gray border */
    color: #a9a9a9; /* Gray text color */
}
.not-applicable .discount-card ion-icon {
    color: #d3d3d3; /* Light gray icon */
}
.not-applicable .discount-card strong {
    color: #a9a9a9; /* Gray color for strong text */
}
@media (min-width: 768px) {
    .discount-info {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

/*======= Animações =======*/
.item-details {
    transition: all 0.3s ease-in-out;
    max-height: 0;
    overflow: hidden;
}
.item-details.show {
    max-height: 500px; /* Altura máxima para a animação */
}
@media (min-width: 768px) {
    .checkout-content {
        max-width: 600px;
        margin: 0 auto;
    }

    .payment-options {
        grid-template-columns: repeat(4, 1fr);
    }

    .checkout-footer {
        display: flex;
        justify-content: center;
    }

    .confirm-button {
        max-width: 600px;
    }
}

/* Cards de opção de entrega/retirada refinados */
.delivery-options {
    display: flex;
    padding: 0;
    margin: 16px 0;
    gap: 8px;
}
.option-card {
    flex: 1;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    color: #555555;
    padding: 12px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    position: relative;
    min-height: 48px;
}
.option-card:hover {
    background-color: #f9f9f9;
}
.option-card.selected {
    border: 1px solid var(--padrao);
    background-color: rgba(var(--padrao-rgb), 0.05);
    color: var(--padrao);
}
.option-card ion-icon {
    font-size: 18px;
    color: #777777;
    transition: color 0.2s ease;
}
.option-card.selected ion-icon {
    color: var(--padrao);
}
.option-card span {
    font-weight: 500;
    font-size: 14px;
}
.option-card.hidden {
    display: none;
}
@media (max-width: 480px) {
    .delivery-options {
        padding: 0 16px;
    }
    
    .option-card {
        padding: 10px;
    }
    
    .option-card ion-icon {
        font-size: 16px;
    }
    
    .option-card span {
        font-size: 13px;
    }
}
@media (min-width: 768px) {
    .delivery-options {
        padding: 0 16px;
        max-width: 100%;
    }
}
  
/* ÁREA DO USUÁRIO */
.user-menu {
    background-color: #fff;
    padding: 15px 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.list-menu {
    list-style-type: none;
    padding: 0 15px;
    margin: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    width: 100%;
    scroll-snap-type: x mandatory;
    gap: 15px;
    -webkit-overflow-scrolling: touch;
}
.list-menu::-webkit-scrollbar {
    height: 4px;
} 
.list-menu::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}
.menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--text);
    padding: 12px 16px;
    border-radius: 12px;
    transition: all 0.3s ease;
    flex-shrink: 0;
    scroll-snap-align: start;
    min-width: 100px;
    text-align: center;
} 
.menu-item:hover,
.menu-item:focus {
    background-color: var(--gray);
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.menu-item i {
    font-size: 24px;
    margin-bottom: 8px;
    color: var(--padrao);
    transition: color 0.3s ease;
} 
.menu-item:hover i,
.menu-item:focus i {
    color: var(--padrao-dark);
}
.main-content {
    padding: 20px;
    margin-top: 40px;
    background-color: #f9f9f9;
    min-height: calc(100vh - 200px);
}
@media (max-width: 768px) {
    .user-menu {
      padding: 10px 0;
    }
  
    .list-menu {
      padding: 0 10px;
      gap: 10px;
    }
  
    .menu-item {
      padding: 10px;
      font-size: 12px;
      min-width: 80px;
    }
  
    .menu-item i {
      font-size: 20px;
      margin-bottom: 5px;
    }
}
@media (prefers-reduced-motion: no-preference) {
    .list-menu {
      scroll-behavior: smooth;
    }
}
  
/* AUTENTICAÇÃO */
.container-auth {
    background: #F0F0EF;    
}
.auth-container {
    max-width: 380px;
    margin: 40px auto;
    padding: 24px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.auth-logo {
    text-align: center;
    margin-bottom: 24px;
}
.auth-logo img {
    width: 90px;
    border-radius: 50%;
}
.auth-form h2 {
    text-align: center;
    color: var(--text);
    margin-bottom: 18px;
    font-size: 22px;
    font-weight: 600;
}
.form-group {
    margin-bottom: 16px;
}
.form-group label {
    display: block;
    margin-bottom: 6px;
    color: var(--text);
    font-size: 14px;
    font-weight: 500;
}
.form-group input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 15px;
    transition: border-color 0.3s ease;
}
.form-group input:focus {
    border-color: var(--padrao);
    outline: none;
}
.btn-primary {
    width: 100%;
    padding: 10px;
    background: var(--padrao);
    font-family: var(--fonte);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}
.btn-primary:hover {
    background: var(--padrao);
}
.btn-primary:active {
    transform: scale(0.98);
}
.btn-secondary {
    width: 100%;
    padding: 10px;
    background: #3B3B3B;
    font-family: var(--fonte);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}
.btn-secondary:hover {
    background: #2E2E2E;
}
.btn-secondary:active {
    transform: scale(0.98);
}
.auth-switch {
    text-align: center;
    margin-top: 18px;
    font-size: 14px;
    color: var(--text);
}
.auth-switch a {
    color: var(--padrao);
    text-decoration: none;
    font-weight: 500;
}
.auth-switch a:hover {
    text-decoration: underline;
}

/* Estilo para o switch */
.switch {
    bottom: 5px;
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
}
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.4s;
    border-radius: 50px;
}
.slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    border-radius: 50px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: 0.4s;
}
input:checked + .slider {
    background-color: var(--padrao);
}
input:checked + .slider:before {
    transform: translateX(26px);
}

/* Estilo para o texto ao lado do switch */
.remember-text {
    position: relative;
    font-size: 14px;
    color: #333;
    margin-left: 10px;
    bottom: 5px;
    vertical-align: middle;
}

/* MEUS PEDIDOS */

/*======= Estilos para a seção Meus Pedidos =======*/
.user-section {
    padding: 10px;
    background-color: var(--white);
}
.user-section h2 {
    font-size: 24px;
    margin-bottom: 20px;
    color: var(--text);
}
.pedidos-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pedido-item {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    overflow: hidden;
}
.pedido-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    background-color: #f8f8f8;
    border-bottom: 1px solid #eee;
}
.pedido-numero {
    font-weight: bold;
    color: var(--padrao);
}
.pedido-data {
    color: var(--light-text);
}
.pedido-status {
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: bold;
}
.pedido-status.aceito {
    background-color: #e6f7e6;
    color: #28a745;
}
.pedido-status.recusado {
    background-color: #f8d7da;
    color: #dc3545;
}
.pedido-status.pendente {
    background-color: #fff3cd;
    color: #856404;
}
.pedido-detalhes {
    padding: 15px;
}
.pedido-restaurante {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}
.pedido-restaurante img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 10px;
}
.pedido-items p {
    margin: 5px 0;
    color: var(--text);
}
.pedido-total {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-weight: bold;
}
.pedido-acoes {
    display: flex;
    justify-content: space-between;
    padding: 15px;
    background-color: #f8f8f8;
    border-top: 1px solid #eee;
}
.btn-pedido-detalhes,
.btn-pedir-novamente {
    padding: 10px 15px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s ease;
}
.btn-pedido-detalhes {
    background-color: #f0f0f0;
    color: var(--text);
}
.btn-pedir-novamente {
    background-color: var(--padrao);
    color: #fff;
}
.btn-pedido-detalhes:hover {
    background-color: #e0e0e0;
}
.btn-pedir-novamente:hover {
    background-color: var(--padrao);
}
@media (max-width: 768px) {
    .pedido-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .pedido-status {
        margin-top: 10px;
    }

    .pedido-acoes {
        flex-direction: column;
        gap: 10px;
    }

    .btn-pedido-detalhes,
    .btn-pedir-novamente {
        width: 100%;
    }
}

/*======= Estilos para a página de configurações =======*/
.settings-header {
    position: sticky;
    top: 0;
    background-color: var(--white);
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 100;
}
.settings-content {
    padding: 16px;
    padding-bottom: 80px;
}
.settings-section {
    background-color: var(--white);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.settings-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.checkbox-row {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}
.checkbox-container {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
    user-select: none;
}
.checkbox-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.checkmark {
    height: 20px;
    width: 20px;
    background-color: #eee;
    border-radius: 4px;
    margin-right: 8px;
}
.checkbox-container:hover input ~ .checkmark {
    background-color: #ccc;
}
.checkbox-container input:checked ~ .checkmark {
    background-color: var(--padrao);
}
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
.checkbox-container input:checked ~ .checkmark:after {
    display: block;
}
.checkbox-container .checkmark:after {
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.settings-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--white);
    padding: 16px;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}
@media (min-width: 768px) {
    .settings-content {
        max-width: 600px;
        margin: 0 auto;
    }

    .settings-footer {
        display: flex;
        justify-content: center;
    }

    .settings-footer .confirm-button {
        max-width: 600px;
    }
}

/* Estilos do cart-button */
.cart-button-mobile button,
.cart-button-desktop button {
    background-color: var(--padrao); /* Verde similar ao da imagem */
    color: white;
    border: none;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: all 0.2s ease;
}

/* ===== Botão Mobile ====== */
.cart-button-mobile {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 12px 16px;
    background-color: white;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
    z-index: 998;
    border-top: 1px solid #f0f0f0;
}
.cart-button-mobile button {
    width: 100%;
    padding: 14px 20px;
    border-radius: 6px;
    font-size: 15px;
    justify-content: space-between;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.cart-button-mobile button:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.cart-button-mobile .cart-left {
    display: flex;
    align-items: center;
    gap: 10px;
}
.cart-button-mobile .cart-right {
    display: flex;
    align-items: center;
    font-weight: 700;
}

/* ===== Botão Desktop ====== */
.cart-button-desktop {
    display: none;
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 998;
}
.cart-button-desktop button {
    padding: 10px 16px;
    border-radius: 30px;
    font-size: 14px;
    gap: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.cart-button-desktop button:hover {
    background-color: var(--padrao);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}
.cart-button-desktop button:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.cart-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.cart-quantity {
    background-color: white;
    color: var(--padrao);
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    margin-left: 8px;
}
.cart-separator {
    margin: 0 8px;
    color: rgba(255, 255, 255, 0.8);
}
@media (min-width: 768px) {
    .cart-button-desktop {
        display: block;
    }
    
    .cart-button-mobile {
        display: none;
    }
}
@media (max-width: 480px) {
    .cart-button-mobile button {
        padding: 12px 16px;
        font-size: 14px;
    }
}

/*======= Overlay do carrinho ========*/
.cart-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
}
.cart-overlay.active {
    display: block;
}

/*======= Container do carrinho =======*/
.cart-container {
    position: fixed;
    background-color: var(--background-white);
    display: flex;
    flex-direction: column;
    height: 90vh;
    width: 100%;
    bottom: 0;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
}
@media (max-width: 768px) {
    .cart-container {
        height: 100%;
        max-height: 100%;
        border-radius: 0;
    } 
}

/*======= Header do carrinho =======*/
.cart-header {
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
}
.cart-subtitle {
    font-size: 14px;
    color: var(--light-text);
}
.cart-store {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 4px;
}
.cart-store h2 {
    font-size: 20px;
    color: var(--text);
}
.view-menu {
    color: var(--padrao);
    text-decoration: none;
    font-size: 14px;
}
.close-cart {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 20px;
    color: var(--text);
    cursor: pointer;
}

/*======= Conteúdo do carrinho ======*/
.cart-content {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    background-color: var(--background-color);
}
.cart-content::-webkit-scrollbar {
    width: 6px;
}
.cart-content::-webkit-scrollbar-track {
    background: var(--gray-light);
    border-radius: 10px;
}
.cart-content::-webkit-scrollbar-thumb {
    background: var(--gray-medium);
    border-radius: 10px;
}
.cart-content::-webkit-scrollbar-thumb:hover {
    background: var(--gray-dark);
}
.cart-items {
    padding: 16px;
    background: var(--white);
    border-radius: var(--border-radius);
    box-shadow: var(--card-shadow);
    margin-bottom: 20px;
}
.cart-items h3 {
    font-size: 18px;
    color: var(--text);
    margin-bottom: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    position: relative;
    padding-bottom: 12px;
}
.cart-items h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background: var(--padrao);
    border-radius: 2px;
}
.cart-items h3::before {
    content: "🛒";
    margin-right: 10px;
    font-size: 18px;
    background: var(--padrao);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}
.cart-item {
    padding: 18px;
    margin-bottom: 16px;
    border-radius: var(--item-border-radius);
    background-color: var(--white);
    transition: all 0.3s ease;
    align-items: flex-start;
    display: flex;
    gap: 12px;
    position: relative;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    overflow: hidden;
}
.cart-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--padrao);
    border-radius: var(--item-border-radius) 0 0 var(--item-border-radius);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.cart-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--hover-shadow);
    border-color: rgba(234, 29, 44, 0.1);
}
.cart-item:hover::before {
    opacity: 1;
}
.cart-item .item-image {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.cart-item .item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cart-item .item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-left: 4px;
}
.cart-item .item-main {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
}
.cart-item .item-quantity-card  {
    font-weight: 700;
    color: var(--white);
    min-width: 20px;
    height: 20px;
    background: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.2);
    transition: transform 0.2s ease;
}
.cart-item:hover .item-quantity-card {
    transform: scale(1.1);
}
.cart-item .item-name {
    flex: 1;
    font-weight: 600;
    color: var(--text);
    font-size: 14px;
    line-height: 1.3;
}
.cart-item .item-price {
    font-weight: 600;
    color: var(--text);
    font-size: 12px;
    background: var(--padrao);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    padding: 5px 7px;
    border-radius: 20px;
    border: 1px solid rgba(234, 29, 44, 0.1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.cart-item .item-extras {
    font-size: 12px;
    color: var(--light-text);
    margin-bottom: 14px;
    line-height: 1.5;
    padding-left: 34px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cart-item .complementos-section {
    margin-bottom: 2px;
    display: flex;
    align-items: flex-start;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}
.cart-item .complementos-section:hover {
    background-color: rgba(0, 0, 0, 0.02);
}
.cart-item .complementos-section::before {
    margin-right: 6px;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
}
.cart-item .complementos-section.adicionais::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/mais.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.retiradas::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/menos.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.opcoes::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/opcoes.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.pontos::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/pontos.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section strong {
    color: var(--text);
    font-weight: 600;
    margin-right: 4px;
}
.cart-item .item-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding-top: 4px;
    border-top: 1px dashed var(--border-color);
    margin-top: 4px;
    padding-right: 4px;
}
.btn-remove {
    padding: 8px 16px;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    background: none;
    font-size: 14px;
    color: var(--padrao);
    cursor: pointer;
    transition: all 0.25s ease;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.btn-remove::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/lixeira.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.btn-remove {
    background-color: white;
}
.btn-remove:hover {
    background-color: var(--padrao);
    color: white;
    border-color: var(--padrao);
    box-shadow: var(--button-shadow);
    transform: translateY(-2px);
}
.btn-remove:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(234, 29, 44, 0.1);
}

/* Animações */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.cart-item {
    animation: fadeIn 0.3s ease forwards;
}
.cart-item:nth-child(2) {
    animation-delay: 0.1s;
}
.cart-item:nth-child(3) {
    animation-delay: 0.2s;
}
.cart-item:nth-child(4) {
    animation-delay: 0.3s;
}

/* Responsividade */
@media (max-width: 768px) {
    .cart-items {
        padding: 20px;
    }
    
    .cart-item {
        padding: 16px;
    }
    
    .item-extras {
        padding-left: 32px;
    }
    
    .cart-items h3 {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .cart-items {
        padding: 16px;
    }
    
    .cart-items h3 {
        font-size: 16px;
    }
    
    .cart-item {
        padding: 14px;
    }
    
    .item-name {
        font-size: 14px;
    }
    
    .item-price {
        font-size: 14px;
    }
    
    .item-extras {
        font-size: 12px;
        padding-left: 24px;
    }
    
    .btn-edit,
    .btn-remove {
        padding: 6px 12px;
        font-size: 12px;
    }
    
    .item-main {
        gap: 8px;
    }

    .cart-item .item-image {
        width: 35px;
        height: 35px;
    }
}

/*======= Cupom =======*/
.cart-coupon {
    margin: 24px 0;
    padding: 12px;
    border-radius: 8px;
    background-color: #f5f5f5;
}
.coupon-manual {
    margin-top: 5px;
}
#manualCoupon {
    text-align: center;
    text-transform: uppercase;
}
.coupon-manual .checkout-button {
    padding: 7px;
}
.coupon-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
} 
.coupon-icon {
    width: 24px;
    height: 24px;
    font-size: 18px;
    background-color: var(--padrao);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
} 
.coupon-chevron {
    transition: transform 0.3s ease;
}
.coupon-header.active .coupon-chevron {
    transform: rotate(180deg);
} 
.coupon-text {
    font-size: 14px;
    color: var(--light-text);
    margin-top: 4px;
    text-align: center;
    width: 100%; 
    display: flex;
    justify-content: center; 
    align-items: center; 
} 
.coupon-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
.coupon-content.active {
    max-height: 500px; 
}
.coupon-list {
    margin-top: 12px;
}
.coupon-item {
    display: flex;
    position: relative;
    align-items: center;
    padding: 12px;
    background-color: #ffffff;
    border-radius: 4px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}
.coupon-item:hover {
    background-color: #f0f0f0;
}
.coupon-item.active {
    border-color: var(--padrao);
}
.coupon-item-icon {
    font-size: 24px;
    color: var(--primary-color);
    margin-right: 12px;
}
.coupon-item-content {
    display: flex;
    flex-direction: column;
}
.coupon-code {
    font-weight: bold;
    color: var(--primary-color);
    font-size: 16px;
}
.coupon-value {
    font-size: 14px;
    color: var(--dark-text);
}
.coupon-min {
    font-size: 12px;
    color: var(--light-text);
    margin-top: 2px;
}
.remove-coupon-btn {
    background: none;
    display: none;
    border: none;
    color: #000000; /* Cor vermelha para indicar remoção */
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    position: absolute;
    right: 10px;
    top: 20%;
    transform: translateY(-50%);
    padding: 5px;
    transition: color 0.3s ease;
}
.remove-coupon-btn:hover {
    color: #d60000; /* Cor mais escura ao passar o mouse */
}
.coupon-item.active .remove-coupon-btn {
    display: block; /* Exibe somente se estiver ativo */
}

/* ====== Resumo carinho ======= */
.cart-summary {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
}
.summary-item {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--text);
}
.summary-total {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
    font-weight: 500;
}

/* ====== Footer do carrinho ========*/
.cart-footer {
    padding: 16px;
    border-top: 1px solid var(--border-color);
}
.checkout-button {
    width: 100%;
    padding: 14px;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    font-family: var(--fonte);
    cursor: pointer;
}
.checkout-button:hover {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Sombra suave */
}
@media (min-width: 768px) {
    .cart-button-mobile {
        display: none;
    }

    .cart-button-desktop {
        display: block;
    }

    .cart-container {
        right: 0;
        width: 400px;
        height: 100vh;
        border-radius: 0;
    }
}

.hidden {
    display: none;
}
.notyf-custom-icon {
    font-size: 14px;
}
.label-small {
    font-size: 12px; /* Tamanho da letra pequeno */
    color: #666; /* Cor mais suave para o texto */
    display: block; /* Para garantir que o label ocupe uma linha inteira */
    margin-bottom: 4px; /* Um pequeno espaçamento entre o label e o campo de input */
}

/* ======= POPUP LOOTIE ======= */
.animation-popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    justify-content: center;
    align-items: center;
}
.animation-popup .popup-frame-content {
    position: relative; /* Permite que o botão de fechar fique dentro do content */
    background-color: white;
    border-radius: 10px;
    text-align: center;
    max-width: 90%;
    max-height: 90%;
    overflow: hidden; 
    padding: 20px; /* Dá um respiro interno */
}
.animation-popup .popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #555;
    transition: color 0.3s ease;
}
.animation-popup .popup-close:hover {
    color: #000;
}
#frameContent {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
#checkoutFrame {
    width: 100%;
    height: 100%;
    border: none;
}
.animation-popup .image {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px; /* Aumenta a altura do container */
    margin: auto;
}
.animation-popup .image img {
    width: 100%; /* Define o tamanho da imagem como 80% da largura do container */
    height: auto;
    max-height: 100%; /* Garante que a imagem não ultrapasse o container */
    object-fit: contain; 
}

.animation-popup .popup-frame-content {
    background-color: white;
    border-radius: 10px;
    text-align: center;
    width: 90%;
    height: 90%;
    max-width: 90%;
    max-height: 90%;
    overflow: hidden; /* Para garantir que o header colorido respeite o border-radius */
}
.animation-popup .popup-animation-content {
    position: relative;
    background-color: white;
    border-radius: 10px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    overflow: hidden; /* Para garantir que o header colorido respeite o border-radius */
}
.animation-popup .popup-animation-header {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}
.animation-popup .popup-animation-body {
    padding: 2em;
}
.animation-popup .lottie-animation {
    width: 200px;
    height: 200px;
    margin: 0 auto 1em;
}
.animation-popup .result-message {
    margin-top: 1em;
    margin-bottom: 1em;
}
.animation-popup .result-message h3 {
    font-size: 1.2em;
    margin-bottom: 0.5em;
}
.animation-popup .result-message ul {
    list-style: none; /* Remove os marcadores padrão */
    padding: 0;
    margin: 10px 0;
}
.animation-popup .result-message li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px;
    font-size: 12px;
    color: #333;
}
.animation-popup .result-message p {
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #333;
}

/* Adiciona um marcador minimalista */
.animation-popup .result-message li::before {
    content: "•"; /* Usa um bullet point simples */
    position: absolute;
    left: 0;
    color: var(--padrao); /* Cor personalizada para destaque */
    font-size: 18px;
}
.animation-popup .success h3 {
    color: #4CAF50;
}
.animation-popup .error h3 {
    color: #F44336;
}
.animation-popup .close-animation-popup {
    margin-top: 1em;
    padding: 0.5em 1em;
    background-color: #f0f0f0;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.animation-popup .close-animation-popup:hover {
    background-color: #e0e0e0;
}

/* Estados do cabeçalho */
.animation-popup .popup-animation-header.info {
    background-color: #2196F3; /* Azul */
}
.animation-popup .popup-animation-header.custom {
    background-color: var(--padrao); 
}
.animation-popup  .popup-animation-header.warning {
    background-color: #FF9800; /* Laranja */
}
.animation-popup  .popup-animation-header.success {
    background-color: #4CAF50; /* Verde */
}
.animation-popup  .popup-animation-header.error {
    background-color: #F44336; /* Vermelho */
}

.documento-input {
    text-align: center;
}
.documento-input::placeholder {
    text-align: center;
}

.form-buttons {
    display: flex;
    gap: 10px;
}
.form-buttons .btn-primary,
.form-buttons .btn-secondary {
    flex: 1;
}


.cpf-container {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.cpf-container .form-input {
    width: 100%;
}
.cpf-container button {
    background: none;
    border: none;
    cursor: pointer;
    margin-top: -10px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
}
.cpf-container button:hover {
    transform: scale(1.1);
}
.cpf-container button img {
    width: 30px;
    height: 30px;
    object-fit: contain;
}
@media (max-width: 768px) {
    .cpf-container button img {
        width: 30px;
        height: 30px;
    }
}

/* ======== toast notification ========= */
.toast {
    position: fixed;
    bottom: 24px;
    left: 24px;
    transform: translateY(150%);
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    color: var(--text);
    border-radius: 16px;
    padding: 16px 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    z-index: 1000;
    max-width: 400px;
    width: calc(100% - 48px);
    border-left: 4px solid var(--padrao);
    overflow: visible;
}
.toast.active {
    transform: translateY(0);
    opacity: 1;
}
.toast.success {
    border-left-color: var(--green);
}
.toast-progress-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: rgba(0, 0, 0, 0.1);
    overflow: visible;
}
.toast-progress {
    height: 100%;
    background-color: var(--padrao);
    width: 0;
    transition: width 0.5s ease-out;
    position: relative;
}
.toast.success .toast-progress {
    background-color: var(--green);
}
/* Partículas em forma de estrelas para a barra de progresso */
.toast-progress::before,
.toast-progress::after {
    content: '★';
    position: absolute;
    font-size: 16px;
    color: var(--padrao);
    opacity: 0;
    pointer-events: none;
}
.toast-progress.active::before {
    animation: starAnimation1 2s ease-out infinite;
}
.toast-progress.active::after {
    animation: starAnimation2 2s ease-out infinite 0.5s;
}
/* Estrelas de sucesso */
.toast.success::before,
.toast.success::after {
    content: '★';
    position: absolute;
    font-size: 20px;
    color: var(--green);
    opacity: 0;
    pointer-events: none;
}
.toast.success.active::before {
    animation: successStar1 2s ease-out;
}
.toast.success.active::after {
    animation: successStar2 2s ease-out 0.3s;
}

@keyframes starAnimation1 {
    0% {
        opacity: 0;
        top: 0;
        right: 0;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: -30px;
        right: 20%;
        transform: translate(0, -20px) scale(1) rotate(180deg);
    }
    100% {
        opacity: 0;
        top: -50px;
        right: 40%;
        transform: translate(0, -40px) scale(0.5) rotate(360deg);
    }
}
@keyframes starAnimation2 {
    0% {
        opacity: 0;
        top: 0;
        right: 20%;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: -20px;
        right: 40%;
        transform: translate(0, -10px) scale(1) rotate(-180deg);
    }
    100% {
        opacity: 0;
        top: -40px;
        right: 60%;
        transform: translate(0, -20px) scale(0.5) rotate(-360deg);
    }
}
@keyframes successStar1 {
    0% {
        opacity: 0;
        top: 50%;
        left: -10px;
        transform: translate(0, -50%) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: 0;
        left: 10%;
        transform: translate(0, -100%) scale(1) rotate(180deg);
    }
    100% {
        opacity: 0;
        top: -20px;
        left: 20%;
        transform: translate(0, -150%) scale(0.5) rotate(360deg);
    }
}
@keyframes successStar2 {
    0% {
        opacity: 0;
        bottom: -10px;
        right: 10%;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        bottom: 50%;
        right: -10px;
        transform: translate(50%, 50%) scale(1) rotate(-180deg);
    }
    100% {
        opacity: 0;
        bottom: 100%;
        right: 10%;
        transform: translate(0, 0) scale(0.5) rotate(-360deg);
    }
}
@media (max-width: 480px) {
    .toast {
        left: 50%;
        transform: translateX(-50%) translateY(150%);
        width: calc(100% - 32px);
        padding: 12px 16px;
    }
    .toast.active {
        transform: translateX(-50%) translateY(0);
    }
    .toast-icon {
        font-size: 20px;
    }
    .toast-title {
        font-size: 14px;
    }
    .toast-text {
        font-size: 12px;
    }
}

/* Estilos para Informações da Mesa */
.table-info {
    margin: 20px 0;
    padding: 0 16px;
    color: var(--text);
}
.table-info-card {
    background-color: #fff;
    border: 2px solid var(--padrao);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.table-info-header {
    background-color: var(--padrao);
    color: white;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.table-info-header ion-icon {
    font-size: 24px;
}
.table-info-header h2 {
    font-size: 18px;
    font-weight: 600;
    color: white;
    margin: 0;
}
.table-info-content {
    padding: 20px;
}
.table-info-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f2f2f2;
}
.table-info-row:last-of-type {
    border-bottom: none;
}
.table-info-item {
    display: flex;
    align-items: center;
    gap: 12px;
}
.info-icon {
    background-color: rgba(var(--padrao-rgb), 0.05);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.info-icon ion-icon {
    color: var(--padrao);
    font-size: 20px;
}
.info-text {
    display: flex;
    flex-direction: column;
}
.info-label {
    font-size: 12px;
    color: #717171;
    margin-bottom: 4px;
}
.info-value {
    font-size: 18px;
    font-weight: 700;
    color: #3e3e3e;
}
@media (min-width: 768px) {
    .table-info {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

.store-address-container {
    margin: 20px 0;
    padding: 0 16px;
}
.store-address-card {
    background-color: var(--white, #fff);
    border: 2px solid var(--padrao);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    padding: 20px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.store-address-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--hover-shadow, 0 8px 20px rgba(0, 0, 0, 0.1));
}
.store-address-icon {
    background-color: rgba(255, 49, 49, 0.1);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.store-address-icon ion-icon {
    color: var(--padrao);
    font-size: 20px;
}
.store-address-content {
    flex: 1;
    min-width: 0;
}
.store-address-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text, #3e3e3e);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    position: relative;
}
.store-address-title::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--padrao);
    border-radius: 2px;
}
.store-address-text {
    font-size: 14px;
    color: var(--light-text, #717171);
    margin: 0;
    word-break: break-word;
    line-height: 1.4;
}
.store-address-button {
    background-color: var(--padrao);
    color: var(--white, #fff);
    border: none;
    border-radius: 8px;
    padding: 12px 18px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    margin-left: auto;
    box-shadow: var(--button-shadow, 0 2px 6px rgba(255, 170, 176, 0.2));
    font-family: var(--fonte, inherit);
}
.store-address-button:hover {
    background-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(255, 170, 176, 0.2);
}
.store-address-button:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(255, 170, 176, 0.2);
}
.store-address-button ion-icon {
    font-size: 16px;
    transition: transform 0.3s ease;
} 
.store-address-button:hover ion-icon {
    transform: translateY(-3px);
    animation: pulse 1s infinite;
}
@keyframes pulse {
    0% {
      transform: translateY(-3px) scale(1);
    }
    50% {
      transform: translateY(-3px) scale(1.1);
    }
    100% {
      transform: translateY(-3px) scale(1);
    }
}
@media (max-width: 768px) {
    .store-address-card {
      padding: 16px;
    }
    
    .store-address-button {
      margin-left: 0;
      width: 100%;
      justify-content: center;
      margin-top: 8px;
    }
    
    .store-address-icon {
      width: 36px;
      height: 36px;
    }
    
    .store-address-icon ion-icon {
      font-size: 18px;
    }
}
@media (max-width: 480px) {
    .store-address-card {
      flex-direction: column;
      align-items: flex-start;
      padding: 14px;
      gap: 12px;
    }
    
    .store-address-title {
      font-size: 15px;
    }
    
    .store-address-text {
      font-size: 13px;
    }
    
    .store-address-button {
      font-size: 13px;
      padding: 10px 16px;
    }
}
@media (min-width: 768px) {
    .store-address-container {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
    
    .store-address-card {
      padding: 24px;
    }
}

/*====== SIMILARES =======*/
.similar-products-popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1001;
}
.similar-products-popup.active {
    display: block;
}
.similar-products-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
.similar-products-modal {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 90vh;
    background-color: var(--white);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    z-index: 2;
    box-shadow: var(--shadow);
    overflow: hidden;
    animation: modalSlideUp 0.3s ease;
}
@keyframes modalSlideUp {
    from {
        transform: translateY(100%);
    }
    to {
        transform: translateY(0);
    }
}
.similar-products-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--white);
    position: sticky;
    top: 0;
    z-index: 3;
}
.similar-products-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    margin: 0;
    position: relative;
}
.similar-products-title::before {
    content: "🔥";
    margin-right: 8px;
    font-size: 20px;
}
.similar-products-close {
    background: none;
    border: none;
    color: var(--text);
    font-size: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.similar-products-close:hover {
    background-color: var(--gray-light);
}
.similar-products-content {
    padding: 16px 0;
    max-height: calc(90vh - 70px);
    overflow-y: auto;
}
.similar-products-subtitle {
    font-size: 16px;
    font-weight: 500;
    color: var(--light-text);
    margin: 0 20px 16px;
    line-height: 1.4;
}

/*====== CONTAINER DE PRODUTOS =======*/
.similar-products-container {
    margin: 0;
    padding: 0;
}
.similar-products-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
    padding: 0 20px 20px;
}

/*====== CARD DE PRODUTO SIMILAR =======*/
.similar-product-card {
    position: relative;
    width: 100%;
    background-color: var(--white);
    border-radius: var(--item-border-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    height: 100%;
}
.similar-product-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--hover-shadow);
}
.similar-product-image-container {
    position: relative;
    padding-top: 75%; /* Proporção 4:3 */
    overflow: hidden;
    background-color: var(--gray-light);
}
.similar-product-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.similar-product-card:hover .similar-product-image {
    transform: scale(1.05);
}
.similar-product-promotion {
    position: absolute;
    top: 8px;
    left: 8px;
    background-color: var(--green);
    color: var(--white);
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    z-index: 1;
}
.similar-product-info {
    padding: 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.similar-product-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 8px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 36px;
}
.similar-product-description {
    font-size: 12px;
    color: var(--light-text);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.similar-product-price-container {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.similar-product-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.similar-product-old-price {
    font-size: 12px;
    color: var(--secondaryText);
    text-decoration: line-through;
}

/*====== AÇÕES DOS CARDS =======*/
.similar-product-actions {
    display: flex;
    gap: 8px;
    margin-top: auto;
}
.similar-product-customize,
.similar-product-add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    font-family: var(--fonte);
}
.similar-product-customize {
    background-color: var(--gray-light);
    color: var(--text);
    flex: 1;
}
.similar-product-add {
    background-color: var(--padrao);
    color: var(--white);
    flex: 1;
}
.similar-product-customize:hover {
    background-color: var(--gray);
}
.similar-product-add:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.similar-product-customize ion-icon,
.similar-product-add ion-icon {
    font-size: 18px;
}
.similar-product-quick-add {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--padrao);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: var(--button-shadow);
    border: none;
    transition: all 0.2s ease;
    z-index: 2;
}
.similar-product-quick-add:hover {
    transform: scale(1.1);
    background-color: var(--padrao);
    opacity: 0.9;
}
.similar-product-quick-add ion-icon {
    font-size: 20px;
}

/*====== PAINEL DE PERSONALIZAÇÃO =======*/
.similar-product-customization {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--white);
    z-index: 10;
    display: flex;
    flex-direction: column;
    border-radius: 0;
    box-shadow: var(--hover-shadow);
    transform: translateY(100%);
    transition: transform 0.3s ease;
    overflow: hidden;
}
.similar-product-customization.active {
    transform: translateY(0);
}
.customization-header {
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--padrao);
    color: var(--white);
}
.customization-header h5 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.close-customization {
    background: none;
    border: none;
    color: var(--white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    transition: background-color 0.2s ease;
}
.close-customization:hover {
    background-color: rgba(255, 255, 255, 0.2);
}
.close-customization ion-icon {
    font-size: 20px;
}
.customization-content {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
}
.customization-footer {
    padding: 16px;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--white);
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}
.customization-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.confirm-customization {
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: var(--item-border-radius);
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: var(--button-shadow);
}
.confirm-customization:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.confirm-customization ion-icon {
    font-size: 18px;
}

/*====== OPÇÕES DE PERSONALIZAÇÃO =======*/
.customization-option {
    margin-bottom: 20px;
}
.customization-option-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--text);
    display: flex;
    align-items: center;
}
.customization-option-title::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 16px;
    background-color: var(--padrao);
    margin-right: 8px;
    border-radius: 2px;
}
.customization-option-items {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.customization-option-item {
    display: flex;
    align-items: center;
    padding: 12px;
    border-radius: var(--item-border-radius);
    background-color: var(--white);
    cursor: pointer;
    transition: all 0.2s ease;
    border: 1px solid var(--border-color);
}
.customization-option-item:hover {
    border-color: var(--gray-medium);
    background-color: var(--gray-light);
}
.customization-option-item.selected {
    background-color: rgba(var(--padrao-rgb), 0.1);
    border: 1px solid var(--padrao);
}
.customization-option-item-name {
    flex: 1;
    font-size: 14px;
    color: var(--text);
}
.customization-option-item-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--padrao);
}
.similar-hidden {
    display: none !important;
}
.similar-continue-shopping {
    display: block;
    width: 100%;
    padding: 16px;
    text-align: center;
    background: none;
    border: none;
    color: var(--padrao);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 16px;
    transition: all 0.2s ease;
    text-decoration: underline;
    font-family: var(--fonte);
}
.similar-continue-shopping:hover {
    opacity: 0.8;
}
.similar-checkout-button {
    display: block;
    width: calc(100% - 40px);
    margin: 0 auto 20px;
    padding: 16px;
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: var(--border-radius);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    box-shadow: var(--button-shadow);
    font-family: var(--fonte);
}
.similar-checkout-button:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: var(--hover-shadow);
}

/*====== RESPONSIVIDADE SIMILAR =======*/
@media (max-width: 480px) {
    .similar-products-wrapper {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        padding: 0 16px 16px;
    }
    
    .similar-products-title {
        font-size: 16px;
    }
    
    .similar-products-subtitle {
        font-size: 14px;
        margin: 0 16px 12px;
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-mobile);
        padding-top: 0;
    }
    
    .similar-product-name {
        font-size: 13px;
        min-height: 34px;
    }
    
    .similar-product-price {
        font-size: 14px;
    }
    
    .similar-product-customize,
    .similar-product-add {
        padding: 8px;
        font-size: 12px;
    }
    
    .similar-product-customize ion-icon,
    .similar-product-add ion-icon {
        font-size: 16px;
    }
    
    .similar-checkout-button {
        padding: 14px;
        font-size: 15px;
    }
}
@media (min-width: 481px) and (max-width: 767px) {
    .similar-products-wrapper {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-tablet);
        padding-top: 0;
    }
}
@media (min-width: 768px) {
    .similar-products-modal {
        top: 50%;
        left: 50%;
        bottom: auto;
        transform: translate(-50%, -50%);
        width: 90%;
        max-width: 900px;
        max-height: 85vh;
        border-radius: var(--border-radius);
        animation: modalFadeIn 0.3s ease;
    }
    
    @keyframes modalFadeIn {
        from {
            opacity: 0;
            transform: translate(-50%, -45%);
        }
        to {
            opacity: 1;
            transform: translate(-50%, -50%);
        }
    }
    
    .similar-products-wrapper {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-desktop);
        padding-top: 0;
    }
    
    .similar-products-title {
        font-size: 20px;
    }
    
    .similar-products-subtitle {
        font-size: 16px;
    }
    
    .similar-product-name {
        font-size: 15px;
    }
    
    .similar-product-price {
        font-size: 16px;
    }
    
    .similar-checkout-button {
        max-width: 400px;
    }
    
    .similar-products-header {
        padding: 20px 24px;
    }
    
    .similar-products-content {
        padding: 20px 0;
    }
}
@media (min-width: 1200px) {
    .similar-products-modal {
        max-width: 1100px;
    }
    
    .similar-products-wrapper {
        grid-template-columns: repeat(5, 1fr);
    }
}

/* ===== POPUP PUSH NOTIFICATION ===== */
.popupPush-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); 
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px); 
    -webkit-backdrop-filter: blur(2px);
}
.popupPush-overlay.active {
    opacity: 1;
    visibility: visible;
}
.popupPush-container {
    width: 90%;
    max-width: 360px; 
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06); 
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.popupPush-overlay.active .popupPush-container {
    transform: translateY(0);
    opacity: 1;
}
.popupPush-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.popupPush-header {
    padding: 16px; 
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light); 
}
.popupPush-icon {
    width: 36px; 
    height: 36px; 
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px; 
    color: var(--white);
    font-size: 16px; 
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15); 
}
.popupPush-title {
    font-size: 16px; 
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}
.popupPush-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px; 
    cursor: pointer;
    width: 28px;
    height: 28px; 
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.popupPush-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.popupPush-body {
    padding: 16px; 
}
.popupPush-message {
    font-size: 14px; 
    color: var(--text);
    margin: 0 0 16px; 
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.popupPush-animation-container {
    margin: 16px 0; 
    display: flex;
    justify-content: center;
    position: relative;
    height: 160px; 
}
.popupPush-phone {
    width: 90px; 
    height: 160px; 
    background-color: var(--black1);
    border-radius: 18px;
    padding: 8px 4px; 
    position: relative;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12); 
}
.popupPush-phone:before {
    content: "";
    position: absolute;
    top: 4px; 
    left: 50%;
    transform: translateX(-50%);
    width: 36px; 
    height: 3px; 
    background-color: var(--gray-dark);
    border-radius: 2px;
}
.popupPush-phone-screen {
    width: 100%;
    height: 100%;
    background-color: var(--gray-light);
    border-radius: 10px; 
    overflow: hidden;
    position: relative;
}

/* ===== NOTIFICATION ANIMATION ===== */
.popupPush-notification {
    position: absolute;
    top: -80px;
    left: 5px;
    right: 5px;
    background-color: var(--white);
    border-radius: 8px;
    padding: 8px;
    display: flex;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); 
    animation: notificationSlide 4s ease infinite;
    transform-origin: top center;
}
@keyframes notificationSlide {
    0% {
        top: -80px;
        opacity: 0;
    }
    10% {
        top: 10px;
        opacity: 1;
    }
    20% {
        transform: translateY(-3px);
    }
    22% {
        transform: translateY(0);
    }
    80% {
        top: 10px;
        opacity: 1;
    }
    90% {
        top: -80px;
        opacity: 0;
    }
    100% {
        top: -80px;
        opacity: 0;
    }
}

.popupPush-notification-icon {
    width: 22px; 
    height: 22px; 
    background-color: var(--padrao);
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 6px; 
    flex-shrink: 0;
}
.popupPush-notification-icon i {
    color: var(--white);
    font-size: 10px; 
}
.popupPush-notification-content {
    flex: 1;
    overflow: hidden;
}
.popupPush-notification-title {
    font-size: 9px; 
    font-weight: 600;
    color: var(--text);
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.popupPush-notification-message {
    font-size: 7px; 
    color: var(--light-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== BENEFITS ===== */
.popupPush-benefits {
    margin-top: 16px; 
}
.popupPush-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px; 
}
.popupPush-benefit i {
    color: var(--green);
    margin-right: 8px; 
    font-size: 14px; 
}
.popupPush-benefit span {
    font-size: 12px; 
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.popupPush-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px; 
}
.popupPush-button {
    flex: 1;
    padding: 10px 12px; 
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500; 
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap; 
}
.popupPush-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15); 
}
.popupPush-button-primary:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}
.popupPush-button-secondary {
    background-color: transparent; 
    color: var(--text);
    border: 1px solid var(--gray-light); 
}
.popupPush-button-secondary:hover {
    background-color: var(--gray-light);
}
.popupPush-button i {
    font-size: 14px; 
}
.popupPush-icon {
    position: relative;
}
.popupPush-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5; /* Reduzido de 0.6 */
    animation: pulse 2s infinite;
    z-index: -1;
}
@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 0.5; /* Reduzido de 0.6 */
    }
    70% {
        transform: scale(1.4); /* Reduzido de 1.5 */
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .popupPush-container {
        width: 90%;
        max-width: 320px; /* Reduzido de 350px */
    }
    
    .popupPush-footer {
        flex-direction: row; /* Mantido em linha para botões menores */
    }
    
    .popupPush-button {
        font-size: 12px; /* Reduzido para mobile */
        padding: 8px 10px; /* Reduzido para mobile */
    }
    
    .popupPush-animation-container {
        height: 140px; /* Reduzido de 150px */
    }
    
    .popupPush-phone {
        width: 75px; /* Reduzido de 80px */
        height: 140px; /* Reduzido de 150px */
    }
}

/* ===== LOCATION POPUP ===== */
.locationPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.locationPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}
.locationPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.locationPopup-overlay.active .locationPopup-container {
    transform: translateY(0);
    opacity: 1;
}
.locationPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.locationPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}
.locationPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}
.locationPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}
.locationPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.locationPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.locationPopup-body {
    padding: 16px;
}
.locationPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.locationPopup-animation-container {
    margin: 16px 0;
    display: flex;
    justify-content: center;
    position: relative;
    height: 160px;
}
.locationPopup-phone {
    width: 90px;
    height: 160px;
    background-color: var(--black1);
    border-radius: 18px;
    padding: 8px 4px;
    position: relative;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}
.locationPopup-phone:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 3px;
    background-color: var(--gray-dark);
    border-radius: 2px;
}
.locationPopup-phone-screen {
    width: 100%;
    height: 100%;
    background-color: var(--gray-light);
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

/* ===== MAP ANIMATION ===== */
.locationPopup-map {
    width: 100%;
    height: 100%;
    background-color: #f2f2f2;
    background-image: 
        linear-gradient(rgba(0,0,0,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,0,0,0.05) 1px, transparent 1px);
    background-size: 10px 10px;
    position: relative;
    overflow: hidden;
}
.locationPopup-map:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, transparent 30%, rgba(0,0,0,0.1) 100%);
}
.locationPopup-pin {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}
.locationPopup-pin-dot {
    width: 12px;
    height: 12px;
    background-color: var(--padrao);
    border-radius: 50%;
    position: relative;
    z-index: 3;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
}
.locationPopup-pin-pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    background-color: rgba(255, 49, 49, 0.2);
    border-radius: 50%;
    z-index: 1;
    animation: locationPulse 2s infinite;
}
@keyframes locationPulse {
    0% {
        transform: translate(-50%, -50%) scale(0.5);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 0;
    }
}

/* ===== BENEFITS ===== */
.locationPopup-benefits {
    margin-top: 16px;
}
.locationPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}
.locationPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}
.locationPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.locationPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

/* Botões mais delicados */
.locationPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}
.locationPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}
.locationPopup-button-primary:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}
.locationPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}
.locationPopup-button-secondary:hover {
    background-color: var(--gray-light);
}
.locationPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.locationPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}
@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 0.5;
    }
    70% {
        transform: scale(1.4);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .locationPopup-container {
        width: 90%;
        max-width: 320px;
    }
    
    .locationPopup-button {
        font-size: 12px;
        padding: 8px 10px;
    }
    
    .locationPopup-animation-container {
        height: 140px;
    }
    
    .locationPopup-phone {
        width: 75px;
        height: 140px;
    }
}

/*======= card flutuante checkout ========*/
.floating-summary {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: white;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1);
    z-index: 100;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    transform: translateY(calc(100% - 60px));
    transition: transform 0.3s ease;
}
.floating-summary.expanded {
    transform: translateY(0);
}
.floating-summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}
.floating-summary-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.floating-summary-toggle {
    background: none;
    border: none;
    color: #666;
    font-size: 20px;
    cursor: pointer;
    transition: transform 0.3s ease;
}
.expanded .floating-summary-toggle {
    transform: rotate(180deg);
}
.floating-summary-content {
    padding: 15px 20px;
}
.floating-summary-items {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}
.floating-summary-item-count {
    font-size: 14px;
    color: #666;
}
.floating-summary-price {
    display: flex;
    align-items: center;
    gap: 10px;
}
.floating-total-amount {
    font-weight: 600;
    font-size: 18px;
    color: var(--padrao);
}
.floating-confirm-button {
    width: 100%;
    padding: 12px;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.2s ease;
}
.floating-confirm-button:hover {
    background-color: rgba(var(--padrao-rgb), 0.9);
}
@media (min-width: 768px) {
    .floating-summary {
        width: 350px;
        left: auto;
        right: 20px;
        bottom: 20px;
        border-radius: 15px;
        transform: translateY(0);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }
    
    .floating-summary-header {
        cursor: default;
    }
    
    .floating-summary-toggle {
        display: none;
    }
}

/* address toast */
.form-input.loading {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="%23333" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg>');
    background-position: right 10px center;
    background-repeat: no-repeat;
    background-size: 20px;
}

/* Animação para itens do carrinho */
.order-item {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.order-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Animação para botões */
.confirm-button, .option-card, .payment-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.confirm-button:hover, .option-card:hover, .payment-card:hover {
    transform: translateY(-2px);
}
.confirm-button:active, .option-card:active, .payment-card:active {
    transform: translateY(0);
}

.checkout-header {
    transition: box-shadow 0.3s ease;
}
.checkout-header.scrolled {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.back-button {
    transition: transform 0.2s ease;
}
.back-button:hover {
    transform: translateX(-3px);
}
.collapse-icon {
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/* ===== CONSUME LOCATION POPUP ===== */
.consumeLocationPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.consumeLocationPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}

.consumeLocationPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.consumeLocationPopup-overlay.active .consumeLocationPopup-container {
    transform: translateY(0);
    opacity: 1;
}

.consumeLocationPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.consumeLocationPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}

.consumeLocationPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}

.consumeLocationPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}

.consumeLocationPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.consumeLocationPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.consumeLocationPopup-body {
    padding: 16px;
}

.consumeLocationPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.consumeLocationPopup-animation-container {
    margin: 16px 0;
    display: flex;
    justify-content: center;
    position: relative;
}

.consumeLocationPopup-options {
    display: flex;
    justify-content: center;
    gap: 16px;
    width: 100%;
}

.consumeLocationPopup-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px;
    background-color: #f5f5f5;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 120px;
    border: 2px solid transparent;
}

.consumeLocationPopup-option:hover {
    background-color: #f0f0f0;
    transform: translateY(-2px);
}

.consumeLocationPopup-option.selected {
    border-color: var(--padrao);
    background-color: rgba(255, 49, 49, 0.05);
}

.option-icon {
    width: 48px;
    height: 48px;
    background-color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.option-icon i {
    font-size: 20px;
    color: var(--padrao);
}

.option-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    text-align: center;
}

/* ===== BENEFITS ===== */
.consumeLocationPopup-benefits {
    margin-top: 16px;
}

.consumeLocationPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.consumeLocationPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}

.consumeLocationPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.consumeLocationPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.consumeLocationPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}

.consumeLocationPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}

.consumeLocationPopup-button-primary:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
    box-shadow: none;
}

.consumeLocationPopup-button-primary:not(:disabled):hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}

.consumeLocationPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}

.consumeLocationPopup-button-secondary:hover {
    background-color: var(--gray-light);
}

.consumeLocationPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.consumeLocationPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}

/* ===== UTENSILS POPUP ===== */
.utensilsPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.utensilsPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}

.utensilsPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.utensilsPopup-overlay.active .utensilsPopup-container {
    transform: translateY(0);
    opacity: 1;
}

.utensilsPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.utensilsPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}

.utensilsPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}

.utensilsPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}

.utensilsPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.utensilsPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.utensilsPopup-body {
    padding: 16px;
}

.utensilsPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== OPTIONS CONTAINER ===== */
.utensilsPopup-options-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
}

.utensilsPopup-option {
    display: flex;
    align-items: center;
    padding: 12px;
    background-color: #f5f5f5;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.utensilsPopup-option:hover {
    background-color: #f0f0f0;
}

.utensilsPopup-option.selected {
    border-color: var(--padrao);
    background-color: rgba(255, 49, 49, 0.05);
}

.utensilsPopup-option .option-icon {
    width: 36px;
    height: 36px;
    background-color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}

.utensilsPopup-option .option-icon i {
    font-size: 16px;
    color: var(--padrao);
}

.utensilsPopup-option .option-label {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    text-align: left;
}

.option-checkbox {
    position: relative;
    width: 20px;
    height: 20px;
    margin-left: 8px;
}

.option-checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.option-checkbox .checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 20px;
    width: 20px;
    background-color: #fff;
    border: 2px solid #ddd;
    border-radius: 50%;
}

.utensilsPopup-option:hover .checkmark {
    border-color: #ccc;
}

.utensilsPopup-option.selected .checkmark {
    border-color: var(--padrao);
}

.checkmark:after {
    content: "";
    position: absolute;
    display: none;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--padrao);
    transform: translate(-50%, -50%);
}

.utensilsPopup-option.selected .checkmark:after {
    display: block;
}

/* ===== BENEFITS ===== */
.utensilsPopup-benefits {
    margin-top: 16px;
}

.utensilsPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.utensilsPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}

.utensilsPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.utensilsPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.utensilsPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}

.utensilsPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}

.utensilsPopup-button-primary:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
    box-shadow: none;
}

.utensilsPopup-button-primary:not(:disabled):hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}

.utensilsPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}

.utensilsPopup-button-secondary:hover {
    background-color: var(--gray-light);
}

.utensilsPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.utensilsPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .consumeLocationPopup-container,
    .utensilsPopup-container {
        width: 90%;
        max-width: 320px;
    }
    
    .consumeLocationPopup-button,
    .utensilsPopup-button {
        font-size: 12px;
        padding: 8px 10px;
    }
    
    .consumeLocationPopup-options {
        flex-direction: column;
        gap: 12px;
    }
    
    .consumeLocationPopup-option {
        width: 100%;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        padding: 12px;
    }
    
    .consumeLocationPopup-option .option-icon {
        margin-bottom: 0;
        margin-right: 12px;
    }
}
    --gray-light: #f5f5f5;
    --gray: #e8e8e8;
    --gray-medium: #dcdcdc;
    --gray-dark: #a6a6a6;
    --black1: #222;
    --black2: #999;
    --secondaryText: #828282;
    --text: #3e3e3e;
    --light-text: #717171;
    --green: #4BC532;
    --border-radius: 12px;
    --item-border-radius: 10px;
    --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    --card-shadow: 0 6px 16px rgba(0, 0, 0, 0.05);
    --hover-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    --button-shadow: 0 2px 6px rgba(234, 29, 44, 0.2);
    --card-width-desktop: 260px;  
    --card-width-tablet: 260px;  
    --card-width-mobile: 230px; 
    --card-image-height-desktop: 150px;
    --card-image-height-tablet: 140px;
    --card-image-height-mobile: 110px;
}

::selection {
    background-color: var(--padrao); /* Cor de fundo da seleção */
    color: var(--white); /* Cor do texto selecionado */
}
body{
    font-family: var(--fonte);
    background-color: #F0F0EF;
    overflow-x: hidden;
}
input:focus,
textarea:focus {
    border-color: var(--padrao);
    outline: none;
}
.container-loja {
    margin: 0 auto;    
    background-color: #ffffff;
    position: relative;         
}
::-webkit-scrollbar {
    width: 6px; /* Largura da barra de rolagem */
    height: 6px; /* Altura da barra de rolagem */
}
::-webkit-scrollbar-track {
    background-color: #f1f1f1; /* Cor de fundo da trilha da barra de rolagem */
}
::-webkit-scrollbar-thumb {
    background-color: #888; /* Cor do controle deslizante da barra de rolagem */
    border-radius: 6px; /* Borda arredondada do controle deslizante */
}
::-webkit-scrollbar-thumb:hover {
    background-color: #555; /* Cor do controle deslizante ao passar o mouse */
}

/*======== Header and Content Header ========*/
.header-banner {
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-repeat: no-repeat; /* Evita que a imagem se repita */
    background-position: center; /* Centraliza a imagem */
    height: 220px;
}
.store-logo{
    margin-top: -120px;
    margin-left: 9%;
    z-index: 1;
}
.store-logo img{
    background-color: #FFFFFF;
    border-radius: 50%;
    padding: 3px;
    width: 70px;
}
.store-content {
    background-color: #fff;
    max-width: 90%;
    margin: -30px auto 0; /* margem superior negativa e centralização horizontal */
    padding: 20px; /* opcional: adicionar preenchimento interno */
    border-radius: 25px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* sombra leve */
}
.store-content .store-name {
    font-size: 24px;
    font-weight: 600;
}
.store-content .store-data {
    font-size: 11px;
    margin-top: 3px;
    color: var(--secondaryText);
}
.store-content .store-div {
    border: solid 1px;
    margin-top: 2px;
    margin-bottom: 2px;
    color: var(--secondaryText);
}
.store-content .store-address {
    font-size: 11px;
    color: var(--secondaryText);
    margin-top: 8px;
}
.store-address .icon{
    color: var(--padrao);
    font-size: 13px;
    margin-top: 3px;
}
.store-last-content .store-text-data {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* alinha tudo à esquerda */
    flex-wrap: nowrap; /* não quebra linha */
    gap: 10px;
    font-size: 11px;
    color: var(--secondaryText);
    margin-top: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.store-last-content .info-item {
    display: flex;
    align-items: center;
    gap: 5px;
}
.store-last-content .icon{
    color: var(--padrao);
    font-size: 13px;
}
.store-last-content .store-text-data {
    display: flex; /* Usar flexbox para alinhar ícones e textos */
    align-items: center; /* Alinhar verticalmente */
}
.store-last-content .iconLast {
    font-size: 13px;
    color: var(--padrao);
}
.store-last-content .info-item span {
    font-size: 11px;
    font-weight: 500;
}
.store-last-content .store-text-data span {
    font-size: 11px; /* Ajustar tamanho do texto conforme necessário */
    margin-right: 10px; /* Espaço entre os textos */
    margin-top: 2px;
}
@media (max-width: 576px) {
    .store-last-content .store-text-data {
        gap: 6px;
        font-size: 10px;
        flex-wrap: wrap;
    }

    .store-last-content .iconLast,
    .store-last-content .icon {
        font-size: 11px;
    }

    .store-last-content .info-item span,
    .store-last-content .store-text-data span {
        font-size: 10px;
        margin-right: 6px;
    }
}
.header-schedule {
    position: absolute;
    top: 135px; /* Ajuste conforme necessário para a posição vertical desejada */
    right: 35px; /* Ajuste conforme necessário para o alinhamento à direita */
    padding: 0px 10px; /* Espaçamento interno do conteúdo */
    background-color: #D7FFCF; /* Cor de fundo */
    border-radius: 25px; /* Borda arredondada */
}
.header-schedule .schedule {
    display: inline-block;
    padding: 0px 10px; /* Espaçamento interno do conteúdo */
    font-size: 13px; /* Tamanho da fonte */
    color: #4BC532; /* Cor do texto */
}
.schedule .schedule-text {
    color: #4BC532;
    font-size: 12px;
}
@media (min-width: 768px) {
    .store-content .store-name {
        font-size: 26px; /* Aumentar em 2px para telas de computador */
    }
    .store-content .store-data,
    .store-content .store-address,
    .store-last-content .store-text-data span {
        font-size: 13px; /* Aumentar em 2px para telas de computador */
    }
    .header-schedule {
        right: 100px; /* Ajuste conforme necessário para o alinhamento à direita */
    }
}
.user-info {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    padding: 8px 12px;
    margin: 16px auto 0 auto;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    width: 90%;
}
.user-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
} 
.user-name-header {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
}
.loyalty-points {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 14px;
    color: var(--padrao);
} 
.loyalty-points ion-icon {
    font-size: 16px;
    color: var(--padrao);
}
.login-button {
    display: none;
    white-space: nowrap;
    width: 100px;
    padding: 8px 12px;
    text-decoration: none;
    text-align: center;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.3s ease;
} 
.login-button:hover {
    background-color: var(--padrao-hover);
} 
.user-info.unlogged .user-panel {
    display: none;
}
.user-info.unlogged .login-button {
    display: block;
} 
.user-icon-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--padrao);
    text-decoration: none;
    transition: color 0.3s ease;
} 
.user-icon-link ion-icon {
    font-size: 24px;
}  
.user-icon-link:hover {
    color: var(--padrao-hover);
}  
@media (max-width: 768px) {
    .user-info {
      margin-top: 12px;
      padding: 6px 10px;
    }
  
    .user-panel {
      flex-wrap: nowrap;
      gap: 5px;
    }
  
    .user-name,
    .loyalty-points {
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
      white-space: nowrap; 
    }
  
    .login-button {
      font-size: 12px;
      padding: 6px 10px;
    }
  
    .user-icon-link ion-icon {
      font-size: 20px;
      display: flex;
      align-items: center;
    }
}

/*======== PWA =========*/
.install-app-container {
    position: relative;
    margin: 16px auto 0 auto;
    width: 90%;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    max-width: 1200px; 
}
.install-app-block {
    position: relative;
    width: 100%;
    transition: all 0.3s ease;
}
@media (min-width: 480px) {
    .install-app-block {
        width: calc(50% - 6px); /* Dois blocos lado a lado com espaçamento */
    }
}
.install-app-button {
    display: none;
    align-items: center;
    gap: 12px;
    background-color: white;
    color: #333;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    font-family: var(--fonte);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    text-align: left;
}
.install-app-button:hover {
    background-color: #f9f9f9;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}
.install-icon {
    font-size: 24px;
    color: var(--padrao); 
    background-color: rgba(var(--padrao-rgb), 0.05);
    padding: 8px;
    border-radius: 8px;
    transition: all 0.3s ease;
}
.install-app-button:hover .install-icon {
    transform: scale(1.05);
}
.install-text-container {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.install-title {
    font-weight: 600;
    color: #333;
    margin-bottom: 2px;
}
.install-subtitle {
    font-size: 12px;
    color: #777;
    font-weight: normal;
}
.install-app-info {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    padding: 16px;
    margin-top: 8px;
    z-index: 20;
    display: none;
    transform: translateY(-10px);
    opacity: 0;
    transition: all 0.3s ease;
}
.install-app-info.active {
    display: block;
    transform: translateY(0);
    opacity: 1;
}
.install-app-info-content p {
    margin: 0 0 12px 0;
    font-size: 14px;
    color: var(--text);
    line-height: 1.5;
}
.install-app-actions {
    display: flex;
    gap: 8px;
}
.install-app-now {
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    flex: 1;
    font-family: var(--fonte);
}
.install-app-now:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.close-install-info {
    background-color: #f0f0f0;
    color: var(--text);
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    flex: 1;
    font-family: var(--fonte);
}
.close-install-info:hover {
    background-color: #e0e0e0;
    transform: translateY(-2px);
}
@media (min-width: 768px) {
    .install-app-container {
        width: 90%;
        max-width: 1200px;
        margin: 24px auto 0 auto;
        gap: 20px;
        justify-content: flex-start; 
    }

    .install-app-block {
        width: 300px; 
        margin-right: 20px; 
    }

    .install-app-button {
        padding: 12px 18px;
        font-size: 14px;
        border-radius: 10px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }

    .install-icon {
        font-size: 26px;
        padding: 10px;
    }

    .install-title {
        font-size: 15px;
    }

    .install-subtitle {
        font-size: 13px;
    }

    .install-app-info {
        width: 300px; 
        border-radius: 12px;
        padding: 20px;
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
    }

    .install-app-info-content p {
        font-size: 15px;
    }

    .install-app-actions {
        gap: 12px;
    }

    .install-app-now, 
    .close-install-info {
        padding: 10px 16px;
        font-size: 14px;
        border-radius: 8px;
    }
}
@media (min-width: 1200px) {
    .install-app-container {
        max-width: 1200px;
    }
}
@media (max-width: 480px) {
    .install-app-button {
        padding: 8px 12px;
    }

    .install-icon {
        font-size: 20px;
        padding: 6px;
    }

    .install-app-info-content p {
        font-size: 13px;
    }

    .install-app-now, 
    .close-install-info {
        font-size: 12px;
        padding: 6px 10px;
    }
}

/*======== Ratings ========*/
.rating-modal {
    display: none;
    position: fixed;
    z-index: 1001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
}
.rating-modal-content {
    background-color: #fff;
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    animation: modalSlideUp 0.3s ease;
    display: flex;
    flex-direction: column;
    position: relative;
}
@keyframes modalSlideUp {
    from {transform: translateY(100%);}
    to {transform: translateY(0);}
}

.rating-modal-header {
    padding: 16px;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 10;
}
.rating-modal-header h2 {
    font-size: 18px;
    color: var(--text);
    margin: 0;
    font-weight: 600;
}
.close-rating {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.close-rating ion-icon {
    font-size: 24px;
    color: #666;
}
.rating-modal-body {
    padding: 16px;
    overflow-y: auto;
    flex: 1;
}
.rating-summary {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}
.rating-average {
    display: flex;
    justify-content: center;
}
.average-score {
    display: flex;
    align-items: center;
    gap: 16px;
}
.average-number {
    font-size: 42px;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
}
.average-stars {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.stars-container {
    position: relative;
    width: 100px;
    height: 20px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23dddddd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 20px 20px;
}
.stars-filled {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='%23EA1D2C' stroke='%23EA1D2C' stroke-width='0' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 20px 20px;
}
.total-ratings {
    font-size: 12px;
    color: #999;
}
.rating-distribution {
    padding: 0 16px;
}
.rating-bar {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}
.rating-label {
    width: 16px;
    text-align: center;
    font-size: 13px;
    color: #666;
    margin-right: 8px;
}
.progress-bar {
    flex: 1;
    height: 6px;
    background-color: #f0f0f0;
    border-radius: 3px;
    overflow: hidden;
    margin-right: 8px;
}
.progress {
    height: 100%;
    background-color: var(--padrao);
    border-radius: 3px;
}
.rating-count {
    width: 24px;
    text-align: right;
    font-size: 13px;
    color: #999;
}
.rating-form-container {
    margin-bottom: 24px;
    padding: 16px;
    background-color: #f9f9f9;
    border-radius: 8px;
}
.rating-form-container h3 {
    font-size: 16px;
    color: var(--text);
    margin-top: 0;
    margin-bottom: 16px;
    font-weight: 600;
}
.rating-stars {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}
.star {
    cursor: pointer;
    font-size: 24px;
    color: #ddd;
    transition: transform 0.2s ease, color 0.2s ease;
}
.star:hover, .star.active {
    transform: scale(1.1);
    color: var(--padrao);
}
.star ion-icon {
    width: 24px;
    height: 24px;
    color: inherit;
}
.rating-text {
    font-size: 14px;
    color: #666;
    margin-left: 8px;
}
.rating-tags-container {
    margin-bottom: 16px;
}
.tag-category {
    margin-bottom: 16px;
}
.tag-category h4 {
    font-size: 14px;
    color: #666;
    margin: 0 0 8px 0;
    font-weight: 500;
}
.tag-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.tag-option {
    display: flex;
    align-items: center;
    gap: 4px;
    background-color: #f0f0f0;
    border: 1px solid #e0e0e0;
    border-radius: 16px;
    padding: 6px 12px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
    transition: all 0.2s ease;
}
.tag-option:hover {
    background-color: #e8e8e8;
}
.tag-option.selected {
    background-color: var(--padrao);
    color: white;
    border-color: var(--padrao);
}
.tag-option ion-icon {
    font-size: 16px;
}
#rating-form textarea {
    width: 100%;
    height: 80px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 16px;
    font-family: var(--fonte);
    font-size: 14px;
    resize: none;
}
#rating-form textarea:focus {
    border-color: var(--padrao);
    outline: none;
}
.submit-rating {
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-family: var(--fonte);
    width: 100%;
}
.submit-rating:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.ratings-filter {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
    overflow-x: auto;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
}
.ratings-filter::-webkit-scrollbar {
    height: 0;
    display: none;
}
.filter-label {
    font-size: 14px;
    color: #666;
    margin-right: 12px;
    white-space: nowrap;
}
.filter-options {
    display: flex;
    gap: 8px;
}
.filter-btn {
    background-color: #f0f0f0;
    border: none;
    border-radius: 16px;
    padding: 6px 12px;
    font-size: 13px;
    color: #666;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.filter-btn:hover {
    background-color: #e0e0e0;
}
.filter-btn.active {
    background-color: var(--padrao);
    color: white;
}
.ratings-list {
    margin-top: 16px;
}
.rating-response {
    margin-top: 12px;
    padding: 12px;
    background-color: #f9f9f9;
    border-left: 4px solid var(--padrao);
    border-radius: 6px;
}
.response-header {
    font-weight: 600;
    font-size: 13px;
    color: var(--padrao);
    margin-bottom: 6px;
}
.response-text {
    font-size: 14px;
    color: #555;
    line-height: 1.4;
    margin: 0;
}
.ratings-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.rating-item {
    background-color: white;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 16px;
}
.rating-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}
.rating-user {
    display: flex;
    align-items: center;
    gap: 12px;
}
.user-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--padrao);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 12px;
}
.user-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.user-name {
    font-weight: 600;
    color: var(--text);
    font-size: 14px;
}
.rating-date {
    font-size: 12px;
    color: #999;
}
.rating-stars-small {
    position: relative;
    width: 70px;
    height: 14px;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23dddddd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 14px 14px;
}
.rating-stars-small .stars-filled {
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%23EA1D2C' stroke='%23EA1D2C' stroke-width='0' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'%3e%3c/polygon%3e%3c/svg%3e");
    background-repeat: repeat-x;
    background-size: 14px 14px;
}
.rating-comment {
    font-size: 14px;
    color: #333;
    line-height: 1.4;
    margin: 0 0 12px 0;
}
.rating-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.rating-tag {
    background-color: #f5f5f5;
    border-radius: 12px;
    padding: 4px 10px;
    font-size: 12px;
    color: #666;
}
@media (min-width: 768px) {
    .rating-modal-content {
        margin: 0;
        width: 550px;
        max-width: 90%;
        height: auto;
        max-height: 90vh;
        border-radius: 8px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    }
    
    @keyframes modalSlideUp {
        from {opacity: 0; transform: translateY(20px);}
        to {opacity: 1; transform: translateY(0);}
    }
    
    .rating-modal-header {
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
    }
    
    .rating-summary {
        flex-direction: row;
        align-items: center;
    }
    
    .rating-average {
        flex: 1;
    }
    
    .rating-distribution {
        flex: 2;
    }
    
    .close-rating {
        position: absolute;
        right: 16px;
        top: 16px;
    }
    
    .rating-modal-header h2 {
        width: 100%;
        text-align: center;
    }
}
@media (max-width: 480px) {
    .rating-modal-header h2 {
        font-size: 16px;
    }
    
    .rating-modal-body {
        padding: 12px;
    }
    
    .average-number {
        font-size: 36px;
    }
    
    .star {
        font-size: 22px;
    }
    
    .star ion-icon {
        width: 22px;
        height: 22px;
    }
    
    .rating-text {
        font-size: 13px;
    }
    
    .tag-category h4 {
        font-size: 13px;
    }
    
    .tag-option {
        padding: 5px 10px;
        font-size: 12px;
    }
    
    #rating-form textarea {
        height: 70px;
        padding: 10px;
    }
    
    .submit-rating {
        padding: 10px 14px;
    }
    
    .filter-btn {
        padding: 5px 10px;
        font-size: 12px;
    }
    
    .rating-item {
        padding: 12px;
    }
    
    .user-avatar {
        width: 28px;
        height: 28px;
        font-size: 11px;
    }
    
    .user-name {
        font-size: 13px;
    }
    
    .rating-date {
        font-size: 11px;
    }
    
    .rating-comment {
        font-size: 13px;
    }
    
    .rating-tag {
        font-size: 11px;
        padding: 3px 8px;
    }
    
    .pagination-button {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
}

/*======== Nav Categories ========*/
.groups {
    margin-top: 15px;
    background-color: var(--background-white);
    width: 100%;
    padding: 0;
    overflow-x: auto;
    white-space: nowrap;
    display: flex !important; /* Força a exibição */
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 2 !important; /* Garante que fique acima de outros elementos */
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); /* Adiciona uma sombra sutil para destacar */
    visibility: visible !important;
    opacity: 1 !important;
    transition: all 0.3s ease;
}
.groups::-webkit-scrollbar {
    display: none;
}
.groups .list-group {
    list-style-type: none;
    width: 100%;
    padding: 0;
    margin: 0;
    display: flex;
}
.groups .list-group a {
    display: inline-block;
    padding: 16px 12px;
    font-size: 16px;
    color: var(--text);
    font-weight: 400;
    text-decoration: none;
    position: relative;
    cursor: pointer;
    transition: color 0.2s ease;
    margin: 0;
    border-radius: 0;
}
.groups .list-group a .quantity-group {
    display: none; /* Removendo a quantidade já que não aparece na imagem */
}
.groups .list-group a:first-child {
    margin-left: 0;
}
.groups .list-group a.active {
    color: var(--padrao);
    font-weight: 500;
    background-color: transparent;
}
.groups .list-group a.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--padrao);
    border-radius: 0;
}
.groups .list-group a:hover {
    transform: none;
    box-shadow: none;
    color: var(--padrao);
}
.list-group .iconMove {
    display: none;
}
@media (max-width: 499px) {
    .groups {
        padding: 0 12px;
    }
    
    .groups .list-group a {
        padding: 14px 10px;
        font-size: 15px;
    }
}
@media (max-width: 767px) {
    .groups {
      padding: 0 8px;
      height: auto !important; /* Garante que a altura seja calculada automaticamente */
      min-height: 48px; /* Define uma altura mínima */
    }
  
    .groups .list-group {
      width: auto; /* Permite que a lista se expanda conforme necessário */
      display: flex !important;
    }
  
    .groups .list-group a {
      padding: 12px 10px;
      font-size: 14px;
      display: inline-block !important;
    }
  
    /* Melhora a visibilidade do item ativo em dispositivos móveis */
    .groups .list-group a.active {
      font-weight: 600;
    }
  
    .groups .list-group a.active::after {
      height: 3px; /* Linha mais grossa para melhor visibilidade */
    }
}

/*======== search box ===========*/
.search-container-header {
    width: 100%;
    max-width: 400px;
    top: 15px;
    margin: 0 auto;
    background-color: #f2f2f2;
    border-radius: 20px; /* Reduzido de 30px para 20px */
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* Reduzido a sombra */
}
.search-box-header {
    display: flex;
    align-items: center;
    height: 45px;
    background-color: #f2f2f2;
    border-radius: 20px; /* Reduzido de 30px para 20px */
    width: 100%;
    padding: 4px 12px; /* Reduzido significativamente */
}
.search-icon {
    color: #717171;
    font-size: 14px; /* Reduzido de 18px para 16px */
    margin-right: 8px; /* Reduzido de 10px para 8px */
}
.search-input {
    border: none;
    background: none;
    width: 100%;
    padding: 4px 0; /* Reduzido de 6px para 4px */
    font-size: 14px;
    color: var(--text);
    line-height: 1; /* Adicionado para reduzir a altura */
}
.search-input::placeholder {
    color: #717171;
}
.search-input:focus {
    outline: none;
}
@media (min-width: 1024px) {
    .search-container-header {
        max-width: 400px;
    }
    .search-box-header {
        padding: 6px 15px; /* Ligeiramente maior para desktop */
    }
    .search-icon {
        font-size: 18px;
    }
    .search-input {
        font-size: 15px;
    }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .search-container-header {
        max-width: 90%;
    }
}
@media (max-width: 767px) {
    .search-container-header {
        width: 90%;
        max-width: 400px;
    }
}

.highlighted-product {
    box-shadow: 0 0 5px rgba(255, 252, 49, 0.74);
    transition: box-shadow 0.3s ease;
}
.highlight {
    background-color: rgba(255, 251, 23, 0.349);
    border-radius: 2px;
    padding: 0 2px;
}
#no-results-message {
    font-size: 16px;
    color: #666;
    text-align: center;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
    margin-top: 20px;
}

/* Styles for when the search bar is fixed */
.search-container-header.fixed {
    position: fixed;
    top: 65px;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/*======== Botões interativos ========*/
.interact {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.interact .interact-buttons {
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    flex-wrap: wrap;
    gap: 5px;
}
.interact .interact-buttons .list-buttom {
    list-style-type: none; 
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.interact .interact-buttons .list-buttom li {
    margin: 0 3px; 
}
.interact .interact-buttons .list-buttom a {
    display: flex; 
    align-items: center; 
    padding: 3px 6px; 
    font-size: 10px;
    color: var(--secondaryText);
    font-weight: 400;
    text-decoration: none;
    border-radius: 25px;
    border: 1px solid var(--secondaryText);
}
.interact .interact-buttons .list-buttom a ion-icon {
    margin-right: 5px; /* Espaço entre o ícone e o texto */
    margin-top: -2px;
}
.interact .interact-buttons .list-buttom a:hover {
    border-color: var(--padrao); 
}
@media (max-width: 320px) {
    .interact .interact-buttons {
        width: 100%;
    }
    .interact .interact-buttons .list-buttom {
        flex-wrap: wrap;
    }
    .interact .interact-buttons .list-buttom li {
        margin: 2px 3px; 
    }
}
@media (min-width: 768px) {
    .interact .interact-buttons .list-buttom a {
        font-size: 12px; /* Aumenta o tamanho da fonte */
        padding: 5px 15px; /* Aumenta o padding */
    }
}
.iconFavorito {
   color: #EC1D27;
   font-size: 15px; 
}
.iconCombos {
    color: #4BC532;
    font-size: 15px; 
}
.iconPromocao {
    color: #04B8CB;
    font-size: 15px; 
}
.iconPontos {
    color: #8A2BE7;
    font-size: 15px; 
}
.iconRating {
    color: #FFD700;
    font-size: 15px; 
}

/*======== Mais Pedidos ========*/
.more-requests {
    margin-top: 15px;
    width: 100%;
    overflow-x: auto; /* Adiciona scroll horizontal */
    white-space: nowrap; /* Evita que os itens quebrem a linha */
}
.more-requests .text-tittle {
    margin-left: 2%;
    font-size: 20px;
    font-weight: bold;
    color: #424141;
}
.more-requests-items {
    display: inline-block; /* Mantém os itens inline para scroll horizontal */
    margin-right: 5px;
    vertical-align: top; /* Alinha os itens ao topo */
}
.promotion {
    position: absolute;
    top: 5px;
    left: 5px;
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 10px;
    font-weight: bold;
    z-index: 1; /* Garante que o quadrinho fique sobre a imagem */
}
.old-price-more-request {
    font-size: 10px;
    color: var(--secondaryText);
    text-decoration: line-through;
    margin-left: -25%; 
}
.more-requests-item {
    display: flex;
    flex-direction: column;
    align-items: left;
    width: 200px;
    margin: 5px;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s, box-shadow 0.3s; /* Transição suave para hover */
}
.more-requests-item:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Efeito de sombra leve */
}
.more-requests-item img {
    width: 100%;
    height: 120px;
    object-fit: cover; /* Ajusta a imagem para cobrir o espaço sem distorcer */
}
.more-requests-info {
    padding: 10px;
    text-align: left; /* Alinha o texto à esquerda */
}
.more-requests-price {
    display: flex;
    justify-content: space-between; /* Alinha o preço e o ícone nos extremos */
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-decoration: none;
    margin-bottom: 5px;
}
.more-requests-price .iconFavorito {
    color: #EC1D27;
    margin-right: 5px; /* Alinha o ícone completamente à direita */
    font-size: 25px;
}
.more-requests-item-name {
    font-size: 12px;
    color: #666;
    margin-top: -2px; /* Espaço entre o nome do produto e o preço */
    margin-left: -2px; /* Margem à esquerda */
    word-wrap: break-word; /* Permite a quebra de linha na descrição */
}
@media (min-width: 768px) {
    .more-requests {
        margin-left: 2%;
    }

    .more-requests-items {
        margin-right: 20px;
    }

    .more-requests-item {
        width: 200px; /* Aumenta a largura dos itens */
    }

    .more-requests-price {
        font-size: 16px;
    }

    .more-requests-item-name {
        font-size: 12px;
    }
}

/*======== products ========*/
.main-products {
    width: 100%;
    padding: 20px;
    background-color: white;
}
.product-group {
    margin-bottom: 30px;
}
.products-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
}
.group-name {
    font-size: 24px;
    font-weight: bold;
    color: #424141;
}
.group-description {
    font-size: 12px;
    color: #777;
    margin-top: 5px;
    margin-bottom: 20px;
}
.product-div {
    height: 1px;
    background-color: #ddd;
    margin-bottom: 10px;
}
.products {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 10px;
    margin-bottom: 5px;
    border-radius: 5px;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s ease;
}
.products:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve ao passar o mouse */
}
.product-image {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 10px;
    margin-left: 20px; /* Espaçamento entre a imagem e a informação do produto */
}
.product-info {
    flex: 1; /* Ocupa todo o espaço disponível */
    display: flex;
    flex-direction: column; /* Garante que os elementos internos fiquem empilhados verticalmente */
}
.product-name {
    font-size: 16px;
    font-weight: bold;
    color: #333;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
}
.product-name .iconFavorito {
    color: #EC1D27;
    font-size: 20px;
    margin-left: 10px; 
}
.product-name .iconPromocao {
    color: #04B8CB;
    font-size: 16px;
    margin-left: 10px; 
}
.product-description {
    font-size: 11px;
    color: #666;
    margin-bottom: 18px;
    margin-top: -15px;
}
.product-price {
    font-size: 14px;
    font-weight: bold;
    color: #333;
}
.cart-badge {
    position: absolute;
    background-color: var(--padrao);
    color: white;
    font-size: 11px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    padding: 0 2px;
    border-radius: 50%; 
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: -0.2px; 
    line-height: 1;
}
.cart-badge.top-right {
    top: 5px;
    right: 5px;
}
.cart-badge.top-left {
    top: 5px;
    left: 5px;
}
.cart-badge[data-count="99+"] {
    font-size: 9px;
    padding: 0 2px;
}
@media (max-width: 480px) {
    .cart-badge {
        min-width: 16px;
        height: 16px;
    }
}
.product-price .old-price-more-request {
    font-size: 13px;
    color: #999;
    text-decoration: line-through;
    margin-left: 5px; 
}
.product-promotion {
    position: absolute;
    top: 12px;
    right: 12px;
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 5px;
    border-radius: 7px;
    font-size: 10px;
    font-weight: bold;
    z-index: 1;
}
@media (min-width: 1024px) {
    .products {
        width: calc(50% - 5px); /* 50% da largura menos a margem */
    }
}
.details-product-packaging {
    margin-bottom: 24px;
}
.details-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}
.details-subtitle-complements {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.details-obligatory {
    font-size: 12px;
    color: var(--primary-color);
    font-weight: 500;
    margin-bottom: 12px;
}
.packaging-select-wrapper {
    position: relative;
    width: 100%;
}
.packaging-select {
    width: 100%;
    padding: 14px 16px;
    font-size: 16px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background-color: var(--background-color);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.packaging-select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(234, 29, 44, 0.2);
}
.packaging-select:hover {
    background-color: var(--hover-color);
}
.select-icon {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-color);
    pointer-events: none;
    transition: transform 0.3s ease;
} 
.packaging-select:focus + .select-icon {
    transform: translateY(-50%) rotate(180deg);
}
.packaging-select option {
    font-size: 16px;
    padding: 10px;
}
@media (max-width: 768px) {
    .details-title {
      font-size: 16px;
    }
  
    .packaging-select {
      font-size: 14px;
      padding: 12px 14px;
    }
}

/*======== Fidelidade ========*/
.loyalty-requests {
    margin-top: 15px;
    width: 100%;
    overflow-x: auto; /* Adiciona scroll horizontal */
    white-space: nowrap; /* Evita que os itens quebrem a linha */
}
.loyalty-requests .text-tittle {
    margin-left: 2%;
    font-size: 20px;
    font-weight: bold;
    color: #424141;
}
.loyalty-requests-items {
    display: inline-block; /* Mantém os itens inline para scroll horizontal */
    margin-right: 5px;
    vertical-align: top; /* Alinha os itens ao topo */
}
.loyalty-requests-item {
    display: flex;
    flex-direction: column;
    align-items: left;
    width: 200px;
    margin: 5px;
    border: 1px solid #ddd;
    border-radius: 10px;
    overflow: hidden;
    background-color: #fff;
    position: relative;
    transition: background-color 0.3s, box-shadow 0.3s; /* Transição suave para hover */
}
.loyalty-requests-item:hover {
    background-color: #f0f0f0; /* Cor de fundo cinza leve */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Efeito de sombra leve */
}
.loyalty-requests-item img {
    width: 100%;
    height: 120px;
    object-fit: cover; /* Ajusta a imagem para cobrir o espaço sem distorcer */
}
.loyalty-requests-info {
    padding: 10px;
    text-align: left; /* Alinha o texto à esquerda */
}
.loyalty-requests-price {
    display: flex;
    justify-content: space-between; /* Alinha o preço e o ícone nos extremos */
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-decoration: none;
    margin-bottom: 5px;
}
.loyalty-requests-price .iconPontos {
    color: #8A2BE7;
    margin-right: 5px; /* Alinha o ícone completamente à direita */
    font-size: 18px;
}
.loyalty-requests-item-name {
    font-size: 12px;
    color: #666;
    margin-top: -2px; /* Espaço entre o nome do produto e o preço */
    margin-left: -2px; /* Margem à esquerda */
    word-wrap: break-word; /* Permite a quebra de linha na descrição */
}
/* Estilos para dispositivos maiores */
@media (min-width: 768px) {
    .loyalty-requests {
        margin-left: 2%;
    }

    .loyalty-requests-items {
        margin-right: 20px;
    }

    .loyalty-requests-item {
        width: 200px; /* Aumenta a largura dos itens */
    }

    .loyalty-requests-price {
        font-size: 16px;
    }

    .loyalty-requests-item-name {
        font-size: 12px;
    }
}

/*======== Footer ========*/
.footer {
    background-color: #fff;
    color: var(--text);
    margin-top: 30px;
    padding: 40px 0 20px;
    font-family: var(--fonte);
    border-top: 1px solid #f0f0f0;
}
.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 20px;
    gap: 30px;
}
.footer-column {
    flex: 1;
    min-width: 250px;
}
.footer-logo {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}
.logo-img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin-right: 10px;
    object-fit: cover;
}
.footer-logo h2 {
    font-size: 20px;
    margin: 0;
    color: var(--text);
}
.footer-slogan {
    font-size: 14px;
    color: var(--secondaryText);
    margin: 0 0 20px;
}
.footer h3 {
    font-size: 16px;
    margin: 0 0 20px;
    position: relative;
    padding-bottom: 10px;
    color: var(--text);
    font-weight: 600;
}
.footer h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background-color: var(--padrao);
}
.footer-info {
    list-style: none;
    padding: 0;
    margin: 0;
}
.footer-info li {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    color: var(--secondaryText);
    font-size: 14px;
}
.footer-info ion-icon {
    margin-right: 10px;
    font-size: 18px;
    color: var(--padrao);
    min-width: 20px;
}
.social-icons {
    display: flex;
    gap: 15px;
    margin-bottom: 20px;
}
.social-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: #f5f5f5;
    border-radius: 50%;
    color: var(--text);
    font-size: 20px;
    transition: all 0.3s ease;
}
.social-icon:hover {
    background-color: var(--padrao);
    color: white;
    transform: translateY(-3px);
}
.app-download h4 {
    font-size: 14px;
    margin: 0 0 10px;
    color: var(--text);
}
.app-buttons {
    display: flex;
    gap: 10px;
}
.app-button {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    background-color: #f5f5f5;
    border-radius: 6px;
    color: var(--text);
    text-decoration: none;
    font-size: 12px;
    transition: all 0.3s ease;
}
.app-button:hover {
    background-color: var(--padrao);
    color: white;
}
.app-button ion-icon {
    font-size: 18px;
    margin-right: 5px;
}
.footer-bottom {
    max-width: 1200px;
    margin: 30px auto 0;
    padding: 20px 20px 0;
    border-top: 1px solid #f0f0f0;
    text-align: center;
}
.footer-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 15px;
}
.footer-links a {
    color: var(--secondaryText);
    text-decoration: none;
    font-size: 13px;
    transition: color 0.3s ease;
}
.footer-links a:hover {
    color: var(--padrao);
}
.copyright {
    font-size: 12px;
    color: var(--secondaryText);
    margin: 0;
}
@media (max-width: 768px) {
    .footer-container {
        flex-direction: column;
        gap: 30px;
    }
    
    .footer-column {
        flex: 1 1 100%;
    }
    
    .social-icons {
        justify-content: flex-start;
    }
    
    .footer-links {
        flex-direction: column;
        gap: 10px;
        align-items: center;
    }
}
@media (max-width: 480px) {
    .footer {
        padding: 30px 0 15px;
    }
    
    .footer-container {
        padding: 0 15px;
        gap: 25px;
    }
    
    .footer h3 {
        font-size: 16px;
        margin-bottom: 15px;
    }
    
    .footer-info li {
        font-size: 13px;
    }
    
    .social-icon {
        width: 35px;
        height: 35px;
        font-size: 18px;
    }
    
    .app-buttons {
        flex-direction: column;
    }
}

/*======== Imagem Preview ========*/
.image-preview-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    padding-top: 50px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.9);
    transition: opacity 0.3s ease;
}
.image-preview-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 80vh;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    animation: zoomIn 0.3s ease;
}
@keyframes zoomIn {
    from {
      transform: scale(0.8);
      opacity: 0;
    }
    to {
      transform: scale(1);
      opacity: 1;
    }
}
.close-image-preview {
    position: absolute;
    top: 15px;
    right: 25px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    transition: 0.3s;
    cursor: pointer;
    z-index: 10000;
}
.close-image-preview:hover,
.close-image-preview:focus {
    color: #bbb;
    text-decoration: none;
}
.details-product-image img,
.complements-picture,
.flavor-picture {
    cursor: pointer;
    transition: transform 0.2s ease;
}
.details-product-image img:hover,
.complements-picture:hover,
.flavor-picture:hover {
    transform: scale(1.02);
}
@media only screen and (max-width: 700px) {
    .image-preview-content {
      max-width: 95%;
    }
    
    .image-preview-modal {
      padding-top: 60px;
    }
    
    .close-image-preview {
      top: 10px;
      right: 10px;
      font-size: 30px;
    }
}

/*======== Popup Item ========*/
.popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    overflow-y: auto;
}
.popup-content {
    background-color: #fff;
    margin: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 16px 16px 0 0;
    overflow: hidden;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1);
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;   
    max-height: 90vh;
    overflow-y: auto;
}
.popup-header {
    position: relative;
    height: 200px;
    margin-top: -40px;
}
.popup-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.details-back {
    position: sticky;
    top: 16px; /* Mantém fixo no topo do content */
    left: 16px;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 11; /* Garante que fique acima do conteúdo rolável */
}
@media (max-width: 768px) {
    .popup {
        display: flex;
        align-items: center;
        justify-content: center;
        max-height: 100%;
    }

    .popup-content {
        border-radius: 0px;
        height: 100%;
        max-height: 100%;
        animation: SlideUpProduct 0.3s ease;
    }
    
    @keyframes SlideUpProduct {
        from {transform: translateY(100%);}
        to {transform: translateY(0);}
    }

    .details-back {
        top: 56px;    
    }    
}
.details-back-icon {
    font-size: 24px;
    color: var(--text);
}
.details-product-promotion {
    position: absolute;
    top: 16px;
    right: 16px;
    background-color: var(--green);
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
}
.details-information {
    padding: 16px;
}
.details-information-header {
    margin-bottom: 16px;
}
.details-product-name {
    font-size: 20px;
    font-weight: bold;
    color: var(--text);
    margin-bottom: 4px;
}
.details-product-description {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 8px;
}
.details-product-price {
    font-size: 16px;
    font-weight: bold;
    color: var(--text);
}
.details-product-price.promo {
    background-color: #D9FFD1;
    color: #4BC532;
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    z-index: 1; /* Cor verde quando tem a classe promotion */
}
.details-product-price.fidelidade {
    background-color: #E8D9FF; /* Roxo claro */
    color: #8A2BE7; /* Roxo forte */
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 16px;
    font-weight: bold;
    z-index: 1;
}
.details-old-price-more-request {
    font-size: 12px;
    color: var(--light-text);
    text-decoration: line-through;
    margin-left: 8px;
}
.details-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--text);
    margin: 24px 0 12px;
}
.details-subtitle-complements {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.details-obligatory {
    font-size: 12px;
    color: var(--padrao);
    font-weight: bold;
}

.loading-spinner-product {
    width: 20px;
    height: 20px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid var(--gray-dark);
    border-radius: 50%;
    animation: spinProductPopup 1s linear infinite;
    margin-left: 10px;
    display: inline-block;
}
@keyframes spinProductPopup {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.details-confirm-button.loading {
    pointer-events: none;
    opacity: 0.5;
}

.details-content .search-input-container {
    position: sticky;
    top: 0;
    background-color: #fff;
    z-index: 10;
    padding: 16px;
    padding-top: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-color);
}
.details-content .search-input {
    display: flex;
    align-items: center;
    background-color: var(--gray);
    border-radius: 8px;
    padding: 8px 12px;
    margin: 0;
}
.details-content .search-input ion-icon {
    color: var(--light-text);
    margin-right: 8px;
}
.details-content .search-input input {
    border: none;
    background-color: transparent;
    font-size: 14px;
    width: 100%;
    outline: none;
}

.details-flavors-items,
.details-complements-items {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.flavor-item,
.complements-item {
    display: flex;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--gray);
    position: relative;
}
.flavor-picture,
.complements-picture {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    margin-right: 12px;
    flex-shrink: 0;
}

.flavor-info {
    flex-grow: 1;
    margin-right: 12px;
}
.flavor-name,
.complements-name {
    font-size: 14px;
    font-weight: bold;
    color: var(--text);
    margin-bottom: 4px;
}
.flavor-price,
.complements-price {
    font-size: 14px;
    color: var(--light-text);
    margin-bottom: 4px;
}
.flavor-details-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--padrao);
    cursor: pointer;
    margin-top: 4px;
}
.flavor-details-content {
    display: none;
    font-size: 12px;
    color: var(--light-text);
    margin-top: 4px;
}
.flavor-details.active .flavor-details-content {
    display: block;
}
.flavor-info {
    flex-grow: 1;
    margin-right: 12px;
}
.details-flavors-items .flavor-checkbox-wrapper,
.complements-radio-wrapper {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
.flavor-checkbox,
.complements-radio-button {
    flex-shrink: 0;
    align-self: center;
}
.complements-quantity {
    display: flex;
    align-items: center;
    margin-left: auto;
}
.details-complements-sub,
.details-complements-add,
.details-items-sub,
.details-items-add {
    font-size: 24px;
    color: var(--padrao);
    cursor: pointer;
}
.details-items-quantity-selected,
.details-items-quantity-all-selected {
    font-size: 16px;
    font-weight: bold;
    margin: 0 12px;
}
.details-items-quantity {
    display: flex;
    align-items: center;
}
.details-items-quantity-all-selected {
    width: 50px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    font-family: var(--fonte);
    border: none;
    background-color: transparent;
    -moz-appearance: textfield;
}
.details-items-quantity-all-selected::-webkit-outer-spin-button,
.details-items-quantity-all-selected::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Retiradas */
.details-product-complements.withdrawal {
    background-color: #fff5e6; /* Light orange background */
    border: 1px solid #ffd699; /* Darker orange border */
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 24px;
}
.details-product-complements.withdrawal::before {
    content: "Retirada";
    display: inline-block;
    background-color: #ff9900; /* Orange background */
    color: white;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}
.details-product-complements.withdrawal .details-title {
    color: #cc7a00; /* Darker orange text */
}
.details-product-complements.withdrawal .complements-item {
    background-color: white;
    border: 1px solid #ffd699;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 8px;
}
.details-product-complements.withdrawal .complements-name {
    color: #cc7a00; /* Darker orange text */
}
.details-product-complements.withdrawal .complements-price {
    color: #ff9900; /* Orange text */
}
.details-product-complements.withdrawal .custom-checkbox .checkmark {
    border-color: #ff9900;
} 
.details-product-complements.withdrawal .custom-checkbox input:checked ~ .checkmark {
    background-color: #ff9900;
}
.details-product-complements.withdrawal .custom-checkbox:hover input ~ .checkmark,
.details-product-complements.withdrawal .custom-checkbox input:focus ~ .checkmark {
    border-color: #cc7a00;
}
.details-product-complements.withdrawal .custom-checkbox input:checked:focus ~ .checkmark {
    box-shadow: 0 0 0 4px rgba(255, 153, 0, 0.1);
}

/* ====== UPLOAD IMAGE =======*/
.details-product-image-upload {
    margin-bottom: 24px;
    border-radius: 12px;
    padding: 16px;
    background-color: var(--white);
  }
.upload-image-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: var(--padrao);
    color: white;
    padding: 12px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-bottom: 16px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.upload-image-label:hover {
    background-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.upload-image-label:active {
    transform: translateY(0);
}
.upload-image-label ion-icon {
    font-size: 18px;
}
.preview-image-container {
    border-radius: 8px;
    overflow: hidden;
    background-color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}
.preview-image-container:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.preview-image {
    width: 100%;
    height: auto;
    max-height: 200px;
    object-fit: contain;
    border-radius: 8px 8px 0 0;
    background-color: #f0f0f0;
    display: block;
}
.thumbnails-container {
    display: flex;
    gap: 8px;
    padding: 12px;
    overflow-x: auto;
    background-color: #f0f0f0;
    border-top: 1px solid var(--border-color);
}
.thumbnails-container::-webkit-scrollbar {
    height: 4px;
}
.thumbnails-container::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.thumbnails-container::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 4px;
}
.thumbnail-item {
    width: 60px;
    height: 60px;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.2s ease;
    flex-shrink: 0;
    position: relative;
}
.thumbnail-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.thumbnail-item.active {
    border-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.thumbnail-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.thumbnail-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    background-color: var(--padrao);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    cursor: pointer;
    opacity: 0;
    transform: scale(0.8);
    transition: all 0.2s ease;
    z-index: 2;
}
.thumbnail-item:hover .thumbnail-remove {
    opacity: 1;
    transform: scale(1);
}
.upload-progress-container {
    height: 4px;
    background-color: #e0e0e0;
    border-radius: 2px;
    margin-top: 8px;
    overflow: hidden;
    display: none;
}
.upload-progress-container.active {
    display: block;
}
.upload-progress-bar {
    height: 100%;
    background-color: var(--padrao);
    width: 0%;
    transition: width 0.3s ease;
}
.details-observations-input {
    margin-top: 12px;
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    resize: none;
    transition: border-color 0.3s ease;
}
.details-observations-input:focus {
    border-color: var(--padrao);
    outline: none;
}
.drag-drop-zone {
    border: 2px dashed var(--border-color);
    border-radius: 8px;
    padding: 24px;
    text-align: center;
    margin-bottom: 16px;
    transition: all 0.3s ease;
    background-color: white;
}
.drag-drop-zone.drag-over {
    border-color: var(--padrao);
    background-color: rgba(var(--padrao-rgb), 0.05);
}
  
.drag-drop-text {
    color: var(--light-text);
    font-size: 14px;
    margin-bottom: 8px;
}
.drag-drop-icon {
    font-size: 32px;
    color: var(--light-text);
    margin-bottom: 8px;
}
.multiple-images-notice {
    font-size: 12px;
    color: var(--light-text);
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.multiple-images-notice ion-icon {
    color: var(--padrao);
    font-size: 14px;
}
@media (max-width: 768px) {
    .upload-image-label {
      padding: 10px 14px;
      font-size: 13px;
    }
    
    .thumbnail-item {
      width: 50px;
      height: 50px;
    }
    
    .preview-image {
      max-height: 180px;
    }
}
@media (max-width: 480px) {
    .thumbnail-item {
      width: 40px;
      height: 40px;
    }
    
    .preview-image {
      max-height: 150px;
    }
    
    .drag-drop-zone {
      padding: 16px;
    }
}

/* Estilos personalizados para checkbox e radio button */
.custom-checkbox,
.custom-radio {
    position: relative;
    display: inline-flex; /* Flex para centralizar */
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 10px;
    cursor: pointer;
}
/* Oculta o input padrão */
.custom-checkbox input,
.custom-radio input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
/* Estilos do checkmark */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  background-color: #fff;
  border: 2px solid var(--padrao);
  border-radius: 4px;
}
/* Checkmark para radio */
.custom-radio .checkmark {
    border-radius: 50%;
}
/* Estado ativo */
.custom-checkbox input:checked ~ .checkmark,
.custom-radio input:checked ~ .checkmark {
    background-color: var(--padrao);
}
.custom-checkbox input:checked ~ .checkmark:after {
    content: "";
    position: absolute;
    left: 4px; /* Ajuste esses valores conforme necessário */
    top: 1px; /* Ajuste esses valores conforme necessário */
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
    display: block;
}
  
/* Ponto interno do radio */
.custom-radio .checkmark:after {
    content: "";
    display: none;
    position: absolute;
}
.custom-checkbox input:checked ~ .checkmark:after,
.custom-radio input:checked ~ .checkmark:after {
    display: block;
}
/* Checkmark do radio */
.custom-radio .checkmark:after {
    width: 10px;
    height: 10px;
    background: white;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/*======= Hover e foco =======*/
.details-content .custom-checkbox:hover input ~ .checkmark,
.custom-radio:hover input ~ .checkmark,
.custom-checkbox input:focus ~ .checkmark,
.custom-radio input:focus ~ .checkmark {
    border-color: var(--padrao-hover);
}
.details-content .custom-checkbox input:checked:focus ~ .checkmark,
.custom-radio input:checked:focus ~ .checkmark {
    box-shadow: 0 0 0 4px rgba(var(--padrao-rgb), 0.1);
}

/*======= Estilos para os botões de mais e menos =======*/
.quantity-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    background-color: var(--gray-light);
    border: 1px solid var(--gray);
    border-radius: 50%;
    font-size: 15px;
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s ease;
    outline: none;
}
.quantity-button:hover,
.quantity-button:focus {
    background-color: var(--gray);
}
.quantity-button:active {
    transform: scale(0.95);
}
.details-items-quantity-selected,
.details-items-quantity-all-selected {
    font-size: 15px;
    font-weight: bold;
    margin: 0 12px;
    min-width: 20px;
    text-align: center;
}
.details-observations {
    margin: 24px 0;
}
.details-observations-input {
    width: 100%;
    height: 80px;
    border: 1px solid var(--gray);
    border-radius: 8px;
    padding: 12px;
    font-size: 14px;
    resize: none;
}
.footer-details-menu {
    position: sticky;
    bottom: 0;
    background-color: #fff;
    padding: 16px;
    border-top: 1px solid var(--gray);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.details-items-quantity {
    display: flex;
    align-items: center;
}
.item-pontos {
    position: relative;
    top: 3px; /* Ajuste para melhor posicionamento */
    background-color: rgba(138, 43, 231, 0.1); /* Fundo sutil para destaque */
    color: #8a2be7;
    font-weight: bold;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}
.details-confirm-button {
    display: flex;
    align-items: center;
    background-color: var(--padrao);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
}
.details-confirm-button.fidelidade {
    display: flex;
    align-items: center;
    background-color: #8A2BE7; /* Roxo forte */
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    cursor: pointer;
}
.details-confirm-cart {
    font-size: 16px;
    margin-right: 8px;
}
.details-confirm-text {
    font-size: 14px;
    font-weight: 400;
}
.details-content {
    flex-grow: 1;
}
@media (min-width: 768px) {
    .popup-content {
      max-width: 720px;
      margin: 0 auto;
    }
  
    .popup-header {
      height: 300px;
      margin-top: 0px;
    }

    .details-back {
        position: absolute;
        top: 16px;
        left: 16px;
        background-color: rgba(255, 255, 255, 0.9);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }
  
    .popup-header img {
      height: 100%;
      object-fit: cover;
      object-position: center;
    }
  
    .details-information {
      padding: 24px;
    }
  
    .details-flavors-items,
    .details-complements-items {
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }
  
    .flavor-item,
    .complements-item {
      border: 1px solid #ccc;
      padding: 16px;
    }
  
    .flavor-picture,
    .complements-picture {
      width: 60px;
      height: 60px;
    }
  
    .flavor-name,
    .complements-name {
      font-size: 14px;
    }
  
    .flavor-price,
    .complements-price {
      font-size: 13px;
    }
  
    .flavor-details-toggle,
    .flavor-details-content {
      font-size: 12px;
    }
  
    .footer-details-menu {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
    }
}
@media (min-width: 1024px) {
    .popup {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: rgba(0, 0, 0, 0.5); /* Fundo escuro semi-transparente */
    }

    .popup-content {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-width: 960px;
        width: 90%;
        height: 90%;
        border-radius: 16px;
        display: flex;
        flex-direction: row;
        overflow: hidden;
        background: #fff;
    }
    
    .details-back {
        position: absolute;
        top: 16px;
        left: 16px;
        background-color: rgba(255, 255, 255, 0.9);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .popup-header {
        width: 40%;
        height: auto;
        margin-top: 0px;
        max-height: 90vh;
    }
  
    .popup-header img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
  
    .details-information {
        width: 60%;
        height: 90vh;
        overflow-y: auto;
    }
  
    .details-content {
        height: calc(100% - 80px); /* Adjust based on your footer height */
        overflow-y: auto;
    }
  
    .details-flavors-items,
    .details-complements-items {
        grid-template-columns: 1fr;
    }
  
    .flavor-item,
    .complements-item {
        border: none;
        padding: 16px 0;
    }
  
    .flavor-picture,
    .complements-picture {
        width: 80px;
        height: 80px;
    }
  
    .flavor-name,
    .complements-name {
        font-size: 16px;
    }
  
    .flavor-price,
    .complements-price {
        font-size: 15px;
    }
  
    .flavor-details-toggle,
    .flavor-details-content {
        font-size: 13px;
    }
  
    .footer-details-menu {
        position: sticky;
        bottom: 0;
        width: 100%;
        background-color: #fff;
        padding: 16px;
        border-top: 1px solid var(--gray);
    }
  
    .details-content::-webkit-scrollbar {
        display: none;
    }
  
    .details-content {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
}

.checkout-header {
    position: sticky;
    top: 0;
    background-color: var(--white);
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 100;
}
.back-button {
    cursor: pointer;
    padding: 8px;
    margin-right: 16px;
}
.back-button ion-icon {
    font-size: 24px;
    color: var(--text);
}
.checkout-header h1 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text);
}
.checkout-content {
    padding: 16px;
    padding-bottom: 80px;
}
.delivery-address,
.payment-methods,
.discount-coupon,
.order-summary {
    background-color: var(--white);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.delivery-address h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.delivery-address h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}
h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
}
.form-row {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}
.form-input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 12px;
}

/* Estilos para a seção de agendamento */
.delivery-time {
    background-color: var(--white);
    border-radius: var(--border-radius);
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.delivery-time h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.delivery-time h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}

/* Estilo para as opções com radio button */
.radio-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    position: relative;
}
.radio-option:last-child {
    border-bottom: none;
}
.option-content {
    flex: 1;
}
.option-text {
    font-size: 15px;
    color: var(--text);
}

/* Estilo personalizado para o radio button */
.radio-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.radio-checkmark {
    position: relative;
    display: inline-block;
    height: 20px;
    width: 20px;
    background-color: #fff;
    border: 2px solid #ddd;
    border-radius: 50%;
}
.radio-option:hover input ~ .radio-checkmark {
    border-color: #ccc;
}
.radio-option input:checked ~ .radio-checkmark {
    border-color: var(--padrao);
}
.radio-checkmark:after {
    content: "";
    position: absolute;
    display: none;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--padrao);
}
.radio-option input:checked ~ .radio-checkmark:after {
    display: block;
}

/* Campos de agendamento */
.schedule-fields {
    padding: 16px;
    background-color: var(--gray-light);
    border-radius: var(--item-border-radius);
    margin-top: 16px;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}
.schedule-field {
    margin-bottom: 16px;
}
.schedule-field:last-child {
    margin-bottom: 0;
}
.schedule-field label {
    display: block;
    font-size: 14px;
    color: var(--text);
    margin-bottom: 8px;
    font-weight: 500;
}

/* Estilo para o select customizado */
.custom-select {
    position: relative;
    width: 100%;
}
.select-selected {
    background-color: var(--white);
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 12px 16px;
    padding-left: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    position: relative;
    height: 48px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.select-selected:focus, 
.select-selected:hover {
    border-color: var(--padrao);
    box-shadow: 0 0 0 2px rgba(255, 49, 49, 0.1);
}
.select-selected ion-icon {
    position: absolute;
    left: 12px;
    color: var(--light-text);
    font-size: 18px;
}
.select-selected:after {
    content: "";
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    border: solid var(--light-text);
    border-width: 0 2px 2px 0;
    display: inline-block;
    padding: 3px;
    transform: translateY(-50%) rotate(45deg);
}
.select-selected.select-arrow-active:after {
    transform: translateY(-50%) rotate(-135deg);
}
.select-items {
    position: absolute;
    background-color: var(--white);
    top: 100%;
    left: 0;
    right: 0;
    z-index: 99;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 200px;
    overflow-y: auto;
    box-shadow: var(--shadow);
}
.select-hide {
    display: none;
}
.select-items div {
    padding: 12px 16px;
    padding-left: 40px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color);
    transition: background-color 0.2s ease;
}
.select-items div:last-child {
    border-bottom: none;
}
.select-items div:hover {
    background-color: var(--gray-light);
}
.same-as-selected {
    background-color: rgba(255, 49, 49, 0.05);
}

/* Navegação do select */
.select-nav {
    display: flex;
    justify-content: space-between;
    padding: 8px;
    border-top: 1px solid var(--border-color);
}
.select-nav-btn {
    background: none;
    border: none;
    color: var(--light-text);
    cursor: pointer;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    transition: color 0.2s ease;
}
.select-nav-btn:hover {
    color: var(--padrao);
}
.select-nav-btn:disabled {
    color: var(--gray-medium);
    cursor: not-allowed;
}
@media (min-width: 768px) {
    .delivery-time {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Loading indicator styles */
.schedule-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px 0;
    width: 100%;
}
.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    border-top: 4px solid var(--padrao);
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.schedule-loading-active .schedule-field {
    display: none;
}

.payment-methods {
    background-color: var(--white);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
}
.payment-methods h2 {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 16px;
    position: relative;
    padding-bottom: 8px;
}
.payment-methods h2::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background-color: var(--padrao);
    border-radius: 2px;
}
.payment-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
    width: 100%;
}
.payment-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    background-color: #fff;
    position: relative;
}
.payment-card:hover {
    border-color: #ccc;
}
.payment-card.active {
    border: 1px solid var(--padrao); 
    background-color: rgba(var(--padrao-rgb), 0.05);
}    
.payment-card.active::before,
.payment-card.active::after {
    display: none;
}
.payment-card ion-icon {
    font-size: 22px;
    margin-right: 12px;
    color: #666;
    transition: color 0.3s ease;
}
.payment-card.active ion-icon {
    color: var(--padrao);
}
.payment-card span {
    font-size: 14px;
    color: var(--text);
    text-align: left;
    font-weight: 500;
    flex-grow: 1;
}

/* Novo: texto de informação à direita */
.payment-card::after {
    font-size: 12px;
    color: #888;
    margin-left: auto;
    display: none; /* Oculto por padrão */
}
.payment-card:not(.active)::after {
    display: block;
}
.payment-card:first-child::after {
    display: none;
}
.change-field {
    background-color: #f9f9f9;
    border-radius: 10px;
    padding: 16px;
    margin-top: 16px;
    border: 1px solid #eee;
    transition: all 0.3s ease;
}
.change-field label {
    display: block;
    font-size: 14px;
    color: var(--text);
    margin-bottom: 10px;
    font-weight: 500;
}
.change-field input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    transition: all 0.3s ease;
    background-color: white;
}
.change-field input:focus {
    border-color: var(--padrao);
    box-shadow: 0 0 0 2px rgba(255, 49, 49, 0.1);
}
@media (max-width: 480px) {
    .payment-methods {
        padding: 16px;
        margin-left: 0;
        margin-right: 0;
    }

    .payment-card {
        padding: 10px 12px;
    }

    .payment-card ion-icon {
        font-size: 20px;
    }

    .payment-card span {
        font-size: 13px;
    }
}
@media (min-width: 768px) {
    .payment-methods {
        padding: 16px;
        width: 570px;
        margin: auto;
        margin-bottom: 15px;
    }
    
    .order-summary {
        padding: 16px;
        width: 570px;
        margin: auto; 
    }
}

.coupon-input {
    display: flex;
    gap: 12px;
}
.coupon-button {
    background-color: var(--padrao);
    border: none;
    border-radius: 8px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.coupon-button ion-icon {
    color: var(--white);
    font-size: 24px;
}

/* Container dos itens de pedido */
.order-items {
    margin-bottom: 20px;
    max-height: 600px;
    overflow-y: auto;
    padding-right: 8px;
}
.order-items::-webkit-scrollbar {
    width: 6px;
}
.order-items::-webkit-scrollbar-track {
    background: var(--gray-light);
    border-radius: 10px;
}
.order-items::-webkit-scrollbar-thumb {
    background: var(--gray-medium);
    border-radius: 10px;
}
.order-items::-webkit-scrollbar-thumb:hover {
    background: var(--gray-dark);
}

/* Item de pedido */
.order-item {
    display: flex;
    flex-direction: column;
    border-radius: var(--border-radius);
    background-color: var(--white);
    margin-bottom: 12px;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
    border: 1px solid var(--border-color);
    overflow: hidden;
}
.order-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow);
}

/* Cabeçalho do item */
.item-header {
    display: flex;
    align-items: center;
    padding: 12px;
    cursor: pointer;
    background-color: var(--gray-light);
    transition: background-color 0.3s ease;
    position: relative;
}
.item-header:hover {
    background-color: var(--white);
}

/* Imagem do item */
.item-image {
    width: 60px;
    height: 60px;
    border-radius: var(--border-radius);
    object-fit: cover;
    margin-right: 12px;
    background-color: var(--white);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    position: relative;
}

/* Quantidade do item */
.item-quantity {
    position: absolute;
    top: 4px;
    left: 4px;
    background-color: var(--padrao);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Informações do item */
.item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.item-info h3 {
    font-weight: 600;
    font-size: 15px;
    margin-bottom: 4px;
    color: var(--text-primary);
}

/* Seção de preço */
.item-price-section {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 80px;
    justify-content: flex-end;
}
.item-price {
    font-weight: 700;
    font-size: 15px;
    color: var(--text-primary);
}
.item-pontos {
    margin-top: 5px;
    font-size: 12px;
    color: #8a2be7;
    position: relative;
    display: flex;
    align-items: center;
}
.item-pontos::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/opcoes.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}

.collapse-icon {
    font-size: 18px;
    color: var(--gray-dark);
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/* Detalhes do item (seção expansível) */
.item-details {
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    background-color: var(--white);
    border-top: 0 solid var(--border-color);
}
.item-details.show {
    padding: 16px;
    max-height: 500px;
    border-top: 1px solid var(--border-color);
}

/* Seções dentro dos detalhes */
.item-section {
    margin-bottom: 16px;
}
.item-section h4 {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
}

/* Ícones para cada tipo de seção */
.item-section h4::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 8px;
}
.item-section:nth-child(1) h4::before {
    background-image: url('/store/assets/imgs/opcoes.png');
}
.item-section:nth-child(2) h4::before {
    background-image: url('/store/assets/imgs/mais.png');
}
.item-section:nth-child(3) h4::before {
    background-image: url('/store/assets/imgs/menos.png');
}
.item-section:nth-child(4) h4::before {
    content: "📝";
    font-size: 14px;
}

/* Listas de detalhes */
.details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.details-list li {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 13px;
    color: var(--text-secondary);
    border-bottom: 1px dashed var(--border-color);
}
.details-list li:last-child {
    border-bottom: none;
}
.additional-price {
    font-weight: 600;
    color: var(--padrao);
}

/* Lista de retiradas */
.removal-list li {
    color: var(--padrao);
}
.item-observation {
    font-size: 13px;
    color: var(--text-secondary);
    font-style: italic;
    padding: 8px;
    background-color: var(--gray-light);
    border-radius: 4px;
}

@media (max-width: 768px) {
    .item-image {
        width: 50px;
        height: 50px;
    }
    
    .item-info h3 {
        font-size: 14px;
    }
    
    .item-price {
        font-size: 14px;
    }
}
@media (max-width: 480px) {
    .item-header {
        padding: 10px;
    }
    
    .item-image {
        width: 40px;
        height: 40px;
        margin-right: 8px;
    }
    
    .item-quantity {
        width: 20px;
        height: 20px;
        font-size: 10px;
    }
    
    .item-info h3 {
        font-size: 13px;
    }
    
    .item-price {
        font-size: 13px;
    }
    
    .item-details.show {
        padding: 12px;
    }
}

.order-totals {
    margin-top: 16px;
}
.total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--text);
}
.total-row.final {
    font-size: 16px;
    font-weight: 600;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}
.checkout-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--white);
    padding: 16px;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}
.confirm-button {
    width: 100%;
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: 8px;
    padding: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

/* Estilo para o botão desabilitado */
.confirm-button:disabled {
    background-color: #b0b0b0; /* Cor de fundo para o botão desabilitado */
    color: #ffffff;  /* Cor do texto */
    cursor: not-allowed;  /* Cursor de "não permitido" */
    opacity: 0.6;  /* Opacidade reduzida para indicar inatividade */
}
.collapse-icon {
    font-size: 18px;
    color: var(--text);
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/*======= Detalhes do item =======*/
.item-details {
    display: none;
    background-color: #f9f9f9;
    border-top: 1px solid #eee;
    padding: 12px;
}
.item-details.show {
    display: block;
}
.item-section {
    margin-bottom: 16px;
}
.item-section:last-child {
    margin-bottom: 0;
}
.item-section h4 {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 8px;
}
.details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.details-list li {
    font-size: 12px;
    color: var(--light-text);
    padding: 4px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.additional-price {
    font-size: 12px;
    color: var(--padrao);
    font-weight: 500;
}
.removal-list li {
    color: #ff6b6b;
}
.item-observation {
    font-size: 12px;
    color: var(--light-text);
    font-style: italic;
    background-color: #fff;
    padding: 8px;
    border-radius: 4px;
    border: 1px solid #eee;
}

/*======= Fidelidade =======*/
.loyalty-info {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.loyalty-card {
    background-color: #f0f8ff; /* Light blue background */
    border: 2px solid #4169e1; /* Royal blue border */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(65, 105, 225, 0.2);
}
.loyalty-card ion-icon {
    font-size: 24px;
    color: #4169e1;
    margin-right: 12px;
}  
.loyalty-card p {
    margin: 0;
    font-size: 14px;
    color: #333;
}  
.loyalty-card strong {
    color: #4169e1;
    font-weight: 600;
}
@media (min-width: 768px) {
    .loyalty-info {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
}

/*======= Fidelidade (Sem Programa Ativo) =======*/
.loyalty-info.inactive {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.loyalty-card.inactive {
    background-color: #f5f5f5; /* Cinza claro */
    border: 2px solid #b0b0b0; /* Cinza médio */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(176, 176, 176, 0.2);
}
.loyalty-card.inactive ion-icon {
    font-size: 24px;
    color: #b0b0b0; /* Cinza médio */
    margin-right: 12px;
}  
.loyalty-card.inactive p {
    margin: 0;
    font-size: 14px;
    color: #666; /* Cinza escuro */
}  
.loyalty-card.inactive strong {
    color: #777;
    font-weight: 600;
}
@media (min-width: 768px) {
    .loyalty-info.inactive {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
}


/*======= Cupom de Desconto =======*/
.discount-info {
    margin-bottom: 20px;
    padding: 0 16px;
} 
.discount-card {
    background-color: #fff0f5; /* Light pink background */
    border: 2px solid #ff1493; /* Deep pink border */
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(255, 20, 147, 0.2);
}
.discount-card ion-icon {
    font-size: 24px;
    color: #ff1493;
    margin-right: 12px;
}  
.discount-card p {
    margin: 0;
    font-size: 14px;
    color: #333;
}  
.discount-card strong {
    color: #ff1493;
    font-weight: 600;
}

/*======= Quando o cupom não é aplicável =======*/
.not-applicable .discount-card {
    background-color: #f0f0f0; /* Light gray background */
    border: 2px solid #d3d3d3; /* Gray border */
    color: #a9a9a9; /* Gray text color */
}
.not-applicable .discount-card ion-icon {
    color: #d3d3d3; /* Light gray icon */
}
.not-applicable .discount-card strong {
    color: #a9a9a9; /* Gray color for strong text */
}
@media (min-width: 768px) {
    .discount-info {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

/*======= Animações =======*/
.item-details {
    transition: all 0.3s ease-in-out;
    max-height: 0;
    overflow: hidden;
}
.item-details.show {
    max-height: 500px; /* Altura máxima para a animação */
}
@media (min-width: 768px) {
    .checkout-content {
        max-width: 600px;
        margin: 0 auto;
    }

    .payment-options {
        grid-template-columns: repeat(4, 1fr);
    }

    .checkout-footer {
        display: flex;
        justify-content: center;
    }

    .confirm-button {
        max-width: 600px;
    }
}

/* Cards de opção de entrega/retirada refinados */
.delivery-options {
    display: flex;
    padding: 0;
    margin: 16px 0;
    gap: 8px;
}
.option-card {
    flex: 1;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    color: #555555;
    padding: 12px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    position: relative;
    min-height: 48px;
}
.option-card:hover {
    background-color: #f9f9f9;
}
.option-card.selected {
    border: 1px solid var(--padrao);
    background-color: rgba(var(--padrao-rgb), 0.05);
    color: var(--padrao);
}
.option-card ion-icon {
    font-size: 18px;
    color: #777777;
    transition: color 0.2s ease;
}
.option-card.selected ion-icon {
    color: var(--padrao);
}
.option-card span {
    font-weight: 500;
    font-size: 14px;
}
.option-card.hidden {
    display: none;
}
@media (max-width: 480px) {
    .delivery-options {
        padding: 0 16px;
    }
    
    .option-card {
        padding: 10px;
    }
    
    .option-card ion-icon {
        font-size: 16px;
    }
    
    .option-card span {
        font-size: 13px;
    }
}
@media (min-width: 768px) {
    .delivery-options {
        padding: 0 16px;
        max-width: 100%;
    }
}
  
/* ÁREA DO USUÁRIO */
.user-menu {
    background-color: #fff;
    padding: 15px 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.list-menu {
    list-style-type: none;
    padding: 0 15px;
    margin: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    width: 100%;
    scroll-snap-type: x mandatory;
    gap: 15px;
    -webkit-overflow-scrolling: touch;
}
.list-menu::-webkit-scrollbar {
    height: 4px;
} 
.list-menu::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}
.menu-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--text);
    padding: 12px 16px;
    border-radius: 12px;
    transition: all 0.3s ease;
    flex-shrink: 0;
    scroll-snap-align: start;
    min-width: 100px;
    text-align: center;
} 
.menu-item:hover,
.menu-item:focus {
    background-color: var(--gray);
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.menu-item i {
    font-size: 24px;
    margin-bottom: 8px;
    color: var(--padrao);
    transition: color 0.3s ease;
} 
.menu-item:hover i,
.menu-item:focus i {
    color: var(--padrao-dark);
}
.main-content {
    padding: 20px;
    margin-top: 40px;
    background-color: #f9f9f9;
    min-height: calc(100vh - 200px);
}
@media (max-width: 768px) {
    .user-menu {
      padding: 10px 0;
    }
  
    .list-menu {
      padding: 0 10px;
      gap: 10px;
    }
  
    .menu-item {
      padding: 10px;
      font-size: 12px;
      min-width: 80px;
    }
  
    .menu-item i {
      font-size: 20px;
      margin-bottom: 5px;
    }
}
@media (prefers-reduced-motion: no-preference) {
    .list-menu {
      scroll-behavior: smooth;
    }
}
  
/* AUTENTICAÇÃO */
.container-auth {
    background: #F0F0EF;    
}
.auth-container {
    max-width: 380px;
    margin: 40px auto;
    padding: 24px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.auth-logo {
    text-align: center;
    margin-bottom: 24px;
}
.auth-logo img {
    width: 90px;
    border-radius: 50%;
}
.auth-form h2 {
    text-align: center;
    color: var(--text);
    margin-bottom: 18px;
    font-size: 22px;
    font-weight: 600;
}
.form-group {
    margin-bottom: 16px;
}
.form-group label {
    display: block;
    margin-bottom: 6px;
    color: var(--text);
    font-size: 14px;
    font-weight: 500;
}
.form-group input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 15px;
    transition: border-color 0.3s ease;
}
.form-group input:focus {
    border-color: var(--padrao);
    outline: none;
}
.btn-primary {
    width: 100%;
    padding: 10px;
    background: var(--padrao);
    font-family: var(--fonte);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}
.btn-primary:hover {
    background: var(--padrao);
}
.btn-primary:active {
    transform: scale(0.98);
}
.btn-secondary {
    width: 100%;
    padding: 10px;
    background: #3B3B3B;
    font-family: var(--fonte);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
}
.btn-secondary:hover {
    background: #2E2E2E;
}
.btn-secondary:active {
    transform: scale(0.98);
}
.auth-switch {
    text-align: center;
    margin-top: 18px;
    font-size: 14px;
    color: var(--text);
}
.auth-switch a {
    color: var(--padrao);
    text-decoration: none;
    font-weight: 500;
}
.auth-switch a:hover {
    text-decoration: underline;
}

/* Estilo para o switch */
.switch {
    bottom: 5px;
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
}
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: 0.4s;
    border-radius: 50px;
}
.slider:before {
    position: absolute;
    content: "";
    height: 16px;
    width: 16px;
    border-radius: 50px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: 0.4s;
}
input:checked + .slider {
    background-color: var(--padrao);
}
input:checked + .slider:before {
    transform: translateX(26px);
}

/* Estilo para o texto ao lado do switch */
.remember-text {
    position: relative;
    font-size: 14px;
    color: #333;
    margin-left: 10px;
    bottom: 5px;
    vertical-align: middle;
}

/* MEUS PEDIDOS */

/*======= Estilos para a seção Meus Pedidos =======*/
.user-section {
    padding: 10px;
    background-color: var(--white);
}
.user-section h2 {
    font-size: 24px;
    margin-bottom: 20px;
    color: var(--text);
}
.pedidos-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.pedido-item {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    overflow: hidden;
}
.pedido-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    background-color: #f8f8f8;
    border-bottom: 1px solid #eee;
}
.pedido-numero {
    font-weight: bold;
    color: var(--padrao);
}
.pedido-data {
    color: var(--light-text);
}
.pedido-status {
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: bold;
}
.pedido-status.aceito {
    background-color: #e6f7e6;
    color: #28a745;
}
.pedido-status.recusado {
    background-color: #f8d7da;
    color: #dc3545;
}
.pedido-status.pendente {
    background-color: #fff3cd;
    color: #856404;
}
.pedido-detalhes {
    padding: 15px;
}
.pedido-restaurante {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}
.pedido-restaurante img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 10px;
}
.pedido-items p {
    margin: 5px 0;
    color: var(--text);
}
.pedido-total {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-weight: bold;
}
.pedido-acoes {
    display: flex;
    justify-content: space-between;
    padding: 15px;
    background-color: #f8f8f8;
    border-top: 1px solid #eee;
}
.btn-pedido-detalhes,
.btn-pedir-novamente {
    padding: 10px 15px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s ease;
}
.btn-pedido-detalhes {
    background-color: #f0f0f0;
    color: var(--text);
}
.btn-pedir-novamente {
    background-color: var(--padrao);
    color: #fff;
}
.btn-pedido-detalhes:hover {
    background-color: #e0e0e0;
}
.btn-pedir-novamente:hover {
    background-color: var(--padrao);
}
@media (max-width: 768px) {
    .pedido-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .pedido-status {
        margin-top: 10px;
    }

    .pedido-acoes {
        flex-direction: column;
        gap: 10px;
    }

    .btn-pedido-detalhes,
    .btn-pedir-novamente {
        width: 100%;
    }
}

/*======= Estilos para a página de configurações =======*/
.settings-header {
    position: sticky;
    top: 0;
    background-color: var(--white);
    padding: 16px;
    display: flex;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 100;
}
.settings-content {
    padding: 16px;
    padding-bottom: 80px;
}
.settings-section {
    background-color: var(--white);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.settings-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.checkbox-row {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}
.checkbox-container {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
    user-select: none;
}
.checkbox-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.checkmark {
    height: 20px;
    width: 20px;
    background-color: #eee;
    border-radius: 4px;
    margin-right: 8px;
}
.checkbox-container:hover input ~ .checkmark {
    background-color: #ccc;
}
.checkbox-container input:checked ~ .checkmark {
    background-color: var(--padrao);
}
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
.checkbox-container input:checked ~ .checkmark:after {
    display: block;
}
.checkbox-container .checkmark:after {
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.settings-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--white);
    padding: 16px;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}
@media (min-width: 768px) {
    .settings-content {
        max-width: 600px;
        margin: 0 auto;
    }

    .settings-footer {
        display: flex;
        justify-content: center;
    }

    .settings-footer .confirm-button {
        max-width: 600px;
    }
}

/* Estilos do cart-button */
.cart-button-mobile button,
.cart-button-desktop button {
    background-color: var(--padrao); /* Verde similar ao da imagem */
    color: white;
    border: none;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: all 0.2s ease;
}

/* ===== Botão Mobile ====== */
.cart-button-mobile {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 12px 16px;
    background-color: white;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
    z-index: 998;
    border-top: 1px solid #f0f0f0;
}
.cart-button-mobile button {
    width: 100%;
    padding: 14px 20px;
    border-radius: 6px;
    font-size: 15px;
    justify-content: space-between;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.cart-button-mobile button:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.cart-button-mobile .cart-left {
    display: flex;
    align-items: center;
    gap: 10px;
}
.cart-button-mobile .cart-right {
    display: flex;
    align-items: center;
    font-weight: 700;
}

/* ===== Botão Desktop ====== */
.cart-button-desktop {
    display: none;
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 998;
}
.cart-button-desktop button {
    padding: 10px 16px;
    border-radius: 30px;
    font-size: 14px;
    gap: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.cart-button-desktop button:hover {
    background-color: var(--padrao);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}
.cart-button-desktop button:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.cart-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.cart-quantity {
    background-color: white;
    color: var(--padrao);
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    margin-left: 8px;
}
.cart-separator {
    margin: 0 8px;
    color: rgba(255, 255, 255, 0.8);
}
@media (min-width: 768px) {
    .cart-button-desktop {
        display: block;
    }
    
    .cart-button-mobile {
        display: none;
    }
}
@media (max-width: 480px) {
    .cart-button-mobile button {
        padding: 12px 16px;
        font-size: 14px;
    }
}

/*======= Overlay do carrinho ========*/
.cart-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999;
}
.cart-overlay.active {
    display: block;
}

/*======= Container do carrinho =======*/
.cart-container {
    position: fixed;
    background-color: var(--background-white);
    display: flex;
    flex-direction: column;
    height: 90vh;
    width: 100%;
    bottom: 0;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
}
@media (max-width: 768px) {
    .cart-container {
        height: 100%;
        max-height: 100%;
        border-radius: 0;
    } 
}

/*======= Header do carrinho =======*/
.cart-header {
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
}
.cart-subtitle {
    font-size: 14px;
    color: var(--light-text);
}
.cart-store {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 4px;
}
.cart-store h2 {
    font-size: 20px;
    color: var(--text);
}
.view-menu {
    color: var(--padrao);
    text-decoration: none;
    font-size: 14px;
}
.close-cart {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 20px;
    color: var(--text);
    cursor: pointer;
}

/*======= Conteúdo do carrinho ======*/
.cart-content {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    background-color: var(--background-color);
}
.cart-content::-webkit-scrollbar {
    width: 6px;
}
.cart-content::-webkit-scrollbar-track {
    background: var(--gray-light);
    border-radius: 10px;
}
.cart-content::-webkit-scrollbar-thumb {
    background: var(--gray-medium);
    border-radius: 10px;
}
.cart-content::-webkit-scrollbar-thumb:hover {
    background: var(--gray-dark);
}
.cart-items {
    padding: 16px;
    background: var(--white);
    border-radius: var(--border-radius);
    box-shadow: var(--card-shadow);
    margin-bottom: 20px;
}
.cart-items h3 {
    font-size: 18px;
    color: var(--text);
    margin-bottom: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    position: relative;
    padding-bottom: 12px;
}
.cart-items h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 3px;
    background: var(--padrao);
    border-radius: 2px;
}
.cart-items h3::before {
    content: "🛒";
    margin-right: 10px;
    font-size: 18px;
    background: var(--padrao);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}
.cart-item {
    padding: 18px;
    margin-bottom: 16px;
    border-radius: var(--item-border-radius);
    background-color: var(--white);
    transition: all 0.3s ease;
    align-items: flex-start;
    display: flex;
    gap: 12px;
    position: relative;
    border: 1px solid var(--border-color);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
    overflow: hidden;
}
.cart-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--padrao);
    border-radius: var(--item-border-radius) 0 0 var(--item-border-radius);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.cart-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--hover-shadow);
    border-color: rgba(234, 29, 44, 0.1);
}
.cart-item:hover::before {
    opacity: 1;
}
.cart-item .item-image {
    width: 40px;
    height: 40px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.cart-item .item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cart-item .item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-left: 4px;
}
.cart-item .item-main {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
}
.cart-item .item-quantity-card  {
    font-weight: 700;
    color: var(--white);
    min-width: 20px;
    height: 20px;
    background: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.2);
    transition: transform 0.2s ease;
}
.cart-item:hover .item-quantity-card {
    transform: scale(1.1);
}
.cart-item .item-name {
    flex: 1;
    font-weight: 600;
    color: var(--text);
    font-size: 14px;
    line-height: 1.3;
}
.cart-item .item-price {
    font-weight: 600;
    color: var(--text);
    font-size: 12px;
    background: var(--padrao);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    padding: 5px 7px;
    border-radius: 20px;
    border: 1px solid rgba(234, 29, 44, 0.1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.cart-item .item-extras {
    font-size: 12px;
    color: var(--light-text);
    margin-bottom: 14px;
    line-height: 1.5;
    padding-left: 34px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.cart-item .complementos-section {
    margin-bottom: 2px;
    display: flex;
    align-items: flex-start;
    padding: 4px 8px;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}
.cart-item .complementos-section:hover {
    background-color: rgba(0, 0, 0, 0.02);
}
.cart-item .complementos-section::before {
    margin-right: 6px;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
}
.cart-item .complementos-section.adicionais::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/mais.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.retiradas::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/menos.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.opcoes::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/opcoes.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section.pontos::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/pontos.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.cart-item .complementos-section strong {
    color: var(--text);
    font-weight: 600;
    margin-right: 4px;
}
.cart-item .item-actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    padding-top: 4px;
    border-top: 1px dashed var(--border-color);
    margin-top: 4px;
    padding-right: 4px;
}
.btn-remove {
    padding: 8px 16px;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    background: none;
    font-size: 14px;
    color: var(--padrao);
    cursor: pointer;
    transition: all 0.25s ease;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.btn-remove::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url('/store/assets/imgs/lixeira.png');
    background-size: cover;
    background-repeat: no-repeat;
    margin-right: 5px;
}
.btn-remove {
    background-color: white;
}
.btn-remove:hover {
    background-color: var(--padrao);
    color: white;
    border-color: var(--padrao);
    box-shadow: var(--button-shadow);
    transform: translateY(-2px);
}
.btn-remove:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(234, 29, 44, 0.1);
}

/* Animações */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.cart-item {
    animation: fadeIn 0.3s ease forwards;
}
.cart-item:nth-child(2) {
    animation-delay: 0.1s;
}
.cart-item:nth-child(3) {
    animation-delay: 0.2s;
}
.cart-item:nth-child(4) {
    animation-delay: 0.3s;
}

/* Responsividade */
@media (max-width: 768px) {
    .cart-items {
        padding: 20px;
    }
    
    .cart-item {
        padding: 16px;
    }
    
    .item-extras {
        padding-left: 32px;
    }
    
    .cart-items h3 {
        font-size: 18px;
    }
}

@media (max-width: 480px) {
    .cart-items {
        padding: 16px;
    }
    
    .cart-items h3 {
        font-size: 16px;
    }
    
    .cart-item {
        padding: 14px;
    }
    
    .item-name {
        font-size: 14px;
    }
    
    .item-price {
        font-size: 14px;
    }
    
    .item-extras {
        font-size: 12px;
        padding-left: 24px;
    }
    
    .btn-edit,
    .btn-remove {
        padding: 6px 12px;
        font-size: 12px;
    }
    
    .item-main {
        gap: 8px;
    }

    .cart-item .item-image {
        width: 35px;
        height: 35px;
    }
}

/*======= Cupom =======*/
.cart-coupon {
    margin: 24px 0;
    padding: 12px;
    border-radius: 8px;
    background-color: #f5f5f5;
}
.coupon-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
} 
.coupon-icon {
    width: 24px;
    height: 24px;
    font-size: 18px;
    background-color: var(--padrao);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
} 
.coupon-chevron {
    transition: transform 0.3s ease;
}
.coupon-header.active .coupon-chevron {
    transform: rotate(180deg);
} 
.coupon-text {
    font-size: 14px;
    color: var(--light-text);
    margin-top: 4px;
    text-align: center;
    width: 100%; 
    display: flex;
    justify-content: center; 
    align-items: center; 
} 
.coupon-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
.coupon-content.active {
    max-height: 500px; 
}
.coupon-list {
    margin-top: 12px;
}
.coupon-item {
    display: flex;
    position: relative;
    align-items: center;
    padding: 12px;
    background-color: #ffffff;
    border-radius: 4px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}
.coupon-item:hover {
    background-color: #f0f0f0;
}
.coupon-item.active {
    border-color: var(--padrao);
}
.coupon-item-icon {
    font-size: 24px;
    color: var(--primary-color);
    margin-right: 12px;
}
.coupon-item-content {
    display: flex;
    flex-direction: column;
}
.coupon-code {
    font-weight: bold;
    color: var(--primary-color);
    font-size: 16px;
}
.coupon-value {
    font-size: 14px;
    color: var(--dark-text);
}
.coupon-min {
    font-size: 12px;
    color: var(--light-text);
    margin-top: 2px;
}
.remove-coupon-btn {
    background: none;
    display: none;
    border: none;
    color: #000000; /* Cor vermelha para indicar remoção */
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    position: absolute;
    right: 10px;
    top: 20%;
    transform: translateY(-50%);
    padding: 5px;
    transition: color 0.3s ease;
}
.remove-coupon-btn:hover {
    color: #d60000; /* Cor mais escura ao passar o mouse */
}
.coupon-item.active .remove-coupon-btn {
    display: block; /* Exibe somente se estiver ativo */
}

/* ====== Resumo carinho ======= */
.cart-summary {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
}
.summary-item {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--text);
}
.summary-total {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
    font-weight: 500;
}

/* ====== Footer do carrinho ========*/
.cart-footer {
    padding: 16px;
    border-top: 1px solid var(--border-color);
}
.checkout-button {
    width: 100%;
    padding: 14px;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    font-family: var(--fonte);
    cursor: pointer;
}
.checkout-button:hover {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Sombra suave */
}
@media (min-width: 768px) {
    .cart-button-mobile {
        display: none;
    }

    .cart-button-desktop {
        display: block;
    }

    .cart-container {
        right: 0;
        width: 400px;
        height: 100vh;
        border-radius: 0;
    }
}

.hidden {
    display: none;
}
.notyf-custom-icon {
    font-size: 14px;
}
.label-small {
    font-size: 12px; /* Tamanho da letra pequeno */
    color: #666; /* Cor mais suave para o texto */
    display: block; /* Para garantir que o label ocupe uma linha inteira */
    margin-bottom: 4px; /* Um pequeno espaçamento entre o label e o campo de input */
}

/* ======= POPUP LOOTIE ======= */
.animation-popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    justify-content: center;
    align-items: center;
}
.animation-popup .popup-frame-content {
    position: relative; /* Permite que o botão de fechar fique dentro do content */
    background-color: white;
    border-radius: 10px;
    text-align: center;
    max-width: 90%;
    max-height: 90%;
    overflow: hidden; 
    padding: 20px; /* Dá um respiro interno */
}
.animation-popup .popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #555;
    transition: color 0.3s ease;
}
.animation-popup .popup-close:hover {
    color: #000;
}
#frameContent {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
#checkoutFrame {
    width: 100%;
    height: 100%;
    border: none;
}
.animation-popup .image {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px; /* Aumenta a altura do container */
    margin: auto;
}
.animation-popup .image img {
    width: 100%; /* Define o tamanho da imagem como 80% da largura do container */
    height: auto;
    max-height: 100%; /* Garante que a imagem não ultrapasse o container */
    object-fit: contain; 
}

.animation-popup .popup-frame-content {
    background-color: white;
    border-radius: 10px;
    text-align: center;
    width: 90%;
    height: 90%;
    max-width: 90%;
    max-height: 90%;
    overflow: hidden; /* Para garantir que o header colorido respeite o border-radius */
}
.animation-popup .popup-animation-content {
    position: relative;
    background-color: white;
    border-radius: 10px;
    text-align: center;
    max-width: 400px;
    width: 90%;
    overflow: hidden; /* Para garantir que o header colorido respeite o border-radius */
}
.animation-popup .popup-animation-header {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
}
.animation-popup .popup-animation-body {
    padding: 2em;
}
.animation-popup .lottie-animation {
    width: 200px;
    height: 200px;
    margin: 0 auto 1em;
}
.animation-popup .result-message {
    margin-top: 1em;
    margin-bottom: 1em;
}
.animation-popup .result-message h3 {
    font-size: 1.2em;
    margin-bottom: 0.5em;
}
.animation-popup .result-message ul {
    list-style: none; /* Remove os marcadores padrão */
    padding: 0;
    margin: 10px 0;
}
.animation-popup .result-message li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px;
    font-size: 12px;
    color: #333;
}
.animation-popup .result-message p {
    position: relative;
    padding-left: 20px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #333;
}

/* Adiciona um marcador minimalista */
.animation-popup .result-message li::before {
    content: "•"; /* Usa um bullet point simples */
    position: absolute;
    left: 0;
    color: var(--padrao); /* Cor personalizada para destaque */
    font-size: 18px;
}
.animation-popup .success h3 {
    color: #4CAF50;
}
.animation-popup .error h3 {
    color: #F44336;
}
.animation-popup .close-animation-popup {
    margin-top: 1em;
    padding: 0.5em 1em;
    background-color: #f0f0f0;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.animation-popup .close-animation-popup:hover {
    background-color: #e0e0e0;
}

/* Estados do cabeçalho */
.animation-popup .popup-animation-header.info {
    background-color: #2196F3; /* Azul */
}
.animation-popup .popup-animation-header.custom {
    background-color: var(--padrao); 
}
.animation-popup  .popup-animation-header.warning {
    background-color: #FF9800; /* Laranja */
}
.animation-popup  .popup-animation-header.success {
    background-color: #4CAF50; /* Verde */
}
.animation-popup  .popup-animation-header.error {
    background-color: #F44336; /* Vermelho */
}

.documento-input {
    text-align: center;
}
.documento-input::placeholder {
    text-align: center;
}

.form-buttons {
    display: flex;
    gap: 10px;
}
.form-buttons .btn-primary,
.form-buttons .btn-secondary {
    flex: 1;
}


.cpf-container {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.cpf-container .form-input {
    width: 100%;
}
.cpf-container button {
    background: none;
    border: none;
    cursor: pointer;
    margin-top: -10px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
}
.cpf-container button:hover {
    transform: scale(1.1);
}
.cpf-container button img {
    width: 30px;
    height: 30px;
    object-fit: contain;
}
@media (max-width: 768px) {
    .cpf-container button img {
        width: 30px;
        height: 30px;
    }
}

/* ======== toast notification ========= */
.toast {
    position: fixed;
    bottom: 24px;
    left: 24px;
    transform: translateY(150%);
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    color: var(--text);
    border-radius: 16px;
    padding: 16px 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    z-index: 1000;
    max-width: 400px;
    width: calc(100% - 48px);
    border-left: 4px solid var(--padrao);
    overflow: visible;
}
.toast.active {
    transform: translateY(0);
    opacity: 1;
}
.toast.success {
    border-left-color: var(--green);
}
.toast-progress-container {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: rgba(0, 0, 0, 0.1);
    overflow: visible;
}
.toast-progress {
    height: 100%;
    background-color: var(--padrao);
    width: 0;
    transition: width 0.5s ease-out;
    position: relative;
}
.toast.success .toast-progress {
    background-color: var(--green);
}
/* Partículas em forma de estrelas para a barra de progresso */
.toast-progress::before,
.toast-progress::after {
    content: '★';
    position: absolute;
    font-size: 16px;
    color: var(--padrao);
    opacity: 0;
    pointer-events: none;
}
.toast-progress.active::before {
    animation: starAnimation1 2s ease-out infinite;
}
.toast-progress.active::after {
    animation: starAnimation2 2s ease-out infinite 0.5s;
}
/* Estrelas de sucesso */
.toast.success::before,
.toast.success::after {
    content: '★';
    position: absolute;
    font-size: 20px;
    color: var(--green);
    opacity: 0;
    pointer-events: none;
}
.toast.success.active::before {
    animation: successStar1 2s ease-out;
}
.toast.success.active::after {
    animation: successStar2 2s ease-out 0.3s;
}

@keyframes starAnimation1 {
    0% {
        opacity: 0;
        top: 0;
        right: 0;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: -30px;
        right: 20%;
        transform: translate(0, -20px) scale(1) rotate(180deg);
    }
    100% {
        opacity: 0;
        top: -50px;
        right: 40%;
        transform: translate(0, -40px) scale(0.5) rotate(360deg);
    }
}
@keyframes starAnimation2 {
    0% {
        opacity: 0;
        top: 0;
        right: 20%;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: -20px;
        right: 40%;
        transform: translate(0, -10px) scale(1) rotate(-180deg);
    }
    100% {
        opacity: 0;
        top: -40px;
        right: 60%;
        transform: translate(0, -20px) scale(0.5) rotate(-360deg);
    }
}
@keyframes successStar1 {
    0% {
        opacity: 0;
        top: 50%;
        left: -10px;
        transform: translate(0, -50%) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        top: 0;
        left: 10%;
        transform: translate(0, -100%) scale(1) rotate(180deg);
    }
    100% {
        opacity: 0;
        top: -20px;
        left: 20%;
        transform: translate(0, -150%) scale(0.5) rotate(360deg);
    }
}
@keyframes successStar2 {
    0% {
        opacity: 0;
        bottom: -10px;
        right: 10%;
        transform: translate(0, 0) scale(0.5) rotate(0deg);
    }
    50% {
        opacity: 1;
        bottom: 50%;
        right: -10px;
        transform: translate(50%, 50%) scale(1) rotate(-180deg);
    }
    100% {
        opacity: 0;
        bottom: 100%;
        right: 10%;
        transform: translate(0, 0) scale(0.5) rotate(-360deg);
    }
}
@media (max-width: 480px) {
    .toast {
        left: 50%;
        transform: translateX(-50%) translateY(150%);
        width: calc(100% - 32px);
        padding: 12px 16px;
    }
    .toast.active {
        transform: translateX(-50%) translateY(0);
    }
    .toast-icon {
        font-size: 20px;
    }
    .toast-title {
        font-size: 14px;
    }
    .toast-text {
        font-size: 12px;
    }
}

/* Estilos para Informações da Mesa */
.table-info {
    margin: 20px 0;
    padding: 0 16px;
    color: var(--text);
}
.table-info-card {
    background-color: #fff;
    border: 2px solid var(--padrao);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.table-info-header {
    background-color: var(--padrao);
    color: white;
    padding: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.table-info-header ion-icon {
    font-size: 24px;
}
.table-info-header h2 {
    font-size: 18px;
    font-weight: 600;
    color: white;
    margin: 0;
}
.table-info-content {
    padding: 20px;
}
.table-info-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f2f2f2;
}
.table-info-row:last-of-type {
    border-bottom: none;
}
.table-info-item {
    display: flex;
    align-items: center;
    gap: 12px;
}
.info-icon {
    background-color: rgba(var(--padrao-rgb), 0.05);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.info-icon ion-icon {
    color: var(--padrao);
    font-size: 20px;
}
.info-text {
    display: flex;
    flex-direction: column;
}
.info-label {
    font-size: 12px;
    color: #717171;
    margin-bottom: 4px;
}
.info-value {
    font-size: 18px;
    font-weight: 700;
    color: #3e3e3e;
}
@media (min-width: 768px) {
    .table-info {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}

.store-address-container {
    margin: 20px 0;
    padding: 0 16px;
}
.store-address-card {
    background-color: var(--white, #fff);
    border: 2px solid var(--padrao);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    padding: 20px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.store-address-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--hover-shadow, 0 8px 20px rgba(0, 0, 0, 0.1));
}
.store-address-icon {
    background-color: rgba(255, 49, 49, 0.1);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.store-address-icon ion-icon {
    color: var(--padrao);
    font-size: 20px;
}
.store-address-content {
    flex: 1;
    min-width: 0;
}
.store-address-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text, #3e3e3e);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    position: relative;
}
.store-address-title::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--padrao);
    border-radius: 2px;
}
.store-address-text {
    font-size: 14px;
    color: var(--light-text, #717171);
    margin: 0;
    word-break: break-word;
    line-height: 1.4;
}
.store-address-button {
    background-color: var(--padrao);
    color: var(--white, #fff);
    border: none;
    border-radius: 8px;
    padding: 12px 18px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    margin-left: auto;
    box-shadow: var(--button-shadow, 0 2px 6px rgba(255, 170, 176, 0.2));
    font-family: var(--fonte, inherit);
}
.store-address-button:hover {
    background-color: var(--padrao);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(255, 170, 176, 0.2);
}
.store-address-button:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(255, 170, 176, 0.2);
}
.store-address-button ion-icon {
    font-size: 16px;
    transition: transform 0.3s ease;
} 
.store-address-button:hover ion-icon {
    transform: translateY(-3px);
    animation: pulse 1s infinite;
}
@keyframes pulse {
    0% {
      transform: translateY(-3px) scale(1);
    }
    50% {
      transform: translateY(-3px) scale(1.1);
    }
    100% {
      transform: translateY(-3px) scale(1);
    }
}
@media (max-width: 768px) {
    .store-address-card {
      padding: 16px;
    }
    
    .store-address-button {
      margin-left: 0;
      width: 100%;
      justify-content: center;
      margin-top: 8px;
    }
    
    .store-address-icon {
      width: 36px;
      height: 36px;
    }
    
    .store-address-icon ion-icon {
      font-size: 18px;
    }
}
@media (max-width: 480px) {
    .store-address-card {
      flex-direction: column;
      align-items: flex-start;
      padding: 14px;
      gap: 12px;
    }
    
    .store-address-title {
      font-size: 15px;
    }
    
    .store-address-text {
      font-size: 13px;
    }
    
    .store-address-button {
      font-size: 13px;
      padding: 10px 16px;
    }
}
@media (min-width: 768px) {
    .store-address-container {
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
    }
    
    .store-address-card {
      padding: 24px;
    }
}

/*====== SIMILARES =======*/
.similar-products-popup {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1001;
}
.similar-products-popup.active {
    display: block;
}
.similar-products-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
.similar-products-modal {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 90vh;
    background-color: var(--white);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    z-index: 2;
    box-shadow: var(--shadow);
    overflow: hidden;
    animation: modalSlideUp 0.3s ease;
}
@keyframes modalSlideUp {
    from {
        transform: translateY(100%);
    }
    to {
        transform: translateY(0);
    }
}
.similar-products-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--white);
    position: sticky;
    top: 0;
    z-index: 3;
}
.similar-products-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text);
    margin: 0;
    position: relative;
}
.similar-products-title::before {
    content: "🔥";
    margin-right: 8px;
    font-size: 20px;
}
.similar-products-close {
    background: none;
    border: none;
    color: var(--text);
    font-size: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.similar-products-close:hover {
    background-color: var(--gray-light);
}
.similar-products-content {
    padding: 16px 0;
    max-height: calc(90vh - 70px);
    overflow-y: auto;
}
.similar-products-subtitle {
    font-size: 16px;
    font-weight: 500;
    color: var(--light-text);
    margin: 0 20px 16px;
    line-height: 1.4;
}

/*====== CONTAINER DE PRODUTOS =======*/
.similar-products-container {
    margin: 0;
    padding: 0;
}
.similar-products-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
    padding: 0 20px 20px;
}

/*====== CARD DE PRODUTO SIMILAR =======*/
.similar-product-card {
    position: relative;
    width: 100%;
    background-color: var(--white);
    border-radius: var(--item-border-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-color);
    height: 100%;
}
.similar-product-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--hover-shadow);
}
.similar-product-image-container {
    position: relative;
    padding-top: 75%; /* Proporção 4:3 */
    overflow: hidden;
    background-color: var(--gray-light);
}
.similar-product-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
.similar-product-card:hover .similar-product-image {
    transform: scale(1.05);
}
.similar-product-promotion {
    position: absolute;
    top: 8px;
    left: 8px;
    background-color: var(--green);
    color: var(--white);
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    z-index: 1;
}
.similar-product-info {
    padding: 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.similar-product-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    margin: 0 0 8px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 36px;
}
.similar-product-description {
    font-size: 12px;
    color: var(--light-text);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.similar-product-price-container {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.similar-product-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.similar-product-old-price {
    font-size: 12px;
    color: var(--secondaryText);
    text-decoration: line-through;
}

/*====== AÇÕES DOS CARDS =======*/
.similar-product-actions {
    display: flex;
    gap: 8px;
    margin-top: auto;
}
.similar-product-customize,
.similar-product-add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    font-family: var(--fonte);
}
.similar-product-customize {
    background-color: var(--gray-light);
    color: var(--text);
    flex: 1;
}
.similar-product-add {
    background-color: var(--padrao);
    color: var(--white);
    flex: 1;
}
.similar-product-customize:hover {
    background-color: var(--gray);
}
.similar-product-add:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.similar-product-customize ion-icon,
.similar-product-add ion-icon {
    font-size: 18px;
}
.similar-product-quick-add {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--padrao);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: var(--button-shadow);
    border: none;
    transition: all 0.2s ease;
    z-index: 2;
}
.similar-product-quick-add:hover {
    transform: scale(1.1);
    background-color: var(--padrao);
    opacity: 0.9;
}
.similar-product-quick-add ion-icon {
    font-size: 20px;
}

/*====== PAINEL DE PERSONALIZAÇÃO =======*/
.similar-product-customization {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--white);
    z-index: 10;
    display: flex;
    flex-direction: column;
    border-radius: 0;
    box-shadow: var(--hover-shadow);
    transform: translateY(100%);
    transition: transform 0.3s ease;
    overflow: hidden;
}
.similar-product-customization.active {
    transform: translateY(0);
}
.customization-header {
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--padrao);
    color: var(--white);
}
.customization-header h5 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.close-customization {
    background: none;
    border: none;
    color: var(--white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    transition: background-color 0.2s ease;
}
.close-customization:hover {
    background-color: rgba(255, 255, 255, 0.2);
}
.close-customization ion-icon {
    font-size: 20px;
}
.customization-content {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
}
.customization-footer {
    padding: 16px;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--white);
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}
.customization-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
}
.confirm-customization {
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: var(--item-border-radius);
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: var(--button-shadow);
}
.confirm-customization:hover {
    background-color: var(--padrao);
    opacity: 0.9;
}
.confirm-customization ion-icon {
    font-size: 18px;
}

/*====== OPÇÕES DE PERSONALIZAÇÃO =======*/
.customization-option {
    margin-bottom: 20px;
}
.customization-option-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--text);
    display: flex;
    align-items: center;
}
.customization-option-title::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 16px;
    background-color: var(--padrao);
    margin-right: 8px;
    border-radius: 2px;
}
.customization-option-items {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.customization-option-item {
    display: flex;
    align-items: center;
    padding: 12px;
    border-radius: var(--item-border-radius);
    background-color: var(--white);
    cursor: pointer;
    transition: all 0.2s ease;
    border: 1px solid var(--border-color);
}
.customization-option-item:hover {
    border-color: var(--gray-medium);
    background-color: var(--gray-light);
}
.customization-option-item.selected {
    background-color: rgba(var(--padrao-rgb), 0.1);
    border: 1px solid var(--padrao);
}
.customization-option-item-name {
    flex: 1;
    font-size: 14px;
    color: var(--text);
}
.customization-option-item-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--padrao);
}
.similar-hidden {
    display: none !important;
}
.similar-continue-shopping {
    display: block;
    width: 100%;
    padding: 16px;
    text-align: center;
    background: none;
    border: none;
    color: var(--padrao);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 16px;
    transition: all 0.2s ease;
    text-decoration: underline;
    font-family: var(--fonte);
}
.similar-continue-shopping:hover {
    opacity: 0.8;
}
.similar-checkout-button {
    display: block;
    width: calc(100% - 40px);
    margin: 0 auto 20px;
    padding: 16px;
    background-color: var(--padrao);
    color: var(--white);
    border: none;
    border-radius: var(--border-radius);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    box-shadow: var(--button-shadow);
    font-family: var(--fonte);
}
.similar-checkout-button:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: var(--hover-shadow);
}

/*====== RESPONSIVIDADE SIMILAR =======*/
@media (max-width: 480px) {
    .similar-products-wrapper {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        padding: 0 16px 16px;
    }
    
    .similar-products-title {
        font-size: 16px;
    }
    
    .similar-products-subtitle {
        font-size: 14px;
        margin: 0 16px 12px;
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-mobile);
        padding-top: 0;
    }
    
    .similar-product-name {
        font-size: 13px;
        min-height: 34px;
    }
    
    .similar-product-price {
        font-size: 14px;
    }
    
    .similar-product-customize,
    .similar-product-add {
        padding: 8px;
        font-size: 12px;
    }
    
    .similar-product-customize ion-icon,
    .similar-product-add ion-icon {
        font-size: 16px;
    }
    
    .similar-checkout-button {
        padding: 14px;
        font-size: 15px;
    }
}
@media (min-width: 481px) and (max-width: 767px) {
    .similar-products-wrapper {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-tablet);
        padding-top: 0;
    }
}
@media (min-width: 768px) {
    .similar-products-modal {
        top: 50%;
        left: 50%;
        bottom: auto;
        transform: translate(-50%, -50%);
        width: 90%;
        max-width: 900px;
        max-height: 85vh;
        border-radius: var(--border-radius);
        animation: modalFadeIn 0.3s ease;
    }
    
    @keyframes modalFadeIn {
        from {
            opacity: 0;
            transform: translate(-50%, -45%);
        }
        to {
            opacity: 1;
            transform: translate(-50%, -50%);
        }
    }
    
    .similar-products-wrapper {
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
    }
    
    .similar-product-card {
        width: 100%;
    }
    
    .similar-product-image-container {
        height: var(--card-image-height-desktop);
        padding-top: 0;
    }
    
    .similar-products-title {
        font-size: 20px;
    }
    
    .similar-products-subtitle {
        font-size: 16px;
    }
    
    .similar-product-name {
        font-size: 15px;
    }
    
    .similar-product-price {
        font-size: 16px;
    }
    
    .similar-checkout-button {
        max-width: 400px;
    }
    
    .similar-products-header {
        padding: 20px 24px;
    }
    
    .similar-products-content {
        padding: 20px 0;
    }
}
@media (min-width: 1200px) {
    .similar-products-modal {
        max-width: 1100px;
    }
    
    .similar-products-wrapper {
        grid-template-columns: repeat(5, 1fr);
    }
}

/* ===== POPUP PUSH NOTIFICATION ===== */
.popupPush-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); 
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px); 
    -webkit-backdrop-filter: blur(2px);
}
.popupPush-overlay.active {
    opacity: 1;
    visibility: visible;
}
.popupPush-container {
    width: 90%;
    max-width: 360px; 
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06); 
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.popupPush-overlay.active .popupPush-container {
    transform: translateY(0);
    opacity: 1;
}
.popupPush-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.popupPush-header {
    padding: 16px; 
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light); 
}
.popupPush-icon {
    width: 36px; 
    height: 36px; 
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px; 
    color: var(--white);
    font-size: 16px; 
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15); 
}
.popupPush-title {
    font-size: 16px; 
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}
.popupPush-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px; 
    cursor: pointer;
    width: 28px;
    height: 28px; 
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.popupPush-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.popupPush-body {
    padding: 16px; 
}
.popupPush-message {
    font-size: 14px; 
    color: var(--text);
    margin: 0 0 16px; 
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.popupPush-animation-container {
    margin: 16px 0; 
    display: flex;
    justify-content: center;
    position: relative;
    height: 160px; 
}
.popupPush-phone {
    width: 90px; 
    height: 160px; 
    background-color: var(--black1);
    border-radius: 18px;
    padding: 8px 4px; 
    position: relative;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12); 
}
.popupPush-phone:before {
    content: "";
    position: absolute;
    top: 4px; 
    left: 50%;
    transform: translateX(-50%);
    width: 36px; 
    height: 3px; 
    background-color: var(--gray-dark);
    border-radius: 2px;
}
.popupPush-phone-screen {
    width: 100%;
    height: 100%;
    background-color: var(--gray-light);
    border-radius: 10px; 
    overflow: hidden;
    position: relative;
}

/* ===== NOTIFICATION ANIMATION ===== */
.popupPush-notification {
    position: absolute;
    top: -80px;
    left: 5px;
    right: 5px;
    background-color: var(--white);
    border-radius: 8px;
    padding: 8px;
    display: flex;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); 
    animation: notificationSlide 4s ease infinite;
    transform-origin: top center;
}
@keyframes notificationSlide {
    0% {
        top: -80px;
        opacity: 0;
    }
    10% {
        top: 10px;
        opacity: 1;
    }
    20% {
        transform: translateY(-3px);
    }
    22% {
        transform: translateY(0);
    }
    80% {
        top: 10px;
        opacity: 1;
    }
    90% {
        top: -80px;
        opacity: 0;
    }
    100% {
        top: -80px;
        opacity: 0;
    }
}

.popupPush-notification-icon {
    width: 22px; 
    height: 22px; 
    background-color: var(--padrao);
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 6px; 
    flex-shrink: 0;
}
.popupPush-notification-icon i {
    color: var(--white);
    font-size: 10px; 
}
.popupPush-notification-content {
    flex: 1;
    overflow: hidden;
}
.popupPush-notification-title {
    font-size: 9px; 
    font-weight: 600;
    color: var(--text);
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.popupPush-notification-message {
    font-size: 7px; 
    color: var(--light-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== BENEFITS ===== */
.popupPush-benefits {
    margin-top: 16px; 
}
.popupPush-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px; 
}
.popupPush-benefit i {
    color: var(--green);
    margin-right: 8px; 
    font-size: 14px; 
}
.popupPush-benefit span {
    font-size: 12px; 
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.popupPush-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px; 
}
.popupPush-button {
    flex: 1;
    padding: 10px 12px; 
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500; 
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap; 
}
.popupPush-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15); 
}
.popupPush-button-primary:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}
.popupPush-button-secondary {
    background-color: transparent; 
    color: var(--text);
    border: 1px solid var(--gray-light); 
}
.popupPush-button-secondary:hover {
    background-color: var(--gray-light);
}
.popupPush-button i {
    font-size: 14px; 
}
.popupPush-icon {
    position: relative;
}
.popupPush-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5; /* Reduzido de 0.6 */
    animation: pulse 2s infinite;
    z-index: -1;
}
@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 0.5; /* Reduzido de 0.6 */
    }
    70% {
        transform: scale(1.4); /* Reduzido de 1.5 */
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .popupPush-container {
        width: 90%;
        max-width: 320px; /* Reduzido de 350px */
    }
    
    .popupPush-footer {
        flex-direction: row; /* Mantido em linha para botões menores */
    }
    
    .popupPush-button {
        font-size: 12px; /* Reduzido para mobile */
        padding: 8px 10px; /* Reduzido para mobile */
    }
    
    .popupPush-animation-container {
        height: 140px; /* Reduzido de 150px */
    }
    
    .popupPush-phone {
        width: 75px; /* Reduzido de 80px */
        height: 140px; /* Reduzido de 150px */
    }
}

/* ===== LOCATION POPUP ===== */
.locationPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.locationPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}
.locationPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.locationPopup-overlay.active .locationPopup-container {
    transform: translateY(0);
    opacity: 1;
}
.locationPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.locationPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}
.locationPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}
.locationPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}
.locationPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}
.locationPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.locationPopup-body {
    padding: 16px;
}
.locationPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.locationPopup-animation-container {
    margin: 16px 0;
    display: flex;
    justify-content: center;
    position: relative;
    height: 160px;
}
.locationPopup-phone {
    width: 90px;
    height: 160px;
    background-color: var(--black1);
    border-radius: 18px;
    padding: 8px 4px;
    position: relative;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}
.locationPopup-phone:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 3px;
    background-color: var(--gray-dark);
    border-radius: 2px;
}
.locationPopup-phone-screen {
    width: 100%;
    height: 100%;
    background-color: var(--gray-light);
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

/* ===== MAP ANIMATION ===== */
.locationPopup-map {
    width: 100%;
    height: 100%;
    background-color: #f2f2f2;
    background-image: 
        linear-gradient(rgba(0,0,0,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,0,0,0.05) 1px, transparent 1px);
    background-size: 10px 10px;
    position: relative;
    overflow: hidden;
}
.locationPopup-map:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, transparent 30%, rgba(0,0,0,0.1) 100%);
}
.locationPopup-pin {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}
.locationPopup-pin-dot {
    width: 12px;
    height: 12px;
    background-color: var(--padrao);
    border-radius: 50%;
    position: relative;
    z-index: 3;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
}
.locationPopup-pin-pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    background-color: rgba(255, 49, 49, 0.2);
    border-radius: 50%;
    z-index: 1;
    animation: locationPulse 2s infinite;
}
@keyframes locationPulse {
    0% {
        transform: translate(-50%, -50%) scale(0.5);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 0;
    }
}

/* ===== BENEFITS ===== */
.locationPopup-benefits {
    margin-top: 16px;
}
.locationPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}
.locationPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}
.locationPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.locationPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

/* Botões mais delicados */
.locationPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}
.locationPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}
.locationPopup-button-primary:hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}
.locationPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}
.locationPopup-button-secondary:hover {
    background-color: var(--gray-light);
}
.locationPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.locationPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}
@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 0.5;
    }
    70% {
        transform: scale(1.4);
        opacity: 0;
    }
    100% {
        transform: scale(1);
        opacity: 0;
    }
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .locationPopup-container {
        width: 90%;
        max-width: 320px;
    }
    
    .locationPopup-button {
        font-size: 12px;
        padding: 8px 10px;
    }
    
    .locationPopup-animation-container {
        height: 140px;
    }
    
    .locationPopup-phone {
        width: 75px;
        height: 140px;
    }
}

/*======= card flutuante checkout ========*/
.floating-summary {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: white;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1);
    z-index: 100;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    transform: translateY(calc(100% - 60px));
    transition: transform 0.3s ease;
}
.floating-summary.expanded {
    transform: translateY(0);
}
.floating-summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}
.floating-summary-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.floating-summary-toggle {
    background: none;
    border: none;
    color: #666;
    font-size: 20px;
    cursor: pointer;
    transition: transform 0.3s ease;
}
.expanded .floating-summary-toggle {
    transform: rotate(180deg);
}
.floating-summary-content {
    padding: 15px 20px;
}
.floating-summary-items {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}
.floating-summary-item-count {
    font-size: 14px;
    color: #666;
}
.floating-summary-price {
    display: flex;
    align-items: center;
    gap: 10px;
}
.floating-total-amount {
    font-weight: 600;
    font-size: 18px;
    color: var(--padrao);
}
.floating-confirm-button {
    width: 100%;
    padding: 12px;
    background-color: var(--padrao);
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.2s ease;
}
.floating-confirm-button:hover {
    background-color: rgba(var(--padrao-rgb), 0.9);
}
@media (min-width: 768px) {
    .floating-summary {
        width: 350px;
        left: auto;
        right: 20px;
        bottom: 20px;
        border-radius: 15px;
        transform: translateY(0);
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }
    
    .floating-summary-header {
        cursor: default;
    }
    
    .floating-summary-toggle {
        display: none;
    }
}

/* address toast */
.form-input.loading {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="%23333" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg>');
    background-position: right 10px center;
    background-repeat: no-repeat;
    background-size: 20px;
}

/* Animação para itens do carrinho */
.order-item {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.order-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Animação para botões */
.confirm-button, .option-card, .payment-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.confirm-button:hover, .option-card:hover, .payment-card:hover {
    transform: translateY(-2px);
}
.confirm-button:active, .option-card:active, .payment-card:active {
    transform: translateY(0);
}

.checkout-header {
    transition: box-shadow 0.3s ease;
}
.checkout-header.scrolled {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.back-button {
    transition: transform 0.2s ease;
}
.back-button:hover {
    transform: translateX(-3px);
}
.collapse-icon {
    transition: transform 0.3s ease;
}
.item-header[aria-expanded="true"] .collapse-icon {
    transform: rotate(180deg);
}

/* ===== CONSUME LOCATION POPUP ===== */
.consumeLocationPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.consumeLocationPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}

.consumeLocationPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.consumeLocationPopup-overlay.active .consumeLocationPopup-container {
    transform: translateY(0);
    opacity: 1;
}

.consumeLocationPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.consumeLocationPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}

.consumeLocationPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}

.consumeLocationPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}

.consumeLocationPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.consumeLocationPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.consumeLocationPopup-body {
    padding: 16px;
}

.consumeLocationPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== ANIMATION CONTAINER ===== */
.consumeLocationPopup-animation-container {
    margin: 16px 0;
    display: flex;
    justify-content: center;
    position: relative;
}

.consumeLocationPopup-options {
    display: flex;
    justify-content: center;
    gap: 16px;
    width: 100%;
}

.consumeLocationPopup-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px;
    background-color: #f5f5f5;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 120px;
    border: 2px solid transparent;
}

.consumeLocationPopup-option:hover {
    background-color: #f0f0f0;
    transform: translateY(-2px);
}

.consumeLocationPopup-option.selected {
    border-color: var(--padrao);
    background-color: rgba(255, 49, 49, 0.05);
}

.option-icon {
    width: 48px;
    height: 48px;
    background-color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.option-icon i {
    font-size: 20px;
    color: var(--padrao);
}

.option-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    text-align: center;
}

/* ===== BENEFITS ===== */
.consumeLocationPopup-benefits {
    margin-top: 16px;
}

.consumeLocationPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.consumeLocationPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}

.consumeLocationPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.consumeLocationPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.consumeLocationPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}

.consumeLocationPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}

.consumeLocationPopup-button-primary:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
    box-shadow: none;
}

.consumeLocationPopup-button-primary:not(:disabled):hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}

.consumeLocationPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}

.consumeLocationPopup-button-secondary:hover {
    background-color: var(--gray-light);
}

.consumeLocationPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.consumeLocationPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}

/* ===== UTENSILS POPUP ===== */
.utensilsPopup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.utensilsPopup-overlay.active {
    opacity: 1;
    visibility: visible;
}

.utensilsPopup-container {
    width: 90%;
    max-width: 360px;
    background-color: var(--white);
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(20px);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}

.utensilsPopup-overlay.active .utensilsPopup-container {
    transform: translateY(0);
    opacity: 1;
}

.utensilsPopup-content {
    display: flex;
    flex-direction: column;
}

/* ===== HEADER ===== */
.utensilsPopup-header {
    padding: 16px;
    display: flex;
    align-items: center;
    position: relative;
    border-bottom: 1px solid var(--gray-light);
}

.utensilsPopup-icon {
    width: 36px;
    height: 36px;
    background-color: var(--padrao);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: var(--white);
    font-size: 16px;
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
    position: relative;
}

.utensilsPopup-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    flex: 1;
}

.utensilsPopup-close {
    background: none;
    border: none;
    color: var(--light-text);
    font-size: 16px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.utensilsPopup-close:hover {
    background-color: var(--gray-light);
    color: var(--text);
}

/* ===== BODY ===== */
.utensilsPopup-body {
    padding: 16px;
}

.utensilsPopup-message {
    font-size: 14px;
    color: var(--text);
    margin: 0 0 16px;
    text-align: center;
    font-weight: 500;
    line-height: 1.4;
}

/* ===== OPTIONS CONTAINER ===== */
.utensilsPopup-options-container {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
}

.utensilsPopup-option {
    display: flex;
    align-items: center;
    padding: 12px;
    background-color: #f5f5f5;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.utensilsPopup-option:hover {
    background-color: #f0f0f0;
}

.utensilsPopup-option.selected {
    border-color: var(--padrao);
    background-color: rgba(255, 49, 49, 0.05);
}

.utensilsPopup-option .option-icon {
    width: 36px;
    height: 36px;
    background-color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}

.utensilsPopup-option .option-icon i {
    font-size: 16px;
    color: var(--padrao);
}

.utensilsPopup-option .option-label {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    text-align: left;
}

.option-checkbox {
    position: relative;
    width: 20px;
    height: 20px;
    margin-left: 8px;
}

.option-checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.option-checkbox .checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 20px;
    width: 20px;
    background-color: #fff;
    border: 2px solid #ddd;
    border-radius: 50%;
}

.utensilsPopup-option:hover .checkmark {
    border-color: #ccc;
}

.utensilsPopup-option.selected .checkmark {
    border-color: var(--padrao);
}

.checkmark:after {
    content: "";
    position: absolute;
    display: none;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--padrao);
    transform: translate(-50%, -50%);
}

.utensilsPopup-option.selected .checkmark:after {
    display: block;
}

/* ===== BENEFITS ===== */
.utensilsPopup-benefits {
    margin-top: 16px;
}

.utensilsPopup-benefit {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.utensilsPopup-benefit i {
    color: var(--green);
    margin-right: 8px;
    font-size: 14px;
}

.utensilsPopup-benefit span {
    font-size: 12px;
    color: var(--text);
    line-height: 1.3;
}

/* ===== FOOTER ===== */
.utensilsPopup-footer {
    padding: 12px 16px 16px;
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.utensilsPopup-button {
    flex: 1;
    padding: 10px 12px;
    border-radius: var(--item-border-radius);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: var(--fonte);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    white-space: nowrap;
}

.utensilsPopup-button-primary {
    background-color: var(--padrao);
    color: var(--white);
    box-shadow: 0 2px 4px rgba(234, 29, 44, 0.15);
}

.utensilsPopup-button-primary:disabled {
    background-color: #cccccc;
    cursor: not-allowed;
    box-shadow: none;
}

.utensilsPopup-button-primary:not(:disabled):hover {
    background-color: var(--padrao);
    opacity: 0.9;
    transform: translateY(-1px);
}

.utensilsPopup-button-secondary {
    background-color: transparent;
    color: var(--text);
    border: 1px solid var(--gray-light);
}

.utensilsPopup-button-secondary:hover {
    background-color: var(--gray-light);
}

.utensilsPopup-button i {
    font-size: 14px;
}

/* ===== PULSE ANIMATION ===== */
.utensilsPopup-icon:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--padrao);
    opacity: 0.5;
    animation: pulse 2s infinite;
    z-index: -1;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 480px) {
    .consumeLocationPopup-container,
    .utensilsPopup-container {
        width: 90%;
        max-width: 320px;
    }
    
    .consumeLocationPopup-button,
    .utensilsPopup-button {
        font-size: 12px;
        padding: 8px 10px;
    }
    
    .consumeLocationPopup-options {
        flex-direction: column;
        gap: 12px;
    }
    
    .consumeLocationPopup-option {
        width: 100%;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        padding: 12px;
    }
    
    .consumeLocationPopup-option .option-icon {
        margin-bottom: 0;
        margin-right: 12px;
    }
}