/* Theme overrides to align storefront with digital software sales. */
:root {
    --gsofts-primary:       #0f5d5d;
    --gsofts-primary-dark:  #0b4949;
    --gsofts-primary-soft:  #e8f4f4;
    --gsofts-accent:        #ff7a18;
    --gsofts-accent-dark:   #d95e00;
    --gsofts-text:          #1c2733;
    --gsofts-text-secondary:#4a4a4a;   /* ≥ 7:1 on white, replaces bare #666 */
    --gsofts-focus-ring:    #ffb35c;
    --gsofts-link:          #0b4f78;
    --gsofts-link-dark:     #083a58;
}

/* ─────────────────────────────────────────────
   BASE
───────────────────────────────────────────── */
body {
    color: var(--gsofts-text);
}

/* Elevate low-contrast secondary text globally */
.check,
.endereco-list li,
.summary-detail span,
.categoria-footer,
.txt-preco,
.total-resultados,
.h4-mod,
.asodjas,
.title-product,
.boxProduct .boxProductText {
    color: var(--gsofts-text-secondary);
}

/* ─────────────────────────────────────────────
   MAIN NAVIGATION – layout & branding overrides
───────────────────────────────────────────── */

/* Barra de menu: altura automática, sem corte */
.ban-top {
    height: auto !important;
    min-height: 44px;
    padding: 0;
    background: #fff !important;
    border-bottom: 2px solid var(--gsofts-primary-soft);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important;
}

/* Navbar: centralizado, sem margem fixa */
.ban-top .navbar {
    margin-bottom: 0;
    border: none;
    background: transparent;
    min-height: 44px;
}

.ban-top .navbar-nav {
    margin-left: 0 !important;
    float: none;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px;
}

.ban-top .navbar-nav > li {
    margin: 0 2px;
    float: none;
}

/* Links de nav */
.ban-top .navbar-nav > li > a,
.ban-top a.nav-stylehead {
    color: var(--gsofts-text) !important;
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01rem !important;
    padding: 10px 12px !important;
    border-radius: 4px;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
}

/* Hover dos links de nav */
.ban-top .navbar-default .navbar-nav > li > a:hover,
.ban-top .navbar-default .navbar-nav > li > a:focus {
    color: var(--gsofts-primary) !important;
    background: var(--gsofts-primary-soft) !important;
    text-decoration: none !important;
}

/* Item ativo */
.ban-top .navbar-default .navbar-nav > .active > a,
.ban-top .navbar-default .navbar-nav > .active > a:hover,
.ban-top .navbar-default .navbar-nav > .active > a:focus {
    color: var(--gsofts-primary) !important;
    background: var(--gsofts-primary-soft) !important;
    font-weight: 600 !important;
}

/* Item com dropdown aberto */
.ban-top .navbar-default .navbar-nav > .open > a,
.ban-top .navbar-default .navbar-nav > .open > a:hover,
.ban-top .navbar-default .navbar-nav > .open > a:focus {
    color: var(--gsofts-primary) !important;
    background: var(--gsofts-primary-soft) !important;
}

/* Caret dos dropdowns */
.ban-top .navbar-nav > li > a .caret {
    border-top-color: currentColor;
    border-bottom-color: currentColor;
}

/* Dropdown panel */
.ban-top .dropdown-menu {
    border-top: 3px solid var(--gsofts-primary);
    border-radius: 0 0 6px 6px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    padding: 16px 20px !important;
    animation: fadeInDown 0.15s ease;
}

/* Subcategoria: título */
.subcategoria-menu {
    color: var(--gsofts-primary) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    margin-bottom: 10px !important;
}

.subcategoria-menu a.no-a {
    color: var(--gsofts-primary) !important;
}

/* Links dentro do dropdown */
ul.multi-column-dropdown li a {
    color: var(--gsofts-text-secondary) !important;
    font-size: 0.84rem !important;
    padding: 3px 0 !important;
    transition: color 0.12s;
}

ul.multi-column-dropdown li a:hover {
    color: var(--gsofts-primary) !important;
    text-decoration: none !important;
}

/* ─────────────────────────────────────────────
   BUTTONS – desktop states
───────────────────────────────────────────── */

.tops_boleto,
.tops_boleto_mobile {
    background: linear-gradient(90deg, #0f5d5d 0%, #144f7a 100%);
}

.span-tikect,
.span-tikect_mobile {
    color: #fff;
    letter-spacing: 0.2px;
}

.gsofts-top-banner {
    color: #2f3b46;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
}

.gsofts-top-banner i {
    color: var(--gsofts-primary);
    margin-right: 4px;
}

#regra-frete-ul ul li {
    margin: 8px 12px;
}

#regra-frete-ul {
    float: none;
    left: 0;
    text-align: center;
}

#regra-frete-ul ul {
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
}

.button-comprar,
.button-finalizar,
.button-cupom,
.btn-filtro,
.btn-rastreiar {
    background: var(--gsofts-primary);
    border-color: var(--gsofts-primary);
}

.button-comprar:hover,
.button-finalizar:hover,
.button-cupom:hover,
.btn-filtro:hover,
.btn-rastreiar:hover {
    background: var(--gsofts-primary-dark);
    border-color: var(--gsofts-primary-dark);
    text-decoration: none;
}

.button-comprar:active,
.button-finalizar:active,
.button-cupom:active,
.btn-filtro:active,
.btn-rastreiar:active {
    background: #083838;
    border-color: #083838;
    transform: translateY(1px);
}

.heading-tittle,
.summary-title,
.tittle-w3l {
    color: var(--gsofts-primary);
}

.badge-software {
    display: inline-block;
    margin: 6px 0;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gsofts-primary);
    background: var(--gsofts-primary-soft);
    border: 1px solid #c4e0e0;
}

.digital-highlight {
    color: var(--gsofts-primary);
    font-weight: 600;
}

.a-alterar-endereco,
.cart_btn_gray,
.link-product-add-cart,
.minha-conta,
.faca-login,
.no-a {
    color: #0b4f78;
}

.a-alterar-endereco:hover,
.cart_btn_gray:hover,
.link-product-add-cart:hover,
.minha-conta:hover,
.faca-login:hover,
.no-a:hover {
    color: var(--gsofts-link-dark);
    text-decoration: underline;
}

.a-alterar-endereco:active,
.cart_btn_gray:active,
.link-product-add-cart:active,
.minha-conta:active,
.faca-login:active,
.no-a:active {
    color: var(--gsofts-link-dark);
    opacity: 0.8;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.button-comprar:focus-visible,
.button-finalizar:focus-visible,
.button-cupom:focus-visible,
.btn-filtro:focus-visible,
.btn-rastreiar:focus-visible {
    outline: 3px solid var(--gsofts-focus-ring) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(11, 73, 73, 0.35);
}

/* Override outline:0 set by style.css on payment buttons */
#pagarCartao:focus-visible,
#pagarBoleto:focus-visible,
#pagarCartaoComRede:focus-visible,
.bt_pagseguro_wrapper a:focus-visible {
    outline: 3px solid var(--gsofts-focus-ring) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(11, 73, 73, 0.35);
}

/* ─────────────────────────────────────────────
   DESKTOP ACCESSIBILITY — contrast & nav states
   (applied unconditionally; mobile block below
    may override layout but not colour)
───────────────────────────────────────────── */

/* Secondary text contrast: #4a4a4a on white = 9.7:1 (WCAG AAA) */
.check,
.endereco-list li,
.summary-detail span,
.categoria-footer,
.txt-preco,
.total-resultados,
.h4-mod,
.asodjas,
.title-product,
.boxProduct .boxProductText,
.cart-qty,
.table-responsive td,
.form-group label,
small,
.text-muted {
    color: var(--gsofts-text-secondary) !important;
}

/* Ensure nav links are clearly interactive */
.nav > li > a:hover,
.nav > li > a:focus-visible,
nav a:hover,
nav a:focus-visible {
    color: var(--gsofts-primary);
    text-decoration: underline;
}

/* Accent button (add-to-cart style) hover/active */
.btn-primary:hover,
.btn-primary:active {
    background-color: var(--gsofts-primary-dark) !important;
    border-color:     var(--gsofts-primary-dark) !important;
}
.btn-primary:active {
    transform: translateY(1px);
}

/* Input / select border on focus for desktop */
input:focus,
select:focus,
textarea:focus {
    border-color: var(--gsofts-primary) !important;
    box-shadow: 0 0 0 3px rgba(15, 93, 93, 0.25) !important;
    outline: none;
}

@media (max-width: 768px) {
    body {
        font-size: 15px;
        line-height: 1.45;
    }

    .services-breadcrumb {
        padding: 10px 0;
    }

    ul.w3_short {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin: 0;
        padding: 0;
    }

    ul.w3_short li,
    ul.w3_short li a {
        font-size: 12px;
        line-height: 1.3;
    }

    h3.heading-tittle,
    .heading-tittle {
        font-size: 22px;
        line-height: 1.2;
        margin: 18px 0 10px;
    }

    .line {
        width: 100%;
        margin-left: 0;
    }

    .item-produto {
        padding: 6px 10px 10px;
    }

    .item-produto h4 a,
    .description-index a {
        font-size: 14px;
        line-height: 1.35;
    }

    .boxProduct {
        padding: 8px 10px;
    }

    .boxProduct .boxProductText {
        font-size: 14px;
        line-height: 1.35;
        min-height: 38px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .boxProduct .boxProductPrice {
        font-size: 24px;
        line-height: 1.1;
    }

    .parcelas {
        display: block;
        font-size: 12px;
        line-height: 1.35;
        margin-top: 4px;
    }

    .title-product {
        font-size: 22px !important;
        line-height: 1.25;
        margin-top: 6px;
        margin-bottom: 8px;
    }

    .short_description_product {
        font-size: 14px;
        line-height: 1.45;
        margin-bottom: 10px;
    }

    .single-right-left .item_price {
        display: block;
        font-size: 28px;
        line-height: 1.1;
        margin-top: 4px;
    }

    .single-right-left .button-comprar,
    .single-right-left .btn-produto-indisponivel {
        width: 100%;
        min-height: 46px;
        font-size: 15px;
        letter-spacing: 0.2px;
    }

    .button-comprar,
    .button-finalizar,
    .button-cupom,
    .btn-filtro,
    .btn-rastreiar,
    #calcular,
    #aplicar_cupom,
    #pagarCartao,
    #pagarBoleto,
    #pagarCartaoComRede,
    .cart_btn_gray,
    .qtd-product,
    .input-frete,
    .input-cupom,
    .form-control,
    select,
    input[type="text"],
    input[type="email"],
    input[type="password"] {
        min-height: 44px;
        font-size: 16px;
    }

    input[type="radio"],
    input[type="checkbox"] {
        transform: scale(1.2);
        margin-right: 8px;
    }

    .radio-checked,
    .radio-no-checked {
        padding: 8px;
    }

    .summary-detail {
        gap: 10px;
    }

    .summary-detail span:last-child {
        text-align: right;
    }

    .a-alterar-endereco,
    .link-product-add-cart,
    .cart_btn_gray {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .single-infoagile ul li {
        margin-bottom: 8px;
    }

    .summary-title,
    .tittle-w3l {
        font-size: 20px;
        line-height: 1.2;
    }

    .summary-detail span,
    .check,
    .endereco-list li {
        font-size: 13px;
        line-height: 1.4;
    }

    .logo-cart {
        width: 56%;
        height: auto;
    }

    .badge-software {
        font-size: 10px;
        margin-bottom: 8px;
    }
}

/* ─────────────────────────────────────────────
   FOOTER – brand palette (replaces Grocery legacy #BE3661)
───────────────────────────────────────────── */

/* Barra de copyright inferior */
.copy-right {
    background: var(--gsofts-primary-dark) !important;
}
.copy-right p a:hover {
    color: var(--gsofts-accent) !important;
}

/* Links do rodapé */
.footer-grids ul li a:hover {
    color: var(--gsofts-primary) !important;
}
.footer-grids ul li i {
    color: var(--gsofts-primary) !important;
}
.footer-info h3 {
    color: var(--gsofts-primary) !important;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06rem;
    margin-bottom: 14px;
}
.footer-info h3::after {
    content: '';
    display: block;
    width: 24px;
    height: 2px;
    background: var(--gsofts-accent);
    margin-top: 5px;
    border-radius: 2px;
}

/* Seção inferior de descrição */
.agile-sometext {
    padding: 28px 0 16px;
}
.agile-sometext .sub-some h4 {
    color: var(--gsofts-primary);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05rem;
}
.agile-sometext .sub-some ul li a {
    color: var(--gsofts-text-secondary);
    transition: color 0.15s;
}
.agile-sometext .sub-some ul li a:hover {
    color: var(--gsofts-primary);
    text-decoration: none;
}
.agile-sometext .sub-some p {
    color: var(--gsofts-text-secondary);
    font-size: 13px;
}

/* Newsletter rodapé */
#newsletter-rodape {
    background: var(--gsofts-primary-dark) !important;
}
#newsletter-rodape .newsletter-title strong {
    font-size: 18px;
}
#newsletter-rodape button {
    color: var(--gsofts-accent);
    font-weight: 700;
}
#newsletter-rodape button:hover {
    color: var(--gsofts-accent-dark);
}

/* Segurança / RapidSSL */
.digital-highlight {
    color: var(--gsofts-primary);
    font-weight: 600;
}

/* Ícones de redes sociais no rodapé */
.footer-grids.w3l-socialmk .social a {
    background: var(--gsofts-primary);
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.footer-grids.w3l-socialmk .social a:hover {
    background: var(--gsofts-accent);
}
.footer-grids.w3l-socialmk .social a img {
    filter: brightness(0) invert(1);
    width: 18px !important;
    height: 18px !important;
    border-radius: 0;
}

/* Divisor horizontal do rodapé */
footer hr {
    border-color: var(--gsofts-primary-soft);
}
