/*
Theme Name: Diva Jalecos Theme
Theme URI: https://divajalecos.com.br
Author: Diva Jalecos
Author URI: https://divajalecos.com.br
Description: Tema customizado para Diva Jalecos
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: diva-jalecos-theme
*/

/* ========================================
   RESET & BASE
======================================== */
:root {
    --color-primary: #292B38;
    --color-accent: #E7A691;
    --color-bg: #fff;
    --color-border: #e5e5e5;
    --padding-x: 80px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: var(--color-primary);
    background: var(--color-bg);
    overflow-x: hidden;
    /* Prevent horizontal scrollbar site-wide */
    width: 100%;
}

a {
    text-decoration: none;
    color: inherit;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}

/* ========================================
   HEADER
======================================== */
.dj-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    z-index: 1000;
    transition: all 0.3s ease;
    height: 80px;
}

.dj-header.scrolled {
    height: 60px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.dj-header-container {
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--padding-x);
    height: 100%;
    display: flex;
    align-items: center;
    gap: 32px;
}

/* Logo */
.dj-logo {
    flex-shrink: 0;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
}

.dj-logo a {
    display: flex;
    align-items: center;
}

.dj-logo img {
    height: 50px;
    width: auto;
    transition: all 0.3s ease;
    display: block;
}

.dj-header.scrolled .dj-logo img {
    height: 35px;
}

.dj-logo-text {
    font-size: 24px;
    font-weight: 500;
    color: var(--color-primary);
    transition: all 0.3s ease;
}

.dj-header.scrolled .dj-logo-text {
    font-size: 20px;
}

/* Prevent logo and header shrinking on desktop checkout page */
@media (min-width: 900px) {
    body.woocommerce-checkout .dj-header.scrolled {
        height: 80px;
    }

    body.woocommerce-checkout .dj-header.scrolled .dj-logo img {
        height: 50px;
    }

    body.woocommerce-checkout .dj-header.scrolled .dj-logo-text {
        font-size: 24px;
    }
}

/* Desktop Navigation */
.dj-nav-desktop {
    flex: 1;
    display: none;
}

.dj-menu {
    list-style: none;
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: center;
}

.dj-menu>li {
    position: relative;
}

.dj-menu>li>a {
    color: var(--color-primary);
    font-size: 15px;
    font-weight: 500;
    padding: 8px 12px;
    display: block;
    transition: color 0.2s;
}

.dj-menu>li>a:hover,
.dj-menu>li.current-menu-item>a,
.dj-menu>li.current-menu-ancestor>a,
.dj-menu>li.current-menu-parent>a,
.dj-menu>li.current_page_item>a,
.dj-menu>li.current_page_parent>a {
    color: var(--color-accent);
}

/* Seta para itens com submenu no desktop */
.dj-menu .menu-item-has-children>a {
    padding-right: 18px;
    position: relative;
}

.dj-menu .menu-item-has-children>a::after {
    content: '';
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-60%) rotate(45deg);
    transition: transform 0.2s;
}

.dj-menu .menu-item-has-children:hover>a::after {
    transform: translateY(-40%) rotate(225deg);
}

/* Dropdown Submenus */
.dj-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.2s ease;
    z-index: 100;
    list-style: none;
    padding: 8px 0;
    margin: 0;
}

.dj-menu li:hover>.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dj-menu .sub-menu li {
    position: relative;
}

.dj-menu .sub-menu a {
    display: block;
    padding: 10px 20px;
    color: #1a1a1a;
    font-size: 14px;
    font-weight: 400;
    transition: background 0.2s;
    white-space: nowrap;
}

.dj-menu .sub-menu a:hover,
.dj-menu .sub-menu .current-menu-item>a,
.dj-menu .sub-menu .current_page_item>a {
    background: #f5f5f5;
    color: var(--color-accent);
}

/* Nested Submenus */
.dj-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    margin-left: 4px;
}

.dj-menu .sub-menu li:hover>.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Search Bar */
.dj-search {
    display: none;
    flex-shrink: 0;
}

.dj-search-form {
    position: relative;
    display: flex;
    align-items: center;
}

.dj-search-input {
    width: 240px;
    height: 40px;
    padding: 0 40px 0 16px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    font-size: 14px;
    transition: all 0.2s;
}

.dj-search-input:focus {
    outline: none;
    border-color: var(--color-primary);
    width: 280px;
}

.dj-search-btn {
    position: absolute;
    right: 8px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    transition: color 0.2s;
}

.dj-search-btn:hover {
    color: var(--color-primary);
}

/* Icons */
.dj-icons {
    display: flex;
    gap: 16px;
    align-items: center;
}

.dj-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    transition: all 0.2s;
    position: relative;
}

.dj-icon:hover {
    color: var(--color-accent);
}

.dj-cart-icon {
    position: relative;
}

.dj-cart-count {
    position: absolute;
    top: 0;
    right: 0;
    background: var(--color-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
}

/* Mobile Menu Toggle */
.dj-menu-toggle {
    width: 40px;
    height: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 8px;
}

.dj-menu-toggle span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--color-primary);
    transition: all 0.3s;
}

.dj-menu-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(7px, 7px);
}

.dj-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.dj-menu-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
}

/* Mobile Search */
.dj-mobile-search {
    display: none;
    padding: 16px 20px;
    border-top: 1px solid #e5e5e5;
}

.dj-mobile-search.active {
    display: block;
}

.dj-mobile-search .dj-search-input {
    width: 100%;
}

/* Mobile Sidebar */
.dj-sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.dj-sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
}

.dj-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 280px;
    max-width: 85%;
    background: #fff;
    z-index: 1001;
    transform: translateX(-100%);
    transition: transform 0.3s;
    overflow-y: auto;
}

.dj-sidebar.active {
    transform: translateX(0);
}

.dj-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    border-bottom: 1px solid #e5e5e5;
}

.dj-sidebar-title {
    font-size: 18px;
    font-weight: 500;
}

.dj-sidebar-close {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dj-sidebar-nav {
    padding: 20px 0;
}

.dj-sidebar-menu {
    list-style: none;
}

.dj-sidebar-menu li {
    border-bottom: 1px solid #f5f5f5;
}

.dj-sidebar-menu>li>a {
    display: block;
    padding: 16px 20px;
    color: var(--color-primary);
    font-size: 15px;
    font-weight: 500;
    transition: background 0.2s;
}

.dj-sidebar-menu a:hover,
.dj-sidebar-menu .current-menu-item>a,
.dj-sidebar-menu .current-menu-ancestor>a,
.dj-sidebar-menu .current_page_item>a {
    background: #f5f5f5;
    color: var(--color-accent);
}

/* Seta indicadora para itens com submenu - estilo chevron minimalista */
.dj-sidebar-menu .menu-item-has-children>a {
    position: relative;
    padding-right: 40px;
}

.dj-sidebar-menu .menu-item-has-children>a::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--color-primary);
    border-bottom: 1.5px solid var(--color-primary);
    transform: translateY(-60%) rotate(45deg);
    transition: transform 0.3s ease;
}

.dj-sidebar-menu .menu-item-has-children.active>a::after {
    transform: translateY(-40%) rotate(225deg);
}

/* Mobile Submenus */
.dj-sidebar-menu .sub-menu {
    list-style: none;
    background: #f9f9f9;
    display: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding: 8px 0;
}

.dj-sidebar-menu .menu-item-has-children.active>.sub-menu {
    display: block;
    max-height: 1000px;
}

.dj-sidebar-menu .sub-menu li {
    border-bottom: none;
}

.dj-sidebar-menu .sub-menu a {
    padding: 14px 20px 14px 40px;
    font-size: 14px;
    font-weight: 400;
    color: var(--color-primary);
}

.dj-sidebar-menu .sub-menu .sub-menu {
    padding: 0;
    margin-top: 4px;
}

.dj-sidebar-menu .sub-menu .sub-menu a {
    padding: 12px 20px 12px 60px;
    font-size: 13px;
}

.dj-sidebar-menu .sub-menu .menu-item-has-children>a::after {
    right: 20px;
}

/* Main Content */
.dj-main {
    margin-top: 80px;
    padding-top: 0;
    padding-left: var(--padding-x);
    padding-right: var(--padding-x);
    min-height: calc(100vh - 80px);
    transition: margin-top 0.3s ease;
}

.dj-header.scrolled~.dj-main {
    margin-top: 60px;
}

.dj-main--front-page {
    padding-left: 0;
    padding-right: 0;
}

/* Page Header Bar (titulo esquerda + breadcrumbs direita) */
.dj-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 0 20px;
    margin-bottom: 20px;
}

.dj-page-header-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dj-page-header-right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.dj-page-title {
    font-size: 28px;
    font-weight: 500;
    color: var(--color-primary);
    margin: 0;
    line-height: 1.2;
}

/* Breadcrumbs no header-left (mobile) ficam escondidos no desktop */
.dj-page-header-left .dj-breadcrumbs {
    display: none;
}

/* Na página de produto, breadcrumbs ficam visíveis no header-left */
.dj-page-header--product .dj-page-header-left .dj-breadcrumbs {
    display: block;
}

.dj-breadcrumbs,
.woocommerce-breadcrumb {
    font-size: 13px;
    color: var(--color-accent);
    font-weight: 400;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    gap: 4px;
}

.dj-breadcrumbs a,
.woocommerce-breadcrumb a {
    color: var(--color-primary);
    transition: color 0.2s;
}

.dj-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
    color: var(--color-accent);
}

/* Botão filtros no page header - só mobile */
.dj-filters-toggle {
    display: none;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: none;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.dj-filters-toggle:hover {
    border-color: var(--color-primary);
}

@media (max-width: 1199px) {
    .dj-page-header-left .dj-breadcrumbs {
        display: block;
    }

    .dj-breadcrumbs-desktop {
        display: none !important;
    }

    .dj-filters-toggle {
        display: flex;
    }

    .dj-page-title {
        font-size: 22px;
    }
}

@media (max-width: 480px) {
    .dj-page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .dj-page-header-right {
        width: 100%;
        justify-content: space-between;
    }
}

/* ========================================
   FILTER SIDEBAR (Mobile)
======================================== */
.dj-filter-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1099;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.dj-filter-overlay.active {
    opacity: 1;
    visibility: visible;
}

.dj-filter-sidebar {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    max-width: 85%;
    background: #fff;
    z-index: 1100;
    transform: translateX(100%);
    transition: transform 0.3s;
    overflow-y: auto;
    display: none;
}

.dj-filter-sidebar.active {
    transform: translateX(0);
}

.dj-filter-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    border-bottom: 1px solid #e5e5e5;
}

.dj-filter-sidebar-title {
    font-size: 18px;
    font-weight: 500;
}

.dj-filter-sidebar-close {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
}

.dj-filter-sidebar-body {
    padding: 20px;
}

@media (max-width: 1199px) {
    .dj-filter-sidebar {
        display: block;
    }
}

/* Utility Classes */
.dj-mobile-only {
    display: none;
}

.dj-desktop-only {
    display: none;
}

/* ========================================
   RESPONSIVE
======================================== */
@media (min-width: 1200px) {
    .dj-nav-desktop {
        display: block;
    }

    .dj-desktop-only {
        display: block;
    }

    .dj-mobile-only {
        display: none !important;
    }
}

/* Responsividade Especial no Desktop para Notebooks Menores (Entre 1200px e 1450px) */
@media (max-width: 1450px) and (min-width: 1200px) {
    :root {
        --padding-x: 40px;
        /* Reduz de 80p para 40px a distancia das laterais da tela */
    }

    .dj-header-container {
        gap: 16px;
        /* Aproxima Logo, Menu e Icones de 32px p/ 16px */
    }

    .dj-menu {
        gap: 12px;
        /* Reduz distancias das palavras de 24px para 12px */
    }

    .dj-menu>li>a {
        padding: 8px;
        font-size: 14px;
        /* Fonte levemente menor para caber todas palavras */
    }

    .dj-search-input {
        width: 180px;
        /* Reduz barra de busca de 240p para 180p */
    }

    .dj-search-input:focus {
        width: 220px;
    }
}

@media (max-width: 1199px) {
    :root {
        --padding-x: 20px;
    }

    .dj-header-container {
        gap: 12px;
    }

    /* Mobile order: hamburger, logo (flex-grow), icons */
    .dj-menu-toggle {
        order: 1;
        display: flex;
    }

    .dj-logo {
        order: 2;
        flex: 1;
    }

    .dj-icons {
        order: 3;
        gap: 4px;
        margin-left: auto;
    }

    .dj-mobile-only {
        display: flex;
    }

    .dj-icon {
        width: 44px;
        height: 44px;
    }
}

/* ========================================
   SHOP / LOJA
======================================== */
.dj-shop-layout {
    display: flex;
    gap: 40px;
}

.dj-shop-filters {
    width: 20%;
    flex-shrink: 0;
    background: #f7f7f7;
    border-radius: 12px;
    padding: 24px;
}

.dj-shop-products {
    width: 80%;
    flex: 1;
}

/* Filters header: title + clear button */
.dj-filters-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.dj-filters-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--color-primary);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dj-filter-group {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ebebeb;
}

.dj-filter-group:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.dj-filter-group h4 {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Range Slider de Preço */
.dj-price-range {
    padding: 8px 0;
}

.dj-price-values {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--color-primary);
    font-weight: 500;
}

.dj-range-slider {
    position: relative;
    height: 6px;
    margin: 16px 0;
}

.dj-range-track {
    position: absolute;
    width: 100%;
    height: 6px;
    background: #e5e5e5;
    border-radius: 3px;
}

.dj-range-fill {
    position: absolute;
    height: 6px;
    background: var(--color-accent);
    border-radius: 3px;
}

.dj-range-slider input[type="range"] {
    position: absolute;
    width: 100%;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    pointer-events: none;
    margin: 0;
    top: 0;
}

.dj-range-slider input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-accent);
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    pointer-events: all;
    position: relative;
    z-index: 2;
}

.dj-range-slider input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-accent);
    border: 3px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    pointer-events: all;
}

/* Filtro de Cores */
.dj-color-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dj-color-item {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: background 0.2s;
    font-size: 13px;
}

.dj-color-item:hover {
    background: #f5f5f5;
}

.dj-color-item.active {
    background: #f0ebe7;
}

.dj-color-item input[type="checkbox"] {
    display: none;
}

.dj-color-swatch {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #e5e5e5;
    flex-shrink: 0;
}

.dj-color-item.active .dj-color-swatch {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px var(--color-accent);
}

/* Filtro de Tamanho */
.dj-size-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dj-size-item {
    cursor: pointer;
    padding: 8px 16px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.2s;
    text-align: center;
    min-width: 48px;
}

.dj-size-item:hover {
    border-color: var(--color-primary);
}

.dj-size-item.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.dj-size-item input[type="checkbox"] {
    display: none;
}

/* Filtro de Categorias */
.dj-cat-list {
    list-style: none;
}

.dj-cat-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    cursor: pointer;
    font-size: 14px;
    transition: color 0.2s;
}

.dj-cat-item:hover {
    color: var(--color-accent);
}

.dj-cat-item.active {
    color: var(--color-accent);
    font-weight: 500;
}

.dj-cat-item input[type="checkbox"] {
    display: none;
}

.dj-cat-checkbox {
    width: 18px;
    height: 18px;
    border: 2px solid var(--color-border);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.2s;
}

.dj-cat-item.active .dj-cat-checkbox {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.dj-cat-item.active .dj-cat-checkbox::after {
    content: '';
    width: 6px;
    height: 10px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(45deg);
    margin-top: -2px;
}

.dj-cat-count {
    margin-left: auto;
    font-size: 12px;
    color: #999;
}

/* Categorias hierárquicas com dropdown */
.dj-cat-parent {
    margin-bottom: 2px;
}

.dj-cat-parent-row {
    display: flex;
    align-items: center;
}

.dj-cat-parent-row .dj-cat-item {
    flex: 1;
}

.dj-cat-toggle {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
}

.dj-cat-arrow {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--color-primary);
    border-bottom: 1.5px solid var(--color-primary);
    transform: rotate(45deg);
    transition: transform 0.3s ease;
}

.dj-cat-parent.expanded .dj-cat-arrow {
    transform: rotate(225deg);
}

.dj-cat-children {
    display: none;
    padding-left: 28px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.dj-cat-parent.expanded .dj-cat-children {
    display: block;
}

.dj-cat-child {
    font-size: 13px;
    padding: 6px 0;
}

/* Botão Limpar Filtros (inline no header) */
.dj-filter-clear {
    padding: 4px 12px;
    background: none;
    color: var(--color-accent);
    border: none;
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
    transition: opacity 0.2s;
    white-space: nowrap;
}

.dj-filter-clear:hover {
    opacity: 0.7;
}

@media (max-width: 1199px) {
    .dj-shop-layout {
        flex-direction: column;
    }

    .dj-shop-filters {
        display: none;
    }

    .dj-shop-products {
        width: 100%;
    }
}

/* ========================================
   GLOBAL: No bold - max medium (500)
======================================== */
h1,
h2,
h3,
h4,
h5,
h6,
strong,
b,
th {
    font-weight: 500;
}

/* ========================================
   PRODUCT CARDS
======================================== */
/* Grid de produtos */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
    content: none !important;
    display: none !important;
}

.woocommerce .woocommerce-notices-wrapper:empty {
    display: none;
}

.woocommerce ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    text-align: left;
}

/* Imagem 3:4 arredondada */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    margin-bottom: 10px;
}

/* Nome do produto */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-size: 15px;
    font-weight: 500;
    color: var(--color-primary);
    margin: 0 0 4px;
    padding: 0;
    line-height: 1.4;
    text-align: left;
}

/* Categoria discreta */
.woocommerce ul.products li.product .dj-product-category {
    font-size: 12px;
    color: #999;
    font-weight: 400;
    margin-bottom: 4px;
    display: block;
}

/* Preço */
.woocommerce ul.products li.product .price {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
    text-align: left;
    margin: 0;
}

.woocommerce ul.products li.product .price del {
    color: #bbb;
    font-size: 12px;
    font-weight: 400;
    margin-right: 6px;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    font-weight: 500;
}

/* Remover botão "Adicionar ao carrinho" */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .ajax_add_to_cart,
.woocommerce ul.products li.product a.added_to_cart {
    display: none !important;
}

/* Remover rating stars no loop */
.woocommerce ul.products li.product .star-rating {
    display: none;
}

/* Hover na imagem */
.woocommerce ul.products li.product a img:hover {
    opacity: 0.9;
    transition: opacity 0.2s;
}

/* Responsivo grid de produtos */
@media (max-width: 1199px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr);
        gap: 16px;
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}

/* ========================================
   IMAGENS ARREDONDADAS GLOBAIS
======================================== */
.woocommerce div.product div.images img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
    border-radius: 12px;
}

/* WooCommerce ordering / result count bar - fora do grid */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    font-size: 13px;
    font-weight: 400;
    margin-bottom: 16px;
}

.woocommerce .woocommerce-ordering select {
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    padding: 8px 12px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    color: var(--color-primary);
}

/* Shop toolbar (result count + ordering) */
.dj-shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.dj-shop-toolbar .woocommerce-result-count {
    margin: 0;
}

.dj-shop-toolbar .woocommerce-ordering {
    margin: 0;
}

/* ========================================
   PAGINAÇÃO
======================================== */
.woocommerce nav.woocommerce-pagination {
    margin-top: 40px;
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    gap: 6px;
    border: none;
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none;
    margin: 0;
    padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 400;
    color: var(--color-primary);
    background: #fff;
    text-decoration: none;
    transition: all 0.2s;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    border-color: var(--color-primary);
    background: #f7f7f7;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.woocommerce nav.woocommerce-pagination ul li span.dots {
    border: none;
    background: none;
    color: #999;
}

/* ========================================
   SINGLE PRODUCT PAGE
======================================== */

/* Page header na página de produto: só breadcrumbs */
.dj-page-header--product {
    padding: 24px 0 0 0;
    margin: 0;
}

.dj-page-header--product .dj-page-header-left {
    padding-left: 0;
    margin-left: 0;
}

.dj-page-header--product .dj-breadcrumbs {
    font-size: 13px;
}

/* Product layout: gallery + summary side by side */
.woocommerce div.product {
    padding: 24px 0;
    margin-top: 0;
}

.dj-product-top-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 40px;
}

/* Gallery area */
.woocommerce div.product div.images {
    width: calc(50% - 20px);
    flex-shrink: 0;
    position: relative;
    opacity: 1 !important;
}

/* Summary area */
.woocommerce div.product div.summary {
    width: calc(50% - 20px);
    flex: none;
    min-width: 0;
    position: sticky;
    top: 100px;
}

/* Full width sections after gallery+summary */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.upsells {
    width: 100%;
    clear: both;
}

/* ========================================
   GALLERY: Vertical thumbnails left
======================================== */
.woocommerce div.product div.images.dj-gallery-multi {
    display: flex;
    gap: 12px;
}

/* Thumb container wraps arrows + strip */
.dj-gallery-thumbs-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 15%;
    flex-shrink: 0;
    order: -1;
    position: relative;
}

.dj-gallery-thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.dj-gallery-thumbs::-webkit-scrollbar {
    display: none;
}

/* Thumb scroll arrows */
.dj-thumb-arrow {
    width: 100%;
    height: 24px;
    display: none;
    align-items: center;
    justify-content: center;
    background: #f8f8f8;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    color: #888;
    padding: 0;
    transition: color 0.2s, background 0.2s;
    flex-shrink: 0;
}

.dj-thumb-arrow:hover {
    background: #eee;
    color: var(--color-primary);
}

.dj-thumb-arrow.visible {
    display: flex;
}

.dj-thumb-arrow-up {
    margin-bottom: 6px;
}

.dj-thumb-arrow-down {
    margin-top: 6px;
}

.dj-gallery-thumb {
    width: 100%;
    aspect-ratio: 3 / 4;
    border: 2px solid transparent;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    padding: 0;
    background: none;
    flex-shrink: 0;
    transition: border-color 0.2s;
}

.dj-gallery-thumb:hover {
    border-color: #ccc;
}

.dj-gallery-thumb.active {
    border-color: var(--color-primary);
}

.dj-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Main image */
.dj-gallery-multi .woocommerce-product-gallery__wrapper {
    flex: 1;
    position: relative;
    min-width: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
    display: none !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image.dj-active {
    display: block !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce div.product div.images.dj-gallery-single .woocommerce-product-gallery__image {
    display: block !important;
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img {
    width: 100% !important;
    border-radius: 12px;
    display: block;
    height: auto !important;
}

.dj-gallery-single .woocommerce-product-gallery__image img {
    width: 100%;
    border-radius: 12px;
}

/* WooCommerce default thumbnails: hide (we use our own) */
.woocommerce div.product div.images .flex-control-thumbs {
    display: none !important;
}

/* Gallery navigation arrows */
.dj-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: background 0.2s;
    color: var(--color-primary);
}

.dj-gallery-nav:hover {
    background: #fff;
}

.dj-gallery-prev {
    left: 12px;
}

.dj-gallery-next {
    right: 12px;
}

/* ========================================
   PRODUCT SUMMARY
======================================== */
.woocommerce div.product .product_title {
    font-size: 34px;
    font-weight: 500;
    color: var(--color-primary);
    margin: 0 0 8px;
    line-height: 1.3;
}

.woocommerce div.product .price {
    font-size: 20px;
    font-weight: 400 !important;
    color: #888 !important;
    margin-bottom: 24px;
    display: block;
}

.woocommerce div.product .price del {
    font-size: 16px;
    color: #bbb;
    font-weight: 400;
    margin-right: 8px;
}

.woocommerce div.product .price ins {
    text-decoration: none;
    font-weight: 300;
}

/* Rating */
.woocommerce div.product .woocommerce-product-rating {
    margin-bottom: 16px;
}

/* Short description / excerpt */
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 24px;
}

.woocommerce div.product .woocommerce-product-details__short-description p {
    margin: 0 0 8px;
}

/* Old cart button native icons removed from here */

/* ========================================
   OVERRIDE: Custom Plugin Details
======================================== */
.woocommerce div.product .dj-personalizacao-container #toggle-personalizacao-btn {
    background-color: transparent !important;
    border: 1px solid var(--color-border) !important;
    color: var(--color-primary) !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    text-align: center !important;
    border-radius: 4px !important;
    padding: 14px 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px;
}

.woocommerce div.product .dj-personalizacao-container #toggle-personalizacao-btn:after {
    display: none !important;
    /* Remove dropdown caret */
}

.woocommerce div.product .dj-personalizacao-container #toggle-personalizacao-btn svg {
    width: 18px;
    height: 18px;
}

/* Modal Styles injected into plugin below */

.woocommerce div.product .dj-personalizacao-container #toggle-personalizacao-btn.personalizado {
    background-color: #f7f7f7 !important;
    border-color: #ccc !important;
    color: var(--color-primary) !important;
}

.woocommerce div.product .dj-personalizacao-container .dj-dropdown {
    box-shadow: none !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 4px !important;
}

/* Frete / Shipping simulator */
.shipping-simulator-for-woocommerce {
    margin-top: 24px;
}

.shipping-simulator-for-woocommerce .ssfw-title {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--color-primary) !important;
}

.shipping-simulator-for-woocommerce input[type="text"] {
    border: 1px solid var(--color-border) !important;
    height: 40px !important;
    padding: 0 16px !important;
}

.shipping-simulator-for-woocommerce button {
    background-color: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    height: 40px !important;
    font-weight: 500 !important;
}

/* ========================================
   SWATCHES: Cor e Tamanho
======================================== */
/* Hide original variation table rows (replaced by swatches) */
.woocommerce div.product form.variations_form table.variations tr:not(.dj-swatch-row) {
    display: none;
}

.dj-swatch-row td {
    padding: 0 0 16px !important;
    border: none !important;
}

.dj-swatch-wrap {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dj-swatch-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.dj-swatch-items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Color swatches */
.dj-swatch-color {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px 6px 6px;
    background: none;
    border: 1.5px solid var(--color-border);
    border-radius: 20px;
    cursor: pointer;
    font-size: 13px;
    color: var(--color-primary);
    transition: all 0.2s;
    font-family: 'Poppins', sans-serif;
}

.dj-swatch-color:hover {
    border-color: #999;
}

.dj-swatch-color.active {
    border-color: var(--color-primary);
    background: #f7f7f7;
}

.dj-swatch-color.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

.dj-swatch-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: block;
    flex-shrink: 0;
}

.dj-swatch-name {
    font-size: 13px;
    line-height: 1;
}

/* Size swatches */
.dj-swatch-size {
    min-width: 44px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    background: none;
    border: 1.5px solid var(--color-border);
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    transition: all 0.2s;
    font-family: 'Poppins', sans-serif;
}

.dj-swatch-size:hover {
    border-color: #999;
}

.dj-swatch-size.active {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.dj-swatch-size.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

/* Reset variations link */
.woocommerce div.product form.variations_form .reset_variations {
    font-size: 13px;
    color: var(--color-accent);
    margin-top: 8px;
    display: inline-block;
}

/* Variations form */
.woocommerce div.product form.variations_form table.variations {
    border: none;
    margin-bottom: 16px;
}

.woocommerce div.product form.variations_form table.variations td,
.woocommerce div.product form.variations_form table.variations th {
    border: none;
    padding: 0;
    background: none;
}

/* Quantity input */
.woocommerce div.product form.cart .quantity {
    margin-right: 12px;
}

.woocommerce div.product form.cart .quantity .qty {
    width: 60px;
    height: 48px;
    text-align: center;
    border: 1.5px solid var(--color-border);
    border-radius: 8px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    color: var(--color-primary);
}

/* Checkout and Add to cart buttons */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px;
    background: #405e54 !important;
    /* Elegant Green to combine nicely */
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 500;
    font-family: 'Poppins', sans-serif;
    cursor: pointer;
    transition: background 0.2s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart button.button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: #314a42 !important;
}

/* Icon for Add to Cart Button (Left) */
.woocommerce div.product form.cart .single_add_to_cart_button::before {
    content: " " !important;
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    background-color: #fff !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") no-repeat center / contain !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E") no-repeat center / contain !important;
}

/* Icon for Proceed to Checkout Button (Right) */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after {
    content: " " !important;
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    background-color: #fff !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") no-repeat center / contain !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") no-repeat center / contain !important;
}

/* Icon for Place Order Button (Left) */
.woocommerce-checkout #place_order::before {
    content: " " !important;
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    background-color: #fff !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E") no-repeat center / contain !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E") no-repeat center / contain !important;
}

/* Variation price display */
.woocommerce div.product .woocommerce-variation-price .price {
    font-size: 20px;
    font-weight: 300;
    color: #999;
    margin-bottom: 16px;
}

.woocommerce div.product .woocommerce-variation-availability {
    margin-bottom: 12px;
}

/* Product meta (SKU, categories, tags) */
.woocommerce div.product .product_meta {
    font-size: 13px;
    color: #888;
    padding-top: 24px;
    margin-top: 24px;
    border-top: 1px solid #f0f0f0;
}

.woocommerce div.product .product_meta>span {
    display: block;
    margin-bottom: 6px;
}

.woocommerce div.product .product_meta a {
    color: var(--color-primary);
    transition: color 0.2s;
}

.woocommerce div.product .product_meta a:hover {
    color: var(--color-accent);
}

/* ========================================
   PRODUCT TABS
======================================== */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 24px;
    padding-top: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
    border-bottom: 1px solid #e5e5e5;
    overflow: visible;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
    display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
    color: #888;
    border-bottom: 2px solid transparent;
    transition: all 0.2s;
    text-decoration: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--color-primary);
}

.woocommerce div.product .woocommerce-tabs .panel {
    padding: 0;
    margin: 0;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 16px;
}

.woocommerce div.product .woocommerce-tabs .panel p {
    font-size: 14px;
    line-height: 1.7;
    color: #555;
}

/* Additional info table */
.woocommerce div.product .woocommerce-tabs .shop_attributes {
    border: none;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes th {
    font-weight: 500;
    font-size: 14px;
    color: var(--color-primary);
    padding: 10px 16px 10px 0;
    border-bottom: 1px solid #f0f0f0;
    background: none;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes td {
    font-size: 14px;
    color: #555;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    background: none;
}

.woocommerce div.product .woocommerce-tabs .shop_attributes td p {
    margin: 0;
}

/* ========================================
   RELATED / UPSELL PRODUCTS
======================================== */
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.upsells {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid #f0f0f0;
}

.woocommerce div.product .related.products>h2,
.woocommerce div.product .up-sells.upsells>h2 {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 24px;
}

/* ========================================
   SINGLE PRODUCT: Responsive
======================================== */
@media (max-width: 899px) {
    .dj-product-top-wrap {
        flex-direction: column;
        gap: 12px;
    }

    .woocommerce div.product div.images {
        width: 100%;
    }

    .woocommerce div.product div.summary {
        width: 100%;
        position: static;
    }

    /* Mobile: hide thumbs container, show arrows */
    .dj-gallery-thumbs-container {
        display: none;
    }

    .dj-gallery-nav {
        display: flex;
    }

    .dj-gallery-multi .woocommerce-product-gallery__wrapper {
        overflow: hidden;
    }

    .woocommerce div.product .product_title {
        font-size: 28px;
        margin-bottom: 4px;
    }

    .woocommerce div.product .price {
        font-size: 18px;
        font-weight: 400 !important;
        color: #888 !important;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 10px 16px;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .woocommerce div.product form.cart .single_add_to_cart_button {
        width: 100%;
        text-align: center;
    }

    .dj-swatch-color {
        padding: 5px 10px 5px 5px;
        font-size: 12px;
    }

    .dj-swatch-dot {
        width: 18px;
        height: 18px;
    }
}

/* ========================================
   FLOATING TOAST NOTIFICATIONS
======================================== */

/* ---- Global WooCommerce Notices Styling ---- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-Message {
    background: #fafafa !important;
    border: 1px solid var(--color-border) !important;
    border-top: 3px solid var(--color-primary) !important;
    border-radius: 0 0 6px 6px !important;
    padding: 16px 20px 16px 44px !important;
    font-size: 14px !important;
    font-family: 'Poppins', sans-serif !important;
    color: var(--color-primary) !important;
    line-height: 1.5 !important;
    margin-bottom: 20px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
    list-style: none !important;
    position: relative !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    color: var(--color-primary) !important;
    position: absolute !important;
    left: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 16px !important;
}

/* Info - azul suave com accent */
.woocommerce-info {
    border-top-color: var(--color-accent) !important;
    background: #fdf9f7 !important;
}

.woocommerce-info::before {
    color: var(--color-accent) !important;
}

/* Success */
.woocommerce-message {
    border-top-color: #2d6a4f !important;
    background: #f5faf7 !important;
}

.woocommerce-message::before {
    color: #2d6a4f !important;
}

/* Error */
.woocommerce-error {
    border-top-color: #c0392b !important;
    background: #fdf5f4 !important;
}

.woocommerce-error::before {
    color: #c0392b !important;
}

/* Botões dentro de notices */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 8px 18px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    font-family: 'Poppins', sans-serif !important;
    transition: background 0.3s ease !important;
    float: right !important;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
    background: #3d3f50 !important;
}

/* WooCommerce error list items */
.woocommerce-error li {
    list-style: none !important;
    padding: 4px 0;
}

/* Hide original WooCommerce notices (we convert them to toasts via JS) */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info {
    display: none !important;
}

#dj-toast-container {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 420px;
    width: calc(100% - 48px);
    pointer-events: none;
}

.dj-toast {
    background: #fff;
    border-radius: 10px;
    padding: 16px 44px 16px 20px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10), 0 1px 4px rgba(0, 0, 0, 0.06);
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    color: var(--color-primary);
    line-height: 1.5;
    pointer-events: all;
    transform: translateX(120%);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    position: relative;
    border-left: 3px solid var(--color-accent);
}

.dj-toast.dj-toast-visible {
    transform: translateX(0);
    opacity: 1;
}

.dj-toast-close {
    position: absolute;
    top: 8px;
    right: 12px;
    background: none;
    border: none;
    font-size: 20px;
    color: #bbb;
    cursor: pointer;
    padding: 4px;
    line-height: 1;
    transition: color 0.2s;
}

.dj-toast-close:hover {
    color: var(--color-primary);
}

.dj-toast a.button,
.dj-toast a.wc-forward {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 16px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    transition: background 0.2s;
}

.dj-toast a.button:hover,
.dj-toast a.wc-forward:hover {
    background: var(--color-accent);
}

@media (max-width: 480px) {
    #dj-toast-container {
        top: 12px;
        right: 12px;
        max-width: calc(100% - 24px);
        width: calc(100% - 24px);
    }

    .dj-toast {
        padding: 14px 40px 14px 16px;
        font-size: 13px;
    }
}

/* ========================================
   MODERN CART & CHECKOUT (2 COLUMNS)
======================================== */

/* CART PAGE GRID */
@media (min-width: 900px) {
    .woocommerce-cart .woocommerce {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: flex-start;
        column-gap: 40px;
    }

    .woocommerce-cart .woocommerce-notices-wrapper {
        width: 100%;
    }

    .woocommerce-cart .woocommerce-cart-form {
        width: 63%;
        margin: 0;
    }

    .woocommerce-cart .cart-collaterals {
        width: 32% !important;
        float: none !important;
        margin: 0 !important;
        position: sticky;
        top: 100px;
        background: #fdfdfd;
        border: 1px solid #eaeaea;
        padding: 30px;
        border-radius: 8px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
    }
}

/* MOBILE RESPONSIVENESS REFINEMENTS FOR CART */
@media (max-width: 899px) {
    .woocommerce-cart .actions {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .woocommerce-cart .actions .coupon {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    .woocommerce-cart .actions .coupon input.input-text {
        width: 100% !important;
    }

    .woocommerce-cart .actions button.button {
        width: 100% !important;
    }
}

/* CHECKOUT PAGE GRID */
@media (min-width: 900px) {
    .woocommerce-checkout form.checkout {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: flex-start;
        column-gap: 40px;
        /* Reduced gap slightly to give more room for inputs */
    }

    .woocommerce-checkout .dj-checkout-left {
        width: 60%;
        /* Increased left checkout portion */
    }

    .woocommerce-checkout .dj-checkout-right {
        width: 35%;
        /* Reduced slightly right portion */
        position: sticky;
        top: 100px;
    }

    .woocommerce-checkout #customer_details {
        width: 100%;
        float: none;
        margin: 0;
    }

    /* Ensure col-1 and col-2 stack inside the left column */
    .woocommerce-checkout #customer_details .col-1,
    .woocommerce-checkout #customer_details .col-2 {
        width: 100%;
        float: none;
        margin-bottom: 30px;
    }

    /* Wrap the order review inside the right column nicely */
    .woocommerce-checkout #order_review_heading {
        margin-top: 0;
    }

    .woocommerce-checkout #order_review,
    .woocommerce-checkout #order_review_heading {
        background: #f9f9f9;
        padding: 0 30px;
        margin: 0;
        border-radius: 0;
    }

    .woocommerce-checkout #order_review_heading {
        padding-top: 30px;
        border-radius: 8px 8px 0 0;
        border: 1px solid #eaeaea;
        border-bottom: none;
    }

    .woocommerce-checkout #order_review {
        padding-bottom: 30px;
        border-radius: 0 0 8px 8px;
        border: 1px solid #eaeaea;
        border-top: none;
    }
}

/* ========================================
   CHECKOUT HEADER (Distraction Free)
======================================== */
body.woocommerce-checkout .dj-header {
    height: auto;
    min-height: 80px;
}

.dj-header-checkout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px var(--padding-x) !important;
    /* The container already gives var(--padding-x), but let's override avoiding 0 !important */
    flex-wrap: nowrap;
    width: 100%;
    min-height: 80px;
}

@media (min-width: 992px) {
    .dj-header-checkout {
        padding: 0 var(--padding-x) !important;
    }

    .dj-badge-mob {
        display: none !important;
    }
}

.dj-header-checkout .dj-logo {
    flex: 1;
    display: flex;
    justify-content: flex-start;
}

.dj-header-checkout .dj-checkout-progress {
    flex: 2;
    display: flex;
    justify-content: center;
    padding: 0 20px;
    transition: opacity 0.3s ease, height 0.3s ease;
}

.dj-header-checkout .dj-checkout-progress-bar {
    width: 100%;
    max-width: 350px;
    height: 24px;
    background: #f1f1f1;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}

.dj-header-checkout .dj-checkout-progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background: #405e54;
    border-radius: 12px;
    animation: fillProgress 1.5s ease-out forwards;
}

@keyframes fillProgress {
    0% {
        width: 0%;
    }

    100% {
        width: 90%;
    }
}

.dj-header-checkout .dj-checkout-progress-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.dj-header-checkout .dj-checkout-security {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.dj-security-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #405e54;
    font-weight: 500;
    text-transform: uppercase;
    background: rgba(64, 94, 84, 0.08);
    padding: 4px 10px;
    border-radius: 12px;
}

.dj-security-badge svg {
    width: 14px;
    height: 14px;
}

/* Tablet Adjustments for Checkout Header */
@media (max-width: 1024px) {
    .dj-badge-desk {
        display: none !important;
    }

    .dj-header-checkout {
        gap: 15px;
    }

    .dj-security-badge {
        font-size: 10px;
        padding: 4px 8px;
    }
}

/* Mobile Adjustments for Checkout Header (Only phones wrap) */
@media (max-width: 767px) {
    .dj-header-checkout {
        flex-wrap: wrap;
        gap: 15px;
        padding-top: 15px !important;
        padding-bottom: 15px !important;
        justify-content: space-between;
    }

    .dj-header-checkout .dj-logo {
        flex: 0 0 auto;
        justify-content: flex-start;
        order: 1;
    }

    .dj-header-checkout .dj-logo img {
        height: 35px;
    }

    .dj-header-checkout .dj-checkout-security {
        flex: 0 0 auto;
        order: 2;
        flex-direction: row;
        justify-content: flex-end;
        gap: 5px;
    }

    .dj-header-checkout .dj-checkout-progress {
        flex: 1 1 100%;
        order: 3;
        padding: 0;
    }

    .dj-security-badge {
        font-size: 9px;
        padding: 4px 6px;
        gap: 4px;
    }

    .dj-security-badge svg {
        width: 12px;
        height: 12px;
    }

    /* Fix overlaying issues by increasing main body margin when checkout is loaded */
    body.woocommerce-checkout .dj-main {
        margin-top: 120px !important;
    }

    body.woocommerce-checkout .dj-header {
        min-height: auto !important;
        /* allow the header to shrink seamlessly */
    }

    /* Hide progress bar on scroll in mobile and fix margin collapse */
    .dj-header.scrolled .dj-checkout-progress {
        display: none !important;
    }

    .dj-header.scrolled .dj-header-checkout {
        padding-bottom: 10px !important;
        padding-top: 10px !important;
        min-height: auto;
    }

    body.woocommerce-checkout .dj-header.scrolled~.dj-main {
        margin-top: 60px !important;
    }
}


/* Base Form Styling Refinements for Checkout */
@media (min-width: 900px) {

    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 15px;
        row-gap: 4px;
        width: 100%;
    }

    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row {
        width: 100% !important;
        float: none !important;
        margin-bottom: 20px !important;
        grid-column: span 1;
        /* Force 50% by default */
    }

    /* Force specific fields to span FULL 2 columns */
    .woocommerce-checkout #billing_country_field,
    .woocommerce-checkout #shipping_country_field,
    .woocommerce-checkout #billing_company_field,
    .woocommerce-checkout #shipping_company_field {
        grid-column: span 2 !important;
    }

    /* Hide WooCommerce's float-clearing elements that break grid layouts */
    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .clear,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .clear {
        display: none !important;
    }
}

/* ========================================
   GLOBAL WOOCOMMERCE FORM FIELDS STYLING
======================================== */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row input[type="email"],
.woocommerce form .form-row input[type="tel"],
.woocommerce form .form-row input[type="password"],
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea {
    border: 1px solid #ddd;
    border-radius: 8px;
    /* Rounded forms */
    padding: 14px 18px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    color: #333;
    background: #fdfdfd;
    transition: all 0.3s ease;
    width: 100%;
    box-sizing: border-box;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row input[type="email"]:focus,
.woocommerce form .form-row input[type="tel"]:focus,
.woocommerce form .form-row input[type="password"]:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--color-accent);
    outline: none;
    box-shadow: 0 0 0 2px rgba(231, 166, 145, 0.15);
    /* Accent faint light */
    background: #fff;
}

/* Global Standard for WooCommerce Buttons (matching form inputs) */
.woocommerce form.woocommerce-form button.button,
.woocommerce-page form.woocommerce-form button.button,
.woocommerce form.checkout button.button,
.woocommerce-page form.checkout button.button,
.woocommerce-account form button.button.woocommerce-Button {
    border-radius: 8px !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
}

/* Hide labels everywhere, they act as placeholders now */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
    display: none !important;
}

/* Exception for radios and checkboxes which need their label visibly displayed alongside */
.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.radio,
.woocommerce form .form-row label.inline,
.woocommerce-page form .form-row label.checkbox,
.woocommerce-page form .form-row label.radio,
.woocommerce-page form .form-row label.inline {
    display: inline-flex !important;
    align-items: center;
    font-size: 13px;
    font-weight: 400;
    color: #444;
    margin-bottom: 0;
    cursor: pointer;
    gap: 8px;
}

/* Select2 Global Standard */
.select2-container .select2-selection--single {
    height: 52px !important;
    /* Matches vertical padding */
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    background: #fdfdfd !important;
    display: flex !important;
    align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.5 !important;
    color: #555 !important;
    font-size: 14px;
    padding-left: 18px !important;
    padding-right: 32px !important;
    width: 100%;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 50px !important;
    right: 10px !important;
}

.select2-container--open .select2-selection--single,
.select2-container--focus .select2-selection--single {
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 2px rgba(231, 166, 145, 0.15) !important;
}

/* Beautiful Checkout Tables */
.woocommerce table.shop_table {
    border: none;
    border-collapse: collapse;
    width: 100%;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: 16px 10px;
    border-top: none;
    border-bottom: 1px solid #eee;
}

.woocommerce table.shop_table thead th {
    font-weight: 500;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
    color: #888;
    border-bottom: 2px solid #eaeaea;
}

/* ========================================
   PAYMENT METHODS AS TABS (CHECKOUT)
   Version: 4.0.0

   Abas horizontais em linha única, largura igual para todos os tamanhos.
   Técnica: CSS Grid + display:contents nos <li>.
   - li vira transparente → label e payment_box ficam direto no grid.
   - input[radio] com display:none é excluído do grid.
   - label com grid-row:1 → todas as abas na mesma linha.
   - payment_box com grid-row:2 + grid-column:1/-1 → abaixo de tudo, full-width.
   Sem media queries: mesmo layout em desktop e mobile.
======================================== */

/* Remove WooCommerce defaults: padding:1em 2em 2em; background:#ebe9eb */
.woocommerce-checkout #payment {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
}

/* ul: CSS Grid — abas na linha 1, conteúdo na linha 2 */
body.woocommerce-checkout #payment ul.payment_methods {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0 !important;
    padding: 0 !important;
    border: none !important;
    margin: 0 0 16px 0 !important;
    list-style: none !important;
    width: 100% !important;
}

/* li: display:contents — filhos viram itens diretos do grid */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
    display: contents !important;
}

/* Radio: oculto, não ocupa espaço no grid */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input[type="radio"] {
    display: none !important;
}

/* Labels: abas — todas na linha 1, largura igual */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    padding: 10px 4px !important;
    margin: 0 !important;
    border: 1px solid #ddd !important;
    border-right: none !important;
    background: #fff !important;
    cursor: pointer !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
    color: #666 !important;
    text-align: center !important;
    word-break: break-word !important;
    transition: background 0.2s, color 0.2s, border-color 0.2s !important;
    box-sizing: border-box !important;
    min-height: 60px !important;
}

/* Primeira aba: canto superior esquerdo arredondado */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:first-child > label {
    border-radius: 8px 0 0 0 !important;
}

/* Última aba: borda direita de volta + canto superior direito arredondado */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:last-child > label {
    border-right: 1px solid #ddd !important;
    border-radius: 0 8px 0 0 !important;
}

/* Aba ativa: cor accent, sem borda inferior (conecta ao payment_box) */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input[type="radio"]:checked + label {
    border-color: var(--color-accent) !important;
    border-bottom-color: transparent !important;
    background: rgba(231, 166, 145, 0.06) !important;
    color: var(--color-accent) !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Ícone da aba ativa muda para cor accent */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input[type="radio"]:checked + label::before {
    background-color: var(--color-accent) !important;
}

/* Última aba ativa: restaura borda direita na cor accent */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:last-child > input[type="radio"]:checked + label {
    border-right-color: var(--color-accent) !important;
}

/* payment_box: linha 2, todas as colunas — conteúdo abaixo das abas */
.woocommerce-checkout #payment div.payment_box {
    grid-row: 2 !important;
    grid-column: 1 / -1 !important;
    background: #f8f9fa !important;
    border: 1px solid #ddd !important;
    border-top: none !important;
    border-radius: 0 0 8px 8px !important;
    padding: 20px !important;
    box-shadow: none !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    position: relative !important;
}

.woocommerce-checkout #payment div.payment_box::before {
    display: none !important;
}

/* Ocultar imagens padrão dos plugins */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label img {
    display: none !important;
}

/* ── ÍCONES ──────────────────────────────────────────────────────────── */

/* Base: ícone de relógio (fallback para métodos não mapeados) */
.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    background-color: #999;
    transition: background-color 0.2s ease;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4l3 3'/%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4l3 3'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* 1. Cartão de Crédito */
.woocommerce-checkout #payment ul.payment_methods li[class*="credit_card"] > label::before,
.woocommerce-checkout #payment ul.payment_methods li[class*="stripe"] > label::before,
.woocommerce-checkout #payment ul.payment_methods li[class*="pagarme-payments-credit_card"] > label::before {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E") no-repeat center / contain;
}

/* 2. PIX */
.woocommerce-checkout #payment ul.payment_methods li[class*="pix"] > label::before {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 22 12 12 22 2 12 12 2'%3E%3C/polygon%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 22 12 12 22 2 12 12 2'%3E%3C/polygon%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3C/svg%3E") no-repeat center / contain;
}

/* 3. Boleto / Billet */
.woocommerce-checkout #payment ul.payment_methods li[class*="billet"] > label::before,
.woocommerce-checkout #payment ul.payment_methods li[class*="boleto"] > label::before,
.woocommerce-checkout #payment ul.payment_methods li[class*="bacs"] > label::before {
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5v14'/%3E%3Cpath d='M8 5v14'/%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M17 5v14'/%3E%3Cpath d='M21 5v14'/%3E%3C/svg%3E") no-repeat center / contain;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5v14'/%3E%3Cpath d='M8 5v14'/%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M17 5v14'/%3E%3Cpath d='M21 5v14'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Privacy Policy text below checkout */
.woocommerce-checkout .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-privacy-policy-text p {
    font-size: 13px !important;
    color: #888 !important;
    line-height: 1.5;
    margin-bottom: 15px;
}

.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p.form-row {
    margin-bottom: 20px;
}

/* ========================================
   CART PAGE SPECIFICS REFINEMENT
======================================== */
.woocommerce-cart .woocommerce-cart-form table.shop_table {
    border-collapse: collapse;
    width: 100%;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table th,
.woocommerce-cart .woocommerce-cart-form table.shop_table td {
    padding: 16px 10px;
    border-bottom: 1px solid #eaeaea;
}

.woocommerce-cart .woocommerce-cart-form table.shop_table thead th {
    font-size: 11px;
    text-transform: uppercase;
    color: #888;
    background: transparent;
    border-bottom: 2px solid #eaeaea;
    border-top: none;
}

.woocommerce-cart .actions {
    padding: 20px 0 !important;
}

.woocommerce-cart .actions .coupon {
    display: flex;
    align-items: center;
    gap: 10px;
}

.woocommerce-cart .actions .coupon input.input-text {
    width: 300px !important;
    max-width: 100% !important;
    height: 48px !important;
    border: 1px solid #ddd;
    border-radius: 8px;
    /* Standardize */
    padding: 0 16px !important;
    font-family: 'Poppins', sans-serif;
    margin: 0 !important;
}

.woocommerce-cart .actions button.button {
    height: 48px;
    padding: 0 24px !important;
    background: #f0f0f0 !important;
    color: #333 !important;
    border: none;
    border-radius: 8px;
    /* Standardize */
    font-size: 13px !important;
    font-weight: 500;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.woocommerce-cart .actions button.button:hover {
    background: #e4e4e4 !important;
}

/* Cart Totals Box Refinements */
.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce-cart .cart-collaterals h2 {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 24px;
    margin-top: 0;
    width: 100%;
    text-align: left;
}

.woocommerce-cart .cart_totals table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}

.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    padding: 16px 0;
    border-bottom: 1px solid #eaeaea;
    vertical-align: top;
}

.woocommerce-cart .cart_totals table.shop_table th {
    width: 40%;
    text-align: left;
    font-weight: 500;
    color: var(--color-primary);
    font-size: 14px;
}

.woocommerce-cart .cart_totals table.shop_table td {
    width: 60%;
    text-align: right;
    color: #666;
    font-size: 14px;
}

/* Fix Shipping Options Layout */
.woocommerce-cart .cart_totals table.shop_table tr.shipping {
    display: table-row !important;
}

.woocommerce-cart .cart_totals table.shop_table tr.shipping th {
    width: 25%;
    text-align: left;
    border-bottom: 1px solid #eaeaea;
    padding-top: 16px;
    padding-bottom: 16px;
}

.woocommerce-cart .cart_totals table.shop_table tr.shipping td {
    width: 75%;
    text-align: left;
    border-bottom: 1px solid #eaeaea;
    padding-top: 16px;
    padding-bottom: 16px;
}

/* Remove bottom border from final total */
.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
.woocommerce-cart .cart_totals table.shop_table tr.order-total td {
    border-bottom: none !important;
}

.woocommerce-cart .cart_totals ul#shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-cart .cart_totals ul#shipping_method li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 14px;
    line-height: 1.4;
    display: block !important;
    text-align: left;
}

.woocommerce-cart .cart_totals ul#shipping_method li input[type="radio"] {
    position: absolute;
    left: 0;
    top: 3px;
    margin: 0;
}

.woocommerce-cart .cart_totals ul#shipping_method li label {
    display: inline;
    font-size: 13px;
    color: #333;
    font-weight: 500;
    cursor: pointer;
}

/* This targets the plugin delivery texts to not squish! */
.woocommerce-cart .cart_totals ul#shipping_method li small,
.woocommerce-cart .cart_totals ul#shipping_method li span.delivery-time {
    display: block;
    font-size: 12px;
    color: #888;
    margin-top: 4px;
    font-weight: 400;
}

.woocommerce-cart p.woocommerce-shipping-destination {
    font-size: 12px;
    color: #888;
    margin-top: 16px;
    line-height: 1.5;
}

.woocommerce-cart .shipping-calculator-button {
    font-size: 13px;
    color: var(--color-primary);
    text-decoration: underline;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
}

/* Make single quantity inputs display nicely */
.woocommerce .quantity input.qty {
    width: 60px;
    height: 40px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-align: center;
    font-size: 14px;
    color: #333;
    font-family: inherit;
    margin: 0 auto;
}

/* Remove 'x' icon red background issues */
.woocommerce a.remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 20px;
    font-weight: 300;
    color: #ff4a4a !important;
    text-decoration: none;
    border-radius: 50%;
    transition: all 0.2s;
    margin: 0 auto;
}

.woocommerce a.remove:hover {
    background: #ff4a4a;
    color: #fff !important;
}

.woocommerce-cart td.product-thumbnail img {
    border-radius: 6px;
    max-width: 60px;
    height: auto;
}

.woocommerce-cart td.product-name a {
    color: var(--color-primary);
    font-weight: 500;
    text-decoration: none;
}

/* ========================================
   HOME BANNERS (SWIPER CAROUSEL)
======================================== */
.dj-home-banners {
    width: 100%;
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 0;
    z-index: 1;
}

.dj-home-banners::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 120px;
    background: linear-gradient(to top, rgba(255, 255, 255, 0.4) 0%, transparent 100%);
    z-index: 2;
    pointer-events: none;
}

.dj-home-banners .swiper-slide picture,
.dj-home-banners .swiper-slide img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* Let the image scale properly without distortion */
.dj-home-banners .swiper-slide img {
    min-height: 400px;
    object-position: center;
}

/* Swiper custom arrows matching the theme */
.dj-home-banners .swiper-button-next,
.dj-home-banners .swiper-button-prev {
    color: var(--color-primary) !important;
    background: rgba(255, 255, 255, 0.85);
    width: 44px !important;
    height: 44px !important;
    border-radius: 50%;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.dj-home-banners .swiper-button-next:hover,
.dj-home-banners .swiper-button-prev:hover {
    background: #fff;
    transform: scale(1.05);
}

.dj-home-banners .swiper-button-next:after,
.dj-home-banners .swiper-button-prev:after {
    font-size: 16px !important;
    font-weight: 600;
}

/* Swiper pagination dots */
.dj-home-banners .swiper-pagination-bullet {
    background: #fff !important;
    opacity: 0.6 !important;
    width: 10px !important;
    height: 10px !important;
    transition: all 0.3s;
}

.dj-home-banners .swiper-pagination-bullet-active {
    background: var(--color-primary) !important;
    opacity: 1 !important;
    transform: scale(1.3);
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    .dj-home-banners .swiper-slide img {
        min-height: 380px;
    }

    .dj-home-banners .swiper-button-next,
    .dj-home-banners .swiper-button-prev {
        display: flex !important;
        width: 36px !important;
        height: 36px !important;
    }

    .dj-home-banners .swiper-button-next:after,
    .dj-home-banners .swiper-button-prev:after {
        font-size: 14px !important;
    }

    .dj-home-banners {
        margin-bottom: 20px;
    }
}

/* Desktop: fixed height canvas for banners */
@media (min-width: 768px) {
    .dj-home-banners {
        height: 600px;
    }

    .dj-home-banners .swiper-slide {
        height: 600px;
    }

    .dj-home-banners .swiper-slide picture {
        display: block;
        width: 100%;
        height: 100%;
    }

    .dj-home-banners .swiper-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        min-height: unset;
    }
}

/* ========================================
   MY ACCOUNT PAGE
======================================== */

/* Layout: sidebar + content side by side (Only when logged in) */
.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    display: inline-block;
    vertical-align: top;
}

/* ---- Navigation Sidebar ---- */
.woocommerce-account .dj-account-nav {
    width: 260px;
    margin-right: 40px;
}

.woocommerce-account .dj-account-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #fafafa;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
}

.woocommerce-account .dj-account-nav ul li {
    margin: 0;
    border-bottom: 1px solid #f0f0f0;
}

.woocommerce-account .dj-account-nav ul li:last-child {
    border-bottom: none;
}

.woocommerce-account .dj-account-nav ul li a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    font-size: 14px;
    font-weight: 400;
    color: #555;
    transition: all 0.25s ease;
    text-decoration: none;
}

.woocommerce-account .dj-account-nav ul li a:hover {
    background: #f0f0f0;
    color: var(--color-primary);
}

.woocommerce-account .dj-account-nav ul li.is-active a {
    background: var(--color-primary);
    color: #fff;
    font-weight: 500;
}

.woocommerce-account .dj-account-nav ul li.is-active a .dj-nav-icon svg {
    stroke: #fff;
}

.woocommerce-account .dj-account-nav .dj-nav-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

.woocommerce-account .dj-account-nav .dj-nav-icon svg {
    stroke: #888;
    transition: stroke 0.25s ease;
}

.woocommerce-account .dj-account-nav ul li a:hover .dj-nav-icon svg {
    stroke: var(--color-primary);
}

/* Sair com cor especial */
.woocommerce-account .dj-account-nav ul li:last-child a {
    color: #999;
}

.woocommerce-account .dj-account-nav ul li:last-child a:hover {
    color: #c0392b;
    background: #fdf2f2;
}

.woocommerce-account .dj-account-nav ul li:last-child a:hover .dj-nav-icon svg {
    stroke: #c0392b;
}

/* Nav Badge (order count) */
.dj-nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    padding: 0 5px;
    margin-left: 6px;
    line-height: 1;
}

/* ---- Content Area ---- */
.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    width: calc(100% - 320px);
}

.woocommerce-account .woocommerce-MyAccount-content {
    width: 100%;
    /* Default for logged out or fallback */
}


/* My Account Login & Registration Forms (Logged out state) */
.woocommerce-account .u-columns.col2-set {
    display: flex !important;
    flex-direction: row !important;
    gap: 40px !important;
    margin-top: 30px !important;
    width: 100% !important;
    align-items: stretch !important;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    background: #ffffff !important;
    padding: 40px !important;
    border-radius: 16px !important;
    border: 1px solid #eee !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.05) !important;
    float: none !important;
    width: 100% !important;
    flex: 1 !important;
    margin: 0 !important;
}

.woocommerce-account .u-column1 {
    order: 1 !important;
}

.woocommerce-account .u-column2 {
    order: 2 !important;
}

/* Inclusão de inputs refinados */
.woocommerce-account .woocommerce-form-row input[type="text"],
.woocommerce-account .woocommerce-form-row input[type="email"],
.woocommerce-account .woocommerce-form-row input[type="password"] {
    background: #f9f9f9 !important;
    border: 1px solid #ddd !important;
    padding: 14px 16px !important;
    border-radius: 8px !important;
}

.woocommerce-account .woocommerce-form-row input:focus {
    background: #fff !important;
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 3px rgba(231, 166, 145, 0.1) !important;
}

/* Lost Password Page Styling */
.woocommerce-ResetPassword {
    background: #ffffff !important;
    padding: 40px !important;
    border-radius: 16px !important;
    border: 1px solid #eee !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.05) !important;
    max-width: 600px;
    margin: 30px 0;
}

.woocommerce-ResetPassword p {
    margin-bottom: 20px;
    font-size: 14px;
    color: #555;
    line-height: 1.6;
}

.woocommerce-ResetPassword button[type="submit"] {
    background: var(--color-primary) !important;
    color: #fff !important;
    padding: 14px 30px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
    margin-top: 15px !important;
    min-height: 48px !important;
}





/* ---- Dashboard Custom ---- */
.dj-dashboard {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Welcome Card */
.dj-welcome-card {
    display: flex;
    align-items: center;
    gap: 24px;
    background: linear-gradient(135deg, var(--color-primary) 0%, #3d3f50 100%);
    color: #fff;
    padding: 30px;
    border-radius: 12px;
}

.dj-welcome-avatar img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.3);
    object-fit: cover;
}

.dj-welcome-info h2 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 6px;
}

.dj-welcome-subtitle {
    font-size: 14px;
    opacity: 0.85;
    margin-bottom: 10px;
    line-height: 1.5;
}

.dj-welcome-meta {
    font-size: 13px;
    opacity: 0.7;
}

.dj-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dj-meta-item svg {
    stroke: rgba(255, 255, 255, 0.7);
}

/* Stats Cards */
.dj-dashboard-stats {
    display: flex;
    gap: 16px;
}

.dj-stat-card {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 20px;
    transition: all 0.3s ease;
}

.dj-stat-card:hover {
    border-color: var(--color-accent);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.dj-stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: #f7f7f7;
    flex-shrink: 0;
}

.dj-stat-icon svg {
    stroke: var(--color-accent);
}

.dj-stat-info {
    display: flex;
    flex-direction: column;
}

.dj-stat-number {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.2;
}

.dj-stat-label {
    font-size: 12px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Quick Actions */
.dj-dashboard-actions h3 {
    font-size: 16px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 16px;
}

.dj-actions-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.dj-action-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 24px 16px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    transition: all 0.3s ease;
    text-decoration: none !important;
    cursor: pointer;
}

.dj-action-card:hover {
    border-color: var(--color-accent);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.dj-action-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #f7f7f7;
    transition: all 0.3s ease;
}

.dj-action-card:hover .dj-action-icon {
    background: var(--color-primary);
}

.dj-action-icon svg {
    stroke: var(--color-primary);
    transition: stroke 0.3s ease;
}

.dj-action-card:hover .dj-action-icon svg {
    stroke: #fff;
}

.dj-action-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
}

.dj-action-desc {
    font-size: 12px;
    color: #999;
}

/* CTA Card */
.dj-action-cta {
    border-color: var(--color-accent);
    background: linear-gradient(135deg, #fff6f3 0%, #fff 100%);
}

.dj-action-cta .dj-action-icon {
    background: rgba(231, 166, 145, 0.15);
}

.dj-action-cta .dj-action-icon svg {
    stroke: var(--color-accent);
}

.dj-action-cta:hover .dj-action-icon {
    background: var(--color-accent);
}

.dj-action-cta:hover .dj-action-icon svg {
    stroke: #fff;
}

/* ---- WooCommerce Content Override ---- */
.woocommerce-account .woocommerce-MyAccount-content>p:first-child {
    display: none;
    /* Hide default "Hello X" */
}

/* Orders Table */
.woocommerce-account .woocommerce-orders-table {
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
}

.woocommerce-account .woocommerce-orders-table thead th {
    background: #fafafa;
    font-weight: 500;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #666;
    padding: 14px 16px;
    border-bottom: 1px solid var(--color-border);
}

.woocommerce-account .woocommerce-orders-table tbody td {
    padding: 14px 16px;
    font-size: 14px;
    border-bottom: 1px solid #f5f5f5;
}

.woocommerce-account .woocommerce-orders-table tbody tr:last-child td {
    border-bottom: none;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a {
    display: inline-block;
    padding: 6px 14px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    transition: background 0.3s ease;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions a:hover {
    background: #3d3f50;
}

/* Buttons */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"] {
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 28px !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    font-family: 'Poppins', sans-serif !important;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]:hover {
    background: #3d3f50 !important;
}

/* Form Fields */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields select {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
    transition: border-color 0.3s ease;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input:focus,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields input:focus,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields select:focus {
    outline: none;
    border-color: var(--color-accent);
}

/* ---- RESPONSIVE MOBILE ---- */
@media (max-width: 768px) {

    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        display: block;
        width: 100% !important;
    }

    .woocommerce-account .dj-account-nav {
        width: 100%;
        margin-right: 0;
        margin-bottom: 24px;
    }

    .woocommerce-account .dj-account-nav ul {
        display: flex;
        overflow-x: auto;
        border-radius: 8px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .woocommerce-account .dj-account-nav ul::-webkit-scrollbar {
        display: none;
    }

    .woocommerce-account .dj-account-nav ul li {
        border-bottom: none;
        border-right: 1px solid #f0f0f0;
        flex-shrink: 0;
        flex: 1;
        min-width: 0;
    }

    .woocommerce-account .dj-account-nav ul li:last-child {
        border-right: none;
    }

    .woocommerce-account .dj-account-nav ul li a {
        flex-direction: column;
        gap: 4px;
        padding: 12px 14px;
        font-size: 9px;
        text-align: center;
        white-space: nowrap;
    }

    .dj-welcome-card {
        flex-direction: column;
        text-align: center;
        padding: 24px 20px;
    }

    .dj-welcome-info h2 {
        font-size: 18px;
    }

    .dj-dashboard-stats {
        flex-direction: column;
    }

    .dj-actions-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .dj-actions-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   WISHLIST / SALVOS
======================================== */

/* ---- Save Button on Product Cards ---- */
.woocommerce ul.products li.product {
    position: relative;
}

.dj-save-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.dj-save-btn:hover {
    background: #fff;
    transform: scale(1.1);
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}

.dj-save-btn .dj-save-icon {
    stroke: #666;
    fill: none;
    transition: all 0.25s ease;
}

.dj-save-btn:hover .dj-save-icon {
    stroke: var(--color-primary);
}

/* Active (saved) state */
.dj-save-btn--active .dj-save-icon,
.dj-save-btn.dj-save-btn--active .dj-save-icon {
    stroke: var(--color-accent) !important;
    fill: var(--color-accent) !important;
}

.dj-save-btn--active,
.dj-save-btn.dj-save-btn--active {
    background: #fff;
}

/* Bounce animation */
@keyframes djSaveBounce {
    0% {
        transform: scale(1);
    }

    30% {
        transform: scale(1.3);
    }

    60% {
        transform: scale(0.9);
    }

    100% {
        transform: scale(1);
    }
}

.dj-save-bounce {
    animation: djSaveBounce 0.4s ease !important;
}

/* ---- Save Button on Single Product ---- */
.dj-save-btn--single {
    position: static;
    width: auto;
    height: auto;
    border-radius: 8px;
    padding: 14px 20px;
    background: #f5f5f5;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 8px;
    vertical-align: middle;
    box-shadow: none;
}

.dj-save-btn--single:hover {
    background: #eee;
    transform: none;
    box-shadow: none;
}

.dj-save-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    font-family: 'Poppins', sans-serif;
}

.dj-save-btn--single.dj-save-btn--active {
    background: rgba(231, 166, 145, 0.12);
}

.dj-save-btn--single.dj-save-btn--active .dj-save-label {
    color: var(--color-accent);
}

/* ---- Header Wishlist Counter ---- */
.dj-saved-icon {
    position: relative;
}

.dj-saved-count {
    position: absolute;
    top: 0;
    right: 0;
    background: var(--color-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
}

/* ---- Salvos Wrapper ---- */
.dj-salvos-wrapper {
    padding-left: var(--padding-x);
    padding-right: var(--padding-x);
}

.dj-salvos-page {
    min-height: 50vh;
    padding-bottom: 60px;
}

.dj-salvos-page .products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.dj-salvos-page .products li.product {
    position: relative;
}

.dj-salvos-page .products li.product img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    margin-bottom: 10px;
}

.dj-salvos-page .products li.product .woocommerce-loop-product__title {
    font-size: 15px;
    font-weight: 500;
    color: var(--color-primary);
    margin: 0 0 4px;
    padding: 0;
    line-height: 1.4;
}

.dj-salvos-page .products li.product .dj-product-category {
    font-size: 12px;
    color: #999;
    display: block;
    margin-bottom: 4px;
}

.dj-salvos-page .products li.product .price {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
}

/* Loading Spinner */
.dj-salvos-loading {
    text-align: center;
    padding: 60px 0;
    color: #999;
}

.dj-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid #eee;
    border-top-color: var(--color-accent);
    border-radius: 50%;
    animation: djSpin 0.7s linear infinite;
    margin: 0 auto 12px;
}

@keyframes djSpin {
    to {
        transform: rotate(360deg);
    }
}

/* Empty State (Shared) */
.dj-salvos-empty,
.dj-empty-cart {
    text-align: center;
    padding: 80px 20px;
    width: 100%;
}

.dj-salvos-empty-icon,
.dj-empty-cart-icon {
    margin-bottom: 20px;
}

.dj-salvos-empty-icon svg,
.dj-empty-cart-icon svg {
    stroke: #ddd;
}

.dj-salvos-empty h2,
.dj-empty-cart h2 {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.dj-salvos-empty p,
.dj-empty-cart p {
    font-size: 14px;
    color: #999;
    max-width: 400px;
    margin: 0 auto 24px;
    line-height: 1.5;
}

.dj-salvos-btn {
    display: inline-block;
    padding: 12px 28px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.3s ease;
}

.dj-salvos-btn:hover {
    background: #3d3f50;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .dj-salvos-page .products {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .dj-save-btn:not(.dj-save-btn--single) {
        width: 32px;
        height: 32px;
        top: 8px;
        right: 8px;
    }

    .dj-save-btn:not(.dj-save-btn--single) .dj-save-icon {
        width: 16px;
        height: 16px;
    }

    /* Single product: icon only on mobile */
    .dj-save-btn--single {
        padding: 14px;
        margin-left: 6px;
        gap: 0;
        width: auto;
        height: auto;
    }

    .dj-save-btn--single .dj-save-label {
        display: none;
    }

    .dj-save-btn--single .dj-save-icon {
        width: 22px;
        height: 22px;
    }
}

/* ========================================
   FOOTER
======================================== */
.dj-footer {
    margin-top: 100px;
    background-color: var(--color-primary);
    color: #fff;
    padding-top: 60px;
}

body.woocommerce-checkout .dj-footer {
    margin-top: 50px;
    padding-top: 0;
}

.dj-footer-container {
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--padding-x);
    display: grid;
    grid-template-columns: 30% 20% 20% 30%;
    gap: 40px;
    margin-bottom: 40px;
}

@media (min-width: 1025px) {
    .dj-footer-container>*:first-child {
        padding-right: 50px;
    }
}

.dj-footer-title {
    font-size: 18px;
    font-weight: 400;
    margin-bottom: 20px;
    color: var(--color-accent);
}

.dj-footer-section p {
    font-size: 14px;
    line-height: 1.6;
    color: #ccc;
    margin-bottom: 10px;
}

.dj-footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dj-footer-menu li {
    margin-bottom: 12px;
}

.dj-footer-menu a {
    color: #ccc;
    font-size: 14px;
    text-decoration: none;
    transition: color 0.3s ease;
}

.dj-footer-menu a:hover {
    color: var(--color-accent);
}

.dj-social-icons {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.dj-social-icons a {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.dj-social-icons a:hover {
    background-color: var(--color-accent);
    color: var(--color-primary);
}

.dj-footer-menu span {
    color: #888;
    font-size: 14px;
    cursor: default;
}

.dj-footer-bottom {
    background-color: rgba(0, 0, 0, 0.2);
    /* text-align: center; (removed because of flex) */
    padding: 20px var(--padding-x);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.dj-footer-bottom-container {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.dj-footer-info {
    flex: 1 1 auto;
    text-align: left;
}

.dj-footer-info p {
    font-size: 13px;
    color: #999;
    margin: 0 0 5px 0;
    line-height: 1.5;
}

.dj-footer-info p:last-child {
    margin-bottom: 0;
}

.dj-footer-badges {
    display: flex;
    align-items: center;
    gap: 15px;
}

.dj-footer-badges img {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.dj-footer-badges-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.dj-footer-badges-col a,
.dj-footer-badges-col img {
    display: block;
    line-height: 0;
}

.dj-footer-badges-col img {
    height: 42px;
    width: auto;
    object-fit: contain;
}

@media (max-width: 768px) {
    .dj-footer-bottom-container {
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }

    .dj-footer-info {
        text-align: center;
    }

    .dj-footer-badges {
        justify-content: center;
        margin-top: 10px;
    }

    .dj-footer-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

@media (max-width: 1024px) and (min-width: 769px) {
    .dj-footer-container {
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }
}

/* ========================================
   COLEÇÕES SECTION (Marquee)
======================================== */
.dj-collections-section {
    padding: 20px 0 20px 0;
    overflow: hidden;
    background: transparent;
    margin-top: -60px;
    position: relative;
    z-index: 2;
}

.dj-home-banners .swiper-pagination {
    display: none;
}

.dj-collections-header {
    text-align: center;
    margin-bottom: 40px;
    padding: 0 20px;
}

.dj-collections-header .dj-section-title {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.dj-collections-header .dj-section-subtitle {
    font-size: 16px;
    color: #666;
    font-weight: 400;
}

/* Marquee Container */
.dj-marquee-container {
    width: 100%;
    overflow: hidden;
    position: relative;
    display: flex;
    background: transparent;
}

/* Base Track */
.dj-marquee-track {
    display: flex;
    gap: 30px;
    padding: 0 15px;
    /* Half of gap */
    width: max-content;
    animation: marqueeScroll 85s linear infinite;
    background: transparent;
}

.dj-marquee-track:hover {
    animation-play-state: paused;
}

/* Marquee Items */
.dj-col-card {
    display: block;
    width: 320px;
    flex-shrink: 0;
    text-decoration: none;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    transform: scale(1);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    background: transparent;
}

.dj-col-card:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

.dj-col-card-media {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: transparent;
}

/* Rotating Images via CSS */
.dj-col-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.dj-col-img-base {
    opacity: 1;
}

.dj-col-img-fade1,
.dj-col-img-fade2 {
    animation: crossfadeImages 12s infinite;
}

.dj-col-img-fade1 {
    animation-delay: 4s;
}

.dj-col-img-fade2 {
    animation-delay: 8s;
}

@keyframes crossfadeImages {

    0%,
    25% {
        opacity: 0;
    }

    33%,
    58% {
        opacity: 1;
    }

    66%,
    100% {
        opacity: 0;
    }
}

/* Title & Overlay */
.dj-col-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(231, 166, 145, 0.3) 60%, rgba(231, 166, 145, 0) 100%);
    pointer-events: none;
}

.dj-col-label {
    position: absolute;
    bottom: 55px;
    left: 20px;
    right: 20px;
    color: rgba(255, 255, 255, 0.85);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 2px;
    z-index: 2;
    transition: transform 0.3s ease;
}

.dj-col-card:hover .dj-col-label {
    transform: translateY(-5px);
}

.dj-col-title {
    position: absolute;
    bottom: 25px;
    left: 20px;
    right: 20px;
    color: #fff;
    font-size: 26px;
    font-weight: 100;
    text-transform: uppercase;
    text-align: center;
    margin: 0;
    letter-spacing: 1px;
    z-index: 2;
    transition: transform 0.3s ease;
}

.dj-col-card:hover .dj-col-title {
    transform: translateY(-5px);
}

@keyframes marqueeScroll {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(calc(-33.333% - 10px), 0, 0);
        /* Accounts for gap logic in triplicated track */
    }
}

/* Responsive Overrides */
@media (max-width: 1024px) {
    .dj-col-card {
        width: 280px;
    }
}

@media (max-width: 768px) {
    .dj-collections-section {
        margin-top: -80px;
    }

    .dj-collections-header .dj-section-title {
        font-size: 26px;
    }

    .dj-collections-header .dj-section-subtitle {
        font-size: 14px;
    }

    .dj-col-card {
        width: 240px;
    }

    .dj-col-title {
        font-size: 18px;
        bottom: 20px;
    }

    .dj-marquee-track {
        gap: 15px;
        padding: 0 7.5px;
    }

    @keyframes marqueeScroll {
        0% {
            transform: translate3d(0, 0, 0);
        }

        100% {
            transform: translate3d(calc(-33.333% - 5px), 0, 0);
        }
    }
}

@media (max-width: 480px) {
    .dj-col-card {
        width: 200px;
    }
}

/* ========================================
   TECNOLOGIA BANNER
======================================== */
.dj-tech-banner {
    display: block;
    position: relative;
    margin-bottom: 30px;
    /* Space below mobile */
}

/* Create the shadow that fades at the edges */
.dj-tech-banner::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 15%;
    /* Concentrated more towards the center */
    width: 70%;
    /* Smaller width */
    height: 10px;
    border-radius: 50%;
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.12);
    /* Made much softer */
    z-index: -1;
}

.dj-tech-banner img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    z-index: 1;
    /* Keep image above shadow */
}

@media (min-width: 768px) {
    .dj-tech-banner {
        margin-top: 50px;
        margin-bottom: 50px;
        /* Space below desktop */
    }
}

/* ========================================
   BENTO GRID CATEGORIAS
======================================== */
.dj-bento-section {
    padding: 40px var(--padding-x);
    background: transparent;
}

.dj-bento-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 340px 340px;
    gap: 20px;
}

/* Card 1 (Feminino) - tall left */
.dj-bento-card-1 {
    grid-row: 1 / 3;
}

/* Card 2 (Masculino) - top right */
.dj-bento-card-2 {
    grid-row: 1 / 2;
}

/* Card 3 (Personalizados) - bottom right half */
.dj-bento-card-3 {
    grid-row: 2 / 3;
    grid-column: 2 / 3;
}

/* Card 4 (Acessórios) - hidden on this default, shown on alt layout */

.dj-bento-card {
    display: block;
    text-decoration: none;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.dj-bento-card:hover {
    transform: scale(1.02);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}

.dj-bento-media {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: transparent;
}

.dj-bento-card .dj-col-title {
    font-size: 36px;
    letter-spacing: 2px;
}

/* 3-column bento on larger screens for 4 items */
@media (min-width: 1024px) {
    .dj-bento-grid {
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: 320px 320px;
    }

    .dj-bento-card-1 {
        grid-column: 1 / 2;
        grid-row: 1 / 3;
    }

    .dj-bento-card-2 {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
    }

    .dj-bento-card-3 {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
    }

    .dj-bento-card-4 {
        grid-column: 3 / 4;
        grid-row: 1 / 3;
    }
}

@media (max-width: 1023px) and (min-width: 769px) {
    .dj-bento-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 300px 300px;
    }

    .dj-bento-card-1 {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
    }

    .dj-bento-card-2 {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
    }

    .dj-bento-card-3 {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }

    .dj-bento-card-4 {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
    }
}

@media (max-width: 768px) {
    .dj-bento-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 240px 240px;
        gap: 12px;
    }

    .dj-bento-card-1 {
        grid-column: 1 / 2;
        grid-row: 1 / 2;
    }

    .dj-bento-card-2 {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
    }

    .dj-bento-card-3 {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }

    .dj-bento-card-4 {
        grid-column: 2 / 3;
        grid-row: 2 / 3;
    }

    .dj-bento-section {
        padding: 25px 15px;
    }

    .dj-bento-card .dj-col-title {
        font-size: 18px;
        letter-spacing: 1px;
        bottom: 15px;
    }
}

@media (max-width: 480px) {
    .dj-bento-grid {
        grid-template-rows: 200px 200px;
    }
}

/* ========================================
   WOOCOMMERCE SALE BADGE
======================================== */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce-page span.onsale {
    background-color: var(--color-primary) !important;
    color: var(--color-accent) !important;
    font-family: 'Poppins', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border-radius: 4px !important;
    padding: 6px 12px !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1.4 !important;
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
    margin: 0 !important;
    z-index: 5;
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
}

/* ========================================
   SOBRE E SOCIAL PAGES
======================================== */
.dj-about-page,
.dj-social-page {
    background: #fff;
}

.dj-about-container {
    padding-top: 50px;
    padding-bottom: 50px;
}

.dj-about-box {
    background: #f7f7f7;
    border-radius: 20px;
    padding: 50px;
}

.dj-about-box-top-flush {
    margin-top: -15px;
    /* Creates a small breathing space below breadcrumbs */
}

.dj-about-main-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 40px;
    text-align: left;
}

@media (max-width: 767px) {
    .dj-about-box {
        padding: 30px 20px;
    }

    .dj-about-main-title {
        font-size: 28px;
        margin-bottom: 30px;
    }
}

.dj-about-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
}

@media (min-width: 900px) {
    .dj-about-grid {
        grid-template-columns: 1fr 400px;
        align-items: start;
    }
}

.dj-about-text h2 {
    font-size: 24px;
    margin-bottom: 15px;
    margin-top: 30px;
    font-weight: 500;
    color: var(--color-primary);
}

.dj-about-text h2:first-child {
    margin-top: 0;
}

.dj-about-text p {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    margin-bottom: 20px;
}

.dj-about-media {
    position: sticky;
    top: 100px;
    /* Keep it on screen when scrolling text */
}

.dj-about-video {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    display: block;
}

.dj-social-gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 60px;
}

@media (min-width: 768px) {
    .dj-social-gallery {
        grid-template-columns: repeat(4, 1fr);
    }
}

.dj-social-gallery img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease;
}

.dj-social-gallery img:hover {
    transform: translateY(-5px);
}

/* ========================================
   POLICY PAGES (Privacidade e Termos)
======================================== */
.dj-policy-page {
    background: #fff;
}

.dj-policy-container {
    padding-top: 50px;
    padding-bottom: 80px;
}

.dj-policy-main-title {
    font-size: 48px;
    font-weight: 500;
    color: var(--color-primary);
    margin-bottom: 40px;
    text-align: left;
}

.dj-policy-section {
    margin-bottom: 40px;
    max-width: 900px;
    /* Better readability for long text */
}

.dj-policy-section h2 {
    font-size: 24px;
    margin-bottom: 20px;
    color: var(--color-primary);
    font-weight: 500;
}

.dj-policy-section h3 {
    font-size: 18px;
    margin-bottom: 15px;
    margin-top: 25px;
    color: var(--color-primary);
    font-weight: 500;
}

.dj-policy-section p {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    margin-bottom: 15px;
}

.dj-policy-section ul {
    margin-bottom: 20px;
    padding-left: 20px;
}

.dj-policy-section li {
    font-size: 16px;
    line-height: 1.8;
    color: #555;
    margin-bottom: 10px;
    list-style-type: disc;
}

.dj-policy-section strong {
    color: var(--color-primary);
    font-weight: 600;
}

.dj-policy-section a {
    color: var(--color-accent);
    text-decoration: underline;
}

@media (max-width: 767px) {
    .dj-policy-main-title {
        font-size: 32px;
        margin-bottom: 30px;
    }

    .dj-policy-section h2 {
        font-size: 20px;
    }
}

/* ========================================
   WP LOGIN CUSTOMIZATION
   ======================================== */
body.login {
    background-color: #fbfbfb !important;
}

/* Remover logo do WordPress */
body.login h1 a {
    display: none !important;
}

/* Container do formulário */
body.login #loginform,
body.login #lostpasswordform,
body.login #resetpassform {
    background: #ffffff !important;
    border: 1px solid #eee !important;
    border-radius: 16px !important;
    padding: 40px !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.05) !important;
    margin-top: 20px !important;
    max-width: 320px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Campos de entrada */
body.login form .input,
body.login input[type="text"],
body.login input[type="password"] {
    background: #f9f9f9 !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    padding: 12px 15px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    box-shadow: none !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
}

body.login form .input:focus {
    border-color: var(--color-accent) !important;
    background: #fff !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(231, 166, 145, 0.1) !important;
}

/* Labels */
body.login label {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #555 !important;
    margin-bottom: 8px !important;
}

/* Botão de submissão */
body.login .button.button-primary {
    background: var(--color-primary) !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 0 25px !important;
    min-height: 48px !important;
    line-height: 48px !important;
    width: 100% !important;
    display: block !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    margin-top: 20px !important;
    transition: all 0.3s ease !important;
}

body.login .button.button-primary:hover {
    background: #3d3f50 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1) !important;
}

/* Mensagens de erro e informativas */
body.login .message,
body.login #login_error {
    border-left: 4px solid var(--color-accent) !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05) !important;
}

/* Links (Voltar ao site, Esqueci a senha) */
body.login #nav,
body.login #backtoblog {
    text-align: center !important;
    margin-top: 20px !important;
    padding: 0 !important;
}

body.login #nav a,
body.login #backtoblog a {
    color: #888 !important;
    font-size: 13px !important;
    transition: color 0.3s ease !important;
}

body.login #nav a:hover,
body.login #backtoblog a:hover {
    color: var(--color-accent) !important;
}

/* Checkbox "Lembrar de mim" */
body.login .forgetmenot {
    margin-top: 10px !important;
}

/* Reset de espaçamento nativo */
body.login div#login {
    padding: 8% 0 0 !important;
}

/* Sincronização de Botões WooCommerce com WP Login */
.woocommerce-account .woocommerce-form-login button[type="submit"],
.woocommerce-account .woocommerce-form-register button[type="submit"] {
    min-height: 48px !important;
    padding: 0 25px !important;
    border-radius: 8px !important;
}

/* Sincronização Final de Botões WooCommerce (Login/Cadastro) */
.woocommerce-account .woocommerce-form-login .button,
.woocommerce-account .woocommerce-form-register .button,
.woocommerce-account .woocommerce-form-login button[type="submit"],
.woocommerce-account .woocommerce-form-register button[type="submit"] {
    background: var(--color-primary) !important;
    color: #fff !important;
    min-height: 48px !important;
    padding: 0 30px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    transition: all 0.3s ease !important;
}

.woocommerce-account .woocommerce-form-login .button:hover,
.woocommerce-account .woocommerce-form-register .button:hover,
.woocommerce-account .woocommerce-form-login button[type="submit"]:hover,
.woocommerce-account .woocommerce-form-register button[type="submit"]:hover {
    background: #3d3f50 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1) !important;
}

/* ========================================
   ANNOUNCEMENT TOP BAR (MARQUEE)
   ======================================== */
.dj-top-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 40px;
    background-color: var(--color-primary);
    color: var(--color-accent);
    z-index: 1100;
    display: flex;
    align-items: center;
    overflow: hidden;
    font-size: 13px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: height 0.3s ease, font-size 0.3s ease;
}

.dj-top-bar.scrolled {
    height: 30px;
    font-size: 11px;
}

.dj-top-bar-marquee {
    display: flex;
    width: 100%;
    overflow: hidden;
    /* Ensure marquee doesn't spill out */
}

.dj-top-bar-content {
    display: flex;
    flex-shrink: 0;
    animation: dj-marquee 40s linear infinite;
    padding-left: 0;
    will-change: transform;
}

/* Loop timing: move exactly -50% because content is doubled in PHP */
@keyframes dj-marquee {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(-50%, 0, 0);
    }
}

.dj-top-bar-item {
    padding: 0 40px;
    /* More spacing between items */
    white-space: nowrap;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.dj-top-bar-item b {
    color: #fff;
    font-weight: 700;
    margin: 0 5px;
}

.dj-top-bar-divider {
    opacity: 0.3;
}

.dj-top-bar:hover .dj-top-bar-content {
    animation-play-state: paused;
}

/* Adjust Header Position dynamically */
.dj-header {
    top: 40px !important;
    transition: top 0.3s ease, height 0.3s ease;
}

.dj-top-bar.scrolled+.dj-header {
    top: 30px !important;
}

.dj-sidebar {
    top: 40px !important;
    transition: top 0.3s ease;
}

.dj-top-bar.scrolled~.dj-sidebar {
    top: 28px !important;
}

/* Adjust Main spacing */
.dj-main--front-page,
body:not(.home) .dj-main {
    margin-top: calc(80px + 40px);
}

@media (max-width: 767px) {
    .dj-top-bar {
        font-size: 11px;
        height: 35px;
    }

    .dj-top-bar.scrolled {
        height: 24px;
        font-size: 10px;
    }

    .dj-header {
        top: 35px !important;
    }

    .dj-top-bar.scrolled+.dj-header {
        top: 24px !important;
    }

    .dj-main--front-page,
    body:not(.home) .dj-main {
        margin-top: calc(80px + 35px);
    }
}