/*
Theme Name: Northline Outerwear
Theme URI: https://example.com/
Author: Original Theme Studio
Description: Original, WooCommerce-ready fashion outerwear theme inspired by modern premium jacket-store UX. No reference-site assets or content are included.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: northline-outerwear
Tags: ecommerce, woocommerce, fashion, jackets, outerwear, responsive
*/
:root{
 --nl-bg:#fff;--nl-surface:#f6f5f2;--nl-text:#171717;--nl-muted:#6d6d6d;--nl-line:#e6e4df;
 --nl-accent:#171717;--nl-accent-contrast:#fff;--nl-sale:#b42318;--nl-max:1320px;
 --nl-radius:2px;--nl-shadow:0 18px 45px rgba(0,0,0,.09);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--nl-bg);color:var(--nl-text);font-family:Inter,Arial,sans-serif;line-height:1.55}
img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input,select{font:inherit}
.container{width:min(calc(100% - 40px),var(--nl-max));margin-inline:auto}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}
.nl-announcement{background:#111;color:#fff;text-align:center;font-size:12px;letter-spacing:.08em;padding:9px 15px}.nl-header{position:relative;background:#fff;border-bottom:1px solid var(--nl-line);z-index:50}
.nl-header-main{min-height:76px;display:grid;```css
.nl-header-main {
    min-height: 76px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 25px;
}

.nl-header-main .nl-tools {
    justify-self: end;
    transform: translateX(25px) !important;
}
```
align-items:center;gap:25px}.nl-brand{font-weight:800;letter-spacing:.08em;font-size:22px;text-transform:uppercase}.nl-logo{max-height:44px;width:auto}
.nl-tools{display:flex;justify-content:flex-end;align-items:center;gap:18px}.nl-tool{background:none;border:0;cursor:pointer;padding:5px;position:relative}.nl-count{font-size:10px;min-width:16px;height:16px;border-radius:99px;background:#111;color:#fff;display:inline-grid;place-items:center;position:absolute;right:-7px;top:-5px}
.nl-nav{border-top:1px solid var(--nl-line)}.nl-menu{display:flex;align-items:center;justify-content:center;gap:28px;list-style:none;margin:0;padding:0}.nl-menu>li{position:relative}.nl-menu>li>a{display:block;padding:15px 0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.nl-menu .sub-menu{position:absolute;left:50%;top:100%;transform:translateX(-50%);min-width:220px;background:#fff;border:1px solid var(--nl-line);box-shadow:var(--nl-shadow);padding:12px;display:none;list-style:none}.nl-menu li:hover>.sub-menu,.nl-menu li:focus-within>.sub-menu{display:block}.nl-menu .sub-menu a{display:block;padding:9px 10px;font-size:13px}.nl-menu .sub-menu .sub-menu{left:100%;top:0;transform:none}
.nl-mobile-toggle{display:none;background:none;border:0;font-size:23px}.nl-search-panel{display:none;border-top:1px solid var(--nl-line);padding:16px}.nl-search-panel.is-open{display:block}.nl-search-form{display:flex;gap:8px}.nl-search-form input{flex:1;padding:13px;border:1px solid var(--nl-line)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #111;background:#111;color:#fff;padding:13px 21px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:12px;cursor:pointer}.btn.light{background:#fff;color:#111}.btn.outline{background:transparent;color:#111}.btn.full{width:100%}
.nl-hero{position:relative;min-height:600px;background:linear-gradient(110deg,#242321,#858078);display:flex;align-items:center;color:#fff;overflow:hidden}.nl-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.08));pointer-events:none}.nl-hero.has-image{background-size:cover;background-position:center}.nl-hero-content{position:relative;z-index:1;max-width:600px;padding:70px 0}.nl-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin-bottom:12px}.nl-hero h1{font-size:clamp(42px,6vw,78px);line-height:.98;margin:0 0 22px;letter-spacing:-.04em}.nl-hero p{font-size:18px;max-width:520px;margin:0 0 28px}.nl-section{padding:70px 0}.nl-section.alt{background:var(--nl-surface)}.nl-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.nl-section-head h2{margin:0;font-size:32px;letter-spacing:-.03em}.nl-section-head p{margin:4px 0 0;color:var(--nl-muted)}
.nl-home-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nl-home-cat{position:relative;display:flex;align-items:flex-end;min-width:0;overflow:hidden;background:linear-gradient(145deg,#ddd,#888);background-size:cover;background-position:center;aspect-ratio:1.7/1;color:#fff}.nl-home-cat-3{grid-column:1/-1;aspect-ratio:2.85/1}.nl-home-cat:not(.has-image){background:linear-gradient(145deg,#d9d7d2,#777)}.nl-home-cat-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.68) 100%);transition:background .3s}.nl-home-cat:hover .nl-home-cat-overlay{background:linear-gradient(180deg,rgba(0,0,0,.05) 20%,rgba(0,0,0,.78) 100%)}.nl-home-cat-content{position:relative;z-index:1;padding:24px;width:100%;display:flex;align-items:end;justify-content:space-between;gap:15px}.nl-home-cat-content strong{font-size:clamp(22px,2.3vw,34px);line-height:1.05}.nl-home-cat-content span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:3px;white-space:nowrap}.nl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.nl-card{min-width:0}.nl-card-media{position:relative;background:#f2f1ed;overflow:hidden;aspect-ratio:4/5}.nl-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.nl-card:hover .nl-card-media img{transform:scale(1.035)}.nl-card-secondary{position:absolute;inset:0;opacity:0;transition:opacity .3s}.nl-card:hover .nl-card-secondary{opacity:1}.nl-badge{position:absolute;left:10px;top:10px;background:#111;color:#fff;padding:5px 8px;font-size:10px;font-weight:800;text-transform:uppercase;z-index:2}.nl-badge.sale{background:var(--nl-sale)}.nl-wish{position:absolute;right:10px;top:10px;width:36px;height:36px;border:0;background:#fff;border-radius:50%;cursor:pointer;z-index:2}.nl-card-body{padding:13px 1px}.nl-card-title{font-size:14px;font-weight:700;margin:0 0 7px}.nl-price{font-weight:800}.nl-price del{color:#999;font-weight:500;margin-right:6px}.nl-rating{font-size:12px;margin:6px 0;color:#a36a00}.nl-rating .count{color:var(--nl-muted)}.nl-card-actions{margin-top:10px}.nl-card-actions .button{font-size:11px;text-transform:uppercase;font-weight:800}
.nl-editorial{display:grid;grid-template-columns:1.15fr .85fr;min-height:470px}.nl-editorial-media{background:linear-gradient(135deg,#222,#999);background-size:cover;background-position:center}.nl-editorial-copy{padding:65px;background:#171717;color:#fff;display:flex;flex-direction:column;justify-content:center}.nl-editorial-copy h2{font-size:42px;line-height:1.05;margin:0 0 18px}.nl-editorial-copy p{color:#ddd;max-width:500px}
.nl-benefits{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--nl-line)}.nl-benefit{padding:25px 20px;text-align:center;border-right:1px solid var(--nl-line)}.nl-benefit:last-child{border-right:0}.nl-benefit strong{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em}.nl-benefit span{display:block;color:var(--nl-muted);font-size:12px;margin-top:5px}
.nl-footer{background:#111;color:#fff;padding:55px 0 20px}.nl-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:45px}.nl-footer h3{font-size:13px;text-transform:uppercase;letter-spacing:.1em}.nl-footer p,.nl-footer a{color:#c6c6c6;font-size:13px}.nl-footer ul{list-style:none;padding:0;margin:0}.nl-footer li{margin:8px 0}.nl-footer-bottom{border-top:1px solid #333;margin-top:35px;padding-top:18px;color:#aaa;font-size:12px;display:flex;justify-content:space-between}
.nl-page-head{background:var(--nl-surface);padding:42px 0}.breadcrumbs{font-size:12px;color:var(--nl-muted);margin-bottom:16px}.nl-page-head h1{margin:0;font-size:40px;letter-spacing:-.035em}.nl-page-head p{max-width:750px;color:var(--nl-muted)}
.nl-shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid var(--nl-line);margin-bottom:25px}.nl-toolbar-left{display:flex;gap:12px;align-items:center}.nl-filter-btn{display:none}.nl-shop-layout{display:grid;grid-template-columns:245px 1fr;gap:30px}.nl-sidebar{border-right:1px solid var(--nl-line);padding-right:25px}.nl-filter-group{padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid var(--nl-line)}.nl-filter-group h3{font-size:13px;text-transform:uppercase;margin:0 0 12px}.nl-filter-group ul{list-style:none;margin:0;padding:0}.nl-filter-group li{margin:8px 0;font-size:13px}.nl-filter-group a:hover{text-decoration:underline}.nl-sort select{border:1px solid var(--nl-line);padding:10px;background:#fff}
.nl-product-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:55px}.nl-gallery{display:grid;grid-template-columns:86px 1fr;gap:13px}.nl-thumbs{display:flex;flex-direction:column;gap:10px}.nl-thumb{border:1px solid var(--nl-line);background:#f6f5f2;padding:0;cursor:pointer}.nl-thumb.is-active{border-color:#111}.nl-main-image{background:#f4f3ef;aspect-ratio:4/5;overflow:hidden}.nl-main-image img{width:100%;height:100%;object-fit:cover}.nl-product-summary h1{font-size:42px;line-height:1.05;margin:0 0 12px;letter-spacing:-.035em}.nl-product-summary .price{font-size:22px;font-weight:800;margin:20px 0}.nl-product-summary .price del{color:#999;font-weight:500;margin-right:8px}.nl-shortdesc{color:#555}.nl-meta-box{border-block:1px solid var(--nl-line);margin:24px 0;padding:18px 0}.nl-buy-row{display:grid;grid-template-columns:105px 1fr 1fr;gap:10px;margin-top:15px}.nl-qty{border:1px solid var(--nl-line);display:flex;align-items:center}.nl-qty input{width:100%;border:0;text-align:center}.nl-variation table{width:100%;border-collapse:collapse}.nl-variation td{padding:9px 0}.nl-variation select{padding:11px;width:100%;border:1px solid var(--nl-line)}.nl-accordion{border-top:1px solid var(--nl-line);margin-top:30px}.nl-accordion details{border-bottom:1px solid var(--nl-line);padding:17px 0}.nl-accordion summary{cursor:pointer;font-weight:700}.nl-reviews{margin-top:70px}.nl-reviews h2{font-size:30px}.nl-stars{letter-spacing:.05em;color:#a36a00}
.woocommerce .quantity .qty{width:100%}.woocommerce-message,.woocommerce-info,.woocommerce-error{margin:20px auto;padding:15px;border-left:3px solid #111;background:#f6f5f2}.woocommerce form .form-row input,.woocommerce form .form-row textarea,.woocommerce form .form-row select{padding:12px;border:1px solid var(--nl-line);border-radius:0}.woocommerce table.shop_table{border-collapse:collapse}.woocommerce table.shop_table td,.woocommerce table.shop_table th{padding:12px;border-bottom:1px solid var(--nl-line)}
.woocommerce nav.woocommerce-pagination{text-align:center;margin:35px 0}.woocommerce nav.woocommerce-pagination ul{border:0;display:inline-flex;gap:5px}.woocommerce nav.woocommerce-pagination ul li{border:0}.woocommerce nav.woocommerce-pagination a,.woocommerce nav.woocommerce-pagination span{padding:9px 12px;border:1px solid var(--nl-line)}
.nl-empty{padding:50px;text-align:center;background:var(--nl-surface)}
@media(max-width:1000px){.nl-grid{grid-template-columns:repeat(3,1fr)}.nl-shop-layout{grid-template-columns:1fr}.nl-sidebar{display:none;border:0;padding:0}.nl-sidebar.is-open{display:block}.nl-filter-btn{display:inline-flex}.nl-product-layout{grid-template-columns:1fr;gap:30px}.nl-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.container{width:min(calc(100% - 28px),var(--nl-max))}.nl-header-main{grid-template-columns:auto 1fr auto;min-height:65px}.nl-mobile-toggle{display:block}.nl-brand{text-align:center;font-size:18px}.nl-header-main .nl-brand-wrap{grid-column:2}.nl-nav{display:none}.nl-nav.is-open{display:block}.nl-menu{display:block;padding:8px 0}.nl-menu>li>a{padding:11px 0}.nl-menu .sub-menu{position:static;transform:none;display:none;box-shadow:none;border:0;border-top:1px solid var(--nl-line);padding-left:12px}.nl-menu li.menu-item-has-children:focus-within>.sub-menu{display:block}.nl-tools{gap:8px}.nl-tools .nl-account{display:none}.nl-hero{min-height:530px}.nl-hero h1{font-size:45px}.nl-section{padding:48px 0}.nl-section-head{align-items:start;flex-direction:column}.nl-section-head h2{font-size:27px}.nl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.nl-home-cat-content{padding:20px}.nl-home-cat-3{aspect-ratio:2.2/1}.nl-editorial{grid-template-columns:1fr}.nl-editorial-media{min-height:300px}.nl-editorial-copy{padding:40px 25px}.nl-editorial-copy h2{font-size:34px}.nl-benefits{grid-template-columns:1fr 1fr}.nl-benefit{border-bottom:1px solid var(--nl-line);border-right:1px solid var(--nl-line)}.nl-footer-grid{grid-template-columns:1fr 1fr;gap:25px}.nl-footer-bottom{display:block}.nl-shop-toolbar{align-items:flex-start;flex-direction:column}.nl-toolbar-left{width:100%;justify-content:space-between}.nl-product-layout{gap:20px}.nl-gallery{grid-template-columns:1fr}.nl-thumbs{order:2;flex-direction:row;overflow:auto}.nl-thumb{flex:0 0 68px}.nl-product-summary h1{font-size:32px}.nl-buy-row{grid-template-columns:90px 1fr}.nl-buy-row .buy-now{grid-column:1/-1}}
@media(max-width:430px){.nl-home-cat-grid{grid-template-columns:1fr}.nl-home-cat-3{grid-column:auto;aspect-ratio:1.5/1}.nl-home-cat{aspect-ratio:1.5/1}.nl-footer-grid{grid-template-columns:1fr}.nl-hero-content{padding:45px 0}.nl-card-title{font-size:13px}}

/* Northline product detail v2 */
.nl-product-rating-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:4px 0 16px}.nl-rating-link{color:inherit;text-decoration:none;font-size:13px}.nl-no-reviews{font-size:13px;color:var(--nl-muted)}.nl-availability{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.nl-availability.is-in-stock{color:#237a45}.nl-availability.is-out-of-stock{color:#b42318}.nl-product-spec-price{display:flex;align-items:end;justify-content:space-between;gap:15px}.nl-sku{font-size:11px;color:var(--nl-muted)}
.nl-specs-box{border-top:1px solid var(--nl-line);border-bottom:1px solid var(--nl-line);padding:18px 0;margin:18px 0}.nl-specs-box h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}.nl-specs-box dl{margin:0}.nl-specs-box dl>div{display:grid;grid-template-columns:150px 1fr;gap:15px;padding:5px 0;font-size:13px}.nl-specs-box dt{font-weight:700}.nl-specs-box dd{margin:0;color:#555}
.nl-purchase-box{border:1px solid var(--nl-line);padding:18px;margin-top:22px}.nl-purchase-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.nl-clear-variations{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:11px;text-transform:uppercase;cursor:pointer}.nl-variation-form .variations{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.nl-option-group{margin-bottom:18px}.nl-option-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin-bottom:9px}.nl-option-buttons{display:flex;gap:7px;flex-wrap:wrap}.nl-option{min-width:42px;min-height:38px;padding:7px 12px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:12px}.nl-option:hover,.nl-option.is-selected{border-color:#111;background:#111;color:#fff}.nl-size-guide-row{text-align:right;margin:-3px 0 13px}.nl-size-guide{border:0;background:none;text-decoration:underline;text-underline-offset:3px;font-size:12px;cursor:pointer}.nl-purchase-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.nl-purchase-actions .quantity{grid-column:1/-1;display:flex;border:1px solid var(--nl-line);min-height:46px;align-items:center}.nl-purchase-actions .quantity input{border:0;width:100%;height:44px;text-align:center;background:transparent}.nl-purchase-actions .single_add_to_cart_button{grid-column:1}.nl-buy-now-button{grid-column:2}.nl-purchase-actions .button{min-height:46px}.nl-accordion{margin-top:25px}.nl-rich-content{font-size:14px;line-height:1.75;color:#4f4f4f}.nl-rich-content a{color:inherit;text-decoration:underline}.nl-size-chart-modal[hidden]{display:none}.nl-size-chart-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:24px}.nl-size-chart-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}.nl-size-chart-dialog{position:relative;z-index:1;background:#fff;max-width:min(900px,100%);max-height:90vh;padding:16px;overflow:auto}.nl-size-chart-dialog img{display:block;max-width:100%;height:auto}.nl-size-chart-close{position:absolute;right:7px;top:7px;width:36px;height:36px;border:0;background:#fff;font-size:25px;line-height:1;cursor:pointer;z-index:2}.nl-modal-open{overflow:hidden}
@media(max-width:700px){.nl-specs-box dl>div{grid-template-columns:115px 1fr}.nl-purchase-box{padding:14px}.nl-purchase-actions{grid-template-columns:1fr}.nl-purchase-actions .single_add_to_cart_button,.nl-buy-now-button{grid-column:1}.nl-product-spec-price{align-items:start;flex-direction:column;gap:4px}.nl-product-rating-row{gap:10px}}
/* =========================================================
   TOP JACKET MAKERS — SITE-WIDE HEADER
   ========================================================= */

/* ANNOUNCEMENT BAR */

.nl-announcement {
    width: 100% !important;
    background: #d40000 !important;
    color: #fff !important;
    text-align: center !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .5px !important;
    padding: 9px 15px !important;
    line-height: 1.4 !important;
    box-sizing: border-box !important;
}

.nl-announcement span {
    color: #ffd400 !important;
    font-weight: 800 !important;
}


/* MAIN HEADER */

.nl-header {
    width: 100% !important;
    background: #fff !important;
    position: relative !important;
    z-index: 9999 !important;
    border-bottom: 1px solid #e8e8e8 !important;
}

.nl-header-main {
    width: 100% !important;
    background: #fff !important;
}

.nl-header-inner {
    width: min(1400px, calc(100% - 60px)) !important;
    min-height: 92px !important;
    margin: 0 auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 35px !important;
    box-sizing: border-box !important;
}


/* LOGO */

.nl-brand-wrap {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
}

.nl-brand {
    display: flex !important;
    align-items: center !important;

    text-decoration: none !important;
    color: #111 !important;

    line-height: 1 !important;
}

.nl-brand img {
    display: block !important;
    width: auto !important;
    max-width: 210px !important;
    max-height: 65px !important;
    height: auto !important;
}

.nl-brand span {
    color: #111 !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}


/* NAVIGATION */

.nl-nav {
    flex: 1 1 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-self: stretch !important;
}

.nl-nav > div {
    width: 100% !important;
}

.nl-menu {
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 30px !important;
}

.nl-menu > li {
    position: relative !important;
    height: 100% !important;

    display: flex !important;
    align-items: center !important;
}

.nl-menu > li > a {
    position: relative !important;

    display: flex !important;
    align-items: center !important;

    height: 100% !important;
    padding: 10px 0 !important;

    color: #111 !important;
    background: transparent !important;

    text-decoration: none !important;

    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: .45px !important;
    text-transform: uppercase !important;

    white-space: nowrap !important;

    transition: color .2s ease, opacity .2s ease !important;
}

.nl-menu > li > a:hover,
.nl-menu > li:hover > a {
    color: #d40000 !important;
}


/* DROPDOWN */

.nl-menu .sub-menu {
    position: absolute !important;

    top: 100% !important;
    left: 50% !important;

    transform: translateX(-50%) translateY(10px) !important;

    width: 250px !important;

    margin: 0 !important;
    padding: 18px 0 !important;

    list-style: none !important;

    background: #fff !important;

    border: 1px solid #e8e8e8 !important;

    box-shadow: 0 12px 30px rgba(0,0,0,.10) !important;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;

    transition:
        opacity .2s ease,
        transform .2s ease,
        visibility .2s ease !important;

    z-index: 10000 !important;
}

.nl-menu li:hover > .sub-menu,
.nl-menu li:focus-within > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    transform: translateX(-50%) translateY(0) !important;
}

.nl-menu .sub-menu li {
    position: relative !important;
    width: 100% !important;
}

.nl-menu .sub-menu li a {
    display: block !important;

    padding: 10px 22px !important;

    color: #222 !important;

    text-decoration: none !important;

    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;

    transition:
        color .18s ease,
        background .18s ease,
        padding-left .18s ease !important;
}

.nl-menu .sub-menu li a:hover {
    color: #d40000 !important;
    background: #fafafa !important;
    padding-left: 27px !important;
}


/* HEADER TOOLS */

.nl-tools {
    flex: 0 0 auto !important;

    display: flex !important;
    align-items: center !important;

    gap: 16px !important;
}

.nl-tool {
    position: relative !important;

    width: 27px !important;
    height: 40px !important;

    padding: 0 !important;
    margin: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 0 !important;
    background: transparent !important;

    color: #111 !important;

    cursor: pointer !important;
    text-decoration: none !important;
}

.nl-tool:hover {
    color: #d40000 !important;
}

.nl-tool svg {
    width: 21px !important;
    height: 21px !important;
    display: block !important;
}


/* CART */

.nl-cart {
    position: relative !important;
}

.nl-cart .nl-count {
    position: absolute !important;

    top: 2px !important;
    right: -5px !important;

    min-width: 16px !important;
    height: 16px !important;

    padding: 0 4px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 50% !important;

    background: #d40000 !important;
    color: #fff !important;

    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}


/* =========================================================
   TWO-COLUMN DESKTOP DROPDOWN
   ========================================================= */

@media (min-width: 851px) {

    .nl-menu > li > .sub-menu {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;

        width: 560px !important;
        min-width: 560px !important;

        padding: 15px !important;
        margin: 0 !important;

        left: 50% !important;
        right: auto !important;

        transform: translateX(-50%) !important;

        background: #fff !important;
        border: 1px solid #e5e5e5 !important;

        box-shadow: 0 12px 35px rgba(0,0,0,.12) !important;
    }

    .nl-menu > li > .sub-menu > li {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-menu > li > .sub-menu > li > a {
        display: block !important;
        width: 100% !important;
        padding: 10px 12px !important;

        color: #111 !important;
        white-space: nowrap !important;

        box-sizing: border-box !important;
    }

    .nl-menu > li > .sub-menu > li > a:hover {
        color: #d40000 !important;
        background: #f8f8f8 !important;
    }

    .nl-menu > li > .sub-menu > li > .sub-menu {
        display: none !important;

        position: absolute !important;
        top: 0 !important;
        left: 100% !important;

        width: 250px !important;
        min-width: 250px !important;

        padding: 10px 0 !important;
        margin: 0 !important;

        background: #fff !important;
        border: 1px solid #e5e5e5 !important;

        box-shadow: 0 12px 35px rgba(0,0,0,.12) !important;

        transform: none !important;
    }

    .nl-menu > li > .sub-menu > li:hover > .sub-menu {
        display: block !important;
    }
}


/* =========================================================
   FOOTER
   ========================================================= */

footer.nl-footer,
.nl-footer {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    background: #dcdcdc !important;
    color: #000 !important;

    box-sizing: border-box !important;
}

.nl-footer-main {
    width: 100% !important;

    background: #dcdcdc !important;

    padding: 52px 0 45px !important;

    box-sizing: border-box !important;
}

footer.nl-footer .nl-footer-container {
    width: 100% !important;
    max-width: 1920px !important;

    margin: 0 auto !important;
    padding: 0 38px !important;

    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: flex-start !important;

    gap: 55px !important;
}

footer.nl-footer .nl-footer-brand {
    flex: 1.45 1 0 !important;

    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left !important;
}

.nl-footer-logo {
    display: block !important;

    width: 100% !important;
    max-width: 390px !important;

    margin: 0 0 28px !important;
    padding: 0 !important;
}

.nl-footer-logo img,
.nl-footer-brand .custom-logo {
    display: block !important;

    width: 370px !important;
    max-width: 100% !important;

    height: auto !important;

    margin: 0 !important;
}

.nl-footer-logo-text {
    display: block !important;

    margin: 0 0 28px !important;

    font-size: 32px !important;
    line-height: 1.1 !important;

    font-weight: 700 !important;

    color: #000 !important;
}

.nl-footer-email {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px !important;
    line-height: 1.5 !important;

    color: #000 !important;
}

.nl-footer-email strong {
    color: #000 !important;
    font-weight: 700 !important;
}

.nl-footer-email a {
    color: #000 !important;
    text-decoration: none !important;
    overflow-wrap: anywhere !important;
}

.nl-footer-social {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;

    gap: 5px !important;

    margin: 28px 0 0 !important;
    padding: 0 !important;
}

.nl-footer-social a {
    display: flex !important;

    flex: 0 0 25px !important;

    align-items: center !important;
    justify-content: center !important;

    width: 25px !important;
    height: 25px !important;

    text-decoration: none !important;
}

.nl-footer-social a svg {
    display: block !important;

    width: 22px !important;
    height: 22px !important;

    fill: currentColor !important;
    stroke: none !important;
}


/* FOOTER COLUMNS */

footer.nl-footer .nl-footer-column {
    flex: 1 1 0 !important;

    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;
}

footer.nl-footer .nl-footer-column h3 {
    display: block !important;

    margin: 0 0 27px !important;
    padding: 0 !important;

    font-size: 19px !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;

    color: #000 !important;
}

footer.nl-footer .nl-footer-column ul {
    display: block !important;

    width: 100% !important;

    list-style: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

footer.nl-footer .nl-footer-column li {
    display: block !important;

    width: 100% !important;

    list-style: none !important;

    margin: 0 0 18px !important;
    padding: 0 !important;
}

footer.nl-footer .nl-footer-column li a {
    display: inline-block !important;

    color: #000 !important;

    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 400 !important;

    text-decoration: none !important;
}

footer.nl-footer .nl-footer-column li a:hover {
    opacity: .55 !important;
}


/* FOOTER BUTTONS */

footer.nl-footer .nl-footer-buttons {
    display: flex !important;

    flex-direction: column !important;

    align-items: flex-start !important;

    gap: 8px !important;

    margin: 18px 0 0 !important;
    padding: 0 !important;
}

footer.nl-footer .nl-footer-red-button {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: auto !important;

    background: #b40000 !important;
    color: #fff !important;

    padding: 7px 13px !important;

    border-radius: 5px !important;

    font-size: 16px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;

    text-decoration: none !important;
}


/* FOOTER BOTTOM */

footer.nl-footer .nl-footer-bottom {
    width: 100% !important;

    background: #c6c6c6 !important;

    margin: 0 !important;
    padding: 18px 0 !important;

    box-sizing: border-box !important;
}

footer.nl-footer .nl-footer-bottom-inner {
    width: 100% !important;
    max-width: 1920px !important;

    margin: 0 auto !important;
    padding: 0 50px !important;

    box-sizing: border-box !important;

    display: flex !important;
    flex-direction: row !important;

    align-items: center !important;
    justify-content: space-between !important;

    gap: 30px !important;
}

.nl-footer-copyright {
    flex: 1 1 auto !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #000 !important;

    font-size: 16px !important;
    line-height: 1.4 !important;
}

.nl-footer-payments {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center !important;

    gap: 7px !important;

    flex: none !important;
}

.nl-payment {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    min-width: 55px !important;
    height: 31px !important;

    padding: 3px 7px !important;

    background: #fff !important;

    border: 1px solid #aaa !important;
    border-radius: 2px !important;

    color: #111 !important;

    font-size: 11px !important;
    font-weight: 700 !important;
}


/* =========================================================
   CATEGORY PAGE
   ========================================================= */

.nl-category-page {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.nl-category-head {
    width: 100% !important;

    padding: 55px 0 45px !important;

    background: #fff !important;
}

.nl-category-head .container,
.nl-category-products .container {
    width: 100% !important;
    max-width: 1400px !important;

    margin: 0 auto !important;

    padding-left: 30px !important;
    padding-right: 30px !important;

    box-sizing: border-box !important;
}

.nl-category-breadcrumbs {
    margin: 0 0 20px !important;

    font-size: 12px !important;
    line-height: 1.5 !important;

    color: #777 !important;
}

.nl-category-breadcrumbs a {
    color: #777 !important;
    text-decoration: none !important;
}

.nl-category-title {
    margin: 0 !important;
    padding: 0 !important;

    color: #111 !important;

    font-size: 42px !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
}

.nl-category-description {
    max-width: 850px !important;

    margin: 18px 0 0 !important;

    color: #555 !important;

    font-size: 15px !important;
    line-height: 1.7 !important;
}

.nl-category-products {
    width: 100% !important;

    padding: 0 0 80px !important;

    background: #fff !important;
}

.nl-category-products .nl-products-grid {
    display: grid !important;

    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

    gap: 30px 20px !important;

    width: 100% !important;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {

    .nl-header-inner {
        width: calc(100% - 40px) !important;
        gap: 20px !important;
    }

    .nl-menu {
        gap: 18px !important;
    }

    footer.nl-footer .nl-footer-container {
        gap: 30px !important;
        padding-left: 25px !important;
        padding-right: 25px !important;
    }

    .nl-footer-logo img,
    .nl-footer-brand .custom-logo {
        width: 300px !important;
    }

}

@media (max-width: 850px) {

    .nl-header-inner {
        width: calc(100% - 30px) !important;
        min-height: 75px !important;

        justify-content: space-between !important;
        gap: 15px !important;
    }

    .nl-mobile-toggle {
        display: flex !important;

        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;

        width: 42px !important;
        height: 42px !important;

        padding: 8px !important;
        margin: 0 !important;

        flex-shrink: 0 !important;

        background: transparent !important;
        border: 0 !important;
    }

    .nl-nav {
        display: none !important;
    }

    .nl-brand-wrap {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    .nl-brand img {
        max-width: 160px !important;
        max-height: 52px !important;
    }

    .nl-tools {
        gap: 7px !important;
        flex-shrink: 0 !important;
    }

    footer.nl-footer .nl-footer-container {
        display: grid !important;

        grid-template-columns: 1fr 1fr !important;

        gap: 40px 30px !important;
    }

    footer.nl-footer .nl-footer-brand {
        grid-column: 1 / -1 !important;
    }

}

@media (max-width: 767px) {

    .nl-category-head {
        padding: 35px 0 30px !important;
    }

    .nl-category-head .container,
    .nl-category-products .container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .nl-category-title {
        font-size: 30px !important;
    }

    .nl-category-products .nl-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 22px 12px !important;
    }

}

@media (max-width: 600px) {

    .nl-announcement {
        font-size: 10px !important;
        padding: 8px 10px !important;
    }

    .nl-header-inner {
        width: calc(100% - 20px) !important;
    }

    .nl-brand img {
        max-width: 135px !important;
    }

    .nl-account,
    .nl-wishlist {
        display: none !important;
    }

    footer.nl-footer .nl-footer-container {
        display: flex !important;

        flex-direction: column !important;

        gap: 30px !important;

        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    footer.nl-footer .nl-footer-brand,
    footer.nl-footer .nl-footer-column {
        width: 100% !important;
        flex: none !important;
    }

    .nl-footer-logo img,
    .nl-footer-brand .custom-logo {
        width: 280px !important;
        max-width: 100% !important;
    }

    footer.nl-footer .nl-footer-bottom-inner {
        flex-direction: column !important;
        text-align: center !important;

        padding-left: 20px !important;
        padding-right: 20px !important;

        gap: 15px !important;
    }

    .nl-footer-copyright {
        font-size: 13px !important;
    }

    .nl-footer-payments {
        justify-content: center !important;
        flex-wrap: wrap !important;
    }

}
/* =========================================================
   CATEGORY PRODUCT CARDS — SAME AS HOMEPAGE
   ========================================================= */

.nl-category-products {
    width: 100%;
    padding: 40px 0 80px;
}

.nl-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 30px 20px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* CARD */

.nl-product-card {
    position: relative;
    width: 100%;
    min-width: 0;
    background: #fff;
}


/* IMAGE AREA */

.nl-product-image-box {
    position: relative !important;
    width: 100% !important;
    overflow: hidden !important;
    background: #f5f5f5 !important;
}


/* IMAGE LINK */

.nl-product-image-link {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 5 !important;
}


/* BOTH IMAGES */

.nl-product-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}


/* PRIMARY */

.nl-product-image-link .nl-product-primary {
    position: relative !important;
    z-index: 1 !important;
    opacity: 1 !important;
    transition: opacity .35s ease !important;
}


/* SECONDARY */

.nl-product-image-link .nl-product-secondary {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    z-index: 2 !important;
    opacity: 0 !important;
    transition: opacity .35s ease !important;
}


/* HOVER IMAGE */

.nl-product-image-box:hover .nl-product-secondary {
    opacity: 1 !important;
}

.nl-product-image-box:hover .nl-product-primary {
    opacity: 0 !important;
}


/* SALE BADGE */

.nl-product-sale {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 5 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 6px 10px !important;

    background: #171717 !important;
    color: #fff !important;

    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
}


/* ADD TO CART */

.nl-product-cart {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 6 !important;

    padding: 14px !important;

    opacity: 0 !important;
    transform: translateY(10px) !important;

    transition:
        opacity .3s ease,
        transform .3s ease !important;
}


/* SHOW CART ON HOVER */

.nl-product-image-box:hover .nl-product-cart {
    opacity: 1 !important;
    transform: translateY(0) !important;
}


/* CART BUTTON */

.nl-product-cart .button,
.nl-product-cart a.button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 46px !important;

    margin: 0 !important;
    padding: 12px 18px !important;

    background: #171717 !important;
    color: #fff !important;

    border: 0 !important;
    border-radius: 0 !important;

    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;

    text-decoration: none !important;
}


/* PRODUCT INFO */

.nl-product-info {
    width: 100% !important;
    padding: 14px 0 0 !important;
}


/* TITLE */

.nl-product-title {
    margin: 0 0 7px !important;
    padding: 0 !important;

    font-size: 14px !important;
    line-height: 1.45 !important;
    font-weight: 500 !important;

    color: #171717 !important;
}


.nl-product-title a {
    color: inherit !important;
    text-decoration: none !important;
}


/* PRICE */

.nl-product-price {
    margin: 0 !important;
    padding: 0 !important;

    color: #171717 !important;

    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}


.nl-product-price del {
    color: #888 !important;
    margin-right: 5px !important;
    font-weight: 400 !important;
}


.nl-product-price ins {
    text-decoration: none !important;
}


/* CATEGORY HEADER */

.nl-category-head {
    padding: 35px 0 25px;
}


.nl-category-breadcrumbs {
    margin-bottom: 18px;
    font-size: 12px;
    color: #777;
}


.nl-category-title {
    margin: 0;
    font-size: 36px;
    line-height: 1.15;
    font-weight: 500;
    color: #171717;
}


.nl-category-description {
    max-width: 750px;
    margin-top: 15px;
    color: #666;
    font-size: 14px;
}


/* PAGINATION */

.nl-category-pagination {
    margin-top: 50px;
}


.nl-category-pagination ul {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    list-style: none;
    margin: 0;
    padding: 0;
}


.nl-category-pagination li {
    margin: 0 !important;
}


.nl-category-pagination a,
.nl-category-pagination span {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 38px;
    height: 38px;

    padding: 0 10px;

    border: 1px solid #ddd;

    font-size: 13px;
    color: #171717;
}


.nl-category-pagination .current {
    background: #171717;
    color: #fff;
    border-color: #171717;
}


/* EMPTY */

.nl-category-empty {
    padding: 80px 0;
    text-align: center;
}


.nl-category-empty h2 {
    margin: 0 0 10px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1000px) {

    .nl-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

}


@media (max-width: 767px) {

    .nl-category-products {
        padding-top: 25px;
    }

    .nl-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 24px 12px !important;
    }

    .nl-category-title {
        font-size: 28px;
    }

    .nl-product-info {
        padding-top: 10px !important;
    }

    .nl-product-title {
        font-size: 13px !important;
    }

    .nl-product-price {
        font-size: 13px !important;
    }

}


@media (max-width: 480px) {

    .nl-products-grid {
        gap: 22px 10px !important;
    }

    .nl-product-cart {
        display: none !important;
    }

}
/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

/* Desktop — completely hidden */
.nl-mobile-menu {
    display: none !important;
}

/* Mobile */
@media (max-width: 700px) {

    /* Hamburger visible */
    .nl-mobile-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        width: 42px;
        height: 42px;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    .nl-mobile-toggle span {
        display: block;
        width: 22px;
        height: 2px;
        background: #171717;
    }

    /* Menu closed */
    .nl-mobile-menu {
        display: none !important;
        width: 100%;
        background: #fff;
        border-top: 1px solid #e6e4df;
    }

    /* Menu opened */
    .nl-mobile-menu.nl-mobile-open {
        display: block !important;
    }

    .nl-mobile-menu-inner {
        width: 100%;
        padding: 20px;
    }

    .nl-mobile-menu-list {
        display: block !important;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .nl-mobile-menu-list > li {
        display: block;
        margin: 0;
        padding: 0;
        border-bottom: 1px solid #e6e4df;
    }

    .nl-mobile-menu-list > li > a {
        display: block;
        padding: 14px 0;
        color: #171717;
        font-size: 15px;
        text-decoration: none;
    }

    /* Submenus */
    .nl-mobile-menu-list .sub-menu {
        display: none;
        list-style: none;
        margin: 0;
        padding: 0 0 8px 15px;
    }

    .nl-mobile-menu-list .menu-item.nl-submenu-open > .sub-menu {
        display: block;
    }

    .nl-mobile-menu-list .sub-menu li {
        margin: 0;
        padding: 0;
    }

    .nl-mobile-menu-list .sub-menu a {
        display: block;
        padding: 9px 0;
        color: #555;
        font-size: 14px;
    }
}
/* =========================================================
   CATEGORY FILTER / VIEW CONTROLS
   ========================================================= */

.nl-category-controls {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin: 0 0 35px;
    padding: 18px 0;
    border-top: 1px solid #e6e4df;
    border-bottom: 1px solid #e6e4df;
}


/* SALE FILTER */

.nl-sale-filter label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    cursor: pointer;
    font-size: 14px;
    color: #171717;
}

.nl-sale-filter input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #171717;
    cursor: pointer;
}


/* PER PAGE */

.nl-per-page {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: #171717;
}

.nl-per-page-label {
    margin-right: 4px;
}

.nl-per-page a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 7px;
    border: 1px solid #d8d6d1;
    color: #171717;
    background: #fff;
    transition: all .2s ease;
}

.nl-per-page a:hover,
.nl-per-page a.active {
    background: #171717;
    border-color: #171717;
    color: #fff;
}

.nl-current-count {
    margin-left: 10px;
    white-space: nowrap;
}


/* MOBILE */

@media (max-width: 700px) {

    .nl-category-controls {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        margin-bottom: 25px;
    }

    .nl-per-page {
        flex-wrap: wrap;
    }

    .nl-current-count {
        width: 100%;
        margin-left: 0;
        margin-top: 4px;
    }

}
/* =========================================================
   CATEGORY PAGE — REMOVE HEADING + REDUCE TOP SPACE
   ========================================================= */

/* Hide category title */
.nl-category-title {
    display: none !important;
}

/* Reduce space between header and category content */
.nl-category-head {
    padding-top: 18px !important;
    padding-bottom: 12px !important;
    margin: 0 !important;
}

/* Keep breadcrumb compact */
.nl-category-breadcrumbs {
    margin: 0 !important;
    padding: 0 !important;
}

/* Reduce gap before products / controls */
.nl-category-products {
    padding-top: 8px !important;
    margin-top: 0 !important;
}
/* =========================================================
   CATEGORY PAGE — REMOVE OUTLINES
   ========================================================= */

/* Remove outer border around category controls */
.nl-category-controls {
    border: none !important;
}

/* Remove borders around 20 / 40 / 60 / 80 options */
.nl-per-page a {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Keep active option clean */
.nl-per-page a.active {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Remove outline around product/category grid */
.nl-products-grid {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Remove any outline from individual product cards */
.nl-product-card {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}
/* =========================================================
   CATEGORY PRODUCT LOOP CONTROLS
   ========================================================= */

.before-loop-wrapper {
    width: 100%;

    display: flex;
    align-items: center;

    gap: 24px;

    margin: 0 0 30px;
    padding: 0;

    border: none !important;
}


/* RESULT COUNT */

.before-loop-wrapper .woocommerce-result-count {
    margin: 0;

    font-size: 13px;

    color: #555;

    white-space: nowrap;
}


/* COLUMN SELECTOR */

.ts-product-columns-selector {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-left: auto;
}


/* COLUMN ICONS */

.ts-product-columns-selector span {
    position: relative;

    width: 18px;
    height: 18px;

    display: block;

    cursor: pointer;

    opacity: .45;

    transition: opacity .2s ease;
}


/* 1 COLUMN */

.ts-product-columns-selector .column-1 {
    border: 1px solid #171717;
}


/* 2 COLUMNS */

.ts-product-columns-selector .column-2 {
    background:
        linear-gradient(
            to right,
            #171717 0 45%,
            transparent 45% 55%,
            #171717 55% 100%
        );
}


/* 3 COLUMNS */

.ts-product-columns-selector .column-3 {
    background:
        linear-gradient(
            to right,
            #171717 0 28%,
            transparent 28% 36%,
            #171717 36% 64%,
            transparent 64% 72%,
            #171717 72% 100%
        );
}


/* 4 COLUMNS */

.ts-product-columns-selector .column-4 {
    background:
        linear-gradient(
            to right,
            #171717 0 20%,
            transparent 20% 27%,
            #171717 27% 47%,
            transparent 47% 53%,
            #171717 53% 73%,
            transparent 73% 80%,
            #171717 80% 100%
        );
}


.ts-product-columns-selector span:hover,
.ts-product-columns-selector span.selected {
    opacity: 1;
}


/* SORT */

.nl-sort-wrapper {
    display: flex;
    align-items: center;
    gap: 7px;

    font-size: 13px;
    white-space: nowrap;
}

.orderby-label {
    color: #555;
}

.nl-orderby {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;

    background: transparent;

    padding: 3px 20px 3px 0;

    font-size: 13px;

    color: #171717;

    cursor: pointer;
}


/* SALE */

.product-on-sale-form {
    font-size: 13px;

    white-space: nowrap;
}

.product-on-sale-form label {
    display: flex;
    align-items: center;
    gap: 7px;

    cursor: pointer;
}

.product-on-sale-form input {
    width: 15px;
    height: 15px;

    margin: 0;

    accent-color: #171717;
}


/* PER PAGE */

.product-per-page-form {
    display: flex;
    align-items: center;

    gap: 6px;

    font-size: 13px;

    white-space: nowrap;
}

.product-per-page-form .perpage {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;

    background: transparent;

    padding: 3px 20px 3px 0;

    font-size: 13px;

    color: #171717;

    cursor: pointer;
}


/* MOBILE */

@media (max-width: 900px) {

    .before-loop-wrapper {
        flex-wrap: wrap;

        gap: 16px;
    }

    .ts-product-columns-selector {
        margin-left: 0;
    }

}


@media (max-width: 600px) {

    .before-loop-wrapper {
        display: grid;

        grid-template-columns: 1fr 1fr;

        gap: 14px;

        margin-bottom: 25px;
    }

    .before-loop-wrapper
    .woocommerce-result-count {
        grid-column: 1 / -1;
    }

    .ts-product-columns-selector {
        margin-left: 0;
    }

    .nl-sort-wrapper,
    .product-on-sale-form,
    .product-per-page-form {
        font-size: 12px;
    }

}
/* =========================================================
   CATEGORY PRODUCT COLUMN SELECTOR
   ========================================================= */

.nl-products-grid.nl-columns-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}

.nl-products-grid.nl-columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.nl-products-grid.nl-columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.nl-products-grid.nl-columns-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}


/* =========================================================
   CONTROLS ROW
   ========================================================= */

.before-loop-wrapper {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 28px;
    padding: 0;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}


/* LEFT */

.before-loop-left {
    display: flex;
    align-items: center;
    gap: 22px;
}


/* RIGHT */

.before-loop-right {
    display: flex;
    align-items: center;
    gap: 25px;
}


/* =========================================================
   COLUMN SELECTOR
   ========================================================= */

.ts-product-columns-selector {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ts-product-columns-selector span {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
    cursor: pointer;
    opacity: .45;
    transition: opacity .2s ease;
}

.ts-product-columns-selector span:hover,
.ts-product-columns-selector span.selected {
    opacity: 1;
}


/* 1 COLUMN ICON */

.ts-product-columns-selector .column-1 {
    background:
        linear-gradient(
            to right,
            currentColor 0 100%
        );
}


/* 2 COLUMN ICON */

.ts-product-columns-selector .column-2 {
    background:
        linear-gradient(
            to right,
            currentColor 0 42%,
            transparent 42% 58%,
            currentColor 58% 100%
        );
}


/* 3 COLUMN ICON */

.ts-product-columns-selector .column-3 {
    background:
        linear-gradient(
            to right,
            currentColor 0 27%,
            transparent 27% 36%,
            currentColor 36% 63%,
            transparent 63% 72%,
            currentColor 72% 100%
        );
}


/* 4 COLUMN ICON */

.ts-product-columns-selector .column-4 {
    background:
        linear-gradient(
            to right,
            currentColor 0 20%,
            transparent 20% 27%,
            currentColor 27% 47%,
            transparent 47% 53%,
            currentColor 53% 73%,
            transparent 73% 80%,
            currentColor 80% 100%
        );
}


/* =========================================================
   SALE CHECKBOX
   ========================================================= */

.product-on-sale-form {
    margin: 0;
    padding: 0;
    border: 0 !important;
}

.product-on-sale-form label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    cursor: pointer;
    font-size: 14px;
    white-space: nowrap;
}

.product-on-sale-form input[type="checkbox"] {
    width: 15px;
    height: 15px;
    margin: 0;
    cursor: pointer;
}


/* =========================================================
   SORT
   ========================================================= */

.nl-sort-wrapper {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0 !important;
}

.orderby-label {
    font-size: 14px;
    white-space: nowrap;
}

.nl-orderby {
    border: 0 !important;
    outline: 0 !important;
    background: transparent;
    padding: 4px 20px 4px 2px;
    font-size: 14px;
    cursor: pointer;
    box-shadow: none !important;
}


/* =========================================================
   PER PAGE
   ========================================================= */

.product-per-page-form {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    border: 0 !important;
}

.product-per-page-form span {
    font-size: 14px;
}

.product-per-page-form select {
    border: 0 !important;
    outline: 0 !important;
    background: transparent;
    padding: 4px 20px 4px 2px;
    font-size: 14px;
    cursor: pointer;
    box-shadow: none !important;
}


/* =========================================================
   RESULT COUNT
   ========================================================= */

.woocommerce-result-count {
    margin: 0 0 14px !important;
    padding: 0 !important;
    font-size: 14px;
    color: #6d6d6d;
}


/* =========================================================
   REMOVE OUTLINES / BOXES
   ========================================================= */

.before-loop-wrapper,
.before-loop-wrapper *,
.nl-products-grid,
.nl-product-card {
    box-shadow: none;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .before-loop-wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
    }

    .before-loop-left,
    .before-loop-right {
        width: 100%;
        justify-content: space-between;
    }

    .before-loop-right {
        gap: 15px;
    }

    .nl-sort-wrapper {
        flex: 1;
    }

    .product-per-page-form {
        flex-shrink: 0;
    }

}
/* CATEGORY PRODUCT CARD — ADD TO CART HOVER */

.nl-category-page .nl-product-cart a.button:hover,
.nl-category-page .nl-product-cart a.add_to_cart_button:hover,
.nl-category-page .nl-product-cart button:hover {
    background: #d00000 !important;
    background-color: #d00000 !important;
    color: #ffffff !important;
}
/* =========================================================
   CATEGORY PRODUCT TITLE — HOVER RED
   ========================================================= */

.nl-category-page .nl-product-card:hover .nl-product-title a {
    color: #d00000 !important;
    transition: color .2s ease;
}
```css
/* =========================================================
   TOP JACKET MAKERS
   SINGLE PRODUCT PAGE
   NEW AMERICAN JACKETS STYLE
   ========================================================= */


/* =========================================================
   MAIN PAGE
   ========================================================= */

.nl-single-product-page {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 55px 30px 90px;
    box-sizing: border-box;
    color: #111;
}
/* =========================================================
   PRODUCT PAGE — SCREENSHOT MATCH
   Scoped ONLY to .nl-single-product-page
   ========================================================= */


/* =========================================================
   PAGE / MAIN GRID
   ========================================================= */

.nl-single-product-page {
    width: 100%;
    max-width: 1431px;
    margin: 0 auto;
}

.nl-single-product-page .nl-product-main {
    display: grid;
    grid-template-columns: 484px minmax(0, 1fr) 470px;
    column-gap: 20px;
    align-items: start;
}


/* =========================================================
   LEFT GALLERY
   ========================================================= */

.nl-single-product-page .nl-product-gallery {
    width: 484px;
    display: grid;
    grid-template-columns: 84px 1fr;
    column-gap: 33px;
    align-items: start;
}


/* thumbnails */

.nl-single-product-page .nl-product-thumbnails {
    width: 84px;
    height: 472px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
}

.nl-single-product-page .nl-gallery-thumb {
    flex: 0 0 92px;
    width: 84px;
    height: 92px;
    padding: 0;
    margin: 0;
    border: 1px solid #111;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    box-sizing: border-box;
}

.nl-single-product-page .nl-gallery-thumb:not(.is-active) {
    border-color: #ddd;
}

.nl-single-product-page .nl-gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* main image */

.nl-single-product-page .nl-product-main-image {
    position: relative;
    width: 334px;
    height: 471px;
    background: #fff;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.nl-single-product-page .nl-main-product-image {
    display: block;
    width: 334px;
    height: 471px;
    max-width: 100%;
    object-fit: contain;
    object-position: center top;
}


/* =========================================================
   SALE BADGE
   ========================================================= */

.nl-single-product-page .nl-product-gallery {
    position: relative;
}

.nl-single-product-page .nl-product-gallery::after {
    content: "-52%";
    position: absolute;
    top: 10px;
    left: 128px;
    z-index: 5;
    padding: 7px 20px;
    background: #df1021;
    color: #fff;
    border-radius: 3px;
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
    pointer-events: none;
}


/* =========================================================
   MIDDLE PRODUCT INFORMATION
   ========================================================= */

.nl-single-product-page .nl-product-summary {
    min-width: 0;
    padding-top: 2px;
}


/* title */

.nl-single-product-page .nl-single-product-title {
    margin: 0 0 17px;
    padding: 0;
    color: #080808;
    font-size: 34px;
    line-height: 1.16;
    font-weight: 500;
    letter-spacing: -0.025em;
    white-space: nowrap;
}


/* rating */

.nl-single-product-page .nl-product-rating-row {
    display: flex;
    align-items: center;
    margin: 0 0 15px;
    min-height: 20px;
}

.nl-single-product-page .nl-product-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #111;
    text-decoration: none;
    font-size: 13px;
    line-height: 1;
}

.nl-single-product-page .nl-stars {
    color: #f4511e;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 0;
}

.nl-single-product-page .nl-review-count {
    color: #111;
}

.nl-single-product-page .nl-review-separator {
    color: #777;
}

.nl-single-product-page .nl-write-review {
    color: #111;
}


/* availability */

.nl-single-product-page .nl-product-availability {
    display: flex;
    align-items: center;
    gap: 27px;
    margin: 0 0 18px;
    font-size: 13px;
    line-height: 1.2;
}

.nl-single-product-page .nl-product-availability strong {
    font-weight: 400;
}

.nl-single-product-page .nl-stock-in {
    color: #111;
    font-weight: 500;
}

.nl-single-product-page .nl-stock-out {
    color: #c62828;
    font-weight: 500;
}


/* price */

.nl-single-product-page .nl-single-product-price {
    margin: 0 0 28px;
    color: #df1021;
    font-size: 38px;
    line-height: 1;
    font-weight: 500;
}

.nl-single-product-page .nl-single-product-price del {
    margin-left: 4px;
    color: #999;
    font-size: 15px;
    font-weight: 400;
}

.nl-single-product-page .nl-single-product-price ins {
    color: #df1021;
    text-decoration: none;
}


/* =========================================================
   PRODUCT SPECIFICATION
   ========================================================= */

.nl-single-product-page .nl-product-specifications {
    margin: 0;
    padding: 0;
}

.nl-single-product-page .nl-product-specifications h2 {
    margin: 0 0 18px;
    padding: 0;
    color: #111;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: 0;
}

.nl-single-product-page .nl-product-specifications ul {
    margin: 0;
    padding: 0 0 0 21px;
}

.nl-single-product-page .nl-product-specifications li {
    margin: 0 0 7px;
    padding: 0 0 0 0;
    color: #111;
    font-size: 14px;
    line-height: 1.45;
}

.nl-single-product-page .nl-product-specifications li strong {
    font-weight: 400;
}


/* =========================================================
   RIGHT PURCHASE BOX
   ========================================================= */

.nl-single-product-page .nl-purchase-area {
    width: 470px;
    min-width: 0;
    margin-top: 59px;
    padding: 28px 27px 34px;
    box-sizing: border-box;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 2px 16px rgba(0, 0, 0, .09);
}


/* =========================================================
   NATIVE WOOCOMMERCE VARIATIONS
   ========================================================= */

.nl-single-product-page .nl-native-variable-product {
    width: 100%;
}


/* hide WooCommerce's default variation heading */

.nl-single-product-page .variations_form .variations {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: separate;
}

.nl-single-product-page .variations_form .variations tbody,
.nl-single-product-page .variations_form .variations tr,
.nl-single-product-page .variations_form .variations td {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
}


/* each variation */

.nl-single-product-page .variations_form .variations tr {
    margin-bottom: 23px;
}


/* labels */

.nl-single-product-page .variations_form .variations .label {
    margin: 0 0 9px;
    padding: 0;
    text-align: left;
}

.nl-single-product-page .variations_form .variations .label label {
    color: #111;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 400;
}


/* selects */

.nl-single-product-page .variations_form .variations .value {
    position: relative;
}

.nl-single-product-page .variations_form .variations select {
    width: auto;
    min-width: 115px;
    height: 32px;
    margin: 0;
    padding: 4px 30px 4px 15px;
    border: 1px solid #bbb;
    border-radius: 2px;
    background: #fff;
    color: #111;
    font-size: 13px;
    line-height: 1;
}


/* =========================================================
   REMOVE EXTRA WOOCOMMERCE SPACING
   ========================================================= */

.nl-single-product-page .single_variation_wrap {
    margin-top: 0;
}

.nl-single-product-page .woocommerce-variation {
    margin: 0;
    padding: 0;
}

.nl-single-product-page .woocommerce-variation-description {
    margin: 0;
}

.nl-single-product-page .woocommerce-variation-price {
    display: none;
}

.nl-single-product-page .woocommerce-variation-availability {
    margin: 0;
}


/* =========================================================
   SIZE GUIDE / CLEAR
   ========================================================= */

.nl-single-product-page .nl-option-actions {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 2px 0 30px;
}

.nl-single-product-page .nl-size-guide-button {
    min-width: 88px;
    height: 29px;
    padding: 0 18px;
    border: 0;
    border-radius: 3px;
    background: #df1021;
    color: #fff;
    font-size: 13px;
    line-height: 29px;
    font-weight: 700;
    cursor: pointer;
}

.nl-single-product-page .nl-clear-button {
    height: 29px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #df1021;
    font-size: 13px;
    line-height: 29px;
    font-weight: 400;
    cursor: pointer;
}


/* =========================================================
   QUANTITY + ADD TO CART
   ========================================================= */

.nl-single-product-page
.woocommerce-variation-add-to-cart {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 22px;
    align-items: stretch;
}


/* quantity */

.nl-single-product-page
.woocommerce-variation-add-to-cart .quantity {
    width: 145px;
    height: 51px;
    margin: 0;
    padding: 0;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fff;
    box-sizing: border-box;
}

.nl-single-product-page
.woocommerce-variation-add-to-cart .quantity .qty {
    width: 100%;
    height: 49px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #111;
    text-align: center;
    font-size: 17px;
}


/* Add to cart */

.nl-single-product-page
.woocommerce-variation-add-to-cart .single_add_to_cart_button {
    width: 100%;
    height: 51px;
    margin: 0;
    padding: 0 18px;
    border: 0;
    border-radius: 3px;
    background: #1d1d1d;
    color: #fff;
    font-size: 17px;
    line-height: 51px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}


/* =========================================================
   BUY NOW
   ========================================================= */

.nl-single-product-page .nl-buy-now-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 51px;
    margin: 23px 0 0;
    padding: 0 15px;
    border: 1px solid #222;
    border-radius: 3px;
    background: #fff;
    color: #111;
    font-size: 17px;
    line-height: 51px;
    font-weight: 600;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
}


/* =========================================================
   PURCHASE MESSAGE
   Screenshot doesn't show these, so hide them from the
   visible competitor-style area.
   ========================================================= */

.nl-single-product-page .nl-product-purchase-message {
    display: none;
}


/* =========================================================
   PRODUCT TABS
   ========================================================= */

.nl-single-product-page .nl-single-product-tabs {
    margin-top: 60px;
}

.nl-single-product-page .nl-product-tab-buttons {
    display: flex;
    gap: 30px;
    border-bottom: 1px solid #ddd;
}

.nl-single-product-page .nl-product-tab-button {
    padding: 15px 0;
    border: 0;
    background: transparent;
    color: #555;
    font-size: 14px;
    cursor: pointer;
}

.nl-single-product-page .nl-product-tab-button.is-active {
    color: #111;
    font-weight: 600;
    border-bottom: 2px solid #111;
}

.nl-single-product-page .nl-product-tab-content {
    display: none;
    padding: 25px 0;
}

.nl-single-product-page .nl-product-tab-content.is-active {
    display: block;
}


/* =========================================================
   SIZE GUIDE MODAL
   ========================================================= */

.nl-single-product-page .nl-size-guide-modal {
    display: none;
}

.nl-single-product-page .nl-size-guide-modal.is-open {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 999999;
    align-items: center;
    justify-content: center;
}

.nl-single-product-page .nl-size-guide-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.65);
}

.nl-single-product-page .nl-size-guide-box {
    position: relative;
    z-index: 2;
    width: min(600px, calc(100% - 30px));
    padding: 30px;
    background: #fff;
}

.nl-single-product-page .nl-size-guide-close {
    position: absolute;
    top: 8px;
    right: 12px;
    width: 35px;
    height: 35px;
    border: 0;
    background: transparent;
    font-size: 26px;
    cursor: pointer;
}


/* =========================================================
   DESKTOP — EXACT TARGET RANGE
   ========================================================= */

@media (min-width: 1201px) {

    .nl-single-product-page .nl-product-main {
        grid-template-columns: 484px minmax(0, 1fr) 470px;
    }

}


/* =========================================================
   1200px DOWN
   ========================================================= */

@media (max-width: 1200px) {

    .nl-single-product-page {
        padding-left: 20px;
        padding-right: 20px;
    }

    .nl-single-product-page .nl-product-main {
        grid-template-columns:
            minmax(330px, 1fr)
            minmax(280px, .9fr)
            minmax(320px, .95fr);
        column-gap: 18px;
    }

    .nl-single-product-page .nl-product-gallery {
        width: 100%;
        grid-template-columns: 68px minmax(0, 1fr);
        column-gap: 16px;
    }

    .nl-single-product-page .nl-product-main-image,
    .nl-single-product-page .nl-main-product-image {
        width: 100%;
        height: auto;
        aspect-ratio: 334 / 471;
    }

    .nl-single-product-page .nl-product-thumbnails {
        width: 68px;
    }

    .nl-single-product-page .nl-gallery-thumb {
        width: 68px;
        height: 82px;
        flex-basis: 82px;
    }

    .nl-single-product-page .nl-purchase-area {
        width: 100%;
    }

    .nl-single-product-page .nl-single-product-title {
        font-size: 30px;
    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .nl-single-product-page .nl-product-main {
        grid-template-columns: 1fr;
        row-gap: 30px;
    }

    .nl-single-product-page .nl-product-gallery {
        width: 100%;
        max-width: 650px;
    }

    .nl-single-product-page .nl-product-summary {
        width: 100%;
    }

    .nl-single-product-page .nl-purchase-area {
        width: 100%;
        margin-top: 0;
    }

    .nl-single-product-page .nl-single-product-title {
        white-space: normal;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .nl-single-product-page {
        padding-left: 12px;
        padding-right: 12px;
    }

    .nl-single-product-page .nl-product-gallery {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .nl-single-product-page .nl-product-main-image,
    .nl-single-product-page .nl-main-product-image {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 5;
    }

    .nl-single-product-page .nl-product-thumbnails {
        order: 2;
        width: 100%;
        height: 82px;
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
    }

    .nl-single-product-page .nl-gallery-thumb {
        flex: 0 0 68px;
        width: 68px;
        height: 80px;
    }

    .nl-single-product-page .nl-single-product-title {
        font-size: 28px;
        white-space: normal;
    }

    .nl-single-product-page .nl-single-product-price {
        font-size: 34px;
    }

    .nl-single-product-page .nl-purchase-area {
        padding: 22px 18px 25px;
    }

    .nl-single-product-page
    .woocommerce-variation-add-to-cart {
        grid-template-columns: 110px minmax(0, 1fr);
        gap: 10px;
    }

    .nl-single-product-page
    .woocommerce-variation-add-to-cart .quantity {
        width: 110px;
    }

}
/* =========================================================
   PRODUCT VARIATION BUTTONS
   ========================================================= */

.nl-single-product-page .variations_form .variations .value {
    width: 100%;
}

.nl-single-product-page .variations_form .variations select {
    position: absolute;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    overflow: hidden;
}

.nl-single-product-page .nl-variation-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}

.nl-single-product-page .nl-variation-button {
    min-width: 52px;
    height: 34px;
    padding: 0 16px;
    border: 1px solid #bdbdbd;
    border-radius: 3px;
    background: #fff;
    color: #111;
    font-size: 13px;
    line-height: 32px;
    font-weight: 400;
    text-align: center;
    cursor: pointer;
    transition:
        background-color .15s ease,
        border-color .15s ease,
        color .15s ease;
    box-sizing: border-box;
}

.nl-single-product-page .nl-variation-button:hover {
    border-color: #111;
}

.nl-single-product-page .nl-variation-button.is-selected {
    border-color: #111;
    background: #111;
    color: #fff;
}

.nl-single-product-page .nl-variation-button.is-disabled {
    opacity: .35;
    cursor: not-allowed;
    text-decoration: line-through;
}

@media (max-width: 600px) {

    .nl-single-product-page .nl-variation-button {
        min-width: 48px;
        height: 36px;
        line-height: 34px;
        padding: 0 14px;
    }

}
/* Hide WooCommerce's native Clear link */
.nl-single-product-page .reset_variations {
    display: none !important;
}
/* =========================================================
   PRODUCT PAGE — MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .nl-single-product-page {
        width: 100%;
        max-width: 100%;
        padding-left: 12px;
        padding-right: 12px;
        box-sizing: border-box;
    }

    /* Main product layout */
    .nl-single-product-page .nl-product-main {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: 28px;
    }


    /* =====================================================
       GALLERY
       ===================================================== */

    .nl-single-product-page .nl-product-gallery {
        width: 100%;
        max-width: 100%;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .nl-single-product-page .nl-product-main-image {
        order: 1;
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 5;
        overflow: hidden;
    }

    .nl-single-product-page .nl-main-product-image {
        width: 100%;
        height: 100%;
        max-width: 100%;
        object-fit: contain;
        object-position: center top;
    }

    /* Thumbnails below main image */
    .nl-single-product-page .nl-product-thumbnails {
        order: 2;
        width: 100%;
        height: 76px;
        display: flex;
        flex-direction: row;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 0 3px;
        box-sizing: border-box;
        scrollbar-width: none;
    }

    .nl-single-product-page .nl-product-thumbnails::-webkit-scrollbar {
        display: none;
    }

    .nl-single-product-page .nl-gallery-thumb {
        flex: 0 0 64px;
        width: 64px;
        height: 72px;
        min-width: 64px;
        padding: 0;
    }


    /* Sale badge */
    .nl-single-product-page .nl-product-gallery::after {
        top: 10px;
        left: 10px;
        padding: 6px 13px;
        font-size: 12px;
    }


    /* =====================================================
       PRODUCT INFORMATION
       ===================================================== */

    .nl-single-product-page .nl-product-summary {
        width: 100%;
        min-width: 0;
        padding: 0;
    }

    .nl-single-product-page .nl-single-product-title {
        width: 100%;
        margin: 0 0 13px;
        font-size: 25px;
        line-height: 1.2;
        letter-spacing: -0.02em;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .nl-single-product-page .nl-product-rating-row {
        margin-bottom: 14px;
    }

    .nl-single-product-page .nl-product-rating {
        flex-wrap: wrap;
        gap: 6px;
        font-size: 12px;
    }

    .nl-single-product-page .nl-stars {
        font-size: 16px;
    }

    .nl-single-product-page .nl-product-availability {
        gap: 15px;
        margin-bottom: 15px;
        font-size: 13px;
    }

    .nl-single-product-page .nl-single-product-price {
        margin-bottom: 22px;
        font-size: 32px;
    }

    .nl-single-product-page .nl-single-product-price del {
        font-size: 14px;
    }


    /* =====================================================
       PRODUCT SPECIFICATIONS
       ===================================================== */

    .nl-single-product-page .nl-product-specifications {
        width: 100%;
        margin: 0;
    }

    .nl-single-product-page .nl-product-specifications h2 {
        margin-bottom: 12px;
        font-size: 14px;
    }

    .nl-single-product-page
    .nl-product-specification-table {
        width: 100%;
        overflow-x: auto;
    }

    .nl-single-product-page
    .nl-product-specification-table table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
    }

    .nl-single-product-page
    .nl-product-specification-table th,
    .nl-single-product-page
    .nl-product-specification-table td {
        padding-bottom: 7px;
        font-size: 13px;
        line-height: 1.4;
        word-break: break-word;
    }

    .nl-single-product-page
    .nl-product-specification-table th {
        width: 105px;
        padding-right: 10px;
    }


    /* =====================================================
       SHORT DESCRIPTION
       ===================================================== */

    .nl-single-product-page .nl-product-short-description {
        width: 100%;
        margin-top: 16px;
        font-size: 13px;
        line-height: 1.55;
        overflow-wrap: anywhere;
    }


    /* =====================================================
       PURCHASE BOX
       ===================================================== */

    .nl-single-product-page .nl-purchase-area {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-top: 0;
        padding: 20px 16px 22px;
        box-sizing: border-box;
        border-radius: 12px;
    }

    .nl-single-product-page .nl-native-variable-product {
        width: 100%;
        min-width: 0;
    }


    /* =====================================================
       VARIATION LABELS
       ===================================================== */

    .nl-single-product-page
    .variations_form .variations tr {
        margin-bottom: 20px;
    }

    .nl-single-product-page
    .variations_form .variations .label {
        margin-bottom: 8px;
    }

    .nl-single-product-page
    .variations_form .variations .label label {
        font-size: 13px;
    }


    /* =====================================================
       COLOR / SIZE BUTTONS
       ===================================================== */

    .nl-single-product-page .nl-variation-buttons {
        display: flex;
        flex-wrap: wrap;
        gap: 7px;
        width: 100%;
    }

    .nl-single-product-page .nl-variation-button {
        flex: 0 0 auto;
        min-width: 48px;
        max-width: 100%;
        height: 36px;
        padding: 0 13px;
        font-size: 12px;
        line-height: 34px;
        white-space: nowrap;
        box-sizing: border-box;
    }


    /* =====================================================
       SIZE GUIDE + CUSTOM CLEAR
       ===================================================== */

    .nl-single-product-page .nl-option-actions {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 12px;
        margin: 0 0 22px;
    }

    .nl-single-product-page .nl-size-guide-button {
        min-width: 84px;
        height: 31px;
        padding: 0 14px;
        font-size: 12px;
        line-height: 31px;
    }

    .nl-single-product-page .nl-clear-button {
        height: 31px;
        font-size: 12px;
        line-height: 31px;
    }

    /* Hide native WooCommerce Clear */
    .nl-single-product-page .reset_variations {
        display: none !important;
    }


    /* =====================================================
       QUANTITY + ADD TO CART
       ===================================================== */

    .nl-single-product-page
    .woocommerce-variation-add-to-cart {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 9px;
        width: 100%;
    }

    .nl-single-product-page
    .woocommerce-variation-add-to-cart .quantity {
        width: 92px;
        height: 48px;
        min-width: 0;
    }

    .nl-single-product-page
    .woocommerce-variation-add-to-cart .quantity .qty {
        width: 100%;
        height: 46px;
        font-size: 15px;
    }

    .nl-single-product-page
    .woocommerce-variation-add-to-cart
    .single_add_to_cart_button {
        width: 100%;
        min-width: 0;
        height: 48px;
        padding: 0 8px;
        font-size: 14px;
        line-height: 48px;
        white-space: nowrap;
    }


    /* =====================================================
       BUY NOW
       ===================================================== */

    .nl-single-product-page .nl-buy-now-button {
        width: 100%;
        height: 48px;
        margin-top: 12px;
        font-size: 14px;
        line-height: 48px;
    }


    /* =====================================================
       TABS
       ===================================================== */

    .nl-single-product-page .nl-single-product-tabs {
        width: 100%;
        margin-top: 35px;
    }

    .nl-single-product-page .nl-product-tab-buttons {
        width: 100%;
        gap: 18px;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .nl-single-product-page
    .nl-product-tab-buttons::-webkit-scrollbar {
        display: none;
    }

    .nl-single-product-page .nl-product-tab-button {
        flex: 0 0 auto;
        padding: 12px 0;
        font-size: 13px;
    }

    .nl-single-product-page .nl-product-tab-content {
        padding: 20px 0;
        font-size: 13px;
        line-height: 1.55;
    }
}
/* =========================================================
   PRODUCT PAGE — LOWER CONTENT / TABS
   ========================================================= */

.nl-single-product-page .nl-single-product-tabs {
    width: 100%;
    margin-top: 65px;
    padding: 0;
}


/* =========================================================
   TAB NAVIGATION
   ========================================================= */

.nl-single-product-page .nl-product-tab-buttons {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 56px;
    border-bottom: 1px solid #d8d8d8;
    margin: 0;
    padding: 0;
}

.nl-single-product-page .nl-product-tab-button {
    position: relative;
    display: block;
    margin: 0;
    padding: 0 0 18px;

    border: 0;
    border-radius: 0;
    background: transparent;

    color: #111;
    font-size: 31px;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: -0.02em;

    cursor: pointer;
    white-space: nowrap;

    transition:
        color .2s ease;
}


/* Red underline */
.nl-single-product-page .nl-product-tab-button::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;

    height: 2px;
    background: #df1021;

    opacity: 0;

    transition:
        opacity .2s ease;
}


/* Hover */
.nl-single-product-page .nl-product-tab-button:hover {
    color: #df1021;
}


/* Active */
.nl-single-product-page
.nl-product-tab-button.is-active {
    color: #111;
    font-weight: 500;
}

.nl-single-product-page
.nl-product-tab-button.is-active::after {
    opacity: 1;
}


/* =========================================================
   TAB CONTENT
   ========================================================= */

.nl-single-product-page .nl-product-tab-content {
    display: none;

    width: 100%;
    margin: 0;
    padding: 34px 0 0;

    color: #111;
}

.nl-single-product-page
.nl-product-tab-content.is-active {
    display: block;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.nl-single-product-page
.nl-product-tab-content
.nl-rich-content {
    width: 100%;
    max-width: 100%;
    margin: 0;
}


/* Main description headings */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content h1,
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content h2,
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content h3 {
    margin: 0 0 18px;

    color: #111;

    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: -0.02em;
}


/* Paragraphs */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content p {
    margin: 0 0 25px;

    color: #111;

    font-size: 18px;
    line-height: 1.55;
    font-weight: 400;
}


/* Last paragraph */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content p:last-child {
    margin-bottom: 0;
}


/* Links */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content a {
    color: #111;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;

    transition: color .2s ease;
}

.nl-single-product-page
.nl-product-tab-content
.nl-rich-content a:hover {
    color: #df1021;
}


/* Bold text */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content strong {
    font-weight: 700;
}


/* Lists */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content ul,
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content ol {
    margin: 0 0 25px;
    padding-left: 25px;
}

.nl-single-product-page
.nl-product-tab-content
.nl-rich-content li {
    margin-bottom: 8px;

    font-size: 18px;
    line-height: 1.55;
}


/* Images inside description */
.nl-single-product-page
.nl-product-tab-content
.nl-rich-content img {
    max-width: 100%;
    height: auto;
    display: block;
}


/* =========================================================
   ADDITIONAL INFORMATION
   ========================================================= */

.nl-single-product-page
.nl-additional-information-table {
    width: 100%;
}

.nl-single-product-page
.nl-additional-information-table table {
    width: 100%;
    border-collapse: collapse;
    border: 0;
}

.nl-single-product-page
.nl-additional-information-table th,
.nl-single-product-page
.nl-additional-information-table td {
    padding: 13px 0;
    border: 0;
    border-bottom: 1px solid #e5e5e5;

    color: #111;
    font-size: 16px;
    line-height: 1.45;
    text-align: left;
}

.nl-single-product-page
.nl-additional-information-table th {
    width: 220px;
    font-weight: 600;
}


/* =========================================================
   REVIEWS
   ========================================================= */

.nl-single-product-page
.nl-product-reviews {
    width: 100%;
}

.nl-single-product-page
.nl-product-reviews h2 {
    margin: 0 0 20px;

    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .nl-single-product-page .nl-single-product-tabs {
        margin-top: 40px;
    }

    .nl-single-product-page .nl-product-tab-buttons {
        justify-content: flex-start;
        gap: 28px;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        padding: 0 2px;
    }

    .nl-single-product-page
    .nl-product-tab-buttons::-webkit-scrollbar {
        display: none;
    }

    .nl-single-product-page .nl-product-tab-button {
        flex: 0 0 auto;
        padding-bottom: 13px;
        font-size: 20px;
    }

    .nl-single-product-page .nl-product-tab-content {
        padding-top: 25px;
    }

    .nl-single-product-page
    .nl-product-tab-content
    .nl-rich-content h1,
    .nl-single-product-page
    .nl-product-tab-content
    .nl-rich-content h2,
    .nl-single-product-page
    .nl-product-tab-content
    .nl-rich-content h3 {
        font-size: 23px;
        line-height: 1.3;
    }

    .nl-single-product-page
    .nl-product-tab-content
    .nl-rich-content p {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 21px;
    }

    .nl-single-product-page
    .nl-product-tab-content
    .nl-rich-content li {
        font-size: 15px;
    }

    .nl-single-product-page
    .nl-additional-information-table {
        overflow-x: auto;
    }

    .nl-single-product-page
    .nl-additional-information-table th,
    .nl-single-product-page
    .nl-additional-information-table td {
        font-size: 14px;
    }

    .nl-single-product-page
    .nl-additional-information-table th {
        width: 130px;
    }

}
/* =====================================================
   CUSTOMER REVIEWS
   ===================================================== */

.nl-product-reviews {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    background: #fff;
}


/* =====================================================
   HEADER
   ===================================================== */

.nl-reviews-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    margin-bottom: 35px;
}

.nl-reviews-header h2 {
    margin: 0;
    padding: 0;

    font-size: 28px;
    line-height: 1.2;
    font-weight: 600;

    color: #111;
}


/* WRITE REVIEW BUTTON */

.nl-write-review-btn {
    border: 1px solid #111;
    background: #111;
    color: #fff;

    padding: 12px 22px;

    font-family: inherit;
    font-size: 14px;
    font-weight: 500;

    cursor: pointer;

    border-radius: 0;
}

.nl-write-review-btn:hover {
    background: #fff;
    color: #111;
}


/* =====================================================
   REVIEW FORM
   ===================================================== */

.nl-review-form-box {
    display: none;

    width: 100%;

    margin: 0 0 45px;
    padding: 0;

    background: #fff;
}

.nl-review-form-box.is-open {
    display: block;
}


/* =====================================================
   REVIEW LIST
   ===================================================== */

.nl-reviews-list {
    width: 100%;
    background: #fff;
}

.nl-reviews-list #comments {
    width: 100%;
}


/* Hide WooCommerce review count heading */

.nl-reviews-list .woocommerce-Reviews-title {
    display: none !important;
}


/* Remove list styling */

.nl-reviews-list .commentlist {
    list-style: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* =====================================================
   EACH REVIEW
   ===================================================== */

.nl-reviews-list .commentlist > li.review {
    margin: 0 !important;
    padding: 30px 0 !important;

    background: #fff;

    border: 0 !important;
    border-bottom: 1px solid #e5e5e5 !important;
}


/* =====================================================
   REVIEW CONTAINER
   ===================================================== */

.nl-reviews-list .comment_container {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}


/* REMOVE AVATAR */

.nl-reviews-list .comment_container img.avatar {
    display: none !important;
}


/* =====================================================
   MAIN REVIEW ROW
   ===================================================== */

.nl-reviews-list .comment-text {
    display: grid !important;

    grid-template-columns: 90px 220px minmax(0, 1fr);

    column-gap: 25px;

    align-items: center;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
}


/* =====================================================
   STARS — LEFT
   ===================================================== */

.nl-reviews-list .star-rating {
    grid-column: 1;
    grid-row: 1;

    position: relative;

    width: 90px !important;
    height: 20px !important;

    margin: 0 !important;

    font-size: 18px !important;

    overflow: hidden;

    flex: none;
}


/* EMPTY STARS */

.nl-reviews-list .star-rating::before {
    content: "★★★★★";

    position: absolute;

    left: 0;
    top: 0;

    color: #ddd;

    font-size: 18px;

    letter-spacing: 1px;

    line-height: 20px;
}


/* FILLED STARS */

.nl-reviews-list .star-rating span {
    position: absolute;

    left: 0;
    top: 0;

    display: block;

    height: 20px;

    overflow: hidden;

    font-size: 0 !important;

    color: transparent !important;

    white-space: nowrap;

    line-height: 20px;
}


/* ACTUAL FILLED STARS */

.nl-reviews-list .star-rating span::before {
    content: "★★★★★";

    display: block;

    color: #f5b301;

    font-size: 18px;

    letter-spacing: 1px;

    line-height: 20px;
}


/* =====================================================
   CUSTOMER INFO — MIDDLE
   ===================================================== */

.nl-reviews-list .meta {
    grid-column: 2;
    grid-row: 1;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left;

    line-height: 1.4;
}


/* CUSTOMER NAME */

.nl-reviews-list .woocommerce-review__author {
    display: block;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px;

    line-height: 1.4;

    font-weight: 600;

    color: #111;
}


/* VERIFIED BUYER */

.nl-reviews-list .meta::after {
    content: "✓ Verified buyer";

    display: block;

    margin-top: 5px;

    font-size: 13px;

    line-height: 1.4;

    font-weight: 500;

    color: #198754;
}


/* REMOVE DATE + DASH */

.nl-reviews-list .woocommerce-review__dash,
.nl-reviews-list .woocommerce-review__published-date {
    display: none !important;
}


/* =====================================================
   REVIEW TEXT — RIGHT
   ===================================================== */

.nl-reviews-list .description {
    grid-column: 3;
    grid-row: 1;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left;
}


.nl-reviews-list .description p {
    max-width: 700px;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px;

    line-height: 1.7;

    color: #333;
}


/* =====================================================
   REVIEW FORM
   ===================================================== */

.nl-review-form-box #review_form_wrapper {
    margin: 0 !important;
}

.nl-review-form-box .comment-reply-title {
    display: block;

    margin: 0 0 20px;

    font-size: 22px;

    font-weight: 600;

    color: #111;
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 768px) {

    .nl-reviews-header {
        gap: 20px;
    }

    .nl-reviews-header h2 {
        font-size: 24px;
    }

    .nl-write-review-btn {
        padding: 11px 16px;

        white-space: nowrap;
    }


    /* Mobile review */

    .nl-reviews-list .comment-text {
        display: flex !important;

        flex-direction: column;

        align-items: center;

        gap: 8px;

        width: 100%;

        text-align: center;
    }


    .nl-reviews-list .star-rating {
        order: 1;

        margin: 0 auto !important;
    }


    .nl-reviews-list .meta {
        order: 2;

        text-align: center;
    }


    .nl-reviews-list .description {
        order: 3;

        width: 100%;

        text-align: center;
    }


    .nl-reviews-list .description p {
        font-size: 15px;

        line-height: 1.6;

        text-align: center;
    }
}
.nl-reviews-list .star-rating {
    grid-column: 1;
    grid-row: 1;

    position: relative;

    width: 90px !important;
    height: 20px !important;

    margin: -26px 0 0 !important;

    font-size: 18px !important;

    overflow: hidden;
}
/* =====================================================
   HIDE WOOCOMMERCE REVIEW FORM INITIALLY
   ===================================================== */

.nl-product-reviews #review_form_wrapper {
    display: none;
    margin: 0 0 40px !important;
}


/* OPEN FORM */

.nl-product-reviews #review_form_wrapper.nl-form-open {
    display: block;
}


/* Keep review list visible */

.nl-product-reviews #comments {
    display: block;
}


/* Hide WooCommerce's review-count heading */

.nl-product-reviews .woocommerce-Reviews-title {
    display: none !important;
}
/* =====================================================
   REVIEWS
   ===================================================== */

.nl-product-reviews {
    width: 100%;
    background: #fff;
}

.nl-product-reviews #reviews {
    width: 100%;
}


/* Hide WooCommerce's "2 reviews for Product" heading */

.nl-product-reviews .woocommerce-Reviews-title {
    display: none !important;
}


/* =====================================================
   REVIEW LIST
   ===================================================== */

.nl-product-reviews .commentlist {
    list-style: none !important;

    margin: 0 !important;
    padding: 0 !important;
}


/* Individual review */

.nl-product-reviews .commentlist > li.review {
    margin: 0 !important;

    padding: 30px 0 !important;

    background: #fff;

    border: 0 !important;
    border-bottom: 1px solid #e5e5e5 !important;
}


/* =====================================================
   REMOVE AVATAR
   ===================================================== */

.nl-product-reviews .comment_container > img.avatar {
    display: none !important;
}


/* =====================================================
   REVIEW ROW
   ===================================================== */

.nl-product-reviews .comment-text {
    display: grid !important;

    grid-template-columns: 90px 220px minmax(0, 1fr);

    column-gap: 25px;

    align-items: center;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
}


/* =====================================================
   STARS — LEFT
   ===================================================== */

.nl-product-reviews .star-rating {
    grid-column: 1;
    grid-row: 1;

    position: relative;

    width: 90px !important;
    height: 20px !important;

    margin: -18px 0 0 !important;

    font-size: 18px !important;

    overflow: hidden;
}


/* Empty stars */

.nl-product-reviews .star-rating::before {
    content: "★★★★★";

    position: absolute;

    left: 0;
    top: 0;

    color: #ddd;

    font-size: 18px;

    letter-spacing: 1px;

    line-height: 20px;
}


/* Filled stars */

.nl-product-reviews .star-rating span {
    position: absolute;

    left: 0;
    top: 0;

    display: block;

    height: 20px;

    overflow: hidden;

    font-size: 0 !important;

    color: transparent !important;

    white-space: nowrap;

    line-height: 20px;
}


/* Actual filled stars */

.nl-product-reviews .star-rating span::before {
    content: "★★★★★";

    display: block;

    color: #f5b301;

    font-size: 18px;

    letter-spacing: 1px;

    line-height: 20px;
}


/* =====================================================
   CUSTOMER INFO
   ===================================================== */

.nl-product-reviews .meta {
    grid-column: 2;
    grid-row: 1;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left;
}


/* Name */

.nl-product-reviews .woocommerce-review__author {
    display: block;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px;

    line-height: 1.4;

    font-weight: 600;

    color: #111;
}


/* Verified buyer */

.nl-product-reviews .meta::after {
    content: "✓ Verified buyer";

    display: block;

    margin-top: 5px;

    font-size: 13px;

    line-height: 1.4;

    font-weight: 500;

    color: #198754;
}


/* Hide date and dash */

.nl-product-reviews .woocommerce-review__dash,
.nl-product-reviews .woocommerce-review__published-date {
    display: none !important;
}


/* =====================================================
   REVIEW TEXT
   ===================================================== */

.nl-product-reviews .description {
    grid-column: 3;
    grid-row: 1;

    width: 100%;

    margin: 0 !important;
    padding: 0 !important;

    text-align: left;
}


.nl-product-reviews .description p {
    max-width: 700px;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px;

    line-height: 1.7;

    color: #333;
}


/* =====================================================
   WOOCOMMERCE FORM
   ===================================================== */

.nl-product-reviews #review_form_wrapper {
    display: none;

    margin: 0 0 40px !important;
}

.nl-product-reviews #review_form_wrapper.nl-form-open {
    display: block;
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 768px) {

    .nl-reviews-header {
        gap: 20px;
    }

    .nl-reviews-header h2 {
        font-size: 24px;
    }

    .nl-write-review-btn {
        padding: 11px 16px;

        white-space: nowrap;
    }


    .nl-product-reviews .comment-text {
        display: flex !important;

        flex-direction: column;

        align-items: center;

        gap: 8px;

        text-align: center;
    }


    .nl-product-reviews .star-rating {
        order: 1;

        margin: 0 auto !important;
    }


    .nl-product-reviews .meta {
        order: 2;

        text-align: center;
    }


    .nl-product-reviews .description {
        order: 3;

        width: 100%;

        text-align: center;
    }


    .nl-product-reviews .description p {
        font-size: 15px;

        line-height: 1.6;

        text-align: center;
    }
}
/* =========================================================
   REVIEW FORM — POSITION + STYLING
   ========================================================= */

/* Put form ABOVE reviews */
.nl-product-reviews #reviews {
    display: flex !important;
    flex-direction: column !important;
}

.nl-product-reviews #review_form_wrapper {
    order: 1 !important;
    width: 100%;
}

.nl-product-reviews #comments {
    order: 2 !important;
}

.nl-product-reviews #reviews > .clear {
    order: 3 !important;
}


/* Form hidden until Write a review is clicked */
.nl-product-reviews #review_form_wrapper {
    display: none;
    margin: 0 0 45px !important;
}

.nl-product-reviews #review_form_wrapper.is-open {
    display: block !important;
}


/* =========================================================
   FORM TITLE
   ========================================================= */

.nl-product-reviews #reply-title {
    display: block !important;
    margin: 0 0 25px !important;
    padding: 0 !important;
    font-size: 24px !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
    color: #111 !important;
}


/* =========================================================
   RATING LABEL
   ========================================================= */

.nl-product-reviews .comment-form-rating {
    margin: 0 0 22px !important;
}

.nl-product-reviews .comment-form-rating label {
    display: block !important;
    margin: 0 0 10px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
    color: #222 !important;
}


/* =========================================================
   ACTUAL CLICKABLE STARS
   ========================================================= */

.nl-product-reviews .stars {
    margin: 0 !important;
    padding: 0 !important;
}

.nl-product-reviews .stars a {
    display: inline-block !important;
    width: 30px !important;
    height: 32px !important;
    margin: 0 3px 0 0 !important;
    padding: 0 !important;

    font-size: 0 !important;
    line-height: 32px !important;

    text-decoration: none !important;
    color: transparent !important;

    position: relative !important;
}

.nl-product-reviews .stars a::before {
    content: "★" !important;

    display: block !important;

    font-family: Arial, sans-serif !important;
    font-size: 28px !important;
    line-height: 32px !important;

    color: #d6d6d6 !important;

    transition: color 0.15s ease, transform 0.15s ease !important;
}


/* Hover each star */
.nl-product-reviews .stars a:hover::before {
    color: #f5b301 !important;
    transform: scale(1.08);
}


/* Highlight selected stars */
.nl-product-reviews .stars a.active::before,
.nl-product-reviews .stars a.star-1.active::before,
.nl-product-reviews .stars a.star-2.active::before,
.nl-product-reviews .stars a.star-3.active::before,
.nl-product-reviews .stars a.star-4.active::before,
.nl-product-reviews .stars a.star-5.active::before {
    color: #f5b301 !important;
}


/* =========================================================
   REVIEW TEXTAREA
   ========================================================= */

.nl-product-reviews .comment-form-comment {
    margin: 0 0 20px !important;
}

.nl-product-reviews .comment-form-comment label {
    display: block !important;
    margin: 0 0 9px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #222 !important;
}

.nl-product-reviews .comment-form-comment textarea {
    display: block !important;
    width: 100% !important;
    min-height: 130px !important;

    padding: 14px 16px !important;

    border: 1px solid #d8d8d8 !important;
    border-radius: 3px !important;

    background: #fff !important;

    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.5 !important;

    resize: vertical !important;

    box-sizing: border-box !important;
}

.nl-product-reviews .comment-form-comment textarea:focus {
    outline: none !important;
    border-color: #111 !important;
}


/* =========================================================
   SUBMIT BUTTON
   ========================================================= */

.nl-product-reviews .form-submit {
    margin: 0 !important;
}

.nl-product-reviews .form-submit .submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 46px !important;
    padding: 0 28px !important;

    border: 1px solid #111 !important;
    border-radius: 3px !important;

    background: #111 !important;
    color: #fff !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;

    cursor: pointer !important;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease !important;
}

.nl-product-reviews .form-submit .submit:hover {
    background: #fff !important;
    color: #111 !important;
}


/* =========================================================
   WRITE A REVIEW BUTTON
   ========================================================= */

.nl-product-reviews .nl-reviews-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    margin-bottom: 30px;
}

.nl-product-reviews .nl-write-review-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 42px !important;
    padding: 0 20px !important;

    border: 1px solid #111 !important;
    border-radius: 3px !important;

    background: #111 !important;
    color: #fff !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;

    cursor: pointer !important;

    transition: all 0.2s ease !important;
}

.nl-product-reviews .nl-write-review-btn:hover {
    background: #fff !important;
    color: #111 !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .nl-product-reviews .nl-reviews-header {
        align-items: flex-start;
        gap: 15px;
    }

    .nl-product-reviews .nl-reviews-header h2 {
        font-size: 21px !important;
    }

    .nl-product-reviews .nl-write-review-btn {
        min-height: 40px !important;
        padding: 0 14px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    .nl-product-reviews #reply-title {
        font-size: 21px !important;
    }

    .nl-product-reviews .stars a {
        width: 29px !important;
        margin-right: 2px !important;
    }
}
/* =========================================================
   =========================================================
   SINGLE PRODUCT PAGE — COMPLETE MOBILE CSS
   Uses ONLY the actual classes from product-page.php
   Desktop is completely untouched.
   =========================================================
   ========================================================= */

@media (max-width: 767px) {

    /* =====================================================
       1. GLOBAL MOBILE SAFETY
       ===================================================== */

    .nl-single-product-page {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }

    .nl-single-product-page *,
    .nl-single-product-page *::before,
    .nl-single-product-page *::after {
        box-sizing: border-box !important;
    }

    .nl-single-product-page img {
        max-width: 100% !important;
    }


    /* =====================================================
       2. MAIN PRODUCT AREA
       ===================================================== */

    .nl-single-product-page .nl-product-main {
        display: flex !important;
        flex-direction: column !important;

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

        gap: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }


    /* =====================================================
       3. PRODUCT GALLERY
       ===================================================== */

    .nl-single-product-page .nl-product-gallery {
        display: flex !important;
        flex-direction: column !important;

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

        margin: 0 0 25px !important;
        padding: 0 !important;

        gap: 10px !important;
    }


    /* MAIN IMAGE FIRST */

    .nl-single-product-page .nl-product-main-image {
        order: 1 !important;

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

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }

    .nl-single-product-page .nl-main-product-image {
        display: block !important;

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

        margin: 0 !important;
        padding: 0 !important;

        object-fit: cover !important;
    }


    /* THUMBNAILS BELOW MAIN IMAGE */

    .nl-single-product-page .nl-product-thumbnails {
        order: 2 !important;

        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;

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

        gap: 7px !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .nl-single-product-page .nl-product-thumbnails::-webkit-scrollbar {
        display: none !important;
    }

    .nl-single-product-page .nl-gallery-thumb {
        flex: 0 0 64px !important;

        width: 64px !important;
        height: 64px !important;

        min-width: 64px !important;
        max-width: 64px !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 1px solid #ddd !important;
        background: #fff !important;

        overflow: hidden !important;
    }

    .nl-single-product-page .nl-gallery-thumb.is-active {
        border-color: #111 !important;
    }

    .nl-single-product-page .nl-gallery-thumb img {
        display: block !important;

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

        object-fit: cover !important;
    }


    /* =====================================================
       4. PRODUCT SUMMARY
       ===================================================== */

    .nl-single-product-page .nl-product-summary {
        order: 2 !important;

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

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }


    /* =====================================================
       5. PRODUCT TITLE
       ===================================================== */

    .nl-single-product-page .nl-single-product-title {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 10px !important;
        padding: 0 !important;

        font-size: 22px !important;
        line-height: 1.3 !important;
        font-weight: 600 !important;

        overflow-wrap: break-word !important;
        word-break: normal !important;
    }


    /* =====================================================
       6. RATING ROW
       ===================================================== */

    .nl-single-product-page .nl-product-rating-row {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 16px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-rating {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;

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

        gap: 6px !important;

        margin: 0 !important;
        padding: 0 !important;

        text-decoration: none !important;
    }

    .nl-single-product-page .nl-stars {
        flex: 0 0 auto !important;

        font-size: 16px !important;
        line-height: 1 !important;
        letter-spacing: 1px !important;
    }

    .nl-single-product-page .nl-review-count,
    .nl-single-product-page .nl-write-review,
    .nl-single-product-page .nl-review-separator {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }


    /* =====================================================
       7. AVAILABILITY
       ===================================================== */

    .nl-single-product-page .nl-product-availability {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;

        width: 100% !important;

        margin: 0 0 14px !important;
        padding: 0 !important;

        gap: 8px !important;

        font-size: 13px !important;
        line-height: 1.4 !important;
    }


    /* =====================================================
       8. PRICE
       ===================================================== */

    .nl-single-product-page .nl-single-product-price {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 20px !important;
        padding: 0 !important;

        font-size: 20px !important;
        line-height: 1.4 !important;
    }


    /* =====================================================
       9. PRODUCT SPECIFICATIONS
       ===================================================== */

    .nl-single-product-page .nl-product-specifications {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 18px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-specifications h2 {
        width: 100% !important;

        margin: 0 0 10px !important;
        padding: 0 !important;

        font-size: 17px !important;
        line-height: 1.4 !important;
    }


    /* =====================================================
       10. PRODUCT ATTRIBUTES
       ===================================================== */

    .nl-single-product-page .nl-product-additional-information {
        width: 100% !important;
        max-width: 100% !important;

        overflow-x: auto !important;
    }

    .nl-single-product-page .nl-product-additional-information table {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        font-size: 13px !important;
    }

    .nl-single-product-page .nl-product-additional-information th,
    .nl-single-product-page .nl-product-additional-information td {
        padding: 8px 6px !important;

        font-size: 13px !important;
        line-height: 1.4 !important;

        word-break: break-word !important;
    }


    /* =====================================================
       11. SHORT DESCRIPTION
       ===================================================== */

    .nl-single-product-page .nl-product-short-description {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 22px !important;
        padding: 0 !important;

        font-size: 14px !important;
        line-height: 1.65 !important;

        overflow-wrap: break-word !important;
    }


    /* =====================================================
       12. PURCHASE AREA
       ===================================================== */

    .nl-single-product-page .nl-purchase-area {
        order: 3 !important;

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

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }


    /* =====================================================
       13. WOOCOMMERCE VARIABLE FORM
       ===================================================== */

    .nl-single-product-page .nl-native-variable-product,
    .nl-single-product-page .variations_form {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .variations {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .variations tbody {
        display: block !important;
        width: 100% !important;
    }

    .nl-single-product-page .variations tr {
        display: block !important;

        width: 100% !important;

        margin: 0 0 17px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .variations th,
    .nl-single-product-page .variations td {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        text-align: left !important;
    }

    .nl-single-product-page .variations th label,
    .nl-single-product-page .variations td label {
        display: block !important;

        margin: 0 0 8px !important;

        font-size: 14px !important;
        line-height: 1.4 !important;
        font-weight: 600 !important;
    }


    /* HIDE NATIVE SELECT VISUALLY */

    .nl-single-product-page .variations select {
        position: absolute !important;

        width: 1px !important;
        height: 1px !important;

        opacity: 0 !important;

        pointer-events: none !important;
    }


    /* =====================================================
       14. CUSTOM VARIATION BUTTONS
       ===================================================== */

    .nl-single-product-page .nl-variation-buttons {
        display: flex !important;
        flex-wrap: wrap !important;

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

        gap: 8px !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-variation-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        flex: 0 0 auto !important;

        min-width: 48px !important;
        min-height: 42px !important;

        padding: 0 14px !important;

        border: 1px solid #ccc !important;
        border-radius: 3px !important;

        background: #fff !important;
        color: #111 !important;

        font-family: inherit !important;
        font-size: 13px !important;
        line-height: 1 !important;

        cursor: pointer !important;
    }

    .nl-single-product-page .nl-variation-button.is-selected {
        border-color: #111 !important;
        background: #111 !important;
        color: #fff !important;
    }

    .nl-single-product-page .nl-variation-button.is-disabled,
    .nl-single-product-page .nl-variation-button:disabled {
        opacity: .4 !important;
        cursor: not-allowed !important;
    }


    /* =====================================================
       15. SIZE GUIDE + CLEAR
       ===================================================== */

    .nl-single-product-page .nl-option-actions {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        width: 100% !important;

        margin: 2px 0 15px !important;
        padding: 0 !important;

        gap: 15px !important;
    }

    .nl-single-product-page .nl-size-guide-button,
    .nl-single-product-page .nl-clear-button {
        min-height: 38px !important;

        padding: 0 !important;

        background: transparent !important;

        font-family: inherit !important;
        font-size: 13px !important;
        line-height: 1.3 !important;

        cursor: pointer !important;
    }

    .nl-single-product-page .nl-size-guide-button {
        color: #111 !important;

        text-decoration: underline !important;
        text-underline-offset: 3px !important;

        border: 0 !important;
    }

    .nl-single-product-page .nl-clear-button {
        color: #555 !important;

        border: 0 !important;
    }


    /* =====================================================
       16. SIMPLE PRODUCT CART
       ===================================================== */

    .nl-single-product-page .nl-simple-cart,
    .nl-single-product-page .nl-simple-cart-row {
        width: 100% !important;
        max-width: 100% !important;
    }

    .nl-single-product-page .nl-simple-cart-row {
        display: flex !important;
        flex-direction: column !important;

        gap: 10px !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-simple-cart .quantity {
        width: 100% !important;
        margin: 0 !important;
    }

    .nl-single-product-page .nl-simple-cart .quantity input {
        width: 100% !important;
        max-width: 100% !important;

        min-height: 48px !important;
    }


    /* =====================================================
       17. ADD TO CART
       ===================================================== */

    .nl-single-product-page .nl-add-to-cart-button,
    .nl-single-product-page .single_add_to_cart_button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

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

        min-height: 48px !important;

        margin: 0 !important;
        padding: 0 16px !important;

        font-size: 14px !important;
    }


    /* =====================================================
       18. BUY IT NOW
       ===================================================== */

    .nl-single-product-page .nl-buy-now-button {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

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

        min-height: 48px !important;

        margin: 10px 0 0 !important;
        padding: 0 16px !important;

        text-align: center !important;
        text-decoration: none !important;

        font-size: 14px !important;
    }


    /* =====================================================
       19. PURCHASE MESSAGES
       ===================================================== */

    .nl-single-product-page .nl-product-purchase-message {
        width: 100% !important;

        margin: 18px 0 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-purchase-message-item {
        display: flex !important;
        align-items: flex-start !important;

        width: 100% !important;

        gap: 8px !important;

        margin: 0 0 9px !important;
        padding: 0 !important;

        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .nl-single-product-page .nl-message-icon {
        flex: 0 0 auto !important;
    }


    /* =====================================================
       20. PRODUCT TABS
       ===================================================== */

    .nl-single-product-page .nl-single-product-tabs {
        width: 100% !important;
        max-width: 100% !important;

        margin: 35px 0 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }


    /* TAB BUTTON BAR */

    .nl-single-product-page .nl-product-tab-buttons {
        display: flex !important;
        flex-wrap: nowrap !important;

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

        margin: 0 !important;
        padding: 0 !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .nl-single-product-page .nl-product-tab-buttons::-webkit-scrollbar {
        display: none !important;
    }


    /* INDIVIDUAL TAB */

    .nl-single-product-page .nl-product-tab-button {
        flex: 0 0 auto !important;

        min-height: 46px !important;

        margin: 0 !important;
        padding: 0 15px !important;

        white-space: nowrap !important;

        font-size: 13px !important;
        line-height: 1 !important;
    }


    /* TAB CONTENT */

    .nl-single-product-page .nl-product-tab-content {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 24px 0 !important;

        overflow: hidden !important;
    }


    /* =====================================================
       21. DESCRIPTION TAB
       ===================================================== */

    .nl-single-product-page .nl-rich-content {
        width: 100% !important;
        max-width: 100% !important;

        font-size: 14px !important;
        line-height: 1.7 !important;

        overflow-wrap: break-word !important;
    }

    .nl-single-product-page .nl-rich-content img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    .nl-single-product-page .nl-rich-content iframe,
    .nl-single-product-page .nl-rich-content video {
        max-width: 100% !important;
    }


    /* =====================================================
       22. ADDITIONAL INFORMATION TAB
       ===================================================== */

    .nl-single-product-page .nl-additional-information-table {
        width: 100% !important;
        max-width: 100% !important;

        overflow-x: auto !important;
    }

    .nl-single-product-page .nl-additional-information-table table {
        width: 100% !important;

        margin: 0 !important;

        font-size: 13px !important;
    }

    .nl-single-product-page .nl-additional-information-table th,
    .nl-single-product-page .nl-additional-information-table td {
        padding: 9px 7px !important;

        font-size: 13px !important;
        line-height: 1.4 !important;

        word-break: break-word !important;
    }


    /* =====================================================
       23. REVIEWS
       ===================================================== */

    .nl-single-product-page .nl-product-reviews {
        width: 100% !important;
        max-width: 100% !important;
    }


    /* REVIEW HEADER */

    .nl-single-product-page .nl-reviews-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        width: 100% !important;

        gap: 10px !important;

        margin: 0 0 24px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-reviews-header h2 {
        flex: 1 1 auto !important;

        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        font-size: 20px !important;
        line-height: 1.3 !important;
    }

    .nl-single-product-page .nl-write-review-btn {
        flex: 0 0 auto !important;

        min-height: 40px !important;

        padding: 0 13px !important;

        border: 1px solid #111 !important;
        border-radius: 3px !important;

        background: #111 !important;
        color: #fff !important;

        font-family: inherit !important;
        font-size: 12px !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }


    /* =====================================================
       24. WOO REVIEW FORM — ABOVE REVIEWS
       ===================================================== */

    .nl-single-product-page .nl-product-reviews #reviews {
        display: flex !important;
        flex-direction: column !important;

        width: 100% !important;
    }

    .nl-single-product-page .nl-product-reviews #review_form_wrapper {
        order: 1 !important;

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

        margin: 0 0 30px !important;
        padding: 0 !important;
    }

    /*
     * YOUR CURRENT JS USES .nl-form-open
     * so this is the important selector.
     */
    .nl-single-product-page .nl-product-reviews #review_form_wrapper.nl-form-open {
        display: block !important;
    }

    /* Also support is-open just in case */
    .nl-single-product-page .nl-product-reviews #review_form_wrapper.is-open {
        display: block !important;
    }


    /* REVIEWS AFTER FORM */

    .nl-single-product-page .nl-product-reviews #comments {
        order: 2 !important;

        width: 100% !important;
        max-width: 100% !important;
    }


    /* =====================================================
       25. REVIEW FORM TITLE
       ===================================================== */

    .nl-single-product-page .nl-product-reviews #reply-title {
        margin: 0 0 18px !important;
        padding: 0 !important;

        font-size: 20px !important;
        line-height: 1.3 !important;
        font-weight: 600 !important;
    }

    .nl-single-product-page .nl-product-reviews #reply-title small {
        display: none !important;
    }


    /* =====================================================
       26. REVIEW RATING STARS
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .comment-form-rating {
        width: 100% !important;

        margin: 0 0 20px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-rating label {
        display: block !important;

        margin: 0 0 8px !important;

        font-size: 14px !important;
        font-weight: 500 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-rating .stars {
        display: flex !important;
        align-items: center !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-rating .stars a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 32px !important;
        height: 34px !important;

        margin: 0 3px 0 0 !important;
        padding: 0 !important;

        font-size: 0 !important;
        line-height: 1 !important;

        text-decoration: none !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-rating .stars a::before {
        content: "★" !important;

        display: block !important;

        font-family: Arial, sans-serif !important;
        font-size: 27px !important;
        line-height: 1 !important;

        color: #d5d5d5 !important;

        transition: .15s ease !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-rating .stars a:hover::before {
        color: #f5b301 !important;
        transform: scale(1.08);
    }


    /* =====================================================
       27. REVIEW TEXTAREA
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .comment-form-comment {
        width: 100% !important;

        margin: 0 0 18px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-comment label {
        display: block !important;

        margin: 0 0 8px !important;

        font-size: 14px !important;
        font-weight: 500 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-comment textarea {
        display: block !important;

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

        min-height: 120px !important;

        margin: 0 !important;
        padding: 13px !important;

        border: 1px solid #d5d5d5 !important;
        border-radius: 3px !important;

        font-family: inherit !important;
        font-size: 14px !important;
        line-height: 1.5 !important;

        resize: vertical !important;
    }


    /* =====================================================
       28. REVIEW NAME / EMAIL
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .comment-form-author,
    .nl-single-product-page .nl-product-reviews .comment-form-email {
        width: 100% !important;

        margin: 0 0 16px !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-form-author input,
    .nl-single-product-page .nl-product-reviews .comment-form-email input {
        width: 100% !important;
        max-width: 100% !important;

        min-height: 45px !important;

        padding: 0 13px !important;

        font-family: inherit !important;
        font-size: 14px !important;
    }


    /* =====================================================
       29. REVIEW SUBMIT
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .form-submit {
        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .form-submit .submit {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

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

        min-height: 47px !important;

        margin: 0 !important;
        padding: 0 15px !important;

        border: 1px solid #111 !important;
        border-radius: 3px !important;

        background: #111 !important;
        color: #fff !important;

        font-family: inherit !important;
        font-size: 14px !important;
        font-weight: 600 !important;
    }


    /* =====================================================
       30. REVIEW LIST
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .woocommerce-Reviews-title {
        display: none !important;
    }

    .nl-single-product-page .nl-product-reviews .commentlist {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        list-style: none !important;
    }

    .nl-single-product-page .nl-product-reviews .commentlist > li {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 20px 0 !important;

        background: #fff !important;

        border: 0 !important;
    }


    /* =====================================================
       31. REVIEW CONTENT
       ===================================================== */

    .nl-single-product-page .nl-product-reviews .comment_container {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-single-product-page .nl-product-reviews .comment_container .avatar {
        display: none !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-text {
        display: grid !important;

        grid-template-columns: 75px minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;

        column-gap: 10px !important;

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

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }


    /* REVIEW STARS */

    .nl-single-product-page .nl-product-reviews .comment-text .star-rating {
        grid-column: 1 !important;
        grid-row: 1 !important;

        width: 75px !important;
        height: 20px !important;

        margin: 0 !important;

        font-size: 15px !important;
    }


    /* REVIEW META */

    .nl-single-product-page .nl-product-reviews .comment-text .meta {
        grid-column: 2 !important;
        grid-row: 1 !important;

        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        text-align: left !important;

        overflow-wrap: anywhere !important;
    }

    .nl-single-product-page .nl-product-reviews .woocommerce-review__author {
        display: block !important;

        font-size: 14px !important;
        line-height: 1.4 !important;

        overflow-wrap: anywhere !important;
    }

    .nl-single-product-page .nl-product-reviews .woocommerce-review__dash,
    .nl-single-product-page .nl-product-reviews .woocommerce-review__published-date {
        display: none !important;
    }


    /* VERIFIED BUYER */

    .nl-single-product-page .nl-product-reviews .comment-text .meta::after {
        content: "✓ Verified buyer" !important;

        display: block !important;

        margin-top: 3px !important;

        color: #198754 !important;

        font-size: 12px !important;
        line-height: 1.3 !important;
    }


    /* REVIEW DESCRIPTION */

    .nl-single-product-page .nl-product-reviews .comment-text .description {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;

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

        margin: 10px 0 0 !important;
        padding: 0 !important;

        text-align: left !important;

        overflow-wrap: break-word !important;
    }

    .nl-single-product-page .nl-product-reviews .comment-text .description p {
        margin: 0 !important;

        font-size: 14px !important;
        line-height: 1.6 !important;

        overflow-wrap: break-word !important;
    }


    /* =====================================================
       32. SIZE GUIDE MODAL
       ===================================================== */

    .nl-single-product-page .nl-size-guide-modal {
        width: 100% !important;
        max-width: 100% !important;
    }

    .nl-single-product-page .nl-size-guide-box {
        width: calc(100% - 30px) !important;
        max-width: 500px !important;

        max-height: calc(100vh - 30px) !important;

        margin: 15px auto !important;
        padding: 25px 20px !important;

        overflow-y: auto !important;
    }

    .nl-single-product-page .nl-size-guide-box h2 {
        margin-top: 0 !important;

        font-size: 21px !important;
    }

    .nl-single-product-page .nl-size-guide-box p {
        font-size: 14px !important;
        line-height: 1.6 !important;
    }


    /* =====================================================
       33. VERY SMALL PHONES
       ===================================================== */

    @media (max-width: 380px) {

        .nl-single-product-page .nl-single-product-title {
            font-size: 20px !important;
        }

        .nl-single-product-page .nl-stars {
            font-size: 15px !important;
        }

        .nl-single-product-page .nl-write-review-btn {
            padding: 0 10px !important;
            font-size: 11px !important;
        }

        .nl-single-product-page .nl-product-tab-button {
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .nl-single-product-page .nl-gallery-thumb {
            flex-basis: 58px !important;
            width: 58px !important;
            height: 58px !important;
            min-width: 58px !important;
        }

    }

}
@media (max-width: 767px) {

    .nl-single-product-page {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

}
@media (max-width: 767px) {

    /* =========================================
       MOBILE HEADER — FULL SCREEN
       ========================================= */

    .nl-header,
    .nl-header-main,
    .nl-header-inner {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .nl-header-inner {
        height: 64px !important;

        display: grid !important;
        grid-template-columns: 1fr auto 1fr !important;
        align-items: center !important;

        position: relative !important;
    }


    /* =========================================
       MENU — FAR LEFT
       ========================================= */

    .nl-mobile-toggle {
        grid-column: 1 !important;
        justify-self: start !important;

        width: 42px !important;
        height: 42px !important;

        margin-left: 6px !important;
        margin-right: 0 !important;

        padding: 8px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;
        gap: 4px !important;

        box-sizing: border-box !important;
    }


    /* =========================================
       LOGO — EXACT CENTER
       ========================================= */

    .nl-brand-wrap {
        grid-column: 2 !important;
        justify-self: center !important;

        position: static !important;
        transform: none !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-brand {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-brand img {
        display: block !important;
        width: auto !important;
        max-width: 120px !important;
        height: auto !important;
    }


    /* =========================================
       DESKTOP NAV — HIDDEN
       ========================================= */

    .nl-nav {
        display: none !important;
    }


    /* =========================================
       ICONS — FAR RIGHT
       ========================================= */

    .nl-tools {
        grid-column: 3 !important;
        justify-self: end !important;

        position: static !important;
        transform: none !important;

        width: auto !important;
        height: 42px !important;

        margin: 0 !important;
        margin-right: 4px !important;

        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;

        gap: 0 !important;
    }


    .nl-tools .nl-tool {
        flex: 0 0 30px !important;

        width: 30px !important;
        height: 42px !important;

        margin: 0 !important;
        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .nl-tools .nl-tool svg {
        width: 19px !important;
        height: 19px !important;
    }


    /* =========================================
       CART COUNT
       ========================================= */

    .nl-cart {
        position: relative !important;
    }

    .nl-cart-count {
        position: absolute !important;

        top: 4px !important;
        right: 0 !important;

        min-width: 13px !important;
        height: 13px !important;

        padding: 0 2px !important;

        font-size: 8px !important;
        line-height: 13px !important;

        text-align: center !important;
        border-radius: 50% !important;
    }


    /* =========================================
       MOBILE SEARCH PANEL
       ========================================= */

    .nl-search-panel {
        width: 100vw !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }

}
@media (max-width: 767px) {

    /* FORCE MOBILE BURGER TO SHOW ON HOMEPAGE */
    .nl-header .nl-mobile-toggle {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;

        grid-column: 1 !important;
        justify-self: start !important;

        position: relative !important;
        z-index: 9999 !important;

        width: 42px !important;
        height: 42px !important;

        margin-left: 6px !important;
        margin-right: 0 !important;

        padding: 8px !important;

        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;
        gap: 4px !important;

        background: transparent !important;
        border: 0 !important;
    }

    .nl-header .nl-mobile-toggle span {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;

        width: 20px !important;
        height: 2px !important;

        margin: 0 !important;
    }

}
@media (max-width: 767px) {

    /* =====================================================
       SAME MOBILE HEADER ON EVERY PAGE
       LEFT: BURGER
       CENTER: LOGO
       RIGHT: SEARCH / ACCOUNT / WISHLIST / CART
       ===================================================== */

    .nl-header .nl-header-main,
    .nl-header .nl-header-inner {
        width: 100vw !important;
        max-width: 100vw !important;
        height: 64px !important;

        margin: 0 !important;
        padding: 0 !important;

        box-sizing: border-box !important;
    }


    .nl-header .nl-header-inner {
        display: grid !important;

        grid-template-columns: 1fr auto 1fr !important;

        align-items: center !important;

        position: relative !important;
    }


    /* =====================================================
       BURGER — LEFT
       ===================================================== */

    .nl-header .nl-mobile-toggle {
        grid-column: 1 !important;
        justify-self: start !important;

        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;

        width: 42px !important;
        height: 42px !important;

        margin: 0 0 0 6px !important;
        padding: 8px !important;

        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;

        transform: none !important;

        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;

        gap: 4px !important;

        z-index: 100 !important;

        box-sizing: border-box !important;
    }

    .nl-header .nl-mobile-toggle span {
        display: block !important;

        width: 20px !important;
        height: 2px !important;

        margin: 0 !important;
        padding: 0 !important;

        opacity: 1 !important;
        visibility: visible !important;
    }


    /* =====================================================
       LOGO — EXACT CENTER
       ===================================================== */

    .nl-header .nl-brand-wrap {
        grid-column: 2 !important;
        justify-self: center !important;

        position: static !important;

        left: auto !important;
        right: auto !important;
        top: auto !important;

        transform: none !important;

        margin: 0 !important;
        padding: 0 !important;

        z-index: 50 !important;
    }

    .nl-header .nl-brand {
        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nl-header .nl-brand img {
        display: block !important;

        width: auto !important;
        max-width: 120px !important;
        height: auto !important;

        margin: 0 !important;
    }


    /* =====================================================
       DESKTOP NAV HIDDEN
       ===================================================== */

    .nl-header .nl-nav {
        display: none !important;
    }


    /* =====================================================
       TOOLS — RIGHT
       ===================================================== */

    .nl-header .nl-tools {
        grid-column: 3 !important;
        justify-self: end !important;

        display: flex !important;

        align-items: center !important;
        justify-content: flex-end !important;

        width: auto !important;
        height: 42px !important;

        margin: 0 4px 0 0 !important;
        padding: 0 !important;

        position: static !important;

        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;

        transform: none !important;

        gap: 0 !important;

        z-index: 100 !important;
    }

    .nl-header .nl-tools .nl-tool {
        flex: 0 0 30px !important;

        width: 30px !important;
        height: 42px !important;

        margin: 0 !important;
        padding: 0 !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        box-sizing: border-box !important;
    }

    .nl-header .nl-tools .nl-tool svg {
        width: 19px !important;
        height: 19px !important;
    }


    /* =====================================================
       CART COUNT
       ===================================================== */

    .nl-header .nl-cart {
        position: relative !important;
    }

    .nl-header .nl-cart-count {
        position: absolute !important;

        top: 3px !important;
        right: 0 !important;

        min-width: 13px !important;
        height: 13px !important;

        padding: 0 2px !important;

        font-size: 8px !important;
        line-height: 13px !important;

        text-align: center !important;

        border-radius: 50% !important;

        box-sizing: border-box !important;
    }

}
/* =====================================================
   FAQ
   ===================================================== */

.nl-product-faq {
    width: 100%;
    margin-top: 60px;
    margin-bottom: 40px;
    background: transparent;
}

.nl-product-faq-header h2 {
    margin: 0 0 25px;
    color: #000;
    font-size: 24px;
    font-weight: 700;
}


/* FAQ ROWS ONLY */

.nl-faq-list {
    width: 100%;
}

.nl-faq-item {
    background: #F2F2F2;
    border-top: 1px solid #e0e0e0;
}

.nl-faq-item:last-child {
    border-bottom: 1px solid #e0e0e0;
}


/* QUESTION */

.nl-faq-question {
    width: 100%;
    min-height: 64px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
    padding: 18px 20px;

    background: #F2F2F2;
    border: 0;

    color: #000;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;

    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
}

.nl-faq-icon {
    flex: 0 0 auto;

    color: #000;
    font-size: 22px;
    font-weight: 400;

    transition: transform 0.2s ease;
}

.nl-faq-question[aria-expanded="true"] .nl-faq-icon {
    transform: rotate(45deg);
}


/* ANSWER */

.nl-faq-answer {
    display: none;

    padding: 0 65px 20px 20px;

    background: #F2F2F2;

    color: #333;
    font-size: 15px;
    line-height: 1.7;
    box-sizing: border-box;
}

.nl-faq-answer p {
    margin: 0;
}

.nl-faq-item.is-open .nl-faq-answer {
    display: block;
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 767px) {

    .nl-product-faq {
        margin-top: 45px;
        margin-bottom: 35px;
        background: transparent;
    }

    .nl-product-faq-header h2 {
        margin-bottom: 18px;
        font-size: 20px;
    }

    .nl-faq-question {
        min-height: 58px;
        padding: 16px;
        font-size: 15px;
    }

    .nl-faq-answer {
        padding: 0 20px 18px 16px;
        font-size: 14px;
    }

}
/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 767px) {

    .nl-product-faq {
        margin-top: 45px;
        margin-bottom: 35px;
        padding: 22px 16px;
    }

    .nl-product-faq-header h2 {
        margin-bottom: 18px;
        font-size: 20px;
    }

    .nl-faq-question {
        min-height: 58px;
        padding: 16px 0;
        font-size: 15px;
    }

    .nl-faq-answer {
        padding-right: 20px;
        padding-bottom: 18px;
        font-size: 14px;
    }

}
/* =========================================================
   RELATED PRODUCTS — FINAL
   ========================================================= */

.nl-related-products {
    width: 100% !important;
    margin-top: 70px !important;
    margin-bottom: 60px !important;
    overflow: visible !important;
}

.nl-related-products-header {
    margin-bottom: 25px !important;
}

.nl-related-products-header h2 {
    margin: 0 !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

.nl-related-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
    width: 100% !important;
    overflow: visible !important;
}


/* =========================================================
   CARD / PARENTS — DO NOT CLIP BUTTON
   ========================================================= */

.nl-related-products .nl-card {
    position: relative !important;
    min-width: 0 !important;
    overflow: visible !important;
}

.nl-related-products .nl-card-media {
    position: relative !important;
    width: 100% !important;
    overflow: visible !important;
}

.nl-related-products .nl-card-image-wrap {
    position: relative !important;
    width: 100% !important;
    overflow: visible !important;
}


/* =========================================================
   IMAGE — THIS IS THE ONLY CLIPPING LAYER
   ========================================================= */

.nl-related-products .nl-card-image-link {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    overflow: hidden !important;
}

.nl-related-products .nl-card-primary {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    transition: opacity .3s ease !important;
}

.nl-related-products .nl-card-secondary {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .3s ease !important;
}

.nl-related-products .nl-card-image-wrap:hover .nl-card-primary {
    opacity: 0 !important;
}

.nl-related-products .nl-card-image-wrap:hover .nl-card-secondary {
    opacity: 1 !important;
}


/* =========================================================
   RELATED CART
   ========================================================= */

.nl-related-products .nl-related-cart-button {
    position: absolute !important;

    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    width: 100% !important;
    height: 46px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: block !important;

    z-index: 99999 !important;

    opacity: 0 !important;
    visibility: hidden !important;

    transform: none !important;

    pointer-events: none !important;

    box-sizing: border-box !important;
}

.nl-related-products .nl-card-image-wrap:hover .nl-related-cart-button {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}


/* =========================================================
   BUTTON
   ========================================================= */

.nl-related-products .nl-related-cart-button a.button,
.nl-related-products .nl-related-cart-button a.add_to_cart_button {
    position: absolute !important;

    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    display: flex !important;

    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;

    margin: 0 !important;
    padding: 0 16px !important;

    box-sizing: border-box !important;

    align-items: center !important;
    justify-content: center !important;

    background: #000 !important;
    color: #fff !important;

    border: none !important;
    border-radius: 0 !important;

    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1 !important;

    text-align: center !important;
    text-decoration: none !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    z-index: 100000 !important;
}

.nl-related-products .nl-related-cart-button a.button:hover,
.nl-related-products .nl-related-cart-button a.add_to_cart_button:hover {
    background: #d71920 !important;
    color: #fff !important;
}


/* WooCommerce accessibility text */

.nl-related-products .nl-related-cart-button .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}


/* =========================================================
   PRODUCT INFO
   ========================================================= */

.nl-related-products .nl-card-body {
    width: 100% !important;
    overflow: visible !important;
}

.nl-related-products .nl-card-title {
    margin: 12px 0 6px !important;
}

.nl-related-products .nl-card-title a {
    color: inherit !important;
    text-decoration: none !important;
    transition: color .2s ease !important;
}

.nl-related-products .nl-card-title a:hover {
    color: #d71920 !important;
}

.nl-related-products .nl-rating {
    margin-top: 5px !important;
}

.nl-related-products .nl-price {
    margin-top: 5px !important;
}


/* BADGE / WISHLIST */

.nl-related-products .nl-badge,
.nl-related-products .nl-wish {
    z-index: 100001 !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

    .nl-related-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .nl-related-products {
        margin-top: 45px !important;
        margin-bottom: 35px !important;
    }

    .nl-related-products-header {
        margin-bottom: 18px !important;
    }

    .nl-related-products-header h2 {
        font-size: 20px !important;
    }

    .nl-related-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 12px !important;
        row-gap: 25px !important;
    }

    .nl-related-products .nl-related-cart-button {
        height: 42px !important;
    }

    .nl-related-products .nl-related-cart-button a.button,
    .nl-related-products .nl-related-cart-button a.add_to_cart_button {
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 8px !important;
        font-size: 12px !important;
    }

    .nl-related-products .nl-card-title {
        margin-top: 9px !important;
        margin-bottom: 5px !important;
    }

    .nl-related-products .nl-card-title a {
        font-size: 14px !important;
    }

    .nl-related-products .nl-rating {
        margin-top: 4px !important;
        font-size: 12px !important;
    }

    .nl-related-products .nl-price {
        margin-top: 4px !important;
        font-size: 13px !important;
    }

}
.nl-product-faq-header h2,
.nl-related-products-header h2 {
    text-align: center !important;
}
/* =====================================================
   PRODUCT PAGE — REDUCE VERTICAL SPACING
   ===================================================== */

.nl-single-product-page {
    padding-top: 25px !important;
}


/* Main product area */

.nl-product-main {
    margin-bottom: 35px !important;
}


/* Product summary spacing */

.nl-single-product-title {
    margin-bottom: 10px !important;
}

.nl-product-rating-row {
    margin-bottom: 10px !important;
}

.nl-product-availability {
    margin-bottom: 10px !important;
}

.nl-single-product-price {
    margin-bottom: 15px !important;
}

.nl-product-specifications {
    margin-bottom: 15px !important;
}

.nl-product-short-description {
    margin-bottom: 15px !important;
}


/* Product tabs */

.nl-single-product-tabs {
    margin-top: 30px !important;
}

.nl-product-tab-buttons {
    margin-bottom: 20px !important;
}


/* FAQ */

.nl-product-faq {
    margin-top: 35px !important;
    margin-bottom: 25px !important;
}

.nl-product-faq-header h2 {
    margin-bottom: 18px !important;
}


/* Related Products */

.nl-related-products {
    margin-top: 40px !important;
    margin-bottom: 35px !important;
}

.nl-related-products-header {
    margin-bottom: 18px !important;
}
/* =====================================================
   PRODUCT PAGE — EXTRA TIGHT VERTICAL SPACING
   ===================================================== */

.nl-single-product-page {
    padding-top: 10px !important;
}


/* MAIN PRODUCT AREA */

.nl-product-main {
    margin-bottom: 15px !important;
}


/* PRODUCT SUMMARY */

.nl-single-product-title {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
}

.nl-product-rating-row {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
}

.nl-product-availability {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
}

.nl-single-product-price {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

.nl-product-specifications {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

.nl-product-short-description {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}


/* PRODUCT TABS */

.nl-single-product-tabs {
    margin-top: 10px !important;
}

.nl-product-tab-buttons {
    margin-bottom: 12px !important;
}


/* FAQ */

.nl-product-faq {
    margin-top: 20px !important;
    margin-bottom: 15px !important;
}

.nl-product-faq-header h2 {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
}


/* RELATED PRODUCTS */

.nl-related-products {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.nl-related-products-header {
    margin-bottom: 12px !important;
}

.nl-related-products-header h2 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
/* =====================================================
   RELATED PRODUCTS — SMOOTH IMAGE FADE
   ===================================================== */

.nl-related-products .nl-card-primary {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    transition: opacity 0.6s ease-in-out !important;
}

.nl-related-products .nl-card-secondary {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;

    opacity: 0 !important;
    pointer-events: none !important;

    transition: opacity 0.6s ease-in-out !important;
}

.nl-related-products .nl-card-image-wrap:hover .nl-card-primary {
    opacity: 0 !important;
}

.nl-related-products .nl-card-image-wrap:hover .nl-card-secondary {
    opacity: 1 !important;
}
/* =====================================================
   PRODUCT IMAGE LIGHTBOX
   DESKTOP + MOBILE
   ===================================================== */

#nl-image-popup {
    display: none !important;
}

#nl-image-popup.active {
    position: fixed !important;

    inset: 0 !important;

    width: 100vw !important;
    height: 100vh !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    background: #000 !important;

    z-index: 2147483647 !important;
}


/* BLACK BACKGROUND */

#nl-image-popup .nl-image-popup-bg {
    position: absolute !important;

    inset: 0 !important;

    background: #000 !important;
}


/* IMAGE AREA */

#nl-image-popup .nl-image-popup-stage {
    position: relative !important;

    z-index: 2 !important;

    width: 100vw !important;
    height: 100vh !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    padding: 5vh 7vw !important;

    box-sizing: border-box !important;

    touch-action: pan-y !important;
}


/* BIG IMAGE */

#nl-image-popup .nl-image-popup-img {
    display: block !important;

    width: auto !important;
    height: auto !important;

    max-width: 86vw !important;
    max-height: 90vh !important;

    object-fit: contain !important;

    margin: 0 !important;
    padding: 0 !important;

    user-select: none !important;
    -webkit-user-select: none !important;

    pointer-events: none !important;
}


/* =====================================================
   CLOSE BUTTON
   ===================================================== */

#nl-image-popup .nl-image-popup-close {
    position: absolute !important;

    top: 20px !important;
    right: 25px !important;

    z-index: 20 !important;

    width: 42px !important;
    height: 42px !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    padding: 0 !important;
    margin: 0 !important;

    background: #fff !important;
    color: #000 !important;

    border: 0 !important;
    border-radius: 50% !important;

    font-family: Arial, sans-serif !important;
    font-size: 30px !important;
    font-weight: 300 !important;

    line-height: 1 !important;

    cursor: pointer !important;
}


/* =====================================================
   LEFT / RIGHT ARROWS
   ===================================================== */

#nl-image-popup .nl-image-popup-arrow {
    position: absolute !important;

    top: 50% !important;

    z-index: 20 !important;

    width: 48px !important;
    height: 48px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    transform: translateY(-50%) !important;

    background: rgba(255,255,255,0.95) !important;
    color: #000 !important;

    border: 0 !important;
    border-radius: 50% !important;

    font-family: Arial, sans-serif !important;
    font-size: 38px !important;
    font-weight: 300 !important;

    line-height: 1 !important;

    cursor: pointer !important;

    transition:
        background .2s ease,
        color .2s ease !important;
}

#nl-image-popup .nl-image-popup-arrow:hover {
    background: #d71920 !important;
    color: #fff !important;
}


/* PREVIOUS */

#nl-image-popup .nl-image-popup-prev {
    left: 25px !important;
}


/* NEXT */

#nl-image-popup .nl-image-popup-next {
    right: 25px !important;
}


/* =====================================================
   PREVENT PAGE SCROLL
   ===================================================== */

body.nl-popup-open {
    overflow: hidden !important;
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 767px) {

    #nl-image-popup .nl-image-popup-stage {
        width: 100vw !important;
        height: 100vh !important;

        padding: 50px 45px !important;
    }

    #nl-image-popup .nl-image-popup-img {
        max-width: 88vw !important;
        max-height: 82vh !important;
    }


    /* CLOSE */

    #nl-image-popup .nl-image-popup-close {
        top: 15px !important;
        right: 15px !important;

        width: 38px !important;
        height: 38px !important;

        font-size: 27px !important;
    }


    /* ARROWS */

    #nl-image-popup .nl-image-popup-arrow {
        width: 38px !important;
        height: 38px !important;

        font-size: 31px !important;
    }

    #nl-image-popup .nl-image-popup-prev {
        left: 8px !important;
    }

    #nl-image-popup .nl-image-popup-next {
        right: 8px !important;
    }

}
/* =====================================================
   MINIMAL LIGHTBOX ARROWS
   ===================================================== */

#nl-image-popup .nl-image-popup-arrow {
    position: absolute !important;

    top: 50% !important;

    z-index: 20 !important;

    width: 50px !important;
    height: 80px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    transform: translateY(-50%) !important;

    background: transparent !important;
    color: #fff !important;

    border: 0 !important;
    border-radius: 0 !important;

    font-family: Arial, sans-serif !important;
    font-size: 55px !important;
    font-weight: 200 !important;

    line-height: 1 !important;

    cursor: pointer !important;

    opacity: 0.85 !important;

    transition: opacity .2s ease !important;
}

#nl-image-popup .nl-image-popup-arrow:hover {
    background: transparent !important;
    color: #fff !important;
    opacity: 1 !important;
}

#nl-image-popup .nl-image-popup-prev {
    left: 15px !important;
}

#nl-image-popup .nl-image-popup-next {
    right: 15px !important;
}


/* MOBILE */

@media (max-width: 767px) {

    #nl-image-popup .nl-image-popup-arrow {
        width: 42px !important;
        height: 70px !important;

        font-size: 45px !important;

        opacity: 0.8 !important;
    }

    #nl-image-popup .nl-image-popup-prev {
        left: 2px !important;
    }

    #nl-image-popup .nl-image-popup-next {
        right: 2px !important;
    }

}
/* =========================================================
   MOBILE ONLY — PAGE SIDE SPACING
   DESKTOP: 100% UNTOUCHED
   HEADER: COMPLETELY UNTOUCHED
   ========================================================= */

@media (max-width: 767px) {

    /* =====================================================
       MAIN PRODUCT PAGE
       ===================================================== */

    .nl-single-product-page {
        width: auto !important;
        max-width: none !important;

        margin-left: 14px !important;
        margin-right: 14px !important;

        padding-left: 0 !important;
        padding-right: 0 !important;

        box-sizing: border-box !important;
    }


    /* =====================================================
       PRODUCT MAIN
       ===================================================== */

    .nl-product-main {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }

    .nl-product-gallery,
    .nl-product-main-image {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }


    /* =====================================================
       PRODUCT SUMMARY
       ===================================================== */

    .nl-product-summary,
    .nl-purchase-area {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }


    /* =====================================================
       PRODUCT TABS
       ===================================================== */

    .nl-single-product-tabs {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }

    .nl-product-tab-buttons,
    .nl-product-tab-content {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }


    /* =====================================================
       FAQ
       ===================================================== */

    .nl-product-faq {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }

    .nl-faq-list,
    .nl-faq-item,
    .nl-faq-question,
    .nl-faq-answer {
        box-sizing: border-box !important;
    }

    .nl-faq-list {
        width: 100% !important;
        max-width: 100% !important;
    }


    /* =====================================================
       RELATED PRODUCTS
       ===================================================== */

    .nl-related-products {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }

    .nl-related-products-grid {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }


    /* =====================================================
       FOOTER
       MOBILE SIDE SPACING ONLY
       ===================================================== */

    footer,
    .nl-footer {
        width: auto !important;
        max-width: none !important;

        margin-left: 14px !important;
        margin-right: 14px !important;

        box-sizing: border-box !important;
    }

    .nl-footer-inner,
    .nl-footer-main,
    .nl-footer-content,
    .nl-footer-columns {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;
    }

}
/* =====================================================
   PRODUCT + CATEGORY PAGES
   FOOTER — FULL WIDTH ON DESKTOP
   ===================================================== */

@media (min-width: 768px) {

    .single-product footer,
    .single-product .nl-footer,
    .tax-product_cat footer,
    .tax-product_cat .nl-footer,
    .post-type-archive-product footer,
    .post-type-archive-product .nl-footer {
        width: 100vw !important;
        max-width: 100vw !important;

        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;

        box-sizing: border-box !important;
    }

}
/* HIDE FAKE PRODUCT DISCOUNT BADGE */
.nl-single-product-page .nl-product-gallery::after {
    content: none !important;
    display: none !important;
}
.nl-category-editorial {
    width: 100%;
    margin-top: 60px;
    margin-bottom: 40px;
}

.nl-category-editorial-inner {
    width: 100%;
    margin: 0;
}

.nl-category-editorial-inner h2 {
    margin: 0 0 20px;
    color: #000;
    font-size: 28px;
    line-height: 1.3;
    font-weight: 700;
    text-align: center;
}

.nl-category-editorial-text {
    width: 100%;
    color: #333;
    font-size: 15px;
    line-height: 1.8;
    text-align: left;
}

.nl-category-editorial-text p {
    margin: 0;
}

@media (max-width: 767px) {

    .nl-category-editorial {
        margin-top: 45px;
        margin-bottom: 30px;
    }

    .nl-category-editorial-inner {
        width: 100%;
    }

    .nl-category-editorial-inner h2 {
        font-size: 22px;
        margin-bottom: 15px;
        text-align: center;
    }

    .nl-category-editorial-text {
        width: 100%;
        font-size: 14px;
        line-height: 1.7;
        text-align: left;
    }

}
.nl-faq-list {
    width: calc(100% - 50px);
    max-width: 1100px;
    margin: 0 auto;
}
/* =========================================================
   SEARCH DRAWER — MATCH REFERENCE STYLE
   ========================================================= */

.nl-search-panel {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    width: 420px !important;
    max-width: 100% !important;
    height: 100vh !important;

    z-index: 999999 !important;

    background: #fff !important;

    box-shadow: -6px 0 20px rgba(0, 0, 0, 0.08);

    transform: translateX(100%);
    visibility: hidden;

    transition:
        transform 0.3s ease,
        visibility 0.3s ease;

    overflow-y: auto;
}

.nl-search-panel.is-open {
    transform: translateX(0);
    visibility: visible;
}


/* =========================================================
   INNER
   ========================================================= */

.nl-search-inner {
    position: relative;

    width: 100%;
    min-height: 100vh;

    padding: 32px 23px;

    background: #fff !important;

    box-sizing: border-box;
}


/* =========================================================
   CLOSE X
   ========================================================= */

.nl-search-close {
    position: absolute;

    top: 24px;
    right: 20px;

    width: 24px;
    height: 24px;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    background: transparent !important;

    color: #222 !important;

    font-family: Arial, sans-serif;
    font-size: 25px;
    font-weight: 300;
    line-height: 24px;

    cursor: pointer;

    display: flex !important;
    align-items: center;
    justify-content: center;

    z-index: 20;
}

.nl-search-close:hover {
    opacity: .6;
}


/* =========================================================
   SEARCH CONTENT
   ========================================================= */

.nl-search-content {
    width: 100%;
}


/* =========================================================
   HEADING
   ========================================================= */

.nl-search-title {
    display: block !important;

    margin: 0 0 19px !important;
    padding: 0 !important;

    color: #202020 !important;

    font-family: inherit;

    font-size: 22px !important;
    font-weight: 600 !important;

    line-height: 1.2;

    text-align: left !important;
}


/* =========================================================
   FORM
   ========================================================= */

.nl-live-search-form {
    width: 100%;

    margin: 0 !important;
    padding: 0 !important;
}


/* =========================================================
   ROUNDED SEARCH PILL
   ========================================================= */

.nl-search-table {
    display: flex;
    align-items: center;

    width: 100%;
    height: 35px;

    border: 0 !important;
    border-radius: 20px !important;

    background: #f1f1f1 !important;

    box-sizing: border-box;

    overflow: hidden;
}


/* INPUT */

.nl-search-field {
    flex: 1;

    min-width: 0;

    height: 100%;
}

.nl-search-field input {
    width: 100% !important;
    height: 35px !important;

    padding: 0 18px !important;
    margin: 0 !important;

    border: 0 !important;
    outline: 0 !important;

    border-radius: 20px 0 0 20px !important;

    background: #f1f1f1 !important;

    color: #222 !important;

    font-family: inherit;
    font-size: 12px !important;

    box-sizing: border-box;
}

.nl-search-field input::placeholder {
    color: #888 !important;
    opacity: 1;
}


/* =========================================================
   SEARCH ICON — INSIDE PILL
   ========================================================= */

.nl-live-search-button {
    flex: 0 0 45px;

    width: 45px !important;
    height: 35px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;

    background: #f1f1f1 !important;

    color: #222 !important;

    display: flex !important;
    align-items: center;
    justify-content: center;

    cursor: pointer;
}

.nl-live-search-button:hover {
    background: #f1f1f1 !important;
    color: #222 !important;
}

.nl-live-search-button svg {
    width: 17px;
    height: 17px;
}


/* =========================================================
   ENTER HINT
   ========================================================= */

.nl-search-enter-hint {
    display: none !important;
}


/* =========================================================
   RESULTS
   ========================================================= */

.nl-search-results {
    width: 100%;

    margin-top: 20px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .nl-search-panel {
        width: 100% !important;
    }

    .nl-search-inner {
        padding: 32px 23px;
    }

    .nl-search-title {
        font-size: 22px !important;
        margin-bottom: 19px !important;
    }

    .nl-search-close {
        top: 23px;
        right: 18px;
    }

    .nl-search-table {
        height: 35px;
    }

    .nl-search-field input {
        height: 35px !important;
    }

    .nl-live-search-button {
        width: 45px !important;
        height: 35px !important;
        flex-basis: 45px;
    }
}
/* =========================================================
   LIVE SEARCH RESULTS
   ========================================================= */

.nl-search-results {
    width: 100%;
    margin-top: 22px;
}


/* RESULT LIST */

.nl-live-results-list {
    width: 100%;
}


/* SINGLE RESULT */

.nl-live-result-item {
    display: flex;
    align-items: center;

    width: 100%;

    padding: 10px 0;

    text-decoration: none !important;

    border-bottom: 1px solid #eeeeee;

    background: transparent;

    box-sizing: border-box;

    transition: opacity .2s ease;
}

.nl-live-result-item:hover {
    opacity: .7;
}


/* PRODUCT IMAGE */

.nl-live-result-image {
    flex: 0 0 62px;

    width: 62px;
    height: 72px;

    margin-right: 13px;

    background: #f5f5f5;

    overflow: hidden;
}

.nl-live-result-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}


/* PRODUCT INFO */

.nl-live-result-info {
    flex: 1;

    min-width: 0;
}


/* PRODUCT TITLE */

.nl-live-result-title {
    margin: 0 0 5px;

    color: #222;

    font-size: 13px;
    font-weight: 500;

    line-height: 1.35;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


/* PRICE */

.nl-live-result-price {
    color: #777;

    font-size: 12px;

    line-height: 1.3;
}

.nl-live-result-price del {
    color: #aaa;
    margin-right: 4px;
}

.nl-live-result-price ins {
    color: #222;
    text-decoration: none;
}


/* LOADING */

.nl-search-loading {
    padding: 15px 0;

    color: #999;

    font-size: 12px;

    text-align: left;
}


/* NO RESULTS */

.nl-live-no-results {
    padding: 18px 0;

    color: #888;

    font-size: 13px;

    text-align: left;
}


/* MOBILE */

@media (max-width: 767px) {

    .nl-live-result-image {
        flex-basis: 58px;

        width: 58px;
        height: 68px;

        margin-right: 12px;
    }

    .nl-live-result-title {
        font-size: 13px;
    }
}

/* SEARCH RESULTS SIDE SPACING */

.nl-search-results .nl-grid {
    width: calc(100% - 80px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 767px) {
    .nl-search-results .nl-grid {
        width: calc(100% - 30px) !important;
    }
}
/* =========================================================
   NORTHLINE CART — MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .nl-cart-page {
        width: 100%;
        padding: 30px 15px 50px;
        overflow-x: hidden;
    }

    .nl-cart-page > .woocommerce {
        width: 100%;
    }


    /* -------------------------
       CART TABLE
       ------------------------- */

    .nl-cart-page table.shop_table {
        width: 100%;
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        margin-bottom: 30px;
    }

    .nl-cart-page table.shop_table th,
    .nl-cart-page table.shop_table td {
        padding: 15px 8px;
        font-size: 13px;
    }


    /* -------------------------
       PRODUCT IMAGE
       ------------------------- */

    .nl-cart-page .product-thumbnail {
        width: 70px;
    }

    .nl-cart-page .product-thumbnail img {
        width: 60px;
        height: 75px;
        object-fit: cover;
    }


    /* -------------------------
       PRODUCT NAME
       ------------------------- */

    .nl-cart-page .product-name a {
        font-size: 13px;
        white-space: normal;
    }


    /* -------------------------
       QUANTITY
       ------------------------- */

    .nl-cart-page .quantity .qty {
        width: 55px;
        height: 38px;
        font-size: 13px;
    }


    /* -------------------------
       REMOVE
       ------------------------- */

    .nl-cart-page .product-remove a.remove {
        font-size: 19px;
    }


    /* -------------------------
       COUPON
       ------------------------- */

    .nl-cart-page .coupon {
        display: flex;
        width: 100%;
        gap: 6px;
    }

    .nl-cart-page .coupon input.input-text {
        flex: 1;
        min-width: 0;
        height: 40px;
        font-size: 13px;
    }

    .nl-cart-page .coupon button {
        height: 40px;
        padding: 0 14px;
        font-size: 11px;
    }


    /* -------------------------
       UPDATE CART
       ------------------------- */

    .nl-cart-page button[name="update_cart"] {
        padding: 12px 16px;
        font-size: 11px;
    }


    /* -------------------------
       CART TOTALS
       ------------------------- */

    .nl-cart-page .cart-collaterals {
        width: 100%;
        display: block;
    }

    .nl-cart-page .cart_totals {
        width: 100%;
        max-width: none;
    }

    .nl-cart-page .cart_totals h2 {
        font-size: 20px;
        margin-bottom: 20px;
    }


    /* -------------------------
       CHECKOUT
       ------------------------- */

    .nl-cart-page .wc-proceed-to-checkout a.checkout-button {
        width: 100%;
        padding: 15px;
        font-size: 12px;
    }


    /* -------------------------
       EMPTY CART
       ------------------------- */

    .nl-cart-page .cart-empty.woocommerce-info {
        min-height: 250px;
        font-size: 15px;
        text-align: center;
    }

}
/* =========================================================
   NORTHLINE — LOGIN + REGISTER
   SIDE BY SIDE ACCOUNT PAGE
   ========================================================= */

.woocommerce-account {
    background: #fff;
    color: #222;
}

.woocommerce-account .woocommerce {
    width: min(calc(100% - 40px), var(--nl-max));
    margin: 0 auto;
    padding: 65px 0 90px;
    color: #222;
}


/* =========================================================
   HIDE ACCOUNT NAVIGATION ON LOGIN/REGISTER SCREEN
   ========================================================= */

.woocommerce-account .woocommerce-MyAccount-navigation {
    display: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
    color: #222 !important;
}


/* =========================================================
   LOGIN + REGISTER COLUMNS
   ========================================================= */

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

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}


/* =========================================================
   HEADINGS
   ========================================================= */

.woocommerce-account .u-columns h2 {
    margin: 0 0 28px;
    padding: 0;
    color: #111 !important;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.03em;
}


/* =========================================================
   FORM
   ========================================================= */

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}


/* =========================================================
   FORM ROWS
   ========================================================= */

.woocommerce-account form .form-row {
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
}


/* LABELS */

.woocommerce-account form .form-row label {
    display: block;
    margin: 0 0 8px;
    color: #111 !important;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: .06em;
}


/* =========================================================
   INPUTS
   ========================================================= */

.woocommerce-account form .form-row input.input-text,
.woocommerce-account form .form-row input[type="text"],
.woocommerce-account form .form-row input[type="email"],
.woocommerce-account form .form-row input[type="password"] {
    width: 100%;
    height: 48px;
    min-height: 48px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #d6d6d6;
    border-radius: 0;
    outline: none;
    background: #fff !important;
    color: #111 !important;
    font-size: 13px;
    line-height: 1.4;
    box-shadow: none !important;
    transition: border-color .2s ease;
}

.woocommerce-account form .form-row input:focus {
    border-color: #111 !important;
}


/* PLACEHOLDER */

.woocommerce-account form input::placeholder {
    color: #999 !important;
    opacity: 1;
}


/* =========================================================
   PASSWORD FIELD + EYE
   ========================================================= */

.woocommerce-account .password-input {
    display: block;
    width: 100%;
    position: relative;
}

.woocommerce-account .password-input input {
    padding-right: 48px !important;
}


/* WooCommerce eye */

.woocommerce-account .show-password-input {
    position: absolute !important;
    top: 50% !important;
    right: 14px !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateY(-50%);
    color: #555 !important;
    cursor: pointer;
    background: transparent !important;
    border: 0 !important;
}


/* Hide Woo's default eye icon */

.woocommerce-account .show-password-input::before {
    display: none !important;
}


/* Custom eye SVG */

.woocommerce-account .show-password-input::after {
    content: "";
    position: absolute;
    inset: 0;
    background: no-repeat center / 19px 19px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

.woocommerce-account .show-password-input.display-password::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3l18 18'/%3E%3Cpath d='M10.6 5.1A10.8 10.8 0 0 1 12 5c6.5 0 10 7 10 7a17.5 17.5 0 0 1-3.1 4.1'/%3E%3Cpath d='M6.6 6.7C3.6 8.6 2 12 2 12s3.5 7 10 7c1.8 0 3.4-.5 4.8-1.2'/%3E%3Cpath d='M9.9 9.9a3 3 0 0 0 4.2 4.2'/%3E%3C/svg%3E");
}


/* =========================================================
   REMEMBER ME
   ========================================================= */

.woocommerce-account .woocommerce-form-login__rememberme {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px;
    width: auto !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: #444 !important;
    font-size: 12px;
    line-height: 16px;
    cursor: pointer;
}

.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;

    flex: 0 0 15px;

    width: 15px !important;
    height: 15px !important;
    min-height: 15px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid #999 !important;
    border-radius: 0;

    background: #fff !important;

    position: relative;
    cursor: pointer;
}

.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked {
    background: #111 !important;
    border-color: #111 !important;
}

.woocommerce-account .woocommerce-form-login__rememberme input[type="checkbox"]:checked::after {
    content: "";

    position: absolute;

    left: 4px;
    top: 1px;

    width: 4px;
    height: 8px;

    border: solid #fff;
    border-width: 0 2px 2px 0;

    transform: rotate(45deg);
}

.woocommerce-account .woocommerce-form-login__rememberme span {
    color: #444 !important;
    line-height: 16px;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    min-height: 46px;

    margin: 0 !important;
    padding: 13px 24px !important;

    border: 1px solid #111 !important;
    border-radius: 0 !important;

    background: #111 !important;
    color: #fff !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2;

    text-transform: uppercase;
    letter-spacing: .07em;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease;
}

.woocommerce-account .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register__submit:hover {
    border-color: #e00000 !important;
    background: #e00000 !important;
    color: #fff !important;
}


/* =========================================================
   LOST PASSWORD
   ========================================================= */

.woocommerce-account .lost_password {
    margin: 15px 0 0 !important;
}

.woocommerce-account .lost_password a {
    color: #555 !important;
    font-size: 12px;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.woocommerce-account .lost_password a:hover {
    color: #e00000 !important;
}


/* =========================================================
   REGISTER PRIVACY TEXT
   ========================================================= */

.woocommerce-account .woocommerce-privacy-policy-text {
    margin: 0 0 20px !important;
    color: #777 !important;
    font-size: 11px;
    line-height: 1.6;
}

.woocommerce-account .woocommerce-privacy-policy-text p {
    color: #777 !important;
}

.woocommerce-account .woocommerce-privacy-policy-text a {
    color: #333 !important;
    text-decoration: underline;
}


/* =========================================================
   NOTICES
   ========================================================= */

.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error {
    margin: 0 0 30px;
    padding: 14px 16px !important;

    border: 1px solid #ddd !important;
    border-left: 3px solid #111 !important;

    border-radius: 0 !important;

    background: #f7f7f5 !important;
    color: #222 !important;

    font-size: 13px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .woocommerce-account .woocommerce {
        width: calc(100% - 28px);
        padding: 40px 0 60px;
    }

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

    .woocommerce-account .u-columns h2 {
        font-size: 26px;
        margin-bottom: 24px;
    }

    .woocommerce-account form .form-row {
        margin-bottom: 18px;
    }

    .woocommerce-account form .form-row input.input-text,
    .woocommerce-account form .form-row input[type="text"],
    .woocommerce-account form .form-row input[type="email"],
    .woocommerce-account form .form-row input[type="password"] {
        height: 47px;
        min-height: 47px;
    }

    .woocommerce-account .woocommerce-form-login__rememberme {
        margin-bottom: 18px !important;
    }

    .woocommerce-account .woocommerce-form-login__submit,
    .woocommerce-account .woocommerce-form-register__submit {
        width: 100%;
    }
}
/* =========================================================
   CRISPY 404 PAGE
   ========================================================= */

.nl-404-simple {
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 70px 20px;
    background: #fff;
}

.nl-404-inner {
    width: 100%;
    max-width: 850px;
}


/* BIG 404 */

.nl-404-number {
    margin: 0;

    font-size: clamp(150px, 23vw, 300px);
    line-height: .72;

    font-weight: 900;
    letter-spacing: -.09em;

    color: #111;

    /* subtle crispy outline/shadow */
    text-shadow:
        5px 5px 0 rgba(0,0,0,.06);
}


/* PAGE NOT FOUND */

.nl-404-inner h1 {
    margin: 35px 0 35px;

    font-size: clamp(28px, 4vw, 48px);
    line-height: 1;

    font-weight: 900;
    letter-spacing: .08em;

    color: #111;
}


/* BUTTONS */

.nl-404-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.nl-404-buttons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 180px;
    min-height: 52px;

    padding: 14px 25px;

    background: #111;
    color: #fff;

    border: 2px solid #111;

    font-size: 13px;
    font-weight: 900;
    letter-spacing: .08em;

    text-decoration: none;

    box-shadow: 0 6px 0 #000;

    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}


/* RED HOVER */

.nl-404-buttons a:hover {
    background: #d00000;
    color: #fff;
    border-color: #d00000;

    transform: translateY(3px);

    box-shadow: 0 3px 0 #000;
}


/* CLICK */

.nl-404-buttons a:active {
    transform: translateY(6px);
    box-shadow: 0 0 0 #000;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .nl-404-simple {
        min-height: 430px;
        padding: 55px 20px;
    }

    .nl-404-number {
        font-size: 150px;
    }

    .nl-404-inner h1 {
        margin: 28px 0 30px;
        font-size: 27px;
        letter-spacing: .06em;
    }

    .nl-404-buttons {
        flex-direction: column;
        gap: 14px;
    }

    .nl-404-buttons a {
        width: 100%;
        max-width: 300px;
    }

}
/* ==========================================================================
   1. TOTAL SECTION AND HEADER SPACE CRUSH
   ========================================================================== */
/* Force eliminate giant container gaps between header navigation and your page content */
#primary, 
.site-main, 
.entry-content,
.post-inner,
.page-wrap,
.site-content,
.main-content,
article.page {
    padding-top: 0px !important;
    margin-top: 0px !important;
    padding-bottom: 0px !important;
    margin-bottom: 0px !important;
}

/* Remove spacing injected by page headers or breadcrumb elements */
.woocommerce-page .entry-header,
.woocommerce-page .woocommerce-breadcrumb,
.page-header {
    margin-top: 0px !important;
    margin-bottom: 5px !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
}

/* Force layout wrapper close to the text description line */
.woocommerce-form-track-order {
    max-width: 1000px !important;
    margin: 5px auto 20px auto !important; /* Lowers empty space right under your header intro text */
    padding: 0 20px !important;
    text-align: left !important;
}


/* ==========================================================================
   2. HORIZONTAL LAYOUT (SIDE-BY-SIDE)
   ========================================================================== */
.woocommerce-form-track-order .form-row-first,
.woocommerce-form-track-order .form-row-last {
    width: 48% !important;
    float: left !important;
    margin-bottom: 15px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.woocommerce-form-track-order::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

.woocommerce-form-track-order .form-row-first {
    margin-right: 4% !important;
}


/* ==========================================================================
   3. SHARP STYLING: LABELS & FIELDS
   ========================================================================== */
.woocommerce-form-track-order label {
    display: block !important;
    text-align: left !important;
    font-weight: 700 !important;
    color: #000000 !important;
    margin: 0 0 6px 0 !important; /* Tight spacing above entry blocks */
    font-size: 14px !important;
}

.woocommerce-form-track-order input.input-text {
    width: 100% !important;
    border: 2px solid #000000 !important;
    border-radius: 0px !important;
    padding: 12px 15px !important;
    font-size: 14px !important;
    color: #333333 !important;
    background-color: #ffffff !important;
    box-sizing: border-box !important;
}

.woocommerce-form-track-order input.input-text:focus {
    outline: none !important;
    border-color: #ff0000 !important;
}


/* ==========================================================================
   4. LEFT-ALIGNED SHARP BUTTON
   ========================================================================== */
.woocommerce-form-track-order button.button {
    clear: both !important;
    display: inline-block !important;
    float: left !important;
    margin-top: 10px !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border-radius: 0px !important;
    border: none !important;
    padding: 14px 50px !important;
    width: auto !important;
    letter-spacing: 1px !important;
    transition: background-color 0.2s ease !important;
    cursor: pointer !important;
}

.woocommerce-form-track-order button.button:hover {
    background-color: #ff0000 !important;
    color: #ffffff !important;
}


/* ==========================================================================
   5. NOTIFICATION STYLE & SPACE LOCK
   ========================================================================== */
/* Styles and forces tight spaces around the "Not Found" error banner block */
.woocommerce-error {
    background-color: #fff0f0 !important; /* Premium soft red accent */
    border: 2px solid #ff0000 !important;  /* Sharp theme-red outline */
    border-radius: 0px !important;         /* Sharp square styling */
    color: #000000 !important;             /* Clear black message text */
    font-weight: 700 !important;
    padding: 12px 20px !important;         /* Reduced inner vertical height */
    list-style: none !important;
    text-align: left !important;
    box-shadow: none !important;
    
    /* Spacing fixes around notification context */
    max-width: 1000px !important; 
    margin: 0px auto 15px auto !important; /* Zero spacing above, tight margin before inputs */
}

/* Cleanup layout variables when notification is embedded inside tracking content */
.woocommerce-NoticeGroup-update,
.woocommerce-NoticeGroup {
    margin: 0px !important;
    padding: 0px !important;
}
/* =========================================================
   BLOG PAGE — COMPACT EDITORIAL LAYOUT
   ========================================================= */

.nl-blog-page {
    background: #fff;
    color: #111;
}

.nl-blog-wrap {
    width: min(1000px, calc(100% - 36px));
    margin: 0 auto;
}


/* =========================================================
   MAIN LAYOUT
   ========================================================= */

.nl-blog-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 205px;
    gap: 22px;
    align-items: start;

    padding: 30px 0 55px;
}


/* =========================================================
   MAIN BLOG POSTS
   ========================================================= */

.nl-blog-post {
    margin: 0 0 28px;
    padding: 0 0 18px;
    text-align: center;
}

.nl-blog-post-title {
    max-width: 650px;
    margin: 0 auto 14px;

    font-size: clamp(23px, 2.6vw, 31px);
    line-height: 1.16;

    font-weight: 500;
    letter-spacing: -0.5px;

    text-transform: uppercase;
}

.nl-blog-post-title a {
    color: #111;
    text-decoration: none;
}

.nl-blog-post-title a:hover {
    color: #d00000;
}


/* =========================================================
   FEATURED IMAGE
   ========================================================= */

.nl-blog-post-image {
    display: block;
    width: 100%;

    overflow: hidden;

    background: #f4f4f4;
}

.nl-blog-post-image img {
    display: block;

    width: 100%;
    height: auto;

    transition: transform .35s ease;
}

.nl-blog-post-image:hover img {
    transform: scale(1.015);
}


/* =========================================================
   EXCERPT
   ========================================================= */

.nl-blog-post-excerpt {
    margin: 12px 0 0;

    color: #222;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
    line-height: 1.65;

    text-align: left;
}


/* =========================================================
   CONTINUE READING
   ========================================================= */

.nl-blog-read-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    margin-top: 10px;
    padding: 6px 22px;

    background: #111;
    color: #fff;

    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;

    text-decoration: none;

    transition:
        background .2s ease,
        color .2s ease;
}

.nl-blog-read-more:hover {
    background: #d00000;
    color: #fff;
}

.nl-blog-read-more span {
    transition: transform .2s ease;
}

.nl-blog-read-more:hover span {
    transform: translateX(3px);
}


/* =========================================================
   SIDEBAR SEARCH
   ========================================================= */

.nl-blog-search-widget {
    margin-bottom: 28px;
}

.nl-blog-search {
    display: flex;
    width: 100%;
}

.nl-blog-search input[type="search"] {
    width: 0;
    min-width: 0;
    flex: 1;

    height: 32px;

    padding: 0 8px;

    border: 1px solid #cfcfcf;
    border-right: 0;

    border-radius: 0;

    background: #fff;
    color: #111;

    font-family: inherit;
    font-size: 11px;

    outline: none;
}

.nl-blog-search input[type="search"]:focus {
    border-color: #111;
}

.nl-blog-search button {
    height: 32px;

    padding: 0 11px;

    border: 1px solid #111;

    border-radius: 0;

    background: #111;
    color: #fff;

    font-family: inherit;
    font-size: 9px;
    font-weight: 700;

    cursor: pointer;

    transition: background .2s ease;
}

.nl-blog-search button:hover {
    background: #d00000;
    border-color: #d00000;
    color: #fff;
}


/* =========================================================
   WINTER SALE BOX
   ========================================================= */

.nl-blog-sidebar-box {
    padding: 16px 9px 10px;

    border: 2px solid #e2e2e2;
}

.nl-blog-sidebar-title {
    margin: 0 0 14px;

    color: #777;

    font-size: 15px;
    line-height: 1.2;
    font-weight: 500;

    text-align: center;
}


/* =========================================================
   SIDEBAR 2-COLUMN IMAGE GRID
   ========================================================= */

.nl-blog-side-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 7px 5px;
}


/* =========================================================
   SIDEBAR ITEM
   ========================================================= */

.nl-blog-side-item {
    display: block;

    overflow: hidden;

    border: 1px solid #ddd;

    background: #fff;

    color: #111;

    text-decoration: none;
}

.nl-blog-side-item:hover {
    border-color: #d00000;
}


/* =========================================================
   SIDEBAR ITEM TITLE
   ========================================================= */

.nl-blog-side-title {
    display: flex;

    align-items: center;
    justify-content: center;

    min-height: 31px;

    padding: 4px 2px;

    color: #111;

    font-size: 9px;
    line-height: 1.1;

    text-align: center;
    text-transform: uppercase;
}

.nl-blog-side-item:hover .nl-blog-side-title {
    background: #d00000;
    color: #fff;
}


/* =========================================================
   SIDEBAR IMAGE
   ========================================================= */

.nl-blog-side-item img {
    display: block;

    width: 100%;
    height: 76px;

    object-fit: cover;

    background: #f4f4f4;
}


/* =========================================================
   SIDEBAR SECTIONS
   ========================================================= */

.nl-blog-sidebar-section {
    margin-top: 22px;
}

.nl-blog-sidebar-heading {
    margin: 0 0 9px;

    color: #111;

    font-size: 10px;
    line-height: 1.2;

    font-weight: 700;

    text-align: center;
    letter-spacing: .5px;
}


/* =========================================================
   RECENT POSTS
   ========================================================= */

.nl-blog-recent-posts {
    display: flex;
    flex-direction: column;

    gap: 9px;

    margin: 0;
    padding: 0;
}


.nl-blog-recent-post {
    display: grid;

    grid-template-columns: 58px minmax(0, 1fr);

    gap: 8px;

    align-items: center;

    padding-bottom: 9px;

    border-bottom: 1px solid #eee;
}


.nl-blog-recent-post:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}


/* =========================================================
   RECENT POST IMAGE
   ========================================================= */

.nl-blog-recent-image {
    display: block;

    width: 58px;
    height: 43px;

    overflow: hidden;

    background: #f3f3f3;
}


.nl-blog-recent-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform .25s ease;
}


.nl-blog-recent-image:hover img {
    transform: scale(1.04);
}


/* =========================================================
   NO FEATURED IMAGE
   ========================================================= */

.nl-blog-recent-placeholder {
    width: 100%;
    height: 100%;

    background: #eee;
}


/* =========================================================
   RECENT POST TITLE
   ========================================================= */

.nl-blog-recent-title {
    display: block;

    color: #222;

    font-size: 9px;
    line-height: 1.4;

    text-decoration: none;
}


.nl-blog-recent-title:hover {
    color: #d00000;
}
/* =========================================================
   LOWER SIDEBAR BANNERS
   ========================================================= */

.nl-blog-banner-list {
    display: flex;
    flex-direction: column;

    gap: 7px;
}

.nl-blog-banner {
    display: block;

    width: 100%;

    overflow: hidden;

    line-height: 0;

    background: #f4f4f4;
}

.nl-blog-banner img {
    display: block;

    width: 100%;
    height: auto;

    transition: transform .3s ease;
}

.nl-blog-banner:hover img {
    transform: scale(1.02);
}


/* =========================================================
   PAGINATION
   ========================================================= */

.nl-blog-pagination {
    display: flex;

    justify-content: space-between;
    align-items: center;

    margin-top: 15px;
    padding-top: 15px;

    border-top: 1px solid #111;
}

.nl-blog-pagination a {
    display: inline-flex;

    padding: 6px 13px;

    background: #111;
    color: #fff;

    font-size: 9px;
    font-weight: 700;

    text-transform: uppercase;
    text-decoration: none;
}

.nl-blog-pagination a:hover {
    background: #d00000;
    color: #fff;
}


/* =========================================================
   EMPTY
   ========================================================= */

.nl-blog-empty {
    padding: 70px 0;
    text-align: center;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 800px) {

    .nl-blog-wrap {
        width: min(100% - 28px, 650px);
    }

    .nl-blog-layout {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .nl-blog-sidebar {
        max-width: 360px;
        width: 100%;
        margin: 0 auto;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 500px) {

    .nl-blog-wrap {
        width: calc(100% - 20px);
    }

    .nl-blog-layout {
        padding-top: 22px;
    }

    .nl-blog-post-title {
        font-size: 22px;
    }

    .nl-blog-post-excerpt {
        font-size: 11px;
        line-height: 1.6;
    }

    .nl-blog-side-item img {
        height: 105px;
    }

    .nl-blog-sidebar {
        max-width: 100%;
    }

}
/* =========================================================
   BLOG SIDEBAR — SIZE BOOST
   ========================================================= */

/* SIDEBAR ITSELF */
.nl-blog-layout {
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 28px;
}


/* SEARCH */
.nl-blog-search input[type="search"],
.nl-blog-search button {
    height: 36px;
}

.nl-blog-search input[type="search"] {
    font-size: 12px;
    padding: 0 10px;
}

.nl-blog-search button {
    padding: 0 13px;
    font-size: 10px;
}


/* WINTER SALE BOX */
.nl-blog-sidebar-box {
    padding: 18px 10px 12px;
}

.nl-blog-sidebar-title {
    margin-bottom: 15px;
    font-size: 17px;
}


/* SIDE IMAGE GRID */
.nl-blog-side-grid {
    gap: 9px 6px;
}


/* SIDE IMAGE CARDS */
.nl-blog-side-title {
    min-height: 36px;
    padding: 5px 3px;

    font-size: 10px;
    line-height: 1.15;
}

.nl-blog-side-item img {
    height: 88px;
}


/* SIDEBAR SECTION HEADINGS */
.nl-blog-sidebar-heading {
    margin-bottom: 11px;
    font-size: 11px;
}


/* RECENT POSTS */
.nl-blog-sidebar .nl-blog-recent-posts {
    gap: 10px !important;
}

.nl-blog-sidebar .nl-blog-recent-post {
    grid-template-columns: 68px minmax(0, 1fr) !important;
    gap: 9px !important;
    padding-bottom: 10px !important;
}

.nl-blog-sidebar .nl-blog-recent-image {
    width: 68px !important;
    height: 51px !important;
}

.nl-blog-sidebar .nl-blog-recent-title {
    font-size: 10px !important;
    line-height: 1.45 !important;
}


/* LOWER BANNERS */
.nl-blog-banner-list {
    gap: 8px;
}
/* =========================================================
   SINGLE BLOG ARTICLE
   ========================================================= */

.nl-single-post {
    width: 100%;
}


/* FEATURED IMAGE */

.nl-single-featured-image {
    width: 100%;
    margin: 0 0 28px;
    overflow: hidden;
}

.nl-single-featured-image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: cover;
}


/* ARTICLE TITLE */

.nl-single-title {
    margin-top: 0 !important;
    margin-bottom: 24px !important;
}


/* ARTICLE CONTENT */

.nl-single-content {
    width: 100%;
    font-size: 17px;
    line-height: 1.8;
}

.nl-single-content p {
    margin: 0 0 22px;
}

.nl-single-content h2,
.nl-single-content h3,
.nl-single-content h4 {
    margin-top: 36px;
    margin-bottom: 16px;
    line-height: 1.3;
}

.nl-single-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 28px 0;
}

.nl-single-content a {
    text-decoration: underline;
}


/* ARTICLE LISTS */

.nl-single-content ul,
.nl-single-content ol {
    margin: 0 0 24px 24px;
    padding-left: 18px;
}

.nl-single-content li {
    margin-bottom: 8px;
}


/* ARTICLE BLOCKQUOTES */

.nl-single-content blockquote {
    margin: 30px 0;
    padding: 20px 24px;
    border-left: 4px solid #111;
}


/* PREVIOUS / NEXT */

.nl-single-pagination {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    margin-top: 50px;
    padding-top: 25px;
    border-top: 1px solid #ddd;
}

.nl-single-pagination a {
    color: #111;
    text-decoration: none;
    font-weight: 600;
}

.nl-single-pagination a:hover {
    color: #e00000;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {

    .nl-single-featured-image {
        margin-bottom: 22px;
    }

    .nl-single-title {
        margin-bottom: 20px !important;
    }

    .nl-single-content {
        font-size: 16px;
        line-height: 1.75;
    }

    .nl-single-content p {
        margin-bottom: 19px;
    }

    .nl-single-pagination {
        flex-direction: column;
        gap: 14px;
    }

}

/* =========================================================
   BLOG + SINGLE ARTICLE
   MOBILE RESPONSIVE
   ========================================================= */


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    /* Main layout becomes one column */

    .nl-blog-layout {
        display: block !important;
    }

    .nl-blog-posts {
        width: 100% !important;
        max-width: 100% !important;
    }

    .nl-blog-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 45px;
    }


    /* Blog post */

    .nl-blog-post {
        width: 100%;
    }

    .nl-blog-post-image {
        display: block;
        width: 100%;
    }

    .nl-blog-post-image img {
        display: block;
        width: 100%;
        height: auto;
        max-width: 100%;
    }


    /* Article featured image */

    .nl-single-featured-image {
        width: 100%;
        overflow: hidden;
    }

    .nl-single-featured-image img {
        display: block;
        width: 100%;
        height: auto;
        max-width: 100%;
    }


    /* Article content */

    .nl-single-content {
        width: 100%;
        max-width: 100%;
    }

    .nl-single-content img {
        max-width: 100%;
        height: auto;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    /* -----------------------------------------------------
       PAGE CONTAINER
       ----------------------------------------------------- */

    .nl-blog-wrap {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
        box-sizing: border-box;
    }


    /* -----------------------------------------------------
       MAIN LAYOUT
       ----------------------------------------------------- */

    .nl-blog-layout {
        display: block !important;
        width: 100% !important;
    }

    .nl-blog-posts {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }


    /* -----------------------------------------------------
       BLOG CARDS
       ----------------------------------------------------- */

    .nl-blog-post {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }


    /* -----------------------------------------------------
       BLOG TITLES
       ----------------------------------------------------- */

    .nl-blog-post-title {
        font-size: 26px !important;
        line-height: 1.2 !important;
        margin-top: 0 !important;
        margin-bottom: 16px !important;
        word-wrap: break-word;
        overflow-wrap: anywhere;
    }


    /* -----------------------------------------------------
       BLOG FEATURED IMAGES
       ----------------------------------------------------- */

    .nl-blog-post-image {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden;
    }

    .nl-blog-post-image img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        object-fit: cover;
    }


    /* -----------------------------------------------------
       BLOG EXCERPT
       ----------------------------------------------------- */

    .nl-blog-post-excerpt {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;

        font-size: 16px;
        line-height: 1.7;
        word-wrap: break-word;
        overflow-wrap: anywhere;
    }


    /* -----------------------------------------------------
       READ MORE
       ----------------------------------------------------- */

    .nl-blog-read-more {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        margin-top: 14px;
    }


    /* -----------------------------------------------------
       BLOG SEARCH
       ----------------------------------------------------- */

    .nl-blog-search-widget {
        width: 100%;
        box-sizing: border-box;
    }

    .nl-blog-search {
        width: 100%;
        display: flex;
        box-sizing: border-box;
    }

    .nl-blog-search input[type="search"] {
        min-width: 0;
        width: 100%;
        box-sizing: border-box;
    }

    .nl-blog-search button {
        flex-shrink: 0;
    }


    /* -----------------------------------------------------
       SEARCH RESULTS HEADING
       ----------------------------------------------------- */

    .nl-blog-search-results-heading {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .nl-blog-search-results-heading h1 {
        font-size: 25px;
        line-height: 1.25;
        word-wrap: break-word;
        overflow-wrap: anywhere;
    }


    /* -----------------------------------------------------
       SIDEBAR
       ----------------------------------------------------- */

    .nl-blog-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-top: 45px;
        box-sizing: border-box;
    }


    /* -----------------------------------------------------
       WINTER SALE GRID
       ----------------------------------------------------- */

    .nl-blog-side-grid {
        width: 100%;
        box-sizing: border-box;
    }

    .nl-blog-side-item {
        min-width: 0;
    }

    .nl-blog-side-item img {
        max-width: 100%;
        height: auto;
    }


    /* -----------------------------------------------------
       RECENT POSTS
       ----------------------------------------------------- */

    .nl-blog-recent-post {
        min-width: 0;
        max-width: 100%;
    }

    .nl-blog-recent-image {
        flex-shrink: 0;
    }

    .nl-blog-recent-image img {
        max-width: 100%;
        height: auto;
    }

    .nl-blog-recent-title {
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: break-word;
    }


    /* -----------------------------------------------------
       PRODUCT CATEGORY BANNERS
       ----------------------------------------------------- */

    .nl-blog-banner-list {
        width: 100%;
    }

    .nl-blog-banner {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    .nl-blog-banner img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
    }


    /* =====================================================
       SINGLE ARTICLE
       ===================================================== */

    .nl-single-post {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }


    /* Article featured image */

    .nl-single-featured-image {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 22px;
        overflow: hidden;
    }

    .nl-single-featured-image img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }


    /* Article title */

    .nl-single-title {
        font-size: 30px !important;
        line-height: 1.2 !important;
        margin-top: 0 !important;
        margin-bottom: 22px !important;
        word-wrap: break-word;
        overflow-wrap: anywhere;
    }


    /* Article body */

    .nl-single-content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        font-size: 16px;
        line-height: 1.75;

        overflow-wrap: anywhere;
        word-wrap: break-word;
    }

    .nl-single-content p {
        margin-bottom: 20px;
    }


    /* Article headings */

    .nl-single-content h2 {
        font-size: 25px;
        line-height: 1.3;
        margin-top: 32px;
        margin-bottom: 14px;
    }

    .nl-single-content h3 {
        font-size: 21px;
        line-height: 1.3;
        margin-top: 28px;
        margin-bottom: 12px;
    }

    .nl-single-content h4 {
        font-size: 18px;
        line-height: 1.35;
    }


    /* Article images */

    .nl-single-content img {
        display: block;
        width: auto;
        max-width: 100% !important;
        height: auto !important;
        margin: 25px auto;
    }


    /* Article tables */

    .nl-single-content table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }


    /* Article videos / embeds */

    .nl-single-content iframe,
    .nl-single-content video,
    .nl-single-content embed,
    .nl-single-content object {
        max-width: 100% !important;
    }


    /* Article lists */

    .nl-single-content ul,
    .nl-single-content ol {
        max-width: 100%;
        box-sizing: border-box;
        padding-left: 22px;
    }


    /* Blockquotes */

    .nl-single-content blockquote {
        margin: 25px 0;
        padding: 16px 18px;
    }


    /* Previous / next */

    .nl-single-pagination {
        display: flex;
        flex-direction: column;
        gap: 14px;
        width: 100%;
        box-sizing: border-box;
        margin-top: 40px;
    }

    .nl-single-prev,
    .nl-single-next {
        width: 100%;
        max-width: 100%;
    }


    /* -----------------------------------------------------
       PAGINATION
       ----------------------------------------------------- */

    .nl-blog-pagination {
        width: 100%;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        gap: 15px;
    }

    .nl-blog-pagination > div {
        min-width: 0;
    }

    .nl-blog-pagination a {
        overflow-wrap: anywhere;
    }

}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 400px) {

    .nl-blog-wrap {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .nl-blog-post-title {
        font-size: 23px !important;
    }

    .nl-single-title {
        font-size: 26px !important;
    }

    .nl-single-content {
        font-size: 15.5px;
        line-height: 1.7;
    }

    .nl-blog-post-excerpt {
        font-size: 15px;
        line-height: 1.65;
    }

    .nl-blog-search {
        flex-wrap: nowrap;
    }

    .nl-blog-search button {
        padding-left: 14px;
        padding-right: 14px;
    }

}
