/* =========================================================
   NordCanvas — main stylesheet
   Tokens: paper #FFFFFF, ink #1A1A1A, stone #6B6B6B,
           sand #F5F2EC, gold #B8925A, line #E6E2DA
   Type:   Marcellus (display) / Jost (body)
   ========================================================= */

:root {
	--nc-paper: #ffffff;
	--nc-ink: #1a1a1a;
	--nc-stone: #6b6b6b;
	--nc-sand: #f5f2ec;
	--nc-gold: #b8925a;
	--nc-line: #e6e2da;
	--nc-sale: #b3261e;
	--nc-display: "Marcellus", "Times New Roman", serif;
	--nc-body: "Jost", "Helvetica Neue", Arial, sans-serif;
	--nc-container: 1280px;
	--nc-radius: 2px;
	--nc-gap: 24px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--nc-body);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.65;
	color: var(--nc-ink);
	background: var(--nc-paper);
}

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

a { color: inherit; text-decoration: none; }
a:hover { color: var(--nc-gold); }

h1, h2, h3, h4 {
	font-family: var(--nc-display);
	font-weight: 400;
	line-height: 1.2;
	margin: 0 0 0.5em;
}

.nc-container {
	max-width: var(--nc-container);
	margin-inline: auto;
	padding-inline: 20px;
}

.nc-section { padding-block: 56px 0; }
.nc-section__title { font-size: clamp(26px, 3.4vw, 38px); text-align: center; margin-bottom: 36px; }
.nc-section__more { text-align: center; margin-top: 32px; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px; width: 1px; overflow: hidden;
}
.skip-link:focus {
	clip: auto; height: auto; width: auto;
	position: fixed; top: 8px; left: 8px; z-index: 999;
	background: var(--nc-ink); color: #fff; padding: 10px 16px;
}

/* Signature type treatment: airy tracked display, like the reference hero */
.nc-tracked { letter-spacing: 0.35em; text-transform: uppercase; }

.nc-eyebrow {
	font-size: 12px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--nc-gold);
	margin: 0 0 12px;
}

/* ---------- Buttons & links ---------- */
.nc-btn {
	display: inline-block;
	background: var(--nc-ink);
	color: #fff;
	font-family: var(--nc-body);
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding: 14px 34px;
	border: 1px solid var(--nc-ink);
	border-radius: var(--nc-radius);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.nc-btn:hover { background: var(--nc-gold); border-color: var(--nc-gold); color: #fff; }

.nc-btn--ghost { background: transparent; color: var(--nc-ink); }
.nc-btn--ghost:hover { background: var(--nc-ink); color: #fff; }

.nc-link {
	font-size: 13px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--nc-gold);
	padding-bottom: 3px;
}
.nc-link--light { color: #fff; border-color: #fff; }

/* ---------- Announcement bar ---------- */
.nc-announcement {
	background: var(--nc-ink);
	color: #fff;
	text-align: center;
	font-size: 13px;
	letter-spacing: 0.12em;
	padding: 9px 16px;
	position: relative;
	min-height: 36px;
}
.nc-announcement__item { display: none; }
.nc-announcement__item.is-active { display: inline; animation: nc-fade 0.5s ease; }
@keyframes nc-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Header ---------- */
.nc-header {
	border-bottom: 1px solid var(--nc-line);
	background: var(--nc-paper);
	position: sticky;
	top: 0;
	z-index: 90;
}
.nc-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 76px;
}
.nc-header__logo img { max-height: 56px; width: auto; }
.nc-header__sitename {
	font-family: var(--nc-display);
	font-size: 24px;
	letter-spacing: 0.06em;
}
.nc-header__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 6px;
}
.nc-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	background: none;
	border: 0;
	color: var(--nc-ink);
	cursor: pointer;
	position: relative;
}
.nc-iconbtn svg { width: 22px; height: 22px; }
.nc-iconbtn:hover { color: var(--nc-gold); }
.nc-cart-count {
	position: absolute;
	top: 3px; right: 1px;
	min-width: 17px; height: 17px;
	background: var(--nc-gold);
	color: #fff;
	font-size: 11px;
	line-height: 17px;
	text-align: center;
	border-radius: 50%;
	padding-inline: 3px;
}

/* ---------- Primary nav + mega menu ---------- */
.nc-header__burger { display: none; }

.nc-nav__list {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.nc-nav__list > li { position: static; }
.nc-nav__list > li > a {
	display: block;
	padding: 26px 14px;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.nc-nav__list > li.current-menu-item > a { color: var(--nc-gold); }

/* Level 2 = mega panel columns; level 3 = links inside a column */
.nc-nav__list > li > .sub-menu {
	position: absolute;
	left: 0; right: 0;
	top: 100%;
	background: var(--nc-paper);
	border-top: 1px solid var(--nc-line);
	border-bottom: 1px solid var(--nc-line);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
	display: none;
	padding: 36px calc((100% - var(--nc-container)) / 2 + 20px);
	list-style: none;
	margin: 0;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	z-index: 80;
}
.nc-nav__list > li:hover > .sub-menu,
.nc-nav__list > li:focus-within > .sub-menu { display: grid; }

.nc-nav__list .sub-menu > li > a {
	display: block;
	font-family: var(--nc-display);
	font-size: 17px;
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: 1px solid var(--nc-line);
}
.nc-nav__list .sub-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.nc-nav__list .sub-menu .sub-menu a {
	display: block;
	padding: 5px 0;
	font-size: 14px;
	color: var(--nc-stone);
}
.nc-nav__list .sub-menu .sub-menu a:hover { color: var(--nc-gold); }

/* ---------- Search drawer ---------- */
.nc-search-drawer {
	border-top: 1px solid var(--nc-line);
	padding: 20px 0;
	background: var(--nc-sand);
}
.nc-searchform,
.woocommerce-product-search {
	display: flex;
	gap: 10px;
	max-width: 640px;
	margin-inline: auto;
}
.nc-searchform input[type="search"],
.woocommerce-product-search .search-field {
	flex: 1;
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	padding: 12px 16px;
	font: inherit;
	background: #fff;
}
.woocommerce-product-search button {
	background: var(--nc-ink); color: #fff; border: 0;
	padding: 12px 26px; text-transform: uppercase; letter-spacing: 0.15em;
	font-size: 13px; cursor: pointer;
}

/* ---------- Mobile nav ---------- */
.nc-mobile-nav {
	position: fixed;
	inset: 0 25% 0 0;
	max-width: 360px;
	background: var(--nc-paper);
	z-index: 200;
	padding: 60px 24px 24px;
	overflow-y: auto;
	box-shadow: 20px 0 50px rgba(0, 0, 0, 0.15);
}
.nc-mobile-nav__close { position: absolute; top: 12px; right: 12px; }
.nc-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.nc-mobile-nav a { display: block; padding: 10px 0; border-bottom: 1px solid var(--nc-line); }
.nc-mobile-nav .sub-menu { padding-left: 16px; }

/* ---------- Hero ---------- */
.nc-hero {
	min-height: 76vh;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	position: relative;
	color: var(--nc-ink);
}
.nc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.35) 55%, rgba(255, 255, 255, 0) 100%);
}
.nc-hero__content { position: relative; z-index: 1; max-width: 640px; }
.nc-hero__title { font-size: clamp(30px, 5vw, 56px); margin-bottom: 20px; }
.nc-hero__text { font-size: 18px; max-width: 460px; margin-bottom: 28px; }

/* ---------- Promo ---------- */
.nc-promo {
	background: var(--nc-sand);
	text-align: center;
	padding: 44px 0;
}
.nc-promo strong {
	display: block;
	font-family: var(--nc-display);
	font-size: 24px;
	letter-spacing: 0.12em;
	margin-bottom: 8px;
}
.nc-promo p { max-width: 640px; margin: 0 auto 20px; }

/* ---------- Cards ---------- */
.nc-collection-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--nc-gap);
}
.nc-card { display: flex; flex-direction: column; }
.nc-card__media {
	display: block;
	overflow: hidden;
	background: var(--nc-sand);
	border-radius: var(--nc-radius);
	position: relative;
}
.nc-card__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.nc-card--collection .nc-card__media img { aspect-ratio: 4 / 3; }
.nc-card:hover .nc-card__media img { transform: scale(1.04); }
.nc-card__body { padding-top: 18px; }
.nc-card__title {
	font-family: var(--nc-display);
	font-size: 19px;
	margin: 14px 0 8px;
	display: block;
}
.nc-card--product .nc-card__title { font-size: 15px; font-family: var(--nc-body); font-weight: 400; line-height: 1.45; }
.nc-card__text { color: var(--nc-stone); font-size: 14px; display: block; margin-bottom: 12px; }
.nc-card__price { font-size: 15px; }
.nc-card__price del { color: var(--nc-stone); margin-right: 8px; }
.nc-card__price ins { text-decoration: none; color: var(--nc-sale); }

.nc-badge-sale {
	position: absolute;
	top: 12px; left: 12px;
	z-index: 2;
	background: var(--nc-gold);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 5px 12px;
	border-radius: var(--nc-radius);
}

.nc-product-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--nc-gap);
}

/* ---------- Room pills ---------- */
.nc-section--rooms { padding-top: 40px; }
.nc-rooms {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}
.nc-room-pill {
	border: 1px solid var(--nc-line);
	border-radius: 999px;
	padding: 10px 22px;
	font-size: 14px;
	letter-spacing: 0.06em;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.nc-room-pill:hover { border-color: var(--nc-gold); background: var(--nc-sand); color: var(--nc-ink); }
.nc-room-pill__count { color: var(--nc-gold); margin-left: 6px; font-size: 13px; }

/* ---------- Banner grid ---------- */
.nc-banner-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--nc-gap);
}
.nc-banner {
	min-height: 320px;
	border-radius: var(--nc-radius);
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: flex-end;
	position: relative;
	overflow: hidden;
}
.nc-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.55) 100%);
}
.nc-banner__body { position: relative; z-index: 1; padding: 28px; color: #fff; }
.nc-banner__title {
	display: block;
	font-family: var(--nc-display);
	font-size: 26px;
	margin-bottom: 10px;
}

/* ---------- Editorial split ---------- */
.nc-editorial {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	background: var(--nc-sand);
	border-radius: var(--nc-radius);
	overflow: hidden;
}
.nc-editorial__media img { width: 100%; height: 100%; object-fit: cover; }
.nc-editorial__body { padding: 48px; }
.nc-editorial__body h2 { font-size: clamp(24px, 3vw, 34px); }

/* ---------- Trust ---------- */
.nc-trust {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--nc-gap);
	text-align: center;
	border-top: 1px solid var(--nc-line);
	padding-top: 48px;
}
.nc-trust__item svg { width: 34px; height: 34px; color: var(--nc-gold); margin-bottom: 8px; }
.nc-trust__item h3 { font-size: 18px; margin-bottom: 4px; }
.nc-trust__item p { color: var(--nc-stone); font-size: 14px; margin: 0; }

/* ---------- Footer ---------- */
.nc-footer {
	margin-top: 72px;
	background: var(--nc-ink);
	color: #d8d5cf;
}
.nc-footer a { color: #d8d5cf; }
.nc-footer a:hover { color: var(--nc-gold); }
.nc-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(4, 1fr);
	gap: 40px;
	padding-block: 64px 40px;
}
.nc-footer__brand { font-family: var(--nc-display); font-size: 22px; color: #fff; margin-top: 0; }
.nc-footer__about .custom-logo { max-height: 48px; width: auto; filter: brightness(0) invert(1); }
.nc-footer__heading {
	color: #fff;
	font-size: 15px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-family: var(--nc-body);
	font-weight: 500;
	margin-bottom: 16px;
}
.nc-footer__menu { list-style: none; margin: 0; padding: 0; }
.nc-footer__menu a { display: block; padding: 4px 0; font-size: 14px; }
.nc-footer__social { display: flex; gap: 16px; margin-top: 16px; font-size: 14px; letter-spacing: 0.08em; }
.nc-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding-block: 20px;
	font-size: 13px;
}
.nc-footer__payments { display: flex; gap: 10px; }
.nc-footer__payments span {
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--nc-radius);
	padding: 3px 10px;
	font-size: 12px;
}

/* ---------- Blog / entry ---------- */
.nc-post-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--nc-gap);
}
.nc-entry .entry-title { font-size: clamp(28px, 4vw, 42px); }
.nc-entry .entry-content { max-width: 760px; }
.nc-archive-header { text-align: center; margin-bottom: 40px; }

/* ---------- WooCommerce polish ---------- */
.nc-woo { padding-block: 48px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; font-weight: 400; }
.woocommerce ul.products li.product .price del { color: var(--nc-stone); }
.woocommerce ul.products li.product .price ins { color: var(--nc-sale); text-decoration: none; }
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background: var(--nc-ink);
	color: #fff;
	border-radius: var(--nc-radius);
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 12px;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--nc-gold); color: #fff; }
.nc-breadcrumb { padding-block: 18px 0; font-size: 13px; color: var(--nc-stone); }
.nc-breadcrumb__sep { margin-inline: 8px; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.nc-product-grid { grid-template-columns: repeat(3, 1fr); }
	.nc-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
	.nc-nav { display: none; }
	.nc-header__burger { display: inline-flex; }
	.nc-collection-grid { grid-template-columns: 1fr; }
	.nc-banner-grid { grid-template-columns: 1fr; }
	.nc-editorial { grid-template-columns: 1fr; }
	.nc-editorial__body { padding: 32px 24px; }
	.nc-trust { grid-template-columns: 1fr; }
	.nc-post-list { grid-template-columns: 1fr; }
	.nc-hero { min-height: 60vh; }
	.nc-footer__bottom { flex-direction: column; }
}

@media (max-width: 640px) {
	.nc-product-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.nc-tracked { letter-spacing: 0.2em; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- Builder templates ---------- */
.nc-fullwidth { display: block; }
.nc-fullwidth > .elementor { max-width: none; }
body.nc-canvas { margin: 0; }
/* Elementor: keep theme fonts inside builder content */
.elementor-widget-container h1,
.elementor-widget-container h2,
.elementor-widget-container h3 { font-family: var(--nc-display); }

/* =========================================================
   v1.3.0 — Shop archive / Single product / Checkout
   ========================================================= */

/* ---------- Shop archive ---------- */
.nc-woo .woocommerce-products-header,
.nc-woo .page-title {
	text-align: center;
}
.nc-woo .woocommerce-products-header__title {
	font-size: clamp(28px, 4vw, 40px);
	margin: 24px 0 12px;
}
.nc-woo .term-description {
	max-width: 720px;
	margin: 0 auto 8px;
	color: var(--nc-stone);
}

.nc-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid var(--nc-line);
	border-bottom: 1px solid var(--nc-line);
	padding: 12px 0;
	margin: 28px 0;
	font-size: 14px;
	color: var(--nc-stone);
}
.nc-shop-toolbar .woocommerce-result-count { margin: 0; }
.nc-shop-toolbar .woocommerce-ordering { margin: 0; }
.nc-shop-toolbar .woocommerce-ordering select {
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	padding: 8px 12px;
	font: inherit;
	background: #fff;
	color: var(--nc-ink);
}

/* Woo loop cards -> NordCanvas cards */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--nc-gap);
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	text-align: left;
	position: relative;
}
.woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--nc-radius);
	background: var(--nc-sand);
	margin-bottom: 14px;
	transition: transform 0.5s ease;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--nc-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.45;
	padding: 0 0 6px;
	/* clamp long dropship titles to 3 lines like the reference */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.woocommerce ul.products li.product .price {
	font-size: 15px;
	color: var(--nc-ink);
}
.woocommerce ul.products li.product .price del { opacity: 1; }
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
	position: absolute;
	top: 12px; left: 12px;
	min-height: 0;
	line-height: 1;
	border-radius: var(--nc-radius);
	background: var(--nc-gold);
	color: #fff;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 6px 12px;
	margin: 0;
	z-index: 2;
}
.woocommerce ul.products li.product .button {
	margin-top: 10px;
	padding: 10px 20px;
}

/* Pagination -> plain numbers */
.woocommerce nav.woocommerce-pagination { text-align: center; }
.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: inline-flex;
	gap: 6px;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	overflow: visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 40px;
	height: 40px;
	line-height: 40px;
	padding: 0;
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	color: var(--nc-ink);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--nc-ink);
	border-color: var(--nc-ink);
	color: #fff;
}
.nc-shop-related { padding-bottom: 56px; }

/* ---------- Single product ---------- */
.woocommerce div.product { display: block; }
.woocommerce div.product div.images { margin-bottom: 2em; }
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin-top: 12px;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: 72px;
}
.woocommerce div.product div.images .flex-control-thumbs img {
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	opacity: 1;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	border-color: var(--nc-ink);
}
.woocommerce div.product .product_title {
	font-family: var(--nc-display);
	font-size: clamp(22px, 2.6vw, 30px);
	line-height: 1.3;
}
.woocommerce div.product p.price {
	font-size: 20px;
	color: var(--nc-ink);
	margin: 12px 0 20px;
}
.woocommerce div.product p.price del { color: var(--nc-stone); opacity: 1; }
.woocommerce div.product p.price ins { color: var(--nc-sale); text-decoration: none; font-weight: 500; }

/* Variations: hide the select, show pills */
.nc-visually-hidden-select {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.woocommerce div.product form.cart .variations {
	margin-bottom: 8px;
}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
	display: block;
	padding: 0;
	line-height: 1.6;
}
.woocommerce div.product form.cart .variations label {
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.04em;
}
.nc-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 6px 0 16px;
}
.nc-pill {
	border: 1px solid var(--nc-line);
	background: #fff;
	border-radius: 999px;
	padding: 8px 18px;
	font: inherit;
	font-size: 14px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.nc-pill:hover { border-color: var(--nc-ink); }
.nc-pill.is-active {
	background: var(--nc-ink);
	border-color: var(--nc-ink);
	color: #fff;
}
.woocommerce div.product form.cart .reset_variations {
	font-size: 12px;
	color: var(--nc-stone);
}

/* Quantity stepper + add to cart row */
.nc-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	overflow: hidden;
	margin-right: 12px !important;
}
.nc-qty input.qty {
	border: 0;
	width: 56px;
	text-align: center;
	font: inherit;
}
.nc-qty-btn {
	border: 0;
	background: #fff;
	width: 40px;
	font-size: 18px;
	cursor: pointer;
	color: var(--nc-ink);
}
.nc-qty-btn:hover { background: var(--nc-sand); }
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	background: var(--nc-ink);
	border-radius: var(--nc-radius);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	font-weight: 400;
	font-size: 13px;
	padding: 15px 40px;
	min-width: 260px;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover {
	background: var(--nc-gold);
}

/* Info blocks (Shipping / Payment / Delivery) */
.nc-product-info { margin-top: 28px; border-top: 1px solid var(--nc-line); }
.nc-product-info__item {
	border-bottom: 1px solid var(--nc-line);
	padding: 14px 0;
}
.nc-product-info__item summary {
	cursor: pointer;
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.04em;
	list-style: none;
}
.nc-product-info__item summary::-webkit-details-marker { display: none; }
.nc-product-info__item summary::after {
	content: "−";
	float: right;
	color: var(--nc-stone);
}
.nc-product-info__item:not([open]) summary::after { content: "+"; }
.nc-product-info__item div {
	padding-top: 8px;
	font-size: 14px;
	color: var(--nc-stone);
}

/* Flat description below */
.nc-product-description {
	max-width: 860px;
	margin: 48px auto;
	padding-top: 40px;
	border-top: 1px solid var(--nc-line);
}
.nc-product-description h3 {
	font-size: 22px;
	margin-bottom: 16px;
}

/* Related: "You may also like" */
.woocommerce .related.products > h2,
.woocommerce .related > h2 {
	font-family: var(--nc-display);
	font-size: clamp(24px, 3vw, 32px);
	text-align: center;
	margin: 24px 0 32px;
}

/* ---------- Checkout (Shopify-style) ---------- */
body.woocommerce-checkout .nc-announcement,
body.woocommerce-checkout .nc-nav,
body.woocommerce-checkout .nc-search-toggle,
body.woocommerce-checkout .nc-header__burger,
body.woocommerce-checkout .nc-search-drawer { display: none; }

body.woocommerce-checkout .nc-header__inner {
	justify-content: center;
	position: relative;
}
body.woocommerce-checkout .nc-header__logo { margin: 0 auto; }
body.woocommerce-checkout .nc-header__actions {
	position: absolute;
	right: 20px;
	margin: 0;
}
body.woocommerce-checkout .nc-footer { display: none; }
body.woocommerce-checkout { background: #fff; }

/* Two columns: form left / summary right */
body.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 460px;
	gap: 56px;
	align-items: start;
	padding: 40px 0 80px;
}
body.woocommerce-checkout #customer_details { grid-column: 1; width: 100%; }
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
}
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
	grid-column: 2;
	grid-row: 1 / span 2;
}
body.woocommerce-checkout #order_review_heading { display: none; }
body.woocommerce-checkout #order_review {
	background: #f5f5f5;
	border: 1px solid #ececec;
	border-radius: 8px;
	padding: 28px;
	position: sticky;
	top: 96px;
}

/* Form fields: rounded, Shopify-like */
.woocommerce-checkout .form-row label {
	font-size: 13px;
	color: var(--nc-stone);
}
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	padding: 13px 14px;
	font: inherit;
	background: #fff;
	height: auto;
	box-shadow: none;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row select:focus {
	border-color: #2c5fd9;
	outline: 2px solid rgba(44, 95, 217, 0.15);
}
.woocommerce-checkout h3 {
	font-family: var(--nc-body);
	font-weight: 600;
	font-size: 20px;
	margin: 28px 0 14px;
}

/* Order review table -> summary list */
body.woocommerce-checkout table.shop_table {
	border: 0;
	background: transparent;
	margin: 0;
}
body.woocommerce-checkout table.shop_table td,
body.woocommerce-checkout table.shop_table th {
	border: 0;
	padding: 10px 0;
	background: transparent;
	font-size: 14px;
}
body.woocommerce-checkout table.shop_table tfoot th,
body.woocommerce-checkout table.shop_table tfoot td {
	border-top: 1px solid #e0e0e0;
}
body.woocommerce-checkout .order-total th,
body.woocommerce-checkout .order-total td {
	font-size: 18px;
	font-weight: 600;
}
.nc-review-thumb {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	margin-right: 12px;
}
.nc-review-thumb img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid #e0e0e0;
	background: #fff;
}
.nc-review-qty {
	position: absolute;
	top: -8px; right: -8px;
	background: #666;
	color: #fff;
	font-size: 11px;
	min-width: 19px;
	height: 19px;
	line-height: 19px;
	text-align: center;
	border-radius: 50%;
	padding-inline: 2px;
}
.nc-review-name {
	display: inline-block;
	vertical-align: middle;
	max-width: calc(100% - 80px);
	line-height: 1.4;
}

/* Coupon row -> "Discount code | Apply" */
.woocommerce-form-coupon-toggle { display: none; }
form.checkout_coupon.woocommerce-form-coupon {
	display: flex !important;
	gap: 10px;
	border: 0;
	padding: 0;
	margin: 20px 0;
	max-width: 620px;
}
form.checkout_coupon .form-row { margin: 0; flex: 1; }
form.checkout_coupon input[name="coupon_code"] {
	width: 100%;
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	padding: 13px 14px;
}
form.checkout_coupon button {
	background: #ececec !important;
	color: #333 !important;
	border-radius: 8px !important;
	padding: 13px 22px !important;
	font-weight: 500 !important;
}

/* Shipping methods: selected = light blue box */
body.woocommerce-checkout ul#shipping_method li,
body.woocommerce-checkout .woocommerce-shipping-methods li {
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	padding: 14px 16px;
	margin-bottom: 10px;
	list-style: none;
	background: #fff;
}
body.woocommerce-checkout ul#shipping_method li:has(input:checked),
body.woocommerce-checkout .woocommerce-shipping-methods li:has(input:checked) {
	border-color: #2c5fd9;
	background: #f0f4ff;
}

/* Payment: bordered methods, secure note, blue Pay now */
.nc-secure-note {
	font-size: 13px;
	color: var(--nc-stone);
	margin: 0 0 12px;
}
body.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}
body.woocommerce-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
}
body.woocommerce-checkout #payment ul.payment_methods li {
	border: 1px solid #d9d9d9;
	border-radius: 8px;
	padding: 14px 16px;
	margin-bottom: 10px;
	background: #fff;
	list-style: none;
}
body.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	border-color: #2c5fd9;
	background: #f0f4ff;
}
body.woocommerce-checkout #payment div.payment_box {
	background: #f5f5f5;
	border-radius: 8px;
	font-size: 13px;
	color: #555;
}
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
body.woocommerce-checkout #payment #place_order {
	width: 100%;
	background: #2c5fd9;
	border-radius: 8px;
	padding: 17px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	float: none;
}
body.woocommerce-checkout #payment #place_order:hover { background: #234db3; }

@media (max-width: 1024px) {
	body.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	body.woocommerce-checkout #order_review_heading,
	body.woocommerce-checkout #order_review {
		grid-column: 1;
		grid-row: 1; /* summary first on mobile, like Shopify */
		position: static;
	}
	body.woocommerce-checkout #customer_details { grid-row: 2; }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

/* ---------- v1.4.0 Hero slider ---------- */
.nc-slider {
	position: relative;
	min-height: 76vh;
	overflow: hidden;
}
.nc-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.9s ease, visibility 0.9s ease;
}
.nc-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.35) 55%, rgba(255, 255, 255, 0) 100%);
}
.nc-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.nc-slide .nc-hero__content { position: relative; z-index: 2; max-width: 640px; }
.nc-slide .nc-hero__title {
	font-family: var(--nc-display);
	font-size: clamp(30px, 5vw, 56px);
	margin-bottom: 20px;
}
.nc-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 46px; height: 46px;
	border: 1px solid var(--nc-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.85);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	color: var(--nc-ink);
	transition: background 0.2s ease;
}
.nc-slider__arrow:hover { background: #fff; border-color: var(--nc-gold); }
.nc-slider__arrow--prev { left: 22px; }
.nc-slider__arrow--next { right: 22px; }
.nc-slider__dots {
	position: absolute;
	left: 50%;
	bottom: 22px;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	gap: 10px;
}
.nc-slider__dot {
	width: 10px; height: 10px;
	border-radius: 50%;
	border: 1px solid var(--nc-ink);
	background: transparent;
	cursor: pointer;
	padding: 0;
}
.nc-slider__dot.is-active { background: var(--nc-ink); }
@media (max-width: 860px) {
	.nc-slider { min-height: 62vh; }
	.nc-slider__arrow { display: none; }
}

/* =========================================================
   v1.5.0 — Category page: banner, 6-col grid, badge, header
   ========================================================= */

/* Header: nav left — logo center — icons right (like the live store) */
@media (min-width: 861px) {
	.nc-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		gap: 20px;
	}
	.nc-nav { grid-column: 1; grid-row: 1; justify-self: start; }
	.nc-header__logo { grid-column: 2; grid-row: 1; }
	.nc-header__actions { grid-column: 3; grid-row: 1; justify-self: end; margin-left: 0; }
	.nc-header__burger { display: none; }
	.nc-nav__list > li > a { padding: 26px 12px; }
}

/* Full-width category banner */
.nc-cat-banner {
	position: relative;
	min-height: 340px;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
}
.nc-cat-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.38);
}
.nc-cat-banner--plain { background: var(--nc-sand); color: var(--nc-ink); min-height: 220px; }
.nc-cat-banner--plain::after { display: none; }
.nc-cat-banner__inner { position: relative; z-index: 1; max-width: 720px; }
.nc-cat-banner h1 {
	font-size: clamp(32px, 5vw, 52px);
	margin: 0 0 14px;
	color: inherit;
}
.nc-cat-banner__desc { font-size: 16px; line-height: 1.6; }
.nc-cat-banner__desc p { margin: 0; }

/* Toolbar: right-aligned "219 items · Sort" */
.nc-shop-toolbar {
	justify-content: flex-end;
	gap: 28px;
	border-top: 0;
}

/* 6-column product grid */
.woocommerce ul.products {
	grid-template-columns: repeat(6, 1fr);
	gap: 18px 14px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 13.5px;
	line-height: 1.45;
	-webkit-line-clamp: 4;
}

/* Sale badge: light pill, bottom-left of the image (live-store style) */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,
.nc-badge-sale {
	top: auto;
	bottom: 12px;
	left: 12px;
	background: #fff;
	color: var(--nc-ink);
	border: 1px solid var(--nc-line);
	border-radius: 999px;
	font-size: 12px;
	letter-spacing: 0.02em;
	text-transform: none;
	padding: 5px 14px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* Price: sale price first (dark), regular struck through in muted green */
.woocommerce ul.products li.product .price { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.woocommerce ul.products li.product .price ins { order: 1; color: var(--nc-ink); font-weight: 500; text-decoration: none; }
.woocommerce ul.products li.product .price del { order: 2; color: #96a796; margin: 0; }
.woocommerce ul.products li.product .price ins + del,
.woocommerce ul.products li.product .price del + ins { margin: 0; }

/* Responsive columns */
@media (max-width: 1400px) { .woocommerce ul.products { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 1180px) { .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 960px)  { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  {
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
	.nc-cat-banner { min-height: 240px; }
}
