/* ==========================================================================
   Flora Kamisaki · sistema visual da loja (out/2026)
   Sacola, pagamento e Minha conta usam só estas peças: cores, cartões,
   botões, títulos e opções. Carregado por último (ver app.css).
   ========================================================================== */

:root {
    --fk-fundo: #FBF7F5;
    --fk-cartao: #FFFFFF;
    --fk-borda: #EEE6E3;
    --fk-borda-forte: #DCCFCB;
    --fk-texto: #1D242D;
    --fk-texto-2: #5B6573;
    --fk-texto-3: #8A939F;
    --fk-primaria: #EF4444;
    --fk-primaria-escura: #C7191F;
    --fk-primaria-clara: #FDECEC;
    --fk-primaria-suave: #FFF7F7;
    --fk-sucesso: #15803D;
    --fk-sucesso-escura: #166534;
    --fk-sucesso-clara: #E9F6EE;
    --fk-alerta: #B45309;
    --fk-raio: 16px;
    --fk-raio-sm: 10px;
    --fk-sombra: 0 1px 2px rgba(29, 36, 45, .04), 0 8px 24px rgba(29, 36, 45, .06);
    --fk-foco: 0 0 0 3px rgba(239, 68, 68, .2);
}

/* ---------- Base ---------- */
.flora-pagina,
.page_pagamento,
.page_perfil {
    background: var(--fk-fundo) !important;
}

.flora-pagina .container,
.page_pagamento .container,
.page_perfil .container {
    padding: 32px 0 72px;
}

.flora-cartao {
    background: var(--fk-cartao);
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    box-shadow: var(--fk-sombra);
}

.flora-titulo-secao {
    margin: 0 0 6px;
    color: var(--fk-texto);
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 700;
}

.flora-texto-apoio {
    margin: 0 0 16px;
    color: var(--fk-texto-2);
    font-size: 14px;
    line-height: 20px;
}

/* Botões: primário (cheio), secundário (contorno), link */
.flora-botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: var(--fk-raio-sm);
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    text-decoration: none !important;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}

.flora-botao--primario {
    background: var(--fk-primaria);
    color: #FFF !important;
}

.flora-botao--primario:hover {
    background: var(--fk-primaria-escura);
}

.flora-botao--secundario {
    background: #FFF;
    border-color: var(--fk-borda-forte);
    color: var(--fk-texto) !important;
}

.flora-botao--secundario:hover {
    border-color: var(--fk-primaria);
    color: var(--fk-primaria-escura) !important;
}

.flora-botao--pequeno {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 14px;
}

.flora-botao--bloco {
    width: 100%;
}

.flora-botao:focus-visible,
.flora-link:focus-visible,
.flora-opcao:focus-visible,
.flora-data:focus-visible {
    outline: none;
    box-shadow: var(--fk-foco);
}

.flora-link {
    padding: 0;
    border: 0;
    background: none;
    color: var(--fk-primaria-escura);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.flora-link--discreto {
    color: var(--fk-texto-2);
    font-weight: 500;
}

.flora-link--discreto:hover {
    color: var(--fk-primaria-escura);
}

.flora-aviso {
    margin: 8px 0 0;
    color: var(--fk-alerta);
    font-size: 14px;
}

.flora-ok {
    margin: 8px 0 0;
    padding: 10px 12px;
    border-radius: var(--fk-raio-sm);
    background: var(--fk-sucesso-clara);
    color: var(--fk-sucesso-escura);
    font-size: 14px;
}

/* ---------- Etapas da compra ---------- */
.flora-progresso {
    margin: 0 0 28px;
}

.flora-progresso ol {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-progresso__etapa {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--fk-texto-3);
    font-size: 14px;
    font-weight: 600;
}

.flora-progresso__etapa + .flora-progresso__etapa::before {
    content: "";
    width: 40px;
    height: 2px;
    margin-right: 4px;
    border-radius: 2px;
    background: var(--fk-borda-forte);
}

.flora-progresso__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 2px solid var(--fk-borda-forte);
    border-radius: 50%;
    background: #FFF;
    font-size: 13px;
}

.flora-progresso__etapa.is-atual {
    color: var(--fk-texto);
}

.flora-progresso__etapa.is-atual .flora-progresso__num {
    border-color: var(--fk-primaria);
    background: var(--fk-primaria);
    color: #FFF;
}

.flora-progresso__etapa.is-feita {
    color: var(--fk-texto-2);
}

.flora-progresso__etapa.is-feita .flora-progresso__num {
    border-color: var(--fk-sucesso);
    background: var(--fk-sucesso);
    color: #FFF;
}

.flora-progresso__etapa.is-feita + .flora-progresso__etapa::before {
    background: var(--fk-sucesso);
}

/* ---------- Opções em botões (tipo, local, período) ---------- */
.flora-select-escondido,
.page_pagamento .form-row select.flora-select-escondido {
    display: none !important;
}

.flora-opcoes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
}

.flora-opcoes--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.flora-opcoes--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.flora-opcao {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-height: 56px;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    color: var(--fk-texto);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.flora-opcao:hover {
    border-color: var(--fk-primaria);
}

.flora-opcao[aria-checked="true"] {
    border: 2px solid var(--fk-primaria);
    padding: 11px 13px;
    background: var(--fk-primaria-suave);
}

.flora-opcao[aria-checked="true"]::after {
    content: "✓";
    position: absolute;
    top: 8px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fk-primaria);
    color: #FFF;
    font-size: 12px;
    font-weight: 700;
}

.flora-opcao__titulo {
    font-size: 15px;
    font-weight: 700;
    line-height: 20px;
    padding-right: 22px;
}

.flora-opcao__preco {
    color: var(--fk-texto-2);
    font-size: 14px;
    font-weight: 600;
}

.flora-opcao__preco.is-gratis {
    color: var(--fk-sucesso);
}

.flora-opcao__detalhe {
    color: var(--fk-texto-2);
    font-size: 13px;
    line-height: 18px;
}

/* ---------- Datas em botões ---------- */
.flora-datas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(68px, 1fr));
    gap: 8px;
}

.flora-data {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 8px 4px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    color: var(--fk-texto);
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.flora-data:hover {
    border-color: var(--fk-primaria);
}

.flora-data[aria-checked="true"] {
    border-color: var(--fk-primaria);
    background: var(--fk-primaria);
    color: #FFF;
}

.flora-data__dia {
    font-size: 12px;
    font-weight: 600;
    text-transform: capitalize;
}

.flora-data__num {
    font-size: 22px;
    line-height: 26px;
}

.flora-data__mes {
    font-size: 12px;
    opacity: .85;
}

.flora-link-outra-data {
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--fk-primaria-escura);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.page_pagamento .flora-data-nativa {
    display: none !important;
}

.page_pagamento .flora-outra-data .flora-data-nativa {
    display: block !important;
    margin-top: 10px;
}

/* ==========================================================================
   Sacola
   ========================================================================== */
.page_carrinho.flora-pagina .container {
    display: block;
    flex-wrap: nowrap;
}

.flora-carrinho {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 32px;
    align-items: start;
}

.flora-carrinho__topo {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.flora-carrinho__topo h1 {
    margin: 0;
    color: var(--fk-texto);
    font-size: 32px !important;
    line-height: 40px !important;
    font-weight: 700;
}

.flora-carrinho__topo h1 span {
    color: var(--fk-texto-2);
    font-size: 18px;
    font-weight: 500;
}

.flora-itens {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-item {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 20px;
    padding: 16px;
}

.flora-item__foto img {
    display: block;
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 12px;
    background: var(--fk-fundo);
}

.flora-item__nome {
    margin: 0 0 4px;
    font-size: 17px !important;
    line-height: 24px !important;
    font-weight: 700;
}

.flora-item__nome a {
    color: var(--fk-texto);
    text-decoration: none;
}

.flora-item__nome a:hover {
    color: var(--fk-primaria-escura);
}

.flora-item__unitario {
    margin: 0 0 8px;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-item__qtd {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--fk-borda-forte);
    border-radius: 999px;
    background: #FFF;
}

.flora-item__qtd.is-carregando {
    opacity: .5;
    pointer-events: none;
}

.flora-item__qtd button {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--fk-texto);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.flora-item__qtd button:hover:not(:disabled) {
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura);
}

.flora-item__qtd button:disabled {
    color: var(--fk-texto-3);
    cursor: default;
}

.flora-item__qtd input {
    width: 36px;
    height: 40px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    -moz-appearance: textfield;
}

.flora-item__total {
    min-width: 96px;
    margin: 0;
    color: var(--fk-texto);
    font-size: 18px;
    font-weight: 700;
    text-align: right;
}

/* Sugestões */
.flora-sugestoes {
    margin-top: 32px;
}

.flora-sugestoes h2 {
    margin: 0 0 12px;
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 700;
    color: var(--fk-texto);
}

.flora-sugestoes ul {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-sugestoes li {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
}

.flora-sugestoes__foto img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 10px;
}

.flora-sugestoes__nome {
    margin: 4px 0 0;
    color: var(--fk-texto);
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
}

.flora-sugestoes__preco {
    margin: 0 0 4px;
    color: var(--fk-texto-2);
    font-size: 14px;
}

/* Resumo */
.flora-carrinho__resumo {
    position: sticky;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.flora-carrinho__resumo > .flora-cartao {
    padding: 24px;
}

.flora-cep {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--fk-borda);
}

.flora-cep label {
    display: block;
    margin-bottom: 6px;
    color: var(--fk-texto);
    font-size: 14px;
    font-weight: 600;
}

.flora-cep__linha {
    display: flex;
    gap: 8px;
}

.page_carrinho .flora-cep input {
    flex: 1;
    max-width: none;
    width: auto;
    height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte) !important;
    border-radius: var(--fk-raio-sm);
    background: #FFF !important;
    color: var(--fk-texto);
    font-size: 16px;
}

.page_carrinho .flora-cep input:focus {
    border-color: var(--fk-primaria) !important;
    box-shadow: var(--fk-foco);
    outline: none;
}

.page_carrinho #frete-calculadora .flora-botao {
    height: auto;
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    color: var(--fk-texto);
    font-size: 15px;
}

.flora-locais {
    margin-top: 12px;
}

.flora-locais summary {
    color: var(--fk-primaria-escura);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.flora-locais .lista_locais_entrega {
    margin-top: 10px;
    max-width: none;
}

.flora-resumo dl {
    margin: 12px 0 20px;
}

.flora-resumo dl > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    font-size: 15px;
}

.flora-resumo dt {
    color: var(--fk-texto-2);
}

.flora-resumo dd {
    margin: 0;
    color: var(--fk-texto);
    font-weight: 600;
    text-align: right;
}

.flora-resumo__pendente {
    color: var(--fk-texto-3) !important;
    font-weight: 500 !important;
    font-size: 14px;
}

.flora-resumo .flora-resumo__total {
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--fk-borda);
    font-size: 18px;
}

.flora-resumo__total dt,
.flora-resumo__total dd {
    color: var(--fk-texto) !important;
    font-weight: 700 !important;
}

.flora-resumo__voltar {
    display: block;
    margin: 14px auto 0;
    text-align: center;
}

.flora-confianca {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 16px;
    margin: 20px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--fk-borda);
    list-style: none;
    color: var(--fk-texto-2);
    font-size: 13px;
}

.flora-confianca li::before {
    content: "✓ ";
    color: var(--fk-sucesso);
    font-weight: 700;
}

.flora-vazio {
    max-width: 520px;
    margin: 24px auto;
    padding: 48px 32px;
    text-align: center;
}

.flora-vazio h1 {
    margin: 0 0 8px;
    font-size: 26px;
    line-height: 32px;
}

.flora-vazio p {
    margin: 0 0 24px;
    color: var(--fk-texto-2);
}

/* ==========================================================================
   Pagamento (checkout)
   ========================================================================== */
.page_pagamento .titulo_pagamento {
    margin: 0 0 20px;
}

.page_pagamento .flora-progresso {
    width: 100%;
}

.flora-etapa-bloco,
.page_pagamento .woocommerce-billing-fields,
.page_pagamento .woocommerce-additional-fields {
    margin: 0 0 16px !important;
    padding: 24px;
    background: var(--fk-cartao);
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    box-shadow: var(--fk-sombra);
}

.page_pagamento .col2-set .col-2 .woocommerce-shipping-fields:empty {
    display: none;
}

.page_pagamento .flora-etapa {
    margin: 0 0 20px !important;
}

.page_pagamento #custom_checkout_fields .form-row {
    margin-bottom: 20px;
}

.page_pagamento #custom_checkout_fields .form-row:last-child {
    margin-bottom: 0;
}

/* Prévia do cartão */
.flora-contador {
    margin: 6px 0 0;
    color: var(--fk-texto-3);
    font-size: 13px;
    text-align: right;
}

.flora-cartao-previa {
    position: relative;
    margin-top: 12px;
    padding: 24px 24px 20px;
    border-radius: 12px;
    background:
        radial-gradient(circle at 92% 12%, rgba(239, 68, 68, .12) 0 26px, transparent 27px),
        linear-gradient(180deg, #FFFDFB, #FFF7F2);
    border: 1px solid #F2E2DA;
    box-shadow: 0 6px 18px rgba(29, 36, 45, .06);
}

.flora-cartao-previa::before {
    content: "✿";
    position: absolute;
    top: 10px;
    right: 18px;
    color: var(--fk-primaria);
    font-size: 18px;
}

.flora-cartao-previa__texto {
    margin: 0 0 12px;
    color: var(--fk-texto);
    font-size: 17px;
    line-height: 26px;
    font-style: italic;
    white-space: pre-line;
}

.flora-cartao-previa.is-vazio .flora-cartao-previa__texto {
    color: var(--fk-texto-3);
}

.flora-cartao-previa__assinatura {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
    text-align: right;
}

/* Formas de pagamento como cartões */
.page_pagamento #payment ul.payment_methods {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page_pagamento #payment ul.payment_methods li {
    padding: 12px 14px !important;
    border: 1px solid var(--fk-borda-forte) !important;
    border-radius: var(--fk-raio-sm);
}

.page_pagamento #payment ul.payment_methods li:has(input:checked) {
    border: 2px solid var(--fk-primaria) !important;
    padding: 11px 13px !important;
    background: var(--fk-primaria-suave);
}

.page_pagamento #payment ul.payment_methods li label {
    font-weight: 600;
    cursor: pointer;
}

.page_pagamento .woocommerce-privacy-policy-text {
    color: var(--fk-texto-2);
    font-size: 12px;
}

/* ==========================================================================
   Minha conta
   ========================================================================== */
.page_perfil .titulo_perfil {
    font-size: 32px !important;
}

.page_perfil .woocommerce {
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 24px !important;
    align-items: start;
}

.page_perfil .woocommerce-MyAccount-navigation,
.page_perfil .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
    max-width: none !important;
}

.page_perfil .woocommerce-MyAccount-navigation ul {
    background: var(--fk-cartao);
    border: 1px solid var(--fk-borda) !important;
    border-radius: var(--fk-raio) !important;
    box-shadow: var(--fk-sombra);
}

.page_perfil .woocommerce-MyAccount-navigation-link a {
    gap: 10px;
    align-items: center;
}

.page_perfil .woocommerce-MyAccount-navigation-link a::before {
    content: "";
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: var(--icone) center / contain no-repeat;
    mask: var(--icone) center / contain no-repeat;
    opacity: .8;
}

.page_perfil .woocommerce-MyAccount-navigation-link--dashboard { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 10.5 12 3l9 7.5V21h-6v-6H9v6H3z'/%3E%3C/svg%3E"); }
.page_perfil .woocommerce-MyAccount-navigation-link--orders { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h12l2 5v15H4V7zm1.4 5h9.2l-.8-3H8.2zM8 11v2h8v-2z'/%3E%3C/svg%3E"); }
.page_perfil .woocommerce-MyAccount-navigation-link--edit-address { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5-7 13-7 13S5 14 5 9a7 7 0 0 1 7-7zm0 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z'/%3E%3C/svg%3E"); }
.page_perfil .woocommerce-MyAccount-navigation-link--edit-account { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm0 2c-5 0-9 2.5-9 6v2h18v-2c0-3.5-4-6-9-6z'/%3E%3C/svg%3E"); }
.page_perfil .woocommerce-MyAccount-navigation-link--customer-logout { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 3H4v18h6v-2H6V5h4zm6 4-1.4 1.4 2.6 2.6H9v2h8.2l-2.6 2.6L16 17l5-5z'/%3E%3C/svg%3E"); }

.page_perfil .woocommerce-MyAccount-content {
    padding: 28px;
    background: var(--fk-cartao);
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    box-shadow: var(--fk-sombra);
    text-align: left !important;
}

.page_perfil .woocommerce-MyAccount-content h2,
.page_perfil .woocommerce-MyAccount-content h3,
.page_perfil .woocommerce-MyAccount-content legend {
    color: var(--fk-texto);
    font-size: 20px !important;
    line-height: 28px !important;
    font-weight: 700;
    padding: 0;
    margin: 0 0 12px;
}

.page_perfil .woocommerce-MyAccount-content p {
    color: var(--fk-texto);
    font-size: 15px;
    line-height: 22px;
}

/* Lista de pedidos em cartões (myaccount/orders.php) */
.flora-pedidos {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-pedido {
    padding: 18px 20px;
    border: 1px solid var(--fk-borda);
    border-radius: 14px;
    background: #FFF;
}

.flora-pedido__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
}

.flora-pedido__numero {
    margin: 0;
    color: var(--fk-texto);
    font-size: 17px;
    font-weight: 700;
}

.flora-pedido__meta {
    margin: 2px 0 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-status {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #F1F2F4;
    color: var(--fk-texto);
    font-size: 13px;
    font-weight: 700;
}

.flora-status--processing,
.flora-status--on-hold { background: #FEF3C7; color: #92400E; }
.flora-status--completed { background: var(--fk-sucesso-clara); color: var(--fk-sucesso-escura); }
.flora-status--cancelled,
.flora-status--failed,
.flora-status--refunded { background: #F1F2F4; color: var(--fk-texto-2); }
.flora-status--pending { background: var(--fk-primaria-clara); color: var(--fk-primaria-escura); }

.flora-linha-tempo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    margin: 16px 0 12px;
    padding: 0;
    list-style: none;
}

.flora-linha-tempo li {
    position: relative;
    padding-top: 14px;
    color: var(--fk-texto-3);
    font-size: 12px;
    font-weight: 600;
}

.flora-linha-tempo li::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    border-radius: 6px;
    background: var(--fk-borda);
}

.flora-linha-tempo li.is-feita {
    color: var(--fk-texto);
}

.flora-linha-tempo li.is-feita::before {
    background: var(--fk-sucesso);
}

.flora-pedido__rodape {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.flora-pedido__entrega {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-pedido__acoes {
    display: flex;
    gap: 8px;
}

/* Detalhe do pedido, endereços e dados */
.page_perfil .woocommerce-MyAccount-content table.shop_table {
    width: 100%;
    border: 1px solid var(--fk-borda) !important;
    border-radius: 12px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
}

.page_perfil .woocommerce-MyAccount-content table.shop_table th,
.page_perfil .woocommerce-MyAccount-content table.shop_table td {
    display: table-cell !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-top: 1px solid var(--fk-borda) !important;
    font-size: 14px;
    text-align: left;
}

.page_perfil .woocommerce-MyAccount-content table.shop_table thead th {
    border-top: 0 !important;
    background: var(--fk-fundo);
    color: var(--fk-texto-2);
    font-weight: 600;
}

.page_perfil .woocommerce-MyAccount-content mark {
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura);
    font-weight: 700;
}

.page_perfil .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.page_perfil .woocommerce-Addresses::before,
.page_perfil .woocommerce-Addresses::after {
    display: none !important;
}

.page_perfil .woocommerce-Address {
    float: none !important;
    width: auto !important;
    padding: 18px;
    border: 1px solid var(--fk-borda);
    border-radius: 14px;
}

.page_perfil .woocommerce-Address-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.page_perfil .woocommerce-Address-title a.edit,
.page_perfil .woocommerce-Address-title a {
    min-height: 32px !important;
    margin: 0 !important;
    padding: 6px 12px !important;
    border: 1px solid var(--fk-borda-forte);
    border-radius: 8px !important;
    background: #FFF !important;
    color: var(--fk-texto) !important;
    font-size: 13px;
}

.page_perfil address {
    color: var(--fk-texto);
    font-style: normal;
    line-height: 22px;
}

.page_perfil .woocommerce-MyAccount-content .button,
.page_perfil .woocommerce-MyAccount-content button[type="submit"] {
    min-height: 44px;
    border-radius: var(--fk-raio-sm) !important;
    background: var(--fk-primaria) !important;
    color: #FFF !important;
    font-weight: 700;
}

.page_perfil .woocommerce-MyAccount-content .woocommerce-message,
.page_perfil .woocommerce-MyAccount-content .woocommerce-info {
    border-radius: 12px;
    border-top-color: var(--fk-primaria);
}

/* ==========================================================================
   Celular
   ========================================================================== */
@media (max-width: 1024px) {
    .flora-pagina .container,
    .page_pagamento .container,
    .page_perfil .container {
        padding: 24px 16px 56px;
    }

    .flora-carrinho {
        grid-template-columns: 1fr;
    }

    .flora-carrinho__resumo {
        position: static;
    }

    .page_perfil .woocommerce {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .flora-progresso__nome {
        display: none;
    }

    .flora-progresso__etapa.is-atual .flora-progresso__nome {
        display: inline;
    }

    .flora-progresso__etapa + .flora-progresso__etapa::before {
        width: 20px;
    }

    .flora-carrinho__topo h1 {
        font-size: 26px !important;
        line-height: 32px !important;
    }

    .flora-item {
        grid-template-columns: 72px minmax(0, 1fr) auto;
        grid-template-areas: "foto info info" "foto qtd total";
        gap: 8px 14px;
        padding: 12px;
    }

    .flora-item__foto { grid-area: foto; align-self: start; }
    .flora-item__foto img { width: 72px; height: 72px; }
    .flora-item__info { grid-area: info; }
    .flora-item__qtd { grid-area: qtd; justify-self: start; }
    .flora-item__total { grid-area: total; min-width: 0; }

    .flora-sugestoes ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .flora-opcoes--3 {
        grid-template-columns: 1fr;
    }

    .flora-etapa-bloco,
    .page_pagamento .woocommerce-billing-fields,
    .page_pagamento .woocommerce-additional-fields {
        padding: 18px 16px;
    }

    .page_perfil .woocommerce-MyAccount-content {
        padding: 20px 16px;
    }

    .page_perfil .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }

    .flora-linha-tempo li {
        font-size: 11px;
    }
}

.flora-paginacao {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
}

.flora-vazio-conta {
    padding: 32px 16px;
    text-align: center;
}

.flora-vazio-conta p {
    color: var(--fk-texto-2) !important;
    margin-bottom: 20px;
}

/* Bloco do CEP: o CSS antigo da sacola punha 24px entre tudo */
.page_carrinho #frete-calculadora.flora-cep {
    display: block;
    gap: 0;
}

.page_carrinho #frete-calculadora .flora-cep__linha {
    display: flex;
    gap: 8px;
    margin: 0;
}

.page_carrinho #resultado-frete:empty {
    display: none;
}

/* Avisos do WooCommerce (adicionado à sacola, erros do formulário etc.) */
.flora-pagina .woocommerce-message,
.flora-pagina .woocommerce-info,
.flora-pagina .woocommerce-error,
.page_pagamento .woocommerce-message,
.page_pagamento .woocommerce-info,
.page_pagamento .woocommerce-error,
.page_perfil .woocommerce-message,
.page_perfil .woocommerce-info,
.page_perfil .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin: 0 0 20px !important;
    padding: 14px 18px 14px 48px !important;
    border: 1px solid var(--fk-borda) !important;
    border-left: 4px solid var(--fk-sucesso) !important;
    border-radius: 12px;
    background: #FFF !important;
    color: var(--fk-texto) !important;
    font-size: 15px;
    box-shadow: var(--fk-sombra);
}

.page_pagamento .woocommerce-info,
.page_perfil .woocommerce-info,
.flora-pagina .woocommerce-info {
    border-left-color: var(--fk-primaria) !important;
}

.page_pagamento .woocommerce-error,
.page_perfil .woocommerce-error,
.flora-pagina .woocommerce-error {
    flex-direction: column;
    align-items: flex-start;
    border-left-color: var(--fk-primaria-escura) !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    top: 50% !important;
    left: 18px !important;
    transform: translateY(-50%);
}

.woocommerce-message .button,
.woocommerce-info .button {
    order: 2;
    min-height: 36px;
    padding: 8px 14px !important;
    border: 1px solid var(--fk-borda-forte) !important;
    border-radius: 8px !important;
    background: #FFF !important;
    color: var(--fk-texto) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Detalhe do pedido (Minha conta) */
.flora-pedido-detalhe .flora-pedido__topo {
    margin: 12px 0 0;
}

.flora-pedido-detalhe h2 {
    margin: 0 !important;
}

.flora-entrega-resumo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    margin: 4px 0 20px;
    padding: 18px;
    border-radius: 14px;
    background: var(--fk-fundo);
}

.flora-entrega-resumo p {
    margin: 0 0 4px;
}

.flora-entrega-resumo__rotulo {
    color: var(--fk-texto) !important;
    font-weight: 700;
    font-size: 16px !important;
}

.flora-entrega-resumo__data,
.flora-entrega-resumo__texto {
    color: var(--fk-texto-2) !important;
    font-size: 14px !important;
}

.flora-entrega-resumo .flora-cartao-previa {
    margin: 0;
}

.flora-historico {
    margin: 0 0 24px;
}

.flora-historico summary {
    color: var(--fk-primaria-escura);
    font-weight: 600;
    cursor: pointer;
}

.flora-historico ol {
    margin: 12px 0 0;
    padding: 0 0 0 16px;
    border-left: 2px solid var(--fk-borda);
    list-style: none;
}

.flora-historico li {
    margin-bottom: 10px;
    font-size: 14px;
}

.flora-historico li span {
    color: var(--fk-texto-3);
    font-size: 12px;
}

.flora-historico li p {
    margin: 2px 0 0 !important;
    font-size: 14px !important;
}

/* Quem recebe = o mesmo endereço de entrega: mostra uma vez só */
.page_perfil .woocommerce-customer-details .woocommerce-column--shipping-address {
    display: none;
}

.page_perfil .woocommerce-customer-details .col2-set,
.page_perfil .woocommerce-customer-details .woocommerce-columns {
    display: block;
}

.page_perfil .woocommerce-customer-details .woocommerce-column {
    float: none !important;
    width: auto !important;
}

.page_perfil .woocommerce-customer-details address {
    padding: 16px 18px;
    border: 1px solid var(--fk-borda) !important;
    border-radius: 12px;
}

/* Botões de impressão do plugin de notas: são para a loja, não para o cliente */
.page_perfil a[href*="print-order"] {
    display: none !important;
}

@media (max-width: 600px) {
    .flora-entrega-resumo {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Revisão 16/10 (noite): consistência e detalhes
   ========================================================================== */

/* Avisos: borda fina por igual + fundo suave (sem a faixa grossa à esquerda) */
.flora-pagina .woocommerce-message,
.flora-pagina .woocommerce-info,
.flora-pagina .woocommerce-error,
.page_pagamento .woocommerce-message,
.page_pagamento .woocommerce-info,
.page_pagamento .woocommerce-error,
.page_perfil .woocommerce-message,
.page_perfil .woocommerce-info,
.page_perfil .woocommerce-error {
    border: 1px solid #CDE7D6 !important;
    border-left-width: 1px !important;
    background: #F3FAF5 !important;
    box-shadow: none;
}

.flora-pagina .woocommerce-info,
.page_pagamento .woocommerce-info,
.page_perfil .woocommerce-info {
    border-color: #F3D9D9 !important;
    background: #FFF8F8 !important;
}

.flora-pagina .woocommerce-error,
.page_pagamento .woocommerce-error,
.page_perfil .woocommerce-error {
    border-color: #F1C4C4 !important;
    background: #FFF5F5 !important;
}

/* Selos de confiança numa linha só */
.flora-confianca {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 8px;
    font-size: 12.5px;
    white-space: nowrap;
}

/* "Combine com": cartões da mesma altura e botão sempre no rodapé */
.flora-sugestoes ul {
    align-items: stretch;
}

.flora-sugestoes li {
    height: 100%;
}

.flora-sugestoes__nome {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 40px;
}

.flora-sugestoes li .flora-botao {
    margin-top: auto;
}

/* Datas: grade com respiro, "Outra data" no mesmo formato, ajuda acima */
.flora-ajuda {
    display: block;
    margin: -2px 0 12px;
    color: var(--fk-texto-2);
    font-size: 13px;
    line-height: 18px;
}

.flora-datas {
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: 8px;
}

.flora-carrinho__resumo .flora-datas {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.flora-data {
    min-height: 76px;
    justify-content: center;
    gap: 2px;
}

.flora-data--outra {
    border-style: dashed;
    color: var(--fk-primaria-escura);
}

.flora-data--outra[aria-checked="true"] {
    border-style: solid;
}

.page_pagamento .form-row input.flora-data-nativa {
    display: none !important;
}

.page_pagamento .form-row.flora-outra-data input.flora-data-nativa {
    display: block !important;
    max-width: 260px;
    margin-top: 12px;
}

/* CEP de quem recebe (passo Entrega) */
.flora-cep-entrega__linha {
    display: block;
    max-width: 260px;
}

.flora-cep-entrega__msg {
    display: block;
    margin-top: 8px;
    font-size: 14px;
    line-height: 20px;
}

.flora-cep-entrega__msg:empty {
    display: none;
}

.flora-cep-entrega__msg.is-ok {
    padding: 10px 12px;
    border: 1px solid #CDE7D6;
    border-radius: var(--fk-raio-sm);
    background: #F3FAF5;
    color: var(--fk-sucesso-escura);
}

.flora-cep-entrega__msg.is-aviso {
    padding: 10px 12px;
    border: 1px solid #F3D9C6;
    border-radius: var(--fk-raio-sm);
    background: #FFF8F1;
    color: var(--fk-alerta);
}

/* Minha conta: endereços */
.page_perfil .woocommerce-MyAccount-content > p:first-child {
    margin: 0 0 16px;
    color: var(--fk-texto-2) !important;
    font-size: 14px !important;
}

.page_perfil .woocommerce-Addresses {
    align-items: stretch;
}

.page_perfil .woocommerce-Address {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px !important;
    background: #FFF;
}

.page_perfil .woocommerce-Address-title {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 !important;
}

.page_perfil .woocommerce-Address-title::before,
.page_perfil .woocommerce-Address-title::after {
    display: none !important;
}

.page_perfil .woocommerce-Address-title h2,
.page_perfil .woocommerce-Address-title h3 {
    float: none !important;
    margin: 0 !important;
    font-size: 17px !important;
    line-height: 24px !important;
}

.page_perfil .woocommerce-Address-title a.edit {
    float: none !important;
    flex-shrink: 0;
    white-space: nowrap;
}

.page_perfil .woocommerce-Address address {
    margin: 0;
    padding: 0 !important;
    border: 0 !important;
    color: var(--fk-texto-2);
    font-size: 14px;
    font-style: normal;
}

/* Mostrar/esconder senha: só o ícone na cor da marca, sem fundo */
.page_perfil .show-password-input,
.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input {
    top: 50% !important;
    right: 10px !important;
    width: 32px;
    height: 32px;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: translateY(-50%);
}

.page_perfil .show-password-input::before,
.woocommerce form .show-password-input::before {
    background-color: var(--fk-texto-2) !important;
}

.page_perfil .show-password-input:hover::before,
.woocommerce form .show-password-input:hover::before {
    background-color: var(--fk-primaria-escura) !important;
}

.page_perfil .password-input {
    display: block;
    position: relative;
}

@media (max-width: 1024px) {
    .flora-datas {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    /* Celular: datas numa fileira que desliza para o lado */
    .flora-datas,
    .flora-carrinho__resumo .flora-datas {
        display: flex;
        gap: 8px;
        margin: 0 -16px;
        padding: 2px 16px 6px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .flora-datas::-webkit-scrollbar {
        display: none;
    }

    .flora-data {
        flex: 0 0 68px;
        scroll-snap-align: start;
    }

    .flora-confianca {
        font-size: 12px;
        gap: 6px;
    }

    .flora-cep-entrega__linha {
        max-width: none;
    }
}

@media (max-width: 1024px) {
    /* Uma coluna que nunca passa da largura da tela */
    .flora-carrinho {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    /* Selos: um por linha no celular (lado a lado não cabem sem quebrar o texto) */
    .flora-confianca {
        flex-direction: column;
        align-items: center;
        gap: 4px;
    }
}

@media (max-width: 1024px) {
    .page_perfil .woocommerce {
        grid-template-columns: minmax(0, 1fr);
    }
}

.page_perfil .woocommerce-Address-title h2,
.page_perfil .woocommerce-Address-title h3 {
    white-space: nowrap;
}

/* Ícone de mostrar/esconder senha: desenho em máscara, na cor do texto (o do WooCommerce é imagem fixa) */
.woocommerce form .show-password-input::before,
.woocommerce-page form .show-password-input::before,
.page_perfil .show-password-input::before {
    content: "" !important;
    display: block;
    width: 20px !important;
    height: 20px !important;
    margin: 0 auto;
    background-image: none !important;
    background-color: var(--fk-texto-2) !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C6.5 5 2.7 9.3 1.5 12c1.2 2.7 5 7 10.5 7s9.3-4.3 10.5-7C21.3 9.3 17.5 5 12 5zm0 11.5A4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 0 1 0 9zm0-7a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C6.5 5 2.7 9.3 1.5 12c1.2 2.7 5 7 10.5 7s9.3-4.3 10.5-7C21.3 9.3 17.5 5 12 5zm0 11.5A4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 0 1 0 9zm0-7a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce form .show-password-input.display-password::before,
.page_perfil .show-password-input.display-password::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.3 2 2 3.3l3.2 3.2C3.3 7.9 2.1 9.9 1.5 12c1.2 2.7 5 7 10.5 7 1.9 0 3.6-.5 5-1.3l3.7 3.7 1.3-1.3zM12 16.5A4.5 4.5 0 0 1 7.5 12c0-.8.2-1.5.6-2.2l1.5 1.5a2.5 2.5 0 0 0 3.1 3.1l1.5 1.5c-.7.4-1.4.6-2.2.6zM12 5c-1.3 0-2.6.3-3.7.7l2 2c.5-.1 1.1-.2 1.7-.2a4.5 4.5 0 0 1 4.5 4.5c0 .6-.1 1.2-.3 1.7l2.9 2.9c1.6-1.3 2.8-2.9 3.4-4.6C21.3 9.3 17.5 5 12 5z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.3 2 2 3.3l3.2 3.2C3.3 7.9 2.1 9.9 1.5 12c1.2 2.7 5 7 10.5 7 1.9 0 3.6-.5 5-1.3l3.7 3.7 1.3-1.3zM12 16.5A4.5 4.5 0 0 1 7.5 12c0-.8.2-1.5.6-2.2l1.5 1.5a2.5 2.5 0 0 0 3.1 3.1l1.5 1.5c-.7.4-1.4.6-2.2.6zM12 5c-1.3 0-2.6.3-3.7.7l2 2c.5-.1 1.1-.2 1.7-.2a4.5 4.5 0 0 1 4.5 4.5c0 .6-.1 1.2-.3 1.7l2.9 2.9c1.6-1.3 2.8-2.9 3.4-4.6C21.3 9.3 17.5 5 12 5z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Revisão 16/10 (2): calendário, erros, pedido recebido, endereço
   ========================================================================== */

/* Calendário de "Outra data" */
.flora-calendario {
    margin-top: 12px;
    padding: 16px;
    max-width: 340px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio);
    background: #FFF;
    box-shadow: var(--fk-sombra);
}

.flora-calendario[hidden] {
    display: none;
}

.flora-calendario__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 15px;
}

.flora-calendario__nav {
    width: 36px;
    height: 36px;
    border: 1px solid var(--fk-borda);
    border-radius: 50%;
    background: #FFF;
    color: var(--fk-texto);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.flora-calendario__nav:disabled {
    opacity: .35;
    cursor: default;
}

.flora-calendario__semana,
.flora-calendario__dias {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
    text-align: center;
}

.flora-calendario__semana span {
    color: var(--fk-texto-3);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 0;
}

.flora-calendario__dia {
    aspect-ratio: 1;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.flora-calendario__dia:hover:not(:disabled) {
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura);
}

.flora-calendario__dia.is-escolhido {
    background: var(--fk-primaria);
    color: #FFF;
}

.flora-calendario__dia:disabled {
    color: #C9CDD2;
    font-weight: 400;
    cursor: default;
}

.flora-calendario__nota {
    margin: 10px 0 0;
    color: var(--fk-texto-3);
    font-size: 12px;
}

/* Erros ao finalizar: quadro de resumo no topo do formulário */
.page_pagamento .flora-erros {
    margin: 0 0 16px;
    padding: 18px 20px;
    border: 1px solid #F1C4C4;
    border-radius: var(--fk-raio);
    background: #FFF5F5;
}

.flora-erros__titulo {
    margin: 0 0 8px;
    color: var(--fk-primaria-escura);
    font-size: 16px;
    font-weight: 700;
}

.page_pagamento .flora-erros .woocommerce-error {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    list-style: none;
}

.page_pagamento .flora-erros .woocommerce-error::before {
    display: none;
}

.page_pagamento .flora-erros .woocommerce-error li {
    position: relative;
    margin: 0;
    padding: 4px 0 4px 18px;
    color: var(--fk-texto);
    font-size: 14px;
}

.page_pagamento .flora-erros .woocommerce-error li::before {
    content: "\2022";
    position: absolute;
    left: 4px;
    color: var(--fk-primaria);
}

.page_pagamento .flora-erros .woocommerce-error li[role="button"] {
    cursor: pointer;
}

.page_pagamento .flora-erros .woocommerce-error li[role="button"]:hover {
    color: var(--fk-primaria-escura);
    text-decoration: underline;
}

/* Mensagem embaixo do campo com erro */
.page_pagamento .checkout-inline-error-message {
    margin: 6px 0 0;
    color: var(--fk-primaria-escura);
    font-size: 13px;
    line-height: 18px;
}

.page_pagamento .form-row.woocommerce-invalid label {
    color: var(--fk-primaria-escura) !important;
}

/* CEP de quem recebe (antes do endereço) */
.page_pagamento #billing_postcode_field {
    clear: both;
}

.page_pagamento #billing_postcode_field input {
    max-width: 220px;
}

/* ---------- Pedido recebido ---------- */
.flora-obrigado {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 860px;
}

.flora-obrigado__topo {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 24px;
    border: 1px solid #CDE7D6;
    border-radius: var(--fk-raio);
    background: #F3FAF5;
}

.flora-obrigado__topo--erro {
    border-color: #F1C4C4;
    background: #FFF5F5;
}

.flora-obrigado__icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--fk-sucesso);
    color: #FFF;
    font-size: 22px;
    font-weight: 700;
}

.flora-obrigado__topo--erro .flora-obrigado__icone {
    background: var(--fk-primaria-escura);
}

.flora-obrigado__topo h2 {
    margin: 0 0 4px;
    color: var(--fk-texto);
    font-size: 24px;
    line-height: 30px;
    font-weight: 700;
}

.flora-obrigado__topo p {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 15px;
    line-height: 22px;
}

.flora-obrigado__resumo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    background: #FFF;
    overflow: hidden;
}

.flora-obrigado__resumo > div {
    padding: 16px 18px;
}

.flora-obrigado__resumo > div + div {
    border-left: 1px solid var(--fk-borda);
}

.flora-obrigado__resumo dt {
    color: var(--fk-texto-3);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.flora-obrigado__resumo dd {
    margin: 4px 0 0;
    color: var(--fk-texto);
    font-size: 16px;
    font-weight: 700;
}

.flora-obrigado__pagamento:empty {
    display: none;
}

.flora-obrigado__entrega {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    padding: 22px 24px;
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    background: #FFF;
}

.flora-obrigado__entrega h3 {
    margin: 0 0 6px;
    color: var(--fk-texto);
    font-size: 18px;
    font-weight: 700;
}

.flora-obrigado__data {
    margin: 0 0 4px;
    color: var(--fk-texto);
    font-size: 15px;
    font-weight: 600;
}

.flora-obrigado__texto {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-obrigado__entrega .flora-cartao-previa {
    margin: 0;
}

.flora-obrigado__passos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: passo;
}

.flora-obrigado__passos li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 18px;
    border: 1px solid var(--fk-borda);
    border-radius: 14px;
    background: #FFF;
    counter-increment: passo;
    font-size: 14px;
    color: var(--fk-texto-2);
}

.flora-obrigado__passos li::before {
    content: counter(passo);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura);
    font-weight: 700;
    font-size: 13px;
}

.flora-obrigado__passos strong {
    color: var(--fk-texto);
    font-size: 15px;
}

.flora-obrigado__acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
}

/* Itens e endereço do pedido (vêm do WooCommerce) */
.flora-obrigado__detalhes .woocommerce-order-details,
.flora-obrigado__detalhes .woocommerce-customer-details {
    margin: 0 0 16px;
    padding: 22px 24px;
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    background: #FFF;
}

.flora-obrigado__detalhes h2 {
    margin: 0 0 12px;
    color: var(--fk-texto);
    font-size: 18px !important;
    line-height: 24px;
    font-weight: 700;
}

.flora-obrigado__detalhes table.shop_table {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    font-size: 15px;
}

.flora-obrigado__detalhes table.shop_table th,
.flora-obrigado__detalhes table.shop_table td {
    padding: 10px 0;
    border: 0;
    border-top: 1px solid var(--fk-borda);
    text-align: left;
    font-weight: 400;
    color: var(--fk-texto);
}

.flora-obrigado__detalhes table.shop_table td:last-child,
.flora-obrigado__detalhes table.shop_table tfoot td {
    text-align: right;
}

.flora-obrigado__detalhes table.shop_table thead th {
    border-top: 0;
    color: var(--fk-texto-3);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.flora-obrigado__detalhes table.shop_table tfoot tr:last-child th,
.flora-obrigado__detalhes table.shop_table tfoot tr:last-child td {
    font-size: 17px;
    font-weight: 700;
}

.flora-obrigado__detalhes .woocommerce-column--shipping-address {
    display: none;
}

.flora-obrigado__detalhes .col2-set,
.flora-obrigado__detalhes .woocommerce-columns {
    display: block;
}

.flora-obrigado__detalhes .woocommerce-column {
    float: none !important;
    width: auto !important;
}

.flora-obrigado__detalhes address {
    padding: 0;
    border: 0;
    color: var(--fk-texto-2);
    font-style: normal;
    line-height: 22px;
}

.page_pagamento .woocommerce-order {
    width: 100%;
}

/* ---------- Minha conta: um endereço só ---------- */
.page_perfil .woocommerce-Addresses {
    grid-template-columns: minmax(0, 520px);
}

.page_perfil .woocommerce-MyAccount-content > p:first-child {
    margin-bottom: 20px !important;
}

.page_perfil .woocommerce-Address address {
    line-height: 24px;
}

@media (max-width: 760px) {
    .flora-obrigado__resumo {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .flora-obrigado__resumo > div:nth-child(3) {
        border-left: 0;
    }

    .flora-obrigado__resumo > div:nth-child(n+3) {
        border-top: 1px solid var(--fk-borda);
    }

    .flora-obrigado__entrega,
    .flora-obrigado__passos {
        grid-template-columns: 1fr;
    }

    .flora-obrigado__topo {
        padding: 18px;
    }

    .flora-obrigado__topo h2 {
        font-size: 20px;
        line-height: 26px;
    }

    .page_pagamento #billing_postcode_field input {
        max-width: none;
    }
}

/* Quadro de erros: sem o contorno do foco (o WooCommerce foca a lista para leitores de tela) */
.page_pagamento .flora-erros:focus,
.page_pagamento .flora-erros .woocommerce-error:focus,
.page_pagamento .woocommerce-NoticeGroup-checkout:focus {
    outline: none;
}

.page_pagamento .flora-erros .woocommerce-error li {
    padding: 4px 0 4px 18px !important;
}

.page_pagamento .flora-erros .woocommerce-error a {
    color: var(--fk-texto) !important;
    text-decoration: none;
}

.page_pagamento .flora-erros .woocommerce-error a:hover {
    color: var(--fk-primaria-escura) !important;
    text-decoration: underline;
}

/* Pedido recebido: acabamentos */
.page_pagamento a[href*="print-order"] {
    display: none !important;
}

.flora-obrigado__detalhes .woocommerce-customer-details address {
    padding: 0 !important;
    border: 0 !important;
}

.flora-obrigado__detalhes table.shop_table a {
    color: var(--fk-primaria-escura);
    text-decoration: none;
    font-weight: 600;
}

.page_perfil .woocommerce-Addresses {
    margin-top: 16px;
}

/* ==========================================================================
   Sugestões aprovadas em 16/10 (itens 8 a 13)
   ========================================================================== */

/* 8. Observações recolhidas */
.flora-abrir-obs {
    display: inline-block;
    margin: 0 0 18px;
    font-size: 14px;
}

/* 9. Celular: barra fixa com o total até aparecer o botão de finalizar */
.flora-barra-pagar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--fk-borda);
    background: #FFF;
    box-shadow: 0 -6px 20px rgba(29, 36, 45, .08);
}

.flora-barra-pagar[hidden] {
    display: none;
}

.flora-barra-pagar__total {
    display: flex;
    flex-direction: column;
    color: var(--fk-texto);
    font-size: 18px;
    font-weight: 700;
    line-height: 22px;
}

.flora-barra-pagar__total small {
    color: var(--fk-texto-2);
    font-size: 12px;
    font-weight: 500;
}

.flora-barra-pagar .flora-botao {
    min-height: 44px;
    padding: 10px 16px;
    font-size: 15px;
}

/* 10. Miniatura do produto no resumo do pagamento */
.flora-resumo-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.flora-resumo-item img {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    object-fit: cover;
    border-radius: 8px;
    background: var(--fk-fundo);
}

/* 11. Sacola: data recolhida */
.flora-quando {
    margin-top: 4px;
}

.flora-quando summary {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 6px;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    color: var(--fk-texto);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.flora-quando summary::-webkit-details-marker {
    display: none;
}

.flora-quando summary::after {
    content: "\203A";
    margin-left: auto;
    color: var(--fk-texto-3);
    font-size: 18px;
    transition: transform .15s;
}

.flora-quando[open] summary::after {
    transform: rotate(90deg);
}

.flora-quando summary small {
    color: var(--fk-texto-3);
    font-size: 13px;
    font-weight: 400;
}

.flora-quando[open] summary {
    margin-bottom: 12px;
}

/* 12. Minha conta: menu mais compacto */
.page_perfil .woocommerce-MyAccount-navigation-link a {
    padding: 10px 14px;
}

/* 13. Pedido recebido centralizado na página */
.page_pagamento .woocommerce-order.flora-obrigado {
    margin: 0 auto;
}

.page_pagamento .container:has(.flora-obrigado) .flora-progresso ol {
    justify-content: center;
}

/* Resumo do pagamento: nome e "x 1" na mesma linha da miniatura */
.page_pagamento .woocommerce-checkout-review-order-table td.product-name {
    display: flex;
    align-items: center;
    gap: 6px;
}

.page_pagamento .woocommerce-checkout-review-order-table .product-quantity {
    color: var(--fk-texto-2);
    font-weight: 600;
    white-space: nowrap;
}

/* Minha conta: menu lateral fixo na rolagem (computador) */
@media (min-width: 1025px) {
    .page_perfil .woocommerce-MyAccount-navigation {
        position: sticky;
        top: 24px;
        align-self: start;
    }

    .admin-bar .page_perfil .woocommerce-MyAccount-navigation {
        top: 56px;
    }
}

/* Observações agora no bloco do endereço */
.page_pagamento .woocommerce-billing-fields .flora-abrir-obs {
    margin: 0 0 16px;
}

.page_pagamento .woocommerce-additional-fields > .form-row:empty,
.page_pagamento .woocommerce-additional-fields__field-wrapper:empty {
    display: none;
}

/* ==========================================================================
   Preço, selo e cartão de produto (categoria, busca, "Veja também")
   ========================================================================== */
.flora-preco {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    margin: 0;
}

.flora-preco__de {
    color: var(--fk-texto-3);
    font-size: 14px;
    font-weight: 500;
}

.flora-preco__por {
    color: var(--fk-texto);
    font-size: 18px;
    font-weight: 700;
}

.flora-selo-desconto,
.flora-selo-esgotado {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--fk-primaria);
    color: #FFF;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    white-space: nowrap;
}

.flora-selo-esgotado {
    background: var(--fk-texto);
}

.flora-grade-produtos {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ==========================================================================
   Produto
   ========================================================================== */
.flora-produto.flora-pagina {
    background: #FFF !important;
}

.flora-produto .container {
    padding-top: 24px;
}

.flora-produto__grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
    gap: 48px;
    align-items: start;
}

.flora-produto__galeria {
    position: sticky;
    top: 24px;
}

.flora-produto__foto {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio);
    background: #FFF;
}

.flora-produto__ampliar {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
}

.flora-produto__foto img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

.flora-produto__miniaturas {
    display: flex;
    gap: 10px;
    margin: 12px 0 0;
    padding: 0;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: none;
}

.flora-produto__miniatura {
    display: block;
    width: 72px;
    height: 72px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    cursor: pointer;
    opacity: .75;
}

.flora-produto__miniatura.is-ativa {
    border-color: var(--fk-primaria);
    opacity: 1;
}

.flora-produto__miniatura img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.flora-produto__categoria {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--fk-primaria-escura) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
}

.flora-produto__nome {
    margin: 0 0 12px !important;
    color: var(--fk-texto);
    font-size: 32px !important;
    line-height: 40px !important;
    font-weight: 700;
}

.flora-produto__preco {
    margin-bottom: 16px;
}

.flora-produto__preco .flora-preco__por {
    color: #36BF84;
    font-size: 40px;
    line-height: 48px;
}

.flora-produto__preco .flora-preco__de {
    font-size: 16px;
}

.flora-produto__preco .flora-selo-desconto {
    align-self: center;
}

.flora-produto__parcelas {
    margin: 2px 0 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-produto__resumo {
    margin-bottom: 16px;
    color: var(--fk-texto-2);
    font-size: 16px;
    line-height: 24px;
}

.flora-produto__resumo p {
    margin: 0 0 8px;
}

.flora-produto__cor {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-produto__cor-bola {
    width: 22px;
    height: 22px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: 50%;
}

.flora-produto__comprar {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
}

.flora-produto__comprar .flora-item__qtd {
    flex-shrink: 0;
    border-radius: var(--fk-raio-sm);
}

.flora-produto__comprar .flora-item__qtd button,
.flora-produto__comprar .flora-item__qtd input {
    height: 52px;
}

.flora-produto__adicionar {
    flex: 1;
    min-height: 54px;
    font-size: 17px;
}

.flora-produto__adicionar.is-carregando {
    opacity: .7;
    cursor: progress;
}

.flora-produto__adicionar-total {
    font-weight: 600;
}

.flora-produto__erro {
    margin: 0 0 8px;
    padding: 10px 12px;
    border-radius: var(--fk-raio-sm);
    background: #FFF5F5;
    color: var(--fk-primaria-escura);
    font-size: 14px;
}

.flora-produto__garantias {
    display: grid;
    gap: 12px;
    margin: 20px 0 0;
    padding: 16px;
    border-radius: var(--fk-raio);
    background: var(--fk-fundo);
    list-style: none;
}

.flora-produto__garantias li {
    display: flex;
    gap: 12px;
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
    line-height: 20px;
}

.flora-produto__garantias svg {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    fill: none;
    stroke: var(--fk-primaria);
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.flora-produto__garantias strong {
    display: block;
    color: var(--fk-texto);
    font-weight: 700;
}

.flora-produto__cep {
    margin-top: 20px;
    padding-top: 0;
    border-top: 0;
}

.flora-produto .flora-cep input {
    flex: 1;
    min-width: 0;
    height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 16px;
}

.flora-produto .flora-cep input:focus {
    border-color: var(--fk-primaria);
    box-shadow: var(--fk-foco);
    outline: none;
}

.flora-produto__detalhes {
    margin-top: 24px;
    border-top: 1px solid var(--fk-borda);
}

.flora-produto__detalhes details {
    border-bottom: 1px solid var(--fk-borda);
}

.flora-produto__detalhes summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    cursor: pointer;
    list-style: none;
}

.flora-produto__detalhes summary::-webkit-details-marker {
    display: none;
}

.flora-produto__detalhes summary::after {
    content: "+";
    color: var(--fk-texto-2);
    font-size: 22px;
    line-height: 1;
}

.flora-produto__detalhes details[open] summary::after {
    content: "−";
}

.flora-produto__detalhes summary h2 {
    margin: 0 !important;
    color: var(--fk-texto);
    font-size: 17px !important;
    line-height: 24px !important;
    font-weight: 700;
}

.flora-produto__texto {
    padding: 0 0 16px;
    color: var(--fk-texto-2);
    font-size: 15px;
    line-height: 24px;
}

.flora-produto__texto p,
.flora-produto__texto ul {
    margin: 0 0 10px;
}

.flora-produto__texto ul {
    padding-left: 18px;
    list-style: disc;
}

.flora-produto__texto a {
    color: var(--fk-primaria-escura) !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.flora-produto__compartilhar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-produto__compartilhar span {
    margin-right: 4px;
}

.flora-produto__compartilhar a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--fk-borda);
    border-radius: 50%;
    background: #FFF;
}

.flora-produto__compartilhar a:hover {
    border-color: var(--fk-primaria);
}

.flora-produto__compartilhar svg {
    width: 18px;
    height: 18px;
    fill: var(--fk-texto);
}

.flora-produto__barra {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--fk-borda);
    background: #FFF;
    box-shadow: 0 -6px 20px rgba(29, 36, 45, .08);
}

.flora-produto__barra .flora-preco {
    flex-direction: column;
    gap: 0;
}

.flora-produto__barra .flora-preco__de {
    font-size: 12px;
}

.flora-produto__barra .flora-preco__por {
    color: #36BF84;
    font-size: 20px;
}

/* Janela "Adicionado à sacola" */
.flora-janela {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(29, 36, 45, .45);
}

.flora-janela[hidden] {
    display: none;
}

.flora-janela__caixa {
    width: 100%;
    max-width: 380px;
    padding: 28px 24px 20px;
    text-align: center;
}

.flora-janela__icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 0 12px;
    border-radius: 50%;
    background: var(--fk-sucesso-clara);
    color: var(--fk-sucesso);
    font-size: 24px;
    font-weight: 700;
}

.flora-janela__titulo {
    margin: 0 0 4px;
    color: var(--fk-texto);
    font-size: 20px;
    font-weight: 700;
}

.flora-janela__texto {
    margin: 0 0 20px;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-janela__acoes {
    display: grid;
    gap: 14px;
    justify-items: center;
}

#imageModal[hidden] {
    display: none !important;
}

#imageModal .close-modal {
    border: 0;
    background: none;
    line-height: 1;
}

#imageModal .modal-content {
    max-height: calc(100vh - 120px);
    width: auto;
    max-width: 92%;
    object-fit: contain;
}

/* "Veja também" */
.flora-relacionados {
    padding: 0 0 72px;
    background: #FFF;
}

.flora-relacionados__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px 16px;
    margin-bottom: 20px;
    padding-top: 40px;
    border-top: 1px solid var(--fk-borda);
}

.flora-relacionados h2 {
    margin: 0 !important;
    color: var(--fk-texto);
    font-size: 24px !important;
    line-height: 32px !important;
    font-weight: 700;
}

/* ==========================================================================
   Categoria e busca
   ========================================================================== */
.flora-categoria .container {
    padding-top: 24px;
}

.flora-categoria__cabecalho h1 {
    margin: 0 0 6px !important;
    color: var(--fk-texto);
    font-size: 32px !important;
    line-height: 40px !important;
    font-weight: 700;
}

.flora-categoria__intro {
    max-width: 760px;
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 15px;
    line-height: 22px;
}

.flora-pilulas {
    margin: 20px 0 0;
}

.flora-pilulas ul {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 0 0 4px;
    overflow-x: auto;
    list-style: none;
    scrollbar-width: none;
}

.flora-pilulas a {
    display: inline-block;
    padding: 8px 16px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: 999px;
    background: #FFF;
    color: var(--fk-texto) !important;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
}

.flora-pilulas a:hover {
    border-color: var(--fk-primaria);
}

.flora-pilulas a[aria-current] {
    border-color: var(--fk-primaria);
    background: var(--fk-primaria);
    color: #FFF !important;
}

.flora-categoria__grade {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
    margin-top: 28px;
}

.flora-filtros {
    position: sticky;
    top: 24px;
}

.flora-filtros__topo,
.flora-filtros__ordenar-celular {
    display: none;
}

.flora-filtros__grupo {
    margin-bottom: 24px;
}

.flora-filtros__nome {
    margin: 0 0 8px;
    color: var(--fk-texto);
    font-size: 15px;
    font-weight: 700;
}

.flora-filtros__grupo > ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-filtros__grupo > ul a {
    display: block;
    padding: 7px 10px;
    border-radius: var(--fk-raio-sm);
    color: var(--fk-texto-2) !important;
    font-size: 14px;
    text-decoration: none;
}

.flora-filtros__grupo > ul a:hover {
    background: var(--fk-primaria-suave);
    color: var(--fk-primaria-escura) !important;
}

.flora-filtros__grupo > ul a[aria-current] {
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura) !important;
    font-weight: 700;
}

.flora-filtros__categorias .categoria-principal {
    position: relative;
}

.flora-filtros__categorias .categoria-principal .cat_princ {
    width: 100%;
    padding: 7px 10px;
    border: 0;
    border-radius: var(--fk-raio-sm);
    background: none;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-filtros__categorias .categoria-principal .cat_princ:hover {
    background: var(--fk-primaria-suave);
    color: var(--fk-primaria-escura);
}

.flora-filtros__categorias .categoria-titulo {
    font-size: 14px !important;
    font-weight: 500 !important;
}

.flora-filtros__categorias .categoria-principal svg {
    display: none !important;
}

.flora-filtros__categorias .subcategorias {
    display: none;
    width: 100%;
    padding: 2px 0 6px 20px;
    gap: 2px;
    border: 0;
    background: none;
}

.flora-filtros__categorias .categoria-principal:hover .subcategorias,
.flora-filtros__categorias .categoria-principal:focus-within .subcategorias {
    display: flex;
}

.flora-filtros__categorias .subcategorias .sub_cat {
    height: auto;
    padding: 4px 0;
    color: var(--fk-texto-2);
    font-size: 13px;
    font-weight: 500;
}

.flora-filtros__categorias .subcategorias .sub_cat:hover {
    color: var(--fk-primaria-escura);
}

.flora-barra-filtros {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.flora-barra-filtros__total {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-barra-filtros__abrir {
    display: none;
}

.flora-ordenar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
}

.flora-ordenar select {
    height: 40px;
    padding: 0 32px 0 12px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    background: #FFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%235B6573' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    appearance: none;
    cursor: pointer;
}

.flora-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.flora-chips a:not(.flora-link) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura) !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.flora-chips span {
    font-size: 16px;
    line-height: 1;
}

.flora-categoria .flora-vazio {
    margin: 0;
    max-width: none;
}

.flora-paginacao {
    margin-top: 32px;
}

.flora-paginacao ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.flora-paginacao a,
.flora-paginacao span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--fk-borda-forte);
    border-radius: var(--fk-raio-sm);
    background: #FFF;
    color: var(--fk-texto) !important;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.flora-paginacao .current {
    border-color: var(--fk-primaria);
    background: var(--fk-primaria);
    color: #FFF !important;
}

.flora-paginacao .dots {
    border: 0;
    background: none;
}

.flora-categoria__sobre {
    max-width: none;
    margin: 56px 0 0;
    padding-top: 32px;
    border-top: 1px solid var(--fk-borda);
}

.flora-categoria__sobre h2 {
    margin: 0 0 12px !important;
    color: var(--fk-texto);
    font-size: 22px !important;
    line-height: 30px !important;
    font-weight: 700;
}

.flora-categoria__texto {
    color: var(--fk-texto-2);
    font-size: 15px;
    line-height: 24px;
}

.flora-categoria__texto.is-recolhido {
    max-height: 144px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(#000 55%, transparent);
    mask-image: linear-gradient(#000 55%, transparent);
}

.flora-categoria__texto a {
    color: var(--fk-primaria-escura) !important;
    text-decoration: underline;
}

.flora-categoria__ler-mais {
    margin-top: 8px;
}

.flora-filtros__fundo {
    position: fixed;
    inset: 0;
    z-index: 998;
    background: rgba(29, 36, 45, .45);
}

.flora-filtros__fundo[hidden] {
    display: none;
}

body.flora-sem-rolagem {
    overflow: hidden;
}

/* ---------- Telas menores ---------- */
@media (max-width: 1100px) {
    .flora-grade-produtos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .flora-produto__grade {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }

    .flora-produto__galeria {
        position: static;
    }

    .flora-categoria__grade {
        grid-template-columns: minmax(0, 1fr);
        margin-top: 20px;
    }

    .flora-barra-filtros__abrir {
        display: inline-flex;
    }

    .flora-ordenar {
        display: none;
    }

    .flora-filtros {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 999;
        width: min(340px, 88vw);
        padding: 20px;
        overflow-y: auto;
        background: #FFF;
        transform: translateX(-100%);
        transition: transform .2s;
    }

    .flora-filtros.is-aberto {
        transform: none;
    }

    .flora-filtros__topo {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 16px;
    }

    .flora-filtros__ordenar-celular {
        display: block;
    }

    .flora-filtros__titulo {
        margin: 0;
        color: var(--fk-texto);
        font-size: 18px;
        font-weight: 700;
    }

    .flora-filtros__fechar {
        width: 40px;
        height: 40px;
        border: 0;
        border-radius: 50%;
        background: var(--fk-fundo);
        color: var(--fk-texto);
        font-size: 24px;
        line-height: 1;
        cursor: pointer;
    }

    .flora-filtros__categorias .subcategorias {
        display: flex;
    }
}

@media (max-width: 760px) {
    .flora-grade-produtos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 12px;
    }

    .flora-produto .container,
    .flora-categoria .container {
        padding-top: 12px;
    }

    .flora-produto__foto {
        margin: 0 -16px;
        border: 0;
        border-radius: 0;
    }

    .flora-produto__nome,
    .flora-categoria__cabecalho h1 {
        font-size: 24px !important;
        line-height: 32px !important;
    }

    .flora-produto__preco .flora-preco__por {
        font-size: 32px;
        line-height: 40px;
    }

    .flora-produto__barra {
        display: flex;
    }

    .flora-produto__barra[hidden] {
        display: none;
    }

    .flora-relacionados__topo {
        padding-top: 28px;
    }
}

@media (min-width: 1025px) and (max-width: 1272px) {
    .flora-produto .container,
    .flora-categoria .container,
    .flora-relacionados .container {
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 1024px) {
    .flora-relacionados .container {
        padding: 0 16px;
    }
}

@media (max-width: 480px) {
    .flora-produto__adicionar-total {
        display: none;
    }
}

/* Produto no celular: sino de notificações acima da barra de compra */
@media (max-width: 760px) {
    body.single-product .ntfm-subscribe-floating-btn {
        bottom: 84px !important;
    }
}

@media (max-width: 960px) {
    .admin-bar .flora-filtros {
        top: 46px;
    }

    body.flora-sem-rolagem .ntfm-subscribe-floating-btn {
        display: none !important;
    }
}

/* Pagamento: "Seu contato" (quem compra) e "Quem vai receber" */
.page_pagamento .flora-subtitulo-campos {
    margin: 4px 0 4px !important;
}

.page_pagamento .flora-subtitulo-campos h3 {
    margin: 0 !important;
    color: var(--fk-texto);
    font-size: 16px !important;
    line-height: 22px !important;
    font-weight: 700;
}

.page_pagamento .flora-subtitulo-campos p {
    margin: 2px 0 0;
    color: var(--fk-texto-2);
    font-size: 13px;
}

.page_pagamento .flora-subtitulo-campos[data-priority="8"] {
    margin-top: 12px !important;
    padding-top: 16px;
    border-top: 1px solid var(--fk-borda);
}

.page_pagamento .flora-subtitulo-campos .flora-abrir-obs {
    margin: 0;
}

/* ==========================================================================
   Cartão de produto único (home, categoria, busca, "Veja também"), no visual da home.
   O cartão todo leva ao produto (link do nome cobre o cartão); botões ficam por cima.
   ========================================================================== */
.flora-produto-cartao {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    text-align: center;
}

.flora-produto-cartao__foto {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--fk-raio-sm);
    background: #FFF;
}

.flora-produto-cartao__foto img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
    transition: transform .3s;
}

.flora-produto-cartao:hover .flora-produto-cartao__foto img {
    transform: scale(1.04);
}

.flora-produto-cartao__foto .flora-selo-desconto,
.flora-produto-cartao__foto .flora-selo-esgotado {
    position: absolute;
    top: 8px;
    left: 8px;
}

.flora-produto-cartao__nome {
    display: -webkit-box;
    margin: 12px 0 2px !important;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    color: #000;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 26px !important;
}

.flora-produto-cartao__nome a {
    color: inherit !important;
    text-decoration: none;
}

.flora-produto-cartao__nome a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.flora-produto-cartao__nome a:focus-visible {
    outline: none;
}


.flora-produto-cartao__resumo {
    display: -webkit-box;
    margin: 0 !important;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    color: #909DAD;
    font-size: 14px;
    font-weight: 300;
    line-height: 18px;
}

.flora-produto-cartao__preco {
    justify-content: center;
    margin: 6px 0 12px !important;
}

.flora-produto-cartao__preco .flora-preco__de {
    color: #909DAD;
    font-size: 14px;
    font-weight: 700;
}

.flora-produto-cartao__preco .flora-preco__por {
    color: #36BF84;
    font-size: 17px;
    font-weight: 700;
}

.flora-produto-cartao__acoes {
    position: relative;
    z-index: 2;
    display: flex;
    gap: 8px;
    margin-top: auto;
}

.flora-produto-cartao__comprar {
    flex: 1;
    min-height: 44px;
    padding: 10px 12px;
}

.flora-botao-sacola {
    flex-shrink: 0;
    width: 44px;
    min-height: 44px;
    padding: 0;
}

.flora-botao-sacola svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.flora-botao-sacola.is-carregando {
    opacity: .6;
    cursor: progress;
}

.flora-botao-sacola.is-ok {
    border-color: var(--fk-sucesso);
    background: var(--fk-sucesso-clara);
    color: var(--fk-sucesso) !important;
}

/* Aviso "Adicionado à sacola" */
.flora-aviso-sacola {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 1001;
    padding: 12px 18px;
    border-radius: var(--fk-raio-sm);
    background: var(--fk-texto);
    color: #FFF;
    font-size: 14px;
    box-shadow: var(--fk-sombra);
    transform: translate(-50%, 20px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s, transform .2s;
}

.flora-aviso-sacola.is-visivel {
    transform: translate(-50%, 0);
    opacity: 1;
    pointer-events: auto;
}

.flora-aviso-sacola.is-erro {
    background: var(--fk-primaria-escura);
}

.flora-aviso-sacola a {
    margin-left: 6px;
    color: #FFF !important;
    font-weight: 700;
    text-decoration: underline;
}

/* Home: o cartão novo dentro do carrossel */
.produtos1_home .slick-track {
    height: auto !important;
}

.produtos_cestas .flora-produto-cartao.slide-item {
    display: flex !important;
    padding: 0 12px;
}

/* Produto: "Comprar" + botão da sacola */
.flora-produto__sacola {
    width: 54px;
    min-height: 54px;
}

.flora-produto__barra-acoes {
    display: flex;
    gap: 8px;
}

.flora-produto__barra .flora-botao-sacola {
    width: 44px;
}

/* Categoria: fundo branco (como a home) e filtros num painel próprio */
.flora-categoria.flora-pagina {
    background: #FFF !important;
}

@media (min-width: 961px) {
    .flora-filtros {
        padding: 20px 16px;
        border: 1px solid var(--fk-borda);
        border-radius: var(--fk-raio);
        background: var(--fk-fundo);
    }

    .flora-filtros__grupo + .flora-filtros__grupo {
        padding-top: 20px;
        border-top: 1px solid var(--fk-borda);
    }

    .flora-filtros__grupo:last-child {
        margin-bottom: 0;
    }

    .flora-filtros__grupo > ul a:hover,
    .flora-filtros__categorias .categoria-principal .cat_princ:hover {
        background: #FFF;
    }
}

@media (max-width: 760px) {
    .flora-produto-cartao__nome {
        font-size: 15px !important;
        line-height: 20px !important;
    }

    .flora-produto-cartao__resumo {
        font-size: 13px;
    }

    .flora-produto-cartao__preco .flora-preco__por {
        font-size: 15px;
    }

    .flora-produto-cartao__preco .flora-preco__de {
        font-size: 12px;
    }

    .flora-produto-cartao__comprar {
        min-height: 40px;
        padding: 8px;
        font-size: 15px;
    }

    .flora-botao-sacola {
        width: 40px;
        min-height: 40px;
    }

    .flora-aviso-sacola {
        bottom: 88px;
        width: max-content;
        max-width: calc(100% - 32px);
    }
}

/* Grade: nome sempre com altura de 2 linhas para preço e botões alinharem */
.flora-grade-produtos .flora-produto-cartao__nome {
    min-height: 52px;
    display: -webkit-box;
    align-content: center;
}

@media (min-width: 961px) {
    .flora-filtros__ordenar-celular + .flora-filtros__grupo {
        padding-top: 0;
        border-top: 0;
    }
}

@media (max-width: 760px) {
    .flora-grade-produtos .flora-produto-cartao__nome {
        min-height: 40px;
    }
}

/* "Não sei meu CEP" (Correios, outra aba) */
.flora-cep__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
    margin-bottom: 6px;
}

.flora-cep__topo label {
    margin-bottom: 0 !important;
}

.flora-busca-cep {
    font-size: 13px;
    font-weight: 500;
}

.page_pagamento #billing_postcode-description,
.page_pagamento #billing_postcode_field .description {
    display: block !important;
    margin-top: 6px;
    padding: 0;
    background: none;
    color: inherit;
    box-shadow: none;
    position: static;
}

.page_pagamento #billing_postcode_field .description::before {
    display: none;
}

/* Home: carrossel centralizado na altura do banner e "Ver tudo" como link abaixo das bolinhas */
.produtos1_home .bot_produtos1 {
    display: flex;
    align-items: center;
    gap: 30px;
    overflow: visible;
}

.produtos1_home .bot_produtos1 > a,
.produtos1_home .bot_produtos1 .banner_produtos1 {
    flex-shrink: 0;
    float: none !important;
    margin: 0 !important;
}

.flora-vitrine {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.flora-vitrine .produtos_cestas {
    float: none !important;
    width: 100% !important;
}

.flora-vitrine .slick-dots {
    position: static;
    margin-top: 16px;
}

.flora-ver-tudo {
    display: table;
    margin: 12px auto 0;
    color: var(--fk-primaria-escura) !important;
    font-size: 15px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 1024px) {
    .produtos1_home .bot_produtos1 > a {
        display: none;
    }
}

/* Filtros da categoria: cada grupo recolhe (Preço, Categorias, Ordenar) */
summary.flora-filtros__nome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2px 0;
    cursor: pointer;
    list-style: none;
}

summary.flora-filtros__nome::-webkit-details-marker {
    display: none;
}

summary.flora-filtros__nome::after {
    content: "";
    width: 8px;
    height: 8px;
    margin-right: 4px;
    border-right: 2px solid var(--fk-texto-2);
    border-bottom: 2px solid var(--fk-texto-2);
    transform: rotate(45deg) translateY(-2px);
    transition: transform .15s;
}

details:not([open]) > summary.flora-filtros__nome::after {
    transform: rotate(-45deg);
}

details:not([open]) > summary.flora-filtros__nome {
    margin-bottom: 0;
}

details.flora-filtros__grupo:not([open]) {
    margin-bottom: 16px;
}

.page_pagamento #billing_postcode_field .description,
.page_pagamento #billing_postcode_field .description a.flora-busca-cep {
    color: var(--fk-primaria-escura) !important;
}

/* Cartão: ao passar o mouse ou navegar pelo teclado, fundo cinza claro com respiro (sem borda) */
.flora-produto-cartao,
.produtos_cestas .flora-produto-cartao.slide-item {
    padding: 12px;
    border-radius: var(--fk-raio);
    transition: background-color .2s;
}

.flora-produto-cartao:hover,
.flora-produto-cartao:has(:focus-visible) {
    background: #F0EDEB;
}

.flora-produto-cartao a:focus,
.flora-produto-cartao button:focus {
    outline: none;
}

.flora-produto-cartao .flora-botao:focus-visible {
    box-shadow: var(--fk-foco);
}

.flora-grade-produtos {
    gap: 12px 8px;
}

@media (max-width: 760px) {
    .flora-produto-cartao,
    .produtos_cestas .flora-produto-cartao.slide-item {
        padding: 6px;
    }

    .flora-grade-produtos {
        gap: 12px 4px;
    }
}

/* Minha conta > Meus pedidos: o que foi pedido */
.flora-pedido__itens {
    display: grid;
    gap: 10px;
    margin: 14px 0 4px;
    padding: 0;
    list-style: none;
}

.flora-pedido__itens li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}

.flora-pedido__foto {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    overflow: hidden;
    border: 1px solid var(--fk-borda);
    border-radius: var(--fk-raio-sm);
    background: #FFF;
}

.flora-pedido__foto img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
}

.flora-pedido__item {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: var(--fk-texto);
    font-size: 15px;
    font-weight: 600;
    line-height: 20px;
}

.flora-pedido__item a {
    color: var(--fk-texto) !important;
    text-decoration: none;
}

.flora-pedido__item a:hover {
    color: var(--fk-primaria-escura) !important;
}

.flora-pedido__item small {
    color: var(--fk-texto-2);
    font-size: 13px;
    font-weight: 400;
}

.flora-pedido__mais {
    padding-left: 68px;
    color: var(--fk-texto-2);
    font-size: 13px;
}

/* ==========================================================================
   Páginas institucionais (Contato, Sobre nós): mesmo padrão da loja
   ========================================================================== */
.flora-institucional__cabecalho {
    margin-bottom: 24px;
}

.flora-institucional__cabecalho h1 {
    margin: 0 0 6px !important;
    color: var(--fk-texto);
    font-size: 32px !important;
    line-height: 40px !important;
    font-weight: 700;
}

.flora-institucional__cabecalho p {
    max-width: 680px;
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 16px;
    line-height: 24px;
}

.flora-contato {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.flora-contato__canais,
.flora-contato__form {
    padding: 24px;
}

.flora-contato__lista {
    display: grid;
    gap: 18px;
    margin: 16px 0 24px;
    padding: 0;
    list-style: none;
}

.flora-contato__lista li {
    display: flex;
    gap: 14px;
    margin: 0;
}

.flora-contato__lista img {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    margin-top: 2px;
}

.flora-contato__lista span {
    color: var(--fk-texto-2);
    font-size: 15px;
    line-height: 22px;
}

.flora-contato__lista strong {
    display: block;
    color: var(--fk-texto);
    font-weight: 700;
}

.flora-contato__lista a {
    color: var(--fk-primaria-escura) !important;
    font-weight: 600;
}

.flora-contato__acoes,
.flora-sobre__acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.flora-contato__mapa {
    margin-top: 24px;
    overflow: hidden;
}

.flora-contato__mapa iframe {
    display: block;
    width: 100%;
    height: 320px;
    border: 0;
}

/* Formulário (Contact Form 7) no padrão dos campos do pagamento */
.flora-contato__form .wpcf7-form p {
    margin: 0;
}

.flora-contato__form .wpcf7-form br {
    display: none;
}

.flora-contato__form .wpcf7-form label {
    display: block;
    margin: 14px 0 6px;
    color: var(--fk-texto);
    font-size: 14px;
    font-weight: 600;
    text-align: left;
}

.flora-contato__form .wpcf7-form-control-wrap {
    display: block;
}

.flora-contato__form .wpcf7-form input[type="text"],
.flora-contato__form .wpcf7-form input[type="email"],
.flora-contato__form .wpcf7-form input[type="tel"],
.flora-contato__form .wpcf7-form textarea {
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte) !important;
    border-radius: var(--fk-raio-sm) !important;
    background: #FFF !important;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 16px;
}

.flora-contato__form .wpcf7-form input:not([type="submit"]) {
    height: 48px;
}

.flora-contato__form .wpcf7-form textarea {
    height: 140px;
    resize: vertical;
}

.flora-contato__form .wpcf7-form input:focus,
.flora-contato__form .wpcf7-form textarea:focus {
    border-color: var(--fk-primaria) !important;
    box-shadow: var(--fk-foco);
    outline: none;
}

.flora-contato__form .wpcf7-submit {
    width: 100% !important;
    max-width: none !important;
    min-height: 48px;
    margin-top: 18px;
    border: 0;
    border-radius: var(--fk-raio-sm) !important;
    background: var(--fk-primaria) !important;
    color: #FFF !important;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.flora-contato__form .wpcf7-submit:hover {
    background: var(--fk-primaria-escura) !important;
}

.flora-contato__form .wpcf7-not-valid-tip {
    margin-top: 4px;
    font-size: 13px;
}

.flora-contato__form .wpcf7-response-output {
    margin: 14px 0 0 !important;
    padding: 10px 12px !important;
    border-radius: var(--fk-raio-sm);
    font-size: 14px;
}

/* Sobre nós */
.flora-sobre__hero {
    padding-top: 24px;
    background: var(--fk-fundo) !important;
}

.flora-sobre__hero img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--fk-raio);
}

.flora-sobre.flora-pagina .container {
    padding-top: 32px;
}

.flora-sobre__texto {
    max-width: 720px;
    margin-bottom: 40px;
}

.flora-sobre__texto h2,
.flora-sobre__subtitulo,
.flora-sobre__chamada h2 {
    margin: 0 0 12px !important;
    color: var(--fk-texto);
    font-size: 22px !important;
    line-height: 30px !important;
    font-weight: 700;
}

.flora-sobre__texto p {
    margin: 0 0 14px;
    color: var(--fk-texto-2);
    font-size: 16px;
    line-height: 26px;
}

.flora-sobre__servicos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin: 0 0 40px;
    padding: 0;
    list-style: none;
}

.flora-sobre__servicos li {
    margin: 0;
    padding: 20px;
}

.flora-sobre__servicos h3 {
    margin: 0 0 6px !important;
    color: var(--fk-texto);
    font-size: 16px !important;
    line-height: 22px !important;
    font-weight: 700;
}

.flora-sobre__servicos h3::before {
    content: "";
    display: block;
    width: 28px;
    height: 3px;
    margin-bottom: 12px;
    border-radius: 2px;
    background: var(--fk-primaria);
}

.flora-sobre__servicos p {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 14px;
    line-height: 21px;
}

.flora-sobre__chamada {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 32px;
    padding: 24px;
}

.flora-sobre__chamada p {
    margin: 0;
    color: var(--fk-texto-2);
    font-size: 15px;
}

@media (max-width: 860px) {
    .flora-contato {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 760px) {
    .flora-institucional__cabecalho h1 {
        font-size: 26px !important;
        line-height: 34px !important;
    }

    .flora-contato__canais,
    .flora-contato__form,
    .flora-sobre__chamada {
        padding: 18px;
    }

    .flora-contato__acoes .flora-botao,
    .flora-sobre__acoes .flora-botao {
        flex: 1;
    }

    .flora-sobre__hero {
        padding: 12px 16px 0;
    }
}

/* Contato: anula o layout antigo do formulário (flex centralizado) */
.flora-contato__form .wpcf7-form,
.flora-contato__form .wpcf7-form p {
    display: block !important;
    text-align: left !important;
}

.flora-contato__form .wpcf7-form-control-wrap,
.flora-contato__form .wpcf7-form-control-wrap > * {
    width: 100% !important;
}

/* ==========================================================================
   Login e cadastro do cliente (mesmo padrão da loja)
   ========================================================================== */
.flora-acesso__grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    max-width: 920px;
    margin: 8px auto 0;
    align-items: stretch;
}

.flora-acesso__cartao {
    padding: 32px;
}

.flora-acesso__titulo {
    margin: 0 0 6px !important;
    color: var(--fk-texto);
    font-size: 26px !important;
    line-height: 34px !important;
    font-weight: 700;
}

.flora-acesso .flora-texto-apoio {
    margin-bottom: 24px;
    font-size: 15px;
}

.flora-form {
    display: grid;
    gap: 16px;
}

.flora-form--duas {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px 16px;
}

.flora-form__inteira {
    grid-column: 1 / -1;
    margin: 0;
}

.flora-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

.flora-campo label {
    margin: 0;
    color: var(--fk-texto);
    font-size: 14px;
    font-weight: 600;
}

.flora-campo__topo {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.flora-campo__topo .flora-link {
    font-size: 13px;
}

.flora-campo input {
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--fk-borda-forte) !important;
    border-radius: var(--fk-raio-sm) !important;
    background: #FFF !important;
    color: var(--fk-texto);
    font-family: inherit;
    font-size: 16px;
}

.flora-campo input:focus {
    border-color: var(--fk-primaria) !important;
    box-shadow: var(--fk-foco);
    outline: none;
}

.flora-campo__ajuda {
    margin-top: -6px;
    color: var(--fk-texto-2);
    font-size: 13px;
    line-height: 18px;
}

.flora-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--fk-texto);
    font-size: 14px;
    cursor: pointer;
}

.flora-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--fk-primaria);
}

.flora-aviso-form {
    margin: 0 0 4px;
    padding: 12px 14px;
    border-radius: var(--fk-raio-sm);
    font-size: 14px;
    line-height: 20px;
}

.flora-aviso-form[hidden] {
    display: none;
}

.flora-aviso-form.is-erro {
    border: 1px solid #F1C4C4;
    background: #FFF5F5;
    color: var(--fk-primaria-escura);
}

.flora-aviso-form.is-ok {
    background: var(--fk-sucesso-clara);
    color: var(--fk-sucesso-escura);
}

.flora-aviso-form a {
    color: inherit !important;
    font-weight: 700;
    text-decoration: underline;
}

.flora-acesso__voltar {
    display: inline-block;
    margin-top: 18px;
}

.flora-acesso__novo {
    display: flex;
    flex-direction: column;
    background: var(--fk-primaria-suave);
}

.flora-acesso__vantagens {
    display: grid;
    gap: 12px;
    margin: 0 0 28px;
    padding: 0;
    list-style: none;
}

.flora-acesso__vantagens li {
    position: relative;
    margin: 0;
    padding-left: 28px;
    color: var(--fk-texto);
    font-size: 15px;
    line-height: 22px;
}

.flora-acesso__vantagens li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fk-sucesso-clara);
    color: var(--fk-sucesso);
    font-size: 12px;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
}

.flora-acesso__novo .flora-botao {
    margin-top: auto;
}

/* Cadastro: foto + formulário no mesmo cartão */
.flora-cadastro {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    max-width: 1040px;
    margin: 8px auto 0;
    overflow: hidden;
}

.flora-cadastro__foto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.flora-cadastro__conteudo {
    padding: 36px;
}

@media (max-width: 860px) {
    .flora-acesso__grade,
    .flora-cadastro {
        grid-template-columns: minmax(0, 1fr);
    }

    .flora-cadastro__foto {
        display: none;
    }
}

@media (max-width: 600px) {
    .flora-acesso__cartao,
    .flora-cadastro__conteudo {
        padding: 22px 18px;
    }

    .flora-form--duas {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Contato: os dois cartões com a mesma altura */
.flora-contato {
    align-items: stretch;
}

.flora-contato__form {
    display: flex;
    flex-direction: column;
}

.flora-contato__form .wpcf7 {
    flex: 1;
}

.flora-contato__form .wpcf7-form textarea {
    height: 96px;
}

.flora-contato__form .wpcf7-form label:first-of-type {
    margin-top: 0;
}

/* Pagamento: "Não sei meu CEP" ao lado do campo */
.page_pagamento #billing_postcode_field .woocommerce-input-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 16px;
}

.page_pagamento #billing_postcode_field .woocommerce-input-wrapper > input {
    flex: 0 0 auto;
}

.page_pagamento #billing_postcode_field .description {
    order: 2;
    margin: 0 !important;
}

.page_pagamento #billing_postcode_field .flora-cep-entrega__msg {
    order: 3;
    flex-basis: 100%;
}

.flora-contato__form .flora-titulo-secao {
    margin-bottom: 16px;
}

.flora-contato__form .wpcf7-form.init .wpcf7-response-output,
.flora-contato__form .wpcf7-form .wpcf7-response-output:empty {
    display: none;
}

.flora-contato__form .wpcf7-spinner {
    position: absolute;
}

/* Botões do atendimento alinhados com o "Enviar" do formulário */
.flora-contato__canais {
    display: flex;
    flex-direction: column;
}

.flora-contato__canais .flora-contato__acoes {
    margin-top: auto;
}

/* Login: anula o layout antigo dos blocos (flex centralizado, 440px) */
.flora-acesso #loginFormWrapper,
.flora-acesso #recuperarSenhaWrapper {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
}

.flora-acesso #loginFormWrapper[hidden],
.flora-acesso #recuperarSenhaWrapper[hidden] {
    display: none !important;
}

/* Home: setas das categorias em destaque por cima da grade, com sombra */
.categorias_destaques_home .flora-seta {
    position: absolute;
    top: 41%;
    z-index: 5;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--fk-borda);
    border-radius: 50%;
    background: #FFF;
    color: var(--fk-texto);
    box-shadow: 0 4px 14px rgba(29, 36, 45, .16);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background .15s, color .15s;
}

.categorias_destaques_home .flora-seta:hover {
    background: var(--fk-primaria);
    border-color: var(--fk-primaria);
    color: #FFF;
}

.categorias_destaques_home .flora-seta svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.categorias_destaques_home .custom-prev-destaques {
    left: 4px;
}

.categorias_destaques_home .custom-next-destaques {
    right: 4px;
}

@media (max-width: 600px) {
    .categorias_destaques_home .flora-seta {
        width: 36px;
        height: 36px;
    }
}

/* Menu de categorias: submenu com cantos arredondados, sombra e itens em uma linha */
.categorias .product-subcategories {
    min-width: 220px;
    width: max-content !important;
    padding: 8px !important;
    border: 1px solid var(--fk-borda) !important;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(29, 36, 45, .14) !important;
}

.categorias .product-subcategory > a {
    padding: 9px 12px !important;
    border-radius: 8px;
    color: var(--fk-texto) !important;
    font-size: 15px;
    white-space: nowrap;
}

.categorias .product-subcategory > a:hover {
    background: var(--fk-primaria-suave);
    color: var(--fk-primaria-escura) !important;
}

/* Login: "Esqueceu a senha?" abaixo da senha, à direita, na linha do "Manter conectado" */
.flora-acesso__opcoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin-top: -4px;
}

.flora-acesso__opcoes .flora-link {
    font-size: 14px;
}

/* Cadastro: a foto acompanha a altura do formulário (sem sobra embaixo do botão) */
.flora-cadastro {
    align-items: stretch;
}

.flora-cadastro__foto {
    position: relative;
    min-height: 100%;
}

.flora-cadastro__foto img {
    position: absolute;
    inset: 0;
}

.flora-cadastro__conteudo {
    padding: 32px 36px;
}

/* Painel "Todas as categorias": cantos arredondados, sombra e botão de fechar redondo */
.categorias .modal_categorias {
    border: 1px solid var(--fk-borda);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(29, 36, 45, .16);
}

.categorias .fechar_modal_categorias {
    top: 12px !important;
    right: 12px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--fk-fundo);
    color: var(--fk-texto) !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 1;
    cursor: pointer;
}

.categorias .fechar_modal_categorias:hover {
    background: var(--fk-primaria-clara);
    color: var(--fk-primaria-escura) !important;
}

.categorias .img_modal_categorias {
    border-radius: 12px;
}

/* Celular: Comprar e sacola ficam só na barra fixa do rodapé; logo centralizado */
@media (max-width: 760px) {
    .flora-produto__comprar .flora-produto__adicionar,
    .flora-produto__comprar .flora-produto__sacola {
        display: none;
    }

    body.single-product {
        padding-bottom: calc(72px + env(safe-area-inset-bottom));
    }
}

@media (max-width: 600px) {
    .header_main .header_logo {
        width: 100%;
        display: flex;
        justify-content: center;
    }
}
