/* =========================================================================
   New Safety — styl sklepu WooCommerce
   Ciemny, premium wygląd zgodny z resztą newsafety.pl (index.html i podstrony
   usług): ten sam zielony akcent z logo, Inter + Space Grotesk, karty z
   delikatną ramką i glow na hover. Celuje w STABILNE, publiczne klasy
   WooCommerce — nie w strukturę szablonów — więc przetrwa aktualizacje
   WooCommerce i większości innych wtyczek sklepowych.

   Jeśli aktywny motyw WordPress nadpisuje tła/kolory silniejszą
   specyficznością, część reguł poniżej używa !important w kluczowych
   miejscach (tło, kolor tekstu) — to świadoma decyzja, nie niedopatrzenie.
   ========================================================================= */

:root {
	--ns-primary: #4CAF2E;
	--ns-dark: #357A20;
	--ns-black: #0A0D0A;
	--ns-surface: #12160F;
	--ns-silver: #9BA79E;
}

/* -------------------------------------------------------------------------
   0. Baza — tło i typografia na stronach sklepu
   ------------------------------------------------------------------------- */
body.ns-shop-dark {
	background-color: var(--ns-black) !important;
	color: #FFFFFF;
	font-family: 'Inter', sans-serif;
}

body.ns-shop-dark .woocommerce,
body.ns-shop-dark .woocommerce-page,
body.ns-shop-dark #primary,
body.ns-shop-dark .site-content,
body.ns-shop-dark .content-area {
	background-color: var(--ns-black) !important;
	color: #FFFFFF;
}

/* ZABEZPIECZENIE: na czarnym tle tekst ZAWSZE biały, niezależnie od tego,
   co narzuca aktywny motyw WordPress. Każdy kolor poniżej, który ma być
   przyciemniony (breadcrumb, opis, cena przekreślona, nieaktywna zakładka),
   jest celowo nadpisany bardziej szczegółową regułą z !important — więc
   wygrywa nad tą bazą tam, gdzie chcemy subtelniejszy odcień, a wszystko
   inne (również elementy dodawane przez inne wtyczki, np. informacja
   o najniższej cenie z ostatnich 30 dni) zawsze zostaje czytelne. */
body.ns-shop-dark,
body.ns-shop-dark p,
body.ns-shop-dark span,
body.ns-shop-dark div,
body.ns-shop-dark li,
body.ns-shop-dark td,
body.ns-shop-dark th,
body.ns-shop-dark label,
body.ns-shop-dark dt,
body.ns-shop-dark dd,
body.ns-shop-dark strong,
body.ns-shop-dark em,
body.ns-shop-dark small,
body.ns-shop-dark a,
body.ns-shop-dark b,
body.ns-shop-dark i,
body.ns-shop-dark u,
body.ns-shop-dark button,
body.ns-shop-dark figcaption,
body.ns-shop-dark caption,
body.ns-shop-dark legend,
body.ns-shop-dark summary,
body.ns-shop-dark cite,
body.ns-shop-dark blockquote,
body.ns-shop-dark time,
body.ns-shop-dark mark,
body.ns-shop-dark bdi,
body.ns-shop-dark code,
body.ns-shop-dark abbr,
body.ns-shop-dark dfn,
body.ns-shop-dark q,
body.ns-shop-dark kbd,
body.ns-shop-dark var,
body.ns-shop-dark sub,
body.ns-shop-dark sup {
	color: #FFFFFF !important;
}

/* Pola formularzy (koszyk, zamówienie, moje konto) — jawne ciemne tło +
   biały tekst, żeby nigdy nie wyszło "ciemny tekst na ciemnym tle" przez
   nadpisanie samego tła/koloru przez aktywny motyw. */
body.ns-shop-dark input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.ns-shop-dark select,
body.ns-shop-dark textarea {
	background-color: var(--ns-surface) !important;
	color: #FFFFFF !important;
	border-color: rgba(255,255,255,0.14) !important;
}
body.ns-shop-dark input::placeholder,
body.ns-shop-dark textarea::placeholder {
	color: #FFFFFF !important;
	opacity: 1;
}
body.ns-shop-dark option {
	background-color: var(--ns-surface) !important;
	color: #FFFFFF !important;
}

body.ns-shop-dark h1,
body.ns-shop-dark h2,
body.ns-shop-dark h3,
body.ns-shop-dark h4,
body.ns-shop-dark h5,
body.ns-shop-dark h6,
body.ns-shop-dark .woocommerce-loop-product__title {
	font-family: 'Space Grotesk', sans-serif;
	color: #FFFFFF !important;
	letter-spacing: -0.02em;
}

/* Tytuł strony sklepu / kategorii (WooCommerce page-title) */
body.ns-shop-dark .woocommerce-products-header,
body.ns-shop-dark .page-title,
body.ns-shop-dark h1.entry-title {
	padding: 2.5rem 0 1.5rem;
}
body.ns-shop-dark h1.entry-title,
body.ns-shop-dark .woocommerce-products-header__title {
	font-size: clamp(2rem, 5vw, 3.25rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: #FFFFFF;
}
body.ns-shop-dark .term-description,
body.ns-shop-dark .woocommerce-products-header p {
	color: #FFFFFF !important;
	font-weight: 300;
	max-width: 48rem;
}

/* -------------------------------------------------------------------------
   1. Breadcrumb
   ------------------------------------------------------------------------- */
body.ns-shop-dark .woocommerce-breadcrumb {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: #FFFFFF !important;
	margin-bottom: 2rem;
}
body.ns-shop-dark .woocommerce-breadcrumb a {
	color: #FFFFFF !important;
	transition: color 0.3s ease;
}
body.ns-shop-dark .woocommerce-breadcrumb a:hover {
	color: #FFFFFF !important;
}

/* -------------------------------------------------------------------------
   2. Sortowanie i licznik wyników (góra siatki produktów)
   ------------------------------------------------------------------------- */
body.ns-shop-dark .woocommerce-result-count {
	color: #FFFFFF !important;
	font-size: 0.875rem;
	font-weight: 300;
}
body.ns-shop-dark .woocommerce-ordering select {
	background-color: var(--ns-surface);
	color: #FFFFFF;
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 0.75rem;
	padding: 0.6rem 2.25rem 0.6rem 1rem;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%239BA79E' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 1rem;
}
body.ns-shop-dark .woocommerce-ordering select:focus {
	outline: none;
	border-color: var(--ns-primary);
}

/* -------------------------------------------------------------------------
   3. Siatka produktów + karta produktu (content-product.php)
   ------------------------------------------------------------------------- */
body.ns-shop-dark ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
	align-items: stretch;
	list-style: none;
	margin: 0 0 3rem !important;
	padding: 0 !important;
}
body.ns-shop-dark ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	list-style: none;
}

body.ns-shop-dark .ns-product-card__inner {
	height: 100%;
	display: flex;
	flex-direction: column;
	background-color: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.05);
	border-radius: 1.25rem;
	overflow: hidden;
	transition: border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
body.ns-shop-dark .ns-product-card__inner:hover {
	border-color: rgba(76, 175, 46, 0.5);
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -20px rgba(0,0,0,0.6);
}

/* Link WooCommerce otwarty wokół obrazka + tytułu + ceny — rozciągnij go,
   żeby przycisk "Dodaj do koszyka" (poza linkiem) zawsze lądował na dole karty. */
body.ns-shop-dark .ns-product-card__inner > a {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	text-decoration: none;
	color: inherit;
}

body.ns-shop-dark .ns-product-card__inner img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
body.ns-shop-dark .ns-product-card__inner:hover img {
	transform: scale(1.04);
}

body.ns-shop-dark .ns-product-card__inner h2.woocommerce-loop-product__title {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 1.25rem 1.25rem 0.4rem;
	line-height: 1.3;
}

body.ns-shop-dark .ns-product-card__inner .price {
	margin: 0 1.25rem 1.25rem;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--ns-primary) !important;
}
body.ns-shop-dark .ns-product-card__inner .price del {
	color: #FFFFFF !important;
	font-weight: 400;
	opacity: 0.6;
	margin-right: 0.5rem;
}
body.ns-shop-dark .ns-product-card__inner .price ins {
	text-decoration: none;
	color: var(--ns-primary) !important;
}

/* Odznaka "Promocja" */
body.ns-shop-dark .onsale {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	background: var(--ns-primary) !important;
	color: #FFFFFF !important;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	min-height: 0;
	min-width: 0;
	line-height: 1;
}

/* Gwiazdki oceny */
body.ns-shop-dark .star-rating {
	margin: 0 1.25rem 0.25rem;
	color: var(--ns-primary) !important;
}
body.ns-shop-dark .star-rating::before {
	color: rgba(255,255,255,0.15);
}

/* Przycisk "Dodaj do koszyka" w siatce — poza linkiem, dociśnięty do dołu karty */
body.ns-shop-dark .ns-product-card__inner > a.add_to_cart_button,
body.ns-shop-dark .ns-product-card__inner > a.button {
	margin: 0 1.25rem 1.25rem;
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 0.85rem 1rem;
	border-radius: 0.75rem;
	text-decoration: none;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
body.ns-shop-dark .ns-product-card__inner > a.add_to_cart_button:hover,
body.ns-shop-dark .ns-product-card__inner > a.button:hover {
	background-color: var(--ns-dark) !important;
	box-shadow: 0 0 30px -8px rgba(76, 175, 46, 0.5);
}
body.ns-shop-dark .ns-product-card__inner > a.loading::after {
	border-top-color: #FFFFFF;
}
body.ns-shop-dark .ns-product-card__inner > a.added_to_cart {
	display: block;
	margin: 0.5rem 1.25rem 1.25rem;
	font-size: 0.75rem;
	color: var(--ns-primary) !important;
	text-align: center;
}

/* Paginacja */
body.ns-shop-dark .woocommerce-pagination ul.page-numbers {
	display: flex;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	justify-content: center;
}
body.ns-shop-dark .woocommerce-pagination .page-numbers li a,
body.ns-shop-dark .woocommerce-pagination .page-numbers li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.6rem;
	background: var(--ns-surface);
	color: #FFFFFF !important;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.85rem;
	text-decoration: none;
	border: 1px solid rgba(255,255,255,0.05);
}
body.ns-shop-dark .woocommerce-pagination .page-numbers li span.current {
	background: var(--ns-primary);
	color: #FFFFFF !important;
	border-color: var(--ns-primary);
}

/* -------------------------------------------------------------------------
   4. Strona pojedynczego produktu
   ------------------------------------------------------------------------- */
body.ns-shop-dark div.product {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding: 2rem 0 4rem;
}
@media (min-width: 992px) {
	body.ns-shop-dark div.product {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 4rem;
	}
}

/* Tytuł produktu przeniesiony przez main.js z wąskiej kolumny .summary na
   całą szerokość karty produktu (nad galerią i podsumowaniem) — żeby się
   ładnie łamał zamiast ściskać się w połowie szerokości. grid-column: 1/-1
   zajmuje cały wiersz niezależnie od liczby kolumn (1 na mobile, 2 od 992px),
   więc reszta (galeria/cena po lewej, opis/zakładki po prawej) ląduje rząd
   niżej, bez zamiany miejscami. Jeśli main.js z jakiegoś powodu nie przeniesie
   tytułu (np. motyw zmieni strukturę), ta reguła po prostu się nie uruchomi —
   tytuł zostaje tam gdzie był, bez żadnego efektu ubocznego. */
body.ns-shop-dark .ns-product-title-full {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0;
	font-family: 'Space Grotesk', sans-serif;
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #FFFFFF !important;
}

/* Galeria zdjęć — delikatna ramka + tilt na hover, w duchu okładek e-booków z landing page */
body.ns-shop-dark .woocommerce-product-gallery {
	background: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.05);
	border-radius: 1.5rem;
	padding: 1.5rem;
	position: relative;
	overflow: hidden;
}
body.ns-shop-dark .woocommerce-product-gallery__wrapper {
	perspective: 900px;
}
body.ns-shop-dark .woocommerce-product-gallery__image img {
	border-radius: 0.75rem;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
body.ns-shop-dark .woocommerce-product-gallery:hover .woocommerce-product-gallery__image img {
	transform: rotateY(-4deg) scale(1.02);
}
body.ns-shop-dark .flex-control-thumbs {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	padding: 0;
	list-style: none;
}
body.ns-shop-dark .flex-control-thumbs li img {
	border-radius: 0.5rem;
	border: 1px solid rgba(255,255,255,0.1);
	opacity: 0.6;
	transition: opacity 0.3s ease, border-color 0.3s ease;
}
body.ns-shop-dark .flex-control-thumbs li img:hover,
body.ns-shop-dark .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--ns-primary);
}

/* Podsumowanie produktu: tytuł, cena, opis, przycisk */
body.ns-shop-dark .summary.entry-summary > h1.product_title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	margin-bottom: 0.75rem;
}
body.ns-shop-dark .summary.entry-summary .price {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--ns-primary) !important;
	margin-bottom: 1.25rem;
	display: block;
}
body.ns-shop-dark .summary.entry-summary .price del {
	color: #FFFFFF !important;
	font-size: 1.1rem;
	margin-right: 0.75rem;
	opacity: 0.6;
}
body.ns-shop-dark .summary.entry-summary .woocommerce-product-details__short-description {
	color: #FFFFFF !important;
	font-weight: 300;
	line-height: 1.7;
	margin-bottom: 1.75rem;
}
body.ns-shop-dark .summary.entry-summary .woocommerce-product-details__short-description p {
	margin-bottom: 1rem;
}

/* Formularz dodawania do koszyka: ilość + przycisk */
body.ns-shop-dark form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2rem;
}
body.ns-shop-dark form.cart .quantity {
	margin: 0;
}
body.ns-shop-dark form.cart .quantity input.qty {
	width: 4.5rem;
	height: 3.3rem;
	text-align: center;
	background: var(--ns-surface) !important;
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 0.75rem;
	color: #FFFFFF !important;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1rem;
}
body.ns-shop-dark form.cart .quantity input.qty:focus {
	outline: none;
	border-color: var(--ns-primary);
}
body.ns-shop-dark .single_add_to_cart_button {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border: none !important;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 1.05rem 2.25rem !important;
	border-radius: 0.75rem;
	box-shadow: 0 0 40px -10px rgba(76, 175, 46, 0.35);
	transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
body.ns-shop-dark .single_add_to_cart_button:hover {
	background-color: var(--ns-dark) !important;
	transform: translateY(-2px);
}

/* Meta: SKU, kategorie, tagi */
body.ns-shop-dark .product_meta {
	font-size: 0.8rem;
	color: #FFFFFF !important;
	border-top: 1px solid rgba(255,255,255,0.08);
	padding-top: 1.25rem;
}
body.ns-shop-dark .product_meta a {
	color: #FFFFFF !important;
	transition: color 0.3s ease;
}
body.ns-shop-dark .product_meta a:hover {
	color: var(--ns-primary) !important;
}

/* Zakładki: opis / dodatkowe informacje / recenzje */
body.ns-shop-dark .woocommerce-tabs {
	margin-top: 3rem;
	border-top: 1px solid rgba(255,255,255,0.08);
	padding-top: 2rem;
}
body.ns-shop-dark .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 2rem;
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
	border-bottom: 1px solid rgba(255,255,255,0.08);
}
body.ns-shop-dark .woocommerce-tabs ul.tabs li {
	margin: 0;
}
body.ns-shop-dark .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding-bottom: 1rem;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #FFFFFF !important;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: color 0.3s ease, border-color 0.3s ease;
}
body.ns-shop-dark .woocommerce-tabs ul.tabs li.active a {
	color: #FFFFFF !important;
	border-bottom-color: var(--ns-primary);
}
body.ns-shop-dark .woocommerce-Tabs-panel {
	color: #FFFFFF !important;
	font-weight: 300;
	line-height: 1.8;
}
body.ns-shop-dark .woocommerce-Tabs-panel h2 {
	font-size: 1.5rem;
	margin-bottom: 1rem;
}
body.ns-shop-dark table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}
body.ns-shop-dark table.shop_attributes tr {
	border-bottom: 1px solid rgba(255,255,255,0.06);
}
body.ns-shop-dark table.shop_attributes th {
	text-align: left;
	color: #FFFFFF !important;
	font-weight: 600;
	padding: 0.75rem 1rem 0.75rem 0;
	width: 35%;
}
body.ns-shop-dark table.shop_attributes td {
	padding: 0.75rem 0;
}

/* Produkty powiązane / "klienci kupili również" — ponownie korzystają z ul.products */
body.ns-shop-dark .related.products,
body.ns-shop-dark .up-sells.upsells.products {
	margin-top: 4rem;
	padding-top: 3rem;
	border-top: 1px solid rgba(255,255,255,0.08);
}
body.ns-shop-dark .related.products > h2,
body.ns-shop-dark .up-sells.upsells.products > h2 {
	font-size: 1.75rem;
	margin-bottom: 1.75rem;
}

/* -------------------------------------------------------------------------
   5. Komunikaty (sukces, błąd, info)
   ------------------------------------------------------------------------- */
body.ns-shop-dark .woocommerce-message,
body.ns-shop-dark .woocommerce-error,
body.ns-shop-dark .woocommerce-info {
	background: var(--ns-surface) !important;
	color: #FFFFFF !important;
	border-top: 3px solid var(--ns-primary) !important;
	border-radius: 0.75rem;
	padding: 1.25rem 1.5rem !important;
	list-style: none;
	font-size: 0.9rem;
}
body.ns-shop-dark .woocommerce-error {
	border-top-color: #EF4444 !important;
}
body.ns-shop-dark .woocommerce-message .button,
body.ns-shop-dark .woocommerce-info .button {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border-radius: 0.5rem;
	padding: 0.5rem 1rem;
	text-decoration: none;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	float: right;
}

/* -------------------------------------------------------------------------
   6. Koszyk
   ------------------------------------------------------------------------- */
body.ns-shop-dark table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 2rem;
}
body.ns-shop-dark table.shop_table th {
	text-align: left;
	font-family: 'Space Grotesk', sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #FFFFFF !important;
	padding: 1rem;
	border-bottom: 1px solid rgba(255,255,255,0.08);
}
body.ns-shop-dark table.shop_table td {
	padding: 1.25rem 1rem;
	border-bottom: 1px solid rgba(255,255,255,0.06);
	vertical-align: middle;
}
body.ns-shop-dark table.shop_table .product-name a {
	color: #FFFFFF !important;
	font-weight: 600;
	text-decoration: none;
}
body.ns-shop-dark table.shop_table .product-name a:hover {
	color: var(--ns-primary) !important;
}
body.ns-shop-dark table.shop_table .product-price,
body.ns-shop-dark table.shop_table .product-subtotal {
	color: var(--ns-primary) !important;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
}
body.ns-shop-dark table.shop_table .product-remove a.remove {
	color: #EF4444 !important;
	background: transparent !important;
	font-size: 1.1rem;
}
body.ns-shop-dark td.actions .coupon input#coupon_code {
	background: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 0.6rem;
	color: #FFFFFF;
	padding: 0.75rem 1rem;
}
body.ns-shop-dark td.actions .button,
body.ns-shop-dark .wc-proceed-to-checkout .checkout-button,
body.ns-shop-dark .checkout-button {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border: none;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.8rem;
	padding: 0.9rem 1.75rem !important;
	border-radius: 0.75rem;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
}
body.ns-shop-dark td.actions .button:hover,
body.ns-shop-dark .checkout-button:hover {
	background-color: var(--ns-dark) !important;
}
body.ns-shop-dark .cart-collaterals .cart_totals {
	background: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.05);
	border-radius: 1.25rem;
	padding: 1.75rem;
}
body.ns-shop-dark .cart-collaterals .cart_totals h2 {
	font-size: 1.25rem;
	margin-bottom: 1rem;
}
body.ns-shop-dark .cart-collaterals table.shop_table td,
body.ns-shop-dark .cart-collaterals table.shop_table th {
	border-bottom-color: rgba(255,255,255,0.08);
}
body.ns-shop-dark .order-total .woocommerce-Price-amount {
	color: var(--ns-primary) !important;
	font-size: 1.3rem;
}

/* -------------------------------------------------------------------------
   7. Zamówienie / płatność (checkout)
   ------------------------------------------------------------------------- */
body.ns-shop-dark .woocommerce-billing-fields h3,
body.ns-shop-dark #order_review_heading,
body.ns-shop-dark .woocommerce-additional-fields h3 {
	font-family: 'Space Grotesk', sans-serif;
	font-size: 1.4rem;
	margin-bottom: 1.25rem;
}
body.ns-shop-dark .form-row label {
	color: #FFFFFF !important;
	font-size: 0.85rem;
	margin-bottom: 0.4rem;
	display: block;
}
body.ns-shop-dark .form-row .required {
	color: var(--ns-primary) !important;
	text-decoration: none;
}
body.ns-shop-dark .form-row input.input-text,
body.ns-shop-dark .form-row textarea,
body.ns-shop-dark .form-row select,
body.ns-shop-dark .select2-container .select2-selection {
	background-color: var(--ns-surface) !important;
	border: 1px solid rgba(255,255,255,0.1) !important;
	border-radius: 0.6rem !important;
	color: #FFFFFF !important;
	padding: 0.75rem 1rem !important;
	height: auto !important;
}
body.ns-shop-dark .form-row input.input-text:focus,
body.ns-shop-dark .form-row textarea:focus {
	outline: none;
	border-color: var(--ns-primary) !important;
}
body.ns-shop-dark .select2-dropdown {
	background-color: var(--ns-surface) !important;
	border-color: rgba(255,255,255,0.1) !important;
}
body.ns-shop-dark .select2-results__option {
	color: #FFFFFF !important;
}
body.ns-shop-dark .select2-results__option--highlighted {
	background-color: var(--ns-primary) !important;
}
body.ns-shop-dark #order_review {
	background: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.05);
	border-radius: 1.25rem;
	padding: 1.75rem;
}
body.ns-shop-dark .woocommerce-checkout-payment {
	background: var(--ns-surface) !important;
	border-radius: 1rem;
}
body.ns-shop-dark .woocommerce-checkout-payment ul.payment_methods {
	border-bottom-color: rgba(255,255,255,0.08) !important;
}
body.ns-shop-dark .payment_box {
	background-color: rgba(255,255,255,0.03) !important;
	color: #FFFFFF !important;
}
body.ns-shop-dark #place_order {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border: none;
	width: 100%;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.9rem;
	padding: 1.1rem !important;
	border-radius: 0.75rem;
	box-shadow: 0 0 40px -10px rgba(76, 175, 46, 0.35);
}
body.ns-shop-dark #place_order:hover {
	background-color: var(--ns-dark) !important;
}

/* -------------------------------------------------------------------------
   8. Moje konto
   ------------------------------------------------------------------------- */
body.ns-shop-dark .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	border: 1px solid rgba(255,255,255,0.05);
	border-radius: 1rem;
	overflow: hidden;
}
body.ns-shop-dark .woocommerce-MyAccount-navigation ul li {
	background: var(--ns-surface);
}
body.ns-shop-dark .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 0.9rem 1.25rem;
	color: #FFFFFF !important;
	text-decoration: none;
	font-size: 0.85rem;
	transition: color 0.3s ease, background-color 0.3s ease;
}
body.ns-shop-dark .woocommerce-MyAccount-navigation ul li.is-active a,
body.ns-shop-dark .woocommerce-MyAccount-navigation ul li a:hover {
	color: #FFFFFF !important;
	background-color: rgba(76, 175, 46, 0.1);
}
body.ns-shop-dark .woocommerce-MyAccount-content {
	color: #FFFFFF !important;
}
body.ns-shop-dark .woocommerce-MyAccount-content .button {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border-radius: 0.6rem;
	padding: 0.7rem 1.25rem;
	text-decoration: none;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* -------------------------------------------------------------------------
   9. Mini-koszyk (widget w nagłówku, jeśli jest używany)
   ------------------------------------------------------------------------- */
body.ns-shop-dark .widget_shopping_cart,
body.ns-shop-dark .widget_shopping_cart_content {
	background: var(--ns-surface);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: 1rem;
	padding: 1.25rem;
	color: #FFFFFF !important;
}
body.ns-shop-dark .widget_shopping_cart ul.woocommerce-mini-cart {
	list-style: none;
	padding: 0;
}
body.ns-shop-dark .widget_shopping_cart .total .woocommerce-Price-amount {
	color: var(--ns-primary) !important;
}
body.ns-shop-dark .widget_shopping_cart .button {
	background-color: var(--ns-primary) !important;
	color: #FFFFFF !important;
	border-radius: 0.6rem;
}
body.ns-shop-dark .widget_shopping_cart .checkout.wc-forward {
	background-color: #FFFFFF !important;
	color: var(--ns-black) !important;
	border-radius: 0.6rem;
}

/* -------------------------------------------------------------------------
   10. Responsywność
   ------------------------------------------------------------------------- */
@media (max-width: 640px) {
	body.ns-shop-dark ul.products {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
		gap: 1rem;
	}
	body.ns-shop-dark form.cart {
		flex-direction: column;
		align-items: stretch;
	}
	body.ns-shop-dark .single_add_to_cart_button {
		width: 100%;
		justify-content: center;
	}
}
