/**
 * Nosleepman — extend Storefront (styles + new homepage features)
 * White / light-gray premium look
 */

:root {
	--nsm-bg: #ffffff;
	--nsm-bg-soft: #f5f5f5;
	--nsm-bg-muted: #efefef;
	--nsm-border: #e5e5e5;
	--nsm-text: #111111;
	--nsm-text-muted: #707072;
	--nsm-heading: #111111;
	--nsm-dark: #111111;
	--nsm-max: 1440px;
	--nsm-gutter: clamp(1.25rem, 3vw, 2.75rem);
	--nsm-font: "DM Sans", system-ui, sans-serif;
	--nsm-display: "Instrument Sans", "DM Sans", system-ui, sans-serif;
	--nsm-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Base (extend Storefront) ---------- */
html {
	overflow-x: hidden !important;
	width: 100%;
	max-width: 100%;
}

body.nosleepman-theme {
	font-family: var(--nsm-font);
	color: var(--nsm-text);
	background: var(--nsm-bg);
	min-height: 100vh;
	min-height: 100dvh;
	overflow-x: hidden !important;
	width: 100%;
	max-width: 100%;
	position: relative;
}

/* Keep the footer at the bottom of the window on short pages */
body.nosleepman-theme #page,
body.nosleepman-theme .hfeed.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
	width: 100%;
	max-width: 100%;
	overflow-x: hidden !important;
}

body.admin-bar.nosleepman-theme #page,
body.admin-bar.nosleepman-theme .hfeed.site {
	min-height: calc(100vh - 32px);
	min-height: calc(100dvh - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar.nosleepman-theme #page,
	body.admin-bar.nosleepman-theme .hfeed.site {
		min-height: calc(100vh - 46px);
		min-height: calc(100dvh - 46px);
	}
}

body.nosleepman-theme .site-content {
	flex: 1 0 auto;
}

body.nosleepman-theme h1,
body.nosleepman-theme h2,
body.nosleepman-theme h3,
body.nosleepman-theme .site-title,
body.nosleepman-theme .site-branding .site-title a {
	font-family: var(--nsm-display);
	color: var(--nsm-heading);
}

body.nosleepman-theme .nsm-icon {
	display: block;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	overflow: visible;
	fill: currentColor;
}

body.nosleepman-theme .nsm-icon[fill="none"] {
	fill: none;
}

body.nosleepman-theme .nsm-fav-toggle.is-favourite .nsm-icon,
body.nosleepman-theme .nsm-fav-toggle.is-favourite .nsm-icon[fill="none"] {
	fill: currentColor;
}

body.nosleepman-theme .nsm-fav-toggle.is-favourite .nsm-icon path {
	fill: currentColor;
	stroke: currentColor;
}

/* Hide browser default focus ring on mouse click; keep keyboard focus via :focus-visible */
body.nosleepman-theme a:focus:not(:focus-visible),
body.nosleepman-theme button:focus:not(:focus-visible),
body.nosleepman-theme [tabindex]:focus:not(:focus-visible),
body.nosleepman-theme input:focus:not(:focus-visible),
body.nosleepman-theme select:focus:not(:focus-visible),
body.nosleepman-theme textarea:focus:not(:focus-visible),
body.nosleepman-theme summary:focus:not(:focus-visible) {
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme a:focus-visible,
body.nosleepman-theme button:focus-visible,
body.nosleepman-theme [tabindex]:focus-visible,
body.nosleepman-theme input:focus-visible,
body.nosleepman-theme select:focus-visible,
body.nosleepman-theme textarea:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

/* ---------- Notices / warnings / errors (site-wide) ---------- */
body.nosleepman-theme .woocommerce-message,
body.nosleepman-theme .woocommerce-info,
body.nosleepman-theme .woocommerce-error,
body.nosleepman-theme .woocommerce-noreviews,
body.nosleepman-theme .wc-block-components-notice-banner,
body.nosleepman-theme .woocommerce-NoticeGroup .woocommerce-error,
body.nosleepman-theme .woocommerce-NoticeGroup .woocommerce-message,
body.nosleepman-theme .woocommerce-NoticeGroup .woocommerce-info,
body.nosleepman-theme .wc-block-components-notice-banner.is-error,
body.nosleepman-theme .wc-block-components-notice-banner.is-warning,
body.nosleepman-theme .wc-block-components-notice-banner.is-info,
body.nosleepman-theme .wc-block-components-notice-banner.is-success {
	position: relative;
	display: block;
	margin: 0 0 1rem;
	padding: 0.95rem 1.1rem !important;
	border: 1px solid #111 !important;
	border-radius: 12px !important;
	border-top: 1px solid #111 !important;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: #111 !important;
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.45;
	list-style: none !important;
}

/* No leading notice icons (Storefront / WooCommerce ::before marks) */
body.nosleepman-theme .woocommerce-message::before,
body.nosleepman-theme .woocommerce-info::before,
body.nosleepman-theme .woocommerce-error::before,
body.nosleepman-theme .woocommerce-noreviews::before,
body.nosleepman-theme .wc-block-components-notice-banner::before {
	content: none !important;
	display: none !important;
}

/* Hide block-notice SVG icons; use shared red mark instead */
body.nosleepman-theme .wc-block-components-notice-banner > svg,
body.nosleepman-theme .wc-block-components-notice-banner__content > svg {
	display: none !important;
}

body.nosleepman-theme .woocommerce-message a,
body.nosleepman-theme .woocommerce-info a,
body.nosleepman-theme .woocommerce-error a,
body.nosleepman-theme .wc-block-components-notice-banner a {
	color: #111 !important;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

body.nosleepman-theme .woocommerce-error li,
body.nosleepman-theme .woocommerce-message li,
body.nosleepman-theme .woocommerce-info li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: #111 !important;
	list-style: none !important;
}

body.nosleepman-theme .woocommerce-error li + li,
body.nosleepman-theme .woocommerce-message li + li,
body.nosleepman-theme .woocommerce-info li + li {
	margin-top: 0.35rem !important;
}

body.nosleepman-theme .wc-block-components-notice-banner__content,
body.nosleepman-theme .wc-block-components-notice-banner__contents {
	color: #111 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Homepage full-bleed without 100vw.
 * 100vw includes the scrollbar gutter, so breakout sections become ~15px
 * wider than the page and spill out on the right. Make the content shell
 * full-width instead; sections are then simply width: 100%.
 */
.page-template-template-homepage .site-content > .col-full,
.page-template-template-homepage #content > .col-full {
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
	float: none;
	min-width: 0;
	overflow-x: clip;
}

.nsm-full-bleed,
.page-template-template-homepage .nsm-hero,
.page-template-template-homepage .nsm-editorial,
.page-template-template-homepage .nsm-featured,
.page-template-template-homepage .nsm-social,
.page-template-template-homepage .nsm-announcement,
.page-template-template-homepage .nsm-categories,
.page-template-template-homepage .nsm-story {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
}

.page-template-template-homepage .site-main,
.page-template-template-homepage.page-template-template-homepage .type-page,
.page-template-template-homepage:not(.has-post-thumbnail) .site-main {
	padding-top: 0;
	margin-bottom: 0;
}

.page-template-template-homepage .content-area {
	margin-bottom: 0;
	width: 100%;
	float: none;
	margin-left: 0;
	margin-right: 0;
}

/* ---------- Announcement (new feature) ---------- */
.nsm-announcement {
	background: var(--nsm-bg-soft);
	text-align: center;
	padding: 0.75rem var(--nsm-gutter);
	border-bottom: 1px solid var(--nsm-border);
}

.nsm-announcement__text {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--nsm-text);
}

/* ---------- Storefront header restyle (single row) ---------- */
body.nosleepman-theme .site-header {
	background: #fff !important;
	background-image: none !important;
	color: var(--nsm-text);
	border-bottom: 1px solid var(--nsm-border);
	padding: 0;
	margin-bottom: 0 !important;
	position: relative;
	z-index: 100060;
}

body.nosleepman-theme .site-header a {
	color: var(--nsm-text);
}

body.nosleepman-theme .storefront-primary-navigation {
	background: transparent;
	clear: both;
}

body.nosleepman-theme .storefront-primary-navigation .col-full {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0.85rem var(--nsm-gutter);
	box-sizing: border-box;
	float: none;
	min-height: 64px;
	position: relative;
}

body.nosleepman-theme .storefront-primary-navigation .col-full::before,
body.nosleepman-theme .storefront-primary-navigation .col-full::after {
	display: none;
}

body.nosleepman-theme .site-header .site-branding {
	float: none;
	width: auto;
	margin: 0;
	flex: 0 0 auto;
	order: 1;
	display: flex;
	align-items: center;
	height: 40px;
}

body.nosleepman-theme .site-header .site-title,
body.nosleepman-theme .site-header .site-title a {
	font-family: var(--nsm-display);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	margin: 0;
	line-height: 1;
	display: flex;
	align-items: center;
	height: 40px;
}

body.nosleepman-theme .site-header .site-description {
	display: none;
}

body.nosleepman-theme .site-header .site-logo-link img,
body.nosleepman-theme .site-header .custom-logo-link img {
	max-height: 28px;
	width: auto;
	border-radius: 0;
}

body.nosleepman-theme .storefront-primary-navigation .main-navigation {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	clear: none !important;
	flex: 0 0 auto;
	order: 2;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	z-index: 2;
}

body.nosleepman-theme .main-navigation div.menu {
	display: none;
}

body.nosleepman-theme .main-navigation .primary-navigation {
	display: block;
}

body.nosleepman-theme .main-navigation ul.menu,
body.nosleepman-theme .main-navigation ul.nav-menu {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0 1.75rem;
	margin: 0;
	padding: 0;
	float: none;
	max-height: none;
	overflow: visible;
	height: 40px;
}

body.nosleepman-theme .main-navigation ul li {
	float: none;
	display: flex;
	align-items: center;
	margin: 0;
	height: 40px;
}

body.nosleepman-theme .main-navigation ul.menu > li > a,
body.nosleepman-theme .main-navigation ul.nav-menu > li > a {
	position: relative;
	padding: 0;
	font-weight: 500;
	font-size: 0.9375rem;
	line-height: 1;
	height: 40px;
	display: flex;
	align-items: center;
	text-decoration: none;
}

body.nosleepman-theme .main-navigation ul.menu > li > a::after,
body.nosleepman-theme .main-navigation ul.nav-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.55rem;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.28s var(--nsm-ease);
}

body.nosleepman-theme .main-navigation ul.menu > li > a:hover::after,
body.nosleepman-theme .main-navigation ul.nav-menu > li > a:hover::after,
body.nosleepman-theme .main-navigation ul.menu > li.current-menu-item > a::after,
body.nosleepman-theme .main-navigation ul.nav-menu > li.current-menu-item > a::after,
body.nosleepman-theme .main-navigation ul.menu > li.current_page_item > a::after,
body.nosleepman-theme .main-navigation ul.nav-menu > li.current_page_item > a::after {
	transform: scaleX(1);
}

body.nosleepman-theme .site-header .site-search {
	float: none !important;
	width: 220px !important;
	margin: 0 0 0 auto !important;
	clear: none !important;
	order: 3;
	flex: 0 0 220px;
	display: flex;
	align-items: center;
	height: 40px;
}

body.nosleepman-theme .site-search .widget {
	margin: 0;
	width: 100%;
	height: 40px;
}

/* Kill Storefront Font Awesome search icon (causes overlap) */
body.nosleepman-theme .site-header .site-search .widget_product_search form::before,
body.nosleepman-theme .site-header .site-search form.woocommerce-product-search::before,
body.nosleepman-theme .site-header .widget_product_search form:not(.wp-block-search)::before {
	display: none !important;
	content: none !important;
	width: 0 !important;
	height: 0 !important;
}

body.nosleepman-theme .site-search form.woocommerce-product-search {
	margin: 0 !important;
	display: flex !important;
	flex-direction: row;
	align-items: center;
	width: 100%;
	height: 40px;
	background: var(--nsm-bg-soft);
	border-radius: 999px;
	padding: 0 10px 0 12px;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

body.nosleepman-theme .site-search input[type="search"],
body.nosleepman-theme .site-search input[type="text"],
body.nosleepman-theme .site-search .search-field,
body.nosleepman-theme .site-search .widget_product_search form input[type="search"],
body.nosleepman-theme .site-search .widget_product_search form input[type="text"] {
	flex: 1 1 auto;
	order: 2;
	width: auto !important;
	min-width: 0;
	height: 40px !important;
	min-height: 40px !important;
	max-height: 40px !important;
	line-height: 40px !important;
	margin: 0 !important;
	padding: 0 0 0 8px !important; /* space after left icon button */
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 0.875rem !important;
	color: var(--nsm-text);
	-webkit-appearance: none;
	appearance: none;
}

body.nosleepman-theme .site-search input::placeholder {
	color: #8a8a8a;
	opacity: 1;
}

/* Search icon button on the LEFT (Nike-style) — theme assets/icons/search.svg */
body.nosleepman-theme .site-search button,
body.nosleepman-theme .site-search input[type="submit"],
body.nosleepman-theme .site-search .widget_product_search #searchsubmit {
	position: static !important;
	transform: none !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	clip: auto !important;
	clip-path: none !important;
	order: 1;
	flex: 0 0 25px;
	width: 25px !important;
	height: 25px !important;
	min-width: 25px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
	overflow: hidden;
	cursor: pointer;
	background-color: transparent !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 25px 25px !important;
	background-image: url("../icons/search.svg") !important;
}

body.nosleepman-theme .site-search button::before,
body.nosleepman-theme .site-search button::after,
body.nosleepman-theme .site-search input[type="submit"]::before,
body.nosleepman-theme .site-search input[type="submit"]::after {
	display: none !important;
	content: none !important;
}

.nsm-header-wishlist,
.nsm-header-account {
	float: none;
	margin: 0 0 0 0.35rem;
	order: 4;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
}

.nsm-header-account {
	margin-left: 0.15rem;
}

.nsm-wishlist-link,
.nsm-account-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	color: var(--nsm-text);
	line-height: 0;
}

.nsm-wishlist-link svg,
.nsm-account-link svg {
	display: block;
	font-size: 25px;
	width: 1em;
	height: 1em;
	flex-shrink: 0;
	overflow: hidden;
}

.nsm-wishlist-link svg {
	transform: translate(0.5px, 0.5px);
}

.nsm-wishlist-link:hover,
.nsm-account-link:hover {
	background: var(--nsm-bg-soft);
}

body.nosleepman-theme .site-header-cart {
	float: none !important;
	width: auto !important;
	margin: 0 0 0 0.15rem !important;
	padding: 0 !important;
	order: 5;
	flex: 0 0 auto;
	list-style: none;
	display: flex;
	align-items: center;
	height: 40px;
	position: relative;
}

body.nosleepman-theme .site-header-cart > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	display: flex;
	align-items: center;
	height: 40px;
}

/* Clip root so the off-canvas bag never widens page scrollWidth */
body.nosleepman-theme .nsm-cart-drawer-root {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	overflow: clip;
	contain: strict;
	pointer-events: none;
	z-index: 100050;
	/* Fully remove from layout/scroll when closed */
	display: none;
}

body.nosleepman-theme.nsm-cart-drawer-open .nsm-cart-drawer-root {
	display: block;
	pointer-events: auto;
}

/*
 * Mini-cart panel — fixed inside the clip root only.
 * Hide any drawer <li> still under the header list (not the bag link).
 * Off-canvas absolute + translateX under the header expands page scrollWidth.
 */
body.nosleepman-theme #site-header-cart > li:not(:first-child) {
	display: none !important;
}

body.nosleepman-theme .nsm-cart-drawer-root > li {
	position: fixed !important;
	top: var(--nsm-cart-drawer-top, 0px) !important;
	right: 0 !important;
	left: auto !important;
	bottom: 0 !important;
	height: auto !important;
	width: min(480px, 100vw) !important;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	z-index: 1;
	background: #fff;
	box-shadow: none;
	border-left: 1px solid #ececec;
	border-top: 0;
	transform: translate3d(100%, 0, 0);
	transition: transform 0.35s var(--nsm-ease, cubic-bezier(0.22, 1, 0.36, 1));
	pointer-events: none;
	overflow: hidden;
}

@media (max-width: 480px) {
	body.nosleepman-theme .nsm-cart-drawer-root > li {
		width: 100vw !important;
		border-left: 0;
	}
}

body.nosleepman-theme.nsm-cart-drawer-open .nsm-cart-drawer-root > li {
	transform: translate3d(0, 0, 0);
	pointer-events: auto;
}

body.nosleepman-theme .site-header-cart .cart-contents {
	display: inline-flex !important;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	height: 40px !important;
	min-height: 40px !important;
	padding: 0 0.25rem !important;
	margin: 0 !important;
	line-height: 1 !important;
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
}

/* Storefront bag glyph — replaced by theme SVG */
body.nosleepman-theme .site-header-cart .cart-contents::before,
body.nosleepman-theme .site-header-cart .cart-contents::after {
	content: none !important;
	display: none !important;
}

body.nosleepman-theme .site-header-cart .cart-contents .nsm-header-bag-icon {
	font-size: 25px;
	width: 1em;
	height: 1em;
}

body.nosleepman-theme .site-header-cart .cart-contents .amount,
body.nosleepman-theme .site-header-cart .cart-contents .count {
	line-height: 1 !important;
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0;
	align-self: center;
}

/* Drawer chrome */
body.nosleepman-theme .nsm-cart-drawer__header {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.25rem;
	border-bottom: 1px solid #ececec;
}

body.nosleepman-theme .nsm-cart-drawer__title {
	margin: 0;
	font-family: var(--nsm-font-display, inherit);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

body.nosleepman-theme .nsm-cart-drawer__close {
	appearance: none;
	border: 0;
	background: transparent;
	width: 40px;
	height: 40px;
	padding: 0;
	margin: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #111;
}

body.nosleepman-theme .nsm-cart-drawer__close:hover {
	opacity: 0.65;
}

body.nosleepman-theme .nsm-cart-drawer__close svg {
	display: block;
	width: 18px;
	height: 18px;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart,
body.nosleepman-theme .site-header-cart .widget_shopping_cart {
	display: flex !important;
	flex: 1 1 auto;
	flex-direction: column;
	position: static !important;
	top: auto !important;
	left: 0 !important;
	right: auto !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	background: #fff;
	border: 0;
	box-shadow: none;
	white-space: normal;
	overflow: hidden;
	font-size: 0.875rem;
	z-index: auto;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .widget_shopping_cart_content,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .widget_shopping_cart_content {
	display: flex !important;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	height: 100%;
	padding: 0;
	overflow: hidden;
	visibility: visible !important;
	opacity: 1 !important;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .woocommerce-mini-cart,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .cart_list,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .woocommerce-mini-cart,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .cart_list,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget {
	display: block !important;
	flex: 1 1 auto !important;
	height: auto !important;
	max-height: none !important;
	min-height: 0 !important;
	overflow-x: hidden;
	overflow-y: auto !important;
	margin: 0 !important;
	padding: 0.75rem 1.25rem !important;
	list-style: none;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Kill Storefront hover-only collapse even when drawer is closed */
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li {
	display: block !important;
	visibility: visible !important;
	height: auto !important;
}

/* Product title link — keep black (Storefront uses purple for :visited) */
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:link,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:visited,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:hover,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:focus,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:active,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:link,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:visited,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:hover,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:focus,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:active {
	color: #111 !important;
	text-decoration: none;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .product_list_widget li > a:hover,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .product_list_widget li > a:hover {
	opacity: 0.7;
}

/* Mini-cart variation details — two columns to use space beside thumbnail */
body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-cart-attrs,
body.nosleepman-theme .site-header-cart .nsm-mini-cart-attrs {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.65rem 1.5rem;
	margin: 0.75rem 0 0;
	padding: 0 5.5rem 0 0;
	list-style: none;
	clear: both;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-cart-attrs__item,
body.nosleepman-theme .site-header-cart .nsm-mini-cart-attrs__item {
	margin: 0;
	padding: 0;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: #111;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-cart-attrs__label,
body.nosleepman-theme .site-header-cart .nsm-mini-cart-attrs__label {
	display: block;
	font-weight: 600;
	color: #111;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-cart-attrs__value,
body.nosleepman-theme .site-header-cart .nsm-mini-cart-attrs__value {
	display: block;
	margin-top: 0.1rem;
	color: #757575;
}

body.nosleepman-theme .nsm-cart-drawer-root .woocommerce-mini-cart__empty-message,
body.nosleepman-theme .site-header-cart .woocommerce-mini-cart__empty-message {
	margin: 1.25rem !important;
	padding: 0 !important;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .woocommerce-mini-cart__total,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .total,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .woocommerce-mini-cart__buttons,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .buttons,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .woocommerce-mini-cart__total,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .total,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .buttons {
	display: block !important;
	flex: 0 0 auto;
	white-space: normal;
	width: 100%;
	box-sizing: border-box;
	margin: 0 !important;
	padding: 1rem 1.25rem;
	background: #f7f7f7;
	visibility: visible !important;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .woocommerce-mini-cart__buttons,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .buttons,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .buttons {
	padding-top: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .woocommerce-mini-cart__buttons a,
body.nosleepman-theme .nsm-cart-drawer-root .widget_shopping_cart .buttons a,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .woocommerce-mini-cart__buttons a,
body.nosleepman-theme .site-header-cart .widget_shopping_cart .buttons a {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	margin: 0 !important;
}

/* Mini-cart quantity steppers */
body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty,
body.nosleepman-theme .site-header-cart .nsm-mini-qty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.65rem;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty__stepper,
body.nosleepman-theme .site-header-cart .nsm-mini-qty__stepper {
	display: inline-flex !important;
	align-items: stretch;
	border: 1px solid #ddd;
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
	float: none !important;
	width: auto;
	max-width: 118px;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn {
	appearance: none;
	border: 0;
	background: #fff;
	width: 34px;
	min-width: 34px;
	padding: 0;
	margin: 0;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
	color: #111;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn:hover,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn:hover {
	background: #f5f5f5;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn:focus,
body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn:focus-visible,
body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn:active,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn:focus,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn:focus-visible,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn:active {
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty .nsm-qty-btn .nsm-icon,
body.nosleepman-theme .site-header-cart .nsm-mini-qty .nsm-qty-btn .nsm-icon {
	width: 14px;
	height: 14px;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty__input.qty,
body.nosleepman-theme .site-header-cart .nsm-mini-qty__input.qty {
	width: 2.25rem !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0.45rem 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	text-align: center;
	font-size: 0.875rem;
	font-weight: 500;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty__input.qty::-webkit-outer-spin-button,
body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty__input.qty::-webkit-inner-spin-button,
body.nosleepman-theme .site-header-cart .nsm-mini-qty__input.qty::-webkit-outer-spin-button,
body.nosleepman-theme .site-header-cart .nsm-mini-qty__input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.nosleepman-theme .nsm-cart-drawer-root .nsm-mini-qty__price,
body.nosleepman-theme .site-header-cart .nsm-mini-qty__price {
	font-size: 0.875rem;
	font-weight: 500;
	color: #111;
	white-space: nowrap;
}

body.nosleepman-theme .nsm-cart-drawer-backdrop {
	position: fixed;
	top: var(--nsm-cart-drawer-top, 0px);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 100040;
	/* Invisible hit area to close on outside click — no page dimming */
	background: transparent;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

body.nosleepman-theme.nsm-cart-drawer-open .nsm-cart-drawer-backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.nosleepman-theme.nsm-cart-drawer-open {
	overflow: hidden;
}

@media (min-width: 769px) {
	/* No hover popover — drawer is click-only */
	body.nosleepman-theme .site-header-cart:hover .widget_shopping_cart,
	body.nosleepman-theme .site-header-cart.focus .widget_shopping_cart {
		display: flex !important;
		left: auto !important;
		right: auto !important;
	}

	body.nosleepman-theme .site-header-cart:hover .widget_shopping_cart .product_list_widget,
	body.nosleepman-theme .site-header-cart.focus .widget_shopping_cart .product_list_widget {
		height: auto !important;
	}

	body.nosleepman-theme.woocommerce-active .site-header .site-branding,
	body.nosleepman-theme.woocommerce-active .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .main-navigation,
	body.nosleepman-theme.woocommerce-active .site-header .site-header-cart {
		width: auto;
		float: none;
		clear: none;
	}

	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		width: 220px !important;
		margin-left: auto !important;
	}
}

/* Laptop / small desktop: keep one header row; collapse search to icon + popup */
@media (max-width: 1199px) and (min-width: 769px) {
	body.nosleepman-theme .storefront-primary-navigation .col-full {
		gap: 0.35rem;
		padding: 0.7rem max(1rem, var(--nsm-gutter));
	}

	body.nosleepman-theme .site-header .site-title,
	body.nosleepman-theme .site-header .site-title a {
		font-size: 1.05rem;
	}

	/* Keep nav centered in the header row (same as desktop). */
	body.nosleepman-theme .storefront-primary-navigation .main-navigation {
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		margin: 0 !important;
		flex: 0 0 auto;
		justify-content: center;
		min-width: 0;
		z-index: 2;
	}

	body.nosleepman-theme .main-navigation ul.menu,
	body.nosleepman-theme .main-navigation ul.nav-menu {
		justify-content: center;
		flex-wrap: nowrap;
		gap: 0 0.95rem;
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	body.nosleepman-theme .main-navigation ul.menu::-webkit-scrollbar,
	body.nosleepman-theme .main-navigation ul.nav-menu::-webkit-scrollbar {
		display: none;
	}

	body.nosleepman-theme .main-navigation ul.menu > li > a,
	body.nosleepman-theme .main-navigation ul.nav-menu > li > a {
		font-size: 0.875rem;
		white-space: nowrap;
	}

	body.nosleepman-theme .nsm-header-wishlist,
	body.nosleepman-theme .nsm-header-account {
		margin-left: 0;
	}

	body.nosleepman-theme .site-header-cart .cart-contents .amount,
	body.nosleepman-theme .site-header-cart .cart-contents .count {
		display: none !important;
	}

	body.nosleepman-theme .site-header-cart {
		margin-left: 0 !important;
	}
}

/* ≤1024: search collapses to icon; opens right-side search drawer */
@media (max-width: 1024px) {
	body.nosleepman-theme .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		position: relative;
		width: 40px !important;
		flex: 0 0 40px;
		margin: 0 0 0 auto !important;
		z-index: 20;
		overflow: visible;
	}

	body.nosleepman-theme .site-search .widget {
		width: 40px;
		overflow: visible;
	}

	body.nosleepman-theme .site-search form.woocommerce-product-search {
		position: relative;
		width: 40px;
		height: 40px;
		padding: 0;
		background: transparent;
		border-radius: 999px;
		justify-content: center;
		overflow: visible;
	}

	body.nosleepman-theme .site-search input[type="search"],
	body.nosleepman-theme .site-search input[type="text"],
	body.nosleepman-theme .site-search .search-field,
	body.nosleepman-theme .site-search .widget_product_search form input[type="search"],
	body.nosleepman-theme .site-search .widget_product_search form input[type="text"] {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: -1px !important;
		padding: 0 !important;
		border: 0 !important;
		clip: rect(0, 0, 0, 0) !important;
		overflow: hidden !important;
		opacity: 0;
		pointer-events: none;
	}

	body.nosleepman-theme .site-search button,
	body.nosleepman-theme .site-search input[type="submit"],
	body.nosleepman-theme .site-search .widget_product_search #searchsubmit {
		position: relative;
		z-index: 2;
		flex: 0 0 40px;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		border-radius: 999px !important;
		background-size: 25px 25px !important;
	}

	body.nosleepman-theme .site-search.is-open button,
	body.nosleepman-theme .site-search.is-open button:hover {
		background: var(--nsm-bg-soft);
	}
}

/* Drawer is cloned into body; hide it until the mobile menu is open. */
body.nosleepman-theme .nsm-nav-drawer,
body.nosleepman-theme .nsm-nav-drawer__backdrop {
	display: none;
}

/*
 * Phone + small tablet (≤768): one mobile header for every width below desktop.
 * Logo + Menu | search icon, wishlist, account, bag — no Storefront bottom bar.
 */
@media (max-width: 768px) {
	body.nosleepman-theme .storefront-handheld-footer-bar {
		display: none !important;
	}

	body.nosleepman-theme .storefront-primary-navigation .col-full {
		flex-wrap: nowrap;
		gap: 0.5rem;
		padding: 0.65rem max(1rem, var(--nsm-gutter));
		min-height: 56px;
	}

	body.nosleepman-theme .site-header .site-branding {
		order: 1;
		flex: 1 1 auto;
		min-width: 0;
	}

	body.nosleepman-theme .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		order: 2;
	}

	body.nosleepman-theme .nsm-header-wishlist {
		order: 3;
	}

	body.nosleepman-theme .nsm-header-account {
		order: 4;
	}

	body.nosleepman-theme .storefront-primary-navigation .main-navigation {
		order: 6;
		position: static;
		left: auto;
		transform: none;
		flex: 0 0 auto;
		width: auto !important;
		height: 40px;
		justify-content: center;
		z-index: 5;
	}

	body.nosleepman-theme .site-header-cart {
		order: 5;
	}

	body.nosleepman-theme .main-navigation .menu-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		position: relative;
		box-sizing: border-box;
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 999px;
		box-shadow: none !important;
		color: transparent;
		font-size: 0;
		line-height: 0;
		overflow: hidden;
		cursor: pointer;
		background-color: transparent !important;
		background-image: url("../icons/toggle-menu.svg") !important;
		background-repeat: no-repeat !important;
		background-position: center !important;
		background-size: 25px 25px !important;
	}

	body.nosleepman-theme .main-navigation .menu-toggle:hover {
		background-color: var(--nsm-bg-soft) !important;
	}

	body.nosleepman-theme .main-navigation .menu-toggle > span {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	body.nosleepman-theme .main-navigation .menu-toggle::before,
	body.nosleepman-theme .main-navigation .menu-toggle::after,
	body.nosleepman-theme .main-navigation .menu-toggle > span::before {
		content: none !important;
		display: none !important;
	}

	body.nosleepman-theme .main-navigation.toggled .menu-toggle {
		/* Keep hamburger in header; close lives inside the drawer */
		background-image: url("../icons/toggle-menu.svg") !important;
		background-size: 25px 25px !important;
	}

	/* Right-side menu drawer (matches search drawer width) */
	body.nosleepman-theme .nsm-nav-drawer {
		display: flex;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 100080;
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
		width: min(480px, 100vw);
		height: 100%;
		height: 100dvh;
		margin: 0;
		padding: 0;
		background: #fff;
		transform: translateX(100%);
		transition: transform 0.35s var(--nsm-ease);
		pointer-events: none;
		visibility: hidden;
	}

	body.nosleepman-theme.nsm-nav-open .nsm-nav-drawer,
	body.nosleepman-theme .main-navigation.toggled .nsm-nav-drawer {
		transform: translateX(0);
		pointer-events: auto;
		visibility: visible;
	}

	body.nosleepman-theme .nsm-nav-drawer__backdrop {
		position: fixed;
		inset: 0;
		z-index: 100070;
		margin: 0;
		padding: 0;
		border: 0;
		background: rgba(0, 0, 0, 0.45);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.3s var(--nsm-ease), visibility 0.3s var(--nsm-ease);
		cursor: pointer;
	}

	body.nosleepman-theme.nsm-nav-open .nsm-nav-drawer__backdrop {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	body.nosleepman-theme .nsm-nav-drawer__header {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		flex: 0 0 auto;
		box-sizing: border-box;
		min-height: 64px;
		padding: 0.75rem 1rem 0.75rem 1.25rem;
	}

	body.nosleepman-theme .nsm-nav-drawer__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: transparent;
		color: #111;
		cursor: pointer;
	}

	body.nosleepman-theme .nsm-nav-drawer__close:hover {
		background: var(--nsm-bg-soft);
	}

	body.nosleepman-theme .nsm-nav-drawer__close .nsm-icon {
		display: block;
		width: 22px;
		height: 22px;
	}

	body.nosleepman-theme .nsm-nav-drawer .main-navigation ul.menu,
	body.nosleepman-theme .nsm-nav-drawer ul.menu,
	body.nosleepman-theme .nsm-nav-drawer ul.nav-menu,
	body.nosleepman-theme .main-navigation .nsm-nav-drawer ul.menu,
	body.nosleepman-theme .main-navigation .nsm-nav-drawer ul.nav-menu {
		display: flex !important;
		position: static;
		top: auto;
		left: auto;
		right: auto;
		z-index: auto;
		flex: 1 1 auto;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		flex-wrap: nowrap;
		gap: 0;
		width: 100%;
		height: auto;
		max-height: none;
		margin: 0;
		padding: 0.25rem 1.5rem 2rem;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		background: transparent;
		border: 0;
		box-shadow: none;
		list-style: none;
	}

	body.nosleepman-theme .main-navigation ul.menu,
	body.nosleepman-theme .main-navigation ul.nav-menu {
		display: none;
	}

	body.nosleepman-theme .main-navigation.toggled > ul.menu,
	body.nosleepman-theme .main-navigation.toggled > ul.nav-menu {
		display: none;
	}

	body.nosleepman-theme .nsm-nav-drawer ul li {
		height: auto;
		width: 100%;
		margin: 0;
		border-bottom: 0;
	}

	body.nosleepman-theme .nsm-nav-drawer ul.menu > li > a,
	body.nosleepman-theme .nsm-nav-drawer ul.nav-menu > li > a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: auto;
		padding: 1rem 0;
		font-size: 1.125rem;
		font-weight: 500;
		line-height: 1.3;
		color: #111 !important;
		text-decoration: none !important;
	}

	body.nosleepman-theme .nsm-nav-drawer ul.menu > li > a::after,
	body.nosleepman-theme .nsm-nav-drawer ul.nav-menu > li > a::after {
		display: none;
	}

	body.nosleepman-theme.nsm-nav-open {
		overflow: hidden;
	}

	/* Search icon order in mobile header row (drawer opens on click) */
	body.nosleepman-theme .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		order: 2;
		margin: 0 !important;
	}

	body.nosleepman-theme .nsm-header-wishlist {
		order: 3;
		margin-left: 0;
	}

	body.nosleepman-theme .nsm-header-account {
		order: 4;
		margin-left: 0;
	}

	body.nosleepman-theme .site-header-cart {
		order: 5;
		margin-left: 0 !important;
	}

	body.nosleepman-theme .site-header-cart .cart-contents .amount,
	body.nosleepman-theme .site-header-cart .cart-contents .count {
		display: none !important;
	}
}

/* ---------- Search drawer (≤1024, slides from right like menu) ---------- */
body.nosleepman-theme .nsm-search-drawer__backdrop {
	position: fixed;
	inset: 0;
	z-index: 100070;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.3s var(--nsm-ease), visibility 0.3s var(--nsm-ease);
	cursor: pointer;
}

body.nosleepman-theme .nsm-search-drawer__backdrop.is-open,
body.nosleepman-theme.nsm-search-open .nsm-search-drawer__backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

body.nosleepman-theme .nsm-search-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 100080;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	width: min(480px, 100vw);
	height: 100%;
	height: 100dvh;
	margin: 0;
	padding: 0;
	background: #fff;
	transform: translateX(100%);
	transition: transform 0.35s var(--nsm-ease);
	pointer-events: none;
	visibility: hidden;
}

body.nosleepman-theme .nsm-search-drawer.is-open,
body.nosleepman-theme.nsm-search-open .nsm-search-drawer {
	transform: translateX(0);
	pointer-events: auto;
	visibility: visible;
}

body.nosleepman-theme.nsm-search-open {
	overflow: hidden;
}

body.nosleepman-theme .nsm-search-drawer__top {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex: 0 0 auto;
	box-sizing: border-box;
	padding: 1.1rem 1.15rem 0.85rem;
}

body.nosleepman-theme .nsm-search-drawer__form {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0 0.9rem 0 0.85rem;
	height: 48px;
	border: 0;
	border-radius: 999px;
	background: #f5f5f5;
	box-sizing: border-box;
}

body.nosleepman-theme .nsm-search-drawer__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: #111;
	pointer-events: none;
}

body.nosleepman-theme .nsm-search-drawer__icon .nsm-icon,
body.nosleepman-theme .nsm-search-drawer__icon svg {
	display: block;
	width: 18px;
	height: 18px;
}

body.nosleepman-theme .nsm-search-drawer__input {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: 48px;
	color: #111;
	-webkit-appearance: none;
	appearance: none;
}

body.nosleepman-theme .nsm-search-drawer__input::placeholder {
	color: #8a8a8a;
	opacity: 1;
}

body.nosleepman-theme .nsm-search-drawer__cancel {
	appearance: none;
	flex: 0 0 auto;
	margin: 0;
	padding: 0.35rem 0.15rem;
	border: 0;
	background: transparent;
	color: #111;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
}

body.nosleepman-theme .nsm-search-drawer__cancel:hover {
	opacity: 0.65;
}

@media (max-width: 480px) {
	body.nosleepman-theme .nsm-search-drawer {
		width: 100vw;
	}

	body.nosleepman-theme .nsm-nav-drawer {
		width: 100vw;
	}
}

/* ---------- Shared section UI ---------- */
.nsm-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #f3f3f3 0%, #ebebeb 45%, #f7f7f7 100%);
	color: var(--nsm-text-muted);
	position: relative;
	overflow: hidden;
}

.nsm-placeholder__label {
	position: relative;
	z-index: 1;
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 500;
}

.nsm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.9rem 1.5rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border: 1px solid transparent;
	transition: background 0.3s var(--nsm-ease), color 0.3s var(--nsm-ease), border-color 0.3s var(--nsm-ease);
}

.nsm-btn--primary {
	background: #fff;
	color: var(--nsm-heading);
	border-color: #fff;
}

.nsm-btn--primary:hover {
	background: transparent;
	color: #fff;
	border-color: #fff;
}

.nsm-btn--dark {
	background: var(--nsm-dark);
	color: #fff;
	border-color: var(--nsm-dark);
}

.nsm-text-link {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.15rem;
	align-self: flex-start;
}

.nsm-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.7;
}

.nsm-section {
	padding: clamp(3.5rem, 8vw, 6rem) 0;
}

.nsm-section__inner {
	max-width: var(--nsm-max);
	margin: 0 auto;
	padding: 0 var(--nsm-gutter);
}

.nsm-section__header {
	margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
	max-width: 36rem;
}

.nsm-section__header--row {
	max-width: none;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
}

.nsm-section__title {
	margin: 0 0 0.5rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: var(--nsm-heading);
}

.nsm-section__intro {
	margin: 0;
	color: var(--nsm-text-muted);
	font-size: 1rem;
	line-height: 1.6;
}

/* ---------- Hero ---------- */
.nsm-hero {
	position: relative;
	/* Fill the viewport below announcement + header */
	min-height: calc(100vh - 7.25rem);
	min-height: calc(100dvh - 7.25rem);
	display: grid;
	background: var(--nsm-bg-muted);
	margin-bottom: 0;
}

.nsm-hero__media {
	position: absolute;
	inset: 0;
	min-height: 100%;
}

.nsm-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
	display: block;
}

.nsm-hero--has-image .nsm-hero__media::after {
	display: none;
}

body.nosleepman-theme .nsm-hero__cta {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.95rem 2rem;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 999px;
	background: transparent;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
	box-shadow: none;
	transition: background 0.28s var(--nsm-ease), border-color 0.28s var(--nsm-ease), color 0.28s var(--nsm-ease);
}

body.nosleepman-theme .nsm-hero__cta:hover,
body.nosleepman-theme .nsm-hero__cta:focus {
	background: rgba(255, 255, 255, 0.1);
	border-color: #fff;
	color: #fff;
}

.nsm-hero .nsm-placeholder {
	background: linear-gradient(160deg, #2a2a2a 0%, #4a4a4a 40%, #1f1f1f 100%);
	color: rgba(255, 255, 255, 0.55);
	height: 100%;
}

@media (max-width: 1199px) {
	.nsm-hero {
		min-height: 0;
		aspect-ratio: 16 / 9;
		max-height: min(62vh, 560px);
	}
}

@media (max-width: 768px) {
	.nsm-hero {
		aspect-ratio: 4 / 5;
		max-height: min(78vh, 640px);
	}
}

/* ---------- Categories (Nike Shop by Sport) ---------- */
.page-template-template-homepage .nsm-categories {
	background: #fff;
}

.nsm-categories {
	padding: clamp(2.5rem, 5vw, 4rem) 0 3rem;
}

.nsm-categories__wrap {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 var(--nsm-gutter);
	box-sizing: border-box;
}

.nsm-categories__head {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0 0 1.25rem;
}

.nsm-categories__title {
	margin: 0;
	font-family: var(--nsm-display);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--nsm-heading);
}

.nsm-category-track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	width: 100%;
	margin: 0;
	padding: 0;
}

.nsm-category-card {
	display: block;
	text-decoration: none;
	color: inherit;
	min-width: 0;
}

.nsm-category-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--nsm-bg-soft);
}

.nsm-category-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	border-radius: 0;
	transition: transform 0.7s var(--nsm-ease);
}

.nsm-category-card__shop {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	transform: translate(-50%, -50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 5.75rem;
	height: 2.25rem;
	padding: 0 1.25rem;
	border-radius: 999px;
	background: #fff;
	color: #111;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.16);
	pointer-events: none;
	transition: transform 0.35s var(--nsm-ease), background 0.35s var(--nsm-ease), color 0.35s var(--nsm-ease);
}

.nsm-category-card:hover .nsm-category-card__media img {
	transform: scale(1.03);
}

.nsm-category-card:hover .nsm-category-card__shop {
	transform: translate(-50%, -50%) scale(1.04);
	background: #111;
	color: #fff;
}

/* ---------- Featured (measured from reference SS) ---------- */
/*
 * Reference measurements @ 1024px crop:
 * - Side gaps ≈ 8.3% / 9.1% (use 8.5vw)
 * - Content ≈ 82.6% viewport
 * - 3 columns, gutter ≈ 8px
 * - Image ≈ 4:5
 */
.nsm-featured {
	background: #fff;
	border: 0;
	padding: clamp(2.75rem, 5vw, 4.5rem) 0 3.25rem;
}

.nsm-featured__wrap {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 max(1.25rem, 8.5vw);
	box-sizing: border-box;
}

.nsm-featured__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem;
	margin: 0 0 1.35rem;
}

.nsm-featured__title {
	margin: 0 0 0.35rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: var(--nsm-heading);
}

.nsm-featured__intro {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--nsm-text-muted);
}

.nsm-featured__all {
	flex-shrink: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nsm-heading);
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.12rem;
	text-decoration: none;
}

.nsm-featured__all:hover,
.nsm-featured__all:focus {
	opacity: 0.7;
}

.nsm-product-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem; /* ~8px — matches reference gutter */
}

.nsm-product-card {
	min-width: 0;
}

.nsm-product-card__media-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.nsm-product-card__media {
	aspect-ratio: 4 / 5;
	background: var(--nsm-bg-soft);
	overflow: hidden;
}

.nsm-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
	display: block;
	transition: transform 0.7s var(--nsm-ease);
}

.nsm-product-card:hover .nsm-product-card__media img {
	transform: scale(1.03);
}

/* Laptop: keep 3-up Featured, tighter frame (matches header gutters). */
@media (max-width: 1199px) {
	.nsm-featured {
		padding: 2rem 0 2.25rem;
	}

	.nsm-featured__wrap {
		padding: 0 max(1.25rem, var(--nsm-gutter));
	}

	.nsm-featured__head {
		margin-bottom: 1rem;
	}

	.nsm-product-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.nsm-product-card__media {
		aspect-ratio: 1 / 1;
	}

	.nsm-product-card__media img {
		object-fit: contain;
		background: var(--nsm-bg-soft);
	}

	.nsm-product-card__meta {
		padding-top: 0.7rem;
	}
}

.nsm-product-card__meta {
	padding: 0.85rem 0.05rem 0;
}

.nsm-product-card__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
}

.nsm-product-card__title {
	margin: 0;
	flex: 1;
	min-width: 0;
	font-family: var(--nsm-display);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: var(--nsm-heading);
	text-decoration: none;
}

.nsm-product-card__title:hover {
	opacity: 0.75;
}

.nsm-product-card__wish {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	margin-top: 0.05rem;
	color: var(--nsm-heading);
	text-decoration: none;
	opacity: 0.85;
	cursor: pointer;
}

.nsm-product-card__wish:hover {
	opacity: 1;
}

.nsm-product-card__wish svg,
body.nosleepman-theme .nsm-fav-toggle__icon {
	font-size: 25px;
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

.nsm-product-card__brand {
	margin: 0.35rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--nsm-text-muted);
}

.nsm-product-card__price {
	margin: 0.3rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--nsm-text-muted);
}

.nsm-product-card__price del {
	opacity: 0.65;
	margin-right: 0.35rem;
}

.nsm-product-card__badge {
	margin: 0.45rem 0 0;
	font-size: 0.75rem;
	line-height: 1.35;
	font-weight: 600;
	color: var(--nsm-heading);
}

.nsm-color-dots {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
}

.nsm-color-dot {
	width: 17px;
	height: 17px;
	border-radius: 50%;
	border: 1px solid rgba(17, 17, 17, 0.12);
	box-sizing: border-box;
	flex: 0 0 auto;
}

.nsm-color-dot--light,
.nsm-color-dot--white {
	border-color: #cacacb;
}

.nsm-color-dot--black {
	border-color: #111;
}

.nsm-empty {
	color: var(--nsm-text-muted);
}

/* ---------- Brand story (same width as categories) ---------- */
.page-template-template-homepage .nsm-story {
	background: #fff;
}

.nsm-story {
	padding: clamp(3rem, 6vw, 5rem) 0;
}

.nsm-story__wrap {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 var(--nsm-gutter);
	box-sizing: border-box;
	container-type: inline-size;
	container-name: nsm-story;
}

.nsm-story__grid {
	display: grid;
	/* Right width locked (~same as before); left absorbs the smaller gap */
	grid-template-columns: minmax(0, 1fr) minmax(0, 45.85%);
	gap: 1.5rem;
	align-items: stretch;
}

.nsm-story__media {
	position: relative;
	width: 100%;
	aspect-ratio: auto;
	/* Stretch to match the text column; floor matches category 4:5 tile height */
	height: auto;
	min-height: calc((100cqw - 1.5rem) / 3 * 5 / 4);
	max-height: none;
	align-self: stretch;
	overflow: hidden;
	background: var(--nsm-bg-soft);
}

.nsm-story__video,
.nsm-story__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	border-radius: 0;
}

.nsm-story__sound {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2rem;
	padding: 0.4rem 0.85rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: #111;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	backdrop-filter: blur(6px);
	transition: background 0.25s var(--nsm-ease), color 0.25s var(--nsm-ease);
}

.nsm-story__sound:hover {
	background: #111;
	color: #fff;
}

.nsm-story__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	align-self: stretch;
	padding: clamp(1.5rem, 3.5vw, 2.75rem);
	max-width: none;
	border: 1px solid var(--nsm-border);
	background: #fff;
	box-sizing: border-box;
}

.nsm-story__eyebrow {
	margin: 0 0 0.85rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nsm-text-muted);
}

.nsm-story__title {
	margin: 0;
	font-family: var(--nsm-display);
	font-size: clamp(2rem, 4vw, 3.25rem);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.05;
	color: var(--nsm-heading);
	max-width: 12ch;
}

.nsm-story__rule {
	width: 2.5rem;
	height: 2px;
	margin: 1.35rem 0 1.25rem;
	background: var(--nsm-heading);
}

.nsm-story__text {
	margin: 0;
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.7;
	color: var(--nsm-text-muted);
}

.nsm-story__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.75rem;
	min-height: 2.75rem;
	padding: 0 1.4rem;
	border: 1px solid var(--nsm-heading);
	background: transparent;
	color: var(--nsm-heading);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.3s var(--nsm-ease), color 0.3s var(--nsm-ease);
}

.nsm-story__cta:hover,
.nsm-story__cta:focus {
	background: var(--nsm-heading);
	color: #fff;
}

/* ---------- Editorial ---------- */
.nsm-editorial {
	background: #0d0d0d;
	color: #f5f5f5;
	padding: clamp(2rem, 4vw, 3rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.nsm-editorial__intro {
	width: 100%;
	max-width: none;
	margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
	padding: 0 var(--nsm-gutter);
	box-sizing: border-box;
}

body.nosleepman-theme .nsm-editorial h2.nsm-editorial__title {
	margin: 0;
	font-family: var(--nsm-display);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.15;
	text-transform: uppercase;
	color: #ffffff;
}

.nsm-editorial__gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	padding: 0 var(--nsm-gutter);
}

.nsm-editorial__frame {
	margin: 0;
	overflow: hidden;
	background: #1a1a1a;
}

.nsm-editorial__frame--tall {
	/* ~1035px tall at 1920px desktop; scales with column width elsewhere */
	aspect-ratio: 912 / 1035;
	min-height: 0;
}

.nsm-editorial__frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	display: block;
}

.nsm-editorial__placeholder {
	width: 100%;
	height: 100%;
	min-height: inherit;
	display: flex;
	align-items: flex-end;
	padding: 1.25rem 1.5rem;
	position: relative;
	background:
		radial-gradient(ellipse at 30% 20%, rgba(90, 90, 110, 0.35), transparent 55%),
		linear-gradient(160deg, #1c1c22 0%, #0f0f12 45%, #18181c 100%);
	color: rgba(255, 255, 255, 0.45);
}

.nsm-editorial__placeholder .nsm-placeholder__label {
	position: relative;
	z-index: 1;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ---------- Social ---------- */
.nsm-social {
	background: #fff;
	border-top: 1px solid var(--nsm-border);
	padding: clamp(2.75rem, 5vw, 4rem) 0;
}

.nsm-social__wrap {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 var(--nsm-gutter);
	box-sizing: border-box;
	text-align: center;
}

.nsm-social__head {
	margin: 0 auto 1.75rem;
	max-width: 36rem;
}

body.nosleepman-theme .nsm-social h2.nsm-social__title {
	margin: 0 0 0.5rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: var(--nsm-heading);
}

.nsm-social__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

.nsm-social__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}

.nsm-social__link {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	min-height: 3rem;
	padding: 0 1.15rem;
	border: 1px solid var(--nsm-border);
	background: #fff;
	color: var(--nsm-heading);
	text-decoration: none;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background 0.25s var(--nsm-ease), color 0.25s var(--nsm-ease), border-color 0.25s var(--nsm-ease);
}

.nsm-social__link:hover,
.nsm-social__link:focus {
	background: var(--nsm-heading);
	border-color: var(--nsm-heading);
	color: #fff;
}

.nsm-social__link--placeholder {
	opacity: 0.55;
	cursor: default;
}

.nsm-social__link--placeholder:hover,
.nsm-social__link--placeholder:focus {
	background: #fff;
	border-color: var(--nsm-border);
	color: var(--nsm-heading);
}

.nsm-social__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.nsm-social__note {
	margin: 1rem 0 0;
	font-size: 0.75rem;
	color: var(--nsm-text-muted);
}

/* ---------- Storefront footer (Nike-style) ---------- */
body.nosleepman-theme .site-footer {
	width: 100% !important;
	max-width: none !important;
	margin: auto 0 0 !important;
	padding: 0 !important;
	background: #fff !important;
	color: #111 !important;
	border-top: 0;
	float: none !important;
	flex-shrink: 0;
}

body.nosleepman-theme .site-footer .col-full {
	max-width: 1920px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 0 var(--nsm-gutter) !important;
	float: none !important;
	box-sizing: border-box;
	border-top: 1px solid #e5e5e5;
}

body.nosleepman-theme .site-footer .col-full::before,
body.nosleepman-theme .site-footer .col-full::after,
body.nosleepman-theme .site-footer .footer-widgets {
	display: none !important;
}

body.nosleepman-theme .site-footer,
body.nosleepman-theme .site-footer h1,
body.nosleepman-theme .site-footer h2,
body.nosleepman-theme .site-footer h3,
body.nosleepman-theme .site-footer h4,
body.nosleepman-theme .site-footer a,
body.nosleepman-theme .site-footer a:not(.button) {
	color: #111 !important;
}

body.nosleepman-theme .site-footer a {
	text-decoration: none !important;
}

body.nosleepman-theme .site-footer a:hover {
	opacity: 0.6;
}

body.nosleepman-theme .site-footer ul,
body.nosleepman-theme .site-footer li {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.nosleepman-theme .nsm-footer-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.5rem 2rem;
	align-items: start;
	padding: 2.75rem 0 3.25rem;
}

body.nosleepman-theme .nsm-footer-col {
	min-width: 0;
}

body.nosleepman-theme .nsm-footer-col__title {
	margin: 0 0 1.15rem !important;
	font-family: var(--nsm-font);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.3;
	color: #111 !important;
}

body.nosleepman-theme .nsm-footer-col__menu {
	margin: 0 !important;
	padding: 0 !important;
}

body.nosleepman-theme .nsm-footer-col__menu li {
	margin: 0 0 0.7rem !important;
	padding: 0 !important;
	list-style: none !important;
}

body.nosleepman-theme .nsm-footer-col__menu a {
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.4;
	color: #111 !important;
}

body.nosleepman-theme .nsm-footer-newsletter {
	grid-column: 4;
	max-width: 24rem;
	width: 100%;
	margin: 0;
	justify-self: stretch;
}

body.nosleepman-theme .nsm-footer-newsletter__title {
	margin: 0 0 0.5rem !important;
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: #111 !important;
}

body.nosleepman-theme .nsm-footer-newsletter__text {
	margin: 0 0 1.1rem;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme .nsm-footer-newsletter__form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.55rem;
	margin: 0;
	width: 100%;
}

body.nosleepman-theme .nsm-footer-newsletter__input {
	flex: none;
	width: 100%;
	min-width: 0;
	min-height: 52px;
	margin: 0;
	padding: 0.85rem 1rem !important;
	border: 1px solid transparent !important;
	border-radius: 6px !important;
	background: #f6f6f6 !important;
	box-shadow: none !important;
	font-family: var(--nsm-font);
	font-size: 0.9375rem;
	line-height: 1.4;
	color: #111;
	transition: border-color 0.15s var(--nsm-ease), background 0.15s var(--nsm-ease);
}

body.nosleepman-theme .nsm-footer-newsletter__input::placeholder {
	color: #9a9a9a;
}

body.nosleepman-theme .nsm-footer-newsletter__input:hover {
	background: #f0f0f0 !important;
}

body.nosleepman-theme .nsm-footer-newsletter__input:focus {
	outline: none;
	background: #fff !important;
	border-color: #111 !important;
	box-shadow: none !important;
}

body.nosleepman-theme .nsm-footer-newsletter__btn {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0.85rem 1.35rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #111 !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--nsm-display);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	white-space: nowrap;
}

body.nosleepman-theme .nsm-footer-newsletter__btn:hover,
body.nosleepman-theme .nsm-footer-newsletter__btn:focus {
	background: #111 !important;
	color: #fff !important;
	opacity: 0.82;
}

body.nosleepman-theme .nsm-footer-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	padding: 0 0 1.75rem;
	border: 0;
}

body.nosleepman-theme .nsm-footer-legal__copy {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.4;
	color: #707072;
}

body.nosleepman-theme .nsm-footer-legal__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.5rem;
	margin: 0 !important;
	padding: 0 !important;
}

body.nosleepman-theme .nsm-footer-legal__menu li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.nosleepman-theme .nsm-footer-legal__menu a {
	font-size: 0.75rem;
	line-height: 1.4;
	color: #707072 !important;
}

body.nosleepman-theme .nsm-footer-legal__menu a:hover {
	color: #111 !important;
	opacity: 1;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.nsm-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nsm-story__grid {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	.nsm-story__media {
		height: calc((100cqw - 1.5rem) / 2 * 5 / 4);
		max-height: none;
	}

	.nsm-story__content {
		max-width: none;
		padding: clamp(1.25rem, 4vw, 2rem);
	}

	.nsm-story__title {
		max-width: none;
	}
}

@media (max-width: 1199px) {
	body.nosleepman-theme .nsm-footer-row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr);
		gap: 2rem 1.75rem;
		padding: 2.35rem 0 2.5rem;
	}

	body.nosleepman-theme .nsm-footer-newsletter {
		grid-column: 3;
		max-width: none;
	}

	body.nosleepman-theme .nsm-footer-legal {
		gap: 1rem 1.5rem;
		padding-bottom: 1.75rem;
	}

	body.nosleepman-theme .nsm-footer-legal__menu {
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: 0.65rem 1.15rem;
	}
}

@media (max-width: 900px) {
	body.nosleepman-theme .nsm-footer-row {
		grid-template-columns: 1fr 1fr;
		gap: 2rem 2.5rem;
		padding: 2.25rem 0 2rem;
	}

	body.nosleepman-theme .nsm-footer-newsletter {
		grid-column: 1 / -1;
		max-width: none;
		justify-self: stretch;
	}

	body.nosleepman-theme .nsm-footer-legal {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.85rem;
		padding-bottom: 1.5rem;
	}
}

@media (max-width: 768px) {
	/*
	 * Home peek carousels.
	 * IMPORTANT: card width must NOT use % of the scroll flex container
	 * (circular sizing expands the page). Use vw + max preferred size.
	 * Outer wrap is the scrollport; track is max-content flex row.
	 */
	.page-template-template-homepage .nsm-categories,
	.page-template-template-homepage .nsm-featured,
	.page-template-template-homepage .nsm-editorial {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow-x: hidden;
		box-sizing: border-box;
	}

	.page-template-template-homepage .content-area,
	.page-template-template-homepage .site-main,
	.page-template-template-homepage .site-content,
	.page-template-template-homepage #content {
		max-width: 100%;
		min-width: 0;
		overflow-x: hidden;
	}

	.nsm-categories__wrap,
	.nsm-featured__wrap,
	.nsm-editorial {
		padding-left: 0;
		padding-right: 0;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow-x: hidden;
		box-sizing: border-box;
		container-type: inline-size;
		container-name: nsm-peek;
	}

	.nsm-categories__head {
		justify-content: space-between;
		gap: 1rem;
		padding: 0 var(--nsm-gutter);
		margin-bottom: 1rem;
	}

	.nsm-categories-carousel__nav,
	.nsm-featured-carousel__nav,
	.nsm-editorial-carousel__nav {
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		flex-shrink: 0;
	}

	.nsm-categories-carousel__btn,
	.nsm-featured-carousel__btn,
	.nsm-editorial-carousel__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		padding: 0;
		border: 1px solid #cacacb;
		border-radius: 50%;
		background: #fff;
		color: #111;
		cursor: pointer;
	}

	.nsm-categories-carousel__btn:disabled,
	.nsm-featured-carousel__btn:disabled,
	.nsm-editorial-carousel__btn:disabled {
		opacity: 0.35;
		cursor: default;
	}

	.nsm-categories-carousel__btn svg,
	.nsm-featured-carousel__btn svg,
	.nsm-editorial-carousel__btn svg {
		width: 16px;
		height: 16px;
		display: block;
	}

	/* Scrollport — bounded to parent; track inside may be wider */
	.nsm-category-track,
	.nsm-product-grid,
	.nsm-editorial__gallery {
		display: flex !important;
		grid-template-columns: none !important;
		gap: 0.75rem;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--nsm-gutter);
		padding: 0 var(--nsm-gutter);
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		position: relative;
		z-index: 0;
	}

	.nsm-category-track::-webkit-scrollbar,
	.nsm-product-grid::-webkit-scrollbar,
	.nsm-editorial__gallery::-webkit-scrollbar {
		display: none;
	}

	.nsm-category-card {
		/* cqw = wrap width (definite); avoids % of scroll flex track */
		--nsm-peek-card: min(502px, calc(100cqw - 2.5rem));
		flex: 0 0 var(--nsm-peek-card);
		width: var(--nsm-peek-card);
		max-width: var(--nsm-peek-card);
		aspect-ratio: 502 / 685;
		height: auto;
		min-width: 0;
		scroll-snap-align: start;
	}

	.nsm-category-card__media {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
	}

	/*
	 * Featured — same peek carousel + 538×538 media tiles.
	 */
	.nsm-featured__head {
		align-items: center;
		gap: 1rem;
		padding: 0 var(--nsm-gutter);
		margin-bottom: 1rem;
	}

	.nsm-featured__all {
		display: none;
	}

	.nsm-product-card {
		--nsm-peek-card: min(538px, calc(100cqw - 2.5rem));
		flex: 0 0 var(--nsm-peek-card);
		width: var(--nsm-peek-card);
		max-width: var(--nsm-peek-card);
		min-width: 0;
		scroll-snap-align: start;
	}

	.nsm-product-card__media {
		width: 100%;
		aspect-ratio: 1 / 1;
		height: auto;
		max-height: 538px;
	}

	.nsm-product-card__media img {
		object-fit: cover;
	}

	.nsm-story__media {
		height: min(70vw, 360px);
	}

	/*
	 * Lookbook — same peek carousel, cards 721×767.
	 */
	.nsm-editorial__intro {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		margin-bottom: 1rem;
		padding: 0 var(--nsm-gutter);
	}

	.nsm-editorial__frame,
	.nsm-editorial__frame--tall {
		--nsm-peek-card: min(721px, calc(100cqw - 2.5rem));
		flex: 0 0 var(--nsm-peek-card);
		width: var(--nsm-peek-card);
		max-width: var(--nsm-peek-card);
		aspect-ratio: 721 / 767;
		height: auto;
		min-width: 0;
		min-height: 0;
		scroll-snap-align: start;
	}

	.nsm-section__header--row {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (min-width: 769px) {
	.nsm-categories-carousel__nav,
	.nsm-featured-carousel__nav,
	.nsm-editorial-carousel__nav {
		display: none !important;
	}
}

/* ---------- Catalog (shop / category) ---------- */
/*
 * Filters + fluid product grid. Product column uses remaining space (1fr)
 * so 3 tiles always fit beside the sidebar on laptop widths.
 */
body.nosleepman-theme.nsm-catalog {
	--nsm-related-gap: 14px;
	--nsm-catalog-filter: 240px;
	--nsm-catalog-filter-gap: clamp(1.25rem, 2vw, 2rem);
}

body.nosleepman-theme.nsm-catalog .site-content,
body.nosleepman-theme.nsm-catalog .content-area,
body.nosleepman-theme.nsm-catalog #primary {
	float: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Filters left + products right; title above filters (Nike layout) */
body.nosleepman-theme.nsm-catalog--filters #content .col-full,
body.nosleepman-theme.nsm-catalog--filters .site-content .col-full {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	display: grid;
	grid-template-columns: var(--nsm-catalog-filter) minmax(0, 1fr);
	grid-template-areas:
		"title sort"
		"filters products";
	column-gap: var(--nsm-catalog-filter-gap);
	row-gap: 0.75rem;
	align-items: start;
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
	padding-left: max(1.25rem, env(safe-area-inset-left));
	padding-right: max(1.25rem, env(safe-area-inset-right));
	box-sizing: border-box;
	overflow-x: clip;
}

/* WC sometimes leaves an empty .woocommerce node inside .col-full — hide it so grid stays clean. */
body.nosleepman-theme.nsm-catalog--filters #content .col-full > .woocommerce:empty,
body.nosleepman-theme.nsm-catalog--filters .site-content .col-full > .woocommerce:empty {
	display: none !important;
}

/* Flatten wrappers so title/sort/filters/products become direct grid items. */
body.nosleepman-theme.nsm-catalog--filters #primary.content-area,
body.nosleepman-theme.nsm-catalog--filters #primary .site-main {
	display: contents;
}

body.nosleepman-theme.nsm-catalog--filters .woocommerce-products-header {
	grid-area: title;
	align-self: end;
	margin: 0;
	padding: 0 0 0.35rem;
	border: 0;
}

body.nosleepman-theme.nsm-catalog--filters .storefront-sorting {
	grid-area: sort;
	align-self: end;
	justify-self: end;
	margin: 0;
	padding: 0 0 0.35rem;
}

body.nosleepman-theme.nsm-catalog--filters .nsm-shop-filters.widget-area {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 0 2rem;
	border: 0;
	background: transparent;
	grid-area: filters;
}

@media (min-width: 901px) {
	body.nosleepman-theme.nsm-catalog--filters .nsm-shop-filters.widget-area {
		display: block !important;
	}
}

body.nosleepman-theme.nsm-catalog--filters ul.products,
body.nosleepman-theme.nsm-catalog--filters .woocommerce-pagination,
body.nosleepman-theme.nsm-catalog--filters .woocommerce-info,
body.nosleepman-theme.nsm-catalog--filters .woocommerce-noreviews,
body.nosleepman-theme.nsm-catalog--filters .woocommerce-notices-wrapper {
	grid-area: products;
}

/* ---------- Nike-style filter accordion ---------- */
body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget {
	margin: 0;
	padding: 0;
	border: 0;
	border-bottom: 1px solid #e5e5e5;
	background: transparent;
	box-shadow: none;
}

body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0;
	padding: 1.05rem 0;
	font-family: var(--nsm-sans, var(--nsm-display));
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	color: #111;
	cursor: pointer;
	user-select: none;
	list-style: none;
}

body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget__title::after {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	flex-shrink: 0;
	border-right: 1.5px solid #111;
	border-bottom: 1.5px solid #111;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	margin-top: -0.2rem;
}

body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget.is-open .nsm-filter-widget__title::after {
	transform: rotate(-135deg);
	margin-top: 0.2rem;
}

body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget .widget-title + * {
	display: none;
	padding: 0.85rem 0 1rem;
}

body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget.is-open .widget-title + * {
	display: block;
}

body.nosleepman-theme .nsm-shop-filters ul {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

body.nosleepman-theme .nsm-shop-filters ul li {
	margin: 0 0 0.85rem;
	padding: 0;
	list-style: none !important;
}

/* Kill Storefront/Font Awesome square bullets — keep only our checkbox. */
body.nosleepman-theme .nsm-shop-filters ul li::before,
body.nosleepman-theme .nsm-shop-filters ul li::after {
	content: none !important;
	display: none !important;
}

body.nosleepman-theme .nsm-shop-filters ul li a {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.35;
	color: #111;
	text-decoration: none;
}

body.nosleepman-theme .nsm-shop-filters ul li a::before {
	content: "" !important;
	display: block !important;
	width: 1.125rem;
	height: 1.125rem;
	flex-shrink: 0;
	border: 1px solid #111;
	background: #fff;
	box-sizing: border-box;
}

body.nosleepman-theme .nsm-shop-filters ul li.chosen a::before,
body.nosleepman-theme .nsm-shop-filters ul li.woocommerce-widget-layered-nav-list__item--chosen a::before {
	background: #111;
	box-shadow: inset 0 0 0 2px #fff;
}

body.nosleepman-theme .nsm-shop-filters ul li a:hover {
	opacity: 0.7;
}

body.nosleepman-theme .nsm-shop-filters .count {
	margin-left: 0.2rem;
	color: #707072;
	font-weight: 400;
}

body.nosleepman-theme.nsm-catalog .site-main {
	padding-top: 0.5rem;
}

body.nosleepman-theme.nsm-catalog .woocommerce-products-header {
	margin: 0 0 1.25rem;
	padding: 0;
	border: 0;
}

body.nosleepman-theme.nsm-catalog .woocommerce-products-header__title,
body.nosleepman-theme.nsm-catalog .page-title {
	margin: 0;
	font-family: var(--nsm-display);
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: var(--nsm-heading);
}

body.search.nosleepman-theme.nsm-catalog--filters #content .col-full,
body.search.nosleepman-theme.nsm-catalog--filters .site-content .col-full {
	grid-template-areas:
		"title title"
		"filters sort"
		"filters products";
}

body.search.nosleepman-theme.nsm-catalog .woocommerce-products-header__title,
body.search.nosleepman-theme.nsm-catalog .page-title {
	white-space: nowrap;
}

body.nosleepman-theme.nsm-catalog .woocommerce-result-count {
	display: none !important;
}

body.nosleepman-theme.nsm-catalog .storefront-sorting {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem 1.25rem;
	margin: 0 0 1.25rem;
	padding: 0;
	border: 0;
	position: relative;
	z-index: 5;
}

body.nosleepman-theme.nsm-catalog .woocommerce-ordering {
	margin: 0;
	position: relative;
}

/* Hide native select — custom Sort By UI is built in JS. */
body.nosleepman-theme.nsm-catalog .woocommerce-ordering > select.orderby {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body.nosleepman-theme.nsm-catalog .nsm-sort {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
	/* Always stay out of product flow height — panel overlays when open */
}

body.nosleepman-theme.nsm-catalog .nsm-sort__toggle,
body.nosleepman-theme.nsm-catalog .nsm-sort__toggle:hover,
body.nosleepman-theme.nsm-catalog .nsm-sort__toggle:focus,
body.nosleepman-theme.nsm-catalog .nsm-sort__toggle:focus-visible,
body.nosleepman-theme.nsm-catalog .nsm-sort__toggle:active {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5rem;
	margin: 0;
	padding: 0.25rem 0;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	color: #111;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	z-index: 32;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__chevron {
	display: inline-block;
	width: 0.45rem;
	height: 0.45rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	margin-top: -0.15rem;
	transition: transform 0.2s ease;
}

body.nosleepman-theme.nsm-catalog .nsm-sort.is-open .nsm-sort__chevron {
	transform: rotate(-135deg);
	margin-top: 0.15rem;
}

/*
 * Floating overlay panel (does NOT push products).
 * Right-aligned options, wide left space, soft bottom-left curve.
 */
body.nosleepman-theme.nsm-catalog .nsm-sort__menu {
	display: none;
	position: absolute;
	top: calc(100% + 2px);
	right: 0;
	left: auto;
	width: max-content;
	min-width: 0;
	margin: 0;
	padding: 0.75rem 1rem;
	list-style: none;
	background: #fff;
	border: 0;
	border-radius: 0 0 0 1.25rem;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	text-align: right;
	white-space: nowrap;
	z-index: 30;
}

body.nosleepman-theme.nsm-catalog .nsm-sort.is-open .nsm-sort__menu {
	display: block;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__menu li {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__menu li::before {
	content: none !important;
	display: none !important;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__option,
body.nosleepman-theme.nsm-catalog .nsm-sort__option:hover,
body.nosleepman-theme.nsm-catalog .nsm-sort__option:focus,
body.nosleepman-theme.nsm-catalog .nsm-sort__option:active {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0.4rem 0;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.45;
	color: #111;
	text-align: right;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__option:hover {
	opacity: 0.55;
}

body.nosleepman-theme.nsm-catalog .nsm-sort__option.is-active {
	opacity: 1;
	font-weight: 400;
}

body.nosleepman-theme.nsm-catalog ul.products {
	--nsm-tile-gap: var(--nsm-related-gap, 14px);

	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nsm-tile-gap);
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-catalog ul.products::before,
body.nosleepman-theme.nsm-catalog ul.products::after {
	display: none !important;
	content: none !important;
}

body.nosleepman-theme.nsm-catalog ul.products li.product,
body.nosleepman-theme.nsm-catalog ul.products.columns-3 li.product,
body.nosleepman-theme.nsm-catalog ul.products.columns-2 li.product,
body.nosleepman-theme.nsm-catalog ul.products.columns-4 li.product {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	text-align: left;
	border: 0;
	background: transparent;
	box-shadow: none;
	min-width: 0;
}

body.nosleepman-theme.nsm-catalog ul.products li.product .woocommerce-LoopProduct-link,
body.nosleepman-theme.nsm-catalog ul.products li.product > a:first-child {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0;
	overflow: hidden;
	text-decoration: none;
	background: #f5f5f5;
}

body.nosleepman-theme.nsm-catalog ul.products li.product img,
body.nosleepman-theme.nsm-catalog ul.products li.product .attachment-woocommerce_thumbnail {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	aspect-ratio: auto;
	object-fit: contain;
	object-position: center;
	border-radius: 0;
	margin: 0;
	display: block;
	background: #f5f5f5;
	transition: transform 0.65s var(--nsm-ease);
}

body.nosleepman-theme.nsm-catalog ul.products li.product:hover img {
	transform: scale(1.02);
}

body.nosleepman-theme.nsm-catalog .nsm-loop-meta {
	width: 100%;
	padding: 12px 0 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	box-sizing: border-box;
}

body.nosleepman-theme .nsm-loop-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	min-width: 0;
}

body.nosleepman-theme .nsm-loop-title-row .nsm-loop-title {
	flex: 1 1 auto;
	min-width: 0;
}

body.nosleepman-theme .nsm-loop-title-row .nsm-loop-title a {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.nosleepman-theme.nsm-catalog .nsm-loop-title,
body.nosleepman-theme.nsm-catalog ul.products li.product .woocommerce-loop-product__title {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--nsm-sans, var(--nsm-display));
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: #111;
}

body.nosleepman-theme.nsm-catalog .nsm-loop-title a {
	color: inherit;
	text-decoration: none;
}

body.nosleepman-theme.nsm-catalog .nsm-loop-title a:hover {
	opacity: 0.7;
}

body.nosleepman-theme.nsm-catalog .nsm-loop-subtitle {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme.nsm-catalog .nsm-loop-meta .price,
body.nosleepman-theme.nsm-catalog ul.products li.product .nsm-loop-meta .price {
	margin: 0;
	padding: 0;
	display: block;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	color: #111;
	text-align: left;
}

body.nosleepman-theme.nsm-catalog ul.products li.product .price del {
	opacity: 0.55;
	margin-right: 0.35rem;
}

body.nosleepman-theme.nsm-catalog ul.products li.product .price ins {
	text-decoration: none;
	font-weight: 500;
}

body.nosleepman-theme.nsm-catalog .nsm-color-dots {
	margin-top: 0.4rem;
}

body.nosleepman-theme.nsm-catalog ul.products li.product .button,
body.nosleepman-theme.nsm-catalog ul.products li.product .added_to_cart,
body.nosleepman-theme.nsm-catalog ul.products li.product .star-rating,
body.nosleepman-theme.nsm-catalog ul.products li.product .onsale {
	display: none !important;
}

@media (max-width: 1199px) {
	body.nosleepman-theme.nsm-catalog {
		--nsm-catalog-filter: 180px;
		--nsm-catalog-filter-gap: 1rem;
		--nsm-related-gap: 10px;
	}

	body.nosleepman-theme.nsm-catalog--filters #content .col-full,
	body.nosleepman-theme.nsm-catalog--filters .site-content .col-full {
		grid-template-columns: var(--nsm-catalog-filter) minmax(0, 1fr);
		padding-left: max(1rem, env(safe-area-inset-left));
		padding-right: max(1rem, env(safe-area-inset-right));
	}

	body.nosleepman-theme .nsm-shop-filters .nsm-filter-widget__title,
	body.nosleepman-theme .nsm-shop-filters ul li a {
		font-size: 0.875rem;
	}

	body.nosleepman-theme.nsm-catalog .nsm-loop-title,
	body.nosleepman-theme.nsm-catalog ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.9rem;
	}
}

@media (max-width: 900px) {
	body.nosleepman-theme.nsm-catalog--filters #content .col-full,
	body.nosleepman-theme.nsm-catalog--filters .site-content .col-full {
		grid-template-columns: 1fr;
		grid-template-areas:
			"title"
			"sort"
			"filters"
			"products";
		row-gap: 1rem;
	}

	body.nosleepman-theme.nsm-catalog--filters .storefront-sorting {
		justify-self: start;
	}

	body.nosleepman-theme.nsm-catalog ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		width: 100%;
	}
}

@media (max-width: 520px) {
	body.nosleepman-theme.nsm-catalog ul.products {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
}

/* ---------- Catalog mobile filter sheet (≤900) ---------- */
.nsm-filter-trigger,
.nsm-filter-sheet {
	display: none;
}

.nsm-catalog-title-row {
	display: contents;
}

@media (max-width: 900px) {
	body.nosleepman-theme.nsm-catalog--filters #content .col-full,
	body.nosleepman-theme.nsm-catalog--filters .site-content .col-full {
		grid-template-columns: 1fr;
		grid-template-areas:
			"title"
			"products";
		row-gap: 1rem;
	}

	body.nosleepman-theme.nsm-catalog .nsm-catalog-title-row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		grid-area: title;
		width: 100%;
		margin: 0 0 0.25rem;
	}

	body.nosleepman-theme.nsm-catalog .nsm-catalog-title-row .woocommerce-products-header__title,
	body.nosleepman-theme.nsm-catalog .nsm-catalog-title-row .page-title {
		flex: 1 1 auto;
		min-width: 0;
		margin: 0;
	}

	body.nosleepman-theme.nsm-catalog .woocommerce-products-header {
		margin-bottom: 0.5rem;
	}

	/* Inline sort/filters live inside the sheet on mobile — hide in-page copies before JS moves them. */
	body.nosleepman-theme.nsm-catalog--filters .storefront-sorting,
	body.nosleepman-theme.nsm-catalog--filters .nsm-shop-filters.widget-area {
		display: none !important;
	}

	body.nosleepman-theme .nsm-filter-sheet .storefront-sorting,
	body.nosleepman-theme .nsm-filter-sheet .nsm-shop-filters.widget-area {
		display: block !important;
		margin: 0;
		padding: 0;
		width: 100%;
		max-width: none;
		grid-area: unset;
	}

	body.nosleepman-theme .nsm-filter-trigger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 44px;
		height: 32px;
		padding: 0;
		border: 1px solid #cacacb;
		border-radius: 999px;
		background: #fff;
		color: #111;
		cursor: pointer;
	}

	body.nosleepman-theme .nsm-filter-trigger svg {
		width: 18px;
		height: 18px;
		display: block;
	}

	body.nosleepman-theme .nsm-filter-trigger:hover,
	body.nosleepman-theme .nsm-filter-trigger:focus-visible {
		border-color: #111;
		outline: none;
	}

	body.nosleepman-theme .nsm-filter-sheet {
		display: flex;
		flex-direction: column;
		position: fixed;
		inset: 0;
		z-index: 100080;
		width: 100%;
		max-width: 100%;
		height: 100%;
		background: #fff;
		color: #111;
		transform: translateY(100%);
		transition: transform 0.28s var(--nsm-ease, cubic-bezier(0.22, 1, 0.36, 1));
		overflow: hidden;
	}

	body.nosleepman-theme .nsm-filter-sheet.is-open {
		transform: translateY(0);
	}

	body.nosleepman-theme.nsm-filter-sheet-open {
		overflow: hidden;
	}

	body.nosleepman-theme .nsm-filter-sheet__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		flex: 0 0 auto;
		padding: 1rem 1.25rem;
		border-bottom: 1px solid #e5e5e5;
	}

	body.nosleepman-theme .nsm-filter-sheet__title {
		margin: 0;
		font-family: var(--nsm-display);
		font-size: 1.125rem;
		font-weight: 700;
		letter-spacing: -0.02em;
		line-height: 1.2;
		color: #111;
	}

	body.nosleepman-theme .nsm-filter-sheet__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: #f0f0f0;
		color: #111;
		cursor: pointer;
	}

	body.nosleepman-theme .nsm-filter-sheet__close svg {
		width: 16px;
		height: 16px;
		display: block;
	}

	body.nosleepman-theme .nsm-filter-sheet__body {
		flex: 1 1 auto;
		min-height: 0;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0.5rem 0 1rem;
	}

	body.nosleepman-theme .nsm-filter-sheet__footer {
		flex: 0 0 auto;
		padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid #e5e5e5;
		background: #fff;
	}

	body.nosleepman-theme .nsm-filter-sheet__apply {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 56px;
		margin: 0;
		padding: 1.05rem 1.5rem;
		border: 0;
		border-radius: 999px;
		background: #111;
		color: #fff;
		font-family: inherit;
		font-size: 1rem;
		font-weight: 500;
		letter-spacing: 0;
		text-transform: none;
		line-height: 1.2;
		box-shadow: none;
		cursor: pointer;
		transition: opacity 0.15s var(--nsm-ease);
	}

	body.nosleepman-theme .nsm-filter-sheet__apply:hover,
	body.nosleepman-theme .nsm-filter-sheet__apply:focus-visible {
		opacity: 0.75;
		background: #111;
		color: #fff;
		outline: none;
	}

	body.nosleepman-theme .nsm-filter-sheet__apply:active {
		opacity: 0.65;
	}

	/* Sort as always-open radio list inside the sheet */
	body.nosleepman-theme .nsm-filter-sheet .storefront-sorting {
		display: block !important;
		border-bottom: 1px solid #e5e5e5;
		padding: 1rem 1.25rem 1.25rem;
		justify-content: flex-start;
		align-items: stretch;
		flex-direction: column;
	}

	body.nosleepman-theme .nsm-filter-sheet .woocommerce-ordering {
		width: 100%;
		margin: 0;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort {
		width: 100%;
		position: static;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__toggle {
		display: none !important;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort::before {
		content: "Sort By";
		display: block;
		margin: 0 0 0.85rem;
		font-size: 1rem;
		font-weight: 700;
		letter-spacing: -0.01em;
		color: #111;
		text-align: left;
	}

	body.nosleepman-theme .nsm-filter-sheet .woocommerce-ordering,
	body.nosleepman-theme .nsm-filter-sheet .nsm-sort {
		width: 100%;
		margin: 0;
		text-align: left;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__menu {
		display: block !important;
		position: static !important;
		width: 100%;
		margin: 0;
		padding: 0;
		border: 0;
		box-shadow: none;
		background: transparent;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__option,
	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__option:hover,
	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__option:focus {
		display: flex;
		align-items: center;
		gap: 0.85rem;
		width: 100%;
		padding: 0.7rem 0;
		border: 0;
		background: transparent;
		font-size: 1rem;
		font-weight: 400;
		color: #111;
		text-align: left;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__option::before {
		content: "";
		flex: 0 0 20px;
		width: 20px;
		height: 20px;
		border: 1.5px solid #111;
		border-radius: 50%;
		box-sizing: border-box;
		background: #fff;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-sort__option.is-active::before {
		box-shadow: inset 0 0 0 5px #111;
		border-color: #111;
	}

	/* Filters as open sections */
	body.nosleepman-theme .nsm-filter-sheet .nsm-shop-filters {
		padding: 0;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-filter-widget {
		margin: 0;
		padding: 1rem 1.25rem 1.15rem;
		border-bottom: 1px solid #e5e5e5;
		border-top: 0;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-filter-widget__title {
		pointer-events: none;
		padding: 0 0 0.85rem;
		font-size: 1rem;
		font-weight: 700;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-filter-widget__title::after {
		display: none;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-filter-widget .widget-title + * {
		display: block !important;
	}

	body.nosleepman-theme .nsm-filter-sheet .nsm-shop-filters ul li a {
		padding: 0.65rem 0;
		font-size: 1rem;
	}
}

/* ---------- Single product (Nike-style PDP) ---------- */
body.nosleepman-theme.nsm-pdp #page,
body.nosleepman-theme.nsm-pdp .hfeed.site,
body.nosleepman-theme.nsm-pdp .site-content,
body.nosleepman-theme.nsm-pdp .site-content .col-full,
body.nosleepman-theme.nsm-pdp #content .col-full,
body.nosleepman-theme.nsm-pdp #primary,
body.nosleepman-theme.nsm-pdp .content-area {
	overflow: visible !important;
}

body.nosleepman-theme.nsm-pdp #primary.content-area,
body.nosleepman-theme.nsm-pdp .content-area {
	width: 100%;
	float: none;
	margin: 0;
}

/* Content only — do not shrink the header (keep homepage full-bleed width) */
body.nosleepman-theme.nsm-pdp .site-content .col-full,
body.nosleepman-theme.nsm-pdp #content .col-full {
	max-width: var(--nsm-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nsm-gutter);
	padding-right: var(--nsm-gutter);
}

body.nosleepman-theme.nsm-pdp .storefront-primary-navigation .col-full,
body.nosleepman-theme.nsm-pdp .site-header .col-full {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0.85rem var(--nsm-gutter) !important;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .site-main {
	padding-top: 1.5rem;
	margin-bottom: 0;
}

body.nosleepman-theme.nsm-pdp div.product {
	--nsm-pdp-img-w: 535px;
	--nsm-pdp-img-h: 669px;
	--nsm-pdp-thumb: 72px;
	--nsm-pdp-thumb-gap: 12px;
	/* Lock left column to gallery width so accordion text can't stretch full page */
	--nsm-pdp-left-col: var(--nsm-pdp-img-w);
	--nsm-pdp-buy-col: 471px;
	display: grid;
	/* Side fr tracks center the buy box; related can span full content width */
	grid-template-columns:
		minmax(0, 1fr)
		var(--nsm-pdp-left-col)
		minmax(280px, var(--nsm-pdp-buy-col))
		minmax(0, 1fr);
	column-gap: 0;
	row-gap: 1.5rem;
	justify-content: stretch;
	align-items: start;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 3rem;
	/* Storefront clearfix overflow clips full-bleed related — keep visible */
	overflow: visible !important;
}

/* Reserve thumb column width before FlexSlider builds .flex-control-thumbs */
body.nosleepman-theme.nsm-pdp div.product:has(.woocommerce-product-gallery__image:nth-child(2)),
body.nosleepman-theme.nsm-pdp div.product:has(.woocommerce-product-gallery .flex-control-thumbs) {
	--nsm-pdp-left-col: calc(var(--nsm-pdp-thumb) + var(--nsm-pdp-thumb-gap) + var(--nsm-pdp-img-w));
}

/* Storefront clearfix ::before/::after become rogue grid items — kill them. */
body.nosleepman-theme.nsm-pdp div.product::before,
body.nosleepman-theme.nsm-pdp div.product::after {
	content: none !important;
	display: none !important;
}

body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
}

body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary {
	grid-column: 3;
	grid-row: 1;
	align-self: start;
	justify-self: stretch;
	max-width: 100%;
	min-width: 0;
	margin-left: clamp(1.5rem, 3vw, 3rem) !important;
}

/* Full width of upper section (gallery + buy box), row below — not in button column */
body.nosleepman-theme.nsm-pdp div.product .nsm-pdp-accordions {
	grid-column: 2 / 4;
	grid-row: 2;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	justify-self: stretch;
	margin-left: 0 !important;
	overflow-wrap: break-word;
}

body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery,
body.nosleepman-theme.nsm-pdp div.product .summary {
	float: none !important;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery {
	width: 100% !important;
	margin: 0 !important;
}

/* Avoid width:100% + margin-left overflowing past .col-full gutter */
body.nosleepman-theme.nsm-pdp div.product .summary {
	width: auto !important;
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}

/* Gallery: Nike vertical thumbs + main stage.
 * One controller: WooCommerce FlexSlider. Theme CSS only sizes/styles.
 * Do NOT use display:none on inactive slides — that freezes FlexSlider mid-fade. */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery {
	display: block !important;
	opacity: 1 !important;
	position: relative;
	background: transparent;
	box-sizing: border-box;
	width: var(--nsm-pdp-img-w);
	max-width: 100%;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)),
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.flex-control-thumbs) {
	width: calc(var(--nsm-pdp-thumb) + var(--nsm-pdp-thumb-gap) + var(--nsm-pdp-img-w));
	padding-left: calc(var(--nsm-pdp-thumb) + var(--nsm-pdp-thumb-gap));
}

/* Stage gets height from aspect-ratio; slides stack absolutely inside (FlexSlider fade). */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-viewport,
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	position: relative;
	width: var(--nsm-pdp-img-w);
	max-width: 100%;
	aspect-ratio: 535 / 669;
	height: auto !important;
	margin: 0;
	background: #f5f5f5;
	overflow: hidden;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper {
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	margin: 0 !important;
	transform: none !important;
	-webkit-transform: none !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
	background: transparent;
	position: relative;
	min-height: 100%;
}

/* Before any .flex-active-slide: only first image visible */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:not(:has(.flex-active-slide)) .woocommerce-product-gallery__image:nth-child(n + 2) {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	position: absolute !important;
	inset: 0;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:not(:has(.flex-active-slide)) .woocommerce-product-gallery__image:first-child {
	position: relative !important;
	width: 100%;
	aspect-ratio: 535 / 669;
}

/* After FlexSlider is running: stack slides only.
 * Do NOT force opacity/visibility — FlexSlider fade owns those via inline styles. */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.flex-active-slide) .woocommerce-product-gallery__image {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	left: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	height: 100% !important;
	box-sizing: border-box;
	background: transparent;
	overflow: hidden;
	display: block !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-active-slide .zoomImg {
	pointer-events: none;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .woocommerce-product-gallery__image a {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .woocommerce-product-gallery__image img:not(.zoomImg),
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-viewport img:not(.zoomImg) {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	display: block !important;
	object-fit: cover;
	opacity: 1 !important;
	visibility: visible !important;
	background: #f5f5f5;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs {
	position: absolute;
	left: 0;
	top: 0;
	display: flex !important;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
	padding: 0;
	list-style: none;
	width: var(--nsm-pdp-thumb);
	z-index: 3;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs li {
	width: var(--nsm-pdp-thumb) !important;
	height: var(--nsm-pdp-thumb);
	margin: 0 !important;
	float: none !important;
	flex: 0 0 auto;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img {
	width: var(--nsm-pdp-thumb);
	height: var(--nsm-pdp-thumb);
	object-fit: cover;
	border: 1px solid transparent;
	opacity: 1 !important;
	filter: none !important;
	cursor: pointer;
	pointer-events: auto;
	background: transparent;
	box-sizing: border-box;
	transition: border-color 0.15s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs li img:not(.flex-active) {
	opacity: 1 !important;
	filter: none !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img:hover {
	border-color: #c8c8c8;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	border-color: #111;
	opacity: 1 !important;
	filter: none !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	display: none;
}

/* Prev/next — CSS-only chevrons; FlexSlider still handles clicks */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav {
	position: absolute;
	left: calc(var(--nsm-pdp-thumb) + var(--nsm-pdp-thumb-gap));
	right: 0;
	top: 0;
	bottom: auto;
	width: auto;
	height: auto;
	aspect-ratio: 535 / 669;
	max-width: var(--nsm-pdp-img-w);
	margin: 0;
	padding: 0;
	list-style: none;
	display: block;
	z-index: 4;
	pointer-events: none;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:not(:has(.woocommerce-product-gallery__image:nth-child(2))):not(:has(.flex-control-thumbs)) .flex-direction-nav {
	left: 0;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav li {
	position: static;
	margin: 0;
	list-style: none;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a {
	pointer-events: auto;
	position: absolute !important;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	border: 1px solid #e5e5e5;
	background-color: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	text-indent: 0 !important;
	text-decoration: none !important;
	overflow: hidden;
	opacity: 1;
	z-index: 5;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav .flex-prev {
	left: 12px;
	right: auto;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12L6 8l4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav .flex-next {
	right: 12px;
	left: auto;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4-4-4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a:hover {
	background-color: #f5f5f5;
	border-color: #cacacb;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a:focus,
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a:focus-visible,
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a:active {
	outline: none !important;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08) !important;
}

body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a::before,
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a::after {
	content: none !important;
	display: none !important;
}

/* Chevron via mask so FlexSlider's text/icons stay hidden */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a .nsm-gallery-chevron {
	display: none !important;
}

/* animationLoop keeps ends usable; still style disabled state if WC sets it */
body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a.flex-disabled {
	opacity: 0.45;
	cursor: default;
}

/* Summary column */
body.nosleepman-theme.nsm-pdp .summary.entry-summary {
	position: static;
	z-index: 1;
	padding-top: 0.25rem;
	background: #fff;
}

body.nosleepman-theme.nsm-pdp .summary .product_title {
	margin: 0 0 0.35rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp__subtitle {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme.nsm-pdp .summary > .price {
	margin: 0 0 1.5rem;
	font-size: 1.05rem;
	font-weight: 500;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .summary > .price del {
	opacity: 0.55;
	margin-right: 0.35rem;
}

body.nosleepman-theme.nsm-pdp .summary > .price ins {
	text-decoration: none;
	font-weight: 600;
}

/* Variations */
body.nosleepman-theme.nsm-pdp table.variations {
	width: 100%;
	margin: 0 0 0.75rem;
	border: 0;
}

body.nosleepman-theme.nsm-pdp table.variations tbody,
body.nosleepman-theme.nsm-pdp table.variations tr,
body.nosleepman-theme.nsm-pdp table.variations th,
body.nosleepman-theme.nsm-pdp table.variations td {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	margin: 0;
	background: transparent;
}

body.nosleepman-theme.nsm-pdp table.variations tr {
	margin-bottom: 1.1rem;
}

body.nosleepman-theme.nsm-pdp table.variations tr:last-child {
	margin-bottom: 0;
}

body.nosleepman-theme.nsm-pdp table.variations .label {
	display: none;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-native-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.65rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__title {
	font-size: 0.95rem;
	font-weight: 500;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #111;
	text-decoration: none;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide:hover {
	opacity: 0.7;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide-icon {
	width: 18px;
	height: 10px;
	border: 1.5px solid #111;
	border-radius: 1px;
	position: relative;
	flex: 0 0 auto;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide-icon::before,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide-icon::after {
	content: "";
	position: absolute;
	left: 3px;
	right: 3px;
	height: 1px;
	background: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide-icon::before {
	top: 2px;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__guide-icon::after {
	bottom: 2px;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch {
	appearance: none;
	position: relative;
	box-sizing: border-box;
	border: 1px solid #cacacb;
	background: #fff;
	color: #111;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1;
	padding: 0;
	transition: border-color 0.15s var(--nsm-ease), box-shadow 0.15s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch:focus,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch:focus-visible,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch:active {
	outline: none !important;
	box-shadow: none;
}

/* Same selected frame for colour, size, fit, fabric */
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch.is-selected,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch.is-selected:focus,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch.is-selected:focus-visible,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--color.is-selected,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--size.is-selected,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--text.is-selected {
	border-color: #cacacb !important;
	/* Offset outer ring with white gap (same as colour swatches) */
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px #111 !important;
	z-index: 2;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--white.is-selected {
	border-color: #cacacb !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--black.is-selected {
	border-color: #111 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch.is-disabled {
	opacity: 0.35;
	cursor: not-allowed;
	box-shadow: none !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--color {
	width: clamp(24px, 4.5vw, 30px);
	height: clamp(24px, 4.5vw, 30px);
	border-radius: 4px;
	overflow: visible;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--color .nsm-pdp-swatch__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--black {
	background: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--white {
	background: #f5f5f5;
	border-color: #cacacb;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--grey,
body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--gray {
	background: #9a9a9a;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--size {
	min-width: 64px;
	height: 48px;
	padding: 0 0.75rem;
	border-radius: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--text {
	min-height: 44px;
	padding: 0.65rem 1rem;
	border-radius: 4px;
}

body.nosleepman-theme.nsm-pdp .reset_variations {
	display: none !important;
}

/* ATC + Favourite */
body.nosleepman-theme.nsm-pdp form.cart {
	margin: 0 0 1.75rem;
}

body.nosleepman-theme.nsm-pdp form.cart:not(.variations_form) {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity {
	display: inline-flex !important;
	align-items: stretch;
	width: 100%;
	max-width: none;
	margin: 0;
	border: 1px solid #ddd;
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
	float: none !important;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn {
	appearance: none;
	border: 0;
	background: #fff;
	width: 3.5rem;
	min-width: 3.5rem;
	padding: 0;
	margin: 0;
	cursor: pointer;
	font-size: 1.15rem;
	line-height: 1;
	color: #111;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	outline: none !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn:hover {
	background: #f5f5f5;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn:focus,
body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn:focus-visible,
body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn:active {
	outline: none !important;
	box-shadow: none !important;
	border: 0 !important;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn .nsm-icon {
	width: 16px;
	height: 16px;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .qty {
	flex: 1 1 auto;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 1.05rem 0.15rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	text-align: center;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .qty:focus,
body.nosleepman-theme.nsm-pdp form.cart .quantity .qty:focus-visible,
body.nosleepman-theme.nsm-pdp form.cart .quantity .qty:active {
	outline: none !important;
	box-shadow: none !important;
	border: 0 !important;
}

body.nosleepman-theme.nsm-pdp form.cart .quantity .qty::-webkit-outer-spin-button,
body.nosleepman-theme.nsm-pdp form.cart .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.nosleepman-theme.nsm-pdp form.variations_form .single_variation_wrap {
	margin-top: 0.85rem;
}

body.nosleepman-theme.nsm-pdp form.variations_form .woocommerce-variation,
body.nosleepman-theme.nsm-pdp form.variations_form .woocommerce-variation-price,
body.nosleepman-theme.nsm-pdp form.variations_form .woocommerce-variation-availability {
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}

body.nosleepman-theme.nsm-pdp form.variations_form .woocommerce-variation:empty,
body.nosleepman-theme.nsm-pdp form.variations_form .woocommerce-variation-price:empty,
body.nosleepman-theme.nsm-pdp form.variations_form .single_variation:empty {
	display: none !important;
}

body.nosleepman-theme.nsm-pdp form.cart .woocommerce-variation-add-to-cart,
body.nosleepman-theme.nsm-pdp form.cart.variations_form .single_variation_wrap .woocommerce-variation-add-to-cart {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

body.nosleepman-theme.nsm-pdp form.cart .woocommerce-variation-add-to-cart .quantity,
body.nosleepman-theme.nsm-pdp form.cart:not(.variations_form) .quantity {
	order: 0;
}

body.nosleepman-theme.nsm-pdp form.cart .single_add_to_cart_button,
body.nosleepman-theme.nsm-pdp form.cart button.button.alt {
	width: 100%;
	margin: 0;
	padding: 1.05rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: #111 !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.2;
	transition: opacity 0.15s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp form.cart .single_add_to_cart_button:hover {
	opacity: 0.75;
	background: #111 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 1.05rem 1.5rem;
	border: 1px solid #111;
	border-radius: 999px;
	background: #fff;
	color: #111;
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	line-height: 1.2;
	box-sizing: border-box;
	transition: background 0.15s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite:hover {
	background: #f5f5f5;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite .nsm-fav-toggle__icon,
body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite-icon {
	font-size: 25px;
	width: 1em;
	height: 1em;
	flex: 0 0 auto;
	display: block;
}

/* Nike-style PDP accordions */
body.nosleepman-theme.nsm-pdp .nsm-pdp-accordions {
	margin: 0;
	border-top: 1px solid var(--nsm-border);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion {
	border-bottom: 1px solid var(--nsm-border);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	margin: 0;
	padding: 1.15rem 0;
	border: 0;
	background: transparent;
	color: #111;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__toggle:hover {
	opacity: 0.75;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__toggle:focus,
body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__toggle:focus-visible,
body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__toggle:active {
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__title {
	flex: 1 1 auto;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__chevron {
	position: relative;
	width: 12px;
	height: 12px;
	flex: 0 0 auto;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__chevron::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 45%;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid #111;
	border-bottom: 1.5px solid #111;
	transform: translate(-50%, -60%) rotate(45deg);
	transition: transform 0.2s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion.is-open .nsm-pdp-accordion__chevron::before {
	transform: translate(-50%, -20%) rotate(-135deg);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__panel {
	padding: 0 0 1.25rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__panel[hidden] {
	display: none;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__text {
	font-size: 1rem;
	line-height: 1.55;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__text p {
	margin: 0 0 0.75rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__text p:last-child {
	margin-bottom: 0;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__details {
	margin: 0.85rem 0 0;
	padding: 0 0 0 1.1rem;
	list-style: disc;
	font-size: 1rem;
	line-height: 1.55;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__details li {
	margin: 0 0 0.25rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__details-label {
	font-weight: 500;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__link-wrap {
	margin: 0.75rem 0 0;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__link {
	color: #111;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Reviews accordion header stars */
body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion--reviews .nsm-pdp-accordion__toggle {
	gap: 0.75rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion__header-stars {
	margin-left: auto;
	display: inline-flex;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-accordion--reviews .nsm-pdp-accordion__chevron {
	margin-left: 0;
}

/* Star glyphs */
body.nosleepman-theme.nsm-pdp .nsm-stars {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	line-height: 1;
}

body.nosleepman-theme.nsm-pdp .nsm-stars__star {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	clip-path: none;
	font-size: 1rem;
	line-height: 1;
	color: #111;
	opacity: 1;
}

body.nosleepman-theme.nsm-pdp .nsm-stars__star::before {
	content: none;
}

/* Reviews summary panel */
body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews {
	padding: 0.15rem 0 0.25rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__empty-row {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 0.65rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__empty-label {
	font-size: 1rem;
	font-weight: 500;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__prompt {
	margin: 0 0 1.15rem;
	font-size: 1rem;
	line-height: 1.45;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__summary {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
	font-size: 0.95rem;
	font-weight: 500;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__list {
	margin: 0 0 1.15rem;
	padding: 0;
	list-style: none;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__item {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--nsm-border);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__item:last-child {
	border-bottom: 0;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__author {
	margin: 0.35rem 0 0.25rem;
	font-size: 0.9rem;
	font-weight: 600;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__body {
	font-size: 0.95rem;
	line-height: 1.5;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__body p {
	margin: 0 0 0.4rem;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__body p:last-child {
	margin-bottom: 0;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__write {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.85rem 1.6rem;
	border: 1px solid #cacacb;
	border-radius: 999px;
	background: #fff;
	color: #111;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
	transition: background 0.15s var(--nsm-ease), border-color 0.15s var(--nsm-ease);
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__write:hover {
	background: #f5f5f5;
	border-color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-pdp-reviews__locked {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--nsm-text-muted);
}

/* Review modal — keep above related products / sticky chrome */
body.nosleepman-theme.nsm-pdp .nsm-review-modal,
body.nosleepman-theme .nsm-review-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal[hidden] {
	display: none !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__dialog,
body.nosleepman-theme .nsm-review-modal__dialog {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr);
	grid-template-rows: auto minmax(0, 1fr);
	align-items: stretch !important;
	column-gap: 1.75rem;
	row-gap: 0.75rem;
	width: min(920px, 94vw);
	/* Definite height so grid row 2 can scroll instead of clipping Submit */
	height: min(86vh, 640px);
	max-height: min(86vh, 640px);
	overflow: hidden;
	padding: 1.35rem 1.5rem 1.35rem;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__title,
body.nosleepman-theme .nsm-review-modal__title {
	grid-column: 1 / -1;
	grid-row: 1;
	margin: 0 2rem 0.25rem 0;
	font-family: var(--nsm-display);
	font-size: 1.25rem;
	font-weight: 700;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form_wrapper,
body.nosleepman-theme .nsm-review-modal #review_form_wrapper {
	grid-column: 1;
	grid-row: 2;
	align-self: stretch;
	height: 100%;
	max-height: 100%;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	padding-right: 0.35rem;
	padding-bottom: 0.25rem;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing,
body.nosleepman-theme .nsm-review-modal__existing {
	grid-column: 2;
	grid-row: 2;
	align-self: stretch;
	height: 100%;
	max-height: 100%;
	min-height: 0;
	margin-top: 0;
	padding-top: 0;
	padding-left: 1.35rem;
	border-top: 0;
	border-left: 1px solid var(--nsm-border);
	overflow-x: hidden;
	overflow-y: auto;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__close {
	position: absolute;
	top: 0.65rem;
	right: 0.65rem;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #111;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__close:hover,
body.nosleepman-theme.nsm-pdp .nsm-review-modal__close:focus,
body.nosleepman-theme.nsm-pdp .nsm-review-modal__close:focus-visible {
	background: transparent;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	opacity: 0.55;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .comment-reply-title {
	display: none;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .comment-form label {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.9rem;
	font-weight: 500;
	color: #111;
}

/* Kill Storefront #respond float layout (author/email at ~29% width). */
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-author,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-email,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-url,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-comment,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-rating,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .form-submit {
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-url {
	display: none !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form input[type="text"],
body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form input[type="email"],
body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form textarea,
body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form select {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 0.85rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid #cacacb;
	border-radius: 4px;
	background: #fff;
	font-family: inherit;
	font-size: 0.95rem;
	color: #111;
	box-sizing: border-box;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form textarea {
	min-height: 72px;
	resize: vertical;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent {
	display: flex !important;
	align-items: flex-start;
	gap: 0.55rem;
	margin: 0 0 1rem !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	margin: 0.2rem 0 0;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent label {
	display: inline !important;
	margin: 0 !important;
	font-size: 0.85rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit {
	margin: 0.25rem 0 0;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit input[type="submit"],
body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit .submit {
	appearance: none;
	width: 100%;
	margin: 0;
	padding: 0.95rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: #111 !important;
	color: #fff !important;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit input[type="submit"]:hover {
	opacity: 0.75;
}

/* Rating stars: visible grey by default, black on hover / selected.
 * Storefront sets ::before opacity .25 — override or stars look invisible. */
body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars {
	display: block;
	margin: 0 0 0.85rem;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars a {
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars a::before {
	color: #b0b0b0 !important;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars:hover a::before {
	color: #111 !important;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars:hover a:hover ~ a::before {
	color: #b0b0b0 !important;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars.selected a:not(.active)::before {
	color: #111 !important;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars.selected a.active::before {
	color: #111 !important;
	opacity: 1 !important;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal p.stars.selected a.active ~ a::before {
	color: #b0b0b0 !important;
	opacity: 1 !important;
}

/* Customer reviews column (desktop) / stacked (mobile) */
body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing-title {
	margin: 0 0 0.85rem;
	font-family: var(--nsm-display);
	font-size: 1.05rem;
	font-weight: 700;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing-empty {
	margin: 0;
	font-size: 0.95rem;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__item {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--nsm-border);
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__item:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__author {
	margin: 0 0 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__item .nsm-stars {
	display: inline-flex;
	margin: 0 0 0.35rem;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__body {
	font-size: 0.95rem;
	line-height: 1.5;
	color: #111;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__body p {
	margin: 0 0 0.35rem;
}

body.nosleepman-theme.nsm-pdp .nsm-review-modal__body p:last-child {
	margin-bottom: 0;
}

body.nosleepman-theme.nsm-pdp.nsm-review-modal-open,
body.nosleepman-theme.nsm-review-modal-open {
	overflow: hidden;
}

@media (max-width: 760px) {
	body.nosleepman-theme.nsm-pdp .nsm-review-modal,
	body.nosleepman-theme .nsm-review-modal {
		align-items: flex-end;
		padding: 0;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__dialog,
	body.nosleepman-theme .nsm-review-modal__dialog {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
		grid-template-rows: none;
		width: 100%;
		max-width: 100%;
		height: min(92dvh, 100%);
		max-height: min(92dvh, 100%);
		margin: 0;
		padding: 1.1rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
		border-radius: 16px 16px 0 0;
		overflow: hidden;
		row-gap: 0;
		column-gap: 0;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__title,
	body.nosleepman-theme .nsm-review-modal__title {
		flex: 0 0 auto;
		margin: 0 2.25rem 0.75rem 0;
		font-size: 1.15rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__close {
		top: 0.75rem;
		right: 0.65rem;
	}

	/* Form takes at most ~half the sheet and scrolls */
	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form_wrapper,
	body.nosleepman-theme .nsm-review-modal #review_form_wrapper {
		flex: 0 1 48%;
		grid-column: auto;
		grid-row: auto;
		width: 100%;
		height: auto;
		max-height: 48%;
		min-height: 0;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding-right: 0;
		padding-bottom: 0.35rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form textarea {
		min-height: 64px !important;
		max-height: 96px;
		resize: none;
	}

	/* Reviews always get remaining space and stay reachable */
	body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing,
	body.nosleepman-theme .nsm-review-modal__existing {
		flex: 1 1 42%;
		grid-column: auto;
		grid-row: auto;
		width: 100%;
		height: auto;
		min-height: 140px;
		max-height: none;
		margin-top: 0.75rem;
		padding-top: 0.85rem;
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--nsm-border);
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
}

@media (max-width: 480px) {
	body.nosleepman-theme.nsm-pdp .nsm-review-modal__dialog,
	body.nosleepman-theme .nsm-review-modal__dialog {
		height: min(94dvh, 100%);
		max-height: min(94dvh, 100%);
		padding: 0.95rem 0.75rem calc(0.95rem + env(safe-area-inset-bottom, 0px));
		border-radius: 14px 14px 0 0;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__title,
	body.nosleepman-theme .nsm-review-modal__title {
		font-size: 1.05rem;
		margin-bottom: 0.55rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form_wrapper,
	body.nosleepman-theme .nsm-review-modal #review_form_wrapper {
		flex-basis: 44%;
		max-height: 44%;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing,
	body.nosleepman-theme .nsm-review-modal__existing {
		flex-basis: 48%;
		min-height: 160px;
		margin-top: 0.55rem;
		padding-top: 0.7rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .comment-form label {
		font-size: 0.85rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form input[type="text"],
	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form input[type="email"],
	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form textarea {
		margin-bottom: 0.65rem;
		padding: 0.6rem 0.7rem;
		font-size: 0.9rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form textarea {
		min-height: 56px !important;
		max-height: 80px;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit input[type="submit"],
	body.nosleepman-theme.nsm-pdp .nsm-review-modal #review_form .form-submit .submit {
		padding: 0.85rem 1.25rem;
		font-size: 0.95rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__existing-title {
		margin-bottom: 0.65rem;
		font-size: 1rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal__item {
		padding: 0.7rem 0;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent {
		margin-bottom: 0.75rem !important;
	}

	body.nosleepman-theme.nsm-pdp .nsm-review-modal #respond .comment-form-cookies-consent label {
		font-size: 0.8rem;
	}
}

body.nosleepman-theme.nsm-pdp .woocommerce-variation-price,
body.nosleepman-theme.nsm-pdp .woocommerce-variation-availability {
	margin-bottom: 0;
}

/* Related / upsells — Nike "You Might Also Like"
   Reference box from DevTools: 1824 × 759.19 (scales down responsively). */
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products {
	--nsm-related-ref-w: 1824px;
	--nsm-related-ref-h: 759.19px;
	--nsm-related-gap: 14px;
	--nsm-related-card: calc((100% - (var(--nsm-related-gap) * 2)) / 3);
	--nsm-related-w: min(var(--nsm-related-ref-w), calc(100vw - (var(--nsm-gutter) * 2)));

	grid-column: 1 / -1;
	grid-row: auto;
	position: relative;
	z-index: 5;
	/* Center a wider box than .col-full (1440) without clipping */
	left: 50%;
	width: var(--nsm-related-w);
	max-width: var(--nsm-related-w);
	aspect-ratio: 1824 / 759.19;
	height: auto;
	max-height: var(--nsm-related-ref-h);
	margin: 2.5rem 0 0;
	margin-left: 0;
	padding: clamp(0.85rem, 1.35vw, 1.15rem) 0 clamp(0.75rem, 1.2vw, 1rem);
	border-top: 1px solid var(--nsm-border);
	box-sizing: border-box;
	transform: translateX(-50%);
	overflow: hidden;
	background: #fff;
	isolation: isolate;
	display: flex;
	flex-direction: column;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products > h2,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products > h2 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex: 0 0 auto;
	margin: 0 0 clamp(0.75rem, 1.15vw, 1.1rem);
	padding: 0;
	font-family: var(--nsm-display);
	font-size: clamp(1.2rem, 1.35vw, 1.5rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #111;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__nav {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #e5e5e5;
	color: #111;
	cursor: pointer;
	transition: background 0.15s var(--nsm-ease), opacity 0.15s var(--nsm-ease);
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn:hover:not(:disabled) {
	background: #cacacb;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn:disabled {
	opacity: 0.45;
	cursor: default;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn:focus,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px #111;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__btn svg {
	display: block;
	width: 16px;
	height: 16px;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__viewport {
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	flex: 1 1 auto;
	gap: var(--nsm-related-gap);
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	box-sizing: border-box;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__viewport ul.products {
	width: 100%;
	margin: 0;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products::-webkit-scrollbar,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products::-webkit-scrollbar {
	display: none;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products::before,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products::after,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products::before,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products::after {
	display: none !important;
	content: none !important;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product {
	position: relative;
	z-index: 1;
	flex: 0 0 var(--nsm-related-card) !important;
	width: var(--nsm-related-card) !important;
	max-width: var(--nsm-related-card) !important;
	height: 100%;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	border: 0;
	background: transparent;
	box-shadow: none;
	scroll-snap-align: start;
	text-align: left;
	display: flex;
	flex-direction: column;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product .woocommerce-LoopProduct-link,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product > a:first-child,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product .woocommerce-LoopProduct-link,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product > a:first-child {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
	aspect-ratio: 1 / 1;
	max-height: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	text-decoration: none;
	background: #f5f5f5;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product img,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product img {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	aspect-ratio: auto;
	object-fit: contain;
	object-position: center;
	border-radius: 0;
	margin: 0;
	display: block;
	background: #f5f5f5;
	transition: transform 0.65s var(--nsm-ease);
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product:hover img,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product:hover img {
	transform: scale(1.02);
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-meta,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-meta {
	width: 100%;
	flex: 0 0 auto;
	padding: 0.65rem 0 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.1rem;
	box-sizing: border-box;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-title,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product .woocommerce-loop-product__title,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-title,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product .woocommerce-loop-product__title {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: #111;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-title a,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-title a {
	color: inherit;
	text-decoration: none;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-subtitle,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-subtitle {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nsm-text-muted);
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-meta .price,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-meta .price {
	margin: 0.15rem 0 0;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.35;
	color: #111;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-meta .price del,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-meta .price del {
	display: block;
	margin-top: 0.1rem;
	font-weight: 400;
	color: var(--nsm-text-muted);
	text-decoration: line-through;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .nsm-loop-meta .price ins,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .nsm-loop-meta .price ins {
	text-decoration: none;
	font-weight: 500;
	color: #111;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .button,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products .button,
body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products .added_to_cart {
	display: none !important;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__progress {
	position: relative;
	flex: 0 0 auto;
	width: var(--nsm-related-card);
	max-width: 100%;
	height: 4px;
	margin: clamp(0.75rem, 1.1vw, 1.1rem) 0 0;
	background: #e5e5e5;
	overflow: hidden;
}

body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__progress-bar {
	display: block;
	height: 100%;
	width: 33.333%;
	background: #111;
	transform: translateX(0);
	transition: transform 0.2s var(--nsm-ease);
	will-change: transform;
}

@media (max-width: 1199px) {
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products {
		--nsm-related-gap: 12px;
		--nsm-related-card: calc((100% - var(--nsm-related-gap)) / 2);
		/* Drop 100vw breakout — stay inside .col-full gutters */
		left: auto;
		transform: none;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		aspect-ratio: auto;
		height: auto;
		max-height: none;
		/* Contain carousel track so  cards cannot expand the PDP grid */
		overflow: hidden;
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
		box-sizing: border-box;
	}

	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__progress {
		--nsm-related-card: calc((100% - var(--nsm-related-gap)) / 2);
		flex-basis: var(--nsm-related-card) !important;
		width: var(--nsm-related-card) !important;
		max-width: var(--nsm-related-card) !important;
		height: auto;
	}

	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product .woocommerce-LoopProduct-link,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product > a:first-child,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product .woocommerce-LoopProduct-link,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product > a:first-child {
		flex: 0 0 auto;
		aspect-ratio: 1 / 1;
		max-height: none;
	}

	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__viewport {
		overflow: hidden;
	}
}

@media (max-width: 600px) {
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__progress {
		/* % of carousel track — never 85vw (that blew out the PDP grid below ~480px) */
		--nsm-related-card: calc(100% - 2.5rem);
		flex-basis: var(--nsm-related-card) !important;
		width: var(--nsm-related-card) !important;
		max-width: var(--nsm-related-card) !important;
	}

	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__nav {
		display: none;
	}
}

body.nosleepman-theme.nsm-pdp .storefront-sticky-add-to-cart {
	display: none !important;
}

/* Laptop: shrink gallery/buy so content keeps a right gutter */
@media (max-width: 1199px) and (min-width: 981px) {
	body.nosleepman-theme.nsm-pdp .site-content .col-full,
	body.nosleepman-theme.nsm-pdp #content .col-full {
		padding-left: max(var(--nsm-gutter), 1.25rem);
		padding-right: max(var(--nsm-gutter), 1.25rem);
	}

	body.nosleepman-theme.nsm-pdp div.product {
		--nsm-pdp-img-w: min(420px, 40vw);
		--nsm-pdp-img-h: calc(var(--nsm-pdp-img-w) * 669 / 535);
		--nsm-pdp-thumb: 64px;
		--nsm-pdp-thumb-gap: 10px;
		--nsm-pdp-buy-col: min(360px, 100%);
	}

	body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary {
		margin-left: clamp(1rem, 2vw, 1.75rem) !important;
		padding-right: 0.25rem;
	}

	/* Match related row to gallery + buy columns (not the side fr tracks) */
	body.nosleepman-theme.nsm-pdp div.product .related.products,
	body.nosleepman-theme.nsm-pdp div.product .upsells.products {
		grid-column: 2 / 4;
		justify-self: stretch;
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 980px) {
	body.nosleepman-theme.nsm-pdp div.product {
		/* minmax(0,1fr) — prevent related/carousel min-content from blowing the column */
		grid-template-columns: minmax(0, 1fr);
		column-gap: 0;
		row-gap: 1.75rem;
		--nsm-pdp-img-w: min(535px, 100%);
		--nsm-pdp-img-h: auto;
		--nsm-pdp-left-col: 100%;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	body.nosleepman-theme.nsm-pdp div.product:has(.woocommerce-product-gallery .flex-control-thumbs) {
		--nsm-pdp-left-col: 100%;
	}

	body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery,
	body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary,
	body.nosleepman-theme.nsm-pdp div.product .nsm-pdp-accordions {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
	}

	body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary {
		margin-left: 0 !important;
	}

	body.nosleepman-theme.nsm-pdp .summary.entry-summary {
		position: static;
	}

	/* Mobile: gallery → buy box → accordions */
	body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery {
		order: 1;
	}

	body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary {
		order: 2;
	}

	body.nosleepman-theme.nsm-pdp div.product .nsm-pdp-accordions {
		order: 3;
		margin-top: 0.25rem;
	}

	body.nosleepman-theme.nsm-pdp div.product .related.products,
	body.nosleepman-theme.nsm-pdp div.product .upsells.products {
		order: 4;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-viewport,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
		width: min(535px, 100%);
		height: auto !important;
		aspect-ratio: 535 / 669;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.flex-active-slide) .woocommerce-product-gallery__image {
		height: 100% !important;
		aspect-ratio: auto;
	}
}

/* Tablet: keep vertical thumbs beside a capped stage */
@media (max-width: 980px) and (min-width: 769px) {
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav {
		left: calc(56px + 10px);
		height: auto;
		bottom: 0;
		max-width: none;
		aspect-ratio: 535 / 669;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)),
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.flex-control-thumbs) {
		width: 100%;
		padding-left: calc(56px + 10px);
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs li,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img {
		width: 56px !important;
		height: 56px;
	}
}

/* Phone / small tablet: full-width stage, thumbs under image, arrows over stage */
@media (max-width: 768px) {
	body.nosleepman-theme.nsm-pdp .site-content .col-full,
	body.nosleepman-theme.nsm-pdp #content .col-full {
		padding-left: max(1rem, env(safe-area-inset-left));
		padding-right: max(1rem, env(safe-area-inset-right));
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
		overflow-x: clip;
	}

	body.nosleepman-theme.nsm-pdp div.product {
		--nsm-pdp-img-w: 100%;
		--nsm-pdp-thumb: 76px;
		--nsm-pdp-thumb-gap: 8px;
		overflow-x: clip;
	}

	body.nosleepman-theme.nsm-pdp div.product .woocommerce-product-gallery,
	body.nosleepman-theme.nsm-pdp div.product .summary.entry-summary,
	body.nosleepman-theme.nsm-pdp div.product .nsm-pdp-accordions,
	body.nosleepman-theme.nsm-pdp div.product .related.products {
		max-width: 100%;
		min-width: 0;
	}

	body.nosleepman-theme.nsm-pdp .summary .product_title {
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	body.nosleepman-theme.nsm-pdp form.cart .single_add_to_cart_button,
	body.nosleepman-theme.nsm-pdp form.cart button.button.alt,
	body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite {
		box-sizing: border-box;
		max-width: 100%;
		text-align: center;
		justify-content: center;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.woocommerce-product-gallery__image:nth-child(2)),
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:has(.flex-control-thumbs) {
		width: 100% !important;
		max-width: 100%;
		padding-left: 0 !important;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-viewport,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
		width: 100% !important;
		max-width: 100%;
		aspect-ratio: 535 / 669;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery:not(:has(.flex-active-slide)) .woocommerce-product-gallery__image:first-child {
		aspect-ratio: 535 / 669;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav {
		left: 0 !important;
		right: 0;
		top: 0;
		bottom: auto;
		width: 100%;
		max-width: 100%;
		height: auto;
		aspect-ratio: 535 / 669;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav a {
		width: 36px;
		height: 36px;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav .flex-prev {
		left: 10px;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-direction-nav .flex-next {
		right: 10px;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs {
		position: static;
		display: flex !important;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 8px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		margin: 12px 0 0 !important;
		padding: 0 0 2px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar {
		display: none;
	}

	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs li,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img {
		width: var(--nsm-pdp-thumb) !important;
		height: var(--nsm-pdp-thumb);
		flex: 0 0 auto;
	}
}

@media (max-width: 600px) {
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs li,
	body.nosleepman-theme.nsm-pdp .woocommerce-product-gallery .flex-control-thumbs img {
		width: 56px !important;
		height: 56px;
	}
}

/* Narrow phones (425px and below): tighten buy-box + header so nothing clips */
@media (max-width: 480px) {
	body.nosleepman-theme .storefront-primary-navigation .col-full {
		gap: 0.15rem;
		padding-left: max(0.65rem, env(safe-area-inset-left));
		padding-right: max(0.65rem, env(safe-area-inset-right));
	}

	body.nosleepman-theme .site-header .site-title,
	body.nosleepman-theme .site-header .site-title a {
		font-size: clamp(0.95rem, 4.2vw, 1.15rem);
		letter-spacing: -0.02em;
	}

	/* Compact header icon row — leave room for the wordmark */
	body.nosleepman-theme .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		width: 36px !important;
		flex: 0 0 36px;
	}

	body.nosleepman-theme .site-search .widget,
	body.nosleepman-theme .site-search form.woocommerce-product-search {
		width: 36px;
		height: 36px;
	}

	body.nosleepman-theme .site-search button,
	body.nosleepman-theme .site-search input[type="submit"],
	body.nosleepman-theme .site-search .widget_product_search #searchsubmit {
		flex: 0 0 36px;
		width: 36px !important;
		height: 36px !important;
		min-width: 36px !important;
		background-size: 22px 22px !important;
	}

	body.nosleepman-theme .nsm-wishlist-link,
	body.nosleepman-theme .nsm-account-link {
		width: 36px;
		height: 36px;
	}

	body.nosleepman-theme .nsm-wishlist-link svg,
	body.nosleepman-theme .nsm-account-link svg {
		font-size: 22px;
	}

	body.nosleepman-theme .site-header-cart .cart-contents {
		height: 36px !important;
		min-height: 36px !important;
		padding: 0 !important;
	}

	body.nosleepman-theme .site-header-cart .cart-contents .nsm-header-bag-icon {
		font-size: 22px;
	}

	body.nosleepman-theme .main-navigation .menu-toggle {
		width: 36px;
		height: 36px;
		background-size: 22px 22px !important;
	}

	body.nosleepman-theme .main-navigation.toggled .menu-toggle {
		background-size: 22px 22px !important;
	}

	body.nosleepman-theme.nsm-pdp .site-content .col-full,
	body.nosleepman-theme.nsm-pdp #content .col-full {
		padding-left: max(0.75rem, env(safe-area-inset-left));
		padding-right: max(0.75rem, env(safe-area-inset-right));
	}

	body.nosleepman-theme.nsm-pdp .summary .product_title {
		font-size: clamp(1.15rem, 5vw, 1.35rem);
	}

	body.nosleepman-theme.nsm-pdp .nsm-pdp-swatches__list {
		gap: 8px;
	}

	body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--size {
		min-width: 0;
		flex: 1 1 calc(33.333% - 8px);
		max-width: calc(33.333% - 6px);
		height: 44px;
		padding: 0 0.35rem;
		font-size: 0.85rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-pdp-swatch--text {
		min-height: 42px;
		padding: 0.55rem 0.65rem;
		font-size: 0.85rem;
		flex: 1 1 auto;
	}

	body.nosleepman-theme.nsm-pdp form.cart .quantity .nsm-qty-btn {
		width: 3rem;
		min-width: 3rem;
	}

	body.nosleepman-theme.nsm-pdp form.cart .single_add_to_cart_button,
	body.nosleepman-theme.nsm-pdp form.cart button.button.alt,
	body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite {
		padding: 1rem 1.1rem;
		font-size: 0.95rem;
	}

	body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite .nsm-fav-toggle__icon,
	body.nosleepman-theme.nsm-pdp .nsm-pdp__favourite-icon {
		font-size: 22px;
	}

	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .related.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .upsells.products ul.products li.product,
	body.nosleepman-theme:is(.nsm-pdp, .nsm-bag-page) .nsm-related-carousel__progress {
		--nsm-related-card: calc(100% - 1.75rem);
		flex-basis: var(--nsm-related-card) !important;
		width: var(--nsm-related-card) !important;
		max-width: var(--nsm-related-card) !important;
	}
}

/* Very small phones (≤360 / 320): keep logo clear of icon cluster */
@media (max-width: 360px) {
	body.nosleepman-theme .storefront-primary-navigation .col-full {
		gap: 0.25rem;
		padding-left: max(0.45rem, env(safe-area-inset-left));
		padding-right: max(0.45rem, env(safe-area-inset-right));
	}

	body.nosleepman-theme .site-header .site-branding {
		flex: 1 1 auto;
		min-width: 0;
		margin-right: 0;
		padding-right: 0;
		overflow: hidden;
	}

	body.nosleepman-theme .site-header .site-title,
	body.nosleepman-theme .site-header .site-title a {
		font-size: 0.8125rem;
		letter-spacing: -0.045em;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	body.nosleepman-theme .site-header .site-search,
	body.nosleepman-theme.woocommerce-active .site-header .site-search {
		width: 30px !important;
		flex: 0 0 30px;
		margin-left: 0 !important;
	}

	body.nosleepman-theme .site-search .widget,
	body.nosleepman-theme .site-search form.woocommerce-product-search {
		width: 30px;
		height: 30px;
	}

	body.nosleepman-theme .site-search button,
	body.nosleepman-theme .site-search input[type="submit"],
	body.nosleepman-theme .site-search .widget_product_search #searchsubmit {
		flex: 0 0 30px;
		width: 30px !important;
		height: 30px !important;
		min-width: 30px !important;
		background-size: 18px 18px !important;
	}

	body.nosleepman-theme .nsm-wishlist-link,
	body.nosleepman-theme .nsm-account-link {
		width: 30px;
		height: 30px;
	}

	body.nosleepman-theme .nsm-wishlist-link svg,
	body.nosleepman-theme .nsm-account-link svg {
		font-size: 18px;
	}

	body.nosleepman-theme .site-header-cart,
	body.nosleepman-theme .site-header-cart > li {
		height: 30px;
	}

	body.nosleepman-theme .site-header-cart .cart-contents {
		height: 30px !important;
		min-height: 30px !important;
		padding: 0 !important;
	}

	body.nosleepman-theme .site-header-cart .cart-contents .nsm-header-bag-icon {
		font-size: 18px;
	}

	body.nosleepman-theme .storefront-primary-navigation .main-navigation {
		height: 30px;
	}

	body.nosleepman-theme .main-navigation .menu-toggle {
		width: 30px;
		height: 30px;
		background-size: 18px 18px !important;
	}

	body.nosleepman-theme .main-navigation.toggled .menu-toggle {
		background-size: 18px 18px !important;
	}
}

/* ---------- Size Guide modal ---------- */
body.nosleepman-theme .nsm-size-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

body.nosleepman-theme .nsm-size-modal[hidden] {
	display: none !important;
}

body.nosleepman-theme .nsm-size-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

body.nosleepman-theme .nsm-size-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(980px, 94vw);
	max-height: min(84vh, 640px);
	overflow: auto;
	padding: 1.35rem 1.5rem 1.5rem;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
	box-sizing: border-box;
}

body.nosleepman-theme .nsm-size-modal__close {
	position: absolute;
	top: 0.7rem;
	right: 0.7rem;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0 !important;
	background: transparent;
	box-shadow: none;
	color: #111;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

body.nosleepman-theme .nsm-size-modal__close:hover,
body.nosleepman-theme .nsm-size-modal__close:focus,
body.nosleepman-theme .nsm-size-modal__close:focus-visible {
	outline: none !important;
	box-shadow: none !important;
	opacity: 0.55;
}

body.nosleepman-theme .nsm-size-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 2rem 1.1rem 0;
}

body.nosleepman-theme .nsm-size-modal__title {
	margin: 0;
	font-family: var(--nsm-display);
	font-size: 1.35rem;
	font-weight: 700;
	color: #111;
}

body.nosleepman-theme .nsm-size-modal__units {
	display: inline-flex;
	align-items: center;
	padding: 3px;
	border: 1px solid #d6d6d8;
	border-radius: 999px;
	background: #fff;
}

body.nosleepman-theme .nsm-size-modal__unit {
	appearance: none;
	min-width: 44px;
	margin: 0;
	padding: 0.4rem 0.75rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #111;
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 500;
	cursor: pointer;
}

body.nosleepman-theme .nsm-size-modal__unit.is-active {
	background: #e5e5e5;
}

body.nosleepman-theme .nsm-size-modal__unit:focus,
body.nosleepman-theme .nsm-size-modal__unit:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

body.nosleepman-theme .nsm-size-modal__body {
	color: #111;
}

body.nosleepman-theme .nsm-size-modal__body .wp-block-table,
body.nosleepman-theme .nsm-size-modal__body figure.wp-block-table {
	margin: 0 0 1.35rem;
	overflow-x: auto;
}

body.nosleepman-theme .nsm-size-modal__body table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: 0.92rem;
	line-height: 1.35;
}

body.nosleepman-theme .nsm-size-modal__body table td,
body.nosleepman-theme .nsm-size-modal__body table th {
	padding: 0.85rem 0.65rem;
	border: 1px solid #d6d6d8;
	vertical-align: middle;
	text-align: center;
	background: #fff;
	color: #111;
}

body.nosleepman-theme .nsm-size-modal__body table tr > *:first-child {
	text-align: left;
	font-weight: 500;
	white-space: nowrap;
}

body.nosleepman-theme .nsm-size-modal__body table tr:nth-child(even) > * {
	background: #f5f5f5;
}

body.nosleepman-theme .nsm-size-modal__body table tr:first-child > * {
	font-weight: 600;
	background: #fff;
}

body.nosleepman-theme .nsm-size-modal__body p {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	line-height: 1.55;
}

body.nosleepman-theme .nsm-size-modal__body p strong {
	display: inline-block;
	margin-top: 0.35rem;
	font-size: 1.05rem;
	font-weight: 700;
}

body.nosleepman-theme .nsm-size-modal__body ul {
	margin: 0.35rem 0 0;
	padding: 0 0 0 1.15rem;
	list-style: square;
}

body.nosleepman-theme .nsm-size-modal__body li {
	margin: 0 0 0.55rem;
	font-size: 1rem;
	line-height: 1.5;
}

body.nosleepman-theme.nsm-size-modal-open {
	overflow: hidden;
}

@media (max-width: 768px) {
	body.nosleepman-theme .nsm-size-modal {
		align-items: flex-end;
		padding: 0;
	}

	body.nosleepman-theme .nsm-size-modal__dialog {
		width: 100%;
		max-width: 100%;
		max-height: min(92vh, 100%);
		margin: 0;
		padding: 1.15rem 1rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
		border-radius: 16px 16px 0 0;
	}

	body.nosleepman-theme .nsm-size-modal__close {
		top: 0.85rem;
		right: 0.75rem;
	}

	body.nosleepman-theme .nsm-size-modal__header {
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 0.75rem 1rem;
		margin: 0 2.5rem 1rem 0;
	}

	body.nosleepman-theme .nsm-size-modal__title {
		font-size: 1.2rem;
		line-height: 1.2;
	}

	body.nosleepman-theme .nsm-size-modal__units {
		order: 3;
		width: 100%;
		justify-content: stretch;
	}

	body.nosleepman-theme .nsm-size-modal__unit {
		flex: 1 1 0;
		text-align: center;
	}

	body.nosleepman-theme .nsm-size-modal__body .wp-block-table,
	body.nosleepman-theme .nsm-size-modal__body figure.wp-block-table {
		margin: 0 0 1.15rem;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	body.nosleepman-theme .nsm-size-modal__body table {
		min-width: 560px;
		font-size: 0.8125rem;
	}

	body.nosleepman-theme .nsm-size-modal__body table td,
	body.nosleepman-theme .nsm-size-modal__body table th {
		padding: 0.65rem 0.45rem;
	}

	body.nosleepman-theme .nsm-size-modal__body p,
	body.nosleepman-theme .nsm-size-modal__body li {
		font-size: 0.9375rem;
		line-height: 1.5;
	}

	body.nosleepman-theme .nsm-size-modal__body p strong {
		font-size: 1rem;
	}
}

/* Narrow phones (425px and below): fit chart in the sheet */
@media (max-width: 480px) {
	body.nosleepman-theme .nsm-size-modal {
		padding: 0;
	}

	body.nosleepman-theme .nsm-size-modal__dialog {
		width: 100%;
		max-width: 100%;
		max-height: min(94dvh, 100%);
		padding: 0.95rem 0.65rem calc(1rem + env(safe-area-inset-bottom, 0px));
		border-radius: 14px 14px 0 0;
	}

	body.nosleepman-theme .nsm-size-modal__close {
		top: 0.55rem;
		right: 0.35rem;
		width: 40px;
		height: 40px;
		font-size: 1.6rem;
	}

	body.nosleepman-theme .nsm-size-modal__header {
		gap: 0.55rem;
		margin: 0 2.1rem 0.75rem 0;
	}

	body.nosleepman-theme .nsm-size-modal__title {
		font-size: 1.1rem;
	}

	body.nosleepman-theme .nsm-size-modal__unit {
		min-width: 0;
		padding: 0.4rem 0.5rem;
		font-size: 0.85rem;
	}

	body.nosleepman-theme .nsm-size-modal__body .wp-block-table,
	body.nosleepman-theme .nsm-size-modal__body figure.wp-block-table {
		display: block;
		width: 100%;
		max-width: 100%;
		margin: 0 0 1rem;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		overscroll-behavior-x: contain;
	}

	body.nosleepman-theme .nsm-size-modal__body > table {
		margin: 0 0 1rem;
	}

	/* Force columns into the available width — no clipped off-screen table */
	body.nosleepman-theme .nsm-size-modal__body table {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100%;
		table-layout: fixed;
		font-size: 0.68rem;
		line-height: 1.25;
	}

	body.nosleepman-theme .nsm-size-modal__body table td,
	body.nosleepman-theme .nsm-size-modal__body table th {
		padding: 0.5rem 0.2rem;
		box-sizing: border-box;
		word-break: break-word;
		overflow-wrap: anywhere;
		hyphens: auto;
	}

	body.nosleepman-theme .nsm-size-modal__body table tr > *:first-child {
		width: 22%;
		padding-left: 0.35rem;
		padding-right: 0.3rem;
		white-space: normal;
		font-size: 0.7rem;
	}

	body.nosleepman-theme .nsm-size-modal__body p,
	body.nosleepman-theme .nsm-size-modal__body li {
		font-size: 0.875rem;
		line-height: 1.45;
	}

	body.nosleepman-theme .nsm-size-modal__body p strong {
		font-size: 0.95rem;
	}

	body.nosleepman-theme .nsm-size-modal__body ul {
		padding-left: 1rem;
	}
}




/* ==========================================================================
   Bag / Cart page (Nike-style)
   ========================================================================== */
body.nsm-bag-page.nosleepman-theme .site-content .col-full,
body.nsm-bag-page.nosleepman-theme #content .col-full {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--nsm-max);
	margin-left: auto;
	margin-right: auto;
	/* Kill Storefront ≤66.5em side margins that inset the cart column */
	padding-left: var(--nsm-gutter);
	padding-right: var(--nsm-gutter);
	overflow: visible;
}

@media (max-width: 66.4989em) {
	body.nsm-bag-page.nosleepman-theme .site-content .col-full,
	body.nsm-bag-page.nosleepman-theme #content .col-full {
		margin-left: 0;
		margin-right: 0;
	}
}

body.nsm-bag-page.nosleepman-theme .content-area,
body.nsm-bag-page.nosleepman-theme .site-main {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	overflow: visible;
}

body.nsm-bag-page.nosleepman-theme .page-title,
body.nsm-bag-page.nosleepman-theme .entry-title,
body.nsm-bag-page.nosleepman-theme h1.entry-title {
	display: none !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag {
	padding: 1.5rem 0 2rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag--empty {
	max-width: 36rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-empty__text {
	margin: 0 0 1.25rem;
	font-size: 1rem;
	color: var(--nsm-text-muted);
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-empty__shop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.5rem;
	border-radius: 999px;
	background: #111;
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-empty__shop:hover {
	opacity: 0.8;
	color: #fff;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

/* Laptop (~1024): Bag dominates; Summary stays compact; controls stay grouped */
@media (max-width: 1199px) and (min-width: 901px) {
	body.nsm-bag-page.nosleepman-theme .site-content .col-full {
		padding-left: max(1.25rem, var(--nsm-gutter));
		padding-right: max(1.25rem, var(--nsm-gutter));
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__layout {
		grid-template-columns: minmax(0, 1fr) minmax(220px, 260px);
		gap: clamp(2.5rem, 5vw, 3.5rem);
		column-gap: clamp(2.5rem, 5vw, 3.5rem);
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__item {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 1.15rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb-link,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb img {
		width: 112px;
		height: 112px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__row-top {
		gap: 1.25rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__meta {
		min-width: 0;
		padding-right: 0.5rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__controls {
		gap: 0.5rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus,
	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus {
		width: 36px;
		min-width: 36px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__title,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__title {
		font-size: clamp(1.5rem, 2.2vw, 1.85rem);
	}
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__title {
	margin: 0 0 1.75rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__item {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1.25rem;
	align-items: stretch;
	float: none !important;
	width: 100% !important;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__media {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
	min-width: 0;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb,
body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb-link,
body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb img {
	display: block;
	width: 140px;
	height: 140px;
	object-fit: cover;
	background: #f5f5f5;
	border-radius: 0;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__details {
	display: flex;
	flex-direction: column;
	min-width: 0;
	align-self: stretch;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__row-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	flex: 1 1 auto;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	align-self: stretch;
	flex: 0 0 auto;
	gap: 0.75rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__name {
	margin: 0 0 0.25rem;
	font-size: 1rem;
	font-weight: 600;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__name a {
	color: inherit;
	text-decoration: none;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__name a:hover {
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__attr {
	margin: 0;
	font-size: 1rem;
	color: #707072;
	line-height: 1.45;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__attr--size {
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__price {
	flex: 0 0 auto;
	font-size: 1rem;
	font-weight: 500;
	color: #111;
	white-space: nowrap;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__price .amount {
	font-weight: 500;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__controls {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-top: 0;
	width: auto;
	max-width: 100%;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid #cacacb;
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
	min-height: 40px;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty .quantity {
	display: flex !important;
	align-items: center;
	margin: 0 !important;
	float: none !important;
	width: auto;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	min-width: 42px;
	margin: 0;
	padding: 0;
	border: 0;
	background: #fff;
	color: #111;
	cursor: pointer;
	text-decoration: none;
	line-height: 1;
	font-size: 1.1rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus:hover,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus:hover {
	background: #f5f5f5;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus:disabled,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus:disabled {
	opacity: 0.35;
	cursor: default;
	background: #fff;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus .nsm-icon,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus .nsm-icon {
	width: 16px;
	height: 16px;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus:focus,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus:focus,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__input:focus {
	outline: none !important;
	box-shadow: none !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__input.qty,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty .qty {
	width: 2rem !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0.4rem 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	text-align: center;
	font-size: 0.9375rem;
	font-weight: 500;
	-moz-appearance: textfield;
	appearance: textfield;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty .qty::-webkit-outer-spin-button,
body.nsm-bag-page.nosleepman-theme .nsm-bag-qty .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__value {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	padding: 0 0.25rem;
	font-size: 0.9375rem;
	font-weight: 500;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__favourite {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid #cacacb;
	border-radius: 50%;
	color: #111;
	background: #fff;
	text-decoration: none;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__favourite:hover {
	background: #f5f5f5;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__favourite .nsm-icon {
	font-size: 25px;
	width: 1em;
	height: 1em;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid #cacacb;
	border-radius: 50%;
	color: #111;
	background: #fff;
	text-decoration: none;
	margin-left: 0;
	margin-top: auto;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__remove:hover {
	background: #f5f5f5;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__remove .nsm-icon {
	width: 16px;
	height: 16px;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__urgency {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.85rem 0 0;
	color: #d97706;
	font-size: 0.875rem;
	font-weight: 500;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__urgency .nsm-icon {
	width: 14px;
	height: 14px;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__shipping {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	margin-top: 2rem;
	padding: 1.15rem 0;
	border-top: 1px solid var(--nsm-border);
	border-bottom: 1px solid var(--nsm-border);
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__shipping-icon {
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
	margin-top: 0.1rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__shipping-text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.45;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__shipping-text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Summary column — override Storefront 53% float that leaves a tall empty gap */
body.nsm-bag-page.nosleepman-theme .nsm-bag__summary-wrap,
body.nsm-bag-page.nosleepman-theme .cart-collaterals,
body.nsm-bag-page.nosleepman-theme .cart-collaterals .cart_totals,
body.nsm-bag-page.nosleepman-theme .nsm-bag-summary {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0;
	background: transparent;
	border: 0;
}

body.nsm-bag-page.nosleepman-theme .cart-collaterals::before,
body.nsm-bag-page.nosleepman-theme .cart-collaterals::after,
body.nsm-bag-page.nosleepman-theme .wc-proceed-to-checkout::before,
body.nsm-bag-page.nosleepman-theme .wc-proceed-to-checkout::after {
	content: none !important;
	display: none !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary .shop_table,
body.nsm-bag-page.nosleepman-theme .nsm-bag-summary .woocommerce-shipping-totals,
body.nsm-bag-page.nosleepman-theme .nsm-bag-summary .woocommerce-shipping-calculator,
body.nsm-bag-page.nosleepman-theme .nsm-bag-summary .shipping-calculator-form,
body.nsm-bag-page.nosleepman-theme .cart-collaterals .cross-sells,
body.nsm-bag-page.nosleepman-theme .cart-collaterals .shipping_calculator {
	display: none !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__title {
	margin: 0 0 1.5rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__rows {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	font-size: 1rem;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__row--total {
	margin-top: 0.25rem;
	padding-top: 0.85rem;
	padding-bottom: 0.85rem;
	border-top: 1px solid var(--nsm-border);
	border-bottom: 1px solid var(--nsm-border);
	font-weight: 600;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__label {
	font-weight: 400;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__row--total .nsm-bag-summary__label,
body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__row--total .nsm-bag-summary__value {
	font-weight: 600;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-summary__checkout,
body.nsm-bag-page.nosleepman-theme .wc-proceed-to-checkout {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 1.15rem 0 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-checkout {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0 !important;
	padding: 1.05rem 1.5rem !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #111 !important;
	color: #fff !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-checkout:hover {
	opacity: 0.82;
	background: #111 !important;
	color: #fff !important;
}

/* No PayPal / wallet buttons on bag */
body.nsm-bag-page.nosleepman-theme .wc-proceed-to-checkout > *:not(.nsm-bag-checkout) {
	display: none !important;
}

body.nsm-bag-page.nosleepman-theme .wc-proceed-to-checkout .nsm-bag-checkout {
	display: flex !important;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-favourites {
	margin-top: 3.5rem;
	padding-top: 0.5rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-favourites__title {
	margin: 0 0 0.75rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.5rem, 2vw, 1.85rem);
	font-weight: 600;
	color: #111;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-favourites__text {
	margin: 0;
	font-size: 1rem;
	color: #111;
	line-height: 1.5;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag-favourites__text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.nsm-bag-page.nosleepman-theme .related.products {
	margin-bottom: 3rem;
}

body.nsm-bag-page.nosleepman-theme .nsm-bag__actions[hidden] {
	display: block !important;
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 900px) {
	body.nsm-bag-page.nosleepman-theme .nsm-bag__layout {
		grid-template-columns: 1fr;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__item {
		grid-template-columns: auto minmax(0, 1fr);
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb-link,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb img {
		width: 110px;
		height: 110px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus,
	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus {
		width: 34px;
		min-width: 34px;
	}
}

/*
 * Phones (≤480 / 425): give text a full column beside the thumb,
 * and put qty + favourite + delete on one full-width row beneath.
 */
@media (max-width: 480px) {
	body.nsm-bag-page.nosleepman-theme .nsm-bag__item {
		grid-template-columns: 96px minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb meta price"
			"controls controls remove"
			"urgency urgency urgency";
		gap: 0.75rem 0.85rem;
		align-items: start;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__media,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__details,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__row-top,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__aside {
		display: contents;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb {
		grid-area: thumb;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb-link,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb img {
		width: 96px;
		height: 96px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__meta {
		grid-area: meta;
		min-width: 0;
		padding-right: 0;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__name {
		font-size: 0.9375rem;
		line-height: 1.3;
		margin-bottom: 0.35rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__attr {
		font-size: 0.875rem;
		line-height: 1.4;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__price {
		grid-area: price;
		align-self: start;
		font-size: 0.9375rem;
		padding-top: 0.1rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__controls {
		grid-area: controls;
		width: 100%;
		flex-wrap: nowrap;
		gap: 0.55rem;
		align-self: center;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__remove {
		grid-area: remove;
		align-self: center;
		margin-top: 0;
		width: 40px;
		height: 40px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__urgency {
		grid-area: urgency;
		margin-top: 0.15rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty {
		min-height: 40px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus,
	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus {
		width: 38px;
		min-width: 38px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__favourite {
		width: 40px;
		height: 40px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__items {
		gap: 1.5rem;
	}
}

@media (max-width: 360px) {
	body.nsm-bag-page.nosleepman-theme .nsm-bag__item {
		grid-template-columns: 80px minmax(0, 1fr) auto;
		gap: 0.65rem 0.7rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb-link,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__thumb img {
		width: 80px;
		height: 80px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__name {
		font-size: 0.875rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__attr {
		font-size: 0.8125rem;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__minus,
	body.nsm-bag-page.nosleepman-theme .nsm-bag-qty__plus {
		width: 34px;
		min-width: 34px;
	}

	body.nsm-bag-page.nosleepman-theme .nsm-bag__favourite,
	body.nsm-bag-page.nosleepman-theme .nsm-bag__remove {
		width: 36px;
		height: 36px;
	}
}

/* ==========================================================================
   Checkout — quiet luxury
   ========================================================================== */

body.nsm-checkout.nosleepman-theme .site-content .col-full,
body.nsm-checkout.nosleepman-theme #content .col-full {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--nsm-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nsm-gutter);
	padding-right: var(--nsm-gutter);
}

@media (max-width: 66.4989em) {
	body.nsm-checkout.nosleepman-theme .site-content .col-full,
	body.nsm-checkout.nosleepman-theme #content .col-full {
		margin-left: 0;
		margin-right: 0;
	}
}

body.nsm-checkout.nosleepman-theme .content-area,
body.nsm-checkout.nosleepman-theme .site-main,
body.nsm-checkout.nosleepman-theme .hentry,
body.nsm-checkout.nosleepman-theme .entry-content {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
}

body.nsm-checkout.nosleepman-theme .page-title,
body.nsm-checkout.nosleepman-theme h1.entry-title,
body.nsm-checkout.nosleepman-theme .entry-header {
	display: none !important;
}

body.nsm-checkout.nosleepman-theme .woocommerce-NoticeGroup-checkout,
body.nsm-checkout.nosleepman-theme .woocommerce-notices-wrapper {
	max-width: 1180px;
	margin: 0 auto 1.5rem;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-page {
	max-width: 1180px;
	margin: 0 auto;
	padding: 2.25rem 0 5rem;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout__title {
	margin: 0 0 2.35rem;
	font-family: var(--nsm-display);
	font-size: clamp(2.15rem, 3.4vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.05;
	color: #111;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, 400px);
	gap: clamp(2.5rem, 6vw, 5.5rem);
	align-items: start;
}

/* Source order is summary → form (mobile); keep form left / summary right on desktop */
body.nsm-checkout.nosleepman-theme .nsm-checkout__main {
	max-width: 640px;
	grid-column: 1;
	grid-row: 1;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout__aside {
	position: relative;
	width: 100%;
	min-width: 0;
	grid-column: 2;
	grid-row: 1;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-summary,
body.nsm-checkout.nosleepman-theme #order_review,
body.nsm-checkout.nosleepman-theme #order_review_heading,
body.nsm-checkout.nosleepman-theme .woocommerce-checkout-review-order,
body.nsm-checkout.nosleepman-theme .nsm-checkout-summary__body,
body.nsm-checkout.nosleepman-theme .woocommerce-checkout-review-order-table,
body.nsm-checkout.nosleepman-theme #payment {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	clear: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-section,
body.nsm-checkout.nosleepman-theme #customer_details,
body.nsm-checkout.nosleepman-theme #customer_details .col-1,
body.nsm-checkout.nosleepman-theme #customer_details .col-2 {
	width: 100% !important;
	float: none !important;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-block {
	margin: 0 0 2.15rem;
	padding: 0 0 2.15rem;
	border: 0;
	border-bottom: 1px solid var(--nsm-border);
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-block--note,
body.nsm-checkout.nosleepman-theme .nsm-checkout-block--payment {
	border-bottom: 0;
	padding-bottom: 0;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-block__title {
	margin: 0 0 1.25rem;
	padding: 0;
	font-family: var(--nsm-display);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.2;
	color: #111;
	border: 0;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-block__title--check {
	font-size: 1.05rem;
	font-weight: 500;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-guest {
	margin: 0.65rem 0 0;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--nsm-text-muted);
}

body.nsm-checkout.nosleepman-theme .woocommerce-billing-fields__field-wrapper,
body.nsm-checkout.nosleepman-theme .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.9rem 0.85rem;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row {
	margin: 0 0 0.9rem;
	padding: 0;
	width: 100%;
	float: none !important;
}

body.nsm-checkout.nosleepman-theme .woocommerce-billing-fields__field-wrapper .form-row,
body.nsm-checkout.nosleepman-theme .woocommerce-shipping-fields__field-wrapper .form-row {
	margin: 0;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row-wide,
body.nsm-checkout.nosleepman-theme form.checkout .nsm-checkout-email {
	grid-column: 1 / -1;
	width: 100%;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row-first,
body.nsm-checkout.nosleepman-theme form.checkout .form-row-last {
	width: 100%;
	float: none;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row label {
	display: block;
	margin: 0 0 0.45rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: #111;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row label .required,
body.nsm-checkout.nosleepman-theme form.checkout .form-row label abbr.required {
	text-decoration: none;
	border: 0;
	color: #111;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row .optional {
	font-weight: 400;
	color: var(--nsm-text-muted);
}

body.nsm-checkout.nosleepman-theme form.checkout .input-text,
body.nsm-checkout.nosleepman-theme form.checkout select,
body.nsm-checkout.nosleepman-theme form.checkout textarea,
body.nsm-checkout.nosleepman-theme form.checkout .select2-container .select2-selection--single {
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #f6f6f6;
	color: #111;
	font-family: var(--nsm-font);
	font-size: 0.9375rem;
	line-height: 1.4;
	box-shadow: none;
	appearance: none;
	transition: border-color 0.15s var(--nsm-ease), background 0.15s var(--nsm-ease);
}

body.nsm-checkout.nosleepman-theme form.checkout textarea {
	min-height: 96px;
	resize: vertical;
}

body.nsm-checkout.nosleepman-theme form.checkout .input-text:hover,
body.nsm-checkout.nosleepman-theme form.checkout select:hover,
body.nsm-checkout.nosleepman-theme form.checkout .select2-container .select2-selection--single:hover {
	background: #f0f0f0;
}

body.nsm-checkout.nosleepman-theme form.checkout .input-text:focus,
body.nsm-checkout.nosleepman-theme form.checkout select:focus,
body.nsm-checkout.nosleepman-theme form.checkout textarea:focus,
body.nsm-checkout.nosleepman-theme form.checkout .select2-container--open .select2-selection--single {
	background: #fff;
	border-color: #111;
	outline: none;
	box-shadow: none;
}

body.nsm-checkout.nosleepman-theme form.checkout .woocommerce-invalid .input-text,
body.nsm-checkout.nosleepman-theme form.checkout .woocommerce-invalid select,
body.nsm-checkout.nosleepman-theme form.checkout .woocommerce-invalid textarea,
body.nsm-checkout.nosleepman-theme form.checkout .woocommerce-invalid .select2-container .select2-selection--single,
body.nsm-checkout.nosleepman-theme form.checkout .nsm-checkout-has-error .input-text,
body.nsm-checkout.nosleepman-theme form.checkout .nsm-checkout-has-error select,
body.nsm-checkout.nosleepman-theme form.checkout .nsm-checkout-has-error .select2-container .select2-selection--single {
	border-color: #b42318 !important;
	background: #fff !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-field-error {
	margin: 0.45rem 0 0;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.4;
	color: #b42318;
}

body.nsm-checkout.nosleepman-theme #payment.nsm-checkout-has-error ul.wc_payment_methods > li,
body.nsm-checkout.nosleepman-theme .nsm-checkout-block--payment.nsm-checkout-has-error ul.wc_payment_methods > li {
	box-shadow: inset 0 0 0 1px #b42318;
}

body.nsm-checkout.nsm-checkout-inline-errors .woocommerce-NoticeGroup-checkout,
body.nsm-checkout.nsm-checkout-inline-errors .woocommerce-NoticeGroup-checkout .woocommerce-error {
	display: none !important;
}

body.nsm-checkout.nosleepman-theme .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 36px;
	padding: 0;
	color: #111;
}

body.nsm-checkout.nosleepman-theme .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 50px;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-address2-toggle {
	display: inline-block;
	margin: 0.55rem 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: #111;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-address2-toggle:hover {
	opacity: 0.65;
}

body.nsm-checkout.nosleepman-theme .woocommerce-account-fields .create-account,
body.nsm-checkout.nosleepman-theme .nsm-checkout-note-toggle,
body.nsm-checkout.nosleepman-theme .nsm-checkout-block__title--check label {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 500;
	color: #111;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme form.checkout .woocommerce-form__input-checkbox,
body.nsm-checkout.nosleepman-theme form.checkout input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0.1rem 0 0;
	accent-color: #111;
	flex: 0 0 auto;
}

body.nsm-checkout.nosleepman-theme .woocommerce-checkout-login,
body.nsm-checkout.nosleepman-theme .woocommerce-form-login-toggle .woocommerce-info {
	margin: 0 0 1.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nsm-text-muted);
	font-size: 0.9375rem;
	box-shadow: none;
}

body.nsm-checkout.nosleepman-theme .woocommerce-form-login-toggle .woocommerce-info::before {
	display: none;
}

body.nsm-checkout.nosleepman-theme .woocommerce-form-login-toggle a,
body.nsm-checkout.nosleepman-theme .woocommerce-info a.showlogin {
	color: #111;
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.nsm-checkout.nosleepman-theme form.woocommerce-form-login {
	margin: 0 0 2rem;
	padding: 1.25rem 0 0;
	border: 0;
	border-top: 1px solid var(--nsm-border);
	background: transparent;
}

body.nsm-checkout.nosleepman-theme form.checkout_coupon,
body.nsm-checkout.nosleepman-theme .woocommerce-form-coupon-toggle {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	border: 0 !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-block--payment,
body.nsm-checkout.nosleepman-theme #payment.woocommerce-checkout-payment,
body.nsm-checkout.nosleepman-theme #payment {
	margin-top: 0.15rem;
	padding-top: 0.15rem;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods {
	margin: 0 0 1.5rem !important;
	padding: 0 !important;
	list-style: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	overflow: visible !important;
	background: transparent !important;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li.wc_payment_method {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 0.75rem;
	row-gap: 0.75rem;
	margin: 0 !important;
	padding: 0.95rem 1rem 1rem !important;
	border: 0 !important;
	border-bottom: 0 !important;
	border-radius: 8px;
	list-style: none !important;
	line-height: 1.35;
	background: #f6f6f6 !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li::before,
body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li::after,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li::before,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li::after {
	display: none !important;
	content: none !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li:last-child,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li:last-child {
	padding-bottom: 0.95rem !important;
	border-bottom: 0 !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li.wc_payment_method > input.input-radio,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li.wc_payment_method > input[type="radio"] {
	appearance: none !important;
	-webkit-appearance: none !important;
	display: inline-block !important;
	opacity: 1 !important;
	position: static !important;
	flex: 0 0 18px;
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1.5px solid #111 !important;
	border-radius: 50%;
	background: #fff !important;
	box-shadow: none !important;
	accent-color: #111;
	cursor: pointer;
	clip: auto !important;
	clip-path: none !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li.wc_payment_method > input.input-radio:checked,
body.nsm-checkout.nosleepman-theme #payment ul.payment_methods > li.wc_payment_method > input[type="radio"]:checked {
	background: #111 !important;
	box-shadow: inset 0 0 0 3px #fff !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li.wc_payment_method > label,
body.nsm-checkout.nosleepman-theme #payment .payment_methods > .wc_payment_method > label {
	display: flex !important;
	flex: 1 1 0;
	align-items: center;
	gap: 0.75rem;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.35;
	color: #111;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li.wc_payment_method > label::before,
body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods > li.wc_payment_method > label::after,
body.nsm-checkout.nosleepman-theme #payment .payment_methods > .wc_payment_method > label::before,
body.nsm-checkout.nosleepman-theme #payment .payment_methods > .wc_payment_method > label::after {
	display: none !important;
	content: none !important;
	font-family: inherit !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods .payment_box,
body.nsm-checkout.nosleepman-theme #payment div.payment_box {
	flex: 1 0 100%;
	box-sizing: border-box;
	width: 100% !important;
	margin: 0 !important;
	padding: 0.95rem 1.05rem !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: #fff !important;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--nsm-text-muted) !important;
	position: relative;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods .payment_box::before,
body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods .payment_box::after,
body.nsm-checkout.nosleepman-theme #payment div.payment_box::before,
body.nsm-checkout.nosleepman-theme #payment div.payment_box::after {
	display: none !important;
	content: none !important;
	border: 0 !important;
}

body.nsm-checkout.nosleepman-theme #payment ul.wc_payment_methods .payment_box p,
body.nsm-checkout.nosleepman-theme #payment div.payment_box p {
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	background: transparent;
	color: var(--nsm-text-muted);
	font-size: 0.875rem;
	line-height: 1.5;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-payment-empty {
	padding: 1.15rem 1.25rem;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-payment-empty .woocommerce-info,
body.nsm-checkout.nosleepman-theme .nsm-checkout-payment-empty .woocommerce-notice {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nsm-text-muted);
	font-size: 0.9375rem;
	line-height: 1.5;
	box-shadow: none;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-payment-empty .woocommerce-info::before {
	display: none;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-place-wrap {
	float: none !important;
	width: 100%;
	margin: 0;
	padding: 0.35rem 0 0;
}

body.nsm-checkout.nosleepman-theme .woocommerce-terms-and-conditions-wrapper {
	margin: 0 0 0.9rem;
}

body.nsm-checkout.nosleepman-theme .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #111;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-legal {
	margin: 0 0 1rem;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-place,
body.nsm-checkout.nosleepman-theme #place_order {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 1.05rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: #111 !important;
	color: #fff !important;
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none !important;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-place:hover,
body.nsm-checkout.nosleepman-theme #place_order:hover {
	opacity: 0.82;
	background: #111 !important;
	color: #fff !important;
}

body.nsm-checkout.nosleepman-theme form.checkout .form-row[hidden],
body.nsm-checkout.nosleepman-theme .woocommerce-additional-fields__field-wrapper[hidden],
body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__panel[hidden] {
	display: none !important;
}

body.nsm-checkout.nosleepman-theme .woocommerce-privacy-policy-text,
body.nsm-checkout.nosleepman-theme .woocommerce-terms-and-conditions {
	display: none !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-legal a,
body.nsm-checkout.nosleepman-theme .woocommerce-terms-and-conditions-wrapper a {
	color: #111;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-secure {
	margin: 0.9rem 0 0;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nsm-text-muted);
	text-align: center;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-summary__title {
	margin: 0 0 1.5rem;
	font-family: var(--nsm-display);
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: -0.03em;
	color: #111;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-summary {
	box-sizing: border-box;
	width: 100%;
	max-width: 400px;
	padding: 1.35rem 1.25rem 1.25rem;
	border: 0;
	border-radius: 12px;
	background: #f7f7f7;
}

body.nsm-checkout.nosleepman-theme #order_review {
	background: #fff !important;
	padding: 1.25rem 1.2rem 1.1rem !important;
	border-radius: 8px;
	box-sizing: border-box;
	overflow: visible;
	box-shadow: none !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-summary__body,
body.nsm-checkout.nosleepman-theme .woocommerce-checkout-review-order-table {
	padding: 0 !important;
	background: transparent !important;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-items {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	gap: 0.95rem;
	align-items: start;
	margin: 0 0 1.15rem;
	padding: 0 0 1.15rem;
	border-bottom: 1px solid #e8e8e8;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item:last-child {
	margin-bottom: 0;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__thumb {
	position: relative;
	width: 72px;
	height: 72px;
	border-radius: 8px;
	overflow: visible;
	background: #ececec;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__thumb img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 8px;
	background: #ececec;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__qty {
	position: absolute;
	top: -7px;
	right: -7px;
	z-index: 1;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: #111;
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 20px;
	text-align: center;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__meta {
	min-width: 0;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__name {
	margin: 0 0 0.2rem;
	font-family: var(--nsm-display);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	color: #111;
	overflow-wrap: anywhere;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__attrs,
body.nsm-checkout.nosleepman-theme .nsm-checkout-item .variation {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.45;
	color: var(--nsm-text-muted);
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-item__price {
	font-size: 0.9375rem;
	font-weight: 500;
	color: #111;
	white-space: nowrap;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo {
	margin: 0.25rem 0 0.35rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--nsm-border);
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: #111;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 500;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__toggle::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 1.5px solid #111;
	border-bottom: 1.5px solid #111;
	transform: rotate(45deg);
	transition: transform 0.15s var(--nsm-ease);
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__toggle[aria-expanded="true"]::after {
	transform: rotate(225deg);
	margin-top: 4px;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__panel {
	display: flex;
	gap: 0.5rem;
	margin: 0.85rem 0 0;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__input {
	flex: 1 1 auto;
	min-height: 44px;
	padding: 0.6rem 0.85rem;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #fff;
	font-size: 0.875rem;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__apply {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 0 1.15rem;
	border: 0;
	border-radius: 999px;
	background: #111;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-promo__apply:hover {
	opacity: 0.82;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-totals {
	padding-top: 0.35rem;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-totals__row,
body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table th,
body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table td {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.55rem 0;
	border: 0;
	font-size: 0.9375rem;
	font-weight: 400;
	color: #111;
	background: transparent;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table tbody,
body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table tr {
	display: block;
	width: 100%;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table ul {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: right;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-totals__row--total {
	margin-top: 0.35rem;
	padding-top: 0.95rem;
	border-top: 1px solid #e8e8e8;
	font-family: var(--nsm-display);
	font-size: 1.2rem;
	font-weight: 600;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-totals__row .amount,
body.nsm-checkout.nosleepman-theme .nsm-checkout-item__price .amount {
	font-weight: inherit;
	color: inherit;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table .woocommerce-shipping-methods {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	text-align: left;
}

body.nsm-checkout.nosleepman-theme .nsm-checkout-shipping-table li {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.45rem;
}

body.nsm-checkout.nosleepman-theme .select2-dropdown {
	border: 1px solid #111;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: none;
}

body.nsm-checkout.nosleepman-theme .select2-container--default .select2-results__option--highlighted[aria-selected],
body.nsm-checkout.nosleepman-theme .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: #111;
	color: #fff;
}

body.nsm-checkout.nosleepman-theme #order_review::before,
body.nsm-checkout.nosleepman-theme #order_review::after,
body.nsm-checkout.nosleepman-theme .col2-set::before,
body.nsm-checkout.nosleepman-theme .col2-set::after,
body.nsm-checkout.nosleepman-theme form.checkout::before,
body.nsm-checkout.nosleepman-theme form.checkout::after {
	content: none !important;
	display: none !important;
}

@media (max-width: 900px) {
	body.nsm-checkout.nosleepman-theme .nsm-checkout__layout {
		grid-template-columns: 1fr;
		gap: 2.25rem;
	}

	body.nsm-checkout.nosleepman-theme .nsm-checkout__main,
	body.nsm-checkout.nosleepman-theme .nsm-checkout__aside {
		max-width: none;
		position: static;
		grid-column: 1;
		grid-row: auto;
	}

	body.nsm-checkout.nosleepman-theme .nsm-checkout__aside {
		order: -1;
	}

	body.nsm-checkout.nosleepman-theme .nsm-checkout-summary {
		max-width: none;
	}

	body.nsm-checkout.nosleepman-theme .woocommerce-billing-fields__field-wrapper,
	body.nsm-checkout.nosleepman-theme .woocommerce-shipping-fields__field-wrapper,
	body.nsm-checkout.nosleepman-theme form.checkout .form-row-first,
	body.nsm-checkout.nosleepman-theme form.checkout .form-row-last {
		grid-template-columns: 1fr;
		width: 100%;
		float: none;
	}

	body.nsm-checkout.nosleepman-theme form.checkout .form-row-first,
	body.nsm-checkout.nosleepman-theme form.checkout .form-row-last {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   Thank you / order received
   ========================================================================== */

body.nsm-thankyou.nosleepman-theme #page,
body.nsm-thankyou.nosleepman-theme .hfeed.site {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

body.admin-bar.nsm-thankyou.nosleepman-theme #page,
body.admin-bar.nsm-thankyou.nosleepman-theme .hfeed.site {
	min-height: calc(100vh - 32px);
	min-height: calc(100dvh - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar.nsm-thankyou.nosleepman-theme #page,
	body.admin-bar.nsm-thankyou.nosleepman-theme .hfeed.site {
		min-height: calc(100vh - 46px);
		min-height: calc(100dvh - 46px);
	}
}

body.nsm-thankyou.nosleepman-theme .site-content {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
}

body.nsm-thankyou.nosleepman-theme .site-footer {
	width: 100%;
	flex-shrink: 0;
	margin-top: auto;
}

body.nsm-thankyou.nosleepman-theme .site-content .col-full {
	max-width: var(--nsm-max);
	padding-left: var(--nsm-gutter);
	padding-right: var(--nsm-gutter);
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

body.nsm-thankyou.nosleepman-theme .content-area,
body.nsm-thankyou.nosleepman-theme .site-main,
body.nsm-thankyou.nosleepman-theme .hentry,
body.nsm-thankyou.nosleepman-theme .entry-content {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
}

body.nsm-thankyou.nosleepman-theme .widget-area,
body.nsm-thankyou.nosleepman-theme .page-title,
body.nsm-thankyou.nosleepman-theme h1.entry-title,
body.nsm-thankyou.nosleepman-theme .entry-header,
body.nsm-thankyou.nosleepman-theme .woocommerce-breadcrumb,
body.nsm-thankyou.nosleepman-theme .woocommerce-order-overview,
body.nsm-thankyou.nosleepman-theme .woocommerce-thankyou-order-details,
body.nsm-thankyou.nosleepman-theme .woocommerce-order-details,
body.nsm-thankyou.nosleepman-theme .woocommerce-customer-details,
body.nsm-thankyou.nosleepman-theme .woocommerce-order-downloads,
body.nsm-thankyou.nosleepman-theme ul.order_details {
	display: none !important;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou {
	max-width: 40rem;
	width: 100%;
	margin: 0 auto;
	padding: 3rem 0;
	text-align: center;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__title {
	margin: 0 0 0.9rem;
	font-family: var(--nsm-display);
	font-size: clamp(2.15rem, 3.4vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.1;
	color: #111;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__lede {
	margin: 0 auto 1.85rem;
	max-width: none;
	white-space: nowrap;
	font-size: 1.05rem;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__lede a {
	color: #111;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__lede a:hover {
	opacity: 0.7;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__shop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 1.05rem 1.85rem;
	border-radius: 999px;
	background: #111;
	color: #fff !important;
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none !important;
}

body.nsm-thankyou.nosleepman-theme .nsm-thankyou__shop:hover {
	opacity: 0.82;
	color: #fff !important;
}

/* ==========================================================================
   My Account
   ========================================================================== */
body.nsm-account.nosleepman-theme .site-content .col-full,
body.nsm-account.nosleepman-theme #content .col-full {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--nsm-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--nsm-gutter);
	padding-right: var(--nsm-gutter);
}

@media (max-width: 66.4989em) {
	body.nsm-account.nosleepman-theme .site-content .col-full,
	body.nsm-account.nosleepman-theme #content .col-full {
		margin-left: 0;
		margin-right: 0;
	}
}

body.nsm-account.nosleepman-theme .content-area,
body.nsm-account.nosleepman-theme .site-main,
body.nsm-account.nosleepman-theme .hentry,
body.nsm-account.nosleepman-theme .entry-content {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
}

body.nsm-account.nosleepman-theme .page-title,
body.nsm-account.nosleepman-theme h1.entry-title,
body.nsm-account.nosleepman-theme .entry-header,
body.nsm-account.nosleepman-theme .woocommerce-breadcrumb {
	display: none !important;
}

body.nsm-account.nosleepman-theme .woocommerce-notices-wrapper,
body.nsm-account.nosleepman-theme .woocommerce-message,
body.nsm-account.nosleepman-theme .woocommerce-info,
body.nsm-account.nosleepman-theme .woocommerce-error {
	max-width: 440px;
	margin-left: auto;
	margin-right: auto;
}

body.nsm-account.nosleepman-theme:not(.nsm-account-guest) .woocommerce-notices-wrapper,
body.nsm-account.nosleepman-theme:not(.nsm-account-guest) .woocommerce-message,
body.nsm-account.nosleepman-theme:not(.nsm-account-guest) .woocommerce-info,
body.nsm-account.nosleepman-theme:not(.nsm-account-guest) .woocommerce-error,
body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-info,
body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-message {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

body.nsm-account.nosleepman-theme .nsm-account-page {
	max-width: none;
	margin: 0;
	padding: 2.5rem 0 5rem;
}

body.nsm-account.nosleepman-theme .nsm-account-auth {
	max-width: 440px;
	margin: 0 auto;
	padding: 3.25rem 0 5rem;
}

body.nsm-account.nosleepman-theme .nsm-account-auth__title,
body.nsm-account.nosleepman-theme .nsm-account-page__title {
	margin: 0 0 2rem;
	font-family: var(--nsm-display);
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.05;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-auth__title--register,
body.nsm-account.nosleepman-theme .nsm-account-auth.is-register .nsm-account-auth__title--login,
body.nsm-account.nosleepman-theme .nsm-account-auth.is-register .nsm-account-auth__login,
body.nsm-account.nosleepman-theme .nsm-account-auth:not(.is-register) .nsm-account-auth__register {
	display: none;
}

body.nsm-account.nosleepman-theme .nsm-account-auth.is-register .nsm-account-auth__title--register {
	display: block;
}

body.nsm-account.nosleepman-theme .nsm-account-form .form-row {
	margin: 0 0 0.9rem;
	padding: 0;
	width: 100%;
	float: none !important;
}

body.nsm-account.nosleepman-theme .nsm-account-form label {
	display: block;
	margin: 0 0 0.45rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-form label .required,
body.nsm-account.nosleepman-theme .nsm-account-form label abbr.required {
	text-decoration: none;
	border: 0;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-form .input-text,
body.nsm-account.nosleepman-theme .nsm-account-form input[type="text"],
body.nsm-account.nosleepman-theme .nsm-account-form input[type="email"],
body.nsm-account.nosleepman-theme .nsm-account-form input[type="password"] {
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #f6f6f6;
	color: #111;
	font-family: var(--nsm-font);
	font-size: 0.9375rem;
	line-height: 1.4;
	box-shadow: none;
}

body.nsm-account.nosleepman-theme .nsm-account-form .input-text:hover,
body.nsm-account.nosleepman-theme .nsm-account-form input[type="text"]:hover,
body.nsm-account.nosleepman-theme .nsm-account-form input[type="email"]:hover,
body.nsm-account.nosleepman-theme .nsm-account-form input[type="password"]:hover {
	background: #f0f0f0;
}

body.nsm-account.nosleepman-theme .nsm-account-form .password-input {
	position: relative;
	display: block;
}

body.nsm-account.nosleepman-theme .nsm-account-form .password-input input[type="password"],
body.nsm-account.nosleepman-theme .nsm-account-form .password-input input[type="text"] {
	padding-right: 3.25rem;
}

body.nsm-account.nosleepman-theme .nsm-account-form .show-password-input {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: auto !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 52px !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 6px 6px 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
	line-height: 0 !important;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-form .show-password-input::before {
	margin: 0;
	width: 20px;
	height: 20px;
	background-size: 20px 20px;
	background-position: center;
}

body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-strength {
	margin: 0.45rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
}

body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-strength.short,
body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-strength.bad {
	color: #b42318;
}

body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-strength.good,
body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-strength.strong {
	color: #027a48;
}

body.nsm-account.nosleepman-theme .nsm-account-auth .woocommerce-password-hint {
	margin: 0.35rem 0 0;
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-form__remember {
	margin: 0.15rem 0 1.15rem;
}

body.nsm-account.nosleepman-theme .nsm-account-form__remember label {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 400;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-form input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #111;
	flex: 0 0 auto;
}

body.nsm-account.nosleepman-theme .nsm-account-form__hint,
body.nsm-account.nosleepman-theme .nsm-account-form .woocommerce-privacy-policy-text {
	margin: 0 0 1.15rem;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-form .woocommerce-privacy-policy-text a {
	color: #111;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.nsm-account.nosleepman-theme .nsm-account-btn,
body.nsm-account.nosleepman-theme .nsm-account-form button.button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 1.05rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: #111 !important;
	color: #fff !important;
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none !important;
	cursor: pointer;
}

body.nsm-account.nosleepman-theme .nsm-account-btn:hover,
body.nsm-account.nosleepman-theme .nsm-account-form button.button:hover {
	opacity: 0.82;
	background: #111 !important;
	color: #fff !important;
}

body.nsm-account.nosleepman-theme .nsm-account-form button.button:disabled,
body.nsm-account.nosleepman-theme .nsm-account-form button.button.disabled,
body.nsm-account.nosleepman-theme .nsm-account-form button.button:disabled:hover,
body.nsm-account.nosleepman-theme .nsm-account-form button.button.disabled:hover {
	opacity: 0.38;
	cursor: not-allowed;
	background: #111 !important;
	color: #fff !important;
}

body.nsm-account.nosleepman-theme .nsm-account-auth__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.45rem 0.65rem;
	margin: 1.15rem 0 0;
	font-size: 0.875rem;
	color: var(--nsm-text-muted);
	text-align: center;
}

body.nsm-account.nosleepman-theme .nsm-account-auth__links a {
	color: #111;
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.nsm-account.nosleepman-theme .nsm-account-auth__sep {
	color: #cfcfcf;
}

body.nsm-account.nosleepman-theme .nsm-account-layout {
	display: grid;
	grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation {
	width: 100%;
	float: none;
	margin: 0;
	min-width: 0;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.7rem 0;
	border-bottom: 0;
	color: var(--nsm-text-muted);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
}

/* Match primary nav underline hover */
body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a::before {
	content: none !important;
	display: none !important;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a::after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.55rem;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.28s var(--nsm-ease);
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation li.is-active a,
body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a:hover {
	color: #111;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation li.is-active a::after,
body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a:hover::after {
	transform: scaleX(1);
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-content {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	float: none;
	margin: 0;
	padding: 0;
	font-size: 0.975rem;
	line-height: 1.6;
	color: #111;
	overflow: hidden;
}

body.nsm-account.nosleepman-theme .woocommerce-MyAccount-content a {
	color: #111;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-empty {
	margin: 0.25rem 0 0;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-empty p {
	margin: 0 0 1.25rem;
	font-size: 1rem;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-favs-empty .nsm-account-btn {
	display: inline-flex !important;
	width: auto;
	min-width: 12rem;
	text-decoration: none;
}

body.nsm-account.nosleepman-theme .nsm-account-receipt {
	margin: 0 0 1.25rem;
}

body.nsm-account.nosleepman-theme .nsm-account-receipt__link {
	color: #111 !important;
	font-size: 0.9375rem;
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

body.nsm-account.nosleepman-theme .woocommerce-orders-table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
}

body.nsm-account.nosleepman-theme .woocommerce-orders-table th,
body.nsm-account.nosleepman-theme .woocommerce-orders-table td {
	padding: 0.95rem 0.75rem 0.95rem 0;
	border-top: 0;
	border-bottom: 1px solid var(--nsm-border);
	background: transparent;
	font-size: 0.9375rem;
	text-align: left;
}

body.nsm-account.nosleepman-theme .woocommerce-orders-table th {
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .woocommerce-orders-table .woocommerce-button,
body.nsm-account.nosleepman-theme .woocommerce-orders-table a.button {
	display: inline;
	margin: 0 0.65rem 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	color: #111 !important;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: underline !important;
	text-transform: none;
	text-underline-offset: 3px;
	box-shadow: none !important;
}

body.nsm-account.nosleepman-theme .woocommerce-orders-table .woocommerce-button:hover,
body.nsm-account.nosleepman-theme .woocommerce-orders-table a.button:hover {
	opacity: 0.7;
	background: transparent !important;
	color: #111 !important;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-shell {
	--nsm-fav-gap: 14px;
	--nsm-fav-card: calc((100% - (var(--nsm-fav-gap) * 2)) / 3);
	--nsm-fav-visible: 3;
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__toolbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0 0 0.85rem;
	padding: 0;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__nav {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #e5e5e5;
	color: #111;
	cursor: pointer;
	transition: background 0.15s var(--nsm-ease), opacity 0.15s var(--nsm-ease);
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__btn:hover:not(:disabled) {
	background: #cacacb;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__btn:disabled {
	opacity: 0.45;
	cursor: default;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__btn svg {
	display: block;
	width: 18px;
	height: 18px;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__viewport {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-shell--carousel .nsm-account-favs {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	gap: var(--nsm-fav-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-shell--carousel .nsm-account-favs::-webkit-scrollbar {
	display: none;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-shell--carousel .nsm-account-fav {
	box-sizing: border-box;
	flex: 0 0 var(--nsm-fav-card);
	width: var(--nsm-fav-card);
	max-width: var(--nsm-fav-card);
	min-width: 0;
	scroll-snap-align: start;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__progress {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: 3px;
	margin: 1rem 0 0;
	overflow: hidden;
	background: #e5e5e5;
	border-radius: 999px;
}

body.nsm-account.nosleepman-theme .nsm-account-favs-carousel__progress-bar {
	display: block;
	width: calc(100% / var(--nsm-fav-visible, 3));
	height: 100%;
	background: #111;
	border-radius: 999px;
	transform: translateX(0);
	transition: transform 0.2s var(--nsm-ease);
}

body.nsm-account.nosleepman-theme .nsm-account-favs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

body.nsm-account.nosleepman-theme .nsm-account-fav {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-sizing: border-box;
}

body.nsm-account.nosleepman-theme .nsm-account-favs a,
body.nsm-account.nosleepman-theme .nsm-account-favs a:hover {
	text-decoration: none;
}

body.nsm-account.nosleepman-theme .nsm-account-fav__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #f5f5f5;
}

body.nsm-account.nosleepman-theme .nsm-account-fav__media img {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: contain;
	object-position: center;
	border-radius: 0;
	margin: 0;
	display: block;
	background: #f5f5f5;
	transition: transform 0.65s var(--nsm-ease);
}

body.nsm-account.nosleepman-theme .nsm-account-fav:hover .nsm-account-fav__media img {
	transform: scale(1.02);
}

body.nsm-account.nosleepman-theme .nsm-account-fav__meta {
	width: 100%;
	padding: 12px 0 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	box-sizing: border-box;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .nsm-loop-title {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--nsm-sans, var(--nsm-display));
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .nsm-loop-title a {
	color: inherit;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .nsm-loop-title a:hover {
	opacity: 0.7;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .nsm-loop-subtitle {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-fav .price {
	margin: 0;
	padding: 0;
	display: block;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .price del {
	opacity: 0.55;
	margin-right: 0.35rem;
}

body.nsm-account.nosleepman-theme .nsm-account-fav .price ins {
	text-decoration: none;
	font-weight: 500;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form,
body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-EditAccountForm,
body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields {
	max-width: 40rem;
}

body.nsm-account.nosleepman-theme .nsm-account-form__title,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form h2,
body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-Address-title h2,
body.nsm-account.nosleepman-theme .nsm-account-content h3 {
	margin: 0 0 1.5rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.5rem, 2.2vw, 1.85rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-dash {
	max-width: none;
}

body.nsm-account.nosleepman-theme .nsm-dash__welcome {
	margin: 0 0 1.35rem;
	font-family: var(--nsm-display);
	font-size: clamp(1.75rem, 2.8vw, 2.35rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.1;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-dash-order {
	margin: 0 0 2rem;
}

body.nsm-account.nosleepman-theme .nsm-dash-order__status {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
	line-height: 1.5;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-dash-order__meta {
	margin: 0 0 0.7rem;
	font-size: 0.9375rem;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-dash-order__link {
	margin: 0;
}

body.nsm-account.nosleepman-theme .nsm-dash-order__link a {
	font-size: 0.9375rem;
	font-weight: 500;
	text-underline-offset: 3px;
}

body.nsm-account.nosleepman-theme .nsm-dash-cards {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0.85rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

body.nsm-account.nosleepman-theme .nsm-dash-cards::-webkit-scrollbar {
	display: none;
}

body.nsm-account.nosleepman-theme .nsm-dash-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.5rem;
	flex: 0 0 124px;
	width: 124px;
	height: 124px;
	padding: 14px 16px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #111 !important;
	text-decoration: none !important;
	box-sizing: border-box;
	overflow: visible;
}

body.nsm-account.nosleepman-theme .nsm-dash-card__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	overflow: visible;
}

body.nsm-account.nosleepman-theme .nsm-dash-card__frame rect {
	fill: #fff;
	stroke: #111;
	stroke-width: 1;
	shape-rendering: geometricPrecision;
	transition: fill 0.2s var(--nsm-ease);
}

body.nsm-account.nosleepman-theme .nsm-dash-card:hover .nsm-dash-card__frame rect {
	fill: #f7f7f7;
}

body.nsm-account.nosleepman-theme .nsm-dash-card > .nsm-icon,
body.nsm-account.nosleepman-theme .nsm-dash-card > .nsm-dash-card__label {
	position: relative;
	z-index: 1;
}

body.nsm-account.nosleepman-theme .nsm-dash-card .nsm-icon {
	width: 24px;
	height: 24px;
}

body.nsm-account.nosleepman-theme .nsm-dash-card__label {
	font-family: var(--nsm-display);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.02em;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 0.85rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .form-row-wide,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > fieldset,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > p:not(.form-row),
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .woocommerce-address-fields {
	grid-column: 1 / -1;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .clear {
	display: none;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .form-row-first,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .form-row-last {
	width: 100%;
	float: none !important;
	margin-bottom: 0.9rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.9rem 0.85rem;
	margin: 0 0 1.25rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper .form-row {
	margin: 0;
	width: 100%;
	float: none !important;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form select,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container .select2-selection--single {
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #f6f6f6;
	color: #111;
	font-family: var(--nsm-font);
	font-size: 0.9375rem;
	line-height: 1.4;
	box-shadow: none;
	appearance: none;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container {
	width: 100% !important;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	padding-right: 2.25rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 52px;
	right: 0.65rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: #9a9a9a;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form select:hover,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container .select2-selection--single:hover {
	background: #f0f0f0;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form select:focus,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .select2-container--open .select2-selection--single,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .input-text:focus {
	background: #fff;
	border-color: #111;
	outline: none;
	box-shadow: none;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form fieldset {
	margin: 1.25rem 0 0.5rem;
	padding: 0;
	border: 0;
	background: transparent;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form legend {
	display: block;
	float: none;
	width: 100%;
	margin: 0 0 1rem;
	padding: 0;
	font-family: var(--nsm-display);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #111;
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form em {
	display: block;
	margin: 0.4rem 0 0;
	font-size: 0.8125rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.5;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .optional {
	display: inline;
	margin: 0;
	font-size: inherit;
	font-style: normal;
	font-weight: 400;
	color: var(--nsm-text-muted);
}

body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form button.button,
body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form .nsm-account-btn {
	display: inline-flex !important;
	width: auto;
	min-width: 12rem;
	margin-top: 0.35rem;
	text-decoration: none !important;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-Address {
	margin: 0 0 1.75rem;
	padding: 0;
	border: 0;
	background: transparent;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 0.75rem;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-Address-title h2 {
	margin: 0;
}

body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-Address-title a {
	font-size: 0.875rem;
	font-weight: 500;
	text-underline-offset: 3px;
}

body.nsm-account.nosleepman-theme .nsm-account-content address {
	font-style: normal;
	line-height: 1.55;
	color: var(--nsm-text-muted);
}

@media (max-width: 768px) {
	body.nsm-account.nosleepman-theme .nsm-account-layout {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation ul {
		display: flex;
		flex-wrap: wrap;
		gap: 0.35rem 1.25rem;
	}

	body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation li {
		width: auto;
	}

	body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a {
		border-bottom: 0;
		padding: 0.55rem 0;
		height: 40px;
	}

	body.nsm-account.nosleepman-theme .woocommerce-MyAccount-navigation a::after {
		bottom: 0.55rem;
	}

	body.nsm-account.nosleepman-theme .nsm-account-favs-shell {
		--nsm-fav-gap: 12px;
		/* One card + peek — % of content width, not vw (vw overflows gutters) */
		--nsm-fav-card: min(268px, calc(100% - 2.75rem));
		--nsm-fav-visible: 1;
	}

	body.nsm-account.nosleepman-theme .nsm-account-favs,
	body.nsm-account.nosleepman-theme .nsm-account-favs-shell--carousel .nsm-account-favs {
		display: flex;
		flex-wrap: nowrap;
		align-items: stretch;
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		gap: var(--nsm-fav-gap);
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		grid-template-columns: none;
	}

	body.nsm-account.nosleepman-theme .nsm-account-favs::-webkit-scrollbar {
		display: none;
	}

	body.nsm-account.nosleepman-theme .nsm-account-fav,
	body.nsm-account.nosleepman-theme .nsm-account-favs-shell--carousel .nsm-account-fav {
		box-sizing: border-box;
		flex: 0 0 var(--nsm-fav-card);
		width: var(--nsm-fav-card);
		max-width: var(--nsm-fav-card);
		min-width: 0;
		scroll-snap-align: start;
	}

	body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form,
	body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .form-row-first,
	body.nsm-account.nosleepman-theme .nsm-account-content .nsm-account-form > .form-row-last,
	body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper .form-row-first,
	body.nsm-account.nosleepman-theme .nsm-account-content .woocommerce-address-fields__field-wrapper .form-row-last {
		grid-column: 1 / -1;
	}
}

