/* =====================================================
   NOUVEAU LUXE v2 — Main Stylesheet
   All colours/sizes via CSS vars set by Customizer
   ===================================================== */

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--nl-sans,'Montserrat',sans-serif);font-size:var(--nl-font-body-size,14px);line-height:1.7;color:var(--nl-text,#2d2d2d);background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .25s ease}
h1,h2,h3,h4,h5,h6{font-family:var(--nl-serif,'Cormorant Garamond',Georgia,serif);font-weight:300;line-height:1.15}

/* ── CONTAINER ── */
.nl-container{max-width:var(--nl-max-w,1360px);margin-left:auto;margin-right:auto}

/* ─────────────────────────────────────
   ANNOUNCEMENT BAR
───────────────────────────────────── */
.nl-announcement-bar{
    background:var(--nl-ann-bg,#0a0a0a);
    color:var(--nl-ann-col,#fff);
    text-align:center;
    padding:var(--nl-ann-pad,10px) 20px;
    font-family:var(--nl-sans);
    font-size:10.5px;
    letter-spacing:1.8px;
    font-weight:500;
    text-transform:uppercase;
    line-height:1.6
}
.nl-announcement-bar strong{color:var(--nl-gold,#c8a96e);font-weight:700}

/* ─────────────────────────────────────
   HEADER
───────────────────────────────────── */
.nl-header{
    background:var(--nl-hdr-bg,#fff);
    border-bottom:1px solid #e8e8e8;
    box-shadow:0 2px 16px rgba(0,0,0,.06);
    position:relative;
    z-index:900
}
.nl-header--sticky{position:sticky;top:0;z-index:900}
.nl-header.nl-scrolled{box-shadow:0 4px 28px rgba(0,0,0,.12)}

.nl-header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:var(--nl-hdr-h,74px);
    padding:0 48px;
    position:relative;
    /* Logo is absolutely centred on desktop.
       On mobile (767px) it becomes position:static
       and flex:1 so it sits between the icon groups. */
}

/* Logo */
.nl-logo{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    font-family:var(--nl-serif);
    font-size:26px;
    font-weight:300;
    letter-spacing:6px;
    text-transform:uppercase;
    color:var(--nl-black,#0a0a0a);
    white-space:nowrap;
    text-decoration:none
}
.nl-logo:hover{color:var(--nl-black)}
.nl-logo-accent{color:var(--nl-gold,#c8a96e)}
.nl-logo img{height:48px;width:auto}

/* Side controls */
.nl-header-left,.nl-header-right{display:flex;align-items:center;gap:16px;z-index:1}

.nl-header-icon{
    display:flex;
    align-items:center;
    gap:5px;
    color:var(--nl-charcoal,#1a1a1a);
    font-size:10px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
    transition:color .25s ease
}
.nl-header-icon:hover{color:var(--nl-gold)}
.nl-header-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7}

.nl-cart-icon{position:relative}
.nl-cart-count{
    background:var(--nl-gold);
    color:var(--nl-black);
    font-size:8px;
    font-weight:700;
    min-width:16px;
    height:16px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:absolute;
    top:-6px;
    right:-8px
}

/* Mobile toggle */
.nl-menu-toggle{
    background:none;
    border:none;
    cursor:pointer;
    color:var(--nl-charcoal);
    padding:4px;
    display:none;
    align-items:center
}
.nl-menu-toggle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7}

/* ─────────────────────────────────────
   NAVIGATION
───────────────────────────────────── */
.nl-nav{
    background:#fff;
    border-top:1px solid #e8e8e8
}
.nl-nav-list{
    display:flex;
    justify-content:center;
    list-style:none;
    padding:0 48px;
    max-width:var(--nl-max-w);
    margin:0 auto
}
.nl-nav-item{position:relative}

.nl-nav-item > a{
    display:flex;
    align-items:center;
    gap:4px;
    padding:15px 18px;
    font-family:var(--nl-sans);
    font-size:10px;
    letter-spacing:var(--nl-nav-sp,2px);
    font-weight:600;
    text-transform:uppercase;
    color:var(--nl-nav-c,#1a1a1a);
    border-bottom:2px solid transparent;
    transition:color .25s,border-color .25s
}
.nl-nav-item > a:hover,
.nl-nav-item.current > a,
.nl-nav-item.current-menu-item > a,
.nl-nav-item.current-menu-ancestor > a{
    color:var(--nl-nav-hov,#c8a96e);
    border-bottom-color:var(--nl-nav-hov,#c8a96e)
}
.nl-nav-item--sale > a{color:var(--nl-sale,#c0392b) !important}

.nl-caret{font-size:7px;transition:transform .25s}
.nl-nav-item:hover .nl-caret{transform:rotate(180deg)}

/* Mega menu */
.nl-mega-menu{
    display:none;
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%);
    background:#fff;
    border:1px solid #e8e8e8;
    border-top:3px solid var(--nl-mega-br,#c8a96e);
    padding:28px 32px;
    box-shadow:0 8px 40px rgba(0,0,0,.12);
    z-index:800;
    gap:24px
}
.nl-nav-item:hover .nl-mega-menu{display:grid}
.nl-mega-menu--2col{grid-template-columns:repeat(2,1fr);min-width:340px}
.nl-mega-menu--3col{grid-template-columns:repeat(3,1fr);min-width:520px}
.nl-mega-menu--4col{grid-template-columns:repeat(4,1fr);min-width:680px}

.nl-mega-col h4{
    font-family:var(--nl-sans);
    font-size:8.5px;
    letter-spacing:2.5px;
    font-weight:700;
    text-transform:uppercase;
    color:var(--nl-gold);
    margin-bottom:14px;
    padding-bottom:8px;
    border-bottom:1px solid #e8e8e8
}
.nl-mega-col ul{list-style:none}
.nl-mega-col ul li a{
    display:block;
    padding:5px 0;
    font-size:11px;
    letter-spacing:.8px;
    color:#6b6b6b;
    transition:color .2s,padding-left .2s
}
.nl-mega-col ul li a:hover{color:var(--nl-black);padding-left:5px}

/* ─────────────────────────────────────
   BUTTONS
───────────────────────────────────── */
.nl-btn{
    display:inline-block;
    font-family:var(--nl-sans);
    font-size:10px;
    letter-spacing:2.5px;
    font-weight:700;
    text-transform:uppercase;
    padding:14px 34px;
    border:2px solid transparent;
    cursor:pointer;
    text-align:center;
    text-decoration:none;
    transition:background .25s,color .25s,border-color .25s,transform .15s
}
.nl-btn:hover{transform:translateY(-2px);text-decoration:none}
.nl-btn--gold{background:var(--nl-gold);color:var(--nl-black);border-color:var(--nl-gold)}
.nl-btn--gold:hover{background:var(--nl-gold-lt,#e8cc9a);border-color:var(--nl-gold-lt,#e8cc9a);color:var(--nl-black)}
.nl-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.nl-btn--ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08)}
.nl-btn--black{background:var(--nl-black);color:#fff;border-color:var(--nl-black)}
.nl-btn--black:hover{background:var(--nl-gold);border-color:var(--nl-gold);color:var(--nl-black)}
.nl-btn--outline{background:transparent;color:var(--nl-black);border-color:var(--nl-black)}
.nl-btn--outline:hover{background:var(--nl-black);color:#fff}

/* ─────────────────────────────────────
   HERO
───────────────────────────────────── */
.nl-hero{
    position:relative;
    min-height:460px;
    overflow:hidden;
    background:var(--nl-charcoal)
}
.nl-hero-bg{
    position:absolute;inset:0;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    transform:scale(1.04);
    transition:transform 8s ease
}
.nl-hero:hover .nl-hero-bg{transform:scale(1)}
.nl-hero-overlay{position:absolute;inset:0}

.nl-hero-content{
    position:relative;z-index:2;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:80px 96px;
    max-width:660px;
    min-height:inherit
}
.nl-hero-eyebrow{
    font-family:var(--nl-sans);
    font-size:9px;letter-spacing:4px;font-weight:600;
    text-transform:uppercase;color:var(--nl-gold);
    margin-bottom:18px;
    display:flex;align-items:center;gap:14px
}
.nl-hero-eyebrow::before{content:'';width:32px;height:1px;background:var(--nl-gold);flex-shrink:0}

.nl-hero h1{
    font-family:var(--nl-serif) !important;
    font-weight:300 !important;color:#fff !important;
    line-height:1.08 !important;margin-bottom:20px !important;
    font-style:italic !important
}
.nl-hero h1 strong{font-style:normal !important;font-weight:600 !important;display:block}

.nl-hero-sub{
    color:rgba(255,255,255,.72);
    font-size:12px;letter-spacing:.5px;line-height:1.9;
    margin-bottom:34px;max-width:380px;font-weight:300
}
.nl-hero-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

.nl-hero-badge{
    position:absolute;right:80px;bottom:64px;
    width:118px;height:118px;border-radius:50%;
    background:var(--nl-gold);color:var(--nl-black);
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    text-align:center;z-index:3;
    animation:nlPulse 3s ease-in-out infinite
}
.nl-hero-badge strong{
    font-family:var(--nl-serif);font-size:22px;
    font-weight:700;line-height:1;display:block
}
.nl-hero-badge .badge-from,
.nl-hero-badge .badge-item{
    font-size:7.5px;letter-spacing:1.5px;
    font-weight:600;text-transform:uppercase;display:block
}
.nl-hero-badge .badge-item{color:rgba(0,0,0,.6);font-size:7px;margin-top:2px}
@keyframes nlPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

/* ─────────────────────────────────────
   TRUST STRIP
───────────────────────────────────── */
.nl-trust-strip{
    display:grid;grid-template-columns:repeat(3,1fr);
    background:var(--nl-trust-bg,#0a0a0a)
}
.nl-trust-item{
    padding:20px 32px;display:flex;
    align-items:center;gap:14px;
    color:var(--nl-trust-c,#fff);
    border-right:1px solid rgba(255,255,255,.07)
}
.nl-trust-item:last-child{border-right:none}
.nl-trust-icon{font-size:22px;flex-shrink:0}
.nl-trust-text{display:flex;flex-direction:column}
.nl-trust-text strong{font-size:10.5px;letter-spacing:1.5px;font-weight:600;text-transform:uppercase;margin-bottom:2px}
.nl-trust-text small{font-size:10px;color:rgba(255,255,255,.5)}

/* ─────────────────────────────────────
   SECTION HEADERS
───────────────────────────────────── */
.nl-section-header{text-align:center;padding:60px 24px 30px}
.nl-section-header--alt{background:var(--nl-prod-bg,#f7f5f2)}
.nl-section-tag{
    display:block;
    font-family:var(--nl-sans);
    font-size:8.5px;letter-spacing:3px;font-weight:700;
    text-transform:uppercase;color:var(--nl-gold);
    margin-bottom:10px
}
.nl-section-header h2{
    font-family:var(--nl-serif) !important;
    font-weight:300 !important;
    font-style:italic !important;
    color:var(--nl-black) !important;
    margin-bottom:0 !important
}
.nl-section-header h2 em{font-style:normal !important;font-weight:600 !important}
.nl-divider{width:48px;height:1px;background:var(--nl-gold);border:none;margin:0 auto 40px;display:block}
.nl-divider--alt{background:var(--nl-prod-bg,#f7f5f2)}

/* ─────────────────────────────────────
   CATEGORIES
───────────────────────────────────── */
.nl-categories{
    display:grid;
    grid-template-columns:repeat(2,1fr); /* 2 cols = 2×2 with 4 items */
    gap:6px;
    padding:0 0 6px;
    max-width:var(--nl-max-w);
    margin:0 auto;
}
.nl-cat-card{
    position:relative;
    aspect-ratio:4/3;       /* landscape — wider cards = more room for text */
    overflow:hidden;
    background:var(--nl-charcoal);
    display:block;
    cursor:pointer;
    text-decoration:none;
}
.nl-cat-card img{
    width:100%;height:100%;object-fit:cover;
    filter:brightness(.65);  /* slightly darker so text always readable */
    transition:transform .65s cubic-bezier(.25,.46,.45,.94),filter .4s ease;
}
.nl-cat-card:hover img{transform:scale(1.06);filter:brightness(.45)}

.nl-cat-overlay{
    position:absolute;inset:0;
    display:flex;flex-direction:column;
    justify-content:center;      /* vertically centred — not just bottom */
    align-items:center;
    text-align:center;
    padding:20px 16px;
    /* Strong gradient always visible, not just on hover */
    background:linear-gradient(135deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 100%);
}
.nl-cat-eyebrow{
    font-family:var(--nl-sans);
    font-size:8px;letter-spacing:3px;font-weight:700;
    text-transform:uppercase;color:var(--nl-gold,#c8a96e);
    margin-bottom:8px;display:block;
}
.nl-cat-title{
    font-family:var(--nl-serif);
    font-size:clamp(20px,3vw,32px);
    font-weight:400;color:#fff;
    font-style:italic;line-height:1.15;
    margin-bottom:16px;display:block;
    text-shadow:0 2px 8px rgba(0,0,0,.5); /* ensure readable over any image */
}
.nl-cat-btn{
    display:inline-block;font-family:var(--nl-sans);
    font-size:9px;letter-spacing:2px;font-weight:600;text-transform:uppercase;
    color:#fff;border:1px solid rgba(255,255,255,.6);padding:8px 22px;
    transition:background .25s,border-color .25s,color .25s;
}
.nl-cat-card:hover .nl-cat-btn{background:var(--nl-gold);border-color:var(--nl-gold);color:var(--nl-black)}

/* ─────────────────────────────────────
   FEATURED PRODUCTS
───────────────────────────────────── */
.nl-products-section{background:var(--nl-prod-bg,#f7f5f2);padding:0 48px 72px}
.nl-products-grid{
    display:grid;
    gap:20px;
    max-width:var(--nl-max-w);
    margin:0 auto;
    min-width:0;
}
/* Desktop columns from Customizer — overridden by breakpoints below */
@media(min-width:901px){.nl-products-grid{grid-template-columns:repeat(var(--nl-prod-cols,4),1fr) !important}}
/* Hard overrides — don't rely on CSS var inside media queries */
@media(max-width:1200px){.nl-products-grid{grid-template-columns:repeat(3,1fr) !important}}
@media(max-width:900px) {.nl-products-grid{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:767px) {.nl-products-grid{grid-template-columns:repeat(2,1fr) !important;gap:12px !important;padding:0 !important}}
@media(max-width:480px) {.nl-products-grid{grid-template-columns:1fr !important;gap:14px !important}}

.nl-product-card{background:var(--nl-prod-card,#fff);transition:box-shadow .3s;min-width:0;overflow:hidden}
.nl-product-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.12)}

.nl-product-img-wrap{position:relative;aspect-ratio:3/4;overflow:hidden;background:#e8e8e8}
.nl-product-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.25,.46,.45,.94)}
.nl-product-card:hover .nl-product-img-wrap img{transform:scale(1.06)}

.nl-badge{
    position:absolute;top:12px;left:12px;z-index:2;
    font-family:var(--nl-sans);font-size:8px;letter-spacing:1.5px;
    font-weight:700;text-transform:uppercase;padding:5px 10px
}
.nl-badge--new{background:var(--nl-gold);color:var(--nl-black)}
.nl-badge--sale{background:var(--nl-sale-bg,#c0392b);color:#fff}

.nl-card-actions{
    position:absolute;top:12px;right:12px;
    display:flex;flex-direction:column;gap:6px;
    opacity:0;transform:translateX(8px);
    transition:opacity .3s,transform .3s;z-index:2
}
.nl-product-card:hover .nl-card-actions{opacity:1;transform:translateX(0)}
.nl-action-btn{
    width:36px;height:36px;
    background:#fff;border:none;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,.12);transition:background .2s,color .2s;color:var(--nl-charcoal)
}
.nl-action-btn:hover{background:var(--nl-gold);color:var(--nl-black)}
.nl-action-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7}

.nl-product-info{padding:16px 14px}
.nl-product-brand{font-family:var(--nl-sans);font-size:8px;letter-spacing:2px;font-weight:700;text-transform:uppercase;color:var(--nl-gold);margin-bottom:4px}
.nl-product-name{font-family:var(--nl-serif) !important;font-size:17px !important;font-weight:400 !important;color:var(--nl-prod-nm,#0a0a0a) !important;margin-bottom:8px !important;line-height:1.25 !important}
.nl-product-name a{color:inherit}
.nl-product-name a:hover{color:var(--nl-gold)}
.nl-product-price{font-size:14px;font-weight:600;color:var(--nl-prod-pr,#0a0a0a);margin-bottom:12px}
.nl-product-price del{color:#6b6b6b;font-weight:400;font-size:12px}
.nl-product-price ins{text-decoration:none;color:var(--nl-sale,#c0392b)}

.nl-atc-btn{
    display:block;width:100%;padding:12px;
    background:var(--nl-woo-btn,#0a0a0a);color:var(--nl-woo-txt,#fff);
    border:2px solid var(--nl-woo-btn,#0a0a0a);
    font-family:var(--nl-sans);font-size:9.5px;
    letter-spacing:2px;font-weight:700;text-transform:uppercase;
    text-align:center;text-decoration:none;cursor:pointer;
    transition:background .25s,color .25s,border-color .25s
}
.nl-atc-btn:hover{background:var(--nl-woo-hov,#c8a96e);border-color:var(--nl-woo-hov,#c8a96e);color:var(--nl-black)}

.nl-view-all{text-align:center;padding-top:44px}

/* ─────────────────────────────────────
   EDITORIAL
───────────────────────────────────── */
.nl-editorial{display:grid;grid-template-columns:1fr 1fr;min-height:480px}
.nl-editorial--right .nl-editorial-img{order:2}
.nl-editorial--right .nl-editorial-content{order:1}

.nl-editorial-img{background-position:center;background-size:cover;min-height:380px}
.nl-editorial-content{
    background:var(--nl-ed-bg,#1a1a1a);
    display:flex;flex-direction:column;justify-content:center;
    padding:72px 64px;color:#fff
}
.nl-ed-tag{font-family:var(--nl-sans);font-size:8.5px;letter-spacing:3px;font-weight:700;text-transform:uppercase;color:var(--nl-gold);margin-bottom:14px}
.nl-editorial-content h2{font-family:var(--nl-serif) !important;font-weight:300 !important;font-style:italic !important;line-height:1.18 !important;margin-bottom:20px !important;color:#fff !important}
.nl-editorial-content h2 strong{font-style:normal !important;font-weight:600 !important;display:block}
.nl-editorial-content p{font-size:12px;line-height:1.9;color:rgba(255,255,255,.62);margin-bottom:28px;font-weight:300}

/* ─────────────────────────────────────
   BRAND RAIL
───────────────────────────────────── */
.nl-brands{background:var(--nl-br-bg,#fff);padding:48px;text-align:center;border-top:1px solid #e8e8e8}
.nl-brands-label{font-family:var(--nl-sans);font-size:8.5px;letter-spacing:3px;font-weight:600;text-transform:uppercase;color:#6b6b6b;margin-bottom:28px;display:block}
.nl-brands-list{display:flex;justify-content:center;align-items:center;gap:52px;flex-wrap:wrap}
.nl-brands-list span{font-family:var(--nl-serif);font-size:20px;font-weight:300;letter-spacing:3px;color:#6b6b6b;text-transform:uppercase;transition:color .25s;cursor:default;border-bottom:1px solid transparent;padding-bottom:2px}
.nl-brands-list span:hover{color:var(--nl-black);border-bottom-color:var(--nl-gold)}

/* ─────────────────────────────────────
   FOOTER
───────────────────────────────────── */
.nl-footer{background:var(--nl-foot-bg,#0a0a0a);color:var(--nl-foot-txt,rgba(255,255,255,.55));padding:64px 48px 32px}
.nl-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;padding:0 0 0 0}
.nl-footer-logo{font-family:var(--nl-serif);font-size:22px;font-weight:300;letter-spacing:5px;text-transform:uppercase;color:#fff;margin-bottom:14px}
.nl-footer-logo img{height:40px;width:auto;filter:brightness(0) invert(1)}
.nl-footer-brand p{font-size:11px;line-height:1.95}
.nl-footer-socials{display:flex;gap:10px;margin-top:20px}
.nl-social-btn{
    width:36px;height:36px;border:1px solid rgba(255,255,255,.18);
    display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:600;cursor:pointer;
    transition:border-color .25s,color .25s;color:var(--nl-foot-txt);text-decoration:none
}
.nl-social-btn:hover{border-color:var(--nl-gold) !important;color:var(--nl-gold) !important}
.nl-footer-col h5{font-family:var(--nl-sans);font-size:8.5px;letter-spacing:2.5px;font-weight:700;text-transform:uppercase;color:#fff;margin-bottom:20px}
.nl-footer-col ul{list-style:none}
.nl-footer-col ul li{margin-bottom:10px}
.nl-footer-col ul li a{font-size:11px;color:var(--nl-foot-txt);transition:color .25s;letter-spacing:.5px}
.nl-footer-col ul li a:hover{color:var(--nl-foot-lh,#c8a96e)}
.nl-footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.nl-footer-bottom p{font-size:10px;letter-spacing:.5px}
.nl-payment-icons{display:flex;gap:8px;flex-wrap:wrap}
.nl-payment-icon{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);padding:5px 10px;font-size:8.5px;letter-spacing:1px;color:rgba(255,255,255,.5);font-weight:700}

/* ─────────────────────────────────────
   WOOCOMMERCE
───────────────────────────────────── */
.nl-woo-main .page-title,.woocommerce-products-header__title{font-family:var(--nl-serif) !important;font-size:36px !important;font-weight:300 !important;font-style:italic !important;margin-bottom:24px !important}
.woocommerce ul.products{display:grid !important;list-style:none !important;margin:0 !important;padding:0 !important;gap:20px !important}
/* Default 4-col only on desktop — mobile overrides below */
@media(min-width:769px){.woocommerce ul.products{grid-template-columns:repeat(var(--nl-woo-cols,4),1fr) !important}}
@media(max-width:768px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr) !important;gap:12px !important}}
@media(max-width:480px){.woocommerce ul.products{grid-template-columns:1fr !important}}
.woocommerce ul.products li.product{margin:0 !important;float:none !important;width:auto !important;background:#fff;transition:box-shadow .3s}
.woocommerce ul.products li.product:hover{box-shadow:0 8px 32px rgba(0,0,0,.1)}
.woocommerce ul.products li.product a img{margin:0 !important;width:100% !important;aspect-ratio:3/4;object-fit:cover}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--nl-serif) !important;font-size:17px !important;font-weight:400 !important;padding:14px 14px 4px !important;color:var(--nl-black) !important}
.woocommerce ul.products li.product .price{padding:0 14px 8px !important;font-weight:600 !important;font-size:14px !important}
.woocommerce ul.products li.product .price del{color:#6b6b6b !important}
.woocommerce ul.products li.product .price ins{color:var(--nl-sale,#c0392b) !important;text-decoration:none !important}
.woocommerce ul.products li.product .button{display:block !important;width:calc(100% - 28px) !important;margin:0 14px 14px !important;padding:11px !important;font-family:var(--nl-sans) !important;font-size:9.5px !important;letter-spacing:2px !important;font-weight:700 !important;text-transform:uppercase !important;text-align:center !important;background:var(--nl-woo-btn,#0a0a0a) !important;color:var(--nl-woo-txt,#fff) !important;border:2px solid var(--nl-woo-btn,#0a0a0a) !important;border-radius:0 !important}
.woocommerce ul.products li.product .button:hover{background:var(--nl-woo-hov,#c8a96e) !important;border-color:var(--nl-woo-hov,#c8a96e) !important;color:var(--nl-black) !important}
.woocommerce div.product .product_title{font-family:var(--nl-serif) !important;font-size:38px !important;font-weight:300 !important;font-style:italic !important}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--nl-black) !important;font-size:22px !important;font-weight:600 !important}
.woocommerce div.product .single_add_to_cart_button{background:var(--nl-woo-btn,#0a0a0a) !important;color:var(--nl-woo-txt,#fff) !important;border:2px solid var(--nl-woo-btn,#0a0a0a) !important;border-radius:0 !important;font-family:var(--nl-sans) !important;font-size:11px !important;letter-spacing:2px !important;font-weight:700 !important;text-transform:uppercase !important;padding:16px 40px !important}
.woocommerce div.product .single_add_to_cart_button:hover{background:var(--nl-woo-hov,#c8a96e) !important;border-color:var(--nl-woo-hov,#c8a96e) !important;color:var(--nl-black) !important}
#payment #place_order{background:var(--nl-gold) !important;color:var(--nl-black) !important;border-radius:0 !important;font-family:var(--nl-sans) !important;font-size:10px !important;letter-spacing:2px !important;font-weight:700 !important}
.woocommerce-breadcrumb{font-size:10px !important;letter-spacing:1px !important;color:#6b6b6b !important}
.woocommerce-breadcrumb a{color:#6b6b6b !important}
.woocommerce-breadcrumb a:hover{color:var(--nl-gold) !important}
.woocommerce span.onsale{background:var(--nl-sale-bg,#c0392b) !important;border-radius:0 !important;font-family:var(--nl-sans) !important;font-size:8px !important;letter-spacing:1.5px !important;font-weight:700 !important;min-height:auto !important;padding:5px 10px !important;line-height:1 !important}

/* ═══════════════════════════════════════
   RESPONSIVE — Mobile-first fixes
   Root causes fixed:
   1. Logo absolute → relative on mobile
   2. All 48px paddings → 16px on mobile
   3. Sections stack cleanly
   4. No horizontal overflow
═══════════════════════════════════════ */

/* Prevent any horizontal scroll globally */
html, body { overflow-x: hidden; max-width: 100%; }

/* ── 1200px — Large tablet / small desktop ── */
@media (max-width: 1200px) {
    .nl-header-inner  { padding: 0 24px; }
    .nl-nav-list      { padding: 0 24px; }
    .nl-products-grid { grid-template-columns: repeat(3, 1fr); }
    .nl-footer-grid   { grid-template-columns: 1fr 1fr; gap: 32px; }
    .nl-footer        { padding: 56px 32px 28px; }
    .nl-products-section { padding: 0 32px 60px; }
}

/* ── 992px — Tablet ── */
@media (max-width: 992px) {
    /* Hero */
    .nl-hero-content { padding: 60px 40px; max-width: 100%; }
    .nl-hero-badge   { display: none; }

    /* Trust */
    .nl-trust-strip  { grid-template-columns: 1fr; }
    .nl-trust-item   { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
    .nl-trust-item:last-child { border-bottom: none; }

    /* Categories */
    .nl-categories   { grid-template-columns: repeat(2, 1fr); gap: 4px; }

    /* Products */
    .nl-products-grid      { grid-template-columns: repeat(2, 1fr); }
    .nl-products-section   { padding: 0 24px 48px; }
    /* Editorial */
    .nl-editorial    { grid-template-columns: 1fr; }
    .nl-editorial--right .nl-editorial-img,
    .nl-editorial--right .nl-editorial-content { order: unset; }
    .nl-editorial-img     { min-height: 300px; order: 1; }
    .nl-editorial-content { padding: 48px 36px; order: 2; }

    /* WooCommerce */
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
    .nl-woo-main { padding: 24px 24px 48px !important; }
}

/* ── 767px — Mobile landscape / large phone ── */
@media (max-width: 767px) {

    /* ── ANNOUNCEMENT BAR ── */
    .nl-announcement-bar {
        font-size: 9px;
        letter-spacing: 0.8px;
        padding: 8px 12px;
        line-height: 1.7;
    }

    /* ── HEADER ── */
    .nl-header-inner {
        padding: 0 16px;
        height: 60px;
    }

    /* On mobile the logo switches from absolute-centred to
       flex-centred so it doesn't overlap the icons */
    .nl-logo {
        position: static;        /* remove absolute */
        transform: none;          /* remove translateX */
        flex: 1;
        text-align: center;
        font-size: 18px;
        letter-spacing: 3px;
    }
    .nl-logo img { height: 36px; margin: 0 auto; }

    .nl-header-left,
    .nl-header-right { flex-shrink: 0; gap: 10px; }

    /* Hide desktop "Account" text label, keep icon */
    .nl-header-icon span.hide-mobile { display: none; }

    /* Show hamburger */
    .nl-menu-toggle { display: flex; }

    /* ── NAV — full-width mobile drawer ── */
    .nl-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border-top: 2px solid var(--nl-gold, #c8a96e);
        box-shadow: 0 8px 24px rgba(0,0,0,.15);
        z-index: 800;
        max-height: calc(100vh - 60px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .nl-nav.open { display: block; }

    .nl-nav-list {
        flex-direction: column;
        padding: 0;
    }

    .nl-nav-item > a {
        padding: 14px 20px;
        font-size: 11px;
        border-bottom: 1px solid #e8e8e8 !important;
        border-bottom-width: 1px !important;
        border-right: none !important;
    }

    /* Mega menu becomes accordion on mobile */
    .nl-mega-menu {
        position: static !important;
        transform: none !important;
        min-width: auto !important;
        width: 100%;
        box-shadow: none !important;
        border: none !important;
        border-top: none !important;
        background: #f7f5f2;
        padding: 12px 20px 16px;
        display: none;
        grid-template-columns: 1fr !important;
        gap: 0;
    }
    .nl-nav-item.open > .nl-mega-menu { display: grid; }

    .nl-mega-col { margin-bottom: 12px; }
    .nl-mega-col h4 { font-size: 8px; margin-bottom: 8px; }
    .nl-mega-col ul li a { padding: 4px 0; font-size: 12px; }

    .nl-caret { display: inline-block; }

    /* ── HERO ── */
    .nl-hero {
        min-height: 75vh;
        /* Override the vh set by customizer to something sensible */
    }
    .nl-hero-content {
        padding: 40px 20px 48px;
        max-width: 100%;
        justify-content: flex-end;
        padding-bottom: 60px;
    }
    .nl-hero-eyebrow { font-size: 8px; letter-spacing: 2.5px; }
    .nl-hero h1 { font-size: clamp(28px, 8vw, 44px) !important; margin-bottom: 14px !important; }
    .nl-hero-sub { font-size: 11px; margin-bottom: 24px; max-width: 100%; }
    .nl-hero-btns { flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; }
    .nl-btn { padding: 13px 28px; font-size: 9.5px; }
    .nl-hero-btns .nl-btn { width: 100%; text-align: center; }

    /* ── TRUST STRIP ── */
    .nl-trust-strip { grid-template-columns: 1fr; }
    .nl-trust-item  { padding: 16px 20px; }

    /* ── SECTION HEADERS ── */
    .nl-section-header       { padding: 40px 16px 24px; }
    .nl-section-header--alt  { padding: 40px 16px 24px; }

    /* ── CATEGORIES ── */
    .nl-categories { grid-template-columns: repeat(2, 1fr); gap: 4px; padding: 0 0 4px; }
    .nl-cat-title  { font-size: clamp(18px, 4vw, 26px); }
    .nl-cat-btn    { padding: 7px 16px; font-size: 8.5px; }

    /* ── PRODUCTS ── */
    .nl-products-section { padding: 0 16px 48px; }
    .nl-products-grid    { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .nl-product-info     { padding: 12px 10px; }
    .nl-product-name     { font-size: 15px !important; }
    .nl-card-actions     { display: none; }
    .nl-view-all         { padding-top: 28px; }

    /* ── EDITORIAL ── */
    .nl-editorial         { grid-template-columns: 1fr; }
    .nl-editorial-img     { min-height: 260px; }
    .nl-editorial-content { padding: 40px 20px; }
    .nl-editorial-content h2 { font-size: 30px !important; }

    /* ── BRANDS ── */
    .nl-brands      { padding: 36px 20px; }
    .nl-brands-list { gap: 24px; }
    .nl-brands-list span { font-size: 16px; }

    /* ── FOOTER ── */
    .nl-footer       { padding: 44px 20px 24px; }
    .nl-footer-grid  { grid-template-columns: 1fr; gap: 28px; }
    .nl-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        text-align: left;
    }
    .nl-payment-icons { flex-wrap: wrap; }

    /* ── WOOCOMMERCE ── */
    .woocommerce ul.products           { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
    .nl-woo-main                       { padding: 20px 16px 48px !important; }
    .woocommerce div.product .product_title { font-size: 26px !important; }
    .woocommerce div.product .single_add_to_cart_button { padding: 14px 24px !important; width: 100% !important; }
}

/* ── 480px — Small phones (iPhone SE etc.) ── */
@media (max-width: 480px) {
    .nl-header-inner { height: 56px; }

    .nl-logo { font-size: 15px; letter-spacing: 2px; }

    .nl-announcement-bar { font-size: 8.5px; letter-spacing: 0.5px; padding: 7px 10px; }

    /* Hero */
    .nl-hero { min-height: 80vh; }
    .nl-hero-content { padding: 32px 16px 48px; }
    .nl-hero h1 { font-size: clamp(24px, 7.5vw, 34px) !important; }

    /* Categories: keep 2×2 even on small phones */
    .nl-categories { grid-template-columns: repeat(2, 1fr) !important; gap: 3px; }
    .nl-cat-title  { font-size: 16px; margin-bottom: 10px; }
    .nl-cat-btn    { font-size: 8px; padding: 6px 12px; }
    .nl-cat-card   { aspect-ratio: 1/1; } /* square on very small screens */

    /* Products: single column */
    .nl-products-grid { grid-template-columns: 1fr; gap: 14px; }
    .nl-product-img-wrap { aspect-ratio: 4/3; }

    /* Section spacing */
    .nl-section-header { padding: 32px 14px 18px; }
    .nl-divider        { margin-bottom: 24px; }

    /* Editorial */
    .nl-editorial-content { padding: 32px 16px; }
    .nl-editorial-content h2 { font-size: 26px !important; }

    /* Footer */
    .nl-footer     { padding: 36px 16px 20px; }
    .nl-footer-bottom { flex-direction: column; text-align: left; }

    /* WooCommerce */
    .woocommerce ul.products { grid-template-columns: 1fr !important; }
    .woocommerce div.product .product_title { font-size: 22px !important; }
    .nl-woo-main { padding: 16px 14px 40px !important; }
}

/* ── 360px — Very small phones ── */
@media (max-width: 360px) {
    .nl-logo        { font-size: 13px; letter-spacing: 1.5px; }
    .nl-hero h1     { font-size: 22px !important; }
    .nl-hero-sub    { font-size: 10px; }
    .nl-btn         { padding: 12px 20px; font-size: 9px; letter-spacing: 1.5px; }
    .nl-footer-grid { gap: 20px; }
}
