/* ==========================================================================
   NovePneumatiky.cz - Redesign 2026
   Standalone CSS - no dependency on style.css
   Colors: dark #282f42, orange #d77104
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* ===== VARIABLES ===== */
:root {
    --c-dark: #282f42;
    --c-dark-l: #1e2333;
    --c-orange: #d77104;
    --c-orange-h: #bf6203;
    --c-orange-bg: rgba(215, 113, 4, 0.1);
    --c-white: #fff;
    --c-s50: #f8fafc;
    --c-s100: #f1f5f9;
    --c-s200: #e2e8f0;
    --c-s300: #cbd5e1;
    --c-s400: #94a3b8;
    --c-s500: #64748b;
    --c-s600: #475569;
    --c-s700: #334155;
    --c-red: #ef4444;
    --c-green: #22c55e;
    --r: 8px;
    --r-lg: 12px;
    --shadow: 0 1px 3px rgba(0, 0, 0, .1);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);
    --tr: .3s ease;
    /* Bootstrap primary override */
    --primary: #d77104;
    --bs-primary: #d77104;
    --bs-primary-rgb: 215, 113, 4;
    --bs-link-color: #d77104;
    --bs-link-hover-color: #bf6203;
}

/* ===== RESET ===== */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    font-size: 100%;
}

body {
    font-family: 'Inter', 'Open Sans', system-ui, sans-serif;
    font-size: 15px;
    color: var(--c-s700);
    background: var(--c-white);
    line-height: 1.6;
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--c-orange);
    text-decoration: none;
    transition: color var(--tr);
}

a:hover {
    color: var(--c-orange-h);
}

ul, ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6 {
    margin: 0 0 .5rem;
    color: var(--c-dark);
    line-height: 1.2;
}

h1 {
    font-size: 36px;
    font-weight: 700;
}

h2 {
    font-size: 28px;
    font-weight: 700;
}

h3 {
    font-size: 18px;
    font-weight: 600;
}

h4 {
    font-size: 15px;
    font-weight: 600;
}

p {
    margin: 0 0 1rem;
}

figure {
    margin: 0;
}

button {
    font-family: inherit;
}

::selection {
    background: var(--c-orange);
    color: var(--c-white);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.text-center {
    text-align: center;
}

/* ===== LAYOUT ===== */
.page-wrapper {
    display: flex;
    flex-direction: column;
}

.main {
    flex: 1;
}
body:not(.view-featured) .main {
    min-height: calc(100vh - 485px);
}

.col-sm-6 {
    width: calc(50% - 8px);
}

.col-lg-3 {
    width: calc(25% - 12px);
}

@media (max-width: 991px) {
    .col-lg-3 {
        width: calc(50% - 8px);
    }
}

@media (max-width: 575px) {
    .col-sm-6, .col-lg-3 {
        width: 100%;
    }
}

/* ===== HEADER ===== */
.np-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--c-white);
    box-shadow: var(--shadow);
}

.np-topbar {
    background: var(--c-dark);
    padding: 6px 0;
    font-size: 13px;
}

.np-topbar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.np-topbar-left, .np-topbar-right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.np-topbar a {
    color: rgba(255, 255, 255, .85);
}

/* Topbar menu module */
.np-topbar-left .nav, .np-topbar-left ul.menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 16px;
}

.np-topbar-left .nav li, .np-topbar-left ul.menu li {
    margin: 0;
}

.np-topbar-left .nav a, .np-topbar-left ul.menu a {
    color: rgba(255, 255, 255, .85);
    font-size: 13px;
    text-decoration: none;
}

.np-topbar-left .nav a:hover, .np-topbar-left ul.menu a:hover {
    color: var(--c-white);
}

.np-topbar a:hover {
    color: var(--c-orange);
}

.np-header-main {
    padding: 14px 0;
    border-bottom: 1px solid var(--c-s200);
}

.np-header-main .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.np-logo {
    flex-shrink: 0;
}

.np-logo img {
    height: 48px;
    width: auto;
}

.np-logo .site-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--c-dark);
}

.np-logo .site-description {
    display: none;
}

.np-search {
    flex: 1;
    max-width: 500px;
}

.np-search .header-search {
    width: 100%;
}

.np-search .search-toggle {
    display: none;
}

.np-search .header-search-wrapper {
    display: flex;
    position: relative;
    width: 100%;
}

.np-search .header-search-wrapper input {
    width: 100%;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 10px 44px 10px 16px;
    font-size: 14px;
    outline: none;
}

.np-search .header-search-wrapper input:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.np-search .header-search-wrapper button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    padding: 8px;
    color: var(--c-s400);
    cursor: pointer;
}

@media (max-width: 991px) {
    .np-search {
        display: none;
    }

    .np-topbar-left .nav, .np-topbar-left ul.menu {
        display: none;
    }
}

.np-header-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.np-header-actions .mobile-menu-toggler {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    color: var(--c-dark);
    cursor: pointer;
}

@media (max-width: 991px) {
    .np-header-actions .mobile-menu-toggler {
        display: block;
    }
}

/* Cart */
.vmCartModule .dropdown-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    background: none;
    border: none;
    color: var(--c-dark);
    cursor: pointer;
}

.vmCartModule .icon {
    position: relative;
    display: inline-flex;
    font-size: 22px;
}

.vmCartModule .cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    font-size: 11px;
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    text-align: center;
    border-radius: 50%;
    background: var(--c-orange);
    color: var(--c-white);
}

.vmCartModule p {
    display: none;
}

.vmCartModule .dropdown-menu {
    position: absolute;
    right: 0;
    top: 100%;
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-xl);
    padding: 16px;
    min-width: 320px;
    max-width: 360px;
    z-index: 1000;
}

/* Cart dropdown products */
.vmCartModule .dropdown-cart-products {
    max-height: 300px;
    overflow-y: auto;
}

.vmCartModule .product_row.product {
    display: grid !important;
    grid-template-columns: 60px 1fr;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-s100);
}

.vmCartModule .product_row.product:last-child {
    border-bottom: none;
}

.vmCartModule .product-image-container {
    grid-column: 1;
    grid-row: 1;
    width: 60px;
    height: 60px;
    overflow: hidden;
    margin: 0;
}

.vmCartModule .product-image-container div {
    float: none !important;
}

.vmCartModule .product-image-container img {
    width: 60px !important;
    height: 60px !important;
    object-fit: contain;
    border-radius: var(--r);
}

.vmCartModule .product-cart-details {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.vmCartModule .product-cart-details .product-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 4px;
    white-space: normal;
    line-height: 1.3;
}

.vmCartModule .cart-product-info {
    font-size: 12px;
    color: var(--c-s500);
}

.vmCartModule .total_products {
    font-size: 13px;
    color: var(--c-s600);
    padding: 10px 0 4px;
    border-top: 1px solid var(--c-s200);
    margin-top: 8px;
}

.vmCartModule .dropdown-cart-total {
    font-size: 16px;
    font-weight: 700;
    color: var(--c-dark);
    padding: 4px 0 12px;
}

.vmCartModule .dropdown-cart-action a {
    display: block;
    width: 100%;
    border: 0;
    padding: 10px 16px;
    background: #080;
    color: var(--c-white);
    border-radius: var(--r);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: background var(--tr);
}

.vmCartModule .dropdown-cart-action a:hover {
    background: var(--c-orange-h);
    color: var(--c-white);
    text-decoration: none;
}

/* Nav */
.np-nav {
    border-top: 1px solid var(--c-s100);
}

.np-nav .container {
    display: flex;
    align-items: center;
}

.np-nav-left, .np-nav-center, .np-nav-right {
    display: flex;
    align-items: center;
}

.np-nav-center {
    flex: 1;
}

.np-nav ul, .np-nav .menu, .np-nav .sf-menu {
    display: flex;
    align-items: center;
    gap: 0;
}

.np-nav a, .np-nav .menu > li > a, .np-nav .sf-arrows > li > a {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    color: var(--c-s700);
    font-size: 16px;
    font-weight: 500;
}

/* Nav icons */
.np-nav .menu > li > a::before {
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 18px;
    color: var(--c-orange);
}

.np-nav .menu > li.item-255 > a::before { content: '\f1b9'; } /* la-car — Pneumatiky */
.np-nav .menu > li.item-274 > a::before { content: '\f21c'; } /* la-motorcycle — Motopneu */
.np-nav .menu > li.item-256 > a::before { content: '\f51f'; } /* la-compact-disc — Alu disky */
.np-nav .menu > li.item-257 > a::before { content: '\f111'; } /* la-circle — Ocelové disky */

.np-nav a:hover, .np-nav .menu > li > a:hover,
.np-nav .menu > li.active > a, .np-nav .menu > li.current > a {
    color: var(--c-orange);
    text-decoration: none;
}

.np-nav .category-dropdown, .np-nav .dropdown-toggle {
    background: none;
    border: none;
    color: var(--c-s700);
    font-size: 14px;
    font-weight: 500;
    padding: 10px 14px;
    cursor: pointer;
}

.np-nav .category-dropdown:hover {
    color: var(--c-orange);
}

/* Submenus - hidden, show on hover */
.np-nav .sf-menu > li {
    position: relative;
}

.np-nav .sf-menu ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r);
    box-shadow: var(--shadow-lg);
    min-width: 200px;
    padding: 8px 0;
    z-index: 100;
    flex-direction: column;
}

.np-nav .sf-menu li:hover > ul {
    display: flex;
}

.np-nav .sf-menu ul a {
    padding: 8px 16px;
    font-size: 14px;
}

.np-nav .sf-menu ul a:hover {
    background: var(--c-s50);
}

@media (max-width: 767px) {
    .np-nav {
        display: none;
    }
}

/* Hide old header */
.header.header-fc {
    display: none;
}

/* ===== HERO ===== */
.page-header.pneu.hpslider {
    position: relative;
    background-color: var(--c-dark);
    background-size: cover;
    background-position: center;
    padding: 48px 0 0;
    margin: 0;
}

.page-header.pneu.hpslider::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(40, 47, 66, .9), rgba(40, 47, 66, .5));
    z-index: 1;
}

.page-header.pneu.hpslider > * {
    position: relative;
    z-index: 2;
}

.np-hero-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 16px;
    text-align: center;
}

.np-hero-content h1 {
    font-size: 42px;
    color: var(--c-white);
    margin: 0 0 8px;
}

.np-hero-subtitle {
    font-size: 17px;
    color: var(--c-s300);
    margin: 0 0 32px;
}

@media (max-width: 767px) {
    .np-hero-content h1 {
        font-size: 28px;
    }
}

/* Filter card */
.np-filter-card {
    max-width: 800px;
    margin: 0 auto;
    background: var(--c-white);
    border-radius: 16px;
    box-shadow: var(--shadow-2xl);
    padding: 24px 32px;
}

/* Category page filter — full width, no hero constraints */
.np-category-filter {
    background: url('/images/virtuemart/category/catbgr.jpg') center/cover no-repeat;
    padding: 40px 0;
    position: relative;
}

.np-category-filter .np-filter-card {
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    position: relative;
    z-index: 1;
}

.np-category-filter .container {
    position: relative;
    z-index: 1;
}

.np-filter-card .cf_wrapp_all,
.np-filter-card .container-fluid,
.np-filter-card .alpnu {
    background: none;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    max-width: none;
    border: none;
}

/* Filter grid */
.np-filter-card .cf_form.row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 0;
}

.np-filter-card .cf_flt_wrapper {
    padding: 0;
    margin: 0;
    width: auto;
    max-width: none;
    flex: none;
    float: none;
}

.np-filter-card h3.cf_flt_header_text,
.np-filter-card h3.widget-title,
.np-filter-card .cf_flt_wrapper h3,
.np-filter-card .cf_wrapp_all .widget-title {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--c-s700) !important;
    margin: 0 0 6px !important;
    display: block !important;
    border: none !important;
    padding: 0 !important;
    line-height: 1.4 !important;
}

/* Filter selects */
select.cf_flt {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    padding: 10px 12px;
    width: 100%;
    height: 42px;
    background: var(--c-white);
    color: var(--c-s700);
    appearance: menulist;
    outline: none;
}

/* Select2 overrides for filter card + product detail filter */
.np-filter-card, .sidebar.detail {
    text-align: left;
}

.np-filter-card .select2-container, .sidebar.detail .select2-container {
    width: 100% !important;
}

.np-filter-card .select2-container .select2-selection--single,
.sidebar.detail .select2-container .select2-selection--single {
    height: 42px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    background: var(--c-white);
    display: flex;
    align-items: center;
    padding: 0 12px;
}

.np-filter-card .select2-container .select2-selection--single .select2-selection__rendered {
    color: var(--c-s700);
    font-size: 14px;
    padding: 0;
    line-height: 42px;
}

.np-filter-card .select2-container .select2-selection--single .select2-selection__arrow {
    height: 42px;
    right: 8px;
}

.np-filter-card .select2-container--focus .select2-selection--single,
.sidebar.detail .select2-container--focus .select2-selection--single {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.select2-dropdown {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    box-shadow: var(--shadow-lg);
}

.select2-search--dropdown .select2-search__field {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 8px 12px;
    font-size: 14px;
    outline: none;
}

.select2-search--dropdown .select2-search__field:focus {
    border-color: var(--c-orange);
}

.select2-results__option {
    font-size: 14px;
    padding: 8px 12px;
}

.select2-results__option--highlighted {
    background: var(--c-orange) !important;
    color: var(--c-white) !important;
}

.select2-results__option--selected {
    background: var(--c-orange-bg);
}

select.cf_flt:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

/* Extended filters - hidden by default, JS toggles display:grid */
.np-filter-card .extended_filters {
    display: none;
    margin: 0 !important;
    padding: 12px 0 0 !important;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 12px !important;
    flex-wrap: unset !important;
}

.np-filter-card .extended_filters[style*="display: grid"],
.np-filter-card .extended_filters[style*="display:grid"] {
    display: grid !important;
}

.np-filter-card .extended_filters .cf_flt_wrapper,
.np-filter-card .extended_filters [class*="col-"] {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    float: none !important;
}

.np-filter-card .extended_filters select.cf_flt {
    width: 100%;
}

.np-filter-card .cf_resetAll_link {
    display: none;
}

.np-filter-card .show_extended {
    grid-column: 1 / -1;
}

.np-filter-card .show_extended label {
    font-size: 14px;
    color: var(--c-orange);
    font-weight: 500;
    cursor: pointer;
}

@media (max-width: 767px) {
    .np-filter-card .extended_filters[style*="display: grid"],
    .np-filter-card .extended_filters[style*="display:grid"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Car filter (alu/steel - brand & type selects, radio buttons) */
.np-filter-card .car_filter_type {
    grid-column: 1 / -1;
    padding: 0;
}

.np-filter-card .car_filter_type .cf_wrapp_all.row,
.np-filter-card .car_filter.brtype .cf_wrapp_all.row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 0;
}

.np-filter-card .car_filter_type [class*="col-"],
.np-filter-card .car_filter.brtype [class*="col-"] {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    float: none !important;
}

.np-filter-card .car_filter.brtype {
    grid-column: 1 / -1;
    padding: 0;
    margin-bottom: 4px;
}

.np-filter-card .car_filter.brtype select.car_filter {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    padding: 10px 12px;
    width: 100%;
    height: 42px;
    background: var(--c-white);
    color: var(--c-s700);
    appearance: menulist;
    outline: none;
}

.np-filter-card .aludisk {
    grid-column: 1 / -1;
    padding: 0 !important;
    margin: 0 0 8px !important;
}

.np-filter-card .aludisk .cf_wrapp_all.row {
    display: flex;
    gap: 24px;
    justify-content: center;
    margin: 0;
}

.np-filter-card .aludisk [class*="col-"] {
    padding: 0 !important;
    width: auto !important;
    flex: none !important;
}

.np-filter-card .aludisk ul li input[type="radio"],
.np-filter-card input.typ_filtru[type="radio"] {
    margin-right: 6px;
    accent-color: var(--c-orange);
    vertical-align: middle;
    appearance: radio !important;
    -webkit-appearance: radio !important;
    opacity: 1 !important;
    position: static !important;
    visibility: visible !important;
    width: 16px !important;
    height: 16px !important;
    pointer-events: auto !important;
    z-index: 1;
    cursor: pointer;
}

.np-filter-card .aludisk label {
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s700);
    cursor: pointer;
    vertical-align: middle;
    line-height: 1;
    margin-bottom: 0 !important;
}

.np-filter-card .aludisk ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.np-filter-card .aludisk li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.np-filter-card .aludisk .check {
    display: none;
}

/* Stock filter checkbox */
.np-stock-filter {
    display: flex;
    align-items: center;
    gap: 12px;
}

.np-stock-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s700);
    cursor: pointer;
    margin: 0;
    white-space: nowrap;
}

.np-stock-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--c-orange);
    cursor: pointer;
}

/* Filter reset link */
.np-filter-reset {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--c-s500);
    text-decoration: none;
    margin-top: 10px;
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--tr);
}

.np-filter-reset:hover {
    color: var(--c-red);
    text-decoration: none;
}

.np-filter-reset i {
    font-size: 14px;
}

/* Submit button */
.np-filter-card .col-md-12 {
    grid-column: 1 / -1;
    padding: 0;
    margin: 0;
    width: auto;
    max-width: none;
    flex: none;
}

.cf_apply_button, .cf_submit {
    background: var(--c-orange);
    color: var(--c-white);
    border: none;
    border-radius: var(--r);
    font-size: 16px;
    font-weight: 600;
    padding: 14px 24px;
    width: 100%;
    display: block;
    cursor: pointer;
    transition: background var(--tr);
    margin-top: 4px;
}

.cf_apply_button:hover, .cf_submit:hover {
    background: var(--c-orange-h);
}

/* Reset link */
.cf_resetAll_link {
    color: var(--c-orange);
    font-size: 13px;
}

/* Checkbox filter (Run on Flat) */
.np-filter-card .cf_filters_list {
    border: none !important;
    padding: 0 !important;
}

.np-filter-card .cf_filters_list_li.custom-control.custom-checkbox {
    display: inline-flex !important;
    gap: 8px;
    padding: 0 !important;
    position: static !important;
    border: none !important;
    background: none !important;
    min-height: 0 !important;
}

.np-filter-card .custom-control-input[type="checkbox"] {
    position: static !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    flex-shrink: 0;
    accent-color: var(--c-orange);
    opacity: 1 !important;
    pointer-events: auto !important;
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    z-index: 1 !important;
    cursor: pointer;
}

.np-filter-card .custom-control-label {
    font-size: 14px;
    color: var(--c-s700);
    padding-left: 0 !important;
    padding-top: 0 !important;
    margin: 0;
    position: static !important;
    line-height: 18px;
    vertical-align: middle;
    cursor: pointer;
}

.np-filter-card .custom-control-label::before,
.np-filter-card .custom-control-label::after {
    display: none !important;
}

.np-filter-card .cf_wrapper_inner label {
    border: none !important;
}

/* Icon boxes in hero - hide (replaced by np-features) */
.np-filter-card .icon-boxes-container,
.np-hero-content .icon-boxes-container,
.page-header .icon-boxes-container {
    display: none;
}

body.com_content.view-featured .icon-boxes-container {
    display: none;
}

@media (max-width: 767px) {
    .np-filter-card .cf_form.row {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== FEATURES (hero bottom) ===== */
.np-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    max-width: 800px;
    margin: 24px auto 0;
    padding: 0 16px 70px;
}

.np-feature {
    text-align: center;
    color: var(--c-white);
}

.np-feature-icon {
    background: var(--c-orange);
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 8px;
    font-size: 20px;
    color: var(--c-white);
}

.np-feature h4 {
    font-size: 14px;
    font-weight: 500;
    color: var(--c-white);
    margin: 0 0 2px;
}

.np-feature p {
    font-size: 12px;
    color: var(--c-s400);
    margin: 0;
}

@media (max-width: 767px) {
    .np-features {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== SECTIONS ===== */
.np-section {
    padding: 48px 0;
}

.np-section-gray {
    background: var(--c-s50);
}

.np-section-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--c-dark);
    text-align: center;
    margin: 0 0 8px;
}

.np-section-subtitle {
    font-size: 15px;
    color: var(--c-s600);
    text-align: center;
    margin: 0 0 32px;
}

/* ===== PRODUCTS ===== */
.product-default, div.product, .product.product-7 {
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid var(--c-s200);
    transition: box-shadow var(--tr), transform var(--tr);
    background: var(--c-white);
    display: flex;
    flex-direction: column;
}

form.product {
    border: none;
    border-radius: 0;
    overflow: visible;
    background: none;
    display: block;
}

/* Product image area */
.product figure.product-media {
    background: #fff;
    padding-top: 16px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin: 0;
    overflow: hidden;
}

.header-search-wrapper .btn-primary {
    border-radius: 0 var(--r) var(--r) 0;
}

.product .product-media a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.product .product-media img.product-image,
.product .product-media img.browseProductImage {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: transform .3s;
}

.product:hover .product-media img {
    transform: scale(1.05);
}

/* Product labels / badges */
.product-label.label {
    position: absolute;
    z-index: 2;
    padding: 4px 10px;
    border-radius: var(--r);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

.product-label.label-sale {
    top: 12px;
    right: 12px;
    background: #ef4444;
    color: var(--c-white);
}

.product-label.label-top {
    top: 12px;
    left: 12px;
    background: #ef4444;
    color: var(--c-white);
}

.product-label.label-new {
    top: 12px;
    right: 12px;
    background: #22c55e;
    color: var(--c-white);
}

.product-label.label-sezona {
    top: 8px;
    right: 12px;
    color: var(--c-white);
    font-size: 16px;
    padding: 4px 8px;
}

.product-label.label-sezona::before {
    margin-right: 0;
}

/* Product action overlay */
.product .product-action {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, .04));
    opacity: 0;
    transition: opacity .3s;
}

.product:hover .product-action {
    opacity: 1;
}

/* Homologace button — positioned on vm-product-media-container (no overflow clip) */
.product .vm-product-media-container {
    position: relative;
}

.product .product-action-vertical {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
}

/* Expandable icon button (Ověřit homologaci) */
.btn-product-icon.btn-expandable {
    display: inline-flex;
    align-items: center;
    height: 36px;
    background: var(--c-orange);
    border: none;
    border-radius: 50%;
    padding: 0 7px;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    box-shadow: var(--shadow);
}

.btn-product-icon.btn-expandable::before {
    content: '\f058';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 18px;
    color: var(--c-white);
    flex-shrink: 0;
}

.btn-product-icon.btn-expandable span {
    max-width: 0;
    overflow: hidden;
    font-size: 12px;
    color: var(--c-white);
    margin-left: 0;
    transition: max-width .4s ease, margin-left .4s ease, opacity .3s;
    opacity: 0;
    display: inline-block;
}

.btn-product-icon.btn-expandable:hover {
    border-radius: var(--r);
    background: var(--c-orange-h);
}

.btn-product-icon.btn-expandable:hover span {
    max-width: 200px;
    margin-left: 8px;
    opacity: 1;
}

.btn-wishlist::before {
    content: '\f058' !important;
    font-family: 'Line Awesome Free' !important;
    font-weight: 900;
}

/* Product body */
.product .product-body {
    padding: 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Brand name (hrun = homologation / run-flat info) */
.product .hrun {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-orange);
    margin-bottom: 4px;
}

.product .hrun i {
    margin-right: 4px;
}

/* Product title */
.product-title {
    margin-bottom: 4px;
}

.product-title a {
    color: var(--c-dark);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 42px;
}

.product-title a:hover {
    color: var(--c-orange);
}

/* EU tag icons */
.product .iconspneu {
    font-size: 13px;
    color: var(--c-s600);
    margin-bottom: 8px;
}

.product .iconspneu .la {
    color: var(--c-s500);
    margin-right: 2px;
}

/* Star rating */
.ratings-container {
    margin-bottom: 8px;
}

.ratings {
    position: relative;
    display: inline-block;
    font-size: 14px;
    letter-spacing: 2px;
    line-height: 1;
    overflow: hidden;
}

.ratings::before, .ratings-val::before {
    content: "\f005" "\f005" "\f005" "\f005" "\f005";
    font-family: 'Line Awesome Free';
    font-weight: 900;
}

.ratings::before {
    color: var(--c-s300);
}

.ratings-val {
    position: absolute;
    top: 0;
    left: 0;
    white-space: nowrap;
    overflow: hidden;
}

.ratings-val::before {
    color: var(--c-orange);
}

/* Price */
.product .product-price, .product .PricesalesPrice {
    color: var(--c-dark);
    font-weight: 700;
    font-size: 22px;
    margin-bottom: 4px;
}

.product .PricebasePriceWithTax, .product .price-crossed {
    color: var(--c-s400);
    font-size: 13px;
    text-decoration: line-through;
}

.product .cena_od {
    font-size: 13px;
    color: var(--c-s500);
    font-weight: 400;
}

/* Availability */
.product .product_availability, .product .availability {
    font-size: 13px;
    margin-bottom: 12px;
    display: block;
}

/* Add to cart button */
.product .addtocart-area {
    margin-top: auto;
}

.addtocart-button, .btn-cart {
    background: var(--c-orange);
    color: var(--c-white);
    border: none;
    border-radius: var(--r);
    font-weight: 600;
    font-size: 14px;
    padding: 12px 16px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    transition: background var(--tr);
}

.addtocart-button:hover, .btn-cart:hover {
    background: var(--c-orange-h);
    color: var(--c-white);
}

.btn-product {
    background: var(--c-s700);
    color: var(--c-white);
    border: none;
    font-weight: 600;
    font-size: 13px;
    padding: 11px 16px;
    cursor: pointer;
    transition: background var(--tr);
}

.btn-product:hover {
    background: var(--c-orange-h);
    color: var(--c-white);
    text-decoration: inherit;
}

.btn-product::before, .btn-product-icon::before {
    font-family: 'Line Awesome Free' !important;
    font-weight: 900;
}

.btn-product.btn-quickview::before, .btn-product.btn-detail::before {
    content: '\f06e';
    padding-right: 10px;
}

.btn-compare::before {
    content: '\f074';
    font-family: 'Line Awesome Free' !important;
    font-weight: 900;
    margin-right: 0;
}

/* Product grid (category browse) */
/* Product grid inside sublayout — target only inner .row with product cards, not outer layout .row */
.browse-view > .row {
    display: flex;
    flex-wrap: wrap;
}

.browse-view .col-lg-12 > .row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin: 0 !important;
}

.browse-view .col-lg-12 > .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    padding: 0;
    flex: none;
}

@media (max-width: 991px) {
    .browse-view .col-lg-12 > .row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 767px) {
    .browse-view .col-lg-12 > .row {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .product .product-body {
        padding: 10px;
    }

    .product figure.product-media {
        padding-top: 8px;
        aspect-ratio: 4 / 3;
    }

    .product-title a {
        font-size: 13px;
    }

    .product .iconspneu {
        font-size: 11px;
    }

    .product .availability,
    .product .product_availability {
        font-size: 11px;
    }

    .product .product-details-quantity {
        display: none;
    }

    .product .btn-cart {
        width: 100%;
        font-size: 12px;
        padding: 6px 8px;
    }

    .cf_apply_button, .cf_submit {
        margin-top: 0;
    }
}

/* Quantity + add to cart on one line: [ - ] 1 [ + ]  [ Koupit ] */
.product .details-action-col {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
}

.product .product-details-quantity {
    position: relative;
    flex-shrink: 0;
}

.product .product-details-quantity:has(input[type="hidden"]) {
    display: none;
}

.product .product-details-quantity input.form-control,
.product .product-details-quantity input[name="quantity[]"] {
    width: 120px;
    height: 42px;
    text-align: center;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 15px;
    font-weight: 600;
    padding: 0 30px;
    outline: none;
    background: var(--c-white);
    color: var(--c-dark);
    box-shadow: none;
}

.product .product-details-quantity .quantity-minus {
    position: absolute;
    left: 1px;
    top: 1px;
    width: 30px;
    height: 40px;
    border: none;
    background: var(--c-white);
    cursor: pointer;
    font-size: 18px;
    color: var(--c-dark);
    border-radius: var(--r) 0 0 var(--r);
}

.product .product-details-quantity .quantity-plus {
    position: absolute;
    right: 1px;
    top: 1px;
    width: 30px;
    height: 40px;
    border: none;
    background: var(--c-white);
    cursor: pointer;
    font-size: 18px;
    color: var(--c-dark);
    border-radius: 0 var(--r) var(--r) 0;
}

.product .product-details-quantity .quantity-minus:hover,
.product .product-details-quantity .quantity-plus:hover {
    background: var(--c-s100);
}

.product .addtocart-button, .product .btn-cart {
    flex: 1;
}

/* Stock icon */
.product .vmicon {
    display: none;
}

/* ===== OWL CAROUSEL ===== */
.owl-carousel .owl-nav {
    position: absolute;
    top: 50%;
    width: 100%;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    transform: translateY(-50%);
    margin: 0 !important;
}

.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
    width: 40px;
    height: 40px;
    background: var(--c-white) !important;
    border: 1px solid var(--c-s300) !important;
    border-radius: 50% !important;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
    cursor: pointer;
    transition: all var(--tr);
    font-size: 0 !important;
    box-shadow: var(--shadow);
    margin: 0 !important;
    padding: 0 !important;
}

.owl-carousel .owl-nav button.owl-prev:hover,
.owl-carousel .owl-nav button.owl-next:hover {
    background: var(--c-orange) !important;
    border-color: var(--c-orange) !important;
}

.owl-carousel .owl-nav button.owl-prev::after,
.owl-carousel .owl-nav button.owl-next::after {
    font-size: 18px;
    font-weight: 700;
    color: var(--c-dark);
    line-height: 1;
}

.owl-carousel .owl-nav button.owl-prev:hover::after,
.owl-carousel .owl-nav button.owl-next:hover::after {
    color: var(--c-white);
}

.owl-carousel .owl-nav button.owl-prev {
    margin-left: -20px !important;
}

.owl-carousel .owl-nav button.owl-next {
    margin-right: -20px !important;
}

.owl-carousel .owl-nav span {
    display: none;
}

.owl-carousel .owl-dots .owl-dot span {
    background: var(--c-s300);
}

.owl-carousel .owl-dots .owl-dot.active span {
    background: var(--c-orange);
    width: 20px;
    border-radius: 4px;
}

/* ===== TESTIMONIALS ===== */
.owl-testimonials .testimonial {
    background: var(--c-white);
    border-radius: var(--r-lg);
    border: 1px solid var(--c-s200);
    padding: 24px;
    position: relative;
    transition: box-shadow var(--tr);
}

.owl-testimonials .testimonial:hover {
    box-shadow: var(--shadow-lg);
}

.owl-testimonials .testimonial::before {
    content: '\201C';
    font-size: 4rem;
    color: var(--c-orange);
    opacity: .2;
    position: absolute;
    top: 8px;
    right: 20px;
    font-family: Georgia, serif;
}

.owl-testimonials .testimonial p {
    color: var(--c-s600);
    font-size: 14px;
    font-style: normal;
}

.owl-testimonials .testimonial cite {
    font-style: normal;
    font-weight: 600;
    color: var(--c-dark);
    font-size: 14px;
}

.owl-testimonials .testimonial cite span {
    font-weight: 400;
    color: var(--c-s500);
    font-size: 13px;
    display: block;
}

.owl-testimonials .testimonial .ratings.user::before {
    content: '\2605\2605\2605\2605\2605';
    color: var(--c-orange);
    letter-spacing: 2px;
}

.title.text-center {
    color: var(--c-dark);
}

.np-rating-summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--c-white);
    border-radius: 50px;
    padding: 10px 24px;
    box-shadow: var(--shadow);
}

.np-rating-summary .star {
    color: var(--c-orange);
    font-size: 20px;
}

.np-rating-summary .rating-number {
    font-size: 20px;
    font-weight: 700;
    color: var(--c-dark);
}

.np-rating-summary .rating-count {
    color: var(--c-s600);
    font-size: 14px;
}

/* ===== REVIEW CARDS (design mockup) ===== */
.np-reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.np-review-card {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 24px;
    transition: box-shadow var(--tr);
}

.np-review-card:hover {
    box-shadow: var(--shadow-lg);
}

.np-review-header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.np-review-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--c-orange);
    color: var(--c-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    flex-shrink: 0;
}

.np-review-meta {
    flex: 1;
}

.np-review-meta h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--c-dark);
}

.np-review-stars {
    color: var(--c-orange);
    font-size: 14px;
    letter-spacing: 2px;
    margin-top: 2px;
}

.np-review-quote {
    font-family: Georgia, serif;
    font-size: 3rem;
    color: var(--c-orange);
    opacity: .3;
    line-height: 1;
    flex-shrink: 0;
}

.np-review-card p {
    color: var(--c-s600);
    font-size: 14px;
    line-height: 1.6;
    margin: 0 0 12px;
}

.np-review-date {
    font-size: 13px;
    color: var(--c-s500);
}

@media (max-width: 767px) {
    .np-reviews-grid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .np-reviews-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== ICON BOXES ===== */
.icon-box {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
}

.icon-box-icon {
    background: var(--c-orange);
    color: var(--c-white);
    border-radius: 50%;
    width: 48px;
    height: 48px;
    min-width: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.icon-box-icon i {
    color: var(--c-white);
}

.icon-box-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 2px;
}

.icon-box-content p {
    font-size: 13px;
    color: var(--c-s500);
    margin: 0;
}

.icon-boxes-container hr {
    display: none;
}

/* Icon font mapping */
[class^="icon-"]::before, [class*=" icon-"]::before {
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-style: normal;
}

i.icon-info-circle::before {
    content: '\f05a';
}

i.icon-rocket::before {
    content: '\f135';
}

i.icon-heart-o::before {
    font-weight: 400;
    content: '\f004';
}

i.icon-life-ring::before {
    font-weight: 400;
    content: '\f1cd';
}

i.icon-phone::before {
    content: '\f095';
}

i.icon-bars::before {
    content: '\f0c9';
}

i.icon-close::before {
    content: '\f00d';
}

i.icon-arrow-up::before {
    content: '\f062';
}

/* removed — handled globally below */

i.icon-facebook-f::before {
    font-family: 'Line Awesome Brands';
    font-weight: 400;
    content: '\f39e';
}

i.icon-search::before {
    content: '\f002';
}

i.icon-shopping-cart::before {
    content: '\f07a';
}

/* ===== SEASONAL ===== */
.np-seasonal-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

@media (max-width: 767px) {
    .np-seasonal-grid {
        grid-template-columns: 1fr;
    }
}

.np-seasonal-card {
    border-radius: var(--r-lg);
    overflow: hidden;
    background: #f9fafc;
    border: 2px solid transparent;
    transition: box-shadow var(--tr), border-color var(--tr);
    display: block;
    text-decoration: none;
}

.np-seasonal-grid a {
    text-decoration: none;
}

.np-seasonal-card:hover {
    box-shadow: var(--shadow-xl);
}

.np-seasonal-card.summer:hover {
    border-color: var(--c-orange);
}

.np-seasonal-card.winter:hover {
    border-color: var(--c-dark);
}

.np-seasonal-card.allseason:hover {
    border-color: #10b981;
}

.np-seasonal-header {
    padding: 32px;
    color: var(--c-white);
}

.np-seasonal-card.summer .np-seasonal-header {
    background: linear-gradient(135deg, var(--c-orange), var(--c-orange-h));
}

.np-seasonal-card.winter .np-seasonal-header {
    background: linear-gradient(135deg, var(--c-dark), var(--c-dark-l));
}

.np-seasonal-card.allseason .np-seasonal-header {
    background: linear-gradient(135deg, #22c55e, #16a34a);
}

.np-seasonal-header > i {
    margin-bottom: 16px;
    font-size: 48px;
}

.np-seasonal-header i {

    display: block;
}

.np-seasonal-header h3 {
    font-size: 22px;
    color: var(--c-white);
    margin: 0 0 8px;
}

.np-seasonal-header p {
    color: rgba(255, 255, 255, .9);
    margin: 0 0 20px;
    font-size: 14px;
}

.np-seasonal-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: var(--c-white);
    border: none;
    border-radius: var(--r);
    padding: 10px 24px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: background var(--tr);
}

.np-seasonal-card.summer .np-seasonal-btn {
    color: var(--c-orange);
}

.np-seasonal-card.winter .np-seasonal-btn {
    color: var(--c-dark);
}

.np-seasonal-card.allseason .np-seasonal-btn {
    color: #16a34a;
}

.np-seasonal-btn:hover {
    background: var(--c-s50);
}

.np-seasonal-features {
    padding: 24px;
    background: var(--c-s50);
}

.np-seasonal-features ul {
    margin: 0;
    padding: 0;
}

.np-seasonal-features li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--c-s700);
    padding: 5px 0;
}

.np-seasonal-features li::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.np-seasonal-card.summer .np-seasonal-features li::before {
    background: var(--c-orange);
}

.np-seasonal-card.winter .np-seasonal-features li::before {
    background: var(--c-dark);
}

.np-seasonal-card.allseason .np-seasonal-features li::before {
    background: #22c55e;
}

/* ===== BLOG ===== */

/* Article detail */
.np-article-layout {
    max-width: 900px;
    margin: 0 auto;
    padding: 32px 0;
}

.np-article {
    min-width: 0;
}

.np-article-hero {
    margin: 0 0 32px;
    border-radius: var(--r-lg);
    overflow: hidden;
}

.np-article-hero img {
    width: 100%;
    height: auto;
    display: block;
}

.np-article-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--c-s700);
}

.np-article-content h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 32px 0 16px;
}

.np-article-content h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 24px 0 12px;
}

.np-article-content p {
    margin-bottom: 16px;
}

.np-article-content a {
    color: var(--c-orange);
}

.np-article-content a:hover {
    color: var(--c-orange-h);
    text-decoration: underline;
}

.np-article-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--r);
    margin: 16px 0;
}

.np-article-content ul, .np-article-content ol {
    padding-left: 0;
    margin-bottom: 16px;
    list-style: none;
}

.np-article-content li {
    margin-bottom: 8px;
    padding-left: 24px;
    position: relative;
}

.np-article-content li::before {
    content: '\f00c';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    color: var(--c-orange);
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 14px;
}

.np-article-content ol li::before {
    content: counter(li);
    counter-increment: li;
    font-family: inherit;
    font-weight: 700;
    color: var(--c-orange);
}

.np-article-content ol {
    counter-reset: li;
}

.np-article-content blockquote {
    border-left: 4px solid var(--c-orange);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--c-s50, #f8fafc);
    border-radius: 0 var(--r) var(--r) 0;
    font-style: italic;
    color: var(--c-s600);
}

.np-article-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
}

.np-article-content table th, .np-article-content table td {
    padding: 10px 14px;
    border: 1px solid var(--c-s200);
    font-size: 14px;
}

.np-article-content table th {
    background: var(--c-s50, #f8fafc);
    font-weight: 600;
    color: var(--c-dark);
}

/* Article pagination */
.np-article-pagination, .pager, .pagenav, ul.pagenav {
    display: none;
}

.np-article-pagination-unused {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--c-s200);
}

/* Related articles */
.np-related-articles {
    background: var(--c-s50, #f8fafc);
    padding: 48px 0;
    margin-top: 48px;
}

.np-related-articles .np-section-title {
    margin-bottom: 24px;
}

@media (max-width: 767px) {
    .np-related-articles .np-blog-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .np-related-articles .np-blog-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Blog grid — isotope handles .entry-container layout, CSS grid for non-isotope */
.np-blog-grid:not(.entry-container) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

/* Isotope items — isotope sets position:absolute, we just set width + margin */
.entry-container .entry-item {
    width: 25%;
    padding: 0 12px;
    margin-bottom: 24px;
    box-sizing: border-box;
}

.entry-item .np-blog-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.entry-item .np-blog-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.entry-item .np-blog-link {
    margin-top: auto;
}

@media (max-width: 991px) {
    .entry-container .entry-item {
        width: 33.333%;
    }
}

@media (max-width: 767px) {
    .entry-container .entry-item {
        width: 50%;
    }
}

@media (max-width: 480px) {
    .entry-container .entry-item {
        width: 100%;
    }
}

/* Blog listing page */
.np-blog-listing {
    padding: 32px 0 48px;
}

/* Blog empty state (isotope filter) */
.np-blog-empty {
    text-align: center;
    padding: 48px 24px;
}

.np-blog-empty i {
    font-size: 48px;
    color: var(--c-s300);
    display: block;
    margin-bottom: 16px;
}

.np-blog-empty h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 8px;
}

.np-blog-empty p {
    font-size: 14px;
    color: var(--c-s500);
    margin: 0;
}

/* Blog filter nav */
.blog-nav {
    margin-bottom: 2rem;
    padding-top: 8px;
}

.blog-nav .entry-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: center;
}

.blog-nav .entry-filter li a {
    padding: 8px 20px;
    border-radius: var(--r);
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s600);
    border: 1px solid var(--c-s200);
    transition: all var(--tr);
    display: block;
    text-decoration: none;
}

.blog-nav .entry-filter li a:hover, .blog-nav .entry-filter li.active a {
    background: var(--c-orange);
    color: var(--c-white);
    border-color: var(--c-orange);
}

.np-blog-card {
    background: var(--c-white);
    border-radius: var(--r-lg);
    overflow: hidden;
    border: 1px solid var(--c-s200);
    transition: box-shadow var(--tr);
    display: block;
}

.np-blog-card:hover {
    box-shadow: var(--shadow-xl);
}

.np-blog-image {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--c-s200);
}

.np-blog-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.np-blog-card:hover .np-blog-image img {
    transform: scale(1.1);
}

.np-blog-category {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--c-orange);
    color: var(--c-white);
    padding: 4px 12px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 500;
}

.np-blog-body {
    padding: 20px;
}

.np-blog-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: var(--c-s600);
    margin-bottom: 10px;
}

.np-blog-body h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 10px;
    line-height: 1.3;
}

.np-blog-card:hover h3 {
    color: var(--c-orange);
}

.np-blog-body p {
    color: var(--c-s600);
    font-size: 14px;
    margin-bottom: 12px;
}

.np-blog-link {
    color: var(--c-orange);
    font-weight: 500;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.blog-posts > .container > div[style*="grid"] {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 767px) {
    .blog-posts > .container > div[style*="grid"] {
        grid-template-columns: 1fr;
    }
}

/* ===== CTA PNEUSERVIS ===== */
.cta-border-image {
    background-size: cover;
    background-position: center;
    border-radius: var(--r-lg);
    overflow: hidden;
    margin: 2rem 0;
}

.cta-border-wrapper {
    display: flex;
    align-items: center;
    padding: 40px;
    margin: 20px;
    border-radius: var(--r-lg);
}

.cta-border-wrapper.bg-white {
    background: var(--c-white);
}

.cta-border-wrapper .row {
    display: flex !important;
    flex-wrap: wrap;
    grid-template-columns: none !important;
    gap: 0 !important;
    width: 100%;
}

.cta-border-wrapper .row > [class*="col-"] {
    padding: 0;
}

.cta-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
}

.cta-heading {
    flex-shrink: 0;
    padding-right: 24px;
    border-right: 1px solid var(--c-s200);
    margin-right: 24px;
}

.cta-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--c-dark);
    line-height: 1.2;
    margin: 0;
}

.cta-title .text-primary {
    color: var(--c-orange) !important;
}

.cta-text p {
    color: var(--c-s600);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

.cta-text .text-dark {
    color: var(--c-dark) !important;
}

@media (max-width: 767px) {
    .cta-border-image {
        margin: 1rem 0;
    }

    .cta-border-wrapper {
        padding: 20px;
        margin: 10px;
    }

    .cta-border-wrapper .row {
        margin: 0 !important;
    }

    .cta-content {
        flex-direction: column;
        text-align: center;
        gap: 16px;
    }

    .cta-heading {
        padding-right: 0;
        border-right: none;
        margin-right: 0;
        padding-bottom: 12px;
        border-bottom: 1px solid var(--c-s200);
    }

    .cta-title {
        font-size: 22px;
        text-align: center !important;
    }

    .cta-text p {
        font-size: 13px;
        margin: 0;
    }
}


/* ===== ICON BOXES / SERVICES BAR ===== */
.icon-boxes-container {
    background: var(--c-dark);
    padding: 28px 0;
}

.icon-box-side {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
}

.icon-box-icon {
    font-size: 32px;
    flex-shrink: 0;
}

.icon-box-icon.text-dark, .icon-box-icon {
    color: var(--c-orange) !important;
}

.icon-box-content p {
    font-size: 13px;
    color: var(--c-s400);
    margin: 0;
}

/* ===== NEWSLETTER ===== */
.np-newsletter {
    background: var(--c-orange);
    padding: 48px 0;
    text-align: center;
    color: var(--c-white);
}

.np-newsletter h3 {
    font-size: 24px;
    font-weight: 700;
    color: var(--c-white);
    margin: 0 0 10px;
}

.np-newsletter p {
    color: rgba(255, 255, 255, .9);
    margin: 0 0 20px;
    font-size: 15px;
}

.np-newsletter-form {
    display: flex;
    gap: 8px;
    max-width: 400px;
    margin: 0 auto;
}

.np-newsletter-form input {
    flex: 1;
    padding: 10px 16px;
    border: none;
    border-radius: var(--r);
    font-size: 14px;
}

.np-newsletter-form button {
    background: var(--c-dark);
    color: var(--c-white);
    border: none;
    border-radius: var(--r);
    padding: 10px 24px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--tr);
    white-space: nowrap;
}

.np-newsletter-form button:hover {
    background: var(--c-dark-l);
}

/* ===== PNEUSERVIS (oranzovy pruh nad patickou) =====
   Nahradil oranzovy pruh s mrtvym formularem na odber novinek. Styly
   .np-newsletter* nad timto blokem zustavaji pro pripad, ze se newsletter vrati.

   KONTRAST: na oranzove #d77104 ma bila 3.36:1 a svetle seda 3.21:1. Pro velky
   text (nadpis 34px) to na AA staci, pro maly text ne - ten by potreboval
   #1e2333 (4.65:1). Svetla varianta je vedome zvolena kvuli vzhledu. */
.np-service {
    padding: 56px 0 64px;
    background: var(--c-orange);
}

.np-service-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

/* Nadtitulek i tlacitko drzi svetle sedou (--c-s50). Nadpis je ciste bily,
   takze se od nadtitulku odlisi i pri podobnem odstinu - velikostí, verzalkami
   a prostrkanim. */
.np-service-eyebrow {
    display: block;
    color: var(--c-s50);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 14px;
}

.np-service-text h3 {
    color: var(--c-white);
    font-size: 34px;
    line-height: 1.22;
    font-weight: 700;
    margin: 0 0 18px;
}

/* Na oranzove se --c-s300 kali; ciste bila drzi nejvyssi mozny kontrast. */
.np-service-text p {
    color: var(--c-white);
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 30px;
}

.np-service-btn {
    display: inline-block;
    background: var(--c-s50);
    color: var(--c-dark);
    border-radius: var(--r);
    padding: 14px 34px;
    font-weight: 700;
    font-size: 16px;
    text-decoration: none;
    transition: background var(--tr), color var(--tr);
}

.np-service-btn:hover,
.np-service-btn:focus {
    background: var(--c-white);
    color: var(--c-dark-l);
    text-decoration: none;
}

.np-service-media img {
    display: block;
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: var(--r-lg);
}

@media (max-width: 991px) {
    .np-service-card {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    /* Na uzkem displeji dava fotka smysl nahore, aby sekce hned chytla oko. */
    .np-service-media {
        order: -1;
    }

    .np-service-text h3 {
        font-size: 26px;
    }

    .np-service-media img {
        height: 220px;
    }
}

/* ===== FOOTER ===== */
.footer {
    background: var(--c-dark);
    color: var(--c-s400);
}

.footer .footer-middle {
    background: var(--c-dark);
    padding: 48px 0;
}

.footer .widget-title, .footer h4 {
    color: var(--c-white);
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
}

.footer .widget-list a, .footer a {
    color: var(--c-s400);
    font-size: 14px;
}

.footer .widget-list a:hover, .footer a:hover {
    color: var(--c-orange);
}

.footer .widget-list li {
    margin-bottom: 8px;
}

.footer .widget-call {
    font-size: 14px;
}

.footer .widget-call i {
    color: var(--c-orange);
}

.footer .widget-call a {
    color: var(--c-white);
    font-size: 18px;
    font-weight: 600;
}

.footer .footer-bottom {
    background: transparent;
    padding: 20px 0;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.footer .footer-copyright {
    color: var(--c-s400);
    font-size: 13px;
}

/* Footer mobile */
@media (max-width: 767px) {
    .footer .footer-middle {
        padding: 32px 0;
    }

    .footer .footer-middle .row {
        gap: 0;
    }

    .footer .footer-middle .col-sm-6 {
        padding-bottom: 24px;
        margin-bottom: 24px;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }

    .footer .footer-middle .col-sm-6:last-child {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .footer .widget-title, .footer h4 {
        font-size: 15px;
        margin-bottom: 12px;
    }

    .footer .widget-list a, .footer a {
        font-size: 13px;
    }

    .footer .widget-list li {
        margin-bottom: 6px;
    }

    .footer .widget-about p img {
        max-height: 28px;
        width: auto;
    }

    .footer .widget-call {
        font-size: 13px;
    }

    .footer .widget-call a {
        font-size: 16px;
    }

    .footer .footer-bottom {
        padding: 16px 0;
        text-align: center;
    }

    .footer .footer-bottom .container {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 12px;
    }

    .footer .footer-copyright {
        font-size: 12px;
        text-align: center;
    }

    .footer .footer-payments {
        margin: 0;
    }
}

.social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--r);
    background: rgba(255, 255, 255, .1);
    color: var(--c-white);
    transition: background var(--tr);
}

.social-icons a:hover {
    background: var(--c-orange);
}

/* More / outline link buttons */
.btn-outline-dark-2, .btn-more, .more-container a {
    font-size: 16px;
    padding: 12px 32px;
    border: 1px solid var(--c-orange);
    border-radius: var(--r);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--c-orange);
    background: none;
    text-decoration: none;
    transition: all var(--tr);
}

.btn-outline-dark-2:hover, .btn-more:hover, .more-container a:hover {
    background: var(--c-orange);
    color: var(--c-white);
    text-decoration: none;
}

/* ===== BUTTONS ===== */
.btn-primary, .btn-primary:focus, .btn-primary:active, .btn-primary.active {
    background-color: var(--c-orange) !important;
    border-color: var(--c-orange) !important;
    color: var(--c-white) !important;
    border-radius: var(--r);
    font-weight: 600;
    padding: 8px 16px;
    cursor: pointer;
    transition: background var(--tr);
    box-shadow: none !important;
}

.btn-primary:hover {
    background-color: var(--c-orange-h) !important;
    border-color: var(--c-orange-h) !important;
    color: var(--c-white) !important;
}

.btn-outline-primary-2 {
    background: none;
    border: 1px solid var(--c-orange);
    color: var(--c-orange);
    border-radius: var(--r);
    padding: 8px 16px;
    transition: all var(--tr);
}

.btn-outline-primary-2:hover {
    background: var(--c-orange-bg);
}

/* ===== FORMS ===== */
input[type="text"], input[type="email"], input[type="password"], textarea, select {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 10px 12px;
    font-size: 14px;
    font-family: inherit;
    outline: none;
}

input:focus, textarea:focus, select:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

/* ===== PAGINATION ===== */
.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
    margin: 32px 0;
    list-style: none;
    padding: 0;
}

.pagination li a, .pagination li span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: var(--r);
    color: var(--c-s600);
    font-size: 14px;
    text-decoration: none;
    transition: all var(--tr);
}

.pagination li a:hover {
    border-color: var(--c-orange);
    color: var(--c-orange);
    text-decoration: none;
}

.pagination li.active a, .pagination li.active span {
    background: var(--c-orange);
    border-color: var(--c-orange);
    color: var(--c-white);
}

.pagination li.disabled a, .pagination li.disabled span {
    color: var(--c-s300);
    border-color: var(--c-s100);
    cursor: default;
    pointer-events: none;
}

/* Pagination arrow icons — replace fishing font */
.pagination .icon-long-arrow-left,
.pagination .icon-long-arrow-right {
    font-size: 0;
}

.pagination .icon-long-arrow-left::before {
    content: '\f104';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 16px;
}

.pagination .icon-long-arrow-right::before {
    content: '\f105';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 16px;
}

/* Global icon replacement for icon-long-arrow */
.icon-long-arrow-left, .icon-long-arrow-right {
    display: inline-block;
    color: inherit;
}

.icon-long-arrow-left::before {
    content: '\f104';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: inherit;
}

.icon-long-arrow-right::before {
    content: '\f105';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: inherit;
}

/* ===== SIDEBAR ===== */
.sidebar .widget-title {
    border-bottom: 2px solid var(--c-orange);
    padding-bottom: 8px;
}

/* ===== SCROLL TOP ===== */
#scroll-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 999;
    background: var(--c-orange);
    color: var(--c-white);
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    box-shadow: var(--shadow-lg);
    display: none;
    font-size: 18px;
    transition: background var(--tr), opacity var(--tr);
}

#scroll-top:hover {
    background: var(--c-orange-h);
}

#scroll-top.show {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ===== MOBILE MENU ===== */
.mobile-menu-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    z-index: 9998;
}

.mmenu-active .mobile-menu-overlay {
    display: block;
}

.mobile-menu-container {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    max-width: 85vw;
    background: var(--c-white);
    z-index: 9999;
    transform: translateX(100%);
    transition: transform .3s ease;
    overflow-y: auto;
    box-shadow: -4px 0 20px rgba(0, 0, 0, .15);
}

.mmenu-active .mobile-menu-container {
    transform: translateX(0);
}

.mobile-menu-wrapper {
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

/* Header: logo + close */
.mobile-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--c-s200);
}

.mobile-menu-logo img {
    height: 32px;
    width: auto;
}

.mobile-menu-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 20px;
    color: var(--c-s600);
    transition: background .2s, color .2s;
}

.mobile-menu-close:hover {
    background: var(--c-s100);
    color: var(--c-dark);
}

/* Search */
.mobile-menu-search {
    padding: 12px 20px;
    border-bottom: 1px solid var(--c-s100);
}

.mobile-menu-search .cf-form-search,
.mobile-menu-search .input-append {
    display: flex;
    gap: 0;
}

.mobile-menu-search input[type="text"],
.mobile-menu-search input[type="search"],
.mobile-menu-search .cf-searchmod-input {
    flex: 1;
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r) 0 0 var(--r);
    font-size: 14px;
    height: 42px;
}

.mobile-menu-search input:focus {
    border-color: var(--c-orange);
    outline: none;
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.mobile-menu-search .btn,
.mobile-menu-search button[type="submit"] {
    border-radius: 0 var(--r) var(--r) 0;
    padding: 0 14px;
    height: 42px;
    width: auto;
    margin-top: 0;
}

/* User section */
.mobile-menu-user {
    padding: 16px 20px;
    border-bottom: 1px solid var(--c-s200);
}

.mobile-menu-login {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--c-orange);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
}

.mobile-menu-login:hover {
    color: var(--c-orange-h);
    text-decoration: none;
}

.mobile-menu-user-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.mobile-menu-user-info > i {
    font-size: 32px;
    color: var(--c-orange);
}

.mobile-menu-user-name {
    display: block;
    font-weight: 600;
    font-size: 14px;
    color: var(--c-dark);
}

.mobile-menu-user-link {
    font-size: 12px;
    color: var(--c-orange);
    text-decoration: none;
}

/* Navigation */
.mobile-nav {
    flex: 1;
    padding: 8px 0;
}

.mobile-menu-section-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--c-s400);
    padding: 16px 20px 6px;
}

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

.mobile-menu li:last-child a {
    border-bottom: none;
}

.mobile-menu a {
    color: var(--c-dark);
    font-size: 15px;
    font-weight: 500;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid var(--c-s100);
    text-decoration: none;
    transition: background .15s;
}

.mobile-menu a:hover {
    background: var(--c-s50, #f8fafc);
    color: var(--c-orange);
    text-decoration: none;
}

.mobile-menu a i {
    color: var(--c-orange);
    font-size: 20px;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

/* Footer */
.mobile-menu-footer {
    padding: 16px 20px;
    border-top: 1px solid var(--c-s200);
    margin-top: auto;
}

.mobile-menu-footer-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.mobile-menu-phone {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--c-dark);
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
}

.mobile-menu-phone i {
    color: var(--c-orange);
    font-size: 18px;
}

.mobile-menu-phone:hover {
    color: var(--c-orange);
    text-decoration: none;
}

.mobile-menu-social {
    display: flex;
    gap: 12px;
}

.mobile-menu-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--c-s100);
    color: var(--c-s600);
    font-size: 16px;
    transition: background .2s, color .2s;
    text-decoration: none;
}

.mobile-menu-social a:hover {
    background: var(--c-orange);
    color: var(--c-white);
}

.mobile-menu-logout {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--c-s500);
    font-size: 13px;
    text-decoration: none;
}

.mobile-menu-logout:hover {
    color: var(--c-orange);
    text-decoration: none;
}

/* ===== MEGATRAFFIC TOAST ===== */
.np-mt-toast {
    position: fixed;
    bottom: 0;
    left: 20px;
    z-index: 9000;
    width: 320px;
    max-width: calc(100vw - 40px);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .15), 0 2px 8px rgba(0, 0, 0, .08);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .4s ease, transform .4s ease;
    display: none;
    overflow: hidden;
}

.np-mt-toast.show {
    bottom: 20px;
    opacity: 1;
    transform: translateY(0);
}

.np-mt-close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    color: #999;
    font-size: 14px;
    transition: background .2s, color .2s;
    z-index: 1;
}

.np-mt-close:hover {
    background: #f0f0f0;
    color: #333;
}

.np-mt-inner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
}

.np-mt-inner:hover {
    text-decoration: none;
    color: inherit;
}

.np-mt-image {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.np-mt-image img,
.np-mt-image .np-mt-img {
    max-width: 64px;
    max-height: 64px;
    object-fit: contain;
}

.np-mt-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.np-mt-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #22c55e;
}

.np-mt-name {
    font-size: 13px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.np-mt-price {
    font-size: 14px;
    font-weight: 700;
    color: #d77104;
}

.np-mt-price .PricesalesPrice {
    font-size: 14px;
    font-weight: 700;
}

.np-mt-price .vm-display {
    display: inline;
}

@media (max-width: 480px) {
    .np-mt-toast {
        left: 10px;
        width: calc(100vw - 20px);
        border-radius: 10px;
    }
}

/* ===== PAGE HEADER (dark banner — search, cart, blog, etc.) ===== */
.np-page-header {
    background: var(--c-dark);
    padding: 40px 0;
    text-align: center;
}

.np-page-header h1 {
    color: var(--c-white);
    font-size: 24px;
    font-weight: 700;
    margin: 0;
}

.np-page-header h1 i {
    color: var(--c-orange);
    margin-right: 8px;
}

.np-page-header h1 span, .np-page-header .np-page-header-sub span {
    color: var(--c-orange);
}

.np-page-header-sub {
    display: block;
    font-size: 14px;
    color: rgba(255, 255, 255, .6);
    margin-top: 6px;
}

/* Search header — alias */
.np-search-header {
    background: var(--c-dark);
    padding: 40px 0;
    text-align: center;
}

.np-search-title {
    color: var(--c-white);
    font-size: 24px;
    font-weight: 700;
    margin: 0;
}

.np-search-title i {
    color: var(--c-orange);
    margin-right: 8px;
}

.np-search-title span {
    color: var(--c-orange);
}

/* ===== TOOLBOX (sort/filter bar) ===== */
.toolbox {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--c-s200);
}

.toolbox .resultspneu {
    width: 100%;
    font-size: 13px;
    color: var(--c-s500);
    margin-bottom: 8px;
}

.toolbox-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.toolbox-right {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.toolbox label {
    font-size: 13px;
    color: var(--c-s600);
    margin: 0;
    white-space: nowrap;
}

.toolbox select {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 13px;
    padding: 6px 10px;
    background: var(--c-white);
    color: var(--c-s700);
}

.toolbox .toolbox-sort {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ===== BACK TO SEARCH LINK ===== */
a.product-details {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--c-orange);
    text-decoration: none;
    margin-bottom: 16px;
}

a.product-details:hover {
    color: var(--c-orange-h);
}

/* icon-angle replacements (fishing → Line Awesome) */
.icon-angle-left, .icon-angle-right {
    font-size: 0;
    display: inline-block;
}

.icon-angle-left::before {
    content: '\f104';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 16px;
}

.icon-angle-right::before {
    content: '\f105';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 16px;
}

/* ===== PRODUCT DETAIL PARAMETERS TABLE ===== */
/* Product specs — grid layout */
#product-desc-tab h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 20px;
}

#product-desc-tab .details-filter-row.product-fields {
    display: none;
}

.np-specs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
    gap: 1px;
    background: var(--c-s100);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    overflow: hidden;
    margin-bottom: 24px;
    max-width: 100%;
    box-sizing: border-box;
}

.np-spec-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: var(--c-white);
}

.np-spec-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--r);
    background: var(--c-s50, #f8fafc);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 16px;
    color: var(--c-orange);
}

.np-spec-text {
    flex: 1;
    min-width: 0;
}

.np-spec-label {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: var(--c-s500);
    text-transform: uppercase;
    letter-spacing: .3px;
    line-height: 1.3;
}

.np-spec-value {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--c-dark);
    line-height: 1.3;
    word-break: break-all;
    overflow-wrap: break-word;
}

/* Fallback: unstyled product-fields (if JS doesn't run) */
.details-filter-row.product-fields {
    display: flex;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-s100);
}

.details-filter-row.product-fields:last-of-type {
    border-bottom: none;
}

.details-filter-row.product-fields label {
    flex: 0 0 180px;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s600);
    margin: 0;
}

.details-filter-row.product-fields .select-custom {
    flex: 1;
}

.details-filter-row.product-fields .select-custom::after {
    display: none;
}

.details-filter-row.product-fields .cf4all_customvalues_wrapper {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-dark);
}

.details-filter-row.product-fields .cf4all_option {
    display: inline-block;
}

@media (max-width: 480px) {
    .np-specs-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .details-filter-row.product-fields label {
        flex: 0 0 120px;
        font-size: 13px;
    }
}

/* ===== BREADCRUMBS ===== */
.breadcrumb-nav .row {
    display: flex !important;
    flex-wrap: wrap;
    grid-template-columns: none !important;
    gap: 0 !important;
}

/* Hide share/social buttons */
.social-label, .product-details-footer .social-icons, .blog .social-icons, .entry .social-icons {
    display: none !important;
}

ol.breadcrumb {
    background: none !important;
    padding: 10px 0;
    font-size: 13px;
    flex-wrap: wrap;
    list-style: none;
    margin: 0 !important;
    padding-left: 0;
}

.breadcrumb a {
    color: var(--c-orange);
    text-decoration: none;
}

.breadcrumb a:hover {
    color: var(--c-orange-h);
    text-decoration: underline;
}

.breadcrumb .breadcrumb-item {
    color: var(--c-s500);
}

.breadcrumb .breadcrumb-item.active {
    color: var(--c-s500);
}

.breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: var(--c-s400);
}

.breadcrumb {
    background: none !important;
    color: var(--c-orange);
    justify-content: center;
}

.view-productdetails .breadcrumb {
    justify-content: start;
}

.view-productdetails .tab-content {
    margin-top: 30px;
}

/* Breadcrumbs inside dark header */
.np-page-header .np-header-breadcrumb {
    margin-top: 16px;
}

.np-page-header .np-header-breadcrumb ol.breadcrumb {
    padding: 0;
    font-size: 12px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.np-page-header .np-header-breadcrumb .breadcrumb a {
    color: rgba(255, 255, 255, .6);
}

.np-page-header .np-header-breadcrumb .breadcrumb a:hover {
    color: var(--c-orange);
}

.np-page-header .np-header-breadcrumb .breadcrumb-item {
    color: rgba(255, 255, 255, .4);
}

.np-page-header .np-header-breadcrumb .breadcrumb-item.active {
    color: rgba(255, 255, 255, .4);
}

.np-page-header .np-header-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .3);
}

.breadcrumb a.product-details {
    color: var(--c-orange);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
}

.breadcrumb a.product-details:hover {
    color: var(--c-orange-h);
}

/* ===== CART ===== */
.np-cart {
    border: none;
    padding: 0;
    margin: 0;
}

/* Cart item row */
.np-cart-item {
    display: grid;
    grid-template-columns: 80px 1fr auto auto auto auto;
    gap: 12px;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--c-s200);
}

.np-cart-item:last-of-type {
    border-bottom: none;
}

.np-cart-image {
    width: 80px;
}

.np-cart-image img {
    width: 100%;
    height: auto;
    border-radius: var(--r);
}

.np-cart-info h4 {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 4px;
}

.np-cart-info h4 a {
    color: var(--c-dark);
    text-decoration: none;
}

.np-cart-info h4 a:hover {
    color: var(--c-orange);
}

.np-cart-sku {
    font-size: 12px;
    color: var(--c-s500);
}

.np-cart-price {
    font-size: 14px;
    color: var(--c-s600);
    white-space: nowrap;
    text-align: right;
}

.np-cart-price .line-through {
    text-decoration: line-through;
    color: var(--c-s400);
    font-size: 12px;
    display: block;
}

.np-cart-quantity {
    width: 60px;
}

.np-cart-quantity .quantity-input {
    width: 100%;
    height: 36px;
    text-align: center;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    padding: 0;
    outline: none;
}

.np-cart-quantity .quantity-input:focus {
    border-color: var(--c-orange);
}

.np-cart-total {
    font-size: 16px;
    font-weight: 700;
    color: var(--c-dark);
    white-space: nowrap;
    text-align: right;
    min-width: 100px;
}

.np-cart-total .line-through {
    text-decoration: line-through;
    color: var(--c-s400);
    font-size: 12px;
    font-weight: 400;
    display: block;
}

.np-cart-actions {
    display: flex;
    gap: 4px;
}

.np-cart-btn-update, .np-cart-btn-delete {
    width: 34px;
    height: 34px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    background: var(--c-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: var(--c-s500);
    transition: all var(--tr);
}

.np-cart-btn-update:hover {
    border-color: var(--c-orange);
    color: var(--c-orange);
}

.np-cart-btn-delete:hover {
    border-color: var(--c-red);
    color: var(--c-red);
}

/* Cart summary */
.np-cart-summary {
    border-top: 2px solid var(--c-s200);
    margin-top: 16px;
    padding-top: 16px;
    max-width: 400px;
    margin-left: auto;
}

.np-cart-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 6px 0;
    font-size: 14px;
    color: var(--c-s600);
}

.np-cart-summary-sub {
    font-size: 13px;
    color: var(--c-s500);
}

.np-cart-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 12px 0 0;
    margin-top: 8px;
    border-top: 2px solid var(--c-dark);
    font-size: 18px;
    color: var(--c-dark);
}

.np-cart-summary-total strong {
    font-size: 22px;
}

/* Cart responsive */
@media (max-width: 767px) {
    .np-cart-item {
        grid-template-columns: 60px 1fr;
        gap: 8px;
    }

    .np-cart-image {
        width: 60px;
    }

    .np-cart-price, .np-cart-quantity, .np-cart-total, .np-cart-actions {
        grid-column: 2;
    }

    .np-cart-price {
        text-align: left;
    }

    .np-cart-total {
        text-align: left;
    }

    .np-cart-summary {
        max-width: 100%;
    }
}

/* ===== OPC CART (OnePage Checkout) ===== */

/* Cart column headers */
.np-opc-header {
    display: grid;
    grid-template-columns: 80px 1fr 100px 120px 36px;
    gap: 16px;
    padding: 0 0 10px;
    border-bottom: 2px solid var(--c-s200);
}

.np-opc-header span {
    font-size: 12px;
    font-weight: 600;
    color: var(--c-s500);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.np-opc-header span:nth-child(4) {
    text-align: right;
}

/* Cart items */
.np-opc-item {
    display: grid;
    grid-template-columns: 80px 1fr 100px 120px 36px;
    gap: 16px;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid var(--c-s200);
}

.np-opc-item:last-child {
    border-bottom: none;
}

.np-opc-image {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    position: relative;
    border-radius: var(--r);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.np-opc-image div {
    position: static !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
}

.np-opc-image img {
    max-width: 80px;
    max-height: 80px;
    object-fit: contain;
    position: relative;
    z-index: 1;
}

.np-opc-info h4 {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 2px;
    line-height: 1.4;
}

.np-opc-info h4 a, .np-opc-info .opc_product_name {
    color: var(--c-dark);
    text-decoration: none;
}

.np-opc-info h4 a:hover {
    color: var(--c-orange);
}

.np-opc-attrs {
    font-size: 13px;
    color: var(--c-s500);
    margin-top: 4px;
}

.np-opc-qty {
    position: relative;
}

.np-opc-qty input {
    width: 100%;
    height: 40px;
    text-align: center;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 15px;
    font-weight: 600;
    padding: 0 20px;
    outline: none;
    background: var(--c-white);
    -moz-appearance: textfield;
}

.np-opc-qty input::-webkit-inner-spin-button, .np-opc-qty input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.np-opc-qty input:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.np-opc-qty .np-qty-minus, .np-opc-qty .np-qty-plus {
    position: absolute;
    top: 1px;
    width: 20px;
    height: 38px;
    border: none;
    background: var(--c-white);
    cursor: pointer;
    font-size: 16px;
    color: var(--c-dark);
    display: flex;
    align-items: center;
    justify-content: center;
}

.np-opc-qty .np-qty-minus {
    left: 1px;
    border-radius: var(--r) 0 0 var(--r);
}

.np-opc-qty .np-qty-plus {
    right: 5px;
    border-radius: 0 var(--r) var(--r) 0;
}

.np-opc-qty .np-qty-minus:hover, .np-opc-qty .np-qty-plus:hover {
    background: var(--c-s100);
}

.np-opc-price {
    font-size: 16px;
    font-weight: 700;
    color: var(--c-dark);
    white-space: nowrap;
    text-align: right;
}

.np-opc-remove .btn-remove, .np-opc-remove .deletebtn {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--c-s200);
    border-radius: 50%;
    color: var(--c-s400);
    text-decoration: none;
    transition: all var(--tr);
    background: none;
}

.np-opc-remove .btn-remove:hover, .np-opc-remove .deletebtn:hover {
    border-color: var(--c-red);
    color: var(--c-red);
    background: rgba(239, 68, 68, .05);
}

.np-opc-remove .icon-close {
    font-size: 0;
}

.np-opc-remove .icon-close::before {
    content: '\f00d';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    font-size: 14px;
}

/* Cart actions bar */
.np-cart-actions-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    border-top: 1px solid var(--c-s200);
    margin-top: 8px;
}

.np-cart-coupon {
    flex: 1;
}

.np-cart-coupon .input-group {
    display: flex;
    max-width: 320px;
}

.np-cart-coupon .coupon_input_ajax,
.np-cart-coupon input[type="text"] {
    flex: 1;
    border: 1px solid var(--c-s300);
    border-radius: var(--r) 0 0 var(--r);
    padding: 10px 14px;
    font-size: 14px;
    outline: none;
    height: 42px;
}

.np-cart-coupon input[type="text"]:focus {
    border-color: var(--c-orange);
}

.np-cart-coupon .input-group-append {
    display: flex;
}

.np-cart-coupon .buttonopc,
.np-cart-coupon .btn {
    border: 1px solid var(--c-orange);
    border-left: none;
    border-radius: 0 var(--r) var(--r) 0;
    background: var(--c-orange);
    color: var(--c-white);
    padding: 0 16px;
    height: 42px;
    cursor: pointer;
    transition: background var(--tr);
    display: flex;
    align-items: center;
}

.np-cart-coupon .buttonopc:hover,
.np-cart-coupon .btn:hover {
    background: var(--c-orange-h);
    border-color: var(--c-orange-h);
}

.np-cart-buttons {
    display: flex;
    gap: 16px;
    align-items: center;
}

.np-cart-continue {
    font-size: 14px;
    color: var(--c-s600);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.np-cart-continue:hover {
    color: var(--c-orange);
    text-decoration: none;
}

.np-cart-update {
    font-size: 14px;
    color: var(--c-orange);
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.np-cart-update:hover {
    color: var(--c-orange-h);
    text-decoration: none;
}

/* Sidebar */
.np-cart-sidebar {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 24px;
    position: sticky;
    top: 24px;
}

.np-cart-sidebar-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 20px;
}

.np-cart-sidebar-title small {
    font-size: 13px;
    color: var(--c-s500);
    font-weight: 400;
}

/* Summary rows */
.np-cart-totals {
    margin-bottom: 20px;
}

.np-cart-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 8px 0;
    font-size: 14px;
    color: var(--c-s600);
    border-bottom: 1px solid var(--c-s100);
}

.np-cart-row:last-child {
    border-bottom: none;
}

.np-cart-row span:last-child {
    font-weight: 600;
    color: var(--c-dark);
}

.np-cart-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 16px 0 0;
    margin-top: 8px;
}

.np-cart-total span {
    font-size: 16px;
    font-weight: 600;
    color: var(--c-dark);
}

.np-cart-total strong {
    font-size: 22px;
    font-weight: 700;
    color: var(--c-dark);
}

/* Checkout button */
.np-cart-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 24px;
    background: #080;
    color: var(--c-white);
    border: none;
    border-radius: var(--r);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--tr);
    margin-top: 16px;
}

.np-cart-checkout:hover {
    background: var(--c-orange-h);
    color: var(--c-white);
    text-decoration: none;
}

.np-cart-secure {
    text-align: center;
    margin-top: 12px;
    font-size: 12px;
    color: var(--c-s400);
}

.np-cart-secure i {
    color: var(--c-green);
    margin-right: 4px;
}

/* Login section */
.np-cart-login {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 24px;
    margin-top: 16px;
}

.np-cart-login-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.np-cart-login-form .form-control {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 10px 14px;
    font-size: 14px;
}

.np-cart-login-form .form-control:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

.np-cart-login-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 4px;
}

.np-cart-login-btn {
    background: var(--c-dark);
    color: var(--c-white);
    border: none;
    border-radius: var(--r);
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--tr);
}

.np-cart-login-btn:hover {
    background: var(--c-orange);
}

.np-cart-forgot {
    font-size: 13px;
    color: var(--c-s500);
    text-decoration: none;
}

.np-cart-forgot:hover {
    color: var(--c-orange);
}

/* OPC cart responsive */
@media (max-width: 991px) {
    .np-opc-item {
        grid-template-columns: 70px 1fr 50px 100px 36px;
        gap: 12px;
    }

    .np-opc-image {
        width: 70px;
        height: 70px;
    }
}

@media (max-width: 767px) {
    .np-cart-header {
        flex-direction: column;
        gap: 4px;
    }

    .np-opc-item {
        grid-template-columns: 60px 1fr;
        gap: 10px;
        padding: 14px 0;
    }

    .np-opc-image {
        width: 60px;
        height: 60px;
    }

    .np-opc-qty, .np-opc-price, .np-opc-remove {
        grid-column: 2;
    }

    .np-opc-price {
        text-align: left;
    }

    .np-opc-qty input {
        width: 60px;
    }

    .np-cart-actions-bar {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .np-cart-sidebar {
        position: static;
    }
}

/* ===== OPC CHECKOUT ===== */

/* Checkout layout — full width steps */
.np-checkout-full {
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;
}

.np-checkout-step {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 24px 32px;
    margin-bottom: 20px;
}

.np-checkout-products {
    margin-bottom: 8px;
}

/* Shipping + Payment side by side */
.np-checkout-shipping-payment {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.np-checkout-half {
}

/* Confirm section */
.np-checkout-confirm {
    background: var(--c-s50, #f8fafc);
}

.np-checkout-totals-wrap {
    max-width: 400px;
    margin-left: auto;
}

.np-checkout-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media (max-width: 767px) {
    .np-checkout-full {
        max-width: 100%;
    }

    .np-checkout-step {
        padding: 16px;
    }

    .np-checkout-shipping-payment {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* Checkout titles */
.checkout-title, .checkout h2 {
    font-size: 20px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--c-s200);
}

/* Form fields — override OPC */
#vmMainPageOPC #full_checkout .list_user_fields input,
#vmMainPageOPC #full_checkout .list_user_fields select,
#vmMainPageOPC #full_checkout textarea#customer_note_field,
.checkout input[type="text"], .checkout input[type="email"],
.checkout input[type="tel"], .checkout input[type="password"],
.checkout .inputbox, .checkout select, .checkout textarea {
    height: 44px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 400;
    border: 1px solid var(--c-s300) !important;
    border-radius: var(--r) !important;
    padding: 10px 14px !important;
    margin-bottom: 0 !important;
    transition: all .3s;
    box-shadow: none !important;
    display: block;
    width: 100% !important;
    outline: none;
    background: var(--c-white) !important;
    box-sizing: border-box !important;
}

#vmMainPageOPC #full_checkout .list_user_fields input[type="checkbox"],
#vmMainPageOPC #full_checkout .list_user_fields input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    display: inline-block;
    padding: 0 !important;
}

#vmMainPageOPC #full_checkout textarea#customer_note_field {
    height: auto;
    min-height: 80px;
    resize: vertical;
}

.checkout input:focus, .checkout select:focus, .checkout textarea:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.checkout textarea {
    min-height: 80px;
    resize: vertical;
    height: auto;
}

.checkout label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s600);
    margin-bottom: 4px;
    display: block;
}

/* Two-column form fields — must use #vmMainPageOPC to beat OPC specificity */
#vmMainPageOPC #full_checkout .list_user_fields {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 16px;
}

#vmMainPageOPC #full_checkout .list_user_fields .formField {
    margin-bottom: 12px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    float: none !important;
    clear: none !important;
    padding: 0 !important;
}

#vmMainPageOPC #full_checkout .list_user_fields .formField input[type="text"],
#vmMainPageOPC #full_checkout .list_user_fields .formField input[type="email"],
#vmMainPageOPC #full_checkout .list_user_fields .formField input[type="tel"],
#vmMainPageOPC #full_checkout .list_user_fields .formField input[type="password"],
#vmMainPageOPC #full_checkout .list_user_fields .formField .inputbox,
#vmMainPageOPC #full_checkout .list_user_fields .formField select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

#vmMainPageOPC #full_checkout .list_user_fields .two_col_field_left,
#vmMainPageOPC #full_checkout .list_user_fields .two_col_field_right {
    width: calc(50% - 8px) !important;
    float: none !important;
}

#vmMainPageOPC #full_checkout .list_user_fields .two_col_field_left_7 {
    width: calc(58% - 8px) !important;
    float: none !important;
}

#vmMainPageOPC #full_checkout .list_user_fields .two_col_field_right_3 {
    width: calc(42% - 8px) !important;
    float: none !important;
}

#vmMainPageOPC #full_checkout .list_user_fields #address_2_input,
#vmMainPageOPC #full_checkout .list_user_fields #city_input,
#vmMainPageOPC #full_checkout .list_user_fields #ico_input,
#vmMainPageOPC #full_checkout .list_user_fields #shipto_address_2_input,
#vmMainPageOPC #full_checkout .list_user_fields #shipto_city_input {
    width: calc(50% - 8px) !important;
    float: none !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

#vmMainPageOPC #full_checkout .list_user_fields #dic_input,
#vmMainPageOPC #full_checkout .list_user_fields #zip_input,
#vmMainPageOPC #full_checkout .list_user_fields #phone_1_input,
#vmMainPageOPC #full_checkout .list_user_fields #shipto_zip_input,
#vmMainPageOPC #full_checkout .list_user_fields #shipto_phone_1_input {
    width: calc(50% - 8px) !important;
    float: none !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Nákup na firmu — show label from title attr via CSS */
/* Nákup na firmu — wrapped in .np-business-card by JS */
.np-business-card {
    background: var(--c-s50, #f8fafc);
    width: 100%;
    border-radius: var(--r-lg);
    padding: 16px 20px;
    margin-bottom: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 0 16px;
}

#vmMainPageOPC #nakupnafirmu_div {
    display: none;
}

#vmMainPageOPC .np-business-card #nakupnafirmu_input {
    width: 100% !important;
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 0 !important;
    background: none !important;
    float: none !important;
    margin-bottom: 12px !important;
}

#vmMainPageOPC .np-business-card #nakupnafirmu_input label {
    font-size: 14px;
    font-weight: 500;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0;
}

#vmMainPageOPC #nakupnafirmu_field {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--c-orange);
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    position: static !important;
    opacity: 1 !important;
}

#vmMainPageOPC .np-business-card #company_input {
    width: 100% !important;
}

#vmMainPageOPC .np-business-card #ico_input {
    width: calc(58% - 8px) !important;
}

#vmMainPageOPC .np-business-card #dic_input {
    width: calc(42% - 8px) !important;
}

#vmMainPageOPC .np-business-card .formField {
    background: none !important;
    padding: 0 !important;
    margin-bottom: 8px !important;
    border-radius: 0;
    float: none !important;
}

/* Country select */
#vmMainPageOPC #virtuemart_country_id_div {
    display: none;
}

#vmMainPageOPC .country_wrap select {
    max-width: 100% !important;
    width: 100% !important;
}

/* Registration checkbox */
/* Registration section wrapper — gray bg card */
#vmMainPageOPC #registertab > .list_user_fields {
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    padding: 16px 20px;
    margin-bottom: 20px;
}

#vmMainPageOPC .registrationSection {
    width: 100% !important;
    margin-bottom: 12px;
    padding: 0 !important;
    border-radius: 0;
    float: none !important;
    background: none;
}

#vmMainPageOPC .registrationSection.custom-control {
    position: static !important;
    display: flex !important;
    align-items: center;
    gap: 8px;
    min-height: 0 !important;
}

#vmMainPageOPC .registrationSection .custom-control-input,
#vmMainPageOPC #register_account {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 1 !important;
    pointer-events: auto !important;
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--c-orange);
    pointer-events: auto !important;
}

.checkout .registrationSection .custom-control-label {
    position: static !important;
    padding-left: 0 !important;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0;
}

.checkout .registrationSection .custom-control-label::before,
.checkout .registrationSection .custom-control-label::after {
    display: none !important;
}

/* Country select */
.checkout .country_wrap {
    position: relative;
}

.checkout .country_wrap .country_label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s600);
    margin-bottom: 4px;
}

.checkout .country_wrap select {
    max-width: 100% !important;
}

/* Business fields */
.checkout #nakupnafirmu_input {
    display: flex;
    align-items: center;
    gap: 8px;
}

.checkout #nakupnafirmu_input label {
    margin: 0;
}

.checkout #nakupnafirmu_field {
    width: 18px;
    height: 18px;
    accent-color: var(--c-orange);
}

/* Customer note */
#customer_note_input {
    width: 100%;
    margin-top: 8px;
}

#customer_note_field {
    width: 100%;
    min-height: 80px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 12px 14px;
    font-size: 14px;
    resize: vertical;
}

#customer_note_field:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

/* Shipping address checkbox */
#ship_to_section {
    margin: 20px 0;
    padding: 16px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r);
}

#ship_to_section > label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0;
}

#ship_to_section input[type="checkbox"] {
    accent-color: var(--c-orange);
    width: 18px;
    height: 18px;
}

#ship_to_section #idsa {
    margin-top: 16px;
}

/* ===== CHECKOUT SIDEBAR ===== */
.np-checkout-sidebar {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 24px;
    position: sticky;
    top: 24px;
}

.checkout .summary {
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
    position: static;
}

.checkout .summary-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--c-s200);
}

.checkout .summary-title i {
    color: var(--c-orange);
    margin-right: 6px;
}

/* Checkout product list */
.np-checkout-product {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-s100);
    font-size: 13px;
    align-items: baseline;
}

.np-checkout-product:last-child {
    border-bottom: none;
}

.np-checkout-product-name {
    color: var(--c-dark);
    font-weight: 500;
}

.np-checkout-product-qty {
    color: var(--c-s500);
}

.np-checkout-product-price {
    font-weight: 600;
    color: var(--c-dark);
    white-space: nowrap;
}

.checkout .repeat_basket .table-summary .opc_product_name:hover {
    color: var(--c-orange);
}

/* Shipping & payment cards */
.checkout .accordion-summary {
    margin-top: 16px;
}

.checkout .accordion-summary .summary-title {
    font-size: 15px;
    margin-top: 20px;
}

/* Shipping/payment radio options */
.checkout .opc_ship_wrap,
.checkout .opc_payment_wrap,
.checkout .payment_wrap1 > div,
.checkout .opc_ship_wrap.card-header,
.checkout .opc_payment_wrap.card-header {
    padding: 14px 16px !important;
    border: 1px solid var(--c-s200) !important;
    border-radius: var(--r) !important;
    margin-bottom: 8px !important;
    transition: all var(--tr);
    cursor: pointer;
    background: var(--c-white) !important;
}

.checkout .opc_ship_wrap:hover, .checkout .opc_payment_wrap:hover, .checkout .payment_wrap1 > div:hover {
    border-color: var(--c-orange) !important;
}

.checkout .opc_ship_wrap.selected, .checkout .opc_payment_wrap.selected, .checkout .payment_wrap1 > div.selected {
    border-color: var(--c-orange) !important;
    background: var(--c-orange-bg) !important;
}

#vmMainPageOPC .opc_ship_wrap label,
#vmMainPageOPC .opc_payment_wrap label,
#vmMainPageOPC .payment_wrap1 label {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
}

#vmMainPageOPC .card-header input[type="radio"],
#vmMainPageOPC .opc_ship_wrap input[type="radio"],
#vmMainPageOPC .opc_payment_wrap input[type="radio"] {
    accent-color: var(--c-orange);
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    flex-shrink: 0;
    margin: 2px 0 0 0 !important;
}

#vmMainPageOPC .card-header:not(.opc_ship_wrap):not(.opc_payment_wrap) {
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

#vmMainPageOPC .opc_payment_wrapper.card-header {
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

#vmMainPageOPC .card-header label {
    max-width: 90% !important;
    margin-left: 0 !important;
}

/* Shipping method details */
.checkout .vmshipment_name, .checkout .vmpayment_name {
    font-weight: 600;
}

.checkout .vmshipment_description, .checkout .vmpayment_description {
    font-size: 12px;
    color: var(--c-s500);
    display: block;
    margin-top: 4px;
    padding-left: 26px;
}

.checkout .vmCartShipmentLogo img {
    max-height: 24px;
    margin-right: 8px;
    vertical-align: middle;
}

/* Bottom totals */
.checkout .bottom_totals {
    margin-top: 16px;
    border-top: 1px solid var(--c-s200);
    padding-top: 12px;
}

.checkout .bottom_totals .table-summary {
    width: 100%;
    border: none;
}

.checkout .bottom_totals .table-summary thead {
    display: none;
}

.checkout .bottom_totals .table-summary td {
    padding: 6px 0;
    border: none;
    font-size: 13px;
    color: var(--c-s600);
}

.checkout .bottom_totals .table-summary td:last-child {
    text-align: right;
    font-weight: 600;
    color: var(--c-dark);
}

.checkout .bottom_totals .summary-total td {
    padding-top: 14px;
    border-top: 2px solid var(--c-dark);
    font-size: 18px;
    font-weight: 700;
    color: var(--c-dark);
}

/* TOS checkbox */
#agreed_div {
    margin: 16px 0;
    padding: 16px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r);
    display: flex;
    justify-content: flex-end;
}

#agreed_div label, #agreed_div .bottom_c {
    display: flex !important;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0;
}

#agreed_div input[type="checkbox"] {
    accent-color: var(--c-orange);
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
}

#agreed_div .tos_label_text {
    color: var(--c-orange);
    text-decoration: none;
}

#agreed_div .tos_label_text:hover {
    text-decoration: underline;
}

/* Confirm order button */
#confirmbtn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 24px;
    background: #080;
    color: var(--c-white) !important;
    border: none;
    border-radius: var(--r);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--tr);
    letter-spacing: .3px;
    width: auto;
}

#confirmbtn:hover {
    background: var(--c-orange-h);
}

/* Return to cart link */

.return_to_cart a, .returntocartlink {
    font-size: 14px;
    padding: 16px 24px;
    color: var(--c-dark);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-weight: 500;
    transition: all var(--tr);
}

.return_to_cart a:hover, .returntocartlink:hover {
    border-color: var(--c-orange);
    color: var(--c-orange);
    text-decoration: none;
}

.return_to_cart a i {
    font-size: 16px;
}

/* OPC error messages */
.opc_errors {
    color: var(--c-red);
    font-size: 14px;
    margin-bottom: 12px;
    padding: 12px 16px;
    background: rgba(239, 68, 68, .05);
    border-radius: var(--r);
}

/* Payment info text */
.payment_info {
    font-size: 13px;
    color: var(--c-s500);
}

#onepage_info_above_button br {
    display: none;
}

/* Checkout responsive */
@media (max-width: 991px) {
    .checkout .col-lg-7 {
        padding-right: 15px;
        margin-bottom: 24px;
    }

    .np-checkout-sidebar {
        position: static;
    }
}

@media (max-width: 767px) {
    .checkout .two_col_field_left, .checkout .two_col_field_right,
    .checkout .two_col_field_left_7, .checkout .two_col_field_right_3 {
        width: 100%;
    }
}

/* ===== CONTACT PAGE ===== */
.np-contact-map {
    height: 400px;
    overflow: hidden;
}

.np-contact-map iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Contact cards */
.np-contact-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: -60px auto 48px;
    position: relative;
    z-index: 2;
    max-width: 1000px;
}

.np-contact-card {
    background: var(--c-white);
    border: 1px solid var(--c-s200);
    border-radius: var(--r-lg);
    padding: 32px 24px;
    text-align: center;
    transition: box-shadow var(--tr);
}

.np-contact-card:hover {
    box-shadow: var(--shadow-lg);
}

.np-contact-card-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--c-orange-bg);
    color: var(--c-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin: 0 auto 16px;
}

.np-contact-card h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 8px;
}

.np-contact-card p {
    font-size: 14px;
    color: var(--c-s600);
    margin: 0 0 4px;
}

.np-contact-card a {
    color: var(--c-orange);
    text-decoration: none;
}

.np-contact-card a:hover {
    text-decoration: underline;
}

.np-contact-detail {
    font-weight: 500;
    color: var(--c-dark) !important;
}

.np-contact-small {
    font-size: 12px !important;
    color: var(--c-s400) !important;
}

.np-contact-social a {
    display: inline-flex;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--c-orange);
    color: var(--c-white);
    align-items: center;
    justify-content: center;
    font-size: 18px;
    margin-top: 8px;
    transition: background var(--tr);
}

.np-contact-social a:hover {
    background: var(--c-orange-h);
    text-decoration: none;
}

/* Info section */
.np-contact-info {
    margin-bottom: 48px;
}

.np-contact-info h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 24px;
    text-align: center;
}

.np-contact-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.np-contact-info-item {
    display: flex;
    gap: 16px;
    padding: 20px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
}

.np-contact-info-item i {
    font-size: 24px;
    color: var(--c-orange);
    flex-shrink: 0;
    margin-top: 2px;
}

.np-contact-info-item strong {
    font-size: 15px;
    color: var(--c-dark);
    display: block;
    margin-bottom: 4px;
}

.np-contact-info-item p {
    font-size: 13px;
    color: var(--c-s600);
    margin: 0;
    line-height: 1.6;
}

.np-contact-info-item a {
    color: var(--c-orange);
}

.np-contact-misc {
    font-size: 14px;
    line-height: 1.7;
    color: var(--c-s600);
    padding: 24px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    margin-bottom: 32px;
}

.np-contact-misc a {
    color: var(--c-orange);
}

.np-contact-misc p {
    margin-bottom: 12px;
}

/* Contact form */
.np-contact-form-section {
    max-width: 700px;
    margin: 0 auto 48px;
}

.np-contact-form-section h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 24px;
    text-align: center;
}

.np-contact-form-section .contact-form .control-group {
    margin-bottom: 16px;
}

.np-contact-form-section .contact-form .control-label label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s600);
    margin-bottom: 4px;
}

.np-contact-form-section .contact-form input[type="text"],
.np-contact-form-section .contact-form input[type="email"],
.np-contact-form-section .contact-form textarea,
.np-contact-form-section .contact-form select {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 12px 14px;
    font-size: 14px;
    width: 100%;
    outline: none;
}

.np-contact-form-section .contact-form input:focus,
.np-contact-form-section .contact-form textarea:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.np-contact-form-section .contact-form textarea {
    min-height: 120px;
    resize: vertical;
}

.np-contact-form-section .btn-primary {
    background: var(--c-orange) !important;
    border-color: var(--c-orange) !important;
    padding: 12px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: var(--r);
}

@media (max-width: 767px) {
    .np-contact-cards {
        grid-template-columns: 1fr;
        margin-top: -30px;
    }

    .np-contact-info-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== ALERTS ===== */
.alert {
    border-radius: var(--r);
    border: none;
    padding: 12px 16px;
    font-size: 14px;
}

/* ===== PAGE CONTENT ===== */

/* ===== MODALS (login etc) ===== */
.modal-backdrop.fade.show {
    z-index: 10040 !important;
}

.modal.fade.show, .modal.show {
    z-index: 10050 !important;
}

.modal-content {
    border-radius: var(--r-lg);
    padding: 32px;
}

/* Login modal */
#signin-modal .modal-body {
    padding: 0;
}

#signin-modal .close {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 20px;
    z-index: 1;
    opacity: 0.5;
}

#signin-modal .close:hover {
    opacity: 1;
}

#signin-modal .nav-pills {
    display: flex;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--c-s200);
    padding: 0;
}

#signin-modal .nav-pills .nav-link {
    font-size: 15px;
    font-weight: 600;
    color: var(--c-s500);
    padding: 12px 20px;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    border-radius: 0;
}

#signin-modal .nav-pills .nav-link.active {
    color: var(--c-orange);
    border-bottom-color: var(--c-orange);
    background: none;
}

#signin-modal .form-group {
    margin-bottom: 16px;
}

#signin-modal .input-prepend {
    display: flex;
    align-items: center;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    overflow: hidden;
}

#signin-modal .input-prepend .add-on {
    padding: 10px 12px;
    background: var(--c-s50, #f8fafc);
    border-right: 1px solid var(--c-s300);
    display: flex;
    align-items: center;
}

#signin-modal .input-prepend input {
    border: none;
    padding: 10px 14px;
    font-size: 14px;
    width: 100%;
    outline: none;
}

#signin-modal .input-prepend input:focus {
    box-shadow: none;
}

#signin-modal .input-prepend:focus-within {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

#signin-modal .form-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 8px;
}

#signin-modal .login-button {
    background: var(--c-orange) !important;
    border-color: var(--c-orange) !important;
    color: var(--c-white) !important;
    padding: 10px 24px;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--r);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

#signin-modal .login-button:hover {
    background: var(--c-orange-h) !important;
}

#signin-modal #form-login-remember {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0 !important;
    position: static !important;
    min-height: 0 !important;
}

#signin-modal #form-login-remember .custom-control-input {
    position: static !important;
    opacity: 1 !important;
    width: 16px !important;
    height: 16px !important;
    z-index: 0;
    accent-color: var(--c-orange);
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    pointer-events: auto !important;
}

#signin-modal #form-login-remember .custom-control-label {
    position: static !important;
    padding-left: 0 !important;
    font-size: 13px;
    color: var(--c-s600);
    margin: 0;
    cursor: pointer;
}

#signin-modal #form-login-remember .custom-control-label::before,
#signin-modal #form-login-remember .custom-control-label::after {
    display: none !important;
}

#signin-modal .forgot-link {
    font-size: 13px;
    color: var(--c-orange);
    margin-left: auto;
}

#signin-modal .forgot-link:hover {
    color: var(--c-orange-h);
}

/* Register tab */
#signin-modal #register .form-footer {
    flex-direction: column;
    align-items: center;
    text-align: center;
}

#signin-modal #register p {
    font-size: 14px;
    color: var(--c-s600);
    margin-bottom: 16px;
}

#signin-modal #register .extra {
    display: flex;
    justify-content: center;
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}

#signin-modal #register .extra li {
    text-align: center;
    font-size: 13px;
    color: var(--c-s600);
}

#signin-modal #register .extra li i {
    display: block;
    font-size: 24px;
    color: var(--c-orange);
    margin-bottom: 6px;
}

.form-control {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    padding: 10px 12px;
    font-size: 14px;
    width: 100%;
}

.form-control:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

.custom-control {
    padding-left: 0;
}

/* ===== DEAL / PROMO BANNER ===== */
.deal-container .heading {
    padding-bottom: .5rem;
}

.deal-container .heading .title {
    margin-bottom: 1rem;
}

.deal-container .product {
    border: none;
    margin-bottom: 2rem;
}

.deal-col {
    display: flex;
    align-items: stretch;
}

.deal {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px;
    background-color: var(--c-dark);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: var(--r-lg);
    min-height: 320px;
    position: relative;
    overflow: hidden;
}

.deal::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(40, 47, 66, .85) 0%, rgba(40, 47, 66, .4) 100%);
    z-index: 0;
}

.deal > div {
    position: relative;
    z-index: 1;
}

.deal-top h2 {
    color: var(--c-orange);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 8px;
}

.deal-top h3 {
    color: var(--c-white);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 8px;
}

.deal-top h4 {
    color: rgba(255, 255, 255, .7);
    font-weight: 400;
    font-size: 15px;
    margin: 0;
}

.deal .product-title {
    color: var(--c-white);
    min-height: 0;
    margin-bottom: 0;
}

.deal .product-title a {
    color: var(--c-white);
}

.deal .product-price {
    font-weight: 300;
    font-size: 2rem;
    margin-bottom: .4rem;
    color: var(--c-white);
}

.deal .btn {
    padding: 0 0 .2rem;
}

.deal-content {
    align-self: center;
}

.deal-bottom {
    align-self: flex-end;
}

.page-header {
    padding: 40px;
}

.tab-content > .active {
    display: block;
}

/* Product detail tabs */
.product-details-tab {
    margin-top: 40px;
    background: var(--c-white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.product-details-tab .nav-pills {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--c-s50, #f8fafc);
    box-shadow: inset 0 -2px 0 var(--c-s200);
    overflow-x: auto;
    scrollbar-width: none;
    justify-content: flex-start;
}

.product-details-tab .nav-pills::-webkit-scrollbar {
    display: none;
}

.product-details-tab .nav-pills .nav-item {
    flex-shrink: 0;
}

.product-details-tab .nav-pills .nav-link {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s600);
    text-decoration: none;
    border: none;
    border-radius: 0;
    background: none;
    box-shadow: inset 0 -2px 0 transparent;
    transition: color .2s, box-shadow .2s;
    white-space: nowrap;
}

.product-details-tab .nav-pills .nav-link:hover {
    color: var(--c-dark);
}

.product-details-tab .nav-pills .nav-link.active,
.product-details-tab .nav-pills .show > .nav-link {
    color: var(--c-orange);
    background: none;
    border-radius: 0;
    box-shadow: inset 0 -2px 0 var(--c-orange);
    font-weight: 600;
}

.product-details-tab .tab-content {
    padding: 32px;
}

.product-details-tab .tab-pane h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 20px;
}

/* Tab content typography */
.product-desc-content {
    font-size: 15px;
    line-height: 1.7;
    color: var(--c-s700);
}

.product-desc-content h3,
.product-desc-content h4 {
    color: var(--c-dark);
    margin: 24px 0 12px;
}

/* Reviews inside tab */
.product-details-tab .reviews h3 {
    margin-bottom: 16px;
}

@media (max-width: 767px) {
    .product-details-tab .nav-pills {
        justify-content: stretch;
    }

    .product-details-tab .nav-pills .nav-item {
        flex: 1;
    }

    .product-details-tab .nav-pills .nav-link {
        padding: 12px 8px;
        font-size: 12px;
        justify-content: center;
        text-align: center;
    }

    .product-details-tab .tab-content {
        padding: 20px 16px;
    }
}

.product-desc-content p {
    margin-bottom: 16px;
}

.product-desc-content a {
    color: var(--c-orange);
    text-decoration: none;
}

.product-desc-content a:hover {
    color: var(--c-orange-h);
    text-decoration: underline;
}

.product-desc-content ul {
    padding-left: 0;
    margin-bottom: 16px;
    list-style: none;
}

.product-desc-content li {
    margin-bottom: 8px;
    padding-left: 24px;
    position: relative;
}

.product-desc-content li::before {
    content: '\f00c';
    font-family: 'Line Awesome Free';
    font-weight: 900;
    color: var(--c-orange);
    position: absolute;
    left: 0;
    top: 1px;
    font-size: 14px;
}

/* Shipping/payment method cards */
.product-desc-content .shipment,
.product-desc-content .payment {
    background: var(--c-s50, #f8fafc);
    border: 1px solid var(--c-s200);
    border-radius: var(--r);
    padding: 16px;
    margin-bottom: 16px;
}

.product-desc-content .shipment img,
.product-desc-content .payment img {
    max-height: 32px;
    margin-right: 12px;
    vertical-align: middle;
}

.product-details .product-title {
    font-size: 28px;
    margin-bottom: 15px;
}

.product-price {
    display: flex;
    align-items: center;
    flex-flow: wrap;
    font-weight: 600;
    font-size: 2rem;
    color: #d77104;
    margin-bottom: 1.3rem;
}

.product-details .product-price {
    font-size: 30px;
    color: var(--c-orange);
    margin-bottom: 0;
}

/* ===== PRODUCT DETAIL PAGE ===== */

/* Variants list — compact single row */
.aluwrap {
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    padding: 8px 16px;
    margin-bottom: 16px;
}

.aluwrap .childwrap.row {
    display: grid !important;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 4px 16px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--c-s200);
    margin: 0;
}

.aluwrap .childwrap:last-child {
    border-bottom: none;
}

.aluwrap .childwrap [class*="col-"] {
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
}

/* Left side: name + availability */
.aluwrap .childwrap > .col-md-12 {
    grid-column: 1;
    grid-row: 1;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-dark);
}

.aluwrap .childwrap > .col-md-12 br {
    display: none;
}

.aluwrap .childwrap .availability {
    grid-column: 1;
    grid-row: 2;
    font-size: 13px;
}

/* Right side: price + cart */
.aluwrap .childwrap .product-price {
    grid-column: 2;
    grid-row: 1;
    font-size: 16px;
    font-weight: 700;
    white-space: nowrap;
    text-align: right;
}

.aluwrap .childwrap .product-price .PricesalesPrice {
    font-size: 16px;
}

.aluwrap .childwrap .product-details-action {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
    justify-self: end;
}

.aluwrap .childwrap .details-action-col {
    gap: 6px;
    margin: 0;
}

.aluwrap .childwrap .product-details-quantity input.form-control {
    width: 70px;
    height: 34px;
    padding: 0 22px;
    font-size: 13px;
}

.aluwrap .childwrap .quantity-minus,
.aluwrap .childwrap .quantity-plus {
    width: 22px;
    height: 32px;
    font-size: 14px;
}

.aluwrap .childwrap .btn-cart,
.aluwrap .childwrap .addtocart-button {
    height: 34px;
    padding: 0 14px;
    font-size: 13px;
}

/* Hide filtered variants + show more */
.aluwrap .childwrap.np-hidden-variant {
    display: none !important;
}

.aluwrap .childwrap[class*="hide_cf_"] {
    display: none !important;
}

/* Filter above variants — same style as .np-filter-card */
.sidebar.detail {
    margin-bottom: 16px;
    background: none !important;
}

.sidebar.detail .cf_wrapp_all {
    background: var(--c-white) !important;
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    padding: 24px 32px;
}

.sidebar.detail .container-fluid, .sidebar.detail .alpnu, .sidebar.detail .productdetail_filter {
    background: none !important;
    box-shadow: none;
    border-radius: 0;
    padding: 0 !important;
    max-width: none;
    border: none !important;
    color: var(--c-dark) !important;
}

.sidebar.detail .h2_rim_params {
    font-size: 16px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 16px;
    grid-column: 1 / -1;
    white-space: nowrap;
}

.sidebar.detail .cf_form.row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 0;
}

.sidebar.detail .productdetail_filter_select, .sidebar.detail .cf_flt_wrapper {
    padding: 0;
    margin: 0;
    width: auto;
    max-width: none;
    flex: none;
    float: none;
}

.sidebar.detail h3.widget-title, .sidebar.detail h3.cf_flt_header_text {
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--c-s700) !important;
    margin: 0 0 6px !important;
    display: block !important;
    border: none !important;
    padding: 0 !important;
    line-height: 1.4 !important;
}

.sidebar.detail select.cl_flt, .sidebar.detail select.select_productdetail_filter {
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    padding: 10px 12px;
    width: 100%;
    height: 42px;
    background: var(--c-white);
    color: var(--c-s700);
    appearance: menulist;
    outline: none;
}

.sidebar.detail select:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
}

.sidebar.detail .reset_filters {
    color: var(--c-orange);
    font-size: 13px;
}

.sidebar.detail .col-md-12 {
    grid-column: 1 / -1;
    padding: 0;
    margin: 0;
}

@media (max-width: 767px) {
    .sidebar.detail .cf_form.row {
        grid-template-columns: repeat(2, 1fr);
    }
}

.product-gallery {
    text-align: center;
    position: relative;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    padding: 24px;
}

.product-gallery img {
    max-width: 100%;
    height: auto;
}

.product-gallery small {
    display: block;
    font-size: 11px;
    color: var(--c-s400);
    margin-top: 8px;
}

.product-gallery .labels-detail {
    position: absolute;
    top: 12px;
    left: 12px;
    right: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    z-index: 2;
}

.labels-detail .product-label.label {
    position: static;
    display: inline-flex;
    align-items: center;
    width: fit-content;
}

.labels-detail .product-label.label-sezona {
    margin-left: auto;
}

.product-details.topp {
    padding: 0;
}

.product-details.topp .product-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--c-dark);
    margin: 0 0 16px;
}

.product-details.topp .graybox {
    margin-bottom: 16px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    padding: 20px;
    border: 1px solid var(--c-s200);
}

.product-details.topp .iconspneu {
    font-size: 14px;
    color: var(--c-s600);
    margin-bottom: 12px;
}

.product-details.topp .iconspneu .la {
    color: var(--c-s500);
}

.product-details.topp .availability {
    font-size: 14px;
    margin-bottom: 4px;
}

.product-details.topp .product-content {
    font-size: 14px;
    color: var(--c-s600);
    line-height: 1.6;
    margin-top: 12px;
}

/* Product detail action row */
.product-details-action {
    margin-top: 16px;
}

.product-details-action .details-action-col {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.product-details-action .product-details-quantity {
    position: relative;
    flex-shrink: 0;
}

.product-details-action input.form-control[name="quantity[]"] {
    width: 120px;
    height: 44px;
    text-align: center;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 15px;
    font-weight: 600;
    padding: 0 30px;
    background: var(--c-white);
    color: var(--c-dark);
    box-shadow: none;
}

.product-details-action .quantity-minus {
    position: absolute;
    left: 1px;
    top: 1px;
    width: 30px;
    height: 42px;
    border: none;
    background: var(--c-white);
    cursor: pointer;
    font-size: 18px;
    color: var(--c-dark);
    border-radius: var(--r) 0 0 var(--r);
}

.product-details-action .quantity-plus {
    position: absolute;
    right: 1px;
    top: 1px;
    width: 30px;
    height: 42px;
    border: none;
    background: var(--c-white);
    cursor: pointer;
    font-size: 18px;
    color: var(--c-dark);
    border-radius: 0 var(--r) var(--r) 0;
}

.product-details-action .quantity-minus:hover,
.product-details-action .quantity-plus:hover {
    background: var(--c-s100);
}

.product-details-action .btn-cart, .product-details-action .addtocart-button {
    flex: 1;
    height: 44px;
    max-width: 250px;
}

.details-action-wrapper {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--c-s200);
}

.details-action-wrapper .btn-product, .details-action-wrapper .ask-a-question {
    white-space: nowrap;
}

.details-action-wrapper #confnp {
    font-size: 13px;
    color: var(--c-s500);
}

.details-action-wrapper .manfc {
    font-weight: 600;
    color: var(--c-orange) !important;
}

/* Product detail mobile */
@media (max-width: 767px) {
    .product-gallery {
        padding: 16px;
        margin-bottom: 20px;
    }

    .product-details.topp .product-title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .product-details.topp .graybox {
        padding: 16px;
    }

    .product-details.topp .product-price .PricesalesPrice {
        font-size: 24px;
    }

    .product-details-action .details-action-col {
        flex-wrap: wrap;
    }

    .product-details-action .product-details-quantity {
        width: 100%;
    }

    .product-details-action input.form-control[name="quantity[]"] {
        width: 100%;
    }

    .product-details-action .btn-cart, .product-details-action .addtocart-button {
        width: 100%;
        max-width: none;
        height: 48px;
        font-size: 16px;
    }

    .details-action-wrapper {
        justify-content: center;
        font-size: 13px;
    }

    .details-action-wrapper .btn-product + .btn-product {
        padding-left: 10px;
        border-left: 1px solid var(--c-s200);
    }
}

/* Empty reviews card */
.np-empty-reviews {
    text-align: center;
    padding: 48px 24px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r-lg);
    border: 1px dashed var(--c-s300);
    margin-top: 20px;
}

.np-empty-reviews-icon {
    font-size: 48px;
    color: var(--c-s300);
    margin-bottom: 16px;
}

.np-empty-reviews h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 8px;
}

.np-empty-reviews p {
    font-size: 14px;
    color: var(--c-s500);
    margin: 0 0 24px;
}

.btn-product.btn-cart {
    background-color: #080;
    border: 1px solid #080;
    line-height: 1;
}

.btn-product.btn-cart:hover {
    background-color: var(--c-orange);
    border: 1px solid var(--c-orange);
    line-height: 1;
}


.details-action-wrapper {
    display: flex;
    align-items: center;
    margin-top: 2rem
}

.details-action-wrapper .btn-product {
    padding-top: 0;
    background: none;
    color: var(--c-orange);
    padding-bottom: 0;
    white-space: nowrap;
    align-self: stretch
}

.details-action-wrapper .btn-product:before {
    margin-right: 10px;
}

.details-action-wrapper .btn-product.btn-wishlist:before {
    margin-top: 2px;
}

.details-action-wrapper .btn-product span {
    font-size: 14px;
}

.details-action-wrapper .btn-product + .btn-product {
    padding-left: 13px;
    border-left: .1rem solid #e5e5e5;
}

.product-details-footer {
    color: #777;
    display: flex;
    font-weight: 400;
    align-items: center;
    flex-wrap: wrap;
    padding-top: 1.7rem;
    border-top: .1rem solid #ebebeb;
    padding-bottom: 1.7rem
}

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    background: none;
    color: var(--c-orange);
    border-bottom: 1px solid var(--c-orange);
    border-radius: 0;
}

.nav-pills .nav-link {
    color: var(--c-dark);
}

.category_description {
    margin-top: 30px;
}

#vmMainPageOPC .updatebtn {
    max-width: 96px;
}

#vmMainPageOPC #full_checkout .custom-control-input {
    margin-bottom: 0 !important;
}

#vmMainPageOPC .btn-outline-primary-2 {
    color: #fff;
    background-color: var(--c-orange);
    border-color: var(--c-orange);
    box-shadow: none;
}

.top-menu ul {
    display: flex;
    align-items: center;
}

/* ===== ACCOUNT & REGISTRATION PAGE ===== */

.np-account-page {
    padding: 40px 0 60px;
}

/* Only reset OPC padding when registration page (.np-account-page) is inside */
#full_checkout:has(> .np-account-page) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* --- Custom Tabs --- */
.np-account-tabs {
    background: var(--c-white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.np-tabs-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    background: var(--c-s50, #f8fafc);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    box-shadow: inset 0 -2px 0 var(--c-s200);
}

.np-tabs-nav::-webkit-scrollbar {
    display: none;
}

.np-tabs-nav li {
    flex-shrink: 0;
}

.np-tab-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-s600);
    text-decoration: none;
    box-shadow: inset 0 -2px 0 transparent;
    transition: color .2s, box-shadow .2s;
    white-space: nowrap;
}

.np-tab-link i {
    font-size: 18px;
}

.np-tab-link:hover {
    color: var(--c-dark);
    text-decoration: none;
}

.np-tab-link.active {
    color: var(--c-orange);
    box-shadow: inset 0 -2px 0 var(--c-orange);
    font-weight: 600;
}

.np-tab-panel {
    display: none;
    padding: 32px;
}

.np-tab-panel.active {
    display: block;
}

/* --- Registration Card --- */
.np-register-card {
    background: var(--c-white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
    max-width: 720px;
    margin: 0 auto;
}

.np-register-header {
    background: var(--c-s50, #f8fafc);
    border-bottom: 1px solid var(--c-s200);
    padding: 24px 32px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.np-register-header i {
    font-size: 28px;
    color: var(--c-orange);
}

.np-register-header h2 {
    font-size: 20px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0;
}

.np-register-body {
    padding: 32px;
}

/* --- Form Sections --- */
.np-form-section {
    margin-bottom: 32px;
}

.np-form-section:last-child {
    margin-bottom: 0;
}

.np-form-section-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--c-dark);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--c-s200);
    display: flex;
    align-items: center;
    gap: 8px;
}

.np-form-section-title i {
    color: var(--c-orange);
    font-size: 20px;
}

.np-form-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 24px;
}

.np-form-group {
    display: flex;
    flex-direction: column;
}

.np-form-group-full {
    grid-column: 1 / -1;
}

.np-form-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s700);
    margin-bottom: 6px;
}

.np-required {
    color: #e53e3e;
    margin-left: 2px;
}

.np-form-input input[type="text"],
.np-form-input input[type="email"],
.np-form-input input[type="password"],
.np-form-input input[type="tel"],
.np-form-input input[type="number"],
.np-form-input select,
.np-form-input textarea,
.np-form-input .inputbox {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    color: var(--c-dark);
    background: var(--c-white);
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}

.np-form-input input:focus,
.np-form-input select:focus,
.np-form-input textarea:focus,
.np-form-input .inputbox:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

.np-form-input select {
    appearance: menulist;
    height: 42px;
}

/* --- Action Buttons --- */
.np-account-actions {
    display: flex;
    gap: 12px;
    margin-top: 32px;
    justify-content: flex-end;
}

.np-btn-save {
    background: var(--c-orange) !important;
    border-color: var(--c-orange) !important;
    color: var(--c-white) !important;
    padding: 12px 32px;
    font-size: 15px;
    font-weight: 600;
    border-radius: var(--r);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background .2s;
}

.np-btn-save:hover {
    background: var(--c-orange-h) !important;
}

.np-btn-cancel {
    background: var(--c-white) !important;
    border: 1px solid var(--c-s300) !important;
    color: var(--c-s600) !important;
    padding: 12px 24px;
    font-size: 14px;
    border-radius: var(--r);
    transition: border-color .2s;
}

.np-btn-cancel:hover {
    border-color: var(--c-s500) !important;
    color: var(--c-dark) !important;
}

/* --- Order List --- */
.np-orderlist {
    min-height: 200px;
}

.np-empty-state {
    text-align: center;
    padding: 60px 24px;
    color: var(--c-s400);
}

.np-empty-state i {
    font-size: 48px;
    display: block;
    margin-bottom: 12px;
}

.np-empty-state p {
    font-size: 15px;
    margin: 0;
}

.np-orders-table {
    width: 100%;
}

.np-orders-header {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.2fr 1fr auto;
    gap: 16px;
    padding: 12px 16px;
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r);
    font-size: 12px;
    font-weight: 600;
    color: var(--c-s500);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.np-orders-row {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.2fr 1fr auto;
    gap: 16px;
    padding: 16px;
    border-bottom: 1px solid var(--c-s100);
    align-items: center;
    font-size: 14px;
}

.np-orders-row:last-child {
    border-bottom: none;
}

.np-orders-row:hover {
    background: var(--c-s50, #f8fafc);
}

.np-order-status {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    background: var(--c-s100);
    color: var(--c-s700);
}

.np-btn-detail {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    font-size: 13px;
    color: var(--c-orange);
    border: 1px solid var(--c-orange);
    border-radius: var(--r);
    text-decoration: none;
    transition: background .2s, color .2s;
}

.np-btn-detail:hover {
    background: var(--c-orange);
    color: var(--c-white);
    text-decoration: none;
}

/* Mobile order cards */
.np-order-card {
    display: block;
    padding: 16px;
    border: 1px solid var(--c-s200);
    border-radius: var(--r);
    margin-bottom: 12px;
    text-decoration: none;
    color: var(--c-dark);
    transition: box-shadow .2s;
}

.np-order-card:hover {
    box-shadow: var(--shadow);
    text-decoration: none;
    color: var(--c-dark);
}

.np-order-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.np-order-card-number {
    font-weight: 600;
    font-size: 15px;
}

.np-order-card-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.np-order-card-date {
    font-size: 13px;
    color: var(--c-s500);
}

.np-order-card-total {
    font-weight: 600;
    color: var(--c-orange);
}

/* --- Ship-to section --- */
.np-shipto-section .np-form-fields {
    display: block;
}

/* --- Override old table styles inside account forms --- */
.np-account-form table.adminForm,
.np-account-form table.user-details {
    display: none;
}

.np-account-form fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.np-account-form fieldset legend {
    display: none;
}

/* Hide old VM panels CSS interference */
.np-account-form #ui-tabs {
    display: none;
}

/* Captcha inside register card */
.np-register-body #dynamic_recaptcha_1,
.np-register-body .cf-turnstile,
.np-register-body [id*="captcha"],
.np-account-form .captcha {
    margin-top: 20px;
}

/* Joomla form control-group styling inside cards */
.np-register-body .control-group {
    margin-bottom: 16px;
}

.np-register-body .control-label label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s700);
    margin-bottom: 6px;
    display: block;
}

.np-register-body .controls input[type="text"],
.np-register-body .controls input[type="email"],
.np-register-body .controls input[type="password"],
.np-register-body .controls input[type="tel"],
.np-register-body .controls select,
.np-register-body .controls textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    color: var(--c-dark);
    background: var(--c-white);
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
}

.np-register-body .controls input:focus,
.np-register-body .controls select:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

.np-register-body fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

@media (max-width: 767px) {
    .np-form-fields {
        grid-template-columns: 1fr;
    }

    .np-tabs-nav {
        gap: 0;
    }

    .np-tab-link {
        padding: 12px 16px;
        font-size: 13px;
    }

    .np-tab-link span {
        display: none;
    }

    .np-tab-link i {
        font-size: 20px;
    }

    .np-tab-panel {
        padding: 20px 16px;
    }

    .np-register-header {
        padding: 16px 20px;
    }

    .np-register-body {
        padding: 20px;
    }

    .np-account-actions {
        flex-direction: column;
    }

    .np-btn-save,
    .np-btn-cancel {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .np-orders-header {
        display: none;
    }
}

/* --- OPC Registration form fields --- */
.np-register-card .list_user_fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 24px;
}

.np-register-card .formField,
.np-register-card .two_col_field_left,
.np-register-card .two_col_field_right,
.np-register-card .two_col_field_left_7,
.np-register-card .two_col_field_right_3 {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.np-register-card .formLabel {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s700);
    margin-bottom: 6px;
    display: block;
    float: none !important;
    width: 100% !important;
    text-align: left !important;
}

.np-register-card .formLabel label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s700);
}

.np-register-card input.inputbox,
.np-register-card select.inputbox,
.np-register-card textarea.inputbox,
.np-register-card input[type="text"],
.np-register-card input[type="email"],
.np-register-card input[type="password"],
.np-register-card input[type="tel"],
.np-register-card select {
    width: 100% !important;
    padding: 10px 14px;
    border: 1px solid var(--c-s300);
    border-radius: var(--r);
    font-size: 14px;
    color: var(--c-dark);
    background: var(--c-white);
    transition: border-color .2s, box-shadow .2s;
    box-sizing: border-box;
    height: auto;
}

.np-register-card input.inputbox:focus,
.np-register-card select.inputbox:focus,
.np-register-card input[type="text"]:focus,
.np-register-card input[type="email"]:focus,
.np-register-card input[type="password"]:focus,
.np-register-card select:focus {
    border-color: var(--c-orange);
    box-shadow: 0 0 0 3px var(--c-orange-bg);
    outline: none;
}

.np-register-card .required-star,
.np-register-card .asterisk {
    color: #e53e3e;
}

/* OPC userfields table override */
.np-register-card table.adminForm,
.np-register-card table.user-details {
    width: 100%;
    border-collapse: collapse;
}

.np-register-card table.adminForm tr,
.np-register-card table.user-details tr {
    display: flex;
    flex-direction: column;
    margin-bottom: 16px;
}

.np-register-card table.adminForm td.key,
.np-register-card table.user-details td.key {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-s700);
    padding: 0 0 6px;
}

.np-register-card table.adminForm td,
.np-register-card table.user-details td {
    padding: 0;
}

/* Hide old fieldset legends in OPC form */
.np-register-card fieldset {
    border: none;
    padding: 0;
    margin: 0 0 24px;
}

.np-register-card legend,
.np-register-card .userfields_info {
    font-size: 16px;
    font-weight: 600;
    color: var(--c-dark);
    padding: 0 0 12px;
    margin: 0 0 16px;
    border-bottom: 1px solid var(--c-s200);
    display: block;
    width: 100%;
}

/* Country select styling */
.np-register-card .country_wrap {
    margin-bottom: 0;
}

.np-register-card .country_wrap select {
    appearance: menulist;
}

/* OPC hidden containers */
.np-register-card .hiddencontainer {
    grid-column: 1 / -1;
}

/* Hide redundant standalone formLabel divs (fields use placeholders) */
.np-register-card .list_user_fields > .formLabel {
    display: none !important;
}

/* Nakupnafirmu — JS moves checkbox into label div, hides original container */
.np-register-card .list_user_fields > #nakupnafirmu_div.formLabel {
    display: flex !important;
    align-items: center;
    grid-column: 1 / -1;
    float: none !important;
    clear: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 8px 0 !important;
}

.np-register-card #nakupnafirmu_div label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-dark);
    cursor: pointer;
    margin: 0;
}

.np-register-card #nakupnafirmu_div input[type="checkbox"] {
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
    border: revert !important;
    box-shadow: none !important;
    cursor: pointer;
    flex-shrink: 0;
}

.np-register-card #nakupnafirmu_input.np-moved {
    display: none !important;
}

/* Orders list/detail page card wrapper */
.np-orders-card-wrap {
    background: var(--c-white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
}

/* ===== ORDER DETAIL ===== */

.np-order-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

/* Order info rows */
.np-order-info-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.np-order-info-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-s100);
    font-size: 14px;
    gap: 16px;
}

.np-order-info-row:last-child {
    border-bottom: none;
}

.np-order-info-label {
    color: var(--c-s600);
    flex-shrink: 0;
}

.np-order-info-value {
    color: var(--c-dark);
    text-align: right;
}

.np-order-info-value .vmCartShipmentLogo {
    display: none;
}

.np-order-info-value .vmshipment_description,
.np-order-info-value .vmpayment_description {
    display: block;
    font-size: 12px;
    color: var(--c-s500);
    margin-top: 4px;
    line-height: 1.4;
}

.np-order-total-row {
    padding-top: 14px;
    margin-top: 4px;
    border-top: 2px solid var(--c-s200);
    border-bottom: none;
}

.np-order-total-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--c-orange);
}

/* Addresses */
.np-order-addresses {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.np-order-address-card {
    background: var(--c-s50, #f8fafc);
    border-radius: var(--r);
    padding: 20px;
}

.np-order-address-card .np-form-section-title {
    font-size: 14px;
    margin-bottom: 12px;
    padding-bottom: 8px;
}

.np-address-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 13px;
}

.np-address-label {
    color: var(--c-s500);
}

.np-address-value {
    color: var(--c-dark);
    font-weight: 500;
    text-align: right;
}

/* Order items table */
.np-order-items {
    padding: 0;
}

.np-order-items-header {
    display: grid;
    grid-template-columns: 3fr 1fr 1fr 0.5fr 1fr;
    gap: 16px;
    padding: 12px 24px;
    background: var(--c-s50, #f8fafc);
    font-size: 12px;
    font-weight: 600;
    color: var(--c-s500);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.np-order-items-row {
    display: grid;
    grid-template-columns: 3fr 1fr 1fr 0.5fr 1fr;
    gap: 16px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--c-s100);
    align-items: center;
    font-size: 14px;
}

.np-order-items-row:last-child {
    border-bottom: none;
}

.np-oi-name a {
    color: var(--c-dark);
    font-weight: 500;
}

.np-oi-name a:hover {
    color: var(--c-orange);
}

.np-oi-sku {
    font-size: 12px;
    color: var(--c-s400);
    margin-top: 2px;
}

.np-oi-qty {
    text-align: center;
    color: var(--c-s600);
}

.np-oi-price,
.np-oi-total {
    text-align: right;
}

.np-oi-status {
    text-align: center;
}

.line-through {
    text-decoration: line-through;
    color: var(--c-s400);
    font-size: 12px;
}

/* Mobile item cards */
.np-order-item-card {
    padding: 16px;
    border-bottom: 1px solid var(--c-s100);
}

.np-order-item-card:last-child {
    border-bottom: none;
}

.np-oic-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}

.np-oic-top a {
    color: var(--c-dark);
    font-weight: 500;
    font-size: 14px;
}

.np-oic-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: var(--c-s600);
}

/* Order totals */
.np-order-totals {
    padding: 16px 24px 24px;
    border-top: 2px solid var(--c-s200);
}

.np-order-totals-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    font-size: 14px;
    color: var(--c-s700);
}

.np-order-totals-row.np-order-total-row {
    padding-top: 12px;
    margin-top: 8px;
    border-top: 2px solid var(--c-s200);
    font-size: 16px;
}

/* Order history timeline */
.np-order-history {
    padding: 8px 24px 24px;
    position: relative;
}

.np-history-item {
    display: flex;
    gap: 16px;
    padding: 12px 0;
    position: relative;
}

.np-history-item:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 30px;
    bottom: 0;
    width: 2px;
    background: var(--c-s200);
}

.np-history-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--c-orange);
    flex-shrink: 0;
    margin-top: 4px;
}

.np-history-content {
    flex: 1;
}

.np-history-date {
    font-size: 12px;
    color: var(--c-s500);
    margin-bottom: 4px;
}

.np-history-comment {
    font-size: 13px;
    color: var(--c-s600);
    margin-top: 4px;
}

@media (max-width: 767px) {
    .np-order-detail-grid {
        grid-template-columns: 1fr;
    }

    .np-order-items-header {
        display: none;
    }

    .np-order-totals {
        padding: 16px;
    }

    .np-order-history {
        padding: 8px 16px 16px;
    }
}

@media (max-width: 767px) {
    .np-register-card .list_user_fields {
        grid-template-columns: 1fr;
    }
}
