/* ============================================================
   HAVOK — Loja Online (vitrine pública havoksystem.com.br)
   Fundo branco + identidade do site (#F2B705, Inter).
   ============================================================ */

.loja-body {
    background-color: #FFFFFF;
    color: #2A2A2A;
    cursor: auto;
}

/* A loja não usa o cursor-mira da landing — cursor normal do sistema. */
.loja-body a,
.loja-body button,
.loja-body [role="button"],
.loja-body input,
.loja-body select,
.loja-body textarea,
.loja-body label {
    cursor: auto;
}

.loja-body a,
.loja-body button,
.loja-body [role="button"],
.loja-body select,
.loja-body label {
    cursor: pointer;
}

.loja-body input[type="text"],
.loja-body input[type="search"],
.loja-body input[type="number"],
.loja-body textarea {
    cursor: text;
}

.loja-main {
    max-width: 1200px;
    margin: 0 auto;
    padding: calc(4.2rem + 2rem) 1.25rem 4rem; /* header fixo + afastamento */
    min-height: 60vh;
}

/* Na loja.php, quando o carrossel hero está visível ele já dá o afastamento. */
.loja-main--depois-hero {
    padding-top: 2.5rem;
}

/* ---------- Carrossel hero (largura total, com afastamento do header fixo) ---------- */

.loja-hero {
    position: relative;
    width: 100%;
    margin-top: calc(4.2rem + 2rem); /* header fixo + afastamento */
    overflow: hidden;
    background: #0E0E0E;
}

.loja-hero-track {
    position: relative;
    width: 100%;
}

.loja-hero-slide {
    display: none;
    width: 100%;
}

.loja-hero-slide.is-active {
    display: block;
    animation: loja-hero-fade .4s ease;
}

@keyframes loja-hero-fade {
    from { opacity: .35; }
    to { opacity: 1; }
}

.loja-hero-img {
    display: block;
    width: 100%;
    height: clamp(260px, 38vw, 560px);
    object-fit: cover;
}

.loja-hero-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(14,14,14,.55);
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

.loja-hero-prev { left: 1rem; }
.loja-hero-next { right: 1rem; }

.loja-hero-dots {
    position: absolute;
    bottom: 0.9rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 0.45rem;
}

.loja-hero-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 0;
    background: rgba(255,255,255,.45);
    cursor: pointer;
    padding: 0;
}

.loja-hero-dot.is-active { background: #F2B705; }

/* ---------- Banner do meio da página (menor, centralizado) ---------- */

.loja-meio {
    max-width: 900px;
    margin: 3rem auto 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #E4E4E4;
}

.loja-meio-img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 320px;
    object-fit: cover;
}

.loja-aviso {
    background: #FFF7DC;
    border: 1px solid #F2B705;
    color: #6b5200;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

.loja-page-title {
    font-size: 1.9rem;
    font-weight: 700;
    color: #0E0E0E;
    margin: 0 0 0.25rem;
}

.loja-page-sub {
    color: #777;
    font-size: 0.95rem;
    margin: 0 0 1.5rem;
}

/* ---------- Filtros ---------- */

.loja-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 1.75rem;
}

.loja-chip {
    border: 1px solid #CFCFCF;
    background: #fff;
    color: #2A2A2A;
    border-radius: 4px;
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .15s, background .15s;
}

.loja-chip:hover { border-color: #F2B705; }

.loja-chip.is-active {
    background: #F2B705;
    border-color: #F2B705;
    color: #0E0E0E;
    font-weight: 600;
}

.loja-busca {
    margin-left: auto;
    border: 1px solid #CFCFCF;
    border-radius: 8px;
    padding: 0.5rem 0.9rem;
    font-family: inherit;
    font-size: 0.9rem;
    min-width: 220px;
}

.loja-busca:focus { outline: none; border-color: #F2B705; }

/* ---------- Grid de produtos ---------- */

.loja-grid {
    display: grid;
    grid-template-columns: repeat(var(--loja-cols, 4), 1fr);
    gap: 1.5rem;
}

@media (max-width: 980px) {
    .loja-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .loja-grid { grid-template-columns: 1fr; }
}

.loja-card {
    border: 1px solid #E4E4E4;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    transition: box-shadow .15s, transform .15s;
    position: relative;
}

.loja-card-link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.loja-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.10);
    transform: translateY(-2px);
}

.loja-card-foto {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: #F4F4F4;
    display: block;
}

.loja-card-foto--vazia {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #B9B9B9;
    font-size: 0.8rem;
    aspect-ratio: 1 / 1;
    background: #F4F4F4;
}

.loja-card-bd {
    padding: 0.9rem 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1;
}

.loja-card-cat {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9a9a9a;
}

.loja-card-nome {
    font-size: 1rem;
    font-weight: 600;
    color: #0E0E0E;
    line-height: 1.3;
}

.loja-card-preco {
    margin-top: auto;
    padding-top: 0.5rem;
}

.loja-preco-antigo {
    text-decoration: line-through;
    color: #9a9a9a;
    font-size: 0.82rem;
    margin-right: 0.4rem;
}

.loja-preco {
    color: #0E0E0E;
    font-weight: 700;
    font-size: 1.05rem;
}

.loja-badge {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    background: #0E0E0E;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: .05em;
    padding: 0.3rem 0.65rem;
    border-radius: 4px;
}

.loja-badge--promo { background: #F2B705; color: #0E0E0E; }
.loja-badge--esgotado { background: #B3261E; }

.loja-vazio {
    text-align: center;
    color: #777;
    padding: 4rem 1rem;
    font-size: 0.95rem;
}

.loja-loading {
    text-align: center;
    color: #9a9a9a;
    padding: 4rem 1rem;
}

/* ---------- Página do produto ---------- */

.loja-breadcrumb {
    font-size: 0.85rem;
    color: #9a9a9a;
    margin-bottom: 1.5rem;
}

.loja-breadcrumb a { color: #9a9a9a; text-decoration: none; }
.loja-breadcrumb a:hover { color: #F2B705; }

.loja-produto {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2.5rem;
}

@media (max-width: 820px) {
    .loja-produto { grid-template-columns: 1fr; }
}

.loja-galeria-principal {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid #E4E4E4;
    background: #F4F4F4;
}

.loja-galeria-thumbs {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
    flex-wrap: wrap;
}

.loja-galeria-thumb {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 2px solid #E4E4E4;
    cursor: pointer;
    background: #F4F4F4;
    padding: 0;
}

.loja-galeria-thumb.is-active { border-color: #F2B705; }

.loja-prod-nome {
    font-size: 1.6rem;
    font-weight: 700;
    color: #0E0E0E;
    margin: 0 0 0.5rem;
}

.loja-prod-cat {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9a9a9a;
    margin-bottom: 0.75rem;
}

.loja-prod-preco { margin: 0.75rem 0 1.25rem; }
.loja-prod-preco .loja-preco { font-size: 1.6rem; }

.loja-field-label {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: #2A2A2A;
    margin: 0 0 0.4rem;
}

.loja-variantes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.loja-var-btn {
    border: 1px solid #CFCFCF;
    background: #fff;
    border-radius: 8px;
    padding: 0.5rem 0.9rem;
    font-family: inherit;
    font-size: 0.88rem;
    cursor: pointer;
    color: #2A2A2A;
}

.loja-var-btn.is-active {
    border-color: #F2B705;
    background: #FFF7DC;
    font-weight: 600;
}

.loja-var-btn:disabled {
    opacity: .4;
    cursor: not-allowed;
    text-decoration: line-through;
}

.loja-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #CFCFCF;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.loja-qty button {
    border: 0;
    background: #F4F4F4;
    width: 38px;
    height: 40px;
    font-size: 1.1rem;
    cursor: pointer;
    font-family: inherit;
}

.loja-qty input {
    width: 52px;
    height: 40px;
    border: 0;
    text-align: center;
    font-family: inherit;
    font-size: 0.95rem;
}

.loja-btn-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #F2B705;
    color: #0E0E0E;
    border: 0;
    border-radius: 8px;
    padding: 0.9rem 1.75rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: filter .15s;
}

.loja-btn-add:hover { filter: brightness(.94); }
.loja-btn-add:disabled { background: #CFCFCF; color: #777; cursor: not-allowed; }

.loja-btn-add--off {
    background: #E4E4E4;
    color: #888;
    cursor: default;
    width: 100%;
}

.loja-btn-add.is-added {
    background: #1a7a1a;
    color: #fff;
}

.loja-card-acao {
    padding: 0 1rem 1rem;
    display: flex;
    gap: 0.5rem;
}

.loja-card-acao .loja-btn-add {
    flex: 1;
    width: auto;
    padding: 0.65rem 1rem;
    font-size: 0.92rem;
}

.loja-card-acao .loja-btn-add--off {
    width: auto;
}

.loja-card-sec {
    flex: 1;
    padding: 0.65rem 1rem;
    font-size: 0.92rem;
}

.loja-btn-sec {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #CFCFCF;
    background: #fff;
    color: #2A2A2A;
    border-radius: 8px;
    padding: 0.9rem 1.5rem;
    font-family: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.loja-btn-sec:hover { border-color: #F2B705; }

/* ---------- Frete no carrinho ---------- */

.loja-cart-frete {
    margin: 0.75rem 0;
    padding: 0.8rem;
    border: 1px solid #E4E4E4;
    border-radius: 8px;
    background: #FAFAFA;
}

.loja-frete-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #2A2A2A;
    margin-bottom: 0.45rem;
}

.loja-frete-row { display: flex; gap: 0.4rem; }

.loja-frete-row input {
    flex: 1;
    min-width: 0;
    border: 1px solid #CFCFCF;
    border-radius: 6px;
    padding: 0.5rem 0.7rem;
    font-family: inherit;
    font-size: 0.9rem;
}

.loja-frete-row input:focus { outline: none; border-color: #F2B705; }

.loja-frete-row button {
    border: 0;
    border-radius: 6px;
    background: #0E0E0E;
    color: #fff;
    padding: 0.5rem 0.9rem;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.loja-frete-row button:hover { background: #2A2A2A; }

.loja-frete-opcao {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem;
    margin-top: 0.4rem;
    border: 1px solid #E4E4E4;
    border-radius: 6px;
    background: #fff;
    font-size: 0.85rem;
    cursor: pointer;
}

.loja-frete-opcao:hover { border-color: #F2B705; }
.loja-frete-opcao input { accent-color: #F2B705; margin: 0; }
.loja-frete-opcao > span:last-child { margin-left: auto; font-weight: 700; }
.loja-frete-opcao em { font-style: normal; color: #9a9a9a; font-size: 0.78rem; }

.loja-frete-erro { color: #B3261E; font-size: 0.82rem; margin: 0.45rem 0 0; }
.loja-frete-info { color: #9a9a9a; font-size: 0.82rem; margin: 0.45rem 0 0; }

.loja-prod-desc {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid #E4E4E4;
    color: #444;
    font-size: 0.95rem;
    line-height: 1.65;
    white-space: pre-line;
}

.loja-feedback {
    font-size: 0.85rem;
    color: #1a7a1a;
    margin-top: 0.6rem;
    min-height: 1.1em;
}

.loja-erro {
    background: #FDECEA;
    border: 1px solid #F5C6C0;
    color: #B3261E;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
}

/* ---------- Carrinho ---------- */

.loja-cart-table {
    width: 100%;
    border-collapse: collapse;
}

.loja-cart-table th {
    text-align: left;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #9a9a9a;
    padding: 0 0.75rem 0.75rem;
    border-bottom: 1px solid #E4E4E4;
}

.loja-cart-table td {
    padding: 1rem 0.75rem;
    border-bottom: 1px solid #E4E4E4;
    vertical-align: middle;
}

.loja-cart-foto {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 8px;
    background: #F4F4F4;
}

.loja-cart-nome { font-weight: 600; color: #0E0E0E; }
.loja-cart-var { font-size: 0.82rem; color: #9a9a9a; }

.loja-cart-remover {
    border: 0;
    background: none;
    color: #B3261E;
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.25rem 0.5rem;
}

.loja-cart-resumo {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.5rem;
}

.loja-cart-resumo-box {
    min-width: 300px;
    border: 1px solid #E4E4E4;
    border-radius: 12px;
    padding: 1.25rem;
}

.loja-cart-linha {
    display: flex;
    justify-content: space-between;
    font-size: 0.95rem;
    margin-bottom: 0.6rem;
}

.loja-cart-linha--total {
    font-weight: 700;
    font-size: 1.15rem;
    color: #0E0E0E;
    border-top: 1px solid #E4E4E4;
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

.loja-cart-acoes {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
    flex-wrap: wrap;
}

/* ---------- Ícone carrinho no header ---------- */

.loja-cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: var(--texto-principal, #fff);
    text-decoration: none;
    padding: 0.35rem;
}

.loja-cart-count {
    position: absolute;
    top: -4px;
    right: -6px;
    background: #F2B705;
    color: #0E0E0E;
    font-size: 0.66rem;
    font-weight: 700;
    min-width: 17px;
    height: 17px;
    border-radius: 999px;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

/* ---------- Checkout ---------- */

.loja-checkout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 1.5rem;
    align-items: start;
}

.loja-ck-card {
    border: 1px solid #E4E4E4;
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1.25rem;
    background: #fff;
}

.loja-ck-title {
    font-size: 1rem;
    font-weight: 700;
    color: #0E0E0E;
    margin: 0 0 1rem;
    padding-left: 0.6rem;
    border-left: 4px solid #F2B705;
}

.loja-ck-subtitle {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0E0E0E;
    margin: 1rem 0 0.5rem;
}

.loja-ck-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0.75rem;
}

.loja-ck-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #6a6a6a;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.loja-ck-field input {
    border: 1px solid #D8D8D8;
    border-radius: 8px;
    padding: 0.65rem 0.75rem;
    font-size: 0.95rem;
    font-weight: 400;
    color: #0E0E0E;
    text-transform: none;
    letter-spacing: normal;
    width: 100%;
    box-sizing: border-box;
}

.loja-ck-field input:focus { outline: none; border-color: #F2B705; }

.loja-ck-col-2 { grid-column: span 2; }
.loja-ck-col-3 { grid-column: span 3; }
.loja-ck-col-4 { grid-column: span 4; }
.loja-ck-col-6 { grid-column: span 6; }
.loja-ck-col-8 { grid-column: span 8; }
.loja-ck-col-9 { grid-column: span 9; }
.loja-ck-col-12 { grid-column: span 12; }

.loja-ck-frete { margin-top: 0.75rem; }

.loja-ck-submit {
    width: 100%;
    justify-content: center;
    font-size: 1.05rem;
    padding: 0.9rem 1rem;
}

.loja-ck-mp {
    font-size: 0.8rem;
    color: #9a9a9a;
    margin: 0.6rem 0 0;
    text-align: center;
}

.loja-ck-aviso {
    font-size: 0.75rem;
    color: #9a9a9a;
    margin: 0.75rem 0 0;
}

.loja-obrigado { text-align: center; padding: 3rem 1rem; }
.loja-obrigado-icone { color: #2E7D32; margin: 0 auto 1rem; }
.loja-obrigado-msg { color: #555; max-width: 520px; margin: 0.5rem auto 0; }

@media (max-width: 900px) {
    .loja-checkout { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .loja-ck-col-2, .loja-ck-col-3, .loja-ck-col-4 { grid-column: span 6; }
    .loja-ck-col-6, .loja-ck-col-8, .loja-ck-col-9 { grid-column: span 12; }
}

/* ---------- Responsivo — carrinho e detalhes mobile ---------- */

@media (max-width: 640px) {
    /* Tabela do carrinho vira cards: foto | nome/preço | remover · qty | total */
    .loja-cart-table thead { display: none; }
    .loja-cart-table, .loja-cart-table tbody { display: block; width: 100%; }
    .loja-cart-table tr {
        display: grid;
        grid-template-columns: 64px 1fr auto auto;
        grid-template-areas:
            "foto nome nome remover"
            "foto preco qty total";
        align-items: center;
        column-gap: 0.75rem;
        padding: 0.9rem 0;
        border-bottom: 1px solid #E4E4E4;
    }
    .loja-cart-table td { border-bottom: 0; padding: 0.2rem 0; }
    .loja-cart-table td:nth-child(1) { grid-area: foto; padding: 0; }
    .loja-cart-table td:nth-child(2) { grid-area: nome; }
    .loja-cart-table td:nth-child(3) { grid-area: preco; font-size: 0.85rem; color: #777; }
    .loja-cart-table td:nth-child(4) { grid-area: qty; }
    .loja-cart-table td:nth-child(5) { grid-area: total; text-align: right; }
    .loja-cart-table td:nth-child(6) { grid-area: remover; }

    .loja-cart-resumo { justify-content: stretch; }
    .loja-cart-resumo-box { width: 100%; min-width: 0; }

    .loja-frete-opcao { flex-wrap: wrap; }
    .loja-frete-opcao > span:last-child { width: 100%; margin-left: 1.5rem; }

    .loja-page-title { font-size: 1.5rem; }
    .loja-hero-img { height: clamp(180px, 45vw, 320px); }
    .loja-hero-nav { width: 36px; height: 36px; font-size: 1.2rem; }
    .loja-hero-prev { left: 0.5rem; }
    .loja-hero-next { right: 0.5rem; }
}
