/* 07 — FILTRI, RICERCA, CART, CHECKOUT, FORMS */

.np-filter-bar {
    background: var(--np-surface);
    border: 1px solid var(--np-line);
    border-radius: var(--np-radius-lg);
    padding: var(--np-space-5) var(--np-space-6);
    margin-bottom: var(--np-space-7);
    display: flex;
    flex-wrap: wrap;
    gap: var(--np-space-5);
    align-items: center;
    box-shadow: var(--np-shadow-sm);
}

.np-filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--np-space-2);
    align-items: center;
}

.np-filter-label {
    font-family: var(--np-font-body);
    font-size: var(--np-text-xs);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--np-ink-mute);
    margin-right: var(--np-space-3);
    white-space: nowrap;
}

.np-filter-btn {
    display: inline-flex;
    align-items: center;
    padding: var(--np-space-2) var(--np-space-4);
    background: var(--np-surface-alt);
    border: 1px solid transparent;
    border-radius: var(--np-radius-full);
    font-family: var(--np-font-body);
    font-size: var(--np-text-sm);
    font-weight: 500;
    color: var(--np-ink-soft);
    text-decoration: none;
    transition: all var(--np-duration) var(--np-ease);
    white-space: nowrap;
    cursor: pointer;
}

.np-filter-btn:hover {
    background: var(--np-surface);
    border-color: var(--np-line-strong);
    color: var(--np-ink);
}

.np-filter-btn.active {
    background: var(--np-ink);
    color: white;
    border-color: var(--np-ink);
}

@media (max-width: 768px) {
    .np-filter-bar {
        padding: var(--np-space-4);
        flex-direction: column;
        align-items: stretch;
    }
    .np-filter-group {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        scrollbar-width: none;
        padding-bottom: var(--np-space-2);
    }
    .np-filter-group::-webkit-scrollbar { display: none; }
}

/* Sidebar widget */
.widget-title,
.widgettitle {
    font-family: var(--np-font-display) !important;
    font-size: var(--np-text-lg) !important;
    font-weight: 500 !important;
    color: var(--np-ink) !important;
    margin-bottom: var(--np-space-4) !important;
    padding-bottom: var(--np-space-3) !important;
    border-bottom: 1px solid var(--np-line) !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
}

.widget ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.widget ul li {
    padding: var(--np-space-2) 0 !important;
    border: none !important;
    font-size: var(--np-text-sm) !important;
}

.widget ul li a {
    color: var(--np-ink-soft) !important;
    text-decoration: none !important;
    transition: color var(--np-duration) var(--np-ease) !important;
}

.widget ul li a:hover { color: var(--np-gold) !important; }

/* Search overlay */
.np-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26,22,18,0.85);
    backdrop-filter: blur(16px);
    z-index: 9999;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 12vh;
    opacity: 0;
    transition: opacity var(--np-duration) var(--np-ease);
}

.np-search-overlay.active {
    display: flex;
    opacity: 1;
}

.np-search-modal {
    background: var(--np-surface);
    border-radius: var(--np-radius-lg);
    width: min(700px, 90vw);
    padding: var(--np-space-6);
    box-shadow: var(--np-shadow-lg);
    transform: translateY(-20px);
    transition: transform var(--np-duration) var(--np-ease-out);
}

.np-search-overlay.active .np-search-modal {
    transform: translateY(0);
}

.np-search-input {
    width: 100% !important;
    border: none !important;
    border-bottom: 2px solid var(--np-line) !important;
    background: transparent !important;
    font-family: var(--np-font-display) !important;
    font-size: var(--np-text-2xl) !important;
    color: var(--np-ink) !important;
    padding: var(--np-space-3) 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.np-search-input::placeholder { color: var(--np-ink-mute); }
.np-search-input:focus { border-bottom-color: var(--np-gold) !important; }

.np-search-suggestions {
    margin-top: var(--np-space-5);
    padding-top: var(--np-space-5);
    border-top: 1px solid var(--np-line);
}

.np-search-suggestions-label {
    font-size: var(--np-text-xs);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--np-ink-mute);
    margin-bottom: var(--np-space-3);
}

.np-search-suggestion-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--np-space-2);
}

.np-search-suggestion-tag {
    padding: var(--np-space-2) var(--np-space-3);
    background: var(--np-surface-alt);
    border-radius: var(--np-radius-full);
    font-size: var(--np-text-sm);
    color: var(--np-ink-soft);
    text-decoration: none;
    transition: all var(--np-duration) var(--np-ease);
    cursor: pointer;
    border: none;
}

.np-search-suggestion-tag:hover {
    background: var(--np-ink);
    color: white;
}

.np-search-close {
    position: absolute;
    top: var(--np-space-5);
    right: var(--np-space-5);
    background: rgba(255,255,255,0.1);
    color: white;
    border: 1px solid rgba(255,255,255,0.2);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--np-duration) var(--np-ease);
}

.np-search-close:hover {
    background: rgba(255,255,255,0.2);
    transform: rotate(90deg);
}

/* Cart */
.woocommerce-cart-form table.cart {
    border: none !important;
    width: 100% !important;
}

.woocommerce-cart-form table.cart thead {
    border-bottom: 1px solid var(--np-line);
}

.woocommerce-cart-form table.cart th {
    font-size: var(--np-text-xs) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--np-ink-mute) !important;
    padding: var(--np-space-4) !important;
    background: transparent !important;
    border: none !important;
}

.woocommerce-cart-form table.cart td {
    padding: var(--np-space-5) var(--np-space-4) !important;
    border-bottom: 1px solid var(--np-line) !important;
    background: transparent !important;
    vertical-align: middle !important;
}

.woocommerce-cart-form table.cart .product-thumbnail img {
    width: 80px !important;
    height: 80px !important;
    object-fit: cover !important;
    border-radius: var(--np-radius-sm) !important;
}

.cart_totals {
    background: var(--np-surface) !important;
    border: 1px solid var(--np-line) !important;
    border-radius: var(--np-radius-lg) !important;
    padding: var(--np-space-6) !important;
}

.cart_totals h2 {
    font-family: var(--np-font-display) !important;
    font-size: var(--np-text-xl) !important;
    margin-bottom: var(--np-space-5) !important;
}

.wc-proceed-to-checkout .checkout-button {
    background: var(--np-ink) !important;
    color: white !important;
    border-radius: var(--np-radius-sm) !important;
    font-weight: 600 !important;
    padding: var(--np-space-4) !important;
    text-align: center !important;
}

.wc-proceed-to-checkout .checkout-button:hover {
    background: var(--np-gold) !important;
}

/* Checkout */
.woocommerce-checkout #customer_details {
    background: var(--np-surface) !important;
    border: 1px solid var(--np-line) !important;
    border-radius: var(--np-radius-lg) !important;
    padding: var(--np-space-6) !important;
}

#order_review_heading {
    font-family: var(--np-font-display) !important;
    font-size: var(--np-text-xl) !important;
    margin-top: var(--np-space-7) !important;
    margin-bottom: var(--np-space-4) !important;
}

#order_review {
    background: var(--np-surface-alt) !important;
    border-radius: var(--np-radius-lg) !important;
    padding: var(--np-space-5) !important;
}

#payment ul.payment_methods {
    background: var(--np-surface) !important;
    border-radius: var(--np-radius) !important;
    padding: var(--np-space-3) !important;
    border: 1px solid var(--np-line) !important;
}

#place_order {
    background: var(--np-ink) !important;
    color: white !important;
    border-radius: var(--np-radius-sm) !important;
    width: 100% !important;
    font-weight: 600 !important;
    padding: var(--np-space-4) !important;
    margin-top: var(--np-space-5) !important;
}

#place_order:hover {
    background: var(--np-gold) !important;
}

/* Form inputs */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="number"],
input[type="password"],
textarea,
select,
.input-text {
    background: var(--np-surface) !important;
    border: 1px solid var(--np-line-strong) !important;
    border-radius: var(--np-radius-sm) !important;
    font-family: var(--np-font-body) !important;
    font-size: var(--np-text-base) !important;
    color: var(--np-ink) !important;
    padding: var(--np-space-3) var(--np-space-4) !important;
    transition: all var(--np-duration) var(--np-ease) !important;
    width: 100% !important;
    box-shadow: none !important;
}

input:focus,
textarea:focus,
select:focus,
.input-text:focus {
    border-color: var(--np-gold) !important;
    box-shadow: 0 0 0 3px var(--np-gold-glow) !important;
    outline: none !important;
}

label {
    font-family: var(--np-font-body) !important;
    font-size: var(--np-text-sm) !important;
    font-weight: 500 !important;
    color: var(--np-ink) !important;
    margin-bottom: var(--np-space-2) !important;
    display: block !important;
}

abbr.required {
    color: var(--np-error) !important;
    text-decoration: none !important;
    border: none !important;
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border: none !important;
    border-radius: var(--np-radius) !important;
    padding: var(--np-space-4) var(--np-space-5) !important;
    font-size: var(--np-text-sm) !important;
    box-shadow: var(--np-shadow-sm) !important;
}

.woocommerce-message {
    background: rgba(45,134,89,0.08) !important;
    color: var(--np-success) !important;
    border-left: 3px solid var(--np-success) !important;
}

.woocommerce-info {
    background: var(--np-gold-glow) !important;
    color: var(--np-gold-deep) !important;
    border-left: 3px solid var(--np-gold) !important;
}

.woocommerce-error {
    background: rgba(193,69,69,0.08) !important;
    color: var(--np-error) !important;
    border-left: 3px solid var(--np-error) !important;
}
