/*
 * Vitrine Sorriso - design system mobile-first.
 * Camada visual global para o site publico. Nao altera regras de negocio.
 */
:root{
    --vs-green:#16b43b;
    --vs-green-strong:#0e8f2e;
    --vs-green-soft:#e9fbef;
    --vs-blue:#08213f;
    --vs-blue-2:#0d2d55;
    --vs-blue-soft:#eaf2ff;
    --vs-yellow:#fff4c2;
    --vs-yellow-strong:#f6b900;
    --vs-bg:#f5f8fc;
    --vs-surface:#ffffff;
    --vs-surface-2:#f8fafc;
    --vs-border:#e3eaf3;
    --vs-text:#0f172a;
    --vs-muted:#64748b;
    --vs-danger:#dc2626;
    --vs-radius-xs:8px;
    --vs-radius-sm:12px;
    --vs-radius-md:16px;
    --vs-radius-lg:22px;
    --vs-radius-xl:28px;
    --vs-space-1:4px;
    --vs-space-2:8px;
    --vs-space-3:12px;
    --vs-space-4:16px;
    --vs-space-5:20px;
    --vs-space-6:24px;
    --vs-shadow-sm:0 6px 16px rgba(15, 23, 42, .07);
    --vs-shadow-md:0 14px 34px rgba(15, 23, 42, .10);
    --vs-shadow-lg:0 22px 54px rgba(15, 23, 42, .14);
    --vs-touch:46px;
    --vs-font:'Roboto', Arial, sans-serif;
}

html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
}

body.res{
    background:var(--vs-bg);
    color:var(--vs-text);
    font-family:var(--vs-font);
    font-size:15px;
    line-height:1.45;
    letter-spacing:0;
}

body.res h1,
body.res h2,
body.res h3,
body.res h4,
body.res h5,
body.res h6,
.product-title,
.price-box-modern .price-current{
    color:var(--vs-blue);
    font-weight:900;
    line-height:1.12;
    letter-spacing:0 !important;
}

body.res p,
body.res li,
body.res label,
body.res input,
body.res select,
body.res textarea,
body.res button{
    letter-spacing:0;
}

body.res a{
    color:inherit;
}

body.res img{
    max-width:100%;
}

/* Utilitarios reutilizaveis */
.vs-card,
.modern-card,
.product-gallery-card,
.product-summary-card,
.sidebar-card,
.cart-card,
.cart-login-card,
.cart-coupon-card,
.cart-total-card,
.store-card-public,
.category-products-grid .product-card,
.page-home .product-card,
.product-card{
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-lg) !important;
    background:var(--vs-surface) !important;
    box-shadow:var(--vs-shadow-sm) !important;
}

.vs-card{
    padding:var(--vs-space-4);
}

.vs-btn-primary,
.btn-buy,
.card-button,
.store-card-cta,
.sidebar-cta,
.cart-summary-action,
#btn_finalizar_reserva,
.btn.btn-success,
.btn-mega{
    min-height:var(--vs-touch) !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    border:0 !important;
    border-radius:var(--vs-radius-md) !important;
    background:linear-gradient(180deg, var(--vs-green) 0%, var(--vs-green-strong) 100%) !important;
    color:#fff !important;
    font-weight:900 !important;
    text-decoration:none !important;
    box-shadow:0 10px 22px rgba(22, 180, 59, .20) !important;
    transition:transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}

.vs-btn-primary:hover,
.btn-buy:hover,
.card-button:hover,
.store-card-cta:hover,
.sidebar-cta:hover,
.cart-summary-action:hover,
#btn_finalizar_reserva:hover,
.btn.btn-success:hover,
.btn-mega:hover{
    color:#fff !important;
    filter:brightness(.98);
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(22, 180, 59, .24) !important;
}

.vs-btn-primary:active,
.btn-buy:active,
.card-button:active,
.store-card-cta:active,
.sidebar-cta:active,
.cart-summary-action:active,
#btn_finalizar_reserva:active,
.btn.btn-success:active,
.btn-mega:active{
    transform:translateY(0);
    box-shadow:0 8px 16px rgba(22, 180, 59, .18) !important;
}

.vs-btn-secondary,
.btn-cart-outline,
.sidebar-secondary,
.store-clear-filter,
.btn-ver-menos-pedidos,
.cart-summary-secondary,
.btn.btn-default,
.btn.btn-primary{
    min-height:var(--vs-touch) !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-md) !important;
    background:#fff !important;
    color:var(--vs-blue) !important;
    font-weight:900 !important;
    text-decoration:none !important;
    box-shadow:0 8px 18px rgba(15, 23, 42, .06) !important;
}

.vs-badge,
.vs-badge-verified,
.vs-badge-local-pickup,
.vs-badge-low-stock,
.vs-badge-sponsored,
.product-badge,
.sponsored-label,
.low-stock-badge,
.local-fomo-badge,
.sale-badge,
.store-card-meta,
.stores-hero-stat,
.mobile-store-trust .trust-badge{
    min-height:26px;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center;
    gap:6px;
    width:max-content;
    max-width:100%;
    padding:6px 10px !important;
    border-radius:999px !important;
    font-size:12px !important;
    line-height:1 !important;
    font-weight:900 !important;
    white-space:nowrap;
}

.vs-badge-verified,
.badge-success,
.mobile-store-trust .trust-badge{
    background:var(--vs-green-soft) !important;
    color:var(--vs-green-strong) !important;
}

.vs-badge-local-pickup,
.local-fomo-badge,
.stores-hero-stat{
    background:var(--vs-green-soft) !important;
    color:#047857 !important;
}

.vs-badge-low-stock,
.low-stock-badge,
.badge-danger{
    background:#fee2e2 !important;
    color:var(--vs-danger) !important;
}

.vs-badge-sponsored,
.sponsored-label{
    background:var(--vs-yellow) !important;
    color:#8a5d00 !important;
}

/* Header e navegacao */
.market-header{
    background:linear-gradient(180deg, var(--vs-blue) 0%, var(--vs-blue-2) 100%) !important;
    box-shadow:0 10px 28px rgba(8, 33, 63, .18) !important;
}

.mobile-menu-toggle,
.header-login-link,
.mobile-cart-pill{
    min-width:var(--vs-touch);
    min-height:var(--vs-touch);
    border-radius:var(--vs-radius-md) !important;
}

.header-search-form,
.search-form,
.mobile-search-form{
    border-radius:var(--vs-radius-lg) !important;
}

.header-search-form input,
.search-form input,
.mobile-search-form input,
input.form-control,
select.form-control,
textarea.form-control{
    min-height:var(--vs-touch);
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-md) !important;
    color:var(--vs-text);
    font-size:15px !important;
}

.mobile-bottom-nav{
    border:1px solid rgba(226, 232, 240, .96) !important;
    border-radius:24px 24px 0 0 !important;
    background:rgba(255, 255, 255, .97) !important;
    box-shadow:0 -14px 34px rgba(15, 23, 42, .10) !important;
}

.mobile-bottom-nav a{
    min-height:58px;
    border-radius:18px !important;
    color:#334155 !important;
    font-weight:800 !important;
}

.mobile-bottom-nav a.is-active{
    background:var(--vs-green-soft) !important;
    color:var(--vs-green-strong) !important;
}

/* Home e secoes publicas */
.page-home,
.stores-page,
.category-page,
.cart-page,
.product-page{
    background:linear-gradient(180deg, #f8fbff 0%, var(--vs-bg) 46%, #fff 100%) !important;
}

.home-sponsored-frame,
.vs-home-categories-v2__container,
.home-stores-highlight .container,
.sponsored-offers.is-visible,
.stores-hero,
.stores-list-card,
.category-hero,
.cart-shell,
.checkout-box{
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-xl) !important;
    background:var(--vs-surface) !important;
    box-shadow:var(--vs-shadow-sm) !important;
}

.section-title,
.category-title,
.marketplace-block-title,
.regular-offers-title,
.stores-section-head h2,
.cart-section-title{
    color:var(--vs-blue) !important;
    font-weight:950 !important;
}

.section-link,
.vs-home-categories-v2__all{
    color:var(--vs-green-strong) !important;
    font-weight:900 !important;
}

/* Cards de produto */
.product-card{
    overflow:hidden !important;
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}

.product-card:hover{
    transform:translateY(-2px);
    border-color:#cfe7d8 !important;
    box-shadow:var(--vs-shadow-md) !important;
}

.product-card .card-image,
.card-image{
    background:#fff !important;
    overflow:hidden !important;
}

.product-card .card-image img,
.card-image img,
.category-products-grid .product-card img{
    object-fit:contain !important;
    background:#fff !important;
}

.card-body{
    padding:12px !important;
}

.card-rating{
    color:var(--vs-yellow-strong) !important;
}

.card-title{
    color:var(--vs-text) !important;
    font-weight:900 !important;
}

.price-new,
.product-price-main,
.cart-total-value,
.price-box-modern .price-current{
    color:var(--vs-green-strong) !important;
    font-weight:950 !important;
}

.price-old{
    color:#94a3b8 !important;
}

.favorite-btn{
    border:1px solid rgba(226, 232, 240, .8) !important;
    background:rgba(255,255,255,.96) !important;
    box-shadow:0 10px 22px rgba(15, 23, 42, .12) !important;
}

.favorite-btn.is-active{
    background:#fff1f2 !important;
    color:#e11d48 !important;
}

/* Produto */
.product-gallery-card,
.product-summary-card{
    padding:var(--vs-space-4) !important;
}

.product-breadcrumb{
    color:var(--vs-muted) !important;
}

.product-summary-card h1{
    font-size:clamp(24px, 7vw, 38px) !important;
}

.product-option-box,
.shipping-box,
.product-info-card,
.mobile-store-trust{
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-lg) !important;
    background:#fff !important;
    box-shadow:var(--vs-shadow-sm) !important;
}

.variant-options label,
.product-option-box label{
    min-height:42px;
    border-radius:var(--vs-radius-sm) !important;
    font-weight:800 !important;
}

label.variant-disabled{
    opacity:.55;
}

/* Lojas e categorias */
.store-card-public,
.vs-home-categories-v2__card,
.category-card,
.home-store-card{
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.store-card-public:hover,
.vs-home-categories-v2__card:hover,
.category-card:hover,
.home-store-card:hover{
    transform:translateY(-2px);
    border-color:#cfe7d8 !important;
    box-shadow:var(--vs-shadow-md) !important;
}

.store-card-logo,
.home-store-card img,
.vs-home-categories-v2__image{
    border-radius:var(--vs-radius-md) !important;
}

/* Carrinho, reservas e conta */
.cart-item,
.cart-line,
.pedido-card,
.reservation-card,
.account-card,
.login-card{
    border:1px solid var(--vs-border) !important;
    border-radius:var(--vs-radius-lg) !important;
    background:#fff !important;
    box-shadow:var(--vs-shadow-sm) !important;
}

.cart-item img,
.pedido-card-imagem,
.reservation-card img{
    border-radius:var(--vs-radius-md) !important;
    background:#fff !important;
    object-fit:contain !important;
}

.cart-summary-card,
.cart-coupon-card,
.cart-login-card{
    position:relative;
}

.cart-summary-card::before,
.cart-coupon-card::before,
.cart-login-card::before,
.product-summary-card::before{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    top:0;
    height:4px;
    border-radius:0 0 999px 999px;
    background:linear-gradient(90deg, var(--vs-green), var(--vs-yellow-strong));
}

.text-muted,
.muted,
.store-count,
.store-card-meta,
.marketplace-block-subtitle,
.section-subtitle{
    color:var(--vs-muted) !important;
}

@media (max-width:767px){
    body.res{
        font-size:15px;
    }

    .container{
        width:100% !important;
        padding-left:12px !important;
        padding-right:12px !important;
    }

    body.res h1{
        font-size:28px;
    }

    body.res h2{
        font-size:23px;
    }

    body.res h3{
        font-size:19px;
    }

    .product-card,
    .store-card-public,
    .cart-card,
    .modern-card,
    .product-gallery-card,
    .product-summary-card,
    .sidebar-card{
        border-radius:var(--vs-radius-md) !important;
    }

    .card-body{
        padding:9px !important;
    }

    .card-title{
        font-size:12px !important;
        line-height:1.25 !important;
    }

    .price-new{
        font-size:14px !important;
    }

    .card-button{
        min-height:38px !important;
        border-radius:12px !important;
        font-size:11px !important;
    }

    .vs-badge,
    .vs-badge-verified,
    .vs-badge-local-pickup,
    .vs-badge-low-stock,
    .vs-badge-sponsored,
    .product-badge,
    .sponsored-label,
    .low-stock-badge,
    .local-fomo-badge,
    .sale-badge{
        min-height:22px;
        padding:4px 7px !important;
        font-size:10px !important;
    }

    .home-sponsored-frame{
        border-radius:20px !important;
    }

    .mobile-sidebar{
        border-radius:0 24px 24px 0 !important;
    }
}

@media (min-width:768px){
    body.res{
        font-size:16px;
    }

    .vs-card{
        padding:var(--vs-space-5);
    }

    .product-gallery-card,
    .product-summary-card{
        padding:var(--vs-space-5) !important;
    }
}
