/*
 * Germer Toolkit
 * Tokens do kit global da Germer. Nenhuma cor da referência Oxford entra aqui:
 * a Oxford é referência de layout, o realce é sempre o laranja da Germer.
 */
:root {
    --gt-texto: #090807;
    --gt-secundario: #554843;
    --gt-divisor: #E4E2E1;
    --gt-realce: #F26222;
    --gt-realce-hover: #DA581F;
    --gt-fundo: #FFFFFF;
    --gt-raio: 8px;
    --gt-sombra: 0 4px 16px rgba(9, 8, 7, .12);
}

/* ---------- Notices ---------- */

#germer-toolkit-toasts {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: min(380px, calc(100vw - 32px));
    pointer-events: none;
}

#germer-toolkit-toasts .gt-toast {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: var(--gt-fundo);
    color: var(--gt-texto);
    border-left: 4px solid var(--gt-realce);
    border-radius: var(--gt-raio);
    box-shadow: var(--gt-sombra);
    font-family: Poppins, sans-serif;
    font-size: 14px;
    line-height: 1.45;
    animation: gt-toast-entra .22s ease-out;
}

#germer-toolkit-toasts .gt-toast::before {
    content: "✓";
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--gt-realce);
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

#germer-toolkit-toasts .gt-toast.gt-saindo {
    animation: gt-toast-sai .18s ease-in forwards;
}

#germer-toolkit-toasts .gt-toast .gt-fechar {
    margin-left: auto;
    flex: 0 0 auto;
    background: none;
    border: 0;
    padding: 0 2px;
    cursor: pointer;
    color: var(--gt-secundario);
    font-size: 18px;
    line-height: 1;
}

/* O botão de ação que o Woo às vezes injeta (Ver carrinho, Desfazer). */
#germer-toolkit-toasts .gt-toast .button {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 14px;
    background: transparent;
    color: var(--gt-realce);
    border: 1px solid var(--gt-realce);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
}

@keyframes gt-toast-entra {
    from { opacity: 0; transform: translateX(16px); }
    to { opacity: 1; transform: none; }
}

@keyframes gt-toast-sai {
    to { opacity: 0; transform: translateX(16px); }
}

/* Barras que permanecem na página: erro e aviso. */
.germer-toolkit-notices-on .woocommerce-error,
.germer-toolkit-notices-on .woocommerce-info,
.germer-toolkit-notices-on .woocommerce-message {
    list-style: none;
    margin: 0 0 20px;
    padding: 14px 18px;
    background: #FAF9F9;
    border: 1px solid var(--gt-divisor);
    border-top: 3px solid var(--gt-realce);
    border-radius: var(--gt-raio);
    color: var(--gt-texto);
    font-family: Poppins, sans-serif;
    font-size: 14px;
}

.germer-toolkit-notices-on .woocommerce-error {
    border-top-color: #C0392B;
}

.germer-toolkit-notices-on .woocommerce-error li {
    list-style: none;
    margin: 0;
}

@media (max-width: 600px) {
    #germer-toolkit-toasts {
        top: 12px;
        right: 12px;
        left: 12px;
        width: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    #germer-toolkit-toasts .gt-toast,
    #germer-toolkit-toasts .gt-toast.gt-saindo {
        animation: none;
    }
}

/* ---------- Carrinho ---------- */

.germer-toolkit-carrinho-on .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 32px;
    align-items: start;
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.germer-toolkit-carrinho-on .woocommerce-cart-form {
    grid-column: 1;
    background: var(--gt-fundo);
    border-radius: var(--gt-raio);
    padding: 8px 24px 24px;
}

.germer-toolkit-carrinho-on .cart-collaterals {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 100%;
    background: var(--gt-fundo);
    border-radius: var(--gt-raio);
    padding: 24px;
}

.germer-toolkit-carrinho-on .shop_table {
    border: 0;
    width: 100%;
}

.germer-toolkit-carrinho-on .shop_table th {
    border: 0;
    border-bottom: 1px solid var(--gt-divisor);
    padding: 16px 8px;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
}

.germer-toolkit-carrinho-on .shop_table td {
    border: 0;
    border-bottom: 1px solid var(--gt-divisor);
    padding: 20px 8px;
    vertical-align: middle;
}

.germer-toolkit-carrinho-on .product-thumbnail img {
    width: 72px;
    height: auto;
    border-radius: 4px;
}

.germer-toolkit-carrinho-on .gt-preco-de {
    display: block;
    color: var(--gt-secundario);
    font-size: 13px;
    text-decoration: line-through;
}

.germer-toolkit-carrinho-on .gt-preco-por {
    font-weight: 600;
}

.germer-toolkit-carrinho-on .product-remove a {
    color: var(--gt-secundario);
    font-size: 20px;
    text-decoration: none;
}

/* Stepper: o markup vem do plugin Quantity Plus Minus quando ele está ativo;
   o seletor do input nativo cobre o caso de ele estar desligado. */
.germer-toolkit-carrinho-on .quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    overflow: hidden;
}

.germer-toolkit-carrinho-on .quantity .qty {
    width: 44px;
    border: 0;
    text-align: center;
    background: transparent;
    font-size: 14px;
}

.germer-toolkit-carrinho-on .quantity .plus,
.germer-toolkit-carrinho-on .quantity .minus,
.germer-toolkit-carrinho-on .quantity button {
    width: 32px;
    height: 36px;
    border: 0;
    background: transparent;
    color: var(--gt-texto);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}

.germer-toolkit-carrinho-on .gt-cupom h3 {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.germer-toolkit-carrinho-on .gt-cupom-form {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.germer-toolkit-carrinho-on .gt-cupom-form .input-text {
    flex: 1 1 auto;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-size: 14px;
}

.germer-toolkit-carrinho-on .gt-cupom-form .button {
    flex: 0 0 auto;
    padding: 10px 16px;
    background: transparent;
    color: var(--gt-texto);
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
}

.germer-toolkit-carrinho-on .cart_totals h2 {
    display: none;
}

.germer-toolkit-carrinho-on .cart_totals table {
    width: 100%;
    border: 0;
    border-top: 1px solid var(--gt-divisor);
    margin-bottom: 16px;
}

.germer-toolkit-carrinho-on .cart_totals th,
.germer-toolkit-carrinho-on .cart_totals td {
    border: 0;
    padding: 10px 0;
    font-size: 14px;
    text-align: left;
}

.germer-toolkit-carrinho-on .cart_totals td {
    text-align: right;
}

.germer-toolkit-carrinho-on .cart_totals .order-total th,
.germer-toolkit-carrinho-on .cart_totals .order-total td {
    border-top: 1px solid var(--gt-divisor);
    padding-top: 16px;
    font-size: 18px;
    font-weight: 600;
}

.germer-toolkit-carrinho-on .wc-proceed-to-checkout .button,
.germer-toolkit-carrinho-on .checkout-button {
    display: block;
    width: 100%;
    padding: 16px 24px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
}

.germer-toolkit-carrinho-on .wc-proceed-to-checkout .button:hover,
.germer-toolkit-carrinho-on .checkout-button:hover {
    background: var(--gt-realce-hover);
}

/* O cupom nativo é escondido aqui — a versão exibida é a impressa por
   cupomNoCard() no card lateral, via woocommerce_before_cart_collaterals. */
.germer-toolkit-carrinho-on .shop_table .actions .coupon {
    display: none;
}

/* Carrinho vazio: mensagem calma + volta para a loja, sem tom de erro.
   O display explícito é load-bearing: as notices viraram flex na v0.10.0 e
   um item flex anônimo não obedece text-align. */
.germer-toolkit-carrinho-on .cart-empty.woocommerce-info {
    display: block;
    grid-column: 1 / -1;
    background: transparent;
    border: 0;
    padding: 48px 0 8px;
    text-align: center;
    font-size: 17px;
    color: var(--gt-secundario);
}

.germer-toolkit-carrinho-on .return-to-shop {
    grid-column: 1 / -1;
    text-align: center;
    padding-bottom: 48px;
}

.germer-toolkit-carrinho-on .return-to-shop .button {
    display: inline-block;
    padding: 14px 32px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
}

.germer-toolkit-carrinho-on .return-to-shop .button:hover {
    background: var(--gt-realce-hover);
}

@media (max-width: 992px) {
    .germer-toolkit-carrinho-on .woocommerce {
        grid-template-columns: minmax(0, 1fr);
    }

    .germer-toolkit-carrinho-on .woocommerce-cart-form,
    .germer-toolkit-carrinho-on .cart-collaterals {
        grid-column: 1;
        grid-row: auto;
    }
}

/* ---------- Checkout em três passos ---------- */

.germer-toolkit-checkout-on .gt-checkout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 32px;
    align-items: start;
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.germer-toolkit-checkout-on .gt-passo {
    background: var(--gt-fundo);
    border-radius: var(--gt-raio);
    margin-bottom: 20px;
    padding: 24px 28px;
}

.germer-toolkit-checkout-on .gt-passo-titulo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    cursor: pointer;
}

.germer-toolkit-checkout-on .gt-passo-numero {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--gt-divisor);
    color: var(--gt-secundario);
    font-size: 14px;
    font-weight: 600;
}

.germer-toolkit-checkout-on .gt-passo.is-aberto .gt-passo-numero {
    background: var(--gt-texto);
    color: #fff;
}

/* Só o JS fecha um passo. Sem JS os três ficam abertos e o formulário
   funciona como checkout de página única. */
.germer-toolkit-checkout-on .gt-passo.is-fechado .gt-passo-corpo {
    display: none;
}

.germer-toolkit-checkout-on .gt-passo-corpo {
    padding-top: 20px;
}

.germer-toolkit-checkout-on .gt-passo-nota {
    margin: 0 0 20px;
    color: var(--gt-secundario);
    font-size: 14px;
}

.germer-toolkit-checkout-on .form-row {
    margin-bottom: 16px;
}

.germer-toolkit-checkout-on .form-row label {
    display: block;
    margin-bottom: 6px;
    color: var(--gt-secundario);
    font-size: 13px;
}

.germer-toolkit-checkout-on .form-row .input-text,
.germer-toolkit-checkout-on .form-row select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-family: inherit;
    font-size: 15px;
    color: var(--gt-texto);
}

.germer-toolkit-checkout-on .form-row .input-text:focus,
.germer-toolkit-checkout-on .form-row select:focus {
    outline: 2px solid var(--gt-realce);
    outline-offset: 1px;
    border-color: var(--gt-realce);
}

.germer-toolkit-checkout-on .form-row.gt-invalido .input-text,
.germer-toolkit-checkout-on .form-row.woocommerce-invalid .input-text {
    border-color: #C0392B;
}

.germer-toolkit-checkout-on .gt-erro-campo {
    display: block;
    margin-top: 6px;
    color: #C0392B;
    font-size: 13px;
}

.germer-toolkit-checkout-on .gt-avancar,
.germer-toolkit-checkout-on #place_order {
    display: block;
    width: 100%;
    max-width: 420px;
    margin: 24px auto 0;
    padding: 16px 24px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-checkout-on .gt-avancar:hover,
.germer-toolkit-checkout-on #place_order:hover {
    background: var(--gt-realce-hover);
}

.germer-toolkit-checkout-on .gt-resumo {
    position: sticky;
    top: 24px;
    background: var(--gt-fundo);
    border-radius: var(--gt-raio);
    padding: 24px;
}

.germer-toolkit-checkout-on .gt-resumo h2 {
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 600;
}

.germer-toolkit-checkout-on .gt-resumo table {
    width: 100%;
    border: 0;
}

.germer-toolkit-checkout-on .gt-resumo th,
.germer-toolkit-checkout-on .gt-resumo td {
    border: 0;
    border-bottom: 1px solid var(--gt-divisor);
    padding: 10px 0;
    font-size: 14px;
    text-align: left;
}

.germer-toolkit-checkout-on .gt-resumo td {
    text-align: right;
}

.germer-toolkit-checkout-on .gt-resumo .order-total th,
.germer-toolkit-checkout-on .gt-resumo .order-total td {
    border-bottom: 0;
    font-size: 17px;
    font-weight: 600;
}

@media (max-width: 992px) {
    .germer-toolkit-checkout-on .gt-checkout-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .germer-toolkit-checkout-on .gt-resumo {
        position: static;
        order: -1;
    }
}

/* ---------- Página de obrigado ---------- */

.germer-toolkit-obrigado-on .gt-obrigado {
    max-width: 780px;
    margin: 0 auto;
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.germer-toolkit-obrigado-on .gt-obrigado section {
    background: var(--gt-fundo);
    border-radius: var(--gt-raio);
    padding: 28px;
    margin-bottom: 20px;
}

.germer-toolkit-obrigado-on .gt-obrigado-confirmacao {
    text-align: center;
}

.germer-toolkit-obrigado-on .gt-obrigado-icone {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--gt-realce);
    color: #fff;
    font-size: 26px;
    line-height: 1;
}

.germer-toolkit-obrigado-on .gt-obrigado-confirmacao h1 {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 600;
}

.germer-toolkit-obrigado-on .gt-obrigado-sub {
    margin: 0 0 24px;
    color: var(--gt-secundario);
    font-size: 15px;
}

.germer-toolkit-obrigado-on .gt-obrigado-dados {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 16px;
    margin: 0;
    padding: 20px 0 0;
    list-style: none;
    border-top: 1px solid var(--gt-divisor);
}

.germer-toolkit-obrigado-on .gt-obrigado-dados li {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.germer-toolkit-obrigado-on .gt-obrigado-dados span {
    color: var(--gt-secundario);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.germer-toolkit-obrigado-on .gt-obrigado-timeline ol {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}

.germer-toolkit-obrigado-on .gt-timeline-passo {
    position: relative;
    flex: 1 1 0;
    padding-top: 28px;
    text-align: center;
    color: var(--gt-secundario);
    font-size: 13px;
}

.germer-toolkit-obrigado-on .gt-timeline-passo::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--gt-divisor);
}

.germer-toolkit-obrigado-on .gt-timeline-passo:first-child::before {
    left: 50%;
}

.germer-toolkit-obrigado-on .gt-timeline-passo:last-child::before {
    right: 50%;
}

.germer-toolkit-obrigado-on .gt-timeline-passo.is-concluido::before,
.germer-toolkit-obrigado-on .gt-timeline-passo.is-atual::before {
    background: var(--gt-realce);
}

.germer-toolkit-obrigado-on .gt-timeline-marca {
    position: absolute;
    top: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--gt-divisor);
}

.germer-toolkit-obrigado-on .gt-timeline-passo.is-concluido .gt-timeline-marca,
.germer-toolkit-obrigado-on .gt-timeline-passo.is-atual .gt-timeline-marca {
    background: var(--gt-realce);
}

.germer-toolkit-obrigado-on .gt-timeline-passo.is-atual {
    color: var(--gt-texto);
    font-weight: 600;
}

.germer-toolkit-obrigado-on .gt-itens {
    margin: 0;
    padding: 0;
    list-style: none;
}

.germer-toolkit-obrigado-on .gt-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--gt-divisor);
}

.germer-toolkit-obrigado-on .gt-item:last-child {
    border-bottom: 0;
}

.germer-toolkit-obrigado-on .gt-item-thumb img {
    width: 64px;
    height: auto;
    border-radius: 4px;
    display: block;
}

.germer-toolkit-obrigado-on .gt-item-nome {
    flex: 1 1 auto;
    font-size: 15px;
}

.germer-toolkit-obrigado-on .gt-item-nome small {
    display: block;
    margin-top: 4px;
    color: var(--gt-secundario);
    font-size: 13px;
}

.germer-toolkit-obrigado-on .gt-item-preco {
    font-weight: 600;
}

.germer-toolkit-obrigado-on .gt-obrigado-entrega address {
    font-style: normal;
    line-height: 1.6;
}

.germer-toolkit-obrigado-on .gt-obrigado-acoes {
    text-align: center;
}

.germer-toolkit-obrigado-on .gt-obrigado-acoes .button {
    display: inline-block;
    padding: 14px 32px;
    background: transparent;
    color: var(--gt-realce);
    border: 1px solid var(--gt-realce);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    text-decoration: none;
}

@media (max-width: 600px) {
    .germer-toolkit-obrigado-on .gt-obrigado-timeline ol {
        flex-direction: column;
        gap: 16px;
    }

    .germer-toolkit-obrigado-on .gt-timeline-passo {
        padding: 0 0 0 28px;
        text-align: left;
    }

    .germer-toolkit-obrigado-on .gt-timeline-passo::before {
        display: none;
    }

    .germer-toolkit-obrigado-on .gt-timeline-marca {
        top: 4px;
        left: 0;
        transform: none;
    }
}

/* ---------- PDP ---------- */

.germer-toolkit-pdp-on .woocommerce-breadcrumb {
    font-family: Poppins, sans-serif;
    font-size: 13px;
    color: var(--gt-secundario);
    margin: 16px 0 24px;
}

.germer-toolkit-pdp-on .woocommerce-breadcrumb a {
    color: var(--gt-secundario);
    text-decoration: none;
}

.germer-toolkit-pdp-on .gt-pdp {
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.germer-toolkit-pdp-on .gt-pdp-topo {
    display: grid;
    grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
    gap: 48px;
    align-items: start;
    margin-bottom: 56px;
}

/* Galeria: razão fixa + contain para fotos de proporções variadas. O
   seletor cobre também o placeholder do Woo (produto ainda sem foto),
   que vem em .woocommerce-product-gallery__image--placeholder. */
.germer-toolkit-pdp-on .gt-pdp-galeria .woocommerce-product-gallery__wrapper img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    width: 100%;
    height: auto;
    background: #FAF9F9;
    border-radius: var(--gt-raio);
}

.germer-toolkit-pdp-on .gt-pdp-galeria .woocommerce-product-gallery--without-images {
    width: 100%;
}

/* Botões auto-injetados do JetCompareWishlist: fora do desenho da PDP.
   Escopado ao .gt-pdp — o contador de wishlist do cabeçalho usa outra
   classe (jet-wishlist-count-button) e não é afetado. */
.germer-toolkit-pdp-on .gt-pdp .jet-compare-button,
.germer-toolkit-pdp-on .gt-pdp .jet-wishlist-button {
    display: none;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-control-thumbs {
    display: flex;
    gap: 10px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-control-thumbs li {
    flex: 0 0 72px;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-control-thumbs img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    width: 100%;
    border: 1px solid var(--gt-divisor);
    border-radius: 6px;
    cursor: pointer;
    opacity: .6;
    background: #FAF9F9;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-control-thumbs img.flex-active,
.germer-toolkit-pdp-on .gt-pdp-galeria .flex-control-thumbs img:hover {
    opacity: 1;
    border-color: var(--gt-realce);
}

/* Setas do flexslider: o Woo embarca só o JS, o estilo é nosso. */
.germer-toolkit-pdp-on .gt-pdp-galeria .woocommerce-product-gallery {
    position: relative;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav {
    margin: 0;
    padding: 0;
    list-style: none;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav a {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    background: var(--gt-fundo);
    border: 1px solid var(--gt-divisor);
    border-radius: 50%;
    font-size: 0;
    text-decoration: none;
    color: var(--gt-texto);
    box-shadow: var(--gt-sombra);
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav a::before {
    font-size: 20px;
    line-height: 1;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav .flex-prev {
    left: 12px;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav .flex-prev::before {
    content: "‹";
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav .flex-next {
    right: 12px;
}

.germer-toolkit-pdp-on .gt-pdp-galeria .flex-direction-nav .flex-next::before {
    content: "›";
}

/* Coluna de compra sticky. */
.germer-toolkit-pdp-on .gt-pdp-compra {
    position: sticky;
    top: 24px;
}

.germer-toolkit-pdp-on .gt-pdp-compra .product_title {
    font-size: 26px;
    font-weight: 600;
    line-height: 1.25;
    margin: 0 0 4px;
    text-wrap: balance;
}

.germer-toolkit-pdp-on .gt-pdp-sku {
    margin: 0 0 16px;
    font-size: 12px;
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp-compra .price,
.germer-toolkit-pdp-on .gt-pdp-compra .price .woocommerce-Price-amount,
.germer-toolkit-pdp-on .gt-pdp-compra .price bdi {
    font-size: 24px;
    font-weight: 600;
    color: var(--gt-texto);
    margin: 0 0 16px;
}

.germer-toolkit-pdp-on .gt-pdp-compra .price del {
    font-size: 16px;
    font-weight: 400;
    color: var(--gt-secundario);
    margin-right: 8px;
}

.germer-toolkit-pdp-on .gt-pdp-compra .woocommerce-product-details__short-description {
    font-size: 14px;
    color: var(--gt-secundario);
    line-height: 1.6;
    margin-bottom: 16px;
}

.germer-toolkit-pdp-on .gt-pdp-resumo {
    margin: 0 0 20px;
    padding: 0 0 0 18px;
    font-size: 13px;
    color: var(--gt-secundario);
    line-height: 1.8;
}

.germer-toolkit-pdp-on .gt-pdp-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: stretch;
    margin-bottom: 20px;
}

.germer-toolkit-pdp-on .gt-pdp-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    overflow: hidden;
}

.germer-toolkit-pdp-on .gt-pdp-qty .qty {
    width: 48px;
    border: 0;
    text-align: center;
    font-family: inherit;
    font-size: 15px;
    -moz-appearance: textfield;
    appearance: textfield;
}

.germer-toolkit-pdp-on .gt-pdp-qty .qty::-webkit-outer-spin-button,
.germer-toolkit-pdp-on .gt-pdp-qty .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.germer-toolkit-pdp-on .gt-pdp-qty button {
    width: 40px;
    height: 48px;
    border: 0;
    background: transparent;
    font-size: 18px;
    cursor: pointer;
    color: var(--gt-texto);
}

.germer-toolkit-pdp-on .gt-pdp-comprar,
.germer-toolkit-pdp-on .gt-pdp-carrinho {
    flex: 1 1 100%;
    padding: 15px 24px;
    border-radius: 999px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-pdp-on .gt-pdp-qty + .gt-pdp-comprar {
    flex: 1 1 auto;
}

.germer-toolkit-pdp-on .gt-pdp-comprar {
    background: var(--gt-realce);
    color: #fff;
    border: 0;
}

.germer-toolkit-pdp-on .gt-pdp-comprar:hover {
    background: var(--gt-realce-hover);
}

.germer-toolkit-pdp-on .gt-pdp-carrinho {
    background: transparent;
    color: var(--gt-texto);
    border: 1px solid var(--gt-texto);
}

.germer-toolkit-pdp-on .gt-pdp-carrinho:hover {
    border-color: var(--gt-realce);
    color: var(--gt-realce);
}

.germer-toolkit-pdp-on .gt-pdp-carrinho:disabled {
    opacity: .6;
    cursor: wait;
}

.germer-toolkit-pdp-on .gt-pdp-esgotado {
    display: inline-block;
    margin: 0 0 20px;
    padding: 10px 20px;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    color: var(--gt-secundario);
    font-size: 14px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Frete */
.germer-toolkit-pdp-on .gt-pdp-frete {
    border-top: 1px solid var(--gt-divisor);
    padding-top: 20px;
}

.germer-toolkit-pdp-on .gt-pdp-frete label {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.germer-toolkit-pdp-on .gt-pdp-frete-linha {
    display: flex;
    gap: 8px;
}

.germer-toolkit-pdp-on .gt-pdp-frete-linha input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 11px 14px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-family: inherit;
    font-size: 14px;
}

.germer-toolkit-pdp-on .gt-pdp-frete-calcular {
    flex: 0 0 auto;
    padding: 11px 20px;
    background: var(--gt-texto);
    color: #fff;
    border: 0;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-pdp-on .gt-pdp-frete-resultado {
    margin-top: 12px;
    font-size: 14px;
}

.germer-toolkit-pdp-on .gt-pdp-frete-opcao {
    display: flex;
    gap: 8px;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 0 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--gt-divisor);
}

.germer-toolkit-pdp-on .gt-pdp-frete-opcao small {
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp-frete-erro {
    color: var(--gt-secundario);
    margin: 0;
}

/* Seções abaixo do grid */
.germer-toolkit-pdp-on .gt-pdp-descricao,
.germer-toolkit-pdp-on .gt-pdp-especificacoes {
    margin-bottom: 48px;
}

.germer-toolkit-pdp-on .gt-pdp-descricao h2,
.germer-toolkit-pdp-on .gt-pdp-especificacoes h2,
.germer-toolkit-pdp-on .gt-pdp-relacionados > h2,
.germer-toolkit-pdp-on .gt-pdp-abaixo .related > h2 {
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 20px;
}

.germer-toolkit-pdp-on .gt-pdp-descricao-texto {
    max-width: 75ch;
    font-size: 15px;
    line-height: 1.7;
    color: var(--gt-texto);
    text-wrap: pretty;
}

.germer-toolkit-pdp-on .gt-pdp-especificacoes table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.germer-toolkit-pdp-on .gt-pdp-especificacoes th,
.germer-toolkit-pdp-on .gt-pdp-especificacoes td {
    padding: 12px 16px;
    text-align: left;
    border: 0;
}

.germer-toolkit-pdp-on .gt-pdp-especificacoes th {
    width: 280px;
    font-weight: 500;
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp-especificacoes tbody tr:nth-child(odd) {
    background: #FAF9F9;
}

@media (max-width: 992px) {
    .germer-toolkit-pdp-on .gt-pdp-topo {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .germer-toolkit-pdp-on .gt-pdp-compra {
        position: static;
    }
}

/* ---------- v0.3.0 — largura, hierarquia e guerra de especificidade ----------
   O CSS do WooCommerce carrega junto com o nosso (agora antes, via deps) e
   algumas regras dele têm especificidade maior que as originais daqui
   (button.button, div.product div.images, a.button.alt). Este bloco fecha
   essas brigas com contadores explícitos e aplica o layout largo. */

/* -- Página cheia: os wrappers saem do container do tema e centram a 1240px. */
.germer-toolkit-pdp-on .gt-pdp,
.germer-toolkit-pdp-on .woocommerce-breadcrumb,
.germer-toolkit-carrinho-on .woocommerce,
.germer-toolkit-checkout-on form.gt-checkout,
.germer-toolkit-obrigado-on .gt-obrigado {
    width: min(1240px, 100vw - 48px);
    margin-left: calc(50% - min(620px, 50vw - 24px));
    margin-right: calc(50% - min(620px, 50vw - 24px));
}

body.germer-toolkit-pdp-on,
body.germer-toolkit-carrinho-on,
body.germer-toolkit-checkout-on,
body.germer-toolkit-obrigado-on {
    overflow-x: clip;
}

/* O h1 que o tema imprime acima do conteúdo é redundante nessas telas (o
   filtro hello_elementor_page_title já o remove; isto cobre outros temas). */
.germer-toolkit-carrinho-on h1.entry-title,
.germer-toolkit-carrinho-on .page-header,
.germer-toolkit-checkout-on h1.entry-title,
.germer-toolkit-checkout-on .page-header,
.germer-toolkit-obrigado-on h1.entry-title,
.germer-toolkit-obrigado-on .page-header {
    display: none;
}

/* Links dentro das telas do funil não herdam o rosa/dourado do kit. */
.germer-toolkit-carrinho-on .woocommerce a:not(.button),
.germer-toolkit-checkout-on form.gt-checkout a:not(.button),
.germer-toolkit-obrigado-on .gt-obrigado a:not(.button),
.germer-toolkit-pdp-on .gt-pdp a:not(.button) {
    color: var(--gt-texto);
    text-decoration-color: var(--gt-divisor);
}

/* ---------- Checkout: pele estilo Shopify ---------- */

body.germer-toolkit-checkout-on {
    background: #FAF9F9;
}

.germer-toolkit-checkout-on .gt-progresso {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 28px 0 20px;
    font-family: Poppins, sans-serif;
    font-size: 13px;
    color: var(--gt-secundario);
}

.germer-toolkit-checkout-on .gt-progresso a.gt-progresso-item {
    color: var(--gt-secundario);
    text-decoration: none;
}

.germer-toolkit-checkout-on .gt-progresso a.gt-progresso-item:hover {
    color: var(--gt-realce);
}

.germer-toolkit-checkout-on .gt-progresso-item[data-etapa] {
    cursor: pointer;
}

.germer-toolkit-checkout-on .gt-progresso-item.is-feita {
    color: var(--gt-texto);
}

.germer-toolkit-checkout-on .gt-progresso-item.is-atual {
    color: var(--gt-texto);
    font-weight: 600;
}

.germer-toolkit-checkout-on .gt-progresso-sep {
    color: var(--gt-divisor);
}

.germer-toolkit-checkout-on .gt-passo {
    border: 1px solid var(--gt-divisor);
}

/* Botões de avanço: contador contra .woocommerce button.button do Woo. */
.germer-toolkit-checkout-on .woocommerce button.button.gt-avancar,
.germer-toolkit-checkout-on button.gt-avancar {
    display: block;
    width: 100%;
    max-width: 420px;
    margin: 24px 0 0;
    padding: 16px 24px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-checkout-on .woocommerce button.button.gt-avancar:hover,
.germer-toolkit-checkout-on button.gt-avancar:hover {
    background: var(--gt-realce-hover);
    color: #fff;
}

/* Resumo: itens com thumbnail + badge de quantidade (estilo Shopify). */
.germer-toolkit-checkout-on .gt-resumo td.product-name {
    display: flex;
    align-items: center;
    gap: 12px;
    text-align: left;
}

.germer-toolkit-checkout-on .gt-resumo .gt-resumo-thumb {
    position: relative;
    flex: 0 0 56px;
}

.germer-toolkit-checkout-on .gt-resumo .gt-resumo-thumb img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    background: #FAF9F9;
    border: 1px solid var(--gt-divisor);
    border-radius: 8px;
    display: block;
}

.germer-toolkit-checkout-on .gt-resumo .gt-resumo-qtd {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    background: var(--gt-secundario);
    color: #fff;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.germer-toolkit-checkout-on .gt-resumo .gt-resumo-nome {
    font-size: 13px;
    line-height: 1.4;
}

.germer-toolkit-checkout-on .gt-resumo thead {
    display: none;
}

.germer-toolkit-checkout-on .gt-resumo table.shop_table,
.germer-toolkit-checkout-on .gt-resumo table.shop_table td,
.germer-toolkit-checkout-on .gt-resumo table.shop_table th {
    background: transparent;
    border-color: var(--gt-divisor);
}

/* Cupom dentro do resumo. */
.germer-toolkit-checkout-on .gt-resumo-cupom {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--gt-divisor);
}

.germer-toolkit-checkout-on .gt-resumo-cupom .input-text {
    flex: 1 1 auto;
    min-width: 0;
    padding: 11px 14px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-family: Poppins, sans-serif;
    font-size: 14px;
}

.germer-toolkit-checkout-on button.gt-resumo-cupom-aplicar {
    flex: 0 0 auto;
    padding: 11px 18px;
    background: var(--gt-texto);
    color: #fff;
    border: 0;
    border-radius: 4px;
    font-family: Poppins, sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-checkout-on .gt-resumo-cupom-msg {
    margin-top: 10px;
    font-size: 13px;
}

.germer-toolkit-checkout-on .gt-resumo-cupom-msg .woocommerce-error,
.germer-toolkit-checkout-on .gt-resumo-cupom-msg .woocommerce-message {
    margin: 0;
    padding: 10px 12px;
    font-size: 13px;
}

/* ---------- Carrinho: contadores ---------- */

/* O "CONTINUAR PAGAMENTO" roxo era o a.button.alt padrão do Woo vencendo
   por especificidade. */
.germer-toolkit-carrinho-on .woocommerce a.button.checkout-button,
.germer-toolkit-carrinho-on .woocommerce a.button.checkout-button.alt {
    display: block;
    width: 100%;
    padding: 16px 24px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .04em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
}

.germer-toolkit-carrinho-on .woocommerce a.button.checkout-button:hover,
.germer-toolkit-carrinho-on .woocommerce a.button.checkout-button.alt:hover {
    background: var(--gt-realce-hover);
    color: #fff;
}

.germer-toolkit-carrinho-on .woocommerce button.button,
.germer-toolkit-carrinho-on .woocommerce input.button {
    background: transparent;
    color: var(--gt-texto);
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    font-family: Poppins, sans-serif;
}

/* ---------- PDP: contadores e JetCW ---------- */

/* O bloco pai dos botões do JetCompareWishlist é __container — não existe
   classe pai "jet-compare-button" sozinha (por isso a v0.2.1 não os
   escondia). O contador do wishlist no cabeçalho usa
   jet-wishlist-count-button e não casa com estes seletores. */
.germer-toolkit-pdp-on .gt-pdp-topo [class*="jet-compare-button"],
.germer-toolkit-pdp-on .gt-pdp-topo [class*="jet-wishlist-button"],
.germer-toolkit-pdp-on .gt-pdp .jet-compare-message,
.germer-toolkit-carrinho-on .woocommerce [class*="jet-compare-button"],
.germer-toolkit-carrinho-on .woocommerce [class*="jet-wishlist-button"] {
    display: none !important;
}

/* woocommerce-layout dá width 48% + float às colunas do produto — dentro do
   nosso grid elas ocupam a célula inteira. */
.germer-toolkit-pdp-on .gt-pdp div.images,
.germer-toolkit-pdp-on .gt-pdp div.summary,
.germer-toolkit-pdp-on .gt-pdp .woocommerce-product-gallery {
    width: 100% !important;
    float: none !important;
    margin: 0;
}

/* Badge de oferta no padrão da casa (o círculo dourado é do Woo). */
.germer-toolkit-pdp-on .gt-pdp span.onsale {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 5px 12px;
    background: var(--gt-realce);
    color: #fff;
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    text-transform: uppercase;
}

.germer-toolkit-pdp-on .related ul.products li.product {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    position: relative;
}

/* Espaço para respirar entre o grid principal e as seções de baixo. */
.germer-toolkit-pdp-on .gt-pdp-topo {
    padding-top: 8px;
    margin-bottom: 72px;
}

.germer-toolkit-pdp-on .gt-pdp-abaixo .gt-pdp-descricao,
.germer-toolkit-pdp-on .gt-pdp-abaixo .gt-pdp-especificacoes {
    max-width: 900px;
}

/* ---------- Notices v2: toast e barras ---------- */

#germer-toolkit-toasts {
    top: 20px;
    right: 20px;
    gap: 10px;
}

#germer-toolkit-toasts .gt-toast {
    align-items: center;
    padding: 14px 14px 14px 16px;
    border: 1px solid var(--gt-divisor);
    border-left: 1px solid var(--gt-divisor);
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(9, 8, 7, .14);
    font-size: 13.5px;
    line-height: 1.5;
}

#germer-toolkit-toasts .gt-toast::before {
    width: 26px;
    height: 26px;
    font-size: 13px;
}

#germer-toolkit-toasts .gt-toast .gt-fechar {
    align-self: flex-start;
    font-size: 16px;
    padding: 2px 4px;
    border-radius: 4px;
}

#germer-toolkit-toasts .gt-toast .gt-fechar:hover {
    background: #FAF9F9;
    color: var(--gt-texto);
}

#germer-toolkit-toasts .gt-toast .button {
    margin-top: 0;
    padding: 7px 14px;
    font-size: 11px;
    white-space: nowrap;
}

/* Barras: o glifo quebrado vinha do ícone de fonte do próprio Woo; a borda
   superior colorida da v0.1 sai — borda completa fina + fundo branco. */
.germer-toolkit-notices-on .woocommerce-error::before,
.germer-toolkit-notices-on .woocommerce-info::before,
.germer-toolkit-notices-on .woocommerce-message::before {
    display: none;
    content: none;
}

.germer-toolkit-notices-on .woocommerce-error,
.germer-toolkit-notices-on .woocommerce-info,
.germer-toolkit-notices-on .woocommerce-message {
    border: 1px solid var(--gt-divisor);
    border-radius: 8px;
    background: #fff;
}

.germer-toolkit-notices-on .woocommerce-error {
    border-color: #E5C9C5;
    background: #FBF6F5;
}

.germer-toolkit-notices-on .woocommerce-error a,
.germer-toolkit-notices-on .woocommerce-info a,
.germer-toolkit-notices-on .woocommerce-message a {
    color: var(--gt-texto);
}

/* ---------- v0.3.1 — largura total, carrinho v2 e caça ao hover rosa ---------- */

/* -- Largura: 100% da viewport com padding lateral generoso (substitui o
   teto de 1240px — estas regras vêm depois e vencem as anteriores). */
.germer-toolkit-pdp-on .gt-pdp,
.germer-toolkit-pdp-on .woocommerce-breadcrumb,
.germer-toolkit-carrinho-on .woocommerce,
.germer-toolkit-checkout-on form.gt-checkout,
.germer-toolkit-obrigado-on .gt-obrigado {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: clamp(24px, 4vw, 64px);
    padding-right: clamp(24px, 4vw, 64px);
    box-sizing: border-box;
}

/* Respiro vertical: nada encosta no cabeçalho nem no rodapé. */
.germer-toolkit-pdp-on .gt-pdp,
.germer-toolkit-carrinho-on .woocommerce,
.germer-toolkit-checkout-on form.gt-checkout,
.germer-toolkit-obrigado-on .gt-obrigado {
    padding-top: 32px;
    padding-bottom: 88px;
}

.germer-toolkit-pdp-on .woocommerce-breadcrumb {
    padding-top: 24px;
    margin-bottom: 0;
}

.germer-toolkit-pdp-on .gt-pdp {
    padding-top: 16px;
}

/* O obrigado é leitura — segue largo mas com miolo centrado. */
.germer-toolkit-obrigado-on .gt-obrigado > * {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

/* ---------- Caça ao hover rosa do kit: fundo explícito em TODO estado ---------- */

.germer-toolkit-pdp-on button.gt-pdp-carrinho:hover,
.germer-toolkit-pdp-on button.gt-pdp-carrinho:focus {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

.germer-toolkit-pdp-on .related ul.products a.button:hover,
.germer-toolkit-pdp-on .related ul.products .button:hover,
.germer-toolkit-pdp-on .related ul.products a.button:focus,
.germer-toolkit-pdp-on .related ul.products .button:focus {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

.germer-toolkit-pdp-on .gt-pdp-frete-calcular:hover,
.germer-toolkit-checkout-on button.gt-resumo-cupom-aplicar:hover {
    background: var(--gt-secundario);
    color: #fff;
}

.germer-toolkit-carrinho-on .woocommerce button.button:hover,
.germer-toolkit-carrinho-on .woocommerce input.button:hover,
.germer-toolkit-carrinho-on .gt-cupom-form .button:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

.germer-toolkit-carrinho-on .return-to-shop .button:hover {
    background: var(--gt-realce-hover);
    color: #fff;
}

/* ---------- Carrinho v2 ---------- */

.germer-toolkit-carrinho-on .woocommerce {
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 40px;
}

/* O vão à esquerda era o wrapper de notices ocupando a célula 1 da grade. */
.germer-toolkit-carrinho-on .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
    grid-row: 1;
}

.germer-toolkit-carrinho-on .woocommerce-notices-wrapper:empty {
    display: none;
}

.germer-toolkit-carrinho-on .woocommerce-cart-form {
    grid-column: 1;
    grid-row: 2;
    padding: 0;
}

.germer-toolkit-carrinho-on .cart-collaterals {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: 24px;
    border: 1px solid var(--gt-divisor);
    border-radius: 12px;
    padding: 24px;
}

/* Linhas de totais sem a zebra/fundos do Woo. */
.germer-toolkit-carrinho-on .cart_totals table.shop_table,
.germer-toolkit-carrinho-on .cart_totals table.shop_table th,
.germer-toolkit-carrinho-on .cart_totals table.shop_table td,
.germer-toolkit-carrinho-on .cart_totals table.shop_table tr {
    background: transparent;
    border-left: 0;
    border-right: 0;
}

.germer-toolkit-carrinho-on .cart_totals th {
    font-weight: 500;
    color: var(--gt-secundario);
}

/* Linha de envio: texto corrido legível, alinhado à esquerda. */
.germer-toolkit-carrinho-on .cart_totals .woocommerce-shipping-totals td {
    text-align: left;
    font-size: 13px;
    line-height: 1.55;
    color: var(--gt-secundario);
}

.germer-toolkit-carrinho-on .woocommerce-shipping-destination {
    margin: 6px 0 0;
}

.germer-toolkit-carrinho-on .shipping-calculator-button {
    display: inline-block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gt-texto);
}

/* O X vermelho de remover é !important no core do Woo — contador à altura. */
.germer-toolkit-carrinho-on a.remove {
    color: var(--gt-secundario) !important;
    background: transparent !important;
    font-size: 20px;
    font-weight: 400;
}

.germer-toolkit-carrinho-on a.remove:hover {
    color: var(--gt-realce) !important;
    background: transparent !important;
}

.germer-toolkit-carrinho-on .shop_table .product-name a {
    font-weight: 500;
}

/* Botão principal do card a 100%, com margem de respiro. */
.germer-toolkit-carrinho-on .wc-proceed-to-checkout {
    padding: 8px 0 0;
    margin: 0;
}

/* ---------- Checkout: harmonia dos campos e botões 100% ---------- */

/* Botões de avanço e finalizar a 100% da coluna (vence o max-width anterior). */
.germer-toolkit-checkout-on .woocommerce button.button.gt-avancar,
.germer-toolkit-checkout-on button.gt-avancar,
.germer-toolkit-checkout-on #place_order {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

/* "Detalhes de cobrança" é redundante dentro de "Dados pessoais". */
.germer-toolkit-checkout-on .woocommerce-billing-fields > h3 {
    display: none;
}

/* As duas colunas do Woo empilham — o passo já organiza o fluxo. */
.germer-toolkit-checkout-on .col2-set .col-1,
.germer-toolkit-checkout-on .col2-set .col-2 {
    width: 100%;
    float: none;
    padding: 0;
}

/* "Entregar em um endereço diferente?" vira uma linha de toggle discreta. */
.germer-toolkit-checkout-on h3#ship-to-different-address {
    margin: 16px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--gt-divisor);
    font-size: 15px;
    font-weight: 500;
    color: var(--gt-texto);
    text-transform: none;
    letter-spacing: 0;
}

.germer-toolkit-checkout-on h3#ship-to-different-address label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
    font-size: 15px;
    font-weight: 500;
}

.germer-toolkit-checkout-on h3#ship-to-different-address input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--gt-realce);
}

/* Aviso de envio do passo 2: caixa de notice, não texto solto. */
.germer-toolkit-checkout-on .gt-passo-entrega-metodos .woocommerce-shipping-totals {
    display: block;
    margin: 4px 0 8px;
    padding: 14px 16px;
    background: #FAF9F9;
    border: 1px solid var(--gt-divisor);
    border-radius: 8px;
}

.germer-toolkit-checkout-on .gt-passo-entrega-metodos .woocommerce-shipping-totals th {
    display: none;
}

.germer-toolkit-checkout-on .gt-passo-entrega-metodos .woocommerce-shipping-totals td {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 14px;
    line-height: 1.6;
    color: var(--gt-texto);
}

/* Métodos de frete quando existem: lista de rádios limpa. */
.germer-toolkit-checkout-on ul#shipping_method {
    margin: 0;
    padding: 0;
    list-style: none;
}

.germer-toolkit-checkout-on ul#shipping_method li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    margin: 0;
}

.germer-toolkit-checkout-on ul#shipping_method input[type="radio"] {
    accent-color: var(--gt-realce);
}

.germer-toolkit-checkout-on ul#shipping_method label {
    margin: 0;
    font-size: 14px;
    cursor: pointer;
}

/* ---------- Cards de relacionados: alturas iguais ---------- */

.germer-toolkit-pdp-on .related ul.products {
    align-items: stretch;
}

.germer-toolkit-pdp-on .related ul.products li.product {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Título sempre com a altura de 2 linhas — excesso vira reticências. */
.germer-toolkit-pdp-on .related .woocommerce-loop-product__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(2 * 1.45em);
    line-height: 1.45;
    margin: 0 0 6px;
}

.germer-toolkit-pdp-on .related ul.products li.product .price {
    margin: 0 0 4px;
}

/* O botão ancora na base do card, todos na mesma linha. */
.germer-toolkit-pdp-on .related ul.products li.product .button {
    margin-top: auto;
}

.germer-toolkit-pdp-on .related ul.products li.product > a:first-child {
    display: block;
    width: 100%;
}

/* Promoção nos cards: riscado discreto, preço atual firme, sem sublinhado. */
.germer-toolkit-pdp-on .related .price del {
    color: var(--gt-secundario);
    font-weight: 400;
    margin-right: 6px;
}

.germer-toolkit-pdp-on .related .price ins {
    text-decoration: none;
    font-weight: 600;
}

/* ---------- v0.3.2 — proporção dos botões dos cards ---------- */

/* Largura única e fixa dentro do card: o rótulo deixa de ditar o tamanho
   ("LER MAIS" e "ADICIONAR AO CARRINHO" saem iguais), e o botão ganha
   altura e tipo à altura do card. */
.germer-toolkit-pdp-on .related ul.products li.product .button {
    width: 100%;
    max-width: 240px;
    box-sizing: border-box;
    padding: 12px 16px;
    font-size: 13px;
    text-align: center;
}

/* ---------- v0.4.0 — Grade de produtos (widget) ---------- */

.gt-grade {
    display: grid;
    grid-template-columns: repeat(var(--gt-grade-cols, 4), minmax(0, 1fr));
    gap: 28px;
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

@media (max-width: 1024px) {
    .gt-grade {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .gt-grade {
        grid-template-columns: minmax(0, 1fr);
    }
}

.gt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.gt-card-midia {
    display: block;
    position: relative;
    width: 100%;
    margin-bottom: 14px;
}

.gt-card-midia img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    width: 100%;
    height: auto;
    background: #FAF9F9;
    border-radius: var(--gt-raio);
    display: block;
}

.gt-card .gt-card-oferta {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 5px 12px;
    background: var(--gt-realce);
    color: #fff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    text-transform: uppercase;
}

/* Coração JetCW: círculo branco sobre a imagem. Labels vazios somem. */
.gt-card-coracao {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
}

.gt-card-coracao .jet-wishlist-button__link {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    background: #fff;
    border: 1px solid var(--gt-divisor);
    border-radius: 50%;
    box-shadow: 0 2px 10px rgba(9, 8, 7, .08);
    color: var(--gt-texto);
    text-decoration: none;
}

.gt-card-coracao .jet-wishlist-button__link:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

.gt-card-coracao .jet-wishlist-button__link.added-to-wishlist {
    color: var(--gt-realce);
}

.gt-card-coracao .jet-wishlist-button__label:empty {
    display: none;
}

.gt-card-coracao .jet-cw-icon svg {
    display: block;
}

/* Dentro do escopo da PDP, os corações do CARD ficam — a regra que esconde
   os botões auto-injetados do JetCW não vale para .gt-card. */
.germer-toolkit-pdp-on .gt-card .gt-card-coracao a.jet-wishlist-button__link {
    display: grid !important;
}

.gt-card-titulo {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(2 * 1.45em);
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.45;
}

.gt-card-titulo a {
    color: var(--gt-texto);
    text-decoration: none;
}

.gt-card-titulo a:hover {
    color: var(--gt-realce);
}

.gt-card-preco {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 600;
}

.gt-card-preco del {
    color: var(--gt-secundario);
    font-weight: 400;
    margin-right: 6px;
}

.gt-card-preco ins {
    text-decoration: none;
    font-weight: 600;
}

/* CTA: sólido para comprar, contorno para "Ver produto". Fundo explícito em
   todos os estados — o kit pinta hover de rosa. */
a.gt-card-btn,
.gt-card a.gt-card-btn.button {
    display: block;
    width: 100%;
    max-width: 240px;
    box-sizing: border-box;
    margin-top: auto;
    padding: 13px 16px;
    background: var(--gt-realce);
    color: #fff;
    border: 1px solid var(--gt-realce);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

a.gt-card-btn:hover,
.gt-card a.gt-card-btn.button:hover {
    background: var(--gt-realce-hover);
    color: #fff;
    border-color: var(--gt-realce-hover);
}

a.gt-card-btn.gt-card-btn--ver {
    background: transparent;
    color: var(--gt-texto);
    border-color: var(--gt-texto);
}

a.gt-card-btn.gt-card-btn--ver:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

a.gt-card-btn.gt-card-btn--esgotado {
    background: transparent;
    color: var(--gt-secundario);
    border-color: var(--gt-secundario);
}

a.gt-card-btn.gt-card-btn--esgotado:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

/* "Ver carrinho" que o Woo injeta após o add AJAX. */
.gt-card .added_to_cart {
    margin-top: 8px;
    font-size: 12px;
    color: var(--gt-secundario);
}

.gt-grade-contagem {
    margin: 0 0 16px;
    font-family: Poppins, sans-serif;
    font-size: 13px;
    color: var(--gt-secundario);
}

.gt-grade-vazia {
    padding: 32px 0;
    text-align: center;
    color: var(--gt-secundario);
    font-family: Poppins, sans-serif;
}

/* Paginação do modo arquivo. */
.gt-grade-paginacao .woocommerce-pagination {
    margin-top: 40px;
    text-align: center;
    font-family: Poppins, sans-serif;
}

.gt-grade-paginacao .woocommerce-pagination ul.page-numbers {
    display: inline-flex;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

.gt-grade-paginacao .woocommerce-pagination ul.page-numbers li {
    border: 0;
}

.gt-grade-paginacao .page-numbers li .page-numbers {
    display: grid;
    place-items: center;
    min-width: 40px;
    height: 40px;
    padding: 0 8px;
    background: transparent;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    color: var(--gt-texto);
    font-size: 14px;
    text-decoration: none;
}

.gt-grade-paginacao .page-numbers li .page-numbers:hover {
    background: #FFF3EC;
    border-color: var(--gt-realce);
    color: var(--gt-realce);
}

.gt-grade-paginacao .page-numbers li .page-numbers.current {
    background: var(--gt-texto);
    border-color: var(--gt-texto);
    color: #fff;
}

/* ---------- v0.4.0 — PDP: formulário de variações ---------- */

.germer-toolkit-pdp-on .gt-pdp .variations_form table.variations {
    width: 100%;
    margin: 0 0 8px;
    border: 0;
    border-collapse: collapse;
    background: transparent;
}

.germer-toolkit-pdp-on .gt-pdp .variations_form table.variations th,
.germer-toolkit-pdp-on .gt-pdp .variations_form table.variations td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
}

.germer-toolkit-pdp-on .gt-pdp .variations_form table.variations th.label {
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp .variations_form table.variations td.value {
    margin-bottom: 16px;
}

.germer-toolkit-pdp-on .gt-pdp .variations_form select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    background: #fff;
    font-family: Poppins, sans-serif;
    font-size: 15px;
    color: var(--gt-texto);
}

.germer-toolkit-pdp-on .gt-pdp .variations_form select:focus {
    outline: 2px solid var(--gt-realce);
    outline-offset: 1px;
    border-color: var(--gt-realce);
}

.germer-toolkit-pdp-on .gt-pdp .reset_variations {
    font-size: 13px;
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp .woocommerce-variation-price .price {
    font-size: 22px;
    font-weight: 600;
    color: var(--gt-texto);
}

.germer-toolkit-pdp-on .gt-pdp .woocommerce-variation-availability {
    font-size: 13px;
    color: var(--gt-secundario);
}

.germer-toolkit-pdp-on .gt-pdp .single_variation_wrap .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: stretch;
    margin-top: 16px;
}

/* Stepper nativo/Quantity Plus Minus no visual pílula do toolkit. */
.germer-toolkit-pdp-on .gt-pdp .variations_form .quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.germer-toolkit-pdp-on .gt-pdp .variations_form .quantity .qty {
    width: 48px;
    border: 0;
    text-align: center;
    font-family: Poppins, sans-serif;
    font-size: 15px;
    background: transparent;
}

.germer-toolkit-pdp-on .gt-pdp .variations_form .quantity button,
.germer-toolkit-pdp-on .gt-pdp .variations_form .quantity .plus,
.germer-toolkit-pdp-on .gt-pdp .variations_form .quantity .minus {
    width: 40px;
    height: 48px;
    border: 0;
    background: transparent;
    color: var(--gt-texto);
    cursor: pointer;
    font-size: 16px;
}

/* Quantity Plus Minus (plugin ativo no site): os botões −/+ são IRMÃOS de
   .quantity dentro de .qib-button-wrapper — a pílula é o wrapper. */
.germer-toolkit-pdp-on .gt-pdp .qib-button-wrapper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.germer-toolkit-pdp-on .gt-pdp .qib-button-wrapper .quantity {
    border: 0;
    border-radius: 0;
    background: transparent;
    margin: 0;
}

.germer-toolkit-pdp-on .gt-pdp .qib-button-wrapper button.qib-button {
    width: 40px;
    height: 48px;
    border: 0;
    background: transparent;
    color: var(--gt-texto);
    cursor: pointer;
    font-size: 16px;
    font-family: Poppins, sans-serif;
}

.germer-toolkit-pdp-on .gt-pdp .qib-button-wrapper button.qib-button:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
}

.germer-toolkit-pdp-on .gt-pdp .qib-button-wrapper .qty {
    width: 48px;
    border: 0;
    text-align: center;
    background: transparent;
    font-family: Poppins, sans-serif;
    font-size: 15px;
}

/* Contador contra o .button.alt roxo do Woo — fundo explícito também no
   hover (o kit pinta de rosa). */
.germer-toolkit-pdp-on .gt-pdp .woocommerce button.button.single_add_to_cart_button,
.germer-toolkit-pdp-on .gt-pdp button.single_add_to_cart_button {
    flex: 1 1 auto;
    padding: 15px 24px;
    background: var(--gt-realce);
    color: #fff;
    border: 0;
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-pdp-on .gt-pdp .woocommerce button.button.single_add_to_cart_button:hover,
.germer-toolkit-pdp-on .gt-pdp button.single_add_to_cart_button:hover {
    background: var(--gt-realce-hover);
    color: #fff;
}

.germer-toolkit-pdp-on .gt-pdp button.single_add_to_cart_button.disabled,
.germer-toolkit-pdp-on .gt-pdp button.single_add_to_cart_button:disabled,
.germer-toolkit-pdp-on .gt-pdp button.button.alt.single_add_to_cart_button.disabled,
.germer-toolkit-pdp-on .gt-pdp .woocommerce button.button.alt.single_add_to_cart_button.disabled {
    background: var(--gt-realce);
    color: #fff;
    opacity: .45;
    cursor: not-allowed;
}

/* Carrinho: mesma correção do markup irmão do Quantity Plus Minus. */
.germer-toolkit-carrinho-on .qib-button-wrapper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.germer-toolkit-carrinho-on .qib-button-wrapper .quantity {
    border: 0;
    border-radius: 0;
    background: transparent;
    margin: 0;
}

.germer-toolkit-carrinho-on .qib-button-wrapper button.qib-button {
    width: 34px;
    height: 38px;
    border: 0;
    background: transparent;
    color: var(--gt-texto);
    cursor: pointer;
    font-size: 15px;
}

.germer-toolkit-carrinho-on .qib-button-wrapper button.qib-button:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
}

/* ---------- v0.4.1 — coração do card v2 e modo slide ---------- */

/* O CSS do JetCW pinta "planos" absolutos dentro do link (azul #6ec1e4 no
   normal, cinza #54595f no adicionado) e mete padding 10px 15px + margens
   no ícone — era isso o círculo azul e o quadrado cinza. Aqui os planos
   morrem e o botão vira só o círculo branco com o coração. */
.gt-card-coracao .jet-wishlist-button__link {
    padding: 0;
}

.gt-card-coracao .jet-wishlist-button__plane,
.gt-card-coracao .jet-wishlist-button__plane-normal,
.gt-card-coracao .jet-wishlist-button__plane-added {
    display: none !important;
    background: transparent !important;
}

.gt-card-coracao .jet-wishlist-button__icon {
    margin: 0;
    display: grid;
    place-items: center;
}

.gt-card-coracao .jet-wishlist-button__state {
    color: var(--gt-texto);
}

/* Adicionado: coração cheio laranja, borda acompanha. */
.gt-card-coracao .jet-wishlist-button__state-added {
    color: var(--gt-realce);
}

.gt-card-coracao .jet-wishlist-button__link.added-to-wishlist {
    border-color: var(--gt-realce);
    background: #FFF3EC;
}

/* ---------- Modo slide ---------- */

.gt-grade-slide {
    position: relative;
}

.gt-grade--slide {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}

.gt-grade--slide::-webkit-scrollbar {
    display: none;
}

.gt-grade--slide .gt-card {
    flex: 0 0 calc((100% - 28px * (var(--gt-grade-cols, 4) - 1)) / var(--gt-grade-cols, 4));
    scroll-snap-align: start;
}

@media (max-width: 1024px) {
    .gt-grade--slide .gt-card {
        flex-basis: calc((100% - 28px) / 2);
    }
}

@media (max-width: 560px) {
    .gt-grade--slide .gt-card {
        flex-basis: 82%;
    }
}

/* Seletor com peso extra: o editor do Elementor (e qualquer CSS carregado
   depois) repinta `button` genérico; (0,2,1) garante o círculo branco. */
.gt-grade-slide button.gt-grade-seta {
    position: absolute;
    top: 38%;
    transform: translateY(-50%);
    z-index: 2;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    background: var(--gt-fundo);
    border: 1px solid var(--gt-divisor);
    border-radius: 50%;
    box-shadow: 0 2px 12px rgba(9, 8, 7, .10);
    color: var(--gt-texto);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    font-family: Poppins, sans-serif;
}

.gt-grade-slide button.gt-grade-seta:hover {
    background: #FFF3EC;
    color: var(--gt-realce);
    border-color: var(--gt-realce);
}

.gt-grade-slide button.gt-grade-seta--ant {
    left: -8px;
}

.gt-grade-slide button.gt-grade-seta--prox {
    right: -8px;
}

.gt-grade-slide--sem-setas button.gt-grade-seta {
    display: none;
}

/* No toque, a rolagem é o gesto natural — as setas saem do caminho. */
@media (max-width: 768px) {
    .gt-grade-slide button.gt-grade-seta {
        display: none;
    }
}

/* ---------- v0.5.0 — âncora do JetSmartFilters ---------- */

.gt-grade-slot {
    display: block;
    position: relative;
}

.gt-grade-area {
    display: block;
    position: relative;
}

/* ---------- v0.6.0 — WhatsApp flutuante ---------- */

.gt-zap {
    position: fixed;
    right: 22px;
    bottom: calc(22px + env(safe-area-inset-bottom, 0px));
    z-index: 9990; /* abaixo do drawer do sidecart (9999) e do overlay (9998); bem abaixo dos toasts (99999) */
    display: flex;
    flex-direction: column-reverse; /* DOM traz o fab antes do menu (ordem de foco/leitura); a inversão mantém o menu acima do fab visualmente */
    align-items: flex-end;
    gap: 12px;
    font-family: Poppins, sans-serif;
}

/* Seletores com peso extra (0,2,1): CSS carregado depois do nosso que
   repinte `button`/`a` genérico não pode vencer o visual do FAB/menu. */
.gt-zap button.gt-zap-fab {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    padding: 0;
    background: #25D366; /* verde da marca WhatsApp — contido no FAB */
    color: #fff;
    border: 0;
    border-radius: 50%;
    box-shadow: 0 6px 20px rgba(9, 8, 7, .22);
    cursor: pointer;
}

.gt-zap button.gt-zap-fab:hover {
    background: #1EBE5B;
    color: #fff;
}

.gt-zap button.gt-zap-fab:focus-visible {
    outline: 3px solid var(--gt-texto);
    outline-offset: 2px;
}

.gt-zap-menu {
    width: min(320px, calc(100vw - 44px));
    background: var(--gt-fundo);
    border: 1px solid var(--gt-divisor);
    border-radius: 14px;
    box-shadow: 0 12px 36px rgba(9, 8, 7, .18);
    padding: 16px;
    animation: gt-zap-entra .18s ease-out;
}

.gt-zap-menu-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    color: var(--gt-texto);
    font-size: 15px;
}

.gt-zap button.gt-zap-fechar {
    background: none;
    border: 0;
    padding: 2px 6px;
    font-size: 18px;
    line-height: 1;
    color: var(--gt-secundario);
    cursor: pointer;
    border-radius: 4px;
}

.gt-zap button.gt-zap-fechar:hover {
    background: #FAF9F9;
    color: var(--gt-texto);
}

.gt-zap a.gt-zap-canal {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    margin-bottom: 8px;
    border: 1px solid var(--gt-divisor);
    border-radius: 10px;
    text-decoration: none;
    color: var(--gt-texto);
    background: var(--gt-fundo);
}

.gt-zap a.gt-zap-canal:last-child {
    margin-bottom: 0;
}

.gt-zap a.gt-zap-canal:hover {
    background: #F1FBF4;
    border-color: #25D366;
    color: var(--gt-texto);
}

.gt-zap-canal-rotulo {
    font-size: 14px;
    font-weight: 500;
}

.gt-zap-canal-numero {
    font-size: 12.5px;
    color: var(--gt-secundario);
}

@keyframes gt-zap-entra {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .gt-zap-menu {
        animation: none;
    }
}

/* ---------- v0.8.0 — Carrinho v3 ---------- */

/* Mesmo chão do checkout: cards brancos sobre o cinza-quente do funil. */
body.germer-toolkit-carrinho-on {
    background: #FAF9F9;
}

.germer-toolkit-carrinho-on .woocommerce-cart-form {
    padding: 8px 28px 28px;
}

/* O sticky do card já vem da v2; aqui só o teto — com a calculadora aberta
   o card pode passar da viewport e esconder o "Continuar pagamento". */
@media (min-width: 993px) {
    .germer-toolkit-carrinho-on .cart-collaterals {
        max-height: calc(100vh - 48px);
        overflow-y: auto;
    }
}

/* O × do Woo é vermelho com !important no core — contador à altura.
   Hover em pílula neutra de propósito: laranja é a cor de CTA da loja,
   não de ação destrutiva. */
.germer-toolkit-carrinho-on .product-remove a.remove {
    display: inline-block;
    width: 28px;
    height: 28px;
    line-height: 28px;
    text-align: center;
    border-radius: 999px;
    color: var(--gt-secundario) !important;
    background: transparent !important;
    font-weight: 400;
}

.germer-toolkit-carrinho-on .product-remove a.remove:hover {
    color: var(--gt-texto) !important;
    background: #F1F0EF !important;
}

/* Linha de ações da tabela: só o botão de atualizar (o cupom nativo já é
   escondido pela v0.3); com JS ativo nem ele — a quantidade atualiza só. */
.germer-toolkit-carrinho-on .shop_table .actions {
    padding: 14px 8px 4px;
    border-bottom: 0;
    text-align: right;
}

.germer-toolkit-carrinho-on .shop_table .actions button[name="update_cart"] {
    padding: 10px 18px;
    background: transparent;
    color: var(--gt-texto);
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    font-size: 13px;
    font-family: Poppins, sans-serif;
    cursor: pointer;
}

.germer-toolkit-carrinho-on .shop_table .actions button[name="update_cart"]:hover {
    background: #F1F0EF;
    color: var(--gt-texto);
}

.germer-toolkit-carrinho-on .shop_table .actions button[name="update_cart"]:disabled {
    opacity: .45;
    cursor: default;
    background: transparent;
}

body.gt-carrinho-js.germer-toolkit-carrinho-on .shop_table .actions button[name="update_cart"] {
    display: none;
}

/* Com o botão escondido, a linha de ações não vira faixa vazia. */
body.gt-carrinho-js.germer-toolkit-carrinho-on .shop_table .actions {
    padding: 0;
}

/* Entrega: a calculadora vive DENTRO da célula de envio dos totais (DOM
   real do Woo) — a pele organiza o miolo da célula, sem grid. */
.germer-toolkit-carrinho-on .cart_totals tr.shipping th {
    vertical-align: top;
}

.germer-toolkit-carrinho-on .woocommerce-shipping-may-be-available-html,
.germer-toolkit-carrinho-on .woocommerce-shipping-destination {
    display: block;
    font-size: 13px;
    color: var(--gt-secundario);
    margin-bottom: 8px;
}

.germer-toolkit-carrinho-on a.shipping-calculator-button {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: var(--gt-texto);
    text-decoration: underline;
    text-decoration-color: var(--gt-divisor);
    text-underline-offset: 3px;
}

.germer-toolkit-carrinho-on .shipping-calculator-form {
    margin-top: 12px;
}

/* Cobre os .form-row e também o <p> sem classe que embrulha o botão. */
.germer-toolkit-carrinho-on .shipping-calculator-form p {
    margin: 0 0 10px;
    padding: 0;
}

.germer-toolkit-carrinho-on .shipping-calculator-form label {
    display: block;
    font-size: 12px;
    color: var(--gt-secundario);
    margin-bottom: 4px;
}

.germer-toolkit-carrinho-on .shipping-calculator-form .input-text,
.germer-toolkit-carrinho-on .shipping-calculator-form select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--gt-divisor);
    border-radius: 6px;
    background: var(--gt-fundo);
    font-size: 14px;
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

/* O Woo troca os selects por select2 — pele mínima para não destoar. */
.germer-toolkit-carrinho-on .select2-container .select2-selection--single {
    height: auto;
    padding: 8px 12px;
    border: 1px solid var(--gt-divisor);
    border-radius: 6px;
    background: var(--gt-fundo);
}

.germer-toolkit-carrinho-on .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 1.4;
    padding: 0;
    color: var(--gt-texto);
    font-size: 14px;
}

.germer-toolkit-carrinho-on .select2-container .select2-selection--single .select2-selection__arrow {
    height: 100%;
}

.germer-toolkit-carrinho-on .shipping-calculator-form button {
    width: 100%;
    padding: 12px 16px;
    background: transparent;
    color: var(--gt-texto);
    border: 1px solid var(--gt-texto);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    font-family: Poppins, sans-serif;
    letter-spacing: .03em;
    text-transform: uppercase;
    cursor: pointer;
}

.germer-toolkit-carrinho-on .shipping-calculator-form button:hover {
    background: var(--gt-texto);
    color: #fff;
}

/* Recomendação é papel do sidecart e da grade — cross-sells não disputam
   o card de resumo. */
.germer-toolkit-carrinho-on .cart-collaterals .cross-sells {
    display: none;
}

/* Mobile: tabela empilhada do Woo (thead some, td vira bloco com rótulo
   via data-title) com respiro e ações discretas. */
@media (max-width: 768px) {
    .germer-toolkit-carrinho-on .woocommerce-cart-form {
        padding: 4px 16px 16px;
    }

    .germer-toolkit-carrinho-on .shop_table td {
        padding: 10px 8px;
    }

    .germer-toolkit-carrinho-on .shop_table .actions {
        text-align: center;
    }

    .germer-toolkit-carrinho-on .cart-collaterals {
        position: static;
        padding: 20px 16px;
    }
}

/* ---------- v0.9.0 — Ordenação do JetSmartFilters com pele da casa ---------- */

/* Progressivo: o select nativo só sai de cena depois que a pele montou
   (classe adicionada pelo JS) — sem JS a ordenação nativa fica de pé. */
.jet-sorting.gt-ordenar-pronta {
    position: relative;
    display: inline-block;
    font-family: Poppins, sans-serif;
}

.gt-ordenar-pronta .jet-sorting-select {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
}

.gt-ordenar-pronta .jet-sorting-label {
    display: none; /* o rótulo entra no gatilho, via JS */
}

/* Gatilho flat de propósito: sem caixa, só texto+ícone (pedido do design).
   Peso (0,2,1) + estados explícitos: nada carregado depois repinta. */
.jet-sorting button.gt-ordenar-gatilho {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-family: Poppins, sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .3px;
    text-transform: uppercase;
    color: var(--gt-texto);
    user-select: none;
}

.jet-sorting button.gt-ordenar-gatilho:hover,
.jet-sorting button.gt-ordenar-gatilho:focus {
    background: transparent;
    color: var(--gt-texto);
}

.jet-sorting button.gt-ordenar-gatilho:focus-visible {
    outline: 2px solid var(--gt-texto);
    outline-offset: 3px;
}

.gt-ordenar-seta {
    margin-left: 4px;
    font-size: 11px;
    transition: transform .2s ease;
}

.gt-ordenar-gatilho--aberto .gt-ordenar-seta {
    transform: rotate(180deg);
}

.gt-ordenar-lista {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    min-width: 220px;
    background: var(--gt-fundo);
    border: 1px solid var(--gt-divisor);
    border-radius: var(--gt-raio);
    box-shadow: 0 8px 24px rgba(9, 8, 7, .12);
    padding: 6px 0;
    z-index: 120; /* acima do conteúdo da página; bem abaixo dos overlays (9990+) */
    display: none;
}

.gt-ordenar-lista--aberta {
    display: block;
}

.gt-ordenar-lista button.gt-ordenar-item {
    display: block;
    width: 100%;
    padding: 10px 16px;
    background: transparent;
    border: 0;
    text-align: left;
    font-family: Poppins, sans-serif;
    font-size: 14px;
    color: var(--gt-texto);
    cursor: pointer;
}

.gt-ordenar-lista button.gt-ordenar-item:hover,
.gt-ordenar-lista button.gt-ordenar-item:focus {
    background: #F1F0EF;
    color: var(--gt-texto);
}

.gt-ordenar-lista button.gt-ordenar-item.gt-ordenar-item--ativo {
    background: #FAF9F9;
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .gt-ordenar-seta {
        transition: none;
    }
}

/* ---------- v0.9.0 — Carrinho: polimento sobre o site vivo ---------- */

/* O hover de linha do reset.css do Hello pinta as células de cinza — na
   tabela do carrinho parece zebra quebrada. Fora. */
.germer-toolkit-carrinho-on .shop_table tbody tr:hover > td,
.germer-toolkit-carrinho-on .shop_table tbody tr:hover > th {
    background-color: transparent;
}

/* Zebra do woocommerce-smallscreen no mobile, idem. */
.germer-toolkit-carrinho-on table.shop_table_responsive tr:nth-child(2n) td {
    background-color: transparent;
}

/* A margem inferior nativa da tabela do Woo abria um vão dentro do card. */
.germer-toolkit-carrinho-on .woocommerce-cart-form table.shop_table {
    margin: 0;
}

/* O ::after do Woo põe um glifo da icon-font "WooCommerce" que este tema
   não carrega — aparecia um quadrado quebrado ao lado de "Calcular
   entrega". Especificidade (0,3,0) empata com a regra do Woo e vence por
   ordem (o toolkit carrega depois, via deps). */
.germer-toolkit-carrinho-on.woocommerce-cart .cart-collaterals .shipping-calculator-button::after {
    content: none;
}

/* Totais como linhas flex (rótulo à esquerda, valor à direita) — e a linha
   de envio vira bloco: na geometria de tabela a calculadora ficava
   espremida na coluna estreita dos valores. */
.germer-toolkit-carrinho-on .cart_totals table.shop_table,
.germer-toolkit-carrinho-on .cart_totals table.shop_table tbody {
    display: block;
    width: 100%;
}

.germer-toolkit-carrinho-on .cart_totals table.shop_table tr {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.germer-toolkit-carrinho-on .cart_totals table.shop_table tr.shipping {
    display: block;
}

/* display:block no tr NÃO blockifica as células (só o flex faz isso) — o
   motor recriaria uma linha anônima e th/td voltariam a ficar lado a lado. */
.germer-toolkit-carrinho-on .cart_totals table.shop_table tr.shipping th,
.germer-toolkit-carrinho-on .cart_totals table.shop_table tr.shipping td {
    display: block;
}

/* As células viram flex items — o td flexível mantém o valor à direita
   (text-align da v2) e no mobile evita o encolhimento ao content-size. */
.germer-toolkit-carrinho-on .cart_totals table.shop_table tr > td {
    flex: 1;
}

.germer-toolkit-carrinho-on .cart_totals tr.shipping th {
    padding-bottom: 0;
}

.germer-toolkit-carrinho-on .cart_totals tr.shipping td {
    width: 100%;
    text-align: left !important; /* o smallscreen do Woo força right com !important */
}

/* O traço do total passa a viver na LINHA (as células viraram flex items —
   um border-top por célula quebraria no meio, no gap). */
.germer-toolkit-carrinho-on .cart_totals table.shop_table tr.order-total {
    border-top: 1px solid var(--gt-divisor);
    padding-top: 8px;
}

.germer-toolkit-carrinho-on .cart_totals .order-total th,
.germer-toolkit-carrinho-on .cart_totals .order-total td {
    border-top: 0;
    padding-top: 8px;
}

/* Frete calculado: o Woo injeta os métodos como radios na mesma célula —
   pele para não caírem no default (text-indent negativo) do core. */
.germer-toolkit-carrinho-on .cart_totals ul#shipping_method {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.germer-toolkit-carrinho-on .cart_totals ul#shipping_method li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 8px;
    padding: 0;
    text-indent: 0;
    font-size: 13.5px;
}

.germer-toolkit-carrinho-on .cart_totals ul#shipping_method li input[type="radio"] {
    accent-color: var(--gt-realce);
    margin: 0;
    flex-shrink: 0;
    align-self: center;
}

.germer-toolkit-carrinho-on .cart_totals ul#shipping_method li label {
    margin: 0;
    color: var(--gt-texto);
}

/* ---------- v0.9.0 — PDP: simulador do Frenet fora de cena ---------- */

/* O Frenet injeta o próprio #shipping-simulator na coluna de compra; o
   bloco de CEP do toolkit já faz esse papel (e agora com as tarifas do
   Frenet respondendo) — dois calculadores só confundem. */
.germer-toolkit-pdp-on #shipping-simulator {
    display: none;
}

/* ---------- v0.10.0 — card de totais em 100% e barra de notice ---------- */

/* O woocommerce-layout.css põe `float:right; width:48%` no card de totais
   — nunca houve contador, então o resumo vinha com metade da largura da
   coluna. Empata em especificidade (0,3,0) com a regra do Woo e vence por
   ordem: o toolkit declara woocommerce-layout como dependência. */
.germer-toolkit-carrinho-on .cart-collaterals .cart_totals {
    float: none;
    width: 100%;
}

/* Mesmo caso (empate (0,3,2), vitória por ordem): o th de 35% do Woo
   brigava com as linhas em flex dos totais. */
.germer-toolkit-carrinho-on .cart-collaterals .cart_totals table th {
    width: auto;
}

/* -- Barra de notice: alinhada ao funil, legível, com ação perto do texto.

   O .woocommerce-notices-wrapper é IRMÃO do form do checkout (e do bloco
   do obrigado), fora do wrapper que recebe o full-bleed — a barra ficava
   presa no container do tema (~1140px) enquanto a página ia de ponta a
   ponta, desalinhada e com linha de leitura larga demais. O carrinho não
   entra aqui: lá o wrapper vive dentro do grid e já resolve por
   grid-column. */
.germer-toolkit-checkout-on .woocommerce-notices-wrapper,
.germer-toolkit-obrigado-on .woocommerce-notices-wrapper,
.germer-toolkit-pdp-on .woocommerce-notices-wrapper {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 24px clamp(24px, 4vw, 64px) 0;
    box-sizing: border-box;
}

/* Wrapper sem notice não deixa respiro fantasma (o Woo imprime dois). */
.germer-toolkit-checkout-on .woocommerce-notices-wrapper:empty,
.germer-toolkit-obrigado-on .woocommerce-notices-wrapper:empty,
.germer-toolkit-pdp-on .woocommerce-notices-wrapper:empty {
    display: none;
    padding: 0;
}

/* O <li> do erro é texto + link de ação: vira flex para a ação ficar perto
   do texto, e não a meia tela de distância numa barra full-bleed. */
.germer-toolkit-notices-on .woocommerce-error li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    max-width: 90ch; /* linha de leitura: a barra é larga, o texto não */
    line-height: 1.5;
}

/* info e message são <div> (só o erro é lista): o tratamento vai no bloco.
   Nunca dentro do toast — o notices.js move a .woocommerce-message para
   #germer-toolkit-toasts mantendo a classe, e lá o layout é outro. */
.germer-toolkit-notices-on .woocommerce-message:not(.gt-toast),
.germer-toolkit-notices-on .woocommerce-info:not(.gt-toast):not(.cart-empty) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    line-height: 1.5;
}

/* A ação dentro da barra usa a mesma pílula outline do toast — sem ela
   herda o botão roxo do Woo. */
.germer-toolkit-notices-on .woocommerce-error a.button,
.germer-toolkit-notices-on .woocommerce-info a.button,
.germer-toolkit-notices-on .woocommerce-message a.button {
    flex: 0 0 auto;
    padding: 7px 16px;
    background: transparent;
    color: var(--gt-realce);
    border: 1px solid var(--gt-realce);
    border-radius: 999px;
    font-family: Poppins, sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1.2;
}

.germer-toolkit-notices-on .woocommerce-error a.button:hover,
.germer-toolkit-notices-on .woocommerce-info a.button:hover,
.germer-toolkit-notices-on .woocommerce-message a.button:hover {
    background: var(--gt-realce);
    color: #fff;
    border-color: var(--gt-realce);
}

@media (max-width: 600px) {
    .germer-toolkit-checkout-on .woocommerce-notices-wrapper,
    .germer-toolkit-obrigado-on .woocommerce-notices-wrapper {
        padding-top: 16px;
    }

    .germer-toolkit-notices-on .woocommerce-error a.button,
    .germer-toolkit-notices-on .woocommerce-info a.button,
    .germer-toolkit-notices-on .woocommerce-message a.button {
        width: 100%;
        text-align: center;
    }
}

/* ---------- v0.11.0 — relacionados em slide e coluna de leitura ---------- */

/* A tabela de especificações ia até a borda da tela enquanto a descrição
   parava em 75ch — as duas passam a dividir a mesma coluna. São 80ch aqui
   porque `ch` escala com o font-size e a tabela é 14px contra os 15px do
   texto: 80ch@14px ≈ 75ch@15px. */
.germer-toolkit-pdp-on .gt-pdp-especificacoes table {
    max-width: 80ch;
}

/* Com a tabela mais estreita, o rótulo em largura fixa comia metade dela. */
.germer-toolkit-pdp-on .gt-pdp-especificacoes th {
    width: 38%;
}

/* Relacionados no card da casa, em slide: a marcação é a mesma da grade,
   então herdam .gt-grade--slide, .gt-card e as setas do grade.js. */
.germer-toolkit-pdp-on .gt-pdp-relacionados {
    margin-bottom: 16px;
}

/* As setas ficam 8px fora da padding box: o respiro recua os cards para
   elas não cobrirem o primeiro e o último. */
.germer-toolkit-pdp-on .gt-pdp-relacionados .gt-grade-slide {
    padding: 0 12px;
}

/* ---------- v0.12.0 — Avise-me quando chegar ---------- */

/* Placa em produto esgotado, no lugar do bloco de compra + frete: card com
   a borda da casa. Escopada em .gt-avise (e não no body da PDP) porque o
   shortcode pode colocá-la numa PDP montada fora do toolkit. Todo botão tem
   fundo explícito em hover/focus por causa do hover global do kit. */
.gt-avise {
    position: relative;
    margin: 0 0 24px;
    padding: 24px;
    border: 1px solid var(--gt-divisor);
    border-radius: var(--gt-raio);
    background: var(--gt-fundo);
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.gt-avise .gt-avise-titulo {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gt-texto);
    text-wrap: balance;
}

.gt-avise .gt-avise-texto {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--gt-secundario);
    text-wrap: pretty;
}

/* O nome do produto é destaque de conteúdo, não ênfase tipográfica. */
.gt-avise .gt-avise-texto em {
    font-style: normal;
    font-weight: 600;
    color: var(--gt-texto);
}

.gt-avise .gt-avise-texto strong {
    font-weight: 600;
    color: var(--gt-texto);
}

/* Formulário */
.gt-avise .gt-avise-form {
    display: grid;
    gap: 16px;
    margin-top: 20px;
}

/* O [hidden] do recolhimento precisa vencer o display:grid. */
.gt-avise .gt-avise-form[hidden] {
    display: none;
}

.gt-avise .gt-avise-form[data-entrando],
.gt-avise .gt-avise-feito[data-entrando] {
    animation: gt-avise-surgir .24s ease-out both;
}

.gt-avise .gt-avise-campo {
    display: grid;
    gap: 6px;
}

.gt-avise .gt-avise-rotulo {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--gt-texto);
}

.gt-avise .gt-avise-opcional {
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--gt-secundario);
}

/* Mesma pele do input de CEP do frete; 16px para o iOS não dar zoom ao focar. */
.gt-avise input.gt-avise-input {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--gt-divisor);
    border-radius: 4px;
    background: var(--gt-fundo);
    color: var(--gt-texto);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.4;
    transition: border-color .15s ease-out;
}

.gt-avise input.gt-avise-input:hover {
    border-color: var(--gt-secundario);
}

.gt-avise input.gt-avise-input:focus {
    outline: none;
    border-color: var(--gt-texto);
}

.gt-avise input.gt-avise-input:focus-visible {
    outline: 2px solid var(--gt-realce);
    outline-offset: 2px;
}

.gt-avise input.gt-avise-input[aria-invalid="true"] {
    border-color: var(--gt-realce);
}

/* Aceite */
.gt-avise .gt-avise-aceite {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 4px 10px;
}

.gt-avise input.gt-avise-checkbox {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: var(--gt-realce);
}

.gt-avise input.gt-avise-checkbox:focus-visible {
    outline: 2px solid var(--gt-realce);
    outline-offset: 3px;
}

.gt-avise .gt-avise-aceite-texto {
    font-size: 13px;
    line-height: 1.55;
    color: var(--gt-secundario);
    cursor: pointer;
}

.gt-avise .gt-avise-aceite-texto a,
.gt-avise .gt-avise-nota-aceite a {
    color: var(--gt-texto);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gt-avise .gt-avise-aceite .gt-avise-erro {
    grid-column: 2;
}

/* Erros: cor E forma (o travessão laranja), como a mensagem do frete. */
.gt-avise .gt-avise-erro {
    display: none;
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--gt-secundario);
}

.gt-avise .gt-avise-erro[data-visivel] {
    display: block;
}

.gt-avise .gt-avise-erro[data-visivel]::before {
    content: "— ";
    color: var(--gt-realce);
}

.gt-avise .gt-avise-erro--geral {
    margin-top: -4px;
}

/* O gatilho e o envio têm o desenho do COMPRAR da PDP: é a mesma promessa
   ("me avise") em dois momentos. */
.gt-avise button.gt-avise-abrir,
.gt-avise button.gt-avise-botao {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 50px;
    margin: 0;
    padding: 15px 24px;
    border: 0;
    border-radius: 999px;
    background: var(--gt-realce);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .15s ease-out;
}

.gt-avise button.gt-avise-abrir:hover,
.gt-avise button.gt-avise-abrir:focus,
.gt-avise button.gt-avise-botao:hover,
.gt-avise button.gt-avise-botao:focus {
    background: var(--gt-realce-hover);
    color: #fff;
}

.gt-avise button.gt-avise-abrir:focus-visible,
.gt-avise button.gt-avise-botao:focus-visible {
    outline: 2px solid var(--gt-texto);
    outline-offset: 3px;
}

.gt-avise button.gt-avise-abrir {
    margin-top: 20px;
}

.gt-avise button.gt-avise-abrir[hidden] {
    display: none;
}

.gt-avise button.gt-avise-botao[disabled],
.gt-avise button.gt-avise-botao[disabled]:hover {
    background: var(--gt-realce);
    opacity: .6;
    cursor: default;
}

/* Finalidade informada para quem está logado e não vê o checkbox. */
.gt-avise .gt-avise-nota-aceite {
    margin: 0;
    font-size: 12px;
    line-height: 1.6;
    color: var(--gt-secundario);
}

.gt-avise .gt-avise-botao-carregando {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: gt-avise-girar .7s linear infinite;
}

.gt-avise .gt-avise-botao[data-carregando] .gt-avise-botao-carregando {
    display: block;
}

/* Honeypot fora da tela em vez de display:none — robô que interpreta CSS
   costuma pular campo escondido, e o objetivo é que ele preencha. */
.gt-avise .gt-avise-toca {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Confirmação */
.gt-avise .gt-avise-feito {
    margin-top: 20px;
}

.gt-avise .gt-avise-feito:focus {
    outline: none;
}

.gt-avise .gt-avise-feito-titulo {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gt-texto);
}

@keyframes gt-avise-surgir {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

@keyframes gt-avise-girar {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .gt-avise .gt-avise-form[data-entrando],
    .gt-avise .gt-avise-feito[data-entrando],
    .gt-avise .gt-avise-botao-carregando {
        animation: none;
    }
}

@media (forced-colors: active) {
    .gt-avise {
        border-color: CanvasText;
    }
}

/* ---------- v0.14.0 — Encontre um representante ---------- */

/* Shortcode [germer_representantes]: select de estado + lista de cards.
   Todos os cards já vêm no HTML (poucas dezenas); o JS só alterna [hidden]
   por estado, então o CSS não precisa saber nada de filtro. */
.gt-representantes {
    font-family: Poppins, sans-serif;
    color: var(--gt-texto);
}

.gt-representantes .gt-representantes-filtro {
    display: grid;
    gap: 8px;
    max-width: 320px;
    margin-bottom: 24px;
}

.gt-representantes .gt-representantes-rotulo {
    font-size: 13px;
    font-weight: 600;
    color: var(--gt-secundario);
}

/* Seta própria via background-image: a nativa do <select> some no
   appearance: none e cada navegador desenha a sua de um jeito diferente. */
.gt-representantes select.gt-representantes-select {
    width: 100%;
    padding: 13px 40px 13px 18px;
    border: 1px solid var(--gt-divisor);
    border-radius: 999px;
    background-color: var(--gt-fundo);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23554843' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    appearance: none;
    color: var(--gt-texto);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.4;
    cursor: pointer;
    transition: border-color .15s ease-out;
}

.gt-representantes select.gt-representantes-select:hover {
    border-color: var(--gt-secundario);
}

.gt-representantes select.gt-representantes-select:focus {
    outline: none;
    border-color: var(--gt-texto);
}

.gt-representantes select.gt-representantes-select:focus-visible {
    outline: 2px solid var(--gt-realce);
    outline-offset: 2px;
}

.gt-representantes .gt-representantes-vazio {
    margin: 0;
    font-size: 14px;
    color: var(--gt-secundario);
}

.gt-representantes .gt-representantes-lista {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.gt-representantes .gt-representantes-card {
    padding: 20px;
    border: 1px solid var(--gt-divisor);
    border-radius: var(--gt-raio);
    background: var(--gt-fundo);
}

.gt-representantes .gt-representantes-card-titulo {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--gt-texto);
}

.gt-representantes .gt-representantes-card-cidade {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gt-realce);
    text-transform: uppercase;
    letter-spacing: .02em;
}

.gt-representantes .gt-representantes-card-contato {
    font-size: 14px;
    line-height: 1.6;
    color: var(--gt-secundario);
}

.gt-representantes .gt-representantes-card-contato p {
    margin: 0 0 10px;
}

.gt-representantes .gt-representantes-card-contato p:last-child {
    margin-bottom: 0;
}

@media (forced-colors: active) {
    .gt-representantes select.gt-representantes-select,
    .gt-representantes .gt-representantes-card {
        border-color: CanvasText;
    }
}
