/*
Theme Name: Noir Commerce
Theme URI: https://example.com/noir-commerce
Author: OpenAI
Description: A premium dark WooCommerce storefront theme with Elementor-friendly page layouts.
Version: 1.2.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: noir-commerce
*/
:root{--nc-bg:#090909;--nc-panel:#141414;--nc-panel2:#1c1c1c;--nc-text:#f7f7f7;--nc-muted:#a6a6a6;--nc-line:#2b2b2b;--nc-accent:#d7ff3f;--nc-radius:4px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--nc-bg);color:var(--nc-text);font-family:Inter,Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit}.nc-container{width:min(1240px,calc(100% - 40px));margin-inline:auto}.nc-topbar{background:var(--nc-accent);color:#090909;text-align:center;padding:8px 12px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nc-header{position:sticky;top:0;z-index:99;background:rgba(9,9,9,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--nc-line)}.nc-header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.nc-logo{font-size:25px;font-weight:900;letter-spacing:-.06em;text-transform:uppercase}.nc-logo span{color:var(--nc-accent)}.nc-nav{display:flex;align-items:center;gap:28px}.nc-nav>li{list-style:none;position:relative}.nc-nav a{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.nc-nav a:hover,.nc-nav .current-menu-item>a{color:var(--nc-accent)}.nc-nav .sub-menu{display:none;position:absolute;top:100%;left:-18px;min-width:210px;padding:14px 18px;background:#171717;border:1px solid var(--nc-line);box-shadow:0 18px 40px #0008}.nc-nav li:hover>.sub-menu,.nc-nav li:focus-within>.sub-menu{display:block}.nc-nav .sub-menu li{list-style:none;padding:8px 0}.nc-actions{display:flex;gap:16px;align-items:center;font-size:13px}.nc-iconlink{position:relative;color:#eee}.nc-cart-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:var(--nc-accent);color:#090909;font-size:10px;font-weight:900;margin-left:4px}.nc-menu-toggle{display:none;background:none;border:1px solid var(--nc-line);color:white;padding:8px 11px}.nc-hero{padding:76px 0 60px;background:radial-gradient(ellipse at 78% 25%,#343a1a 0,transparent 34%),linear-gradient(135deg,#171717,#080808 65%);border-bottom:1px solid var(--nc-line);overflow:hidden}.nc-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px}.nc-eyebrow{color:var(--nc-accent);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.nc-hero h1{font-size:clamp(44px,6.8vw,88px);line-height:.96;letter-spacing:-.07em;margin:18px 0 22px;max-width:700px}.nc-hero p{max-width:470px;color:var(--nc-muted);font-size:16px}.nc-hero-art{min-height:350px;border:1px solid #373737;background:linear-gradient(145deg,#252525,#111);display:grid;place-items:center;position:relative;overflow:hidden}.nc-hero-art:before{content:"";position:absolute;width:270px;height:270px;border:1px solid #b6d82c55;border-radius:50%;box-shadow:0 0 0 42px #b6d82c0a,0 0 0 85px #b6d82c08}.nc-hero-art strong{position:relative;font-size:clamp(44px,6vw,90px);letter-spacing:-.09em;transform:rotate(-9deg);color:var(--nc-accent);text-shadow:0 16px 60px #000}.nc-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--nc-accent);color:#090909;padding:14px 22px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--nc-accent);transition:.25s}.nc-btn:hover{background:transparent;color:var(--nc-accent);transform:translateY(-2px)}.nc-btn-outline{background:transparent;color:var(--nc-text);border-color:#555}.nc-section{padding:72px 0}.nc-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.nc-section-head h2{font-size:clamp(28px,4vw,44px);line-height:1.05;letter-spacing:-.05em;margin:8px 0 0}.nc-section-head p{color:var(--nc-muted);margin:0}.nc-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.nc-cat{min-height:235px;background:linear-gradient(145deg,#242424,#111);border:1px solid var(--nc-line);padding:22px;display:flex;flex-direction:column;justify-content:space-between;transition:.3s;position:relative;overflow:hidden}.nc-cat:after{content:"";position:absolute;width:160px;height:160px;border:1px solid #d7ff3f33;border-radius:50%;right:-55px;top:30px;transition:.4s}.nc-cat:hover{border-color:var(--nc-accent);transform:translateY(-5px)}.nc-cat:hover:after{transform:scale(1.3)}.nc-cat small{color:var(--nc-accent);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.nc-cat h3{font-size:27px;letter-spacing:-.04em;margin:0;position:relative;z-index:1}.nc-cat span{font-size:12px;color:var(--nc-muted)}.nc-promo{padding:36px;background:var(--nc-accent);color:#090909;display:flex;align-items:center;justify-content:space-between;gap:25px}.nc-promo h2{font-size:clamp(28px,4vw,46px);line-height:1;margin:8px 0;letter-spacing:-.06em}.nc-promo .nc-btn{background:#090909;color:#fff;border-color:#090909}.nc-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.nc-product{min-width:0}.nc-product-image{aspect-ratio:4/5;background:#1a1a1a;border:1px solid var(--nc-line);display:grid;place-items:center;overflow:hidden;position:relative}.nc-product-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.nc-product:hover .nc-product-image img{transform:scale(1.05)}.nc-product-placeholder{font-size:13px;color:#777;text-transform:uppercase;letter-spacing:.1em}.nc-product-info{padding:13px 0}.nc-product-title{font-size:14px;font-weight:700;margin:0 0 5px}.nc-price{font-weight:800;color:var(--nc-accent)}.nc-price del{color:#777;font-weight:400;margin-right:6px}.nc-price ins{text-decoration:none}.nc-badge{position:absolute;top:12px;left:12px;background:var(--nc-accent);color:#090909;padding:5px 8px;font-size:10px;font-weight:900;text-transform:uppercase}.nc-benefits{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--nc-line)}.nc-benefit{padding:24px;border-right:1px solid var(--nc-line)}.nc-benefit:last-child{border:0}.nc-benefit b{display:block;font-size:14px}.nc-benefit span{font-size:12px;color:var(--nc-muted)}.nc-footer{padding:52px 0 24px;background:#050505;border-top:1px solid var(--nc-line)}.nc-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}.nc-footer h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em}.nc-footer p,.nc-footer a{color:var(--nc-muted);font-size:13px}.nc-footer a:hover{color:var(--nc-accent)}.nc-footer ul{padding:0;list-style:none}.nc-footer li{margin:8px 0}.nc-footer-bottom{border-top:1px solid var(--nc-line);margin-top:35px;padding-top:18px;color:#777;font-size:11px;display:flex;justify-content:space-between}.nc-page-title{padding:42px 0;border-bottom:1px solid var(--nc-line);background:#111}.nc-page-title h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.06em;margin:0}.nc-breadcrumb{font-size:12px;color:var(--nc-muted);margin-bottom:12px}.nc-content{padding:45px 0;min-height:40vh}.woocommerce,.woocommerce-page{color:var(--nc-text)}.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{background:var(--nc-accent);color:#090909;border-radius:0;font-weight:800}.woocommerce a.button:hover,.woocommerce button.button:hover{background:#fff;color:#090909}.woocommerce input,.woocommerce select,.woocommerce textarea{background:#151515;color:#fff;border:1px solid #444;padding:10px}.woocommerce div.product .product_title{font-size:clamp(28px,4vw,44px);letter-spacing:-.04em}.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--nc-accent)}.woocommerce ul.products li.product a img{background:#171717}.woocommerce ul.products li.product .price{color:var(--nc-accent)}.woocommerce span.onsale{background:var(--nc-accent);color:#090909;border-radius:0;min-height:auto;line-height:1;padding:8px 10px}.woocommerce .quantity .qty{width:4em}.woocommerce-message,.woocommerce-info{border-top-color:var(--nc-accent);background:#171717;color:#fff}.woocommerce-message:before,.woocommerce-info:before{color:var(--nc-accent)}.woocommerce table.shop_table{border-color:var(--nc-line)}.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-color:var(--nc-line)}.nc-shop-layout{display:grid;grid-template-columns:240px 1fr;gap:32px}.nc-sidebar{border-right:1px solid var(--nc-line);padding-right:22px}.nc-sidebar h3{font-size:14px;text-transform:uppercase}.nc-sidebar a{color:var(--nc-muted)}.nc-sidebar a:hover{color:var(--nc-accent)}.nc-shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px;color:var(--nc-muted);font-size:13px}.nc-newsletter{background:#141414;padding:35px;border:1px solid var(--nc-line);display:flex;align-items:center;justify-content:space-between;gap:25px}.nc-newsletter h2{margin:0;font-size:30px;letter-spacing:-.05em}.nc-newsletter p{color:var(--nc-muted);margin:5px 0 0}.nc-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.nc-reveal.is-visible{opacity:1;transform:none}
@media(max-width:1000px){.nc-nav{gap:15px}.nc-nav a{font-size:11px}.nc-products{grid-template-columns:repeat(3,1fr)}.nc-cats{grid-template-columns:repeat(2,1fr)}.nc-benefits{grid-template-columns:repeat(2,1fr)}.nc-benefit:nth-child(2){border-right:0}.nc-benefit:nth-child(-n+2){border-bottom:1px solid var(--nc-line)}.nc-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.nc-container{width:min(100% - 28px,1240px)}.nc-header-inner{min-height:70px}.nc-menu-toggle{display:block}.nc-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#0b0b0b;border-bottom:1px solid var(--nc-line);padding:15px 22px;align-items:stretch;gap:0;flex-direction:column}.nc-nav.is-open{display:flex}.nc-nav>li{padding:12px 0;border-bottom:1px solid #222}.nc-nav .sub-menu{position:static;display:block;border:0;box-shadow:none;padding:8px 0 0 15px;background:transparent}.nc-actions{gap:10px}.nc-hero{padding:48px 0}.nc-hero-grid{grid-template-columns:1fr;gap:30px}.nc-hero-art{min-height:220px}.nc-section{padding:48px 0}.nc-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.nc-cat{min-height:185px;padding:16px}.nc-cat h3{font-size:22px}.nc-shop-layout{grid-template-columns:1fr}.nc-sidebar{border-right:0;border-bottom:1px solid var(--nc-line);padding:0 0 18px}.nc-footer-grid{grid-template-columns:1fr 1fr;gap:20px}.nc-promo,.nc-newsletter{align-items:flex-start;flex-direction:column}.nc-footer-bottom{gap:10px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Adjust logo position in header */
header.nc-header .nc-header-inner > .nc-logo {
    margin-left: -25px !important;
    padding-left: 0 !important;
}

header.nc-header .nc-logo .custom-logo-link {
    margin: 0 !important;
    padding: 0 !important;
}

header.nc-header .nc-logo img.custom-logo {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
}



/* Full-width header container */
.nc-header .nc-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    box-sizing: border-box;
}

/* Header layout */
.nc-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 30px;
}

/* Navigation menu */
.nc-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: 30px;
}

/* Header logo */
.nc-logo {
    flex-shrink: 0;
}

/* Header action icons */
.nc-actions {
    flex-shrink: 0;
}

/* Responsive layout */
@media (max-width: 768px) {
    .nc-header .nc-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* =========================================================
   PREMIUM CATEGORY HERO BANNERS
   WooCommerce category thumbnails are used automatically.
   Set the image from Products > Categories > Edit > Thumbnail.
   ========================================================= */
.nc-category-hero {
    position: relative;
    min-height: 330px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 30%, rgba(215,255,63,.12), transparent 30%),
        linear-gradient(135deg, #191919, #080808);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    border-bottom: 1px solid var(--nc-line);
}

.nc-category-hero.has-category-image {
    min-height: 380px;
    background-position: center;
}

.nc-category-hero:after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.26));
}

.nc-category-hero-inner {
    position: relative;
    z-index: 2;
    padding: 58px 0;
}

.nc-category-hero .nc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
}

.nc-category-hero .nc-breadcrumb a {
    color: #fff;
}

.nc-category-hero .nc-breadcrumb a:hover {
    color: var(--nc-accent);
}

.nc-category-hero-copy {
    max-width: 780px;
}

.nc-category-hero .nc-eyebrow {
    display: inline-block;
    margin-bottom: 10px;
}

.nc-category-hero h1 {
    margin: 0;
    font-size: clamp(48px, 7vw, 88px);
    line-height: .92;
    letter-spacing: -.075em;
    text-transform: none;
    text-shadow: 0 10px 45px rgba(0,0,0,.5);
}

.nc-category-description {
    max-width: 650px;
    margin-top: 20px;
    color: #d0d0d0;
    font-size: 14px;
}

.nc-category-description p {
    margin: 0;
}

/* =========================================================
   PREMIUM MY ACCOUNT / LOGIN
   ========================================================= */
.woocommerce-account .nc-account-title {
    background:
        radial-gradient(circle at 75% 35%, rgba(215,255,63,.10), transparent 30%),
        linear-gradient(135deg, #171717, #070707);
}

.nc-page-title-sub {
    margin: 12px 0 0;
    max-width: 560px;
    color: var(--nc-muted);
    font-size: 14px;
}

.nc-account-content {
    padding-top: 60px;
    padding-bottom: 80px;
}

.woocommerce-account .woocommerce {
    max-width: 1050px;
    margin: 0 auto;
}

.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register {
    width: 100%;
    margin: 0;
    padding: 34px;
    border: 1px solid #2c2c2c;
    border-radius: 10px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012)),
        #111;
    box-shadow: 0 25px 80px rgba(0,0,0,.35);
}

.woocommerce-account .woocommerce .u-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
}

.woocommerce-account .woocommerce .u-column1,
.woocommerce-account .woocommerce .u-column2 {
    float: none;
    width: auto;
}

.woocommerce-account .woocommerce h2 {
    margin: 0 0 22px;
    font-size: 28px;
    line-height: 1.05;
    letter-spacing: -.05em;
}

.woocommerce-account .woocommerce form .form-row {
    margin: 0 0 17px;
    padding: 0;
}

.woocommerce-account .woocommerce form .form-row label {
    display: block;
    margin-bottom: 7px;
    color: #ddd;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.woocommerce-account .woocommerce form .form-row input.input-text,
.woocommerce-account .woocommerce form .form-row input[type="text"],
.woocommerce-account .woocommerce form .form-row input[type="email"],
.woocommerce-account .woocommerce form .form-row input[type="password"] {
    width: 100%;
    height: 50px;
    border: 1px solid #373737;
    border-radius: 4px;
    background: #090909;
    color: #fff;
    padding: 0 14px;
    outline: none;
    transition: .2s ease;
}

.woocommerce-account .woocommerce form .form-row input:focus {
    border-color: var(--nc-accent);
    box-shadow: 0 0 0 3px rgba(215,255,63,.08);
}

.woocommerce-account .woocommerce form .show-password-input {
    top: 14px;
}

.woocommerce-account .woocommerce form .woocommerce-form-login__rememberme {
    color: #aaa;
    font-size: 12px;
}

.woocommerce-account .woocommerce form .woocommerce-form-login__rememberme input {
    accent-color: var(--nc-accent);
}

.woocommerce-account .woocommerce form .button,
.woocommerce-account .woocommerce form.register .button {
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid var(--nc-accent);
    border-radius: 4px;
    background: var(--nc-accent);
    color: #080808;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    transition: .2s ease;
}

.woocommerce-account .woocommerce form .button:hover {
    background: #fff;
    border-color: #fff;
    color: #080808;
    transform: translateY(-1px);
}

.woocommerce-account .woocommerce .lost_password {
    margin: 16px 0 0;
    font-size: 12px;
}

.woocommerce-account .woocommerce .lost_password a {
    color: var(--nc-accent);
}

.woocommerce-account .woocommerce .woocommerce-privacy-policy-text,
.woocommerce-account .woocommerce .woocommerce-form-register__submit + p {
    color: #888;
    font-size: 11px;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation {
    width: 245px;
    padding: 12px;
    border: 1px solid var(--nc-line);
    border-radius: 10px;
    background: #111;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    border-radius: 5px;
    color: #bbb;
    font-size: 12px;
    font-weight: 700;
    transition: .2s ease;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation a:hover {
    background: var(--nc-accent);
    color: #090909;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
    width: calc(100% - 275px);
    padding: 30px;
    border: 1px solid var(--nc-line);
    border-radius: 10px;
    background: #111;
    color: #ccc;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-content strong {
    color: #fff;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-content a {
    color: var(--nc-accent);
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-Address,
.woocommerce-account .woocommerce .woocommerce-MyAccount-content .woocommerce-orders-table {
    border-color: var(--nc-line);
}

@media (max-width: 800px) {
    .nc-category-hero,
    .nc-category-hero.has-category-image {
        min-height: 300px;
    }

    .nc-category-hero-inner {
        padding: 44px 0;
    }

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

    .woocommerce-account .woocommerce .u-column1,
    .woocommerce-account .woocommerce .u-column2 {
        width: 100%;
    }

    .woocommerce-account .woocommerce .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce .woocommerce-MyAccount-content {
        width: 100%;
        margin-bottom: 18px;
    }
}

@media (max-width: 520px) {
    .woocommerce-account .woocommerce form.login,
    .woocommerce-account .woocommerce form.register {
        padding: 22px;
    }

    .nc-category-hero h1 {
        font-size: clamp(42px, 14vw, 64px);
    }
}


/* WooCommerce size selector as buttons */
.nc-size-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:0}
.nc-size-button{min-width:52px;height:46px;padding:0 15px;border:1px solid #444;border-radius:3px;background:#151515;color:var(--nc-text);font-size:13px;font-weight:800;cursor:pointer;transition:.2s ease}
.nc-size-button:hover{border-color:var(--nc-accent);color:var(--nc-accent);transform:translateY(-1px)}
.nc-size-button.is-selected,.nc-size-button:focus-visible{border-color:var(--nc-accent);background:var(--nc-accent);color:#090909;outline:none}
.woocommerce div.product form.cart .quantity{display:inline-flex;align-items:center;width:auto;min-height:46px;margin:0 12px 0 0;border:1px solid #444;background:#151515}
.woocommerce div.product form.cart .quantity .qty{width:54px;height:44px;margin:0;padding:0;border:0;border-left:1px solid #333;border-right:1px solid #333;background:transparent;color:var(--nc-text);text-align:center;-moz-appearance:textfield}
.woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button,.woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.nc-qty-button{width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--nc-text);font-size:21px;cursor:pointer}
.nc-qty-button:hover:not(:disabled){background:var(--nc-accent);color:#090909}
.nc-qty-button:disabled{opacity:.3;cursor:not-allowed}


/* ==========================================
   FULL ORIGINAL PRODUCT IMAGE
   WooCommerce Shop / Category / Archive
   ========================================== */

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img,
.woocommerce ul.products li.product img.original-product-image,
.woocommerce-page ul.products li.product img.original-product-image {

    width: 100% !important;
    height: auto !important;

    max-width: 100% !important;
    max-height: none !important;

    aspect-ratio: auto !important;

    object-fit: contain !important;
    object-position: center center !important;

    display: block !important;

    margin: 0 !important;
}