:root {
--ns-primary-color: #0d6efd;
--ns-secondary-color: #6c757d;
--ns-accent-color: #ffc107;
--ns-body-bg: #f7f8fb;
--ns-surface: #ffffff;
--ns-surface-muted: #f1f4f8;
--ns-text: #172033;
--ns-muted: #667085;
--ns-border: rgba(23, 32, 51, 0.12);
--ns-shadow: 0 18px 50px rgba(23, 32, 51, 0.10);
--ns-sticky-header-offset: 9.25rem;
--bs-primary: var(--ns-primary-color);
--bs-secondary: var(--ns-secondary-color);
--bs-link-color: var(--ns-primary-color);
--bs-link-hover-color: color-mix(in srgb, var(--ns-primary-color) 80%, black);
}
body.ns-storefront .btn-primary {
--bs-btn-bg: var(--ns-primary-color);
--bs-btn-border-color: var(--ns-primary-color);
--bs-btn-hover-bg: color-mix(in srgb, var(--ns-primary-color) 82%, black);
--bs-btn-hover-border-color: color-mix(in srgb, var(--ns-primary-color) 82%, black);
--bs-btn-active-bg: color-mix(in srgb, var(--ns-primary-color) 72%, black);
--bs-btn-active-border-color: color-mix(in srgb, var(--ns-primary-color) 72%, black);
--bs-btn-disabled-bg: var(--ns-primary-color);
--bs-btn-disabled-border-color: var(--ns-primary-color);
}
body.ns-storefront .btn-outline-primary {
--bs-btn-color: var(--ns-primary-color);
--bs-btn-border-color: var(--ns-primary-color);
--bs-btn-hover-bg: var(--ns-primary-color);
--bs-btn-hover-border-color: var(--ns-primary-color);
--bs-btn-active-bg: var(--ns-primary-color);
--bs-btn-active-border-color: var(--ns-primary-color);
--bs-btn-disabled-color: var(--ns-primary-color);
--bs-btn-disabled-border-color: var(--ns-primary-color);
}
body.ns-storefront .btn-secondary {
--bs-btn-bg: var(--ns-secondary-color);
--bs-btn-border-color: var(--ns-secondary-color);
--bs-btn-hover-bg: color-mix(in srgb, var(--ns-secondary-color) 82%, black);
--bs-btn-hover-border-color: color-mix(in srgb, var(--ns-secondary-color) 82%, black);
--bs-btn-active-bg: color-mix(in srgb, var(--ns-secondary-color) 72%, black);
--bs-btn-active-border-color: color-mix(in srgb, var(--ns-secondary-color) 72%, black);
--bs-btn-disabled-bg: var(--ns-secondary-color);
--bs-btn-disabled-border-color: var(--ns-secondary-color);
}
body.ns-storefront {
min-height: 100vh;
display: flex;
flex-direction: column;
color: var(--ns-text);
background: var(--ns-body-bg);
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
scrollbar-gutter: stable;
}
#storefront-main {
flex: 1 0 auto;
}
.ns-site-header {
position: sticky;
top: 0;
z-index: 20;
border-bottom: 1px solid var(--ns-border);
background: #fff;
}
.ns-pre-header {
border-bottom: 1px solid var(--ns-border);
background: var(--ns-surface-muted);
}
.ns-pre-header-inner {
display: flex;
align-items: center;
justify-content: flex-end;
min-height: 2.15rem;
padding: 0.2rem 0;
}
.ns-pre-header-actions {
display: flex;
align-items: center;
gap: 0.65rem;
}
.ns-pre-header-link {
display: inline-flex;
align-items: center;
gap: 0.45rem;
min-height: 1.75rem;
padding: 0;
border: 0;
color: var(--ns-text-muted);
font-size: 0.78rem;
font-weight: 700;
text-decoration: none;
}
button.ns-pre-header-link {
font-family: inherit;
background: transparent;
cursor: pointer;
}
.ns-pre-header-link:hover {
color: var(--ns-primary-color);
}
.ns-pre-header-link-label {
text-transform: uppercase;
letter-spacing: 0.04em;
}
.ns-pre-header-link-value {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 2rem;
min-height: 1.5rem;
padding: 0 0.5rem;
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 0.04em;
}
.ns-pre-header-toggle::after {
margin-left: 0.15rem;
}
.ns-header-main {
background: #fff;
}
.ns-header-grid {
display: grid;
grid-template-columns: minmax(10rem, 18rem) minmax(18rem, 1fr) auto auto;
gap: 1.25rem;
align-items: center;
min-height: 82px;
}
.ns-brand {
grid-column: 1;
display: inline-flex;
align-items: center;
gap: 0.75rem;
color: var(--ns-text);
font-weight: 800;
letter-spacing: 0;
text-decoration: none;
}
.ns-brand:hover {
color: var(--ns-primary-color);
}
.ns-brand-logo {
width: clamp(92px, 12vw, 156px);
height: 56px;
object-fit: contain;
}
.ns-brand-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
border-radius: 8px;
color: #fff;
background: var(--ns-primary-color);
font-weight: 800;
}
.ns-brand-name {
max-width: 15rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.ns-search {
grid-column: 2;
position: relative;
display: flex;
width: 100%;
max-width: 42rem;
}
.ns-search .form-control {
min-width: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.ns-search .btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.ns-search-suggestions {
position: absolute;
z-index: 1040;
top: calc(100% + 0.45rem);
left: 0;
right: 0;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: #fff;
box-shadow: 0 1rem 2rem rgba(23, 32, 51, 0.14);
}
.ns-search-suggestion-title,
.ns-search-suggestion-message,
.ns-search-suggestion-all {
display: block;
padding: 0.75rem 0.9rem;
font-size: 0.86rem;
}
.ns-search-suggestion-title {
color: var(--ns-text-muted);
font-weight: 750;
text-transform: uppercase;
}
.ns-search-suggestion-message {
color: var(--ns-text-muted);
}
.ns-search-suggestion-item {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 0.75rem;
padding: 0.7rem 0.9rem;
color: var(--ns-text);
text-decoration: none;
}
.ns-search-suggestion-item.has-image {
grid-template-columns: 3rem minmax(0, 1fr) auto;
}
.ns-search-suggestion-item:hover,
.ns-search-suggestion-item:focus-visible,
.ns-search-suggestion-item.is-active {
background: var(--ns-surface-muted);
}
.ns-search-suggestion-item img {
width: 3rem;
height: 3rem;
border-radius: 8px;
object-fit: cover;
background: var(--ns-surface-muted);
}
.ns-search-suggestion-item.is-manufacturer img {
padding: 0.35rem;
border: 1px solid var(--ns-border);
object-fit: contain;
background: #fff;
}
.ns-search-suggestion-text {
overflow: hidden;
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
.ns-search-suggestion-meta {
color: var(--ns-text-muted);
font-size: 0.85rem;
white-space: nowrap;
}
.ns-search-suggestion-all {
border-top: 1px solid var(--ns-border);
color: var(--ns-primary-color);
font-weight: 750;
text-decoration: none;
}
.ns-search-suggestion-all:hover,
.ns-search-suggestion-all:focus-visible,
.ns-search-suggestion-all.is-active {
background: var(--ns-surface-muted);
}
.ns-commerce-actions {
grid-column: 3;
justify-self: end;
display: flex;
align-items: center;
gap: 0.5rem;
white-space: nowrap;
}
.ns-action-link {
display: inline-flex;
align-items: center;
gap: 0.4rem;
min-height: 40px;
padding: 0.35rem 0.65rem;
border: 1px solid transparent;
border-radius: 8px;
color: var(--ns-text);
font-size: 0.92rem;
font-weight: 700;
text-decoration: none;
}
button.ns-action-link {
font-family: inherit;
background: transparent;
cursor: pointer;
}
.ns-action-link:hover {
border-color: var(--ns-border);
color: var(--ns-primary-color);
background: var(--ns-surface-muted);
}
.ns-account-dropdown {
min-width: 0;
}
.ns-language-dropdown {
min-width: 0;
}
.ns-currency-dropdown {
min-width: 0;
}
.ns-account-link.is-authenticated {
border-color: rgba(22, 163, 74, 0.28);
color: var(--ns-text);
background: #f0fdf4;
}
.ns-account-link.is-authenticated:hover {
border-color: rgba(22, 163, 74, 0.45);
color: var(--ns-primary-color);
background: #ecfdf5;
}
.ns-account-action-name {
display: inline-block;
max-width: 9.5rem;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: bottom;
white-space: nowrap;
}
.ns-account-menu {
min-width: 13rem;
padding: 0.45rem;
border-color: var(--ns-border);
border-radius: 8px;
box-shadow: 0 18px 45px rgba(15, 23, 42, 0.14);
}
.ns-language-menu {
min-width: 12rem;
padding: 0.45rem;
border-color: var(--ns-border);
border-radius: 8px;
box-shadow: 0 18px 45px rgba(15, 23, 42, 0.14);
}
.ns-account-menu form {
margin: 0;
}
.ns-language-menu form,
.ns-currency-menu form {
margin: 0;
}
.ns-account-menu .dropdown-item,
.ns-language-menu .dropdown-item {
border-radius: 6px;
color: var(--ns-text);
font-weight: 650;
}
.ns-account-menu .dropdown-item:hover,
.ns-account-menu .dropdown-item:focus,
.ns-language-menu .dropdown-item:hover,
.ns-language-menu .dropdown-item:focus {
color: var(--ns-primary-color);
background: var(--ns-surface-muted);
}
.ns-language-menu .dropdown-item.active,
.ns-language-menu .dropdown-item:active {
color: #fff;
background: var(--ns-primary-color);
}
.ns-language-menu .dropdown-item:disabled,
.ns-currency-menu .dropdown-item:disabled {
opacity: 1;
}
.ns-pre-header-menu-button {
width: 100%;
text-align: left;
border: 0;
background: transparent;
}
.ns-language-item {
display: flex;
align-items: center;
gap: 0.65rem;
}
.ns-language-item-code {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.25rem;
height: 1.75rem;
border-radius: 6px;
color: var(--ns-primary-color);
background: var(--ns-surface-muted);
font-size: 0.78rem;
font-weight: 800;
}
.ns-language-menu .dropdown-item.active .ns-language-item-code,
.ns-language-menu .dropdown-item:active .ns-language-item-code {
color: var(--ns-primary-color);
background: #fff;
}
.ns-language-item-label {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.ns-account-menu-action {
width: 100%;
text-align: left;
}
.ns-action-icon {
width: 1.15rem;
height: 1.15rem;
fill: none;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
flex: 0 0 auto;
}
.ns-account-icon-wrap {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
}
.ns-account-status-dot {
position: absolute;
right: -0.3rem;
bottom: -0.25rem;
width: 0.62rem;
height: 0.62rem;
border: 2px solid #fff;
border-radius: 999px;
background: #16a34a;
}
.ns-cart-icon-wrap,
.ns-wishlist-icon-wrap {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
}
.ns-action-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.2rem;
height: 1.2rem;
padding: 0 0.25rem;
border-radius: 999px;
color: #fff;
background: var(--ns-primary-color);
font-size: 0.7rem;
font-weight: 700;
line-height: 1;
box-shadow: 0 0 0 2px var(--ns-surface);
}
.ns-cart-icon-wrap .ns-action-count,
.ns-wishlist-icon-wrap .ns-action-count {
position: absolute;
top: -0.7rem;
right: -0.8rem;
}
.ns-cart-link {
border-color: var(--ns-border);
}
.ns-nav-toggle {
grid-column: 4;
display: none;
justify-self: end;
}
.ns-nav-toggle {
align-items: center;
justify-content: center;
width: 2.75rem;
height: 2.75rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: #fff;
}
.ns-nav-toggle .navbar-toggler-icon {
width: 1.25rem;
height: 1rem;
background-image: none;
position: relative;
}
.ns-nav-toggle .navbar-toggler-icon,
.ns-nav-toggle .navbar-toggler-icon::before,
.ns-nav-toggle .navbar-toggler-icon::after {
display: block;
border-top: 2px solid currentColor;
}
.ns-nav-toggle .navbar-toggler-icon::before,
.ns-nav-toggle .navbar-toggler-icon::after {
content: "";
position: absolute;
right: 0;
left: 0;
}
.ns-nav-toggle .navbar-toggler-icon::before {
top: 0.38rem;
}
.ns-nav-toggle .navbar-toggler-icon::after {
top: 0.76rem;
}
.ns-navbar {
min-height: 48px;
padding: 0;
background: var(--ns-surface-muted);
}
.ns-mega-nav-item {
position: relative;
}
.ns-navbar .navbar-nav {
gap: 0.2rem;
}
.ns-navbar .navbar-nav > .nav-item:first-child > .nav-link {
padding-left: 0;
}
.ns-navbar .dropdown:hover > .dropdown-menu,
.ns-navbar .dropdown:focus-within > .dropdown-menu {
display: block;
margin-top: 0;
}
.ns-breadcrumb {
background: #fff;
border-bottom: 1px solid color-mix(in srgb, var(--ns-border) 72%, transparent);
}
.ns-breadcrumb ol {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.35rem;
margin: 0;
padding: 0.8rem 0;
list-style: none;
color: var(--ns-muted);
font-size: 0.875rem;
}
.ns-breadcrumb li {
display: inline-flex;
align-items: center;
min-width: 0;
}
.ns-breadcrumb li + li::before {
content: "/";
margin: 0 0.45rem 0 0.1rem;
color: color-mix(in srgb, var(--ns-muted) 58%, white);
}
.ns-breadcrumb a {
display: inline-flex;
align-items: center;
color: var(--ns-muted);
text-decoration: none;
}
.ns-breadcrumb a:hover {
color: var(--ns-primary-color);
}
.ns-breadcrumb .is-current span {
color: var(--ns-text);
font-weight: 500;
}
.ns-breadcrumb-home-icon {
width: 1rem;
height: 1rem;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
fill: none;
}
.ns-navbar .nav-link {
position: relative;
padding: 0.8rem 1rem;
color: var(--ns-text);
font-weight: 650;
}
.ns-navbar .nav-link:hover,
.ns-navbar .nav-link.active {
color: var(--ns-primary-color);
}
.ns-navbar .nav-link.active::after {
content: "";
position: absolute;
right: 1rem;
bottom: 0;
left: 1rem;
height: 3px;
border-radius: 999px 999px 0 0;
background: var(--ns-primary-color);
}
.ns-navbar .navbar-nav > .nav-item:first-child > .nav-link.active::after {
left: 0;
}
.ns-dropdown {
border: 1px solid var(--ns-border);
border-radius: 8px;
box-shadow: 0 18px 50px rgba(23, 32, 51, 0.12);
}
.ns-dropdown .dropdown-item {
color: var(--ns-text);
font-weight: 550;
}
.ns-dropdown .dropdown-item:hover,
.ns-dropdown .dropdown-item:focus,
.ns-dropdown .dropdown-item.active {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 9%, white);
}
.ns-mega-menu {
position: absolute;
top: 100%;
right: auto;
left: 0;
width: max-content;
min-width: min(18rem, calc(100vw - 2rem));
max-width: min(70rem, calc(100vw - 2rem));
max-height: min(72vh, 34rem);
padding: 0;
overflow: hidden;
}
.ns-mega-nav-item > .ns-mega-menu {
transform: none;
}
.ns-mega-menu-inner {
max-height: inherit;
padding: 1.25rem;
overflow: auto;
}
.ns-mega-menu-grid,
.ns-mega-menu-list {
margin: 0;
padding: 0;
list-style: none;
}
.ns-mega-menu-grid {
display: grid;
grid-template-columns: repeat(var(--ns-mega-menu-columns, 1), minmax(11rem, 16rem));
gap: 1.15rem 1.5rem;
justify-content: start;
}
.ns-mega-menu-item[data-nav-level="2"] {
min-width: 0;
}
.ns-mega-menu-link {
display: block;
color: var(--ns-text);
text-decoration: none;
}
.ns-mega-menu-link:hover,
.ns-mega-menu-link:focus,
.ns-mega-menu-link.active {
color: var(--ns-primary-color);
}
.ns-mega-menu-link[data-nav-level="2"] {
padding-bottom: 0.45rem;
border-bottom: 1px solid color-mix(in srgb, var(--ns-border) 72%, transparent);
font-weight: 750;
}
.ns-mega-menu-list {
display: grid;
gap: 0.15rem;
padding-top: 0.45rem;
}
.ns-mega-menu-list .ns-mega-menu-list {
padding-top: 0.1rem;
padding-left: 0.8rem;
border-left: 2px solid color-mix(in srgb, var(--ns-border) 62%, transparent);
}
.ns-mega-menu-link[data-nav-level="3"] {
padding: 0.18rem 0;
color: var(--ns-muted);
font-size: 0.92rem;
font-weight: 650;
}
.ns-mega-menu-link[data-nav-level="4"],
.ns-mega-menu-link[data-nav-level="5"],
.ns-mega-menu-link[data-nav-level="6"] {
padding: 0.12rem 0;
color: color-mix(in srgb, var(--ns-muted) 88%, white);
font-size: 0.86rem;
font-weight: 600;
}
.ns-nav-offcanvas {
--bs-offcanvas-width: min(88vw, 24rem);
background: #fff;
border-left: 1px solid color-mix(in srgb, var(--ns-border) 70%, transparent);
box-shadow: -18px 0 48px rgba(23, 32, 51, 0.14);
will-change: transform;
}
.ns-nav-offcanvas.hiding {
transition-duration: 0.3s;
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ns-nav-offcanvas-header {
justify-content: flex-end;
border-bottom: 1px solid var(--ns-border);
background: #fff;
}
.ns-nav-offcanvas-body {
padding: 0;
overscroll-behavior: contain;
}
.offcanvas-backdrop {
will-change: opacity;
}
.ns-mobile-nav-list,
.ns-mobile-subnav-list {
margin: 0;
padding: 0;
list-style: none;
}
.ns-mobile-nav-item {
border-bottom: 1px solid color-mix(in srgb, var(--ns-border) 70%, transparent);
}
.ns-mobile-nav-main {
display: grid;
grid-template-columns: minmax(0, 1fr) 3.25rem;
align-items: stretch;
}
.ns-mobile-nav-link,
.ns-mobile-subnav-link {
position: relative;
display: flex;
align-items: center;
min-height: 3rem;
color: var(--ns-text);
text-decoration: none;
}
.ns-mobile-nav-link {
padding: 0.85rem 1.25rem;
font-size: 1rem;
font-weight: 750;
}
.ns-mobile-subnav-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
border: 0;
border-left: 1px solid color-mix(in srgb, var(--ns-border) 75%, transparent);
color: var(--ns-muted);
background: transparent;
}
.ns-mobile-subnav-toggle:hover,
.ns-mobile-subnav-toggle:focus {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 7%, white);
}
.ns-mobile-subnav-toggle span {
width: 0.55rem;
height: 0.55rem;
border-right: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: translateY(-0.1rem) rotate(45deg);
transition: transform 0.16s ease;
}
.ns-mobile-subnav-toggle[aria-expanded="true"] span {
transform: translateY(0.12rem) rotate(225deg);
}
.ns-mobile-subnav-list {
padding: 0;
}
.ns-mobile-subnav-list > li:first-child {
padding-top: 0.2rem;
}
.ns-mobile-subnav-list > li:last-child {
padding-bottom: 0.9rem;
}
.ns-mobile-subnav-link {
min-height: 2.5rem;
padding: 0.55rem 0.75rem 0.55rem 1rem;
border-left: 3px solid color-mix(in srgb, var(--ns-border) 70%, transparent);
color: var(--ns-muted);
font-size: 0.95rem;
font-weight: 650;
}
.ns-mobile-subnav-list .ns-mobile-nav-item {
border-bottom: 0;
}
.ns-mobile-nav-main[data-nav-level]:not([data-nav-level="1"]) {
grid-template-columns: minmax(0, 1fr) 2.75rem;
}
.ns-mobile-subnav-link[data-nav-level="2"] {
margin-left: 1.25rem;
}
.ns-mobile-subnav-link[data-nav-level="3"] {
margin-left: 2rem;
}
.ns-mobile-subnav-link[data-nav-level="4"] {
margin-left: 2.75rem;
}
.ns-mobile-subnav-link[data-nav-level="5"],
.ns-mobile-subnav-link[data-nav-level="6"] {
margin-left: 3.5rem;
}
.ns-mobile-nav-link:hover,
.ns-mobile-nav-link:focus,
.ns-mobile-subnav-link:hover,
.ns-mobile-subnav-link:focus,
.ns-mobile-nav-link.active,
.ns-mobile-subnav-link.active {
color: var(--ns-primary-color);
}
.ns-mobile-nav-link.active {
background: color-mix(in srgb, var(--ns-primary-color) 8%, white);
}
.ns-mobile-nav-link.active::before {
content: "";
position: absolute;
top: 0.75rem;
bottom: 0.75rem;
left: 0;
width: 4px;
border-radius: 0 999px 999px 0;
background: var(--ns-primary-color);
}
.ns-mobile-subnav-link.active {
border-left-color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 7%, white);
}
.ns-storefront-intro {
padding: 2.5rem 0 1.75rem;
background: #fff;
}
.ns-home-empty {
min-height: 16rem;
}
.ns-home-section:first-child {
padding-top: 2.5rem;
}
.ns-page-header {
padding: 1.65rem 0 0.75rem;
background: #fff;
}
.ns-page-header-has-banner {
padding-bottom: 1.5rem;
}
.ns-category-banner {
width: 100%;
margin: 1.25rem 0 0;
aspect-ratio: 5 / 1;
max-height: 18rem;
overflow: hidden;
border-radius: 8px;
background: var(--ns-surface-muted);
}
.ns-category-banner img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.ns-category-heading-main {
min-width: 0;
}
.ns-page-title {
margin: 0;
font-size: clamp(1.45rem, 2.4vw, 2rem);
line-height: 1.18;
}
.ns-content-page {
padding: 1.75rem 0 3rem;
}
.ns-content-page .ns-rich-text {
max-width: 48rem;
}
.ns-error-page {
padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 6rem);
}
.ns-error-panel {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(14rem, 22rem);
align-items: center;
gap: clamp(2rem, 6vw, 4.5rem);
min-height: 24rem;
}
.ns-error-copy {
max-width: 38rem;
}
.ns-error-eyebrow {
width: fit-content;
margin-bottom: 1rem;
padding: 0.35rem 0.7rem;
border: 1px solid color-mix(in srgb, var(--ns-primary-color) 28%, #d7dde8);
border-radius: 999px;
color: var(--ns-primary-color);
font-size: 0.82rem;
font-weight: 800;
letter-spacing: 0;
line-height: 1;
background: color-mix(in srgb, var(--ns-primary-color) 8%, #fff);
}
.ns-error-title {
margin: 0;
color: #172033;
font-size: 3rem;
font-weight: 800;
letter-spacing: 0;
line-height: 1.05;
}
.ns-error-message {
max-width: 33rem;
margin: 1rem 0 0;
color: #5b6575;
font-size: 1.08rem;
line-height: 1.65;
}
.ns-error-actions {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
margin-top: 1.75rem;
}
.ns-error-visual {
position: relative;
display: flex;
align-items: center;
justify-content: center;
min-height: 17rem;
border: 1px solid #dbe2ec;
border-radius: 0.5rem;
background: linear-gradient(135deg, #fff, #f6f8fb);
overflow: hidden;
}
.ns-error-visual::before {
content: "";
position: absolute;
inset: auto 1.25rem 1.25rem 1.25rem;
height: 4.5rem;
border-radius: 0.5rem;
background: color-mix(in srgb, var(--ns-primary-color) 7%, #eef2f7);
}
.ns-error-card {
position: relative;
z-index: 1;
width: min(17rem, calc(100% - 3rem));
border: 1px solid #d7deea;
border-radius: 0.5rem;
background: #fff;
box-shadow: 0 1.25rem 2.5rem rgba(23, 32, 51, 0.12);
overflow: hidden;
}
.ns-error-card-bar {
display: flex;
gap: 0.35rem;
align-items: center;
height: 2.1rem;
padding: 0 0.85rem;
border-bottom: 1px solid #e3e8f0;
background: #f7f9fc;
}
.ns-error-card-bar span {
width: 0.42rem;
height: 0.42rem;
border-radius: 999px;
background: #c4ccd9;
}
.ns-error-card-body {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 1rem;
align-items: center;
padding: 1.35rem 1.2rem 1.15rem;
}
.ns-error-card-code {
display: grid;
place-items: center;
width: 4.6rem;
height: 4.6rem;
border: 1px solid color-mix(in srgb, var(--ns-primary-color) 28%, #d7deea);
border-radius: 0.5rem;
color: var(--ns-primary-color);
font-size: 1.25rem;
font-weight: 900;
letter-spacing: 0;
background: color-mix(in srgb, var(--ns-primary-color) 8%, #fff);
}
.ns-error-card-content {
display: grid;
gap: 0.55rem;
}
.ns-error-card-line {
display: block;
width: 72%;
height: 0.55rem;
border-radius: 999px;
background: #d6dde8;
}
.ns-error-card-line-wide {
width: 100%;
background: #b9c3d3;
}
.ns-error-card-line-short {
width: 48%;
}
.ns-error-card-footer {
display: flex;
gap: 0.6rem;
padding: 0 1.2rem 1.2rem;
}
.ns-error-card-footer span {
width: 3.6rem;
height: 1.45rem;
border: 1px solid #d7deea;
border-radius: 0.35rem;
background: #f7f9fc;
}
.ns-error-card-footer span:first-child {
border-color: color-mix(in srgb, var(--ns-primary-color) 28%, #d7deea);
background: color-mix(in srgb, var(--ns-primary-color) 10%, #fff);
}
@media (max-width: 767.98px) {
.ns-error-panel {
grid-template-columns: 1fr;
min-height: 0;
}
.ns-error-visual {
min-height: 12rem;
order: -1;
}
.ns-error-title {
font-size: 2.15rem;
}
.ns-error-card {
width: min(15rem, calc(100% - 2rem));
}
}
.ns-search-page-heading {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 1rem;
}
.ns-search-related {
padding-top: 1.6rem;
padding-bottom: 0;
}
.ns-search-related-title {
margin: 0 0 1rem;
font-size: 1.15rem;
font-weight: 800;
}
.ns-search-related-groups {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
.ns-search-related-group-title {
margin: 0 0 0.55rem;
color: var(--ns-text-muted);
font-size: 0.78rem;
font-weight: 800;
text-transform: uppercase;
}
.ns-search-related-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.55rem;
}
.ns-search-related-item {
display: flex;
align-items: center;
gap: 0.2rem;
padding: 0.8rem 0.95rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
color: var(--ns-text);
text-decoration: none;
transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}
.ns-search-related-item:hover,
.ns-search-related-item:focus-visible {
border-color: color-mix(in srgb, var(--ns-primary-color) 38%, var(--ns-border));
box-shadow: 0 0.7rem 1.4rem rgba(23, 32, 51, 0.09);
transform: translateY(-1px);
}
.ns-search-related-image {
flex: 0 0 auto;
width: 3.4rem;
height: 3.4rem;
margin-right: 0.6rem;
border-radius: 8px;
object-fit: cover;
background: var(--ns-surface-muted);
}
.ns-search-related-item.is-manufacturer .ns-search-related-image {
padding: 0.4rem;
border: 1px solid var(--ns-border);
object-fit: contain;
background: #fff;
}
.ns-search-related-copy {
display: grid;
min-width: 0;
gap: 0.2rem;
}
.ns-search-related-type {
color: var(--ns-primary-color);
font-size: 0.75rem;
font-weight: 800;
}
.ns-search-related-name {
overflow: hidden;
font-weight: 800;
text-overflow: ellipsis;
white-space: nowrap;
}
.ns-search-related-description {
display: -webkit-box;
overflow: hidden;
color: var(--ns-text-muted);
font-size: 0.88rem;
line-height: 1.4;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.ns-page-description {
margin: 0;
color: var(--ns-text-muted);
max-width: 64ch;
}
.ns-catalog-section {
padding-top: 1.4rem;
}
.ns-catalog-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 1.5rem;
}
.ns-catalog-sidebar {
display: none;
}
.ns-catalog-main {
min-width: 0;
}
.ns-catalog-toolbar {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
gap: 1rem;
margin-bottom: 1rem;
}
.ns-catalog-result-count {
display: inline-flex;
align-items: center;
min-height: 2rem;
flex: 0 0 auto;
padding: 0.35rem 0.75rem;
border: 1px solid color-mix(in srgb, var(--ns-border) 78%, transparent);
border-radius: 999px;
color: var(--ns-text-muted);
background: var(--ns-surface-muted);
font-size: 0.88rem;
font-weight: 650;
line-height: 1;
white-space: nowrap;
}
.ns-catalog-toolbar-actions {
display: flex;
align-items: center;
flex: 1 1 auto;
gap: 0.55rem;
justify-content: flex-end;
margin-left: auto;
min-width: 0;
}
.ns-catalog-filter-trigger {
display: inline-flex;
width: 2.65rem;
height: 2.65rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid var(--ns-border);
border-radius: 8px;
color: var(--ns-text);
background: #fff;
box-shadow: 0 0.35rem 1rem rgba(23, 32, 51, 0.05);
}
.ns-catalog-filter-trigger:hover,
.ns-catalog-filter-trigger:focus-visible {
border-color: color-mix(in srgb, var(--ns-primary-color) 42%, var(--ns-border));
color: var(--ns-primary-color);
}
.ns-catalog-filter-trigger svg {
width: 1.15rem;
height: 1.15rem;
fill: none;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-catalog-sort {
flex: 0 1 16rem;
min-width: 9rem;
}
.ns-catalog-sort-toggle {
display: flex;
width: 100%;
min-height: 2.65rem;
align-items: center;
gap: 0.55rem;
justify-content: space-between;
padding: 0.45rem 0.75rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
color: var(--ns-text);
background: #fff;
box-shadow: 0 0.35rem 1rem rgba(23, 32, 51, 0.05);
text-align: left;
}
.ns-catalog-sort-toggle:hover,
.ns-catalog-sort-toggle:focus-visible {
border-color: color-mix(in srgb, var(--ns-primary-color) 42%, var(--ns-border));
}
.ns-catalog-sort-label {
color: var(--ns-text-muted);
font-size: 0.78rem;
font-weight: 650;
}
.ns-catalog-sort-current {
flex: 1 1 auto;
overflow: hidden;
font-size: 0.92rem;
font-weight: 650;
text-overflow: ellipsis;
white-space: nowrap;
}
.ns-catalog-sort-icon {
width: 0.5rem;
height: 0.5rem;
flex: 0 0 auto;
border-right: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg) translateY(-0.12rem);
}
.ns-catalog-sort-menu {
min-width: 100%;
}
.ns-catalog-sort-option {
font-size: 0.9rem;
}
.ns-catalog-filter-offcanvas {
--bs-offcanvas-width: min(24rem, 92vw);
}
.ns-catalog-quick-filters,
.ns-catalog-active-filters {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 1rem;
margin-bottom: 1.25rem;
}
.ns-catalog-filter-form {
margin: 0;
padding: 1.25rem;
border-radius: 12px;
background: var(--ns-surface);
box-shadow: 0 2px 6px rgba(23, 32, 51, 0.06), 0 10px 28px rgba(23, 32, 51, 0.08);
}
.ns-catalog-filter-heading {
display: flex;
align-items: center;
gap: 0.6rem;
margin-bottom: 0.9rem;
padding-left: 0.75rem;
color: var(--ns-text);
font-size: 1rem;
font-weight: 750;
border-left: 3px solid var(--ns-primary-color);
}
.ns-catalog-filter-group {
margin: 0;
padding: 0;
border: 0;
border-top: 1px solid color-mix(in srgb, var(--ns-border) 72%, transparent);
}
.ns-catalog-filter-group legend {
float: none;
width: 100%;
margin: 0;
padding: 0;
color: var(--ns-text);
font-size: 0.92rem;
font-weight: 650;
}
.ns-catalog-filter-toggle {
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
padding: 0.7rem 0.5rem;
margin: 0 -0.5rem;
width: calc(100% + 1rem);
border: 0;
border-radius: 6px;
color: var(--ns-text);
background: transparent;
font: inherit;
text-align: left;
transition: color 0.15s ease, background-color 0.15s ease;
}
.ns-catalog-filter-toggle:hover {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 6%, transparent);
}
.ns-catalog-filter-group.is-active .ns-catalog-filter-toggle {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 6%, transparent);
}
.ns-catalog-filter-toggle-icon {
position: relative;
width: 0.75rem;
height: 0.75rem;
flex: 0 0 auto;
}
.ns-catalog-filter-toggle-icon::before,
.ns-catalog-filter-toggle-icon::after {
content: "";
position: absolute;
inset: 50% auto auto 50%;
width: 0.75rem;
border-top: 2px solid currentColor;
transform: translate(-50%, -50%);
transition: transform 0.18s ease, opacity 0.18s ease;
}
.ns-catalog-filter-toggle-icon::after {
transform: translate(-50%, -50%) rotate(90deg);
}
.ns-catalog-filter-toggle:not(.collapsed) .ns-catalog-filter-toggle-icon::after {
opacity: 0;
transform: translate(-50%, -50%) rotate(0deg);
}
.ns-catalog-filter-options {
display: flex;
flex-direction: column;
gap: 0.45rem;
padding: 0 0 0.9rem;
}
.ns-catalog-filter-option {
display: grid;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: 0.55rem;
color: var(--ns-text);
font-size: 0.92rem;
line-height: 1.35;
cursor: pointer;
padding: 0.32rem 0.4rem;
border-radius: 6px;
}
.ns-catalog-filter-option input {
margin: 0;
}
.ns-catalog-filter-option:not(.is-disabled):hover {
background: color-mix(in srgb, var(--ns-primary-color) 6%, #fff);
}
.ns-catalog-filter-option.is-active {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 10%, #fff);
box-shadow: inset 3px 0 0 var(--ns-primary-color);
}
.ns-catalog-filter-option-label {
overflow-wrap: anywhere;
}
.ns-catalog-filter-option-count {
color: var(--ns-text-muted);
font-size: 0.84rem;
}
.ns-catalog-filter-option.is-disabled {
color: var(--ns-text-muted);
cursor: not-allowed;
opacity: 0.52;
}
.ns-catalog-filter-option.is-disabled .ns-catalog-filter-option-label,
.ns-catalog-filter-option.is-disabled .ns-catalog-filter-option-count {
color: var(--ns-text-muted);
}
.ns-catalog-filter-option.is-disabled input {
cursor: not-allowed;
}
.ns-catalog-price-filter {
--ns-price-min-position: 0%;
--ns-price-max-position: 100%;
display: grid;
gap: 0.75rem;
padding: 0.15rem 0 1rem;
}
.ns-catalog-price-values,
.ns-catalog-price-limits {
display: flex;
justify-content: space-between;
gap: 0.75rem;
}
.ns-catalog-price-values span {
display: grid;
gap: 0.12rem;
}
.ns-catalog-price-values span:last-child {
text-align: right;
}
.ns-catalog-price-values small,
.ns-catalog-price-limits {
color: var(--ns-text-muted);
font-size: 0.78rem;
}
.ns-catalog-price-values strong {
color: var(--ns-text);
font-size: 0.94rem;
font-weight: 650;
}
.ns-catalog-price-slider {
position: relative;
height: 1.9rem;
}
.ns-catalog-price-slider-track {
position: absolute;
top: 50%;
right: 0;
left: 0;
height: 0.42rem;
border-radius: 999px;
background:
linear-gradient(
to right,
color-mix(in srgb, var(--ns-border) 86%, #fff) 0%,
color-mix(in srgb, var(--ns-border) 86%, #fff) var(--ns-price-min-position),
var(--ns-primary-color) var(--ns-price-min-position),
var(--ns-primary-color) var(--ns-price-max-position),
color-mix(in srgb, var(--ns-border) 86%, #fff) var(--ns-price-max-position),
color-mix(in srgb, var(--ns-border) 86%, #fff) 100%
);
transform: translateY(-50%);
}
.ns-catalog-price-input {
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 1.9rem;
margin: 0;
pointer-events: none;
appearance: none;
background: transparent;
transform: translateY(-50%);
}
.ns-catalog-price-input::-webkit-slider-runnable-track {
height: 0.42rem;
background: transparent;
}
.ns-catalog-price-input::-moz-range-track {
height: 0.42rem;
background: transparent;
}
.ns-catalog-price-input::-webkit-slider-thumb {
width: 1.05rem;
height: 1.05rem;
border: 2px solid #fff;
border-radius: 50%;
background: var(--ns-primary-color);
box-shadow: 0 0.15rem 0.45rem rgba(15, 23, 42, 0.22);
cursor: grab;
pointer-events: auto;
appearance: none;
transform: translateY(-0.32rem);
}
.ns-catalog-price-input::-moz-range-thumb {
width: 1.05rem;
height: 1.05rem;
border: 2px solid #fff;
border-radius: 50%;
background: var(--ns-primary-color);
box-shadow: 0 0.15rem 0.45rem rgba(15, 23, 42, 0.22);
cursor: grab;
pointer-events: auto;
}
.ns-catalog-price-input:focus-visible::-webkit-slider-thumb {
outline: 2px solid color-mix(in srgb, var(--ns-primary-color) 35%, #fff);
outline-offset: 2px;
}
.ns-catalog-price-input:focus-visible::-moz-range-thumb {
outline: 2px solid color-mix(in srgb, var(--ns-primary-color) 35%, #fff);
outline-offset: 2px;
}
.ns-catalog-filter-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.55rem;
padding-top: 0.9rem;
border-top: 1px solid color-mix(in srgb, var(--ns-border) 72%, transparent);
}
.ns-catalog-filter-actions-mobile {
flex-wrap: nowrap;
}
.ns-catalog-filter-actions-mobile .ns-catalog-show-products,
.ns-catalog-filter-actions-mobile .ns-catalog-clear-filters {
flex: 1 1 0;
justify-content: center;
}
.ns-catalog-show-products {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 1.9rem;
padding: 0.25rem 0.75rem;
border: 1px solid var(--ns-primary-color);
border-radius: 999px;
color: #fff;
background: var(--ns-primary-color);
font-size: 0.88rem;
font-weight: 650;
line-height: 1.2;
text-decoration: none;
white-space: nowrap;
}
.ns-catalog-show-products:hover,
.ns-catalog-show-products:focus-visible {
border-color: color-mix(in srgb, var(--ns-primary-color) 82%, #000);
background: color-mix(in srgb, var(--ns-primary-color) 88%, #000);
}
.ns-catalog-active-filter,
.ns-catalog-clear-filters,
.ns-catalog-filter-chip {
display: inline-flex;
align-items: center;
gap: 0.35rem;
min-height: 1.9rem;
padding: 0.25rem 0.65rem;
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
font-size: 0.88rem;
text-decoration: none;
}
.ns-catalog-clear-filters {
color: var(--ns-text-muted);
background: var(--ns-surface-muted);
}
.ns-catalog-filter-chip.is-active {
border-color: color-mix(in srgb, var(--ns-primary-color) 68%, var(--ns-border));
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 9%, #fff);
}
.ns-catalog-active-filter:hover,
.ns-catalog-clear-filters:hover,
.ns-catalog-filter-chip:hover {
border-color: color-mix(in srgb, var(--ns-primary-color) 45%, var(--ns-border));
color: var(--ns-primary-color);
}
@media (min-width: 992px) {
.ns-catalog-layout-has-sidebar {
grid-template-columns: minmax(13.5rem, 16rem) minmax(0, 1fr);
align-items: start;
}
.ns-catalog-sidebar {
position: sticky;
top: var(--ns-sticky-header-offset);
display: block;
}
.ns-catalog-filter-trigger {
display: none;
}
}
@media (max-width: 575.98px) {
.ns-catalog-toolbar {
gap: 0.75rem;
flex-wrap: nowrap;
}
.ns-catalog-toolbar-actions {
flex: 1 1 auto;
min-width: 0;
}
.ns-catalog-sort {
flex: 1 1 auto;
min-width: 7.5rem;
}
}
.ns-category-description {
max-width: 78ch;
margin: 0.65rem 0 0;
color: var(--ns-text-muted);
font-size: 1rem;
line-height: 1.7;
}
.ns-category-description > :last-child {
margin-bottom: 0;
}
.ns-catalog-empty {
padding: 3rem 0;
color: var(--ns-text-muted);
text-align: center;
}
.ns-catalog-load-more {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.85rem;
margin-top: 2.25rem;
}
.ns-catalog-load-more-button {
min-width: 11rem;
}
.ns-catalog-load-more-button.is-loading {
cursor: wait;
}
.ns-catalog-load-error {
margin: 0;
color: #b42318;
font-size: 0.95rem;
}
.ns-cart-section {
padding-top: 2rem;
}
.ns-cart-panel {
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
overflow: hidden;
}
.ns-cart-notice {
border: 1px solid rgba(24, 144, 255, 0.28);
border-radius: 6px;
background: rgba(24, 144, 255, 0.08);
color: #084298;
margin-bottom: 1rem;
padding: 0.85rem 1rem;
}
.ns-cart-notice--after-cart {
margin-top: 1.25rem;
margin-bottom: 0;
}
.ns-cart-notice--success {
border-color: rgba(25, 135, 84, 0.28);
background: rgba(25, 135, 84, 0.08);
color: #0f5132;
}
.ns-cart-notice--warning {
border-color: rgba(255, 193, 7, 0.35);
background: rgba(255, 193, 7, 0.12);
color: #664d03;
}
.ns-cart-notice--error {
border-color: rgba(220, 53, 69, 0.28);
background: rgba(220, 53, 69, 0.08);
color: #842029;
}
.ns-fulfillment-notice {
border: 1px solid rgba(13, 110, 253, 0.28);
border-left: 4px solid #0d6efd;
border-radius: 8px;
background: #eef5ff;
color: #0a3d91;
padding: 0.85rem 1rem;
font-weight: 600;
}
.ns-fulfillment-notice--cart,
.ns-fulfillment-notice--checkout {
margin-bottom: 1rem;
}
.ns-checkout-option-list .ns-fulfillment-notice--checkout {
margin: 0.5rem 1rem 1.25rem;
}
.ns-cart-table-wrap {
overflow-x: auto;
}
.ns-cart-empty {
padding: 3rem 0;
text-align: center;
color: var(--ns-text-muted);
display: flex;
flex-direction: column;
align-items: center;
gap: 1.25rem;
}
.ns-cart-table {
width: 100%;
border-collapse: collapse;
min-width: 760px;
}
.ns-cart-table thead th {
padding: 1rem 1.25rem;
border-bottom: 2px solid var(--ns-border);
font-size: 0.8125rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--ns-text-muted);
}
.ns-cart-row td {
padding: 1.25rem;
border-bottom: 1px solid var(--ns-border);
vertical-align: middle;
}
.ns-cart-row--blocked {
background: rgba(255, 193, 7, 0.06);
}
.ns-cart-col-product { width: 45%; }
.ns-cart-col-price { width: 18%; text-align: right; }
.ns-cart-col-qty { width: 16%; }
.ns-cart-col-total { width: 16%; text-align: right; font-weight: 600; }
.ns-cart-col-remove { width: 5%; text-align: right; }
.ns-cart-item-product {
display: flex;
align-items: center;
gap: 1rem;
min-width: 0;
}
.ns-cart-item-image-wrap {
display: block;
flex: 0 0 76px;
width: 76px;
height: 76px;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface-muted);
}
.ns-cart-item-image {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.ns-cart-item-info {
display: flex;
flex-direction: column;
gap: 0.25rem;
min-width: 0;
}
.ns-cart-item-name {
font-weight: 700;
color: var(--ns-text);
text-decoration: none;
}
.ns-cart-item-name:hover {
color: var(--ns-primary-color);
}
.ns-cart-item-variant,
.ns-cart-item-sku {
font-size: 0.8125rem;
color: var(--ns-text-muted);
}
.ns-cart-item-availability {
display: inline-flex;
align-items: center;
width: fit-content;
margin-top: 0.25rem;
border-radius: 999px;
padding: 0.1875rem 0.5rem;
background: rgba(220, 53, 69, 0.1);
color: #842029;
font-size: 0.8125rem;
font-weight: 600;
}
.ns-cart-item-availability--limited {
background: rgba(255, 193, 7, 0.14);
color: #664d03;
}
.ns-cart-item-fulfillment {
display: inline-flex;
align-items: center;
width: fit-content;
margin-top: 0.25rem;
border-radius: 999px;
padding: 0.1875rem 0.5rem;
background: #eef5ff;
color: #0a3d91;
font-size: 0.8125rem;
font-weight: 600;
}
.ns-cart-qty-input {
width: 72px;
text-align: center;
padding: 0.375rem 0.5rem;
}
.ns-cart-qty-form.is-submitting .ns-cart-qty-input,
.ns-offcanvas-qty-form.is-submitting .ns-offcanvas-qty-input {
opacity: 0.65;
cursor: wait;
}
.ns-cart-submit-spinner {
width: 1rem;
height: 1rem;
display: none;
border: 2px solid currentColor;
border-right-color: transparent;
border-radius: 999px;
animation: ns-cart-submit-spin 0.65s linear infinite;
flex: 0 0 auto;
}
[data-ns-cart-submit-button] {
position: relative;
}
[data-ns-cart-submit-button].is-submitting {
cursor: wait;
opacity: 0.85;
}
[data-ns-cart-submit-button].is-submitting .ns-cart-submit-spinner {
display: inline-block;
}
.ns-submit-button {
align-items: center;
justify-content: center;
gap: 0.5rem;
}
button.ns-submit-button {
display: inline-flex;
}
.ns-submit-button.is-submitting {
cursor: wait;
opacity: 0.85;
}
.ns-submit-spinner {
width: 1rem;
height: 1rem;
display: none;
border: 2px solid currentColor;
border-right-color: transparent;
border-radius: 999px;
animation: ns-cart-submit-spin 0.65s linear infinite;
flex: 0 0 auto;
}
.ns-submit-button.is-submitting .ns-submit-spinner {
display: inline-block;
}
@keyframes ns-cart-submit-spin {
to {
transform: rotate(360deg);
}
}
.ns-cart-remove-btn {
width: 2.25rem;
height: 2.25rem;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--ns-surface-muted);
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text-muted);
padding: 0;
cursor: pointer;
transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.ns-cart-remove-icon {
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-cart-remove-btn .ns-cart-submit-spinner {
width: 1rem;
height: 1rem;
}
.ns-cart-remove-btn.is-submitting .ns-cart-remove-icon {
display: none;
}
.ns-cart-remove-btn:hover {
background: #fff5f5;
border-color: var(--ns-danger, #dc3545);
color: var(--ns-danger, #dc3545);
}
.ns-cart-footer {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 1.5rem;
padding: 1.25rem;
background: var(--ns-surface-muted);
}
.ns-cart-footer-summary {
min-width: min(100%, 320px);
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0.625rem;
text-align: right;
}
.ns-cart-subtotal-line {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 1.5rem;
font-size: 1rem;
color: var(--ns-text);
}
.ns-cart-subtotal-line strong {
font-size: 1.125rem;
}
.ns-cart-summary-note {
margin: 0;
font-size: 0.8125rem;
color: var(--ns-text-muted);
}
.ns-cart-checkout-btn {
min-width: 180px;
align-self: flex-end;
}
.ns-cart-checkout-btn.is-disabled {
pointer-events: none;
opacity: 0.55;
cursor: not-allowed;
}
.ns-cart-continue-link {
display: inline-flex;
align-items: center;
gap: 0.5rem;
min-height: 42px;
padding: 0.5rem 1rem;
border: 1px solid color-mix(in srgb, var(--ns-secondary-color) 32%, var(--ns-border));
border-radius: 8px;
color: color-mix(in srgb, var(--ns-secondary-color) 78%, black);
background: color-mix(in srgb, var(--ns-secondary-color) 7%, white);
font-size: 0.875rem;
font-weight: 650;
text-decoration: none;
transition: border-color 0.15s ease, background-color 0.15s ease;
}
.ns-cart-continue-link::before {
content: "";
width: 0.5rem;
height: 0.5rem;
border-left: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg);
flex-shrink: 0;
}
.ns-cart-continue-link:hover {
border-color: color-mix(in srgb, var(--ns-secondary-color) 58%, var(--ns-border));
background: color-mix(in srgb, var(--ns-secondary-color) 14%, white);
color: color-mix(in srgb, var(--ns-secondary-color) 78%, black);
}
@media (max-width: 767.98px) {
.ns-cart-footer {
flex-direction: column;
align-items: stretch;
}
.ns-cart-footer-summary {
min-width: 0;
text-align: left;
}
.ns-cart-checkout-btn {
width: 100%;
align-self: stretch;
}
}
.ns-cart-offcanvas {
width: min(480px, 100vw);
max-width: 100vw;
display: flex;
flex-direction: column;
}
.ns-cart-offcanvas .offcanvas-body {
display: flex;
flex-direction: column;
min-height: 0;
}
.ns-offcanvas-count {
font-weight: 400;
color: var(--ns-text-muted);
font-size: 0.9em;
}
.ns-offcanvas-empty {
padding: 2rem 0;
text-align: center;
color: var(--ns-text-muted);
}
.ns-offcanvas-items {
flex: 1;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 0;
min-height: 0;
}
.ns-offcanvas-item {
display: flex;
align-items: flex-start;
padding: 1.125rem 0;
border-bottom: 1px solid var(--ns-border);
gap: 1rem;
}
.ns-offcanvas-item-image-wrap {
flex-shrink: 0;
width: 76px;
height: 76px;
border-radius: 6px;
overflow: hidden;
display: block;
background: var(--ns-surface-muted);
}
.ns-offcanvas-item-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.ns-offcanvas-item-image-placeholder {
width: 76px;
height: 76px;
}
.ns-offcanvas-item-info {
display: flex;
flex-direction: column;
gap: 0.25rem;
flex: 1;
min-width: 0;
}
.ns-offcanvas-item-name {
font-weight: 700;
font-size: 0.9375rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: var(--ns-text);
text-decoration: none;
}
.ns-offcanvas-item-name:hover {
color: var(--ns-primary-color);
}
.ns-offcanvas-item-variant,
.ns-offcanvas-item-meta {
font-size: 0.8125rem;
color: var(--ns-text-muted);
}
.ns-offcanvas-item-fulfillment {
display: inline-flex;
align-items: center;
width: fit-content;
margin-top: 0.125rem;
border-radius: 999px;
padding: 0.1875rem 0.5rem;
background: #eef5ff;
color: #0a3d91;
font-size: 0.8125rem;
font-weight: 600;
}
.ns-offcanvas-item-pricing {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 1rem;
margin-top: 0.125rem;
}
.ns-offcanvas-item-price {
color: var(--ns-text-muted);
font-size: 0.875rem;
}
.ns-offcanvas-item-controls {
display: flex;
align-items: center;
gap: 0.625rem;
margin-top: 0.25rem;
}
.ns-offcanvas-qty-form {
margin: 0;
}
.ns-offcanvas-qty-input {
width: 4.25rem;
min-height: 2.25rem;
padding: 0.25rem 0.5rem;
text-align: center;
font-size: 0.9375rem;
}
.ns-offcanvas-item-total {
font-weight: 600;
font-size: 0.9375rem;
color: var(--ns-text);
}
.ns-offcanvas-remove {
width: 2.25rem;
height: 2.25rem;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--ns-surface-muted);
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text-muted);
padding: 0;
cursor: pointer;
transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.ns-offcanvas-remove-icon {
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-offcanvas-remove .ns-cart-submit-spinner {
width: 1rem;
height: 1rem;
}
.ns-offcanvas-remove.is-submitting .ns-offcanvas-remove-icon {
display: none;
}
.ns-offcanvas-remove:hover {
background: #fff5f5;
border-color: var(--ns-danger, #dc3545);
color: var(--ns-danger, #dc3545);
}
.ns-offcanvas-footer {
border-top: 2px solid var(--ns-border);
padding-top: 1rem;
margin-top: auto;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.ns-offcanvas-subtotal {
display: flex;
justify-content: space-between;
align-items: baseline;
font-size: 0.9375rem;
}
.ns-offcanvas-subtotal-value {
font-weight: 700;
font-size: 1.125rem;
}
.ns-offcanvas-cart-btn,
.ns-offcanvas-checkout-btn {
width: 100%;
}
.ns-offcanvas-cart-btn.btn-outline-primary {
border-color: var(--ns-primary-color);
color: var(--ns-primary-color);
}
.ns-offcanvas-cart-btn.btn-outline-primary:hover {
background: var(--ns-primary-color);
border-color: var(--ns-primary-color);
color: #fff;
}
@media (max-width: 575.98px) {
.ns-offcanvas-item-image-wrap,
.ns-offcanvas-item-image-placeholder {
width: 68px;
height: 68px;
}
.ns-offcanvas-item-pricing {
flex-direction: column;
align-items: flex-start;
gap: 0.125rem;
}
}
.ns-checkout-page {
padding: 2rem 0 4rem;
background: var(--ns-body-bg);
}
.ns-checkout-title-row {
margin-bottom: 1.75rem;
}
.ns-checkout-errors {
margin-bottom: 1.25rem;
}
.ns-checkout-errors p {
margin: 0;
}
.ns-checkout-errors p + p {
margin-top: 0.35rem;
}
.ns-checkout-layout {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.5rem;
align-items: start;
}
.ns-checkout-main {
display: flex;
flex-direction: column;
gap: 1rem;
}
.ns-checkout-step {
overflow: hidden;
scroll-margin-top: calc(var(--ns-sticky-header-offset) + 1rem);
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
box-shadow: 0 0.35rem 1.25rem rgba(23, 32, 51, 0.05);
}
.ns-checkout-step-header {
display: flex;
align-items: center;
min-height: 68px;
padding: 1rem 1.25rem;
color: var(--ns-text);
background: var(--ns-surface);
font-size: 1.05rem;
font-weight: 800;
text-decoration: none;
transition: color 0.15s ease, background-color 0.15s ease;
}
.ns-checkout-step-header.is-disabled {
color: var(--ns-muted);
cursor: not-allowed;
}
.ns-checkout-step.is-active .ns-checkout-step-header {
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 11%, #fff);
box-shadow: inset 4px 0 0 color-mix(in srgb, var(--ns-primary-color) 78%, #000);
}
.ns-checkout-step-body {
padding: 1.35rem 1.25rem 1.55rem;
border-top: 1px solid var(--ns-border);
}
.ns-checkout-step:not(.is-active) .ns-checkout-step-body {
display: none;
}
.ns-checkout-login-grid {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.8fr);
gap: 1.25rem;
}
.ns-checkout-login-grid.is-single {
grid-template-columns: minmax(0, 1fr);
}
.ns-checkout-auth-panel {
min-width: 0;
}
.ns-checkout-auth-panel + .ns-checkout-auth-panel {
padding-left: 1.25rem;
border-left: 1px solid var(--ns-border);
}
.ns-checkout-auth-panel h2,
.ns-checkout-auth-registered h2,
.ns-checkout-address-block h2,
.ns-checkout-option-list h2,
.ns-checkout-data-summary h2 {
margin: 0 0 1rem;
color: var(--ns-text);
font-size: 1.05rem;
font-weight: 800;
}
.ns-checkout-auth-registered {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0.75rem;
}
.ns-checkout-auth-registered p {
margin: 0;
color: var(--ns-muted);
}
.ns-checkout-field-stack,
.ns-checkout-address-block,
.ns-checkout-option-list {
display: flex;
flex-direction: column;
gap: 0.85rem;
}
.ns-checkout-control {
min-height: 50px;
border-radius: 8px;
border-color: var(--ns-border);
background: #fff;
box-shadow: 0 0.25rem 0.9rem rgba(23, 32, 51, 0.035);
}
.ns-checkout-control::placeholder {
color: var(--ns-muted);
}
.ns-checkout-saved-address-select {
margin-bottom: 1rem;
}
[data-ns-saved-address-editor] {
display: flex;
flex-direction: column;
gap: 0.85rem;
}
[data-ns-saved-address-editor].is-hidden {
display: none;
}
[data-ns-saved-address-custom-fields].is-hidden,
[data-ns-checkout-customer-custom-fields].is-hidden,
[data-ns-custom-field-key].is-hidden {
display: none;
}
.ns-checkout-action-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
margin-top: 1rem;
}
.ns-checkout-action-column {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.75rem;
margin-top: 1rem;
}
.ns-checkout-register-panel .ns-checkout-action-column {
align-items: flex-start;
}
.ns-checkout-action-btn,
.ns-checkout-secondary-btn,
.ns-checkout-order-btn {
min-width: 150px;
min-height: 42px;
border-radius: 8px;
padding: 0.45rem 1rem;
font-weight: 800;
}
.ns-checkout-outline-btn {
min-width: 150px;
min-height: 42px;
padding: 0.45rem 1rem;
border-radius: 8px;
font-weight: 800;
}
.ns-checkout-page button:disabled {
cursor: not-allowed;
opacity: 0.68;
}
.ns-checkout-secondary-btn {
border-color: color-mix(in srgb, var(--ns-secondary-color) 28%, var(--ns-border));
color: color-mix(in srgb, var(--ns-secondary-color) 78%, black);
background: color-mix(in srgb, var(--ns-secondary-color) 7%, white);
}
.ns-checkout-secondary-btn:hover,
.ns-checkout-secondary-btn:focus-visible {
border-color: color-mix(in srgb, var(--ns-secondary-color) 48%, var(--ns-border));
color: color-mix(in srgb, var(--ns-secondary-color) 78%, black);
background: color-mix(in srgb, var(--ns-secondary-color) 13%, white);
}
.ns-checkout-text-link,
.ns-checkout-guest-link,
.ns-checkout-cart-link {
border: 0;
padding: 0;
color: var(--ns-text);
background: transparent;
font: inherit;
font-weight: 650;
text-decoration: none;
}
.ns-checkout-text-link:disabled {
color: var(--ns-text);
opacity: 1;
}
.ns-checkout-auth-view {
display: none;
}
.ns-checkout-auth-view.is-active {
display: block;
}
.ns-checkout-benefits {
display: grid;
gap: 0.6rem;
margin: 0;
padding-left: 1.15rem;
color: var(--ns-muted);
font-size: 0.95rem;
}
.ns-checkout-benefits li::marker {
color: var(--ns-primary-color);
}
.ns-checkout-guest-link:hover,
.ns-checkout-cart-link:hover {
color: var(--ns-primary-color);
}
.ns-checkout-radio-row {
display: flex;
flex-wrap: wrap;
gap: 0.9rem 1rem;
}
.ns-checkout-radio,
.ns-checkout-checkbox {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: var(--ns-text);
font-weight: 500;
}
.ns-checkout-radio input,
.ns-checkout-checkbox input,
.ns-checkout-option input {
width: 1.15rem;
height: 1.15rem;
accent-color: var(--ns-primary-color);
flex: 0 0 auto;
}
.ns-checkout-type-toggle {
display: inline-grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.25rem;
width: min(100%, 24rem);
padding: 0.25rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface-muted);
}
.ns-checkout-type-option {
min-width: 0;
cursor: pointer;
}
.ns-checkout-type-option input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.ns-checkout-type-option span {
display: flex;
align-items: center;
justify-content: center;
min-height: 42px;
padding: 0.55rem 0.9rem;
border-radius: 6px;
color: var(--ns-muted);
font-weight: 800;
text-align: center;
cursor: pointer;
transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.ns-checkout-type-option input:checked + span {
color: var(--ns-primary-color);
background: #fff;
box-shadow: 0 0.25rem 0.75rem rgba(23, 32, 51, 0.08);
}
.ns-checkout-type-option input:focus-visible + span {
outline: 2px solid color-mix(in srgb, var(--ns-primary-color) 55%, transparent);
outline-offset: 2px;
}
[data-ns-address-scope] {
display: flex;
flex-direction: column;
gap: 0.85rem;
}
.ns-checkout-address-mode {
display: none;
}
.ns-checkout-address-mode.is-active {
display: flex;
flex-direction: column;
gap: 0.85rem;
}
.ns-checkout-contact-heading {
color: var(--ns-muted);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-checkout-form-grid {
display: grid;
gap: 0.85rem;
}
.ns-checkout-form-grid-two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ns-checkout-form-grid-postcode {
grid-template-columns: minmax(150px, 0.38fr) minmax(0, 1fr);
}
.ns-checkout-form-grid-street {
grid-template-columns: minmax(0, 1fr) minmax(130px, 0.24fr);
}
.ns-checkout-customer-custom-fields {
display: grid;
gap: 1rem;
}
.ns-checkout-customer-custom-field-group {
border-top: 1px solid rgba(15, 23, 42, 0.1);
display: grid;
gap: 0.85rem;
padding-top: 1rem;
}
.ns-checkout-customer-custom-field-group h3 {
font-size: 1rem;
margin: 0;
}
.ns-checkout-customer-custom-field-group > p {
color: var(--ns-muted);
font-size: 0.92rem;
margin: 0;
}
.ns-checkout-custom-field--wide {
grid-column: 1 / -1;
}
.ns-checkout-custom-field,
.ns-checkout-page .ns-account-form-field {
position: relative;
}
.ns-checkout-custom-field > .form-label,
.ns-checkout-page .ns-account-form-field > .form-label {
position: absolute;
z-index: 1;
top: 0.45rem;
left: 0.8rem;
margin: 0;
color: var(--ns-muted);
font-size: 0.72rem;
line-height: 1;
pointer-events: none;
}
.ns-checkout-custom-field > .ns-checkout-control,
.ns-checkout-page .ns-account-form-field > .ns-checkout-control {
min-height: 58px;
padding-top: 1.35rem;
padding-bottom: 0.35rem;
}
.ns-checkout-page .ns-account-form-field > .ns-checkout-file-upload-label {
position: static;
display: block;
margin: 0 0 0.5rem;
color: #172033;
font-size: 0.9rem;
font-weight: 650;
line-height: 1.35;
pointer-events: auto;
}
.ns-checkout-file-upload {
position: relative;
}
.ns-checkout-file-upload__input {
position: absolute;
z-index: 2;
inset: 0;
width: 100%;
height: 100%;
margin: 0;
opacity: 0;
cursor: pointer;
}
.ns-checkout-file-upload__content {
display: flex;
align-items: center;
gap: 0.9rem;
min-height: 96px;
padding: 1rem 1.15rem;
border: 1px dashed color-mix(in srgb, var(--ns-primary-color) 34%, var(--ns-border));
border-radius: 10px;
background: color-mix(in srgb, var(--ns-primary-color) 3%, var(--ns-surface));
transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}
.ns-checkout-file-upload__input:hover + .ns-checkout-file-upload__content,
.ns-checkout-file-upload__input:focus-visible + .ns-checkout-file-upload__content,
.ns-checkout-file-upload.is-dragover .ns-checkout-file-upload__content {
border-color: color-mix(in srgb, var(--ns-primary-color) 72%, var(--ns-border));
background: color-mix(in srgb, var(--ns-primary-color) 7%, var(--ns-surface));
}
.ns-checkout-file-upload__input:focus-visible + .ns-checkout-file-upload__content {
box-shadow: 0 0 0 3px color-mix(in srgb, var(--ns-primary-color) 16%, transparent);
}
.ns-checkout-file-upload__input:disabled {
cursor: not-allowed;
}
.ns-checkout-file-upload__input:disabled + .ns-checkout-file-upload__content {
opacity: 0.58;
}
.ns-checkout-file-upload__icon {
display: inline-flex;
flex: 0 0 46px;
align-items: center;
justify-content: center;
width: 46px;
height: 46px;
border-radius: 10px;
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 11%, var(--ns-surface));
}
.ns-checkout-file-upload__icon svg {
width: 24px;
height: 24px;
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-checkout-file-upload__copy {
display: grid;
min-width: 0;
gap: 0.22rem;
}
.ns-checkout-file-upload__headline {
overflow-wrap: anywhere;
color: #172033;
font-size: 0.98rem;
line-height: 1.35;
}
.ns-checkout-file-upload.has-file .ns-checkout-file-upload__headline {
color: var(--ns-primary-color);
}
.ns-checkout-file-upload.is-invalid .ns-checkout-file-upload__content {
border-color: #dc3545;
background: color-mix(in srgb, #dc3545 5%, var(--ns-surface));
}
.ns-checkout-file-upload__hint {
color: var(--ns-muted);
font-size: 0.84rem;
line-height: 1.35;
}
.ns-checkout-file-upload__error {
margin-top: 0.42rem;
color: #b4232f;
font-size: 0.84rem;
line-height: 1.4;
}
.ns-checkout-next-row {
display: flex;
justify-content: flex-end;
margin-top: 0.35rem;
}
.ns-checkout-shipping-address-toggle {
margin-bottom: 1rem;
}
.ns-checkout-address-block[data-ns-shipping-address-panel] {
display: none;
margin-bottom: 1.25rem;
padding: 1rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface-muted);
}
.ns-checkout-address-block[data-ns-shipping-address-panel].is-visible {
display: flex;
}
.ns-checkout-option-list {
gap: 0;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
}
.ns-checkout-option-list h2 {
margin: 0;
padding: 1rem 1rem 0.25rem;
}
.ns-checkout-option {
position: relative;
display: grid;
grid-template-columns: auto minmax(0, 1fr) minmax(6.5rem, auto);
gap: 0.9rem;
align-items: center;
min-height: 96px;
padding: 0.85rem 1rem;
border-top: 1px solid var(--ns-border);
cursor: pointer;
overflow: hidden;
}
.ns-checkout-option > * {
position: relative;
z-index: 1;
}
.ns-checkout-option-payment {
grid-template-columns: auto 56px minmax(0, 1fr) minmax(6.5rem, auto);
}
.ns-checkout-option-payment:not(:has(.ns-checkout-option-price)) {
grid-template-columns: auto 56px minmax(0, 1fr);
}
.ns-checkout-option:has(input:checked) {
background: transparent;
}
.ns-checkout-option:has(input:checked)::before {
content: "";
position: absolute;
inset: 0;
background: color-mix(in srgb, var(--ns-primary-color) 7%, #fff);
pointer-events: none;
}
.ns-checkout-option:has(input:checked)::after {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 3px;
background: var(--ns-primary-color);
pointer-events: none;
}
.ns-checkout-option-body {
display: flex;
flex-direction: column;
gap: 0.15rem;
min-width: 0;
}
.ns-checkout-option-title {
color: var(--ns-text);
font-weight: 750;
}
.ns-checkout-option-description,
.ns-checkout-option-meta,
.ns-checkout-option-price,
.ns-checkout-muted-note,
.ns-checkout-empty-note {
color: var(--ns-muted);
font-size: 0.92rem;
}
.ns-checkout-option-description span[style*="color"] {
font-weight: 700;
}
.ns-checkout-muted-note {
margin: 0;
}
.ns-checkout-empty-note {
margin: 0;
padding: 0.85rem 1rem 1rem;
}
.ns-checkout-option-price {
display: inline-flex;
align-items: center;
align-self: stretch;
justify-self: end;
color: var(--ns-text);
font-weight: 400;
text-align: right;
white-space: nowrap;
}
.ns-checkout-payment-logo-wrap {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
min-height: 32px;
}
.ns-checkout-payment-logo {
max-width: 56px;
max-height: 32px;
object-fit: contain;
}
.ns-checkout-payment-logo-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border: 1px solid color-mix(in srgb, var(--ns-primary-color) 24%, var(--ns-border));
border-radius: 999px;
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 9%, #fff);
font-size: 0.95rem;
font-weight: 800;
line-height: 1;
}
.ns-checkout-summary {
position: sticky;
top: calc(var(--ns-sticky-header-offset) + 1rem);
min-width: 0;
}
.ns-checkout-summary-head {
min-height: 68px;
display: flex;
align-items: center;
padding: 1rem 1.25rem;
border: 1px solid var(--ns-border);
border-bottom: 0;
border-radius: 8px 8px 0 0;
color: var(--ns-secondary-color);
background: color-mix(in srgb, var(--ns-secondary-color) 11%, #fff);
font-size: 1.05rem;
font-weight: 800;
box-shadow: inset 4px 0 0 color-mix(in srgb, var(--ns-secondary-color) 78%, #000);
}
.ns-checkout-cart-summary {
padding: 1.25rem 1.25rem 1rem;
border: 1px solid var(--ns-border);
border-radius: 0 0 8px 8px;
background: var(--ns-surface);
box-shadow: 0 0.35rem 1.25rem rgba(23, 32, 51, 0.05);
}
.ns-checkout-cart-table-head,
.ns-checkout-cart-row {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(62px, 0.16fr) minmax(108px, 0.28fr);
gap: 1rem;
align-items: center;
}
.ns-checkout-cart-table-head {
padding-bottom: 0.75rem;
border-bottom: 1px solid var(--ns-border);
color: var(--ns-muted);
font-size: 0.92rem;
}
.ns-checkout-cart-table-head > span:nth-child(3),
.ns-checkout-cart-row > strong {
justify-self: end;
text-align: right;
white-space: nowrap;
}
.ns-checkout-cart-row {
padding: 1rem 0;
border-bottom: 1px solid var(--ns-border);
color: var(--ns-text);
font-size: 0.92rem;
}
.ns-checkout-cart-product {
display: flex;
align-items: center;
gap: 0.9rem;
min-width: 0;
}
.ns-checkout-cart-product > .ns-checkout-cart-copy {
display: flex;
flex-direction: column;
min-width: 0;
}
.ns-checkout-cart-brand,
.ns-checkout-cart-copy > span {
color: var(--ns-muted);
}
.ns-checkout-cart-product .ns-checkout-cart-fulfillment {
display: inline-flex;
align-items: center;
width: fit-content;
margin-top: 0.25rem;
border-radius: 999px;
padding: 0.1875rem 0.5rem;
background: #eef5ff;
color: #0a3d91;
font-size: 0.8125rem;
font-weight: 600;
}
.ns-checkout-cart-product strong {
color: var(--ns-text);
}
.ns-checkout-cart-image {
width: 58px;
height: 58px;
object-fit: cover;
border-radius: 6px;
flex: 0 0 auto;
}
.ns-checkout-cart-image-placeholder {
display: inline-block;
background: var(--ns-surface-muted);
}
.ns-checkout-cart-image-link,
.ns-checkout-cart-product-link {
color: inherit;
text-decoration: none;
}
.ns-checkout-cart-image-link {
display: inline-flex;
flex: 0 0 auto;
}
.ns-checkout-cart-product-link {
color: var(--ns-text);
font-weight: 800;
}
.ns-checkout-cart-product-link:hover,
.ns-checkout-cart-product-link:focus-visible {
color: var(--ns-primary-color);
}
.ns-checkout-invoice-line {
display: flex;
justify-content: flex-end;
gap: 1rem;
padding: 1rem 0;
color: var(--ns-text);
}
.ns-checkout-cart-link {
display: flex;
justify-content: flex-end;
align-items: center;
min-height: 42px;
border-top: 1px solid var(--ns-border);
}
.ns-checkout-cart-link::after {
content: "";
width: 0.55rem;
height: 0.55rem;
margin-left: 0.9rem;
border-top: 2px solid currentColor;
border-right: 2px solid currentColor;
transform: rotate(45deg);
}
.ns-checkout-review {
display: flex;
flex-direction: column;
gap: 1.25rem;
}
.ns-checkout-review-cart {
box-shadow: 0 0.35rem 1.25rem rgba(23, 32, 51, 0.05);
}
.ns-checkout-thank-you {
max-width: 720px;
}
.ns-checkout-thank-you-actions {
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
margin-top: 1.5rem;
}
.ns-checkout-review-card {
padding: 1.25rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
box-shadow: 0 0.25rem 0.9rem rgba(23, 32, 51, 0.035);
}
.ns-checkout-review-card h2 {
margin: 0 0 0.75rem;
color: var(--ns-text);
font-size: 1.35rem;
}
.ns-checkout-review-table .ns-cart-col-price,
.ns-checkout-review-table .ns-cart-col-qty,
.ns-checkout-review-table .ns-cart-col-total {
text-align: right;
}
.ns-checkout-review-bottom {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
gap: 1rem 1.25rem;
align-items: start;
}
.ns-checkout-review-bottom.has-order-fields {
align-items: stretch;
}
.ns-checkout-review-left,
.ns-checkout-review-right {
display: flex;
flex-direction: column;
gap: 1rem;
min-width: 0;
}
.ns-checkout-review-bottom.has-order-fields .ns-checkout-review-left,
.ns-checkout-review-bottom.has-order-fields .ns-checkout-review-right {
align-self: stretch;
}
.ns-checkout-review-calculation {
grid-area: totals;
}
.ns-checkout-review-voucher {
grid-area: codes;
}
.ns-checkout-order-custom-fields {
grid-area: order-fields;
flex: 1 1 auto;
}
.ns-checkout-review-submit {
grid-area: submit;
}
.ns-checkout-total-card,
.ns-checkout-review-voucher,
.ns-checkout-order-custom-fields,
.ns-checkout-review-submit {
padding: 1rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
box-shadow: 0 0.25rem 0.9rem rgba(23, 32, 51, 0.035);
}
.ns-checkout-total-line {
display: flex;
justify-content: space-between;
gap: 1.5rem;
padding: 0.45rem 0;
color: var(--ns-text);
}
.ns-checkout-total-line + .ns-checkout-total-line {
border-top: 1px solid var(--ns-border);
}
.ns-checkout-total-line strong {
font-weight: 700;
text-align: right;
white-space: nowrap;
}
.ns-checkout-total-line.is-grand-total {
margin-top: 0.25rem;
padding-top: 0.8rem;
font-size: 1.08rem;
font-weight: 800;
}
.ns-checkout-total-line.is-grand-total strong {
font-weight: 800;
}
.ns-checkout-review-voucher h2,
.ns-checkout-order-custom-fields h2 {
margin: 0 0 0.85rem;
color: var(--ns-text);
font-size: 1rem;
font-weight: 800;
}
.ns-checkout-voucher-row {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 0.75rem;
align-items: center;
}
.ns-checkout-review-submit {
display: flex;
flex-direction: column;
gap: 0.85rem;
align-self: stretch;
}
.ns-checkout-review-reference {
display: flex;
flex-direction: column;
gap: 0.4rem;
color: var(--ns-text);
font-weight: 700;
}
.ns-checkout-terms-checkbox {
align-items: flex-start;
font-size: 0.94rem;
}
.ns-checkout-terms-open {
color: var(--ns-primary-color);
font: inherit;
font-size: 0.94rem;
font-weight: 700;
line-height: 1.5;
text-decoration: underline;
text-underline-offset: 0.16em;
}
.ns-checkout-terms-open:hover,
.ns-checkout-terms-open:focus-visible {
color: color-mix(in srgb, var(--ns-primary-color) 80%, black);
}
.ns-checkout-terms-open:focus-visible {
border-radius: 0.2rem;
outline: 2px solid color-mix(in srgb, var(--ns-primary-color) 40%, transparent);
outline-offset: 0.18rem;
}
.ns-checkout-terms-modal .modal-content {
border: 1px solid var(--ns-border);
border-radius: 1rem;
box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, 0.2);
}
.ns-checkout-terms-modal .modal-header,
.ns-checkout-terms-modal .modal-footer {
border-color: var(--ns-border);
}
.ns-checkout-terms-modal .modal-title {
color: var(--ns-text);
font-size: clamp(1.25rem, 2vw, 1.6rem);
font-weight: 800;
}
.ns-checkout-terms-modal .modal-body {
color: var(--ns-text);
padding: clamp(1rem, 3vw, 2rem);
}
.ns-checkout-data-card-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
margin-bottom: 0.75rem;
}
.ns-checkout-data-card-head h3 {
margin: 0;
}
.ns-checkout-data-edit {
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border: 1px solid var(--ns-border);
border-radius: 8px;
color: var(--ns-text);
background: var(--ns-surface-muted);
text-decoration: none;
transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.ns-checkout-data-edit svg {
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-checkout-data-edit:hover,
.ns-checkout-data-edit:focus-visible {
border-color: color-mix(in srgb, var(--ns-primary-color) 38%, var(--ns-border));
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 8%, #fff);
}
.ns-checkout-data-summary {
margin-top: 1.6rem;
}
.ns-checkout-data-summary h2 {
font-size: 1.35rem;
}
.ns-checkout-data-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
.ns-checkout-data-card {
min-height: 112px;
padding: 1rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface);
box-shadow: 0 0.25rem 0.9rem rgba(23, 32, 51, 0.035);
}
.ns-checkout-data-card h3 {
margin: 0 0 0.75rem;
color: var(--ns-text);
font-size: 1rem;
font-weight: 800;
}
.ns-checkout-data-card p {
margin: 0;
color: var(--ns-text);
font-size: 0.92rem;
}
@media (max-width: 1199.98px) {
.ns-checkout-layout {
grid-template-columns: minmax(0, 1fr);
}
.ns-checkout-summary {
position: static;
}
}
@media (max-width: 767.98px) {
.ns-checkout-login-grid,
.ns-checkout-form-grid-two,
.ns-checkout-form-grid-postcode,
.ns-checkout-form-grid-street,
.ns-checkout-data-grid,
.ns-checkout-voucher-row {
grid-template-columns: minmax(0, 1fr);
}
.ns-checkout-review-bottom {
grid-template-columns: minmax(0, 1fr);
grid-template-areas:
"totals"
"codes"
"submit";
align-items: start;
}
.ns-checkout-review-bottom.has-order-fields {
grid-template-areas:
"totals"
"codes"
"order-fields"
"submit";
}
.ns-checkout-review-left,
.ns-checkout-review-right {
display: contents;
}
.ns-checkout-auth-panel + .ns-checkout-auth-panel {
padding-left: 0;
padding-top: 1.25rem;
border-left: 0;
border-top: 1px solid var(--ns-border);
}
.ns-checkout-action-row {
flex-direction: column;
align-items: stretch;
}
.ns-checkout-action-btn,
.ns-checkout-secondary-btn,
.ns-checkout-order-btn {
width: 100%;
}
.ns-checkout-cart-table-head {
display: none;
}
.ns-checkout-cart-row {
grid-template-columns: minmax(0, 1fr);
gap: 0.35rem;
}
.ns-checkout-option {
grid-template-columns: auto minmax(0, 1fr);
}
.ns-checkout-option-payment {
grid-template-columns: auto minmax(0, 1fr);
}
.ns-checkout-option-price {
grid-column: 2;
}
.ns-checkout-payment-logo-wrap {
grid-column: 2;
justify-content: flex-start;
}
}
.ns-product-detail {
padding: 2.5rem 0 clamp(5.5rem, 8vw, 7rem);
}
.ns-product-return-row {
display: flex;
margin-bottom: 1rem;
}
.ns-product-return-link {
display: inline-flex;
align-items: center;
gap: 0.5rem;
min-height: 2.25rem;
padding: 0.35rem 0.8rem;
border: 1px solid color-mix(in srgb, var(--ns-border) 80%, transparent);
border-radius: 999px;
color: var(--ns-text-muted);
background: #fff;
box-shadow: 0 0.35rem 1rem rgba(23, 32, 51, 0.04);
font-size: 0.93rem;
font-weight: 650;
line-height: 1.1;
text-decoration: none;
transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.ns-product-return-link::before {
content: "";
width: 0.55rem;
height: 0.55rem;
border-left: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg);
line-height: 1;
}
.ns-product-return-link:hover {
border-color: color-mix(in srgb, var(--ns-primary-color) 45%, var(--ns-border));
color: var(--ns-primary-color);
background: color-mix(in srgb, var(--ns-primary-color) 6%, #fff);
}
.ns-product-gallery,
.ns-product-purchase-card {
position: sticky;
top: 1.5rem;
}
@media (min-width: 992px) {
.ns-product-detail-main-row > [class*="col-"] {
display: flex;
}
.ns-product-detail-main-row .ns-product-gallery,
.ns-product-detail-main-row .ns-product-purchase-card {
width: 100%;
}
.ns-product-detail-main-row .ns-product-gallery {
display: flex;
flex-direction: column;
}
.ns-product-detail-main-row .ns-product-gallery-main {
flex: 1 1 auto;
}
.ns-product-detail-main-row .ns-product-detail-image,
.ns-product-detail-main-row .ns-product-detail-image-placeholder,
.ns-product-detail-main-row .ns-product-detail-video,
.ns-product-detail-main-row .ns-product-detail-document {
height: 100%;
}
}
.ns-product-gallery-main {
position: relative;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: #fff;
}
.ns-product-gallery-main.is-zoomable {
cursor: zoom-in;
}
.ns-product-gallery-main.is-zooming .ns-product-detail-image {
opacity: 0.96;
}
.ns-product-zoom-lens {
position: absolute;
z-index: 4;
width: clamp(10rem, 18vw, 13.5rem);
aspect-ratio: 1 / 1;
border: 1px solid rgba(15, 23, 42, 0.18);
border-radius: 50%;
background-color: #fff;
background-repeat: no-repeat;
box-shadow: 0 18px 45px rgba(15, 23, 42, 0.22);
pointer-events: none;
}
.ns-product-detail-image,
.ns-product-detail-image-placeholder {
display: block;
width: 100%;
aspect-ratio: 1 / 1;
}
.ns-product-detail-image {
object-fit: contain;
padding: clamp(1rem, 3vw, 2rem);
}
.ns-product-detail-video,
.ns-product-detail-document {
display: flex;
width: 100%;
aspect-ratio: 1 / 1;
}
.ns-product-detail-video {
display: block;
object-fit: contain;
background: #111827;
border: 0;
}
.ns-product-detail-document {
align-items: center;
justify-content: center;
flex-direction: column;
gap: 0.75rem;
color: var(--ns-text);
text-align: center;
text-decoration: none;
padding: clamp(1.5rem, 4vw, 3rem);
}
.ns-product-detail-document:hover {
color: var(--ns-text);
}
.ns-product-detail-document-icon {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 4.5rem;
height: 5.5rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: var(--ns-surface-muted);
padding: 0 0.75rem;
font-size: 0.9rem;
font-weight: 800;
}
.ns-product-detail-document-title {
max-width: min(30rem, 100%);
font-weight: 700;
}
.ns-product-detail-document-meta {
color: var(--ns-muted);
font-size: 0.875rem;
}
.ns-product-detail-document-download {
margin-top: 0.25rem;
}
.ns-product-image-modal .modal-content {
position: relative;
border: 0;
border-radius: 8px;
background: #fff;
}
.ns-product-image-modal .modal-body {
display: flex;
align-items: center;
justify-content: center;
min-height: min(78vh, 52rem);
padding: clamp(1.5rem, 4vw, 3rem);
}
.ns-product-image-carousel,
.ns-product-image-carousel .carousel-inner,
.ns-product-image-carousel .carousel-item {
width: 100%;
}
.ns-product-image-carousel .carousel-item {
align-items: center;
justify-content: center;
text-align: center;
}
.ns-product-image-carousel .carousel-item.active,
.ns-product-image-carousel .carousel-item-next,
.ns-product-image-carousel .carousel-item-prev {
display: flex;
}
.ns-product-image-carousel-control {
width: clamp(3rem, 7vw, 5rem);
}
.ns-product-image-carousel-control .carousel-control-prev-icon,
.ns-product-image-carousel-control .carousel-control-next-icon {
width: 2.75rem;
height: 2.75rem;
border-radius: 50%;
background-color: rgba(15, 23, 42, 0.62);
background-size: 1.25rem 1.25rem;
}
.ns-product-image-modal-close {
position: absolute;
top: 1rem;
right: 1rem;
z-index: 2;
}
.ns-product-image-modal-img,
.ns-product-video-modal {
display: block;
margin: 0 auto;
max-width: 100%;
max-height: 78vh;
object-fit: contain;
}
.ns-product-video-modal {
width: min(100%, 72rem);
aspect-ratio: 16 / 9;
background: #111827;
border: 0;
}
.ns-product-detail-image-placeholder {
background: var(--ns-surface-muted);
}
.ns-product-gallery-thumbs {
display: flex;
gap: 0.625rem;
margin-top: 0.75rem;
overflow-x: auto;
padding-bottom: 0.25rem;
}
.ns-product-gallery-thumb {
flex: 0 0 4.75rem;
width: 4.75rem;
height: 4.75rem;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: #fff;
padding: 0.35rem;
cursor: pointer;
}
.ns-product-gallery-thumb[hidden] {
display: none;
}
.ns-product-gallery-thumb.is-active {
border-color: var(--ns-primary-color);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ns-primary-color) 18%, transparent);
}
.ns-product-gallery-thumb img,
.ns-product-gallery-thumb-icon {
display: block;
width: 100%;
height: 100%;
}
.ns-product-gallery-thumb img {
object-fit: contain;
}
.ns-product-gallery-thumb-icon {
display: flex;
align-items: center;
justify-content: center;
border-radius: 6px;
color: var(--ns-text);
background: var(--ns-surface-muted);
font-size: 0.72rem;
font-weight: 800;
}
.ns-product-gallery-thumb-video-icon::before {
width: 0;
height: 0;
margin-left: 0.2rem;
border-top: 0.7rem solid transparent;
border-bottom: 0.7rem solid transparent;
border-left: 1rem solid currentColor;
content: "";
}
.ns-product-gallery-filters {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-top: 0.75rem;
}
.ns-product-gallery-filters button {
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
padding: 0.4rem 0.8rem;
font-size: 0.875rem;
font-weight: 700;
}
.ns-product-gallery-filters button:hover:not(.is-active),
.ns-product-gallery-filters button:focus-visible:not(.is-active) {
color: var(--ns-primary-color);
border-color: color-mix(in srgb, var(--ns-primary-color) 42%, var(--ns-border));
}
.ns-product-gallery-filters button.is-active {
border-color: var(--ns-primary-color);
color: var(--ns-primary-color);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ns-primary-color) 14%, transparent);
}
.ns-product-purchase-card {
display: flex;
flex-direction: column;
gap: 1rem;
border: 1px solid var(--ns-border);
border-radius: 8px;
background: #fff;
padding: clamp(1.25rem, 2.4vw, 1.75rem);
box-shadow: 0 1rem 2.5rem rgba(23, 32, 51, 0.08);
}
.ns-product-detail-topline,
.ns-product-detail-meta,
.ns-product-detail-action-row,
.ns-product-slider-heading,
.ns-product-slider-controls,
.ns-product-service-points {
display: flex;
align-items: center;
}
.ns-product-detail-topline,
.ns-product-slider-heading {
justify-content: space-between;
gap: 1rem;
}
.ns-product-detail-manufacturer {
display: inline-flex;
color: var(--ns-muted);
font-size: 0.875rem;
}
.ns-product-detail-wishlist {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.25rem;
height: 2.25rem;
margin-left: auto;
border: 1px solid color-mix(in srgb, var(--ns-border) 70%, transparent);
border-radius: 999px;
color: var(--ns-primary-color);
background: rgba(255, 255, 255, 0.92);
box-shadow: 0 0.5rem 1.25rem rgba(23, 32, 51, 0.12);
cursor: pointer;
}
.ns-product-detail-topline [data-ns-wishlist-form] {
margin-left: auto;
}
.ns-product-detail-wishlist.is-active,
.ns-product-detail-wishlist[aria-pressed="true"] {
color: #dc3545;
}
.ns-product-detail-wishlist svg {
width: 1.1rem;
height: 1.1rem;
fill: none;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-product-detail-wishlist:hover svg {
fill: #dc3545;
stroke: #dc3545;
}
.ns-product-detail-badges {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
}
.ns-product-title-block {
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.ns-product-detail-name {
margin: 0;
font-size: clamp(1.6rem, 3vw, 2.15rem);
line-height: 1.12;
letter-spacing: 0;
}
.ns-product-detail-summary {
color: var(--ns-text-muted);
}
.ns-product-detail-summary,
.ns-product-detail-summary p {
margin: 0;
}
.ns-product-detail-meta {
align-items: flex-start;
flex-direction: column;
flex-wrap: wrap;
gap: 0.25rem;
color: var(--ns-muted);
font-size: 0.875rem;
}
.ns-product-detail-sku {
display: inline-flex;
gap: 0.35rem;
}
.ns-product-detail-meta strong {
color: var(--ns-text);
font-weight: 600;
}
.ns-product-availability {
display: inline-flex;
align-items: center;
gap: 0.4rem;
}
.ns-product-availability.is-pending {
display: none;
}
.ns-stock-status {
width: fit-content;
max-width: 100%;
padding: 0.45rem 0.7rem;
border: 1px solid #dfe7e2;
border-radius: 999px;
background: #f7faf8;
color: var(--ns-text);
font-size: 0.92rem;
font-weight: 650;
line-height: 1.2;
}
.ns-product-availability-dot {
width: 0.55rem;
height: 0.55rem;
border-radius: 999px;
background: var(--ns-muted);
flex: 0 0 auto;
}
.ns-stock-status .ns-product-availability-dot {
width: 0.68rem;
height: 0.68rem;
}
.ns-product-availability-inStock .ns-product-availability-dot,
.ns-product-availability-lowStock .ns-product-availability-dot,
.ns-product-availability-quantity .ns-product-availability-dot {
background: #198754;
}
.ns-product-availability-backorder .ns-product-availability-dot {
background: #f59f00;
}
.ns-product-availability-outOfStock .ns-product-availability-dot {
background: #b42318;
}
.ns-stock-status.ns-product-availability-inStock,
.ns-stock-status.ns-product-availability-lowStock,
.ns-stock-status.ns-product-availability-quantity {
border-color: #badbcc;
background: #f0f8f3;
color: #146c43;
}
.ns-stock-status.ns-product-availability-backorder {
border-color: #ffe69c;
background: #fff8e6;
color: #8a5a00;
}
.ns-stock-status.ns-product-availability-outOfStock {
border-color: #f1b8b8;
background: #fff3f3;
color: #9f1f1f;
}
.ns-product-detail-price {
display: flex;
align-items: baseline;
flex-wrap: wrap;
gap: 0.75rem;
padding-top: 0.25rem;
}
.ns-price-current {
font-size: 1.65rem;
font-weight: 750;
}
.ns-price-sale {
color: var(--ns-primary-color);
}
.ns-price-original {
color: var(--ns-text-muted);
font-size: 1rem;
text-decoration: line-through;
}
.ns-product-detail-price-note {
margin-top: -0.7rem;
margin-bottom: 0.9rem;
color: var(--ns-muted);
font-size: 0.85rem;
font-weight: 400;
line-height: 1.35;
}
.ns-product-price-tiers {
border: 1px solid var(--ns-border);
border-radius: 0.45rem;
overflow: hidden;
}
.ns-product-price-tiers-title {
padding: 0.65rem 0.8rem;
background: color-mix(in srgb, var(--ns-surface-alt) 86%, #fff);
color: var(--ns-text);
font-size: 0.85rem;
font-weight: 700;
}
.ns-product-price-tiers table {
width: 100%;
margin: 0;
border-collapse: collapse;
font-size: 0.9rem;
}
.ns-product-price-tiers th,
.ns-product-price-tiers td {
padding: 0.55rem 0.8rem;
border-top: 1px solid var(--ns-border);
text-align: left;
}
.ns-product-price-tiers th {
color: var(--ns-text-muted);
font-size: 0.78rem;
font-weight: 700;
text-transform: uppercase;
}
.ns-product-price-tier-compare {
display: inline-block;
margin-left: 0.45rem;
color: var(--ns-text-muted);
text-decoration: line-through;
}
.ns-product-detail-variants {
display: flex;
flex-direction: column;
gap: 0.9rem;
padding-top: 0.25rem;
}
.ns-product-detail-variant-group {
margin: 0;
padding: 0;
border: 0;
}
.ns-product-detail-variant-group legend,
.ns-product-quantity-label {
margin-bottom: 0.45rem;
color: var(--ns-text);
font-size: 0.875rem;
font-weight: 700;
}
.ns-product-detail-variant-values {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
}
.ns-product-detail-variant-option {
min-height: 2.25rem;
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
padding: 0.35rem 0.75rem;
font-size: 0.875rem;
font-weight: 700;
}
.ns-product-detail-variant-option:hover:not(.is-selected) {
color: var(--ns-primary-color);
border-color: color-mix(in srgb, var(--ns-primary-color) 42%, var(--ns-border));
}
.ns-product-detail-variant-option.is-selected {
border-color: var(--ns-primary-color);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ns-primary-color) 16%, transparent);
}
.ns-product-detail-variant-color {
width: 2.25rem;
padding: 0;
background: var(--ns-variant-color, #fff);
}
.ns-product-detail-variant-color span {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
}
.ns-product-detail-variant-hint {
margin: 0;
color: #b42318;
font-size: 0.875rem;
}
.ns-product-detail-actions {
margin: 0;
}
.ns-product-detail-action-labels {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 0.75rem;
margin-bottom: 0.45rem;
}
.ns-product-detail-action-labels .ns-product-quantity-label {
margin: 0;
}
.ns-product-detail-subtotal {
display: flex;
align-items: baseline;
justify-content: flex-end;
gap: 0.35rem;
margin: 0;
color: var(--ns-text);
font-size: 0.9rem;
white-space: nowrap;
}
.ns-product-detail-subtotal strong {
font-size: 1.1rem;
font-weight: 700;
}
.ns-product-line-item-fields {
margin-bottom: 1rem;
}
.ns-product-detail-action-row {
gap: 0.75rem;
}
.ns-product-quantity-stepper {
display: inline-grid;
grid-template-columns: 2.4rem 3.6rem 2.4rem;
min-height: 2.75rem;
overflow: hidden;
border: 1px solid var(--ns-border);
border-radius: 999px;
background: #fff;
}
.ns-product-quantity-stepper button,
.ns-product-quantity-stepper input {
border: 0;
background: transparent;
text-align: center;
}
.ns-product-quantity-stepper button {
color: var(--ns-text);
font-size: 1.15rem;
font-weight: 700;
}
.ns-product-quantity-stepper input {
min-width: 0;
color: var(--ns-text);
font-weight: 700;
outline: 0;
box-shadow: none;
}
.ns-product-quantity-stepper:focus-within {
border-color: color-mix(in srgb, var(--ns-primary-color) 45%, var(--ns-border));
}
.ns-product-detail-action-row .ns-add-to-cart {
flex: 1;
min-height: 2.75rem;
}
.ns-product-service-points {
flex-wrap: wrap;
gap: 0.5rem;
color: var(--ns-muted);
font-size: 0.85rem;
}
.ns-product-service-points span {
display: inline-flex;
align-items: center;
gap: 0.35rem;
}
.ns-product-service-points span::before {
width: 0.35rem;
height: 0.35rem;
border-radius: 999px;
background: var(--ns-primary-color);
content: "";
}
.ns-product-detail-tabs,
.ns-product-slider-section {
margin-top: clamp(2.75rem, 6vw, 4.5rem);
}
.ns-product-detail-tab-content {
border: 1px solid var(--ns-border);
border-top: 0;
border-radius: 0 0 8px 8px;
background: #fff;
padding: clamp(1.25rem, 3vw, 2rem);
}
.ns-product-detail-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem;
margin: 0;
}
.ns-product-specification-groups {
display: grid;
gap: 1.75rem;
}
.ns-product-specification-group {
min-width: 0;
}
.ns-product-specification-group h3 {
display: flex;
align-items: center;
gap: 0.65rem;
margin: 0 0 0.9rem;
color: var(--ns-text);
font-size: 1.05rem;
font-weight: 750;
letter-spacing: 0;
}
.ns-product-specification-group h3::before {
width: 0.45rem;
height: 1.25rem;
border-radius: 999px;
background: var(--ns-primary-color);
content: "";
flex: 0 0 auto;
}
.ns-product-detail-list div {
display: grid;
grid-template-columns: minmax(8rem, 0.9fr) minmax(0, 1.1fr);
gap: 0.75rem;
align-items: baseline;
border: 1px solid rgba(17, 24, 39, 0.08);
border-radius: 6px;
background: #fbfcfd;
padding: 0.75rem 0.85rem;
}
.ns-product-detail-list dt {
color: var(--ns-muted);
font-size: 0.78rem;
font-weight: 650;
line-height: 1.35;
text-transform: uppercase;
}
.ns-product-detail-list dd,
.ns-product-detail-empty,
.ns-product-detail-service-text {
margin: 0;
}
.ns-product-detail-list dd {
color: var(--ns-text);
font-weight: 650;
line-height: 1.4;
overflow-wrap: anywhere;
}
.ns-product-slider-heading {
margin-bottom: 1rem;
}
.ns-product-slider-heading h2 {
margin: 0;
font-size: clamp(1.35rem, 2vw, 1.65rem);
letter-spacing: 0;
}
.ns-product-slider-controls {
gap: 0.5rem;
}
.ns-product-slider-controls button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.35rem;
height: 2.35rem;
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
font-size: 1.1rem;
font-weight: 800;
}
.ns-product-slider-track {
display: flex;
gap: 1rem;
overflow-x: auto;
overscroll-behavior-inline: contain;
scroll-snap-type: inline mandatory;
margin-top: -0.5rem;
padding: 0.5rem 0 0.75rem;
}
.ns-product-slider-item {
flex: 0 0 clamp(230px, 24vw, 280px);
width: clamp(230px, 24vw, 280px);
min-width: clamp(230px, 24vw, 280px);
scroll-snap-align: start;
}
.ns-product-slider-item .ns-product-card {
height: 100%;
}
.ns-product-mobile-purchase {
position: fixed;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
display: none;
align-items: center;
justify-content: space-between;
gap: 1rem;
border-top: 1px solid var(--ns-border);
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 -0.75rem 2rem rgba(23, 32, 51, 0.12);
padding: 0.75rem 1rem;
}
.ns-product-mobile-price {
display: flex;
flex-direction: column;
line-height: 1.15;
}
.ns-product-mobile-price span {
font-weight: 800;
}
.ns-product-mobile-price small {
color: var(--ns-muted);
text-decoration: line-through;
}
@media (max-width: 991.98px) {
.ns-product-gallery,
.ns-product-purchase-card {
position: static;
}
.ns-product-mobile-purchase {
display: flex;
}
}
@media (max-width: 575.98px) {
.ns-product-detail-action-row {
flex-direction: column;
align-items: stretch;
}
.ns-product-detail-list {
grid-template-columns: 1fr;
}
.ns-product-detail-list div {
grid-template-columns: 1fr;
gap: 0.3rem;
}
.ns-product-slider-item {
flex-basis: min(78vw, 280px);
width: min(78vw, 280px);
min-width: min(78vw, 280px);
}
.ns-product-slider-controls {
display: none;
}
}
.ns-hero-section {
padding: 2.5rem 0 1.75rem;
background: #fff;
}
.ns-hero-panel {
position: relative;
display: grid;
align-items: center;
min-height: min(620px, calc(100vh - 180px));
overflow: hidden;
border-radius: 8px;
background:
linear-gradient(135deg, color-mix(in srgb, var(--ns-primary-color) 10%, white), #fff);
}
.ns-hero-section-compact .ns-hero-panel,
.ns-hero-panel-compact {
min-height: clamp(320px, 38vw, 420px);
}
.ns-hero-section-compact .carousel-inner,
.ns-hero-section-compact .carousel-item,
.ns-hero-panel-compact {
height: clamp(320px, 38vw, 420px);
}
.ns-hero-panel-compact .ns-hero-content {
padding: clamp(1.5rem, 4vw, 3rem);
}
.ns-hero-section .carousel .ns-hero-panel-compact .ns-hero-content {
padding-bottom: calc(clamp(1.5rem, 4vw, 3rem) + 3.25rem);
}
.ns-hero-panel-compact .ns-hero-title {
font-size: clamp(1.7rem, 3.4vw, 2.65rem);
}
.ns-hero-panel-compact .ns-hero-copy {
max-width: 38rem;
font-size: 0.98rem;
line-height: 1.55;
}
.ns-hero-panel-has-image {
color: #fff;
background: #121926;
}
.ns-hero-image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.ns-hero-panel-has-image.ns-hero-panel-has-overlay::after {
position: absolute;
inset: 0;
content: "";
background: linear-gradient(90deg, rgba(18, 25, 38, 0.78), rgba(18, 25, 38, 0.16));
}
.ns-hero-content {
position: relative;
z-index: 1;
width: min(680px, 100%);
padding: clamp(2rem, 6vw, 5rem);
}
.ns-hero-panel:not(.ns-hero-panel-has-image) .ns-hero-content {
color: var(--ns-text);
}
.ns-hero-section .carousel {
position: relative;
}
.ns-hero-section .carousel .ns-hero-content {
padding-bottom: calc(clamp(2rem, 6vw, 5rem) + 3.25rem);
}
.ns-hero-section .carousel-control-prev,
.ns-hero-section .carousel-control-next {
top: auto;
bottom: 1.5rem;
z-index: 3;
width: 2.75rem;
height: 2.75rem;
border: 1px solid rgba(255, 255, 255, 0.72);
border-radius: 999px;
background: rgba(18, 25, 38, 0.62);
opacity: 1;
transition: background-color 0.15s ease, border-color 0.15s ease;
}
.ns-hero-section .carousel-control-prev {
right: 4.75rem;
left: auto;
}
.ns-hero-section .carousel-control-next {
right: 1.5rem;
}
.ns-hero-section .carousel-control-prev:hover,
.ns-hero-section .carousel-control-next:hover {
border-color: #fff;
background: rgba(18, 25, 38, 0.82);
}
.ns-hero-section .carousel-control-prev-icon,
.ns-hero-section .carousel-control-next-icon {
width: 1.15rem;
height: 1.15rem;
}
.ns-eyebrow {
margin: 0 0 0.75rem;
color: var(--ns-primary-color);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-hero-title {
max-width: 18ch;
margin: 0 0 0.75rem;
font-size: clamp(2rem, 5vw, 3.75rem);
line-height: 1.02;
letter-spacing: 0;
}
.ns-hero-copy {
max-width: 45rem;
margin: 0;
color: inherit;
font-size: 1.04rem;
line-height: 1.65;
}
.ns-hero-panel:not(.ns-hero-panel-has-image) .ns-hero-copy {
color: var(--ns-muted);
}
.ns-rich-text {
color: inherit;
line-height: 1.65;
}
.ns-rich-text > :last-child {
margin-bottom: 0;
}
.ns-rich-text + .btn,
.ns-hero-copy + .btn {
margin-top: 1.25rem;
}
.ns-btn-primary {
border-color: var(--ns-primary-color);
color: #fff;
background: var(--ns-primary-color);
box-shadow: 0 2px 8px color-mix(in srgb, var(--ns-primary-color) 30%, transparent);
}
.ns-btn-primary:hover {
border-color: color-mix(in srgb, var(--ns-primary-color) 82%, black);
color: #fff;
background: color-mix(in srgb, var(--ns-primary-color) 82%, black);
box-shadow: 0 4px 14px color-mix(in srgb, var(--ns-primary-color) 38%, transparent);
}
.ns-btn-secondary {
border-color: color-mix(in srgb, var(--ns-secondary-color) 32%, var(--ns-border));
color: color-mix(in srgb, var(--ns-secondary-color) 78%, black);
background: color-mix(in srgb, var(--ns-secondary-color) 7%, white);
}
.ns-btn-secondary:hover {
border-color: color-mix(in srgb, var(--ns-secondary-color) 58%, var(--ns-border));
background: color-mix(in srgb, var(--ns-secondary-color) 14%, white);
}
.ns-hero-visual {
position: relative;
min-height: 420px;
}
.ns-hero-card {
position: absolute;
border: 1px solid rgba(255, 255, 255, 0.7);
border-radius: 8px;
background: rgba(255, 255, 255, 0.86);
box-shadow: var(--ns-shadow);
}
.ns-hero-card-main {
inset: 24px 34px 32px 10px;
padding: 1.25rem;
}
.ns-hero-card-small {
width: 34%;
aspect-ratio: 1.15;
}
.ns-hero-card-one {
right: 0;
top: 0;
background: color-mix(in srgb, var(--ns-accent-color) 34%, white);
}
.ns-hero-card-two {
right: 9%;
bottom: 0;
background: color-mix(in srgb, var(--ns-primary-color) 18%, white);
}
.ns-product-visual {
display: block;
width: 100%;
aspect-ratio: 4 / 3;
border-radius: 8px;
background:
radial-gradient(circle at 34% 24%, rgba(255, 255, 255, 0.76), transparent 18%),
linear-gradient(135deg, var(--ns-primary-color), var(--ns-accent-color));
}
.ns-product-visual-large {
height: 70%;
aspect-ratio: auto;
}
.ns-hero-card-title,
.ns-hero-card-line {
display: block;
height: 14px;
margin-top: 1rem;
border-radius: 999px;
background: rgba(23, 32, 51, 0.16);
}
.ns-hero-card-title {
width: 56%;
height: 22px;
}
.ns-hero-card-line {
width: 72%;
}
.ns-hero-card-line-short {
width: 42%;
}
.ns-category-strip {
padding: 1.25rem 0 0.75rem;
background: #fff;
}
.ns-section {
padding: 2.5rem 0 4.5rem;
}
.ns-home-section {
padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}
.ns-home-section:last-child {
padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}
.ns-home-section + .ns-home-section {
padding-top: clamp(1.5rem, 3vw, 2.5rem);
}
.ns-home-linked-box {
position: relative;
}
.ns-home-box-link {
position: absolute;
inset: 0;
z-index: 2;
display: block;
border-radius: inherit;
color: inherit;
text-decoration: none;
}
.ns-section-muted {
background: var(--ns-surface-muted);
}
.ns-section-heading,
.ns-product-toolbar {
margin-bottom: 2rem;
}
.ns-section-heading h2,
.ns-product-toolbar h2 {
margin: 0;
font-size: clamp(1.7rem, 3vw, 2.35rem);
line-height: 1.05;
letter-spacing: 0;
}
.ns-section-heading h2::after {
content: "";
display: block;
width: 2.5rem;
height: 3px;
margin-top: 0.65rem;
border-radius: 999px;
background: var(--ns-accent-color);
}
.ns-product-toolbar {
display: flex;
align-items: end;
justify-content: space-between;
gap: 1.5rem;
}
.ns-product-filter {
display: flex;
align-items: center;
gap: 0.75rem;
color: var(--ns-muted);
font-size: 0.9rem;
font-weight: 700;
white-space: nowrap;
}
.ns-product-filter .form-select {
min-width: 10rem;
}
.ns-category-card,
.ns-product-card,
.ns-benefit,
.ns-teaser-card {
height: 100%;
border-radius: 8px;
background: var(--ns-surface);
box-shadow: 0 2px 6px rgba(23, 32, 51, 0.06), 0 10px 28px rgba(23, 32, 51, 0.08);
}
.ns-category-card {
position: relative;
display: flex;
align-items: center;
gap: 1rem;
min-height: 112px;
padding: 1rem;
color: inherit;
text-decoration: none;
overflow: hidden;
}
.ns-category-card:hover {
color: inherit;
box-shadow: 0 6px 20px rgba(23, 32, 51, 0.10), 0 24px 52px rgba(23, 32, 51, 0.11);
transform: translateY(-2px);
}
.ns-category-section-grid .ns-category-card {
border: 0;
background: transparent;
box-shadow: none;
}
.ns-category-section-grid .ns-category-icon {
background: color-mix(in srgb, var(--ns-primary-color) 10%, white);
}
.ns-category-section-cards .ns-category-card {
transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.ns-category-section-cards .ns-category-card:hover {
box-shadow: 0 16px 42px rgba(23, 32, 51, 0.1);
}
.ns-category-section-tiles .ns-category-card {
align-items: flex-start;
flex-direction: column;
justify-content: flex-end;
min-height: 220px;
padding: 1.4rem;
color: #fff;
background:
linear-gradient(135deg, color-mix(in srgb, var(--ns-primary-color) 86%, #121926), color-mix(in srgb, var(--ns-secondary-color) 68%, #121926));
}
.ns-category-section-tiles .ns-category-card-content {
position: relative;
z-index: 2;
}
.ns-category-background-image,
.ns-category-tile-overlay {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.ns-category-background-image {
z-index: 0;
object-fit: cover;
transition: transform 0.25s ease;
}
.ns-category-tile-overlay {
z-index: 1;
background: linear-gradient(180deg, rgba(12, 18, 28, 0.08) 20%, rgba(12, 18, 28, 0.82) 100%);
}
.ns-category-section-tiles .ns-category-card:hover .ns-category-background-image {
transform: scale(1.035);
}
.ns-category-section-tiles .ns-category-card:hover {
color: #fff;
border-color: rgba(255, 255, 255, 0.38);
}
.ns-category-section-tiles .ns-category-icon {
width: 64px;
height: 64px;
background: rgba(255, 255, 255, 0.2);
}
.ns-category-section-tiles .ns-category-copy {
color: rgba(255, 255, 255, 0.82);
}
.ns-category-icon {
flex: 0 0 auto;
width: 50px;
height: 50px;
border-radius: 8px;
background: color-mix(in srgb, var(--ns-primary-color) 14%, white);
}
.ns-category-image {
flex: 0 0 auto;
width: 64px;
height: 64px;
border-radius: 8px;
object-fit: cover;
background: var(--ns-surface-muted);
}
.ns-category-title {
display: block;
font-size: 1rem;
font-weight: 800;
}
.ns-category-copy {
display: block;
color: var(--ns-muted);
font-size: 0.9rem;
line-height: 1.45;
}
.ns-category-children {
--ns-category-children-gap: clamp(2rem, 4vw, 3rem);
padding: var(--ns-category-children-gap) 0;
}
.ns-category-children + .ns-catalog-section {
padding-top: 0;
}
.ns-product-card {
position: relative;
display: flex;
flex-direction: column;
overflow: hidden;
border-radius: 12px;
border-top: 3px solid transparent;
}
.ns-teaser-card {
overflow: hidden;
}
.ns-teaser-section-grid .ns-teaser-card {
border: 0;
background: transparent;
box-shadow: none;
}
.ns-teaser-section-grid .ns-teaser-image {
border-radius: 8px;
}
.ns-teaser-section-grid .ns-teaser-body {
padding: 1rem 0 0;
}
.ns-teaser-section-cards .ns-teaser-card {
transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.ns-teaser-section-cards .ns-teaser-card:hover {
box-shadow: 0 6px 20px rgba(23, 32, 51, 0.10), 0 24px 52px rgba(23, 32, 51, 0.11);
transform: translateY(-2px);
}
.ns-teaser-section-tiles .ns-teaser-card {
position: relative;
min-height: 320px;
color: #fff;
background: #121926;
}
.ns-teaser-section-tiles .ns-teaser-card-has-overlay::after {
position: absolute;
inset: 0;
content: "";
background: linear-gradient(180deg, rgba(18, 25, 38, 0.08), rgba(18, 25, 38, 0.82));
}
.ns-teaser-image,
.ns-product-image,
.ns-text-image-media {
display: block;
width: 100%;
object-fit: cover;
}
.ns-teaser-image {
aspect-ratio: 16 / 10;
}
.ns-teaser-section-tiles .ns-teaser-image {
position: absolute;
inset: 0;
height: 100%;
aspect-ratio: auto;
}
.ns-product-image {
aspect-ratio: 4 / 3;
border-radius: 8px;
object-fit: contain;
}
.ns-product-section-grid .ns-product-card {
border: 0;
background: transparent;
box-shadow: none;
}
.ns-product-section-grid .ns-product-image-link {
padding: 0;
border-radius: 8px;
background: color-mix(in srgb, var(--ns-primary-color) 5%, white);
}
.ns-product-section-grid .ns-product-body {
padding: 1rem 0 0;
}
.ns-product-section-cards .ns-product-card {
transition: box-shadow 0.2s ease, transform 0.2s ease, border-top-color 0.2s ease;
}
.ns-product-section-cards .ns-product-card:hover {
border-top-color: var(--ns-primary-color);
box-shadow: 0 6px 20px rgba(23, 32, 51, 0.10), 0 24px 52px rgba(23, 32, 51, 0.11);
transform: translateY(-5px);
}
.ns-product-section-tiles .ns-product-card {
position: relative;
min-height: 360px;
overflow: hidden;
color: #fff;
background: #121926;
}
.ns-product-section-tiles .ns-product-image-link {
position: absolute;
inset: 0;
padding: 0;
background: #121926;
}
.ns-product-section-tiles .ns-product-image-link::after {
position: absolute;
inset: 0;
content: "";
background: linear-gradient(180deg, rgba(18, 25, 38, 0.08), rgba(18, 25, 38, 0.82));
}
.ns-product-section-tiles .ns-product-image,
.ns-product-section-tiles .ns-product-visual {
height: 100%;
aspect-ratio: auto;
border-radius: 0;
object-fit: cover;
}
.ns-product-section-tiles .ns-product-body {
position: absolute;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
padding: 1.5rem;
}
.ns-product-section-tiles .ns-product-body a,
.ns-product-section-tiles .ns-product-tagline,
.ns-product-section-tiles .ns-product-price {
color: #fff;
}
.ns-teaser-body {
padding: 1.25rem;
}
.ns-teaser-section-tiles .ns-teaser-body {
position: absolute;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
padding: 1.5rem;
}
.ns-teaser-body h2,
.ns-text-image h2 {
margin: 0 0 0.75rem;
font-size: clamp(1.35rem, 2.3vw, 1.85rem);
letter-spacing: 0;
}
.ns-inline-link {
display: inline-flex;
margin-top: 1rem;
color: var(--ns-primary-color);
font-weight: 800;
text-decoration: none;
}
.ns-inline-link:hover {
color: color-mix(in srgb, var(--ns-primary-color) 78%, black);
}
.ns-teaser-section-tiles .ns-inline-link,
.ns-teaser-section-tiles .ns-inline-link:hover {
color: #fff;
}
.ns-product-image-link {
position: relative;
display: block;
padding: 1.45rem 0.85rem 0.85rem;
background: #fff;
}
.ns-product-badges {
position: absolute;
top: 0.85rem;
left: 0.85rem;
z-index: 2;
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
max-width: calc(100% - 1.7rem);
}
.ns-product-badge {
padding: 0.25rem 0.55rem;
border-radius: 999px;
color: #fff;
background: var(--ns-product-badge-color, var(--ns-primary-color));
font-size: 0.75rem;
font-weight: 800;
line-height: 1.2;
}
.ns-product-wishlist-preview {
position: absolute;
top: 0.85rem;
right: 0.85rem;
z-index: 3;
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.25rem;
height: 2.25rem;
border: 1px solid color-mix(in srgb, var(--ns-border) 70%, transparent);
border-radius: 999px;
color: var(--ns-text);
background: rgba(255, 255, 255, 0.92);
box-shadow: 0 0.5rem 1.25rem rgba(23, 32, 51, 0.12);
opacity: 0;
transform: translateY(-0.25rem);
transition: opacity 0.15s ease, transform 0.15s ease, color 0.15s ease;
pointer-events: none;
cursor: pointer;
}
.ns-product-wishlist-preview button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: 0;
border: 0;
color: inherit;
background: transparent;
cursor: pointer;
}
.ns-product-card:hover .ns-product-wishlist-preview,
.ns-product-card:focus-within .ns-product-wishlist-preview {
color: var(--ns-primary-color);
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
.ns-product-wishlist-preview.is-active {
color: #dc3545;
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
.ns-product-wishlist-preview svg {
width: 1.1rem;
height: 1.1rem;
fill: none;
stroke: currentColor;
stroke-width: 1.9;
stroke-linecap: round;
stroke-linejoin: round;
}
.ns-product-wishlist-preview:hover svg {
fill: #dc3545;
stroke: #dc3545;
}
.ns-product-wishlist-preview.is-active svg,
.ns-product-detail-wishlist.is-active svg,
.ns-product-detail-wishlist[aria-pressed="true"] svg {
fill: #dc3545;
stroke: #dc3545;
}
.ns-product-visual-2 {
background:
radial-gradient(circle at 70% 28%, rgba(255, 255, 255, 0.76), transparent 18%),
linear-gradient(135deg, var(--ns-secondary-color), var(--ns-primary-color));
}
.ns-wishlist-page {
background: var(--ns-surface);
}
.ns-wishlist-page__inner {
width: min(1180px, calc(100% - 2rem));
margin: 0 auto;
padding: clamp(2.5rem, 5vw, 5rem) 0;
}
.ns-wishlist-header {
margin-bottom: 1.5rem;
}
.ns-wishlist-header h1 {
margin: 0;
color: var(--ns-text);
font-size: clamp(2rem, 4vw, 3.25rem);
font-weight: 800;
}
.ns-wishlist-empty {
display: grid;
gap: 1rem;
align-items: start;
max-width: 34rem;
padding: 2rem;
border: 1px solid var(--ns-border);
border-radius: 0.75rem;
background: #fff;
}
.ns-wishlist-empty p {
margin: 0;
color: var(--ns-muted);
}
.ns-wishlist-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 1.25rem;
}
.ns-product-visual-3 {
background:
radial-gradient(circle at 42% 28%, rgba(255, 255, 255, 0.74), transparent 18%),
linear-gradient(135deg, var(--ns-accent-color), var(--ns-secondary-color));
}
.ns-product-visual-4 {
background:
radial-gradient(circle at 60% 22%, rgba(255, 255, 255, 0.74), transparent 18%),
linear-gradient(135deg, color-mix(in srgb, var(--ns-primary-color) 70%, white), var(--ns-secondary-color));
}
.ns-product-body {
display: flex;
flex: 1;
flex-direction: column;
padding: 1rem 1.25rem 1.25rem;
}
.ns-product-section-cards .ns-product-content {
min-height: 6.35rem;
}
.ns-product-manufacturer,
.ns-product-tagline {
margin: 0 0 0.35rem;
color: var(--ns-muted);
font-size: 0.88rem;
}
.ns-product-manufacturer {
font-size: 0.78rem;
letter-spacing: 0;
}
.ns-product-section-cards .ns-product-tagline {
display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.ns-product-search-match {
display: grid;
gap: 0.18rem;
margin-top: 0.55rem;
padding: 0.55rem 0.65rem;
border: 1px solid color-mix(in srgb, var(--ns-primary-color) 22%, var(--ns-border));
border-radius: 8px;
background: color-mix(in srgb, var(--ns-primary-color) 6%, #fff);
font-size: 0.78rem;
line-height: 1.3;
}
.ns-product-search-match-label {
color: var(--ns-primary-color);
font-weight: 800;
}
.ns-product-search-match-variant {
overflow: hidden;
color: var(--ns-text);
font-weight: 750;
text-overflow: ellipsis;
white-space: nowrap;
}
.ns-product-search-match-detail {
display: -webkit-box;
overflow: hidden;
color: var(--ns-text-muted);
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.ns-product-body h2,
.ns-product-body h3 {
margin: 0 0 0.55rem;
font-size: 1.12rem;
font-weight: 650;
line-height: 1.28;
letter-spacing: 0;
}
.ns-product-body h2 a,
.ns-product-body h3 a {
color: var(--ns-text);
text-decoration: none;
}
.ns-product-section-cards .ns-product-body h2 a,
.ns-product-section-cards .ns-product-body h3 a {
display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.ns-product-body h2 a:hover,
.ns-product-body h3 a:hover {
color: var(--ns-primary-color);
}
.ns-product-price-row {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 0.45rem;
}
.ns-product-price-slot {
display: flex;
align-items: flex-end;
min-height: 2.35rem;
margin-top: auto;
padding-top: 0.75rem;
}
.ns-product-price,
.ns-product-price-compare {
font-weight: 800;
}
.ns-product-price {
font-size: 1.12rem;
}
.ns-product-price-sale {
color: #b42318;
}
.ns-product-price-compare {
color: var(--ns-muted);
font-size: 0.88rem;
text-decoration: line-through;
}
.ns-product-variant-preview {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.ns-product-section-cards .ns-product-variant-slot {
min-height: 4.2rem;
margin-top: 0.75rem;
}
.ns-product-variant-group {
display: flex;
align-items: center;
gap: 0.45rem;
min-width: 0;
}
.ns-product-variant-group-label {
flex: 0 0 auto;
color: var(--ns-muted);
font-size: 0.75rem;
font-weight: 700;
line-height: 1;
}
.ns-product-variant-group-values {
display: flex;
flex-wrap: wrap;
gap: 0.35rem;
min-width: 0;
}
.ns-product-variant-swatch {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.85rem;
min-height: 1.85rem;
border: 1px solid var(--ns-border);
border-radius: 999px;
color: var(--ns-text);
background: #fff;
font-size: 0.78rem;
font-weight: 800;
line-height: 1;
text-decoration: none;
}
.ns-product-variant-swatch:hover {
color: var(--ns-primary-color);
border-color: color-mix(in srgb, var(--ns-primary-color) 42%, var(--ns-border));
}
.ns-product-variant-swatch-text {
padding: 0.35rem 0.55rem;
}
.ns-product-variant-swatch-color {
width: 1.85rem;
height: 1.85rem;
background: var(--ns-product-variant-color, var(--ns-surface));
}
.ns-product-variant-swatch-color span {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
}
.ns-product-variant-swatch-image {
overflow: hidden;
padding: 0;
}
.ns-product-variant-swatch-image img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.ns-product-variant-swatch-more {
padding: 0.35rem 0.55rem;
color: var(--ns-muted);
background: color-mix(in srgb, var(--ns-border) 28%, white);
}
.ns-product-action {
border-color: color-mix(in srgb, var(--ns-primary-color) 55%, white);
color: var(--ns-primary-color);
}
.ns-benefit {
padding: 1.5rem;
border-top: 3px solid var(--ns-accent-color);
}
.ns-benefit h2 {
margin: 0 0 0.75rem;
font-size: 1.25rem;
}
.ns-benefit p {
margin: 0;
color: var(--ns-muted);
line-height: 1.65;
}
.ns-text-image-media {
max-height: 520px;
border-radius: 8px;
box-shadow: var(--ns-shadow);
}
.ns-text-image-media-link {
display: block;
border-radius: 8px;
color: inherit;
text-decoration: none;
}
.ns-text-image-wide .row {
--bs-gutter-x: clamp(2rem, 5vw, 5rem);
}
.ns-text-image-wide h2 {
max-width: 15ch;
font-size: clamp(1.8rem, 3.5vw, 3rem);
}
.ns-text-image-wide .ns-rich-text {
max-width: 44rem;
font-size: 1.04rem;
}
.ns-text-image-wide .ns-text-image-media {
width: 100%;
max-height: 560px;
}
.ns-text-image-compact .container {
max-width: 960px;
}
.ns-text-image-compact .row {
--bs-gutter-x: 1.5rem;
}
.ns-text-image-compact h2 {
font-size: clamp(1.35rem, 2vw, 1.85rem);
}
.ns-text-image-compact .ns-rich-text {
font-size: 0.96rem;
}
.ns-text-image-compact .ns-text-image-media {
max-height: 320px;
}
.ns-site-footer {
flex-shrink: 0;
padding: 3rem 0;
color: var(--ns-footer-text-color, #dce5f4);
background: var(--ns-footer-background-color, #121926);
border-top: 3px solid var(--ns-accent-color);
}
.ns-footer-grid {
display: grid;
grid-template-columns: 1fr;
gap: 2rem 1.5rem;
}
.ns-footer-column,
.ns-footer-intro-column {
min-width: 0;
}
.ns-footer-brand {
display: inline-flex;
margin-bottom: 0.75rem;
color: var(--ns-footer-heading-color, #fff);
font-size: 1.25rem;
font-weight: 800;
text-decoration: none;
}
.ns-footer-logo {
display: block;
width: auto;
max-width: min(220px, 100%);
max-height: 72px;
object-fit: contain;
}
.ns-footer-copy {
color: var(--ns-footer-text-color, #dce5f4);
}
.ns-footer-muted {
color: var(--ns-footer-muted-color, #98a2b3);
}
.ns-footer-social {
display: flex;
flex-wrap: wrap;
gap: 0.55rem;
margin-top: 1.35rem;
}
.ns-footer-social-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.25rem;
height: 2.25rem;
border: 1px solid var(--ns-footer-social-border-color, rgba(220, 229, 244, 0.26));
border-radius: 999px;
color: var(--ns-footer-text-color, #dce5f4);
text-decoration: none;
transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.ns-footer-social-link:hover {
color: var(--ns-footer-link-hover-color, #fff);
background: var(--ns-footer-social-hover-background, rgba(255, 255, 255, 0.08));
border-color: var(--ns-footer-link-hover-color, #fff);
}
.ns-footer-social-link svg {
width: 1.15rem;
height: 1.15rem;
fill: currentColor;
}
.ns-footer-social-link svg rect,
.ns-footer-social-link svg circle {
fill: none;
stroke: currentColor;
stroke-width: 1.8;
}
.ns-footer-heading {
margin: 0 0 0.75rem;
color: var(--ns-footer-heading-color, #fff);
font-size: 0.9rem;
font-weight: 800;
text-transform: uppercase;
}
.ns-footer-contact-line {
margin: 0 0 0.35rem;
color: var(--ns-footer-text-color, #dce5f4);
}
.ns-footer-link {
display: table;
margin-bottom: 0.35rem;
color: var(--ns-footer-text-color, #dce5f4);
text-decoration: none;
}
.ns-footer-link:hover {
color: var(--ns-footer-link-hover-color, #fff);
}
.ns-footer-text:hover {
color: var(--ns-footer-text-color, #dce5f4);
}
@media (min-width: 576px) {
.ns-footer-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ns-footer-intro-column {
grid-column: 1 / -1;
}
}
@media (min-width: 992px) {
.ns-footer-grid {
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1.75rem;
}
.ns-footer-intro-column {
grid-column: auto;
}
.ns-footer-heading {
overflow-wrap: anywhere;
}
}
.ns-to-top {
position: fixed;
right: max(1rem, env(safe-area-inset-right));
bottom: max(1rem, env(safe-area-inset-bottom));
z-index: 1040;
display: inline-flex;
align-items: center;
justify-content: center;
width: 3rem;
height: 3rem;
border: 1px solid color-mix(in srgb, var(--ns-primary-color) 76%, white);
border-radius: 999px;
color: #fff;
background: var(--ns-primary-color);
box-shadow: 0 16px 36px color-mix(in srgb, var(--ns-primary-color) 28%, transparent);
opacity: 0;
pointer-events: none;
transform: translateY(0.75rem);
transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
}
.ns-to-top.is-visible {
opacity: 1;
pointer-events: auto;
transform: translateY(0);
}
.ns-to-top:hover,
.ns-to-top:focus-visible {
background: color-mix(in srgb, var(--ns-primary-color) 82%, black);
}
.ns-to-top:focus-visible {
outline: 3px solid color-mix(in srgb, var(--ns-accent-color) 55%, white);
outline-offset: 3px;
}
.ns-to-top span {
width: 0.8rem;
height: 0.8rem;
border-top: 2px solid currentColor;
border-left: 2px solid currentColor;
transform: translateY(0.18rem) rotate(45deg);
}
body.ns-storefront .form-control:focus,
body.ns-storefront .form-select:focus {
border-color: color-mix(in srgb, var(--ns-primary-color) 55%, var(--ns-border));
box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--ns-primary-color) 20%, transparent);
outline: 0;
}
@media (max-width: 1199.98px) and (min-width: 992px) {
.ns-header-grid {
grid-template-columns: minmax(10rem, 18rem) auto;
gap: 0.9rem 1.25rem;
padding: 0.75rem 0;
}
.ns-brand {
grid-column: 1;
grid-row: 1;
}
.ns-commerce-actions {
grid-column: 2;
grid-row: 1;
justify-self: end;
}
.ns-search {
grid-column: 1 / -1;
grid-row: 2;
max-width: none;
}
}
@media (max-width: 991.98px) {
.ns-pre-header-inner {
min-height: 1.95rem;
}
.ns-pre-header-link {
gap: 0.35rem;
font-size: 0.74rem;
}
.ns-pre-header-link-label {
display: none;
}
.ns-pre-header-toggle::after {
margin-left: 0.1rem;
}
.ns-header-grid {
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 0.65rem;
padding: 0.75rem 0;
min-height: 0;
}
.ns-brand {
grid-column: 1;
grid-row: 1;
min-width: 0;
}
.ns-brand-logo {
width: clamp(82px, 28vw, 132px);
height: 44px;
}
.ns-search {
grid-column: 1 / -1;
grid-row: 2;
max-width: none;
}
.ns-commerce-actions {
grid-column: 2;
grid-row: 1;
gap: 0.25rem;
justify-self: end;
}
.ns-action-link {
justify-content: center;
width: 2.5rem;
min-width: 2.5rem;
min-height: 2.5rem;
padding: 0;
}
.ns-action-text {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.ns-cart-icon-wrap .ns-action-count {
top: -0.55rem;
right: -0.65rem;
}
.ns-nav-toggle {
display: inline-flex;
grid-column: 3;
grid-row: 1;
}
.ns-navbar {
display: none;
}
.ns-home-section {
padding-bottom: 3rem;
}
.ns-home-section + .ns-home-section {
padding-top: 2.25rem;
}
.ns-hero-title {
max-width: 100%;
}
.ns-hero-section .carousel-control-prev,
.ns-hero-section .carousel-control-next {
bottom: 1rem;
width: 2.5rem;
height: 2.5rem;
}
.ns-hero-section .carousel-control-prev {
right: 4rem;
}
.ns-hero-section .carousel-control-next {
right: 1rem;
}
.ns-product-toolbar {
align-items: flex-start;
flex-direction: column;
}
}
.ns-checkout-inline-message {
border: 1px solid rgba(24, 144, 255, 0.28);
border-radius: 6px;
background: rgba(24, 144, 255, 0.08);
color: #183153;
padding: 0.85rem 1rem;
}
.ns-account-verification {
background: #f6f8fb;
min-height: 52vh;
padding: 4rem 1rem;
}
.ns-account-verification__inner {
max-width: 760px;
margin: 0 auto;
}
.ns-account-verification__panel {
background: #fff;
border: 1px solid rgba(15, 23, 42, 0.12);
border-radius: 8px;
box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
padding: clamp(1.5rem, 5vw, 3rem);
}
.ns-account-verification__panel h1 {
margin: 0 0 1rem;
font-size: clamp(1.75rem, 4vw, 2.5rem);
}
.ns-account-verification__panel p {
color: #526174;
font-size: 1.05rem;
margin-bottom: 1.5rem;
}
.ns-account-verification__form {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 0.75rem;
margin: 1.5rem 0;
}
.ns-account-verification-resend {
display: flex;
justify-content: flex-start;
margin: 1rem 0 1.5rem;
}
.ns-account-verification-resend__notice {
margin: 1rem 0 0;
}
.ns-account-page {
background: #f6f8fb;
min-height: 52vh;
padding: 4rem 1rem;
}
.ns-account-page__inner {
max-width: 760px;
margin: 0 auto;
}
.ns-account-page__inner--wide {
max-width: 1040px;
}
.ns-account-page__inner--dashboard {
display: grid;
grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
gap: 1.5rem;
max-width: 100%;
}
.ns-account-sidebar,
.ns-account-card {
background: #fff;
border: 1px solid rgba(15, 23, 42, 0.12);
border-radius: 8px;
box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
padding: clamp(1.5rem, 5vw, 3rem);
}
.ns-account-sidebar {
align-self: start;
padding: 1rem;
}
.ns-account-nav {
display: grid;
gap: 0.35rem;
}
.ns-account-nav__link {
display: block;
border-radius: 6px;
color: #172033;
font-weight: 700;
padding: 0.75rem 0.85rem;
text-decoration: none;
}
.ns-account-nav__link:hover,
.ns-account-nav__link.is-active {
background: rgba(13, 110, 253, 0.09);
color: var(--ns-primary-color);
}
.ns-account-card h1 {
margin: 0 0 1rem;
font-size: clamp(1.75rem, 4vw, 2.5rem);
}
.ns-account-card p {
color: #526174;
font-size: 1.05rem;
margin-bottom: 1.5rem;
}
.ns-account-display-name {
color: #172033;
font-weight: 700;
}
.ns-account-form {
display: grid;
gap: 0.85rem;
margin-top: 1.5rem;
}
.ns-account-form-submit {
justify-self: start;
width: auto;
}
.ns-account-custom-fields {
display: grid;
gap: 1.25rem;
margin-top: 0.5rem;
}
.ns-account-custom-field-group {
border-top: 1px solid rgba(15, 23, 42, 0.1);
display: grid;
gap: 0.85rem;
padding-top: 1.25rem;
}
.ns-account-custom-field-group h2 {
font-size: 1.05rem;
margin: 0;
}
.ns-account-custom-field-group > p {
color: #526174;
font-size: 0.95rem;
margin: 0;
}
.ns-account-form-field--wide {
grid-column: 1 / -1;
}
.ns-account-custom-field-readonly {
border-bottom: 1px solid rgba(15, 23, 42, 0.08);
padding-bottom: 0.75rem;
}
.ns-account-company-registration {
display: grid;
gap: 0.75rem;
}
.ns-account-company-registration__fields {
display: none;
}
.ns-account-company-registration__fields.is-active {
display: block;
}
.ns-account-dashboard-list {
display: grid;
gap: 0.85rem;
margin: 1.5rem 0;
}
.ns-account-dashboard-list div {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 1rem;
border-bottom: 1px solid rgba(15, 23, 42, 0.08);
padding-bottom: 0.85rem;
}
.ns-account-dashboard-list dt {
color: #6b7280;
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-account-dashboard-list dd {
margin: 0;
color: #172033;
text-align: right;
}
.ns-account-notice {
border: 1px solid rgba(24, 144, 255, 0.28);
border-radius: 6px;
background: rgba(24, 144, 255, 0.08);
color: #183153;
margin-bottom: 1.25rem;
padding: 0.85rem 1rem;
}
.ns-account-notice--success {
border-color: rgba(25, 135, 84, 0.28);
background: rgba(25, 135, 84, 0.08);
color: #0f5132;
}
.ns-account-notice--error {
border-color: rgba(220, 53, 69, 0.28);
background: rgba(220, 53, 69, 0.08);
color: #842029;
}
.ns-account-heading-row {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
margin-bottom: 1.5rem;
}
.ns-account-status-grid,
.ns-account-address-grid {
display: grid;
gap: 1rem;
margin: 1.5rem 0;
}
.ns-account-status-grid {
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.ns-account-status-card,
.ns-account-address-card {
border: 1px solid rgba(15, 23, 42, 0.12);
border-radius: 8px;
padding: 1rem;
}
.ns-account-status-card--open {
border-color: rgba(245, 158, 11, 0.45);
background: linear-gradient(180deg, rgba(255, 251, 235, 0.94), rgba(255, 255, 255, 0.98));
box-shadow: inset 4px 0 0 rgba(245, 158, 11, 0.78), 0 10px 22px rgba(120, 53, 15, 0.08);
}
.ns-account-status-card--open h2 {
color: #7c2d12;
}
.ns-account-status-card--open .ns-checkout-outline-btn {
border-color: rgba(245, 158, 11, 0.62);
background: rgba(255, 247, 237, 0.86);
color: #7c2d12;
}
.ns-account-status-card--open .ns-checkout-outline-btn:hover,
.ns-account-status-card--open .ns-checkout-outline-btn:focus-visible {
border-color: rgba(217, 119, 6, 0.86);
background: #f59e0b;
color: #fff;
}
.ns-account-status-card h2,
.ns-account-address-card h2,
.ns-account-readonly-section h2 {
font-size: 1.05rem;
margin: 0 0 0.5rem;
}
.ns-account-status-card p,
.ns-account-address-card p,
.ns-account-readonly-section p {
font-size: 0.95rem;
margin-bottom: 1rem;
}
.ns-account-address-card__badges {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin-bottom: 0.75rem;
}
.ns-account-address-card__badges span {
background: rgba(13, 110, 253, 0.09);
border-radius: 999px;
color: var(--ns-primary-color);
font-size: 0.78rem;
font-weight: 700;
padding: 0.25rem 0.55rem;
}
.ns-account-card-actions,
.ns-account-action-row,
.ns-account-checkbox-row {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.75rem;
}
.ns-account-text-button {
appearance: none;
background: transparent;
border: 0;
color: var(--ns-primary-color);
font-weight: 700;
padding: 0;
}
.ns-account-text-button--danger {
color: #b02a37;
}
.ns-account-empty {
border: 1px dashed rgba(15, 23, 42, 0.2);
border-radius: 8px;
color: #526174;
padding: 1rem;
}
.ns-account-form-grid {
display: grid;
gap: 0.85rem;
}
.ns-account-form-grid--two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ns-account-form-grid--street {
grid-template-columns: minmax(0, 2fr) minmax(7rem, 0.7fr);
}
.ns-account-form-grid--postcode {
grid-template-columns: minmax(8rem, 0.8fr) minmax(0, 1.2fr);
}
.ns-account-readonly-section {
border-top: 1px solid rgba(15, 23, 42, 0.1);
margin-top: 2rem;
padding-top: 1.5rem;
}
.ns-account-member-list {
display: grid;
gap: 0.75rem;
}
.ns-account-member-list div {
display: grid;
gap: 0.15rem;
}
.ns-account-order-list,
.ns-account-document-list {
display: grid;
gap: 1rem;
}
.ns-account-order-card,
.ns-account-document-card {
border: 1px solid rgba(15, 23, 42, 0.12);
border-radius: 8px;
padding: 1rem;
}
.ns-account-order-card__main,
.ns-account-document-card {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}
.ns-account-order-card__label {
color: #6b7280;
display: block;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-account-order-card__identifiers {
align-items: flex-start;
display: flex;
flex-wrap: wrap;
gap: 0.75rem 3rem;
min-width: 0;
}
.ns-account-order-card__identifiers > div {
min-width: 0;
}
.ns-account-order-card h2,
.ns-account-order-card__value,
.ns-account-document-card h3,
.ns-account-order-section h2 {
color: #172033;
font-size: 1.05rem;
margin: 0 0 0.35rem;
}
.ns-account-order-card__value {
overflow-wrap: anywhere;
}
.ns-account-order-card__total,
.ns-account-order-detail-total {
color: #172033;
font-size: 1.15rem;
font-weight: 800;
text-align: right;
white-space: nowrap;
}
.ns-account-order-detail-actions {
align-items: flex-end;
display: grid;
gap: 0.75rem;
justify-items: end;
}
.ns-account-order-meta,
.ns-account-order-detail-summary,
.ns-account-order-methods {
display: grid;
gap: 0.75rem;
margin: 1rem 0;
}
.ns-account-order-meta {
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.ns-account-order-detail-summary {
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
.ns-account-order-meta div,
.ns-account-order-detail-summary div,
.ns-account-order-methods div {
display: grid;
gap: 0.2rem;
}
.ns-account-order-meta dt,
.ns-account-order-detail-summary dt,
.ns-account-order-methods dt,
.ns-account-order-summary dt {
color: #6b7280;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-account-order-meta dd,
.ns-account-order-detail-summary dd,
.ns-account-order-methods dd,
.ns-account-order-summary dd {
color: #172033;
margin: 0;
}
.ns-account-status-pill {
background: rgba(13, 110, 253, 0.09);
border-radius: 999px;
color: var(--ns-primary-color);
display: inline-flex;
font-size: 0.82rem;
font-weight: 800;
padding: 0.25rem 0.6rem;
}
.ns-account-status-pill--success {
background: rgba(47, 179, 68, 0.12);
color: #2fb344;
}
.ns-account-status-pill--warning {
background: rgba(247, 103, 7, 0.13);
color: #f76707;
}
.ns-account-status-pill--danger {
background: rgba(214, 57, 57, 0.12);
color: #d63939;
}
.ns-account-status-pill--info {
background: rgba(66, 153, 225, 0.12);
color: #4299e1;
}
.ns-account-status-pill--neutral {
background: rgba(102, 115, 130, 0.12);
color: #667382;
}
.ns-account-back-link {
color: var(--ns-primary-color);
display: inline-flex;
font-weight: 700;
margin-bottom: 0.75rem;
text-decoration: none;
}
.ns-account-order-section {
border-top: 1px solid rgba(15, 23, 42, 0.1);
display: grid;
gap: 1rem;
margin-top: 1.5rem;
padding-top: 1.5rem;
}
.ns-account-order-table {
border: 1px solid rgba(15, 23, 42, 0.1);
border-radius: 8px;
overflow: hidden;
}
.ns-account-order-custom-fields {
display: grid;
gap: 0.85rem;
margin: 0;
}
.ns-account-order-custom-fields > div {
display: grid;
gap: 0.25rem;
}
.ns-account-order-custom-fields dt {
color: #526174;
font-size: 0.8rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-account-order-custom-fields dd {
color: var(--ns-text);
margin: 0;
}
.ns-account-order-custom-field-media {
display: inline-block;
max-width: min(100%, 18rem);
border: 1px solid var(--ns-border);
border-radius: 8px;
overflow: hidden;
background: var(--ns-surface-muted);
}
.ns-account-order-custom-field-media img {
display: block;
width: 100%;
height: auto;
}
.ns-account-order-table__row {
display: grid;
gap: 1rem;
grid-template-columns: minmax(0, 1.7fr) minmax(5rem, 0.45fr) minmax(7rem, 0.65fr) minmax(7rem, 0.65fr);
padding: 0.85rem 1rem;
}
.ns-account-order-table__row + .ns-account-order-table__row {
border-top: 1px solid rgba(15, 23, 42, 0.08);
}
.ns-account-order-table__row--head {
background: #f8fafc;
color: #526174;
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.ns-account-order-table__row > div:not(:first-child) {
text-align: right;
}
.ns-account-order-item-link {
color: var(--ns-text);
font-weight: 700;
text-decoration: none;
}
.ns-account-order-item-link:hover,
.ns-account-order-item-link:focus-visible {
color: var(--ns-primary-color);
text-decoration: underline;
text-underline-offset: 0.16em;
}
.ns-account-order-table span {
color: #526174;
display: block;
font-size: 0.9rem;
margin-top: 0.15rem;
}
.ns-account-order-summary {
display: grid;
gap: 0.5rem;
justify-self: end;
margin: 0;
min-width: min(100%, 24rem);
}
.ns-account-order-summary__row {
display: flex;
justify-content: space-between;
gap: 1rem;
}
.ns-account-order-summary__row--total {
border-top: 1px solid rgba(15, 23, 42, 0.14);
font-weight: 800;
padding-top: 0.65rem;
}
.ns-account-order-addresses {
display: grid;
gap: 1rem;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.ns-account-order-addresses article {
background: #f8fafc;
border-radius: 8px;
padding: 1rem;
}
.ns-account-order-addresses h3 {
font-size: 0.95rem;
margin: 0 0 0.5rem;
}
.ns-account-pagination {
align-items: center;
display: flex;
gap: 0.75rem;
justify-content: flex-end;
margin-top: 1.25rem;
}
@media (max-width: 575.98px) {
.ns-account-verification__form {
grid-template-columns: minmax(0, 1fr);
}
}
@media (max-width: 767.98px) {
.ns-search-related-groups {
grid-template-columns: minmax(0, 1fr);
}
.ns-search-related-list {
grid-template-columns: minmax(0, 1fr);
}
.ns-account-page__inner--dashboard {
grid-template-columns: minmax(0, 1fr);
}
.ns-account-heading-row {
display: grid;
}
.ns-account-order-card__main,
.ns-account-document-card {
display: grid;
}
.ns-account-order-card__total,
.ns-account-order-detail-total {
text-align: left;
}
.ns-account-order-detail-actions {
justify-items: start;
}
.ns-account-form-grid--two,
.ns-account-form-grid--street,
.ns-account-form-grid--postcode {
grid-template-columns: minmax(0, 1fr);
}
.ns-account-order-table__row,
.ns-account-order-table__row--head {
grid-template-columns: minmax(0, 1fr);
}
.ns-account-order-table__row--head {
display: none;
}
.ns-account-order-table__row > div:not(:first-child) {
text-align: left;
}
.ns-account-pagination {
justify-content: flex-start;
}
}
@media (min-width: 576px) {
.ns-account-page__inner--dashboard {
max-width: 540px;
}
}
@media (min-width: 768px) {
.ns-account-page__inner--dashboard {
max-width: 720px;
}
}
@media (min-width: 992px) {
.ns-account-page__inner--dashboard {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.ns-account-page__inner--dashboard {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
.ns-account-page__inner--dashboard {
max-width: 1320px;
}
}
@media (max-width: 575.98px) {
.ns-brand-name {
max-width: 11rem;
}
.ns-hero-card-main {
inset: 24px 18px 28px 0;
}
.ns-to-top {
width: 2.75rem;
height: 2.75rem;
}
}
