/*
Theme Name: Naildaze
Theme URI: https://naildaze.com
Author: Naildaze
Author URI: https://naildaze.com
Description: Launch a blazing-fast, pixel-perfect website with the Ollie WordPress block theme! Ollie features over 50 beautiful pattern designs, 7 full-page pattern layouts, and a fully-customizable design system with Global Styles. Ollie integrates seamlessly with all of the powerful new WordPress editor features, giving you the most lightweight and powerful website builder on the planet — no expensive page builder plugin required! ✶ Full demo: https://demo.olliewp.com ✶
Tags: blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Tested up to: 7.1
Requires PHP: 7.3
Version: 1.6.84
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: naildaze

Ollie WordPress Theme, (C) 2026 Mike McAlister.
Ollie is distributed under the terms of the GNU GPL.
*/

/* CSS Reset
---------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

b,
strong {
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

ol,
ul {
	padding: 0;
}

ol:where(:not([class*="wp-block"])),
ol:where(.wp-block-list),
ul:where(:not([class*="wp-block"])),
ul:where(.wp-block-list) {
	padding-inline-start: var(--wp--preset--spacing--medium);
}

div[class*="wp-block-"] figcaption {
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--x-small);
	margin-bottom: 0;
	margin-top: 20px;
	text-align: center;
}

img,
figure {
	max-width: 100%;
	height: auto;
}

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
	a {
		text-decoration-thickness: .1rem !important;
	}
}

/* Standardize form styling
--------------------------------------------- */

input,
button,
textarea,
select {
	font: inherit;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
	appearance: none;
}

input:not([type="submit"]):not([type="radio"]),
select,
textarea,
.wp-block-post-comments-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wp-block-post-comments-form textarea {
	color: var(--wp--preset--color--main);
	border-radius: 5px;
	border: solid 1px color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 20%);
	padding: .5em 1em;
	font-size: var(--wp--preset--font-size--small);
	background-color: #fff;
	box-shadow: 
		0 1px 2px rgba(0, 0, 0, 0.02),
		0 0.5px 1px rgba(0, 0, 0, 0.04);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline-color: var(--wp--preset--color--main);
	outline-offset: 1px;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

select {
	-webkit-appearance: none;
	appearance: none;
	background: var(--wp--preset--color--base) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;
    background-size: 16px;
    background-position: calc(100% - 12px) 50%;
	padding-right: 2.2em;
}

label {
	width: 100%;
	display: block;
}

::placeholder {
	color: var(--wp--preset--color--secondary);
	opacity: 0.75;
}

/* Helper styles
---------------------------------------------------------------------------- */

a.more-link {
	display: block;
}

/* Inline code */
*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--tertiary);
	padding: 3px 5px;
	position: relative;
	border-radius: 3px;
}

.wp-block-categories {
	position: relative;
}

/* Remove margin on term description on archive pages */
.wp-block-term-description p:last-child {
	margin-bottom: 0;
}

/* Remove last separator on post list */
.remove-border-and-padding .wp-block-post-template li:last-child .wp-block-separator {
	display: none;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
	display: none;
}

.wp-block-group:empty:has(+ .comment-respond) {
	display: none;
}

.row-logos > figure {
	flex-shrink: 1 !important;
}

/* Sticky header */

body:not(.wp-admin) header:has(>.is-position-sticky) {
	position: sticky;
	top: calc( 0px + var( --wp-admin--admin-bar--height, 0px ) );
	z-index: 100;
}

/* Account for admin bar on mobile */

@media (max-width: 600px) {
	header:has(>.is-position-sticky) {
		top: 0;
	}
}

/* Partial sticky header: when one row inside the header is sticky, dissolve
   the header wrappers so that row can stick on its own while rows above
   scroll away. Wrapper styling won't render while dissolved. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)),
body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group {
	display: contents;
}

/* Cancel alignfull negative margins — the dissolved wrapper's compensating
   padding no longer renders. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group > .alignfull {
	margin-left: 0;
	margin-right: 0;
}

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky) .is-position-sticky {
	z-index: 100;
}

/* Mobile helper classes */

@media (max-width: 781px) {
	.ollie-hide-on-mobile {
		display: none;
	}

	.ollie-unstick-mobile {
		position: static;
	}

	header:has(>.ollie-unstick-mobile) {
		position: static;
	}
}

/* Table
--------------------------------------------- */

.wp-block-table table {
	background: var(--wp--preset--color--base);
	border-radius: 5px;
	border: solid 1px var(--wp--preset--color--border-light);
	font-size: var(--wp--preset--font-size--x-small);
}
.wp-block-table.is-style-stripes {
	border-bottom: none;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--wp--preset--color--tertiary);
}

.wp-block-table td, 
.wp-block-table th,
.wp-block-table thead {
	border: none;
	border-bottom: solid 1px color-mix(in srgb, var(--wp--preset--color--border-light) 50%, var(--wp--preset--color--base) 5%);
}

.wp-block-table th,
.wp-block-table tfoot {
	text-align: left;
	background-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 75%, var(--wp--preset--color--base) 5%);
}

.wp-block-table td, 
.wp-block-table th {
	padding: .8em 1em;
}

.wp-block-table tfoot {
	border-top: solid 1px var(--wp--preset--color--border-light);
}

.wp-block-table tfoot td {
	border-bottom: none;
}

/* Mobile menu: fullscreen overlay owned by the rules below (drawer variant removed). */

.wp-block-group.has-main-background-color .wp-block-button__link {
	transition: all 0.2s ease;
}

.wp-block-group.has-main-background-color .wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Homepage Styles
--------------------------------------------- */

/* Hero section */
.site-content > .wp-block-group:first-child {
	margin-top: 0;
}

/* Product grid */
.wp-block-query.alignwide .wp-block-post-template {
	gap: var(--wp--preset--spacing--medium);
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-group > a {
	display: block;
	overflow: hidden;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-group > a img {
	transition: transform 0.3s ease;
}

.wp-block-query.alignwide .wp-block-post-template .wp-block-group > a:hover img {
	transform: scale(1.03);
}

/* Product card */
.wp-block-post-title a {
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.wp-block-post-title a:hover {
	opacity: 0.7;
}

/* Newsletter CTA */
.wp-block-group.has-main-background-color .wp-block-button__link {
	transition: all 0.2s ease;
}

.wp-block-group.has-main-background-color .wp-block-button__link:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

/* Hero button hover */
.wp-block-button__link {
	transition: all 0.2s ease;
}

--------------------------------------------- */
.woocommerce ul.products {
	gap: var(--wp--preset--spacing--medium);
}

.woocommerce ul.products li.product {
	margin: 0 !important;
	padding: 0;
}

.woocommerce ul.products li.product a img {
	margin: 0;
	transition: transform 0.3s ease;
}

.woocommerce ul.products li.product a:hover img {
	transform: scale(1.03);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	font-weight: 500;
	margin: var(--wp--preset--spacing--small) 0 0.25rem;
}

.woocommerce ul.products li.product .price {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--wp--preset--color--main);
}

/* Product Page
--------------------------------------------- */
.single-product .woocommerce-product-gallery {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.single-product .product_title {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--small);
}

.single-product .price {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: var(--wp--preset--spacing--medium);
}

.single-product .woocommerce-add-to-cart_single {
	margin: var(--wp--preset--spacing--medium) 0;
}

.single-product .variations {
	margin-bottom: var(--wp--preset--spacing--medium);
}

/* Cart & Checkout
--------------------------------------------- */
.woocommerce-cart table.cart {
	border: none;
}

.woocommerce-cart table.cart td {
	padding: var(--wp--preset--spacing--small);
}

.woocommerce-cart .quantity .qty {
	min-width: 60px;
}

wc-block-components-quantity-selector {
	width: 110px;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 6px;
	overflow: hidden;
	font-family: var(--wp--preset--font-family--primary);
}

wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 6px 0 0 6px;
	font-size: var(--wp--preset--font-size--small);
	text-align: center;
	color: var(--wp--preset--color--main);
	background: var(--wp--preset--color--base);
}

wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	width: 30px;
	height: 40px;
	border: none;
	background: transparent;
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus,
wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	opacity: 1;
	color: var(--wp--preset--color--main);
}

.woocommerce-checkout #payment {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 5px;
	padding: var(--wp--preset--spacing--medium);
}

/* Add to Cart Button
--------------------------------------------- */
.button,
.add_to_cart_button,
.woocommerce-button {
	background: var(--wp--preset--color--main) !important;
	color: var(--wp--preset--color--base) !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0.6em 1.5em !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	font-size: var(--wp--preset--font-size--small) !important;
	transition: all 0.2s ease !important;
}

.button:hover,
.add_to_cart_button:hover,
.woocommerce-button:hover {
	background: var(--wp--preset--color--secondary) !important;
	transform: translateY(-1px);
}

/* Sale Badge
--------------------------------------------- */
.onsale {
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	border-radius: 0 !important;
	min-width: auto !important;
	min-height: auto !important;
	padding: 0.25em 0.75em !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
}

/* Category Pages
--------------------------------------------- */
.woocommerce-page .woocommerce-ordering {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.woocommerce .woocommerce-result-count {
	font-size: var(--wp--preset--font-size--small);
}

/* Product Reviews
--------------------------------------------- */
.woocommerce-Reviews #reviews #comments {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.woocommerce-Reviews .commentlist {
	padding: 0;
}

.woocommerce-Reviews .commentlist li {
	margin-bottom: var(--wp--preset--spacing--medium);
	padding-bottom: var(--wp--preset--spacing--medium);
	border-bottom: 1px solid var(--wp--preset--color--border-light);
}

/* My Account
--------------------------------------------- */
.woocommerce-account .woocommerce-MyAccount-navigation {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.woocommerce-account .woocommerce-MyAccount-content h2 {
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: var(--wp--preset--spacing--medium);
}



/* Site header: seamless sticky via negative offset. The whole header sticks,
   but offset upward by exactly the announcement height, so the announcement
   slides off-screen and the main row lands flush at viewport top.
   Pure CSS — no JS height changes, nothing can bounce. */
.site-header {
	position: sticky;
	top: -37px;
	z-index: 100;
}
/* On most templates WP wraps the header part in <header class="wp-block-template-part">
   shrink-wrapped to content height, leaving the sticky inner header zero room to
   stick. Stick the wrapper instead (room = page height). Home has no wrapper
   and keeps working via .site-header above. */
header.wp-block-template-part:has(> .site-header) {
	position: sticky;
	top: -37px;
	z-index: 100;
}
.header-announcement {
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
@media (max-width: 782px) {
	.site-header {
		top: -33px;
	}
	header.wp-block-template-part:has(> .site-header) {
		top: -33px;
	}
	.header-announcement {
		height: 32px;
	}
}

/* Header tools - search, account, wishlist */
.header-tools {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--small);
}

.header-tools .wp-block-search__button {
	padding: 0.5em !important;
	min-height: 36px !important;
	min-width: 36px !important;
}

.header-tools .header-account-link,
.header-tools .header-wishlist-link {
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 500;
	transition: opacity 0.2s ease;
}

.header-tools .header-account-link:hover,
.header-tools .header-wishlist-link:hover {
	opacity: 0.7;
}

/* Announcement bar */
.header-announcement {
	text-align: center;
}

/* Navigation */
.wp-block-navigation {
	font-weight: 500;
}

/* Legacy account/wishlist links: hide on phones */
@media (max-width: 782px) {
	.header-account-link,
	.header-wishlist-link {
		display: none !important;
	}
}
/* Logo figure must size to content (was globally clamped to 36px) */
.site-header .wp-block-site-logo {
	width: auto !important;
	max-width: none !important;
}


/* Header main row */
.site-header .wp-block-group.alignwide {
	max-width: 1260px;
	margin: 0 auto;
}

/* Checkout header (minimal): logo + secure pill + cart, same hairline language as site header */
.nd-checkout-header {	border-bottom: 1px solid var(--wp--preset--color--border-light);	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);}

.nd-checkout-header-inner {
	max-width: 1260px;
	margin: 0 auto;
}

.nd-checkout-header .wp-block-site-logo {
	width: auto !important;
	max-width: none !important;
}

.nd-checkout-header .wp-block-site-logo a {
	display: flex;
	align-items: center;
}

.nd-checkout-header-tools {
	gap: var(--wp--preset--spacing--small);
}

/* Balanced 3-zone row: side zones grow equally so the logo stays truly centered */
.nd-checkout-back,
.nd-checkout-header-tools {
	flex: 1 1 0;
	display: flex;
	align-items: center;
}

.nd-checkout-header-tools {
	justify-content: flex-end;
}

.nd-back-cart {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
	white-space: nowrap;
}

.nd-back-cart:hover {
	color: var(--wp--preset--color--main);
	text-decoration: underline;
}

.nd-secure-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	color: var(--wp--preset--color--secondary);
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 100px;
	padding: 6px 12px;
	white-space: nowrap;
}

.nd-secure-pill svg {
	flex: 0 0 auto;
}

.nd-checkout-header .wc-block-cart-link {
	align-items: center;
	color: var(--wp--preset--color--main);
}

.nd-checkout-header .wc-block-cart-link svg {
	width: 22px;
}

@media (max-width: 480px) {
	.nd-back-cart {
		display: none;
	}
	.nd-secure-pill {
		font-size: 0;
		gap: 0;
		padding: 7px 9px;
	}
}

.site-header .wp-block-site-logo a {
	display: flex;
	align-items: center;
}

.site-header .wp-block-site-logo img {
	transition: opacity 0.2s ease;
}

.site-header .wp-block-site-logo a:hover img {
	opacity: 0.7;
}

/* Desktop navigation */
.site-header .wp-block-navigation {
	font-family: var(--wp--preset--font-family--primary);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.site-header .wp-block-navigation a {
	text-decoration: none;
	color: var(--wp--preset--color--main);
	transition: color 0.2s ease;
	padding: 0.5em 0;
}

.site-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary);
}

/* Navigation submenu */
/* Submenu parents render as <button> (label + chevron) in WP 7.1 — style it, never hide it */
.site-header button.wp-block-navigation-submenu__toggle {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	background: transparent;
	border: none;
	cursor: pointer;
	font: inherit;
	color: inherit;
	padding: .6em .1em;
	margin: 0 .55em;
}
.site-header button.wp-block-navigation-submenu__toggle > svg,
.site-header span.wp-block-navigation__submenu-icon {
	display: none;
}
.site-header button.wp-block-navigation-submenu__toggle::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .25s ease;
	flex-shrink: 0;
}
.site-header button.wp-block-navigation-submenu__toggle[aria-expanded="true"]::after {
	transform: rotate(225deg) translateY(1px);
}

.site-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border-light);
	background: var(--wp--preset--color--base);
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
	padding: var(--wp--preset--spacing--small) 0;
	min-width: 200px;
}

.site-header .wp-block-navigation__submenu-container a {
	padding: 0.5em 1.5em;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Header tools */
.header-tools {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--small);
}

.header-tools .wp-block-search {
	margin: 0;
}

.header-tools .wp-block-search__button {
	padding: 0.5em !important;
	min-height: 40px !important;
	min-width: 40px !important;
	background: transparent !important;
	border: none !important;
	color: var(--wp--preset--color--main) !important;
	border-radius: 0 !important;
	transition: opacity 0.2s ease;
}

.header-tools .wp-block-search__button:hover {
	opacity: 0.6;
}

.header-tools .wp-block-search__button svg {
	width: 18px;
	height: 18px;
	stroke: currentColor;
	fill: none;
}

.header-tools a {
	text-decoration: none;
	font-size: 0.8rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--wp--preset--color--main);
	transition: opacity 0.2s ease;
	padding: 0.5em;
}

.header-tools a:hover {
	opacity: 0.6;
}

/* Announcement bar */
.header-announcement {
	background: var(--wp--preset--color--main);
	padding: 8px var(--wp--preset--spacing--medium);
}

.header-announcement p {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--wp--preset--color--base);
}

/* Mobile hamburger */
.site-header .wp-block-navigation__responsive-container-open {
	background: transparent;
	border: none;
	min-height: 44px;
	min-width: 44px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.site-header .wp-block-navigation__responsive-container-open svg {
	width: 22px;
	height: 22px;
	stroke: var(--wp--preset--color--main);
}

/* Mobile menu */
.site-header .wp-block-navigation__responsive-container {
	background: var(--wp--preset--color--base);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base);
}

@media (max-width: 782px) {
	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
		padding: 68px 20px 28px;
	}
}

@media (max-width: 782px) {
	.site-header .wp-block-navigation__responsive-container a {
		font-family: var(--wp--preset--font-family--primary);
		font-size: 0.9rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 1px;
		padding: 1em 0;
		border-bottom: 1px solid var(--wp--preset--color--border-light);
	}
}

/* Close button */
.site-header .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: var(--wp--preset--spacing--small);
	right: var(--wp--preset--spacing--small);
	min-height: 44px;
	min-width: 44px;
	background: transparent;
	border: none;
}

/* Mobile adjustments */
@media (max-width: 782px) {
	.site-header .wp-block-group.alignwide:not(.header-main-inner) {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
	
	.site-header .header-tools a:not(.wp-block-search__button) {
		font-size: 0;
		padding: 0.5em;
	}
	
	.site-header .header-tools a:not(.wp-block-search__button)::before {
		font-size: 16px;
		content: attr(aria-label);
	}
	
	.site-header .wp-block-site-logo img {
		width: 36px;
		height: auto;
	}
	
	.header-announcement p {
		font-size: 0.65rem;
		letter-spacing: 1px;
	}
}

/* ============================================
   Mobile-First Responsive Design
   ============================================ */

/* -- Small Mobile (< 480px) -- */
@media (max-width: 479px) {
	
	/* Hero */
	.site-content > .wp-block-group:first-child {
		min-height: 70vh !important;
	}
	
	.site-content > .wp-block-group:first-child h1 {
		font-size: 2rem !important;
		line-height: 1.1 !important;
		letter-spacing: -0.5px !important;
	}
	
	.site-content > .wp-block-group:first-child p {
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
	}
	
	/* Buttons - full width, tall touch targets */
	.wp-block-buttons {
		flex-direction: column !important;
		width: 100% !important;
		gap: 0.75rem !important;
	}
	
	.wp-block-button {
		width: 100% !important;
	}
	
	.wp-block-button__link {
		width: 100% !important;
		text-align: center !important;
		justify-content: center !important;
		padding: 1em 1.5em !important;
		min-height: 52px !important;
		font-size: 0.8rem !important;
		letter-spacing: 1.5px !important;
	}
	
	/* Product grid - 2 columns */
	.wp-block-post-template {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.5rem !important;
	}
	
	/* Product card */
	.wp-block-post-template li {
		margin-bottom: 0 !important;
	}
	
	.wp-block-post-template .wp-block-group > a img {
		aspect-ratio: 3/4 !important;
		object-fit: cover !important;
		border-radius: 4px !important;
	}
	
	.wp-block-post-template .wp-block-post-title {
		font-size: 0.8rem !important;
		line-height: 1.2 !important;
		margin: 0.4rem 0 0.15rem !important;
	}
	
	.wp-block-post-template .wc-block-grid__product-price {
		font-size: 0.75rem !important;
	}
	
	/* Section spacing */
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--x-large)"],
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--xx-large)"] {
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
	
	/* Section headings */
	.wp-block-heading {
		font-size: 1.5rem !important;
	}
	
	/* Newsletter */
	.wp-block-group.has-main-background-color .wp-block-group.alignwide {
		padding: 1.5rem 1rem !important;
	}
	
	.wp-block-group.has-main-background-color h2 {
		font-size: 1.5rem !important;
	}
	
	.wp-block-group.has-main-background-color p {
		font-size: 0.9rem !important;
	}
}

/* -- Mobile (480px - 782px) -- */
@media (min-width: 480px) and (max-width: 782px) {
	
	/* Hero */
	.site-content > .wp-block-group:first-child {
		min-height: 75vh !important;
	}
	
	.site-content > .wp-block-group:first-child h1 {
		font-size: clamp(2rem, 5vw, 2.5rem) !important;
		line-height: 1.08 !important;
	}
	
	/* Product grid - 2 columns */
	.wp-block-post-template {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}
	
	/* Product card */
	.wp-block-post-template .wp-block-group > a img {
		aspect-ratio: 3/4 !important;
		object-fit: cover !important;
		border-radius: 4px !important;
	}
	
	.wp-block-post-template .wp-block-post-title {
		font-size: 0.9rem !important;
		line-height: 1.25 !important;
	}
	
	/* Section spacing */
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--x-large)"],
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--xx-large)"] {
		padding-top: 2.5rem !important;
		padding-bottom: 2.5rem !important;
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
	
	/* Section headings */
	.wp-block-heading {
		font-size: clamp(1.6rem, 4vw, 2rem) !important;
	}
}

/* -- All Mobile (≤ 782px) -- */
@media (max-width: 782px) {
	
	/* Override WordPress grid */
	.wp-block-post-template-is-layout-grid[class*="columns-"] {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	
	/* Hero columns - stack vertically, image first */
	.wp-block-columns.is-stacked-on-mobile {
		flex-direction: column !important;
		gap: 1.5rem !important;
	}
	
	.wp-block-columns.is-stacked-on-mobile .wp-block-column {
		flex-basis: 100% !important;
		max-width: 100% !important;
	}
	
	/* Image column first */
	.wp-block-columns.is-stacked-on-mobile .wp-block-column:last-child {
		order: -1 !important;
	}
	
	/* Hero image */
	.wp-block-columns.is-stacked-on-mobile .wp-block-column:last-child img {
		width: 100% !important;
		height: auto !important;
		max-height: 55vh !important;
		object-fit: cover !important;
		border-radius: 8px !important;
	}
	
	/* Hero text */
	.wp-block-columns.is-stacked-on-mobile h1 {
		font-size: clamp(1.8rem, 7vw, 2.5rem) !important;
		line-height: 1.1 !important;
		letter-spacing: -0.5px !important;
	}
	
	.wp-block-columns.is-stacked-on-mobile p {
		font-size: 1rem !important;
		line-height: 1.5 !important;
	}
	
	/* Buttons - full width on mobile */
	.wp-block-columns.is-stacked-on-mobile .wp-block-buttons {
		flex-direction: column !important;
		width: 100% !important;
		gap: 0.75rem !important;
		margin-top: 1.5rem !important;
	}
	
	.wp-block-columns.is-stacked-on-mobile .wp-block-button {
		width: 100% !important;
	}
	
	.wp-block-columns.is-stacked-on-mobile .wp-block-button__link {
		width: 100% !important;
		text-align: center !important;
		justify-content: center !important;
		display: flex !important;
		padding: 1em 1.5em !important;
		min-height: 50px !important;
	}
	
	/* Section headings */
	.section-heading,
	.wp-block-group.alignwide > .wp-block-group > .wp-block-heading {
		text-align: left !important;
	}
	
	/* Section spacing - tighter */
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--x-large)"],
	.wp-block-group[style*="padding-top: var(--wp--preset--spacing--xx-large)"],
	main > .wp-block-group[style*="padding-top"] {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
	
	/* Newsletter section */
	.wp-block-group.has-main-background-color {
		text-align: center !important;
	}
	
	.wp-block-group.has-main-background-color .wp-block-group.alignwide {
		max-width: 100% !important;
		padding: 2rem 1rem !important;
	}
	
	.wp-block-group.has-main-background-color h2 {
		font-size: clamp(1.5rem, 5vw, 2rem) !important;
	}
	
	.wp-block-group.has-main-background-color p {
		font-size: 0.95rem !important;
		line-height: 1.5 !important;
	}
	
	/* Buttons in newsletter */
	.wp-block-group.has-main-background-color .wp-block-button__link {
		min-height: 50px !important;
		font-size: 0.85rem !important;
	}
	
	/* Legacy dark footer only - custom .nd-footer sets its own padding */
	.site-footer .has-main-background-color,
	.site-footer .has-primary-background-color {
		padding: var(--wp--preset--spacing--medium) !important;
	}
	
	/* Touch targets - minimum 48px */
	a, button, .wp-block-button__link {
		min-height: 48px;
	}
	
	/* Navigation - better drawer */
	.wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--base) !important;
	}
	
	
	.wp-block-navigation__responsive-container.is-menu-open a {
		font-size: 0.9rem !important;
		padding: 0.9em 0.5em !important;
		min-height: 48px !important;
		display: flex !important;
		align-items: center !important;
		border-bottom: 1px solid var(--wp--preset--color--border-light) !important;
	}
	
	/* Close button bigger */
	.wp-block-navigation__responsive-container-close {
		min-height: 48px !important;
		min-width: 48px !important;
	}
	
	/* Fix iOS Safari 100vh */
	.wp-block-group[style*="min-height"] {
		min-height: -webkit-fill-available !important;
	}
	
	/* Prevent horizontal scroll */
	.wp-block-group.alignfull {
		overflow-x: hidden !important;
	}
}

/* -- WooCommerce Mobile -- */
@media (max-width: 782px) {
	.woocommerce ul.products {
		gap: 0.75rem !important;
	}
	
	.woocommerce ul.products li.product {
		width: calc(50% - 0.375rem) !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	
	.woocommerce ul.products li.product a img {
		margin: 0 !important;
		border-radius: 4px !important;
	}
	
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.85rem !important;
		margin: 0.5rem 0 0.2rem !important;
	}
	
	.woocommerce ul.products li.product .price {
		font-size: 0.8rem !important;
	}
	
	/* Product page */
	.single-product .woocommerce-product-gallery {
		margin-bottom: 1rem !important;
	}
	
	.single-product .product_title {
		font-size: 1.4rem !important;
	}
	
	/* Cart */
	.woocommerce-cart table.cart {
		font-size: 0.8rem !important;
	}
}

/* ============================================
   Header - NailDaze Design
   ============================================ */

/* -- Announcement Bar -- */
.header-announcement {
	text-align: center;
	transition: all 0.3s ease;
}

.header-announcement p {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* -- Main Header -- (position handled by the canonical rule above) */
.site-header {
	background: var(--wp--preset--color--base);
}

.site-header.is-stuck,
.site-header:has(.is-position-sticky) {
	box-shadow: 0 1px 0 var(--wp--preset--color--border-light);
}

.header-main {
	padding-top: var(--wp--preset--spacing--small);
	padding-bottom: var(--wp--preset--spacing--small);
}

.header-main-inner {
	max-width: 1260px;
	margin: 0 auto;
}

/* -- Header Left: Nav + Logo -- */
.header-left {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--medium);
}

.header-left .wp-block-site-logo {
	flex-shrink: 0;
}

.header-left .wp-block-site-logo a {
	display: flex;
	align-items: center;
}

.header-left .wp-block-site-logo img {
	transition: opacity 0.2s ease;
	height: 32px;
	width: auto;
}

.header-left .wp-block-site-logo a:hover img {
	opacity: 0.7;
}

/* -- Header Right: Icons -- */
.header-right {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--small);
}

/* Search */
.header-search .wp-block-search__button {
	padding: 8px !important;
	min-height: 40px !important;
	min-width: 40px !important;
	background: transparent !important;
	border: none !important;
	color: var(--wp--preset--color--main) !important;
	border-radius: 0 !important;
	transition: opacity 0.2s ease;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

.header-search .wp-block-search__button:hover {
	opacity: 0.5;
}

.header-search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.5;
}

/* Icon Links (Account, Wishlist) */
.header-icon-link {
	text-decoration: none !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	min-width: 40px;
	color: var(--wp--preset--color--main) !important;
	transition: opacity 0.2s ease;
}

.header-icon-link:hover {
	opacity: 0.5;
}

.header-icon-link::before {
	font-size: 0;
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E1E26' stroke-width='1.5'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}



/* Cart Button */
.header-cart {
	display: flex;
	align-items: center;
}

.header-cart button,
.header-cart .wc-block-mini-cart__button {
	background: transparent !important;
	border: none !important;
	min-height: 40px !important;
	min-width: 40px !important;
	padding: 8px !important;
	color: var(--wp--preset--color--main) !important;
	transition: opacity 0.2s ease;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

.header-cart button:hover,
.header-cart .wc-block-mini-cart__button:hover {
	opacity: 0.5;
}

.header-cart button svg,
.header-cart .wc-block-mini-cart__button svg {
	width: 20px;
	height: 20px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.5;
}

/* Cart count badge */
.header-cart .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	font-size: 0.6rem !important;
	font-weight: 700 !important;
	min-width: 16px !important;
	height: 16px !important;
	padding: 0 4px !important;
	border-radius: 50% !important;
	line-height: 16px !important;
	position: absolute;
	top: 2px;
	right: 2px;
}

/* -- Desktop Navigation -- */
.header-desktop-nav .wp-block-navigation {
	font-family: var(--wp--preset--font-family--primary);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.header-desktop-nav .wp-block-navigation a {
	text-decoration: none;
	color: var(--wp--preset--color--main);
	transition: color 0.2s ease;
	padding: 0.5em 0;
	position: relative;
}

.header-desktop-nav .wp-block-navigation a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--wp--preset--color--primary);
	transition: width 0.2s ease;
}

.header-desktop-nav .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary);
}

.header-desktop-nav .wp-block-navigation a:hover::after {
	width: 100%;
}

/* Submenu */
.header-desktop-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border-light);
	background: var(--wp--preset--color--base);
	box-shadow: 0 8px 32px rgba(0,0,0,0.08);
	padding: 0.75rem 0;
	min-width: 220px;
	margin-top: 0.5rem;
}

.header-desktop-nav .wp-block-navigation__submenu-container a {
	padding: 0.5em 1.5em;
	font-size: 0.75rem;
	letter-spacing: 0.5px;
}

.header-desktop-nav .wp-block-navigation__submenu-container a::after {
	display: none;
}

/* Mobile hamburger */
.header-desktop-nav .wp-block-navigation__responsive-container-open {
	background: transparent;
	border: none;
	min-height: 44px;
	min-width: 44px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.header-desktop-nav .wp-block-navigation__responsive-container-open svg {
	width: 22px;
	height: 22px;
	stroke: var(--wp--preset--color--main);
	fill: none;
	stroke-width: 1.5;
}

/* Mobile menu */
.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
}

.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 1.5rem;
}

.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open a {
	font-family: var(--wp--preset--font-family--primary);
	font-size: 0.9rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 1em 0;
	min-height: 48px;
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--wp--preset--color--border-light);
}

.header-desktop-nav .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	min-height: 48px;
	min-width: 48px;
	background: transparent;
	border: none;
}

/* -- Desktop Only -- */
@media (min-width: 783px) {
	.header-desktop-nav .wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}

/* -- Mobile Adjustments -- */
@media (max-width: 782px) {
	.header-main-inner {
		padding-left: 0;
		padding-right: 0;
	}
	
	/* Hide icon labels on mobile */
	.header-icon-link {
		font-size: 0;
	}
	
	.header-icon-link::before {
		width: 22px;
		height: 22px;
	}
	
	/* Smaller logo on mobile */
	.header-left .wp-block-site-logo img {
		height: 28px;
	}
	
	/* Announcement smaller text */
	.header-announcement p {
		font-size: 0.6rem;
		letter-spacing: 1.5px;
	}
	
	/* Cart badge */
	.header-cart .wc-block-mini-cart__badge {
		font-size: 0.55rem !important;
		min-width: 14px !important;
		height: 14px !important;
		line-height: 14px !important;
	}
}

@media (max-width: 480px) {
	.header-left .wp-block-site-logo img {
		height: 26px;
	}
	
	.header-right {
		gap: 0.25rem;
	}
}

/* ============================================
   Header - NailDaze Three-Column Design
   ============================================ */

/* -- Announcement Bar -- */
.header-announcement {
	text-align: center;
}

.header-announcement p {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* -- Site Header -- (position handled by the canonical rule above) */
.site-header {
	background: var(--wp--preset--color--base);
}

/* -- Main Header Row -- */
.header-main {
	padding-top: var(--wp--preset--spacing--small);
	padding-bottom: var(--wp--preset--spacing--small);
}

.header-main-inner {
	max-width: 1260px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* -- Left: Logo -- */
.header-left {
	flex-shrink: 0;
}

.header-left .wp-block-site-logo a {
	display: flex;
	align-items: center;
}

.header-left .wp-block-site-logo img {
	height: 32px;
	width: auto;
	transition: opacity 0.2s ease;
}

.header-left .wp-block-site-logo a:hover img {
	opacity: 0.7;
}

/* -- Center: Navigation -- */
.header-center {
	flex: 1;
	display: flex;
	justify-content: center;
}

.header-desktop-nav .wp-block-navigation {
	font-family: var(--wp--preset--font-family--primary);
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	justify-content: center;
}

.header-desktop-nav .wp-block-navigation a {
	text-decoration: none;
	color: var(--wp--preset--color--main);
	transition: color 0.2s ease;
	padding: 0.5em 0.75em;
	position: relative;
}

.header-desktop-nav .wp-block-navigation a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0.75em;
	right: 0.75em;
	height: 1px;
	background: var(--wp--preset--color--primary);
	transform: scaleX(0);
	transition: transform 0.2s ease;
}

.header-desktop-nav .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary);
}

.header-desktop-nav .wp-block-navigation a:hover::after {
	transform: scaleX(1);
}

/* Submenu */
.header-desktop-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border-light);
	background: var(--wp--preset--color--base);
	box-shadow: 0 8px 32px rgba(0,0,0,0.08);
	padding: 0.75rem 0;
	min-width: 220px;
	margin-top: 0.5rem;
}

.header-desktop-nav .wp-block-navigation__submenu-container a {
	padding: 0.5em 1.5em;
	font-size: 0.75rem;
	letter-spacing: 0.5px;
}

.header-desktop-nav .wp-block-navigation__submenu-container a::after {
	display: none;
}

/* -- Right: Icons -- */
.header-right {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--small);
}

/* Search */
.header-search .wp-block-search__button {
	padding: 8px !important;
	min-height: 40px !important;
	min-width: 40px !important;
	background: transparent !important;
	border: none !important;
	color: var(--wp--preset--color--main) !important;
	border-radius: 0 !important;
	transition: opacity 0.2s ease;
	display: flex !important;
	align-items: center;
	justify-content: center;
}

.header-search .wp-block-search__button:hover {
	opacity: 0.5;
}

.header-search .wp-block-search__button svg {
	width: 22px;
	height: 22px;
}

/* Account Icon */
.wp-block-woocommerce-customer-account {
	display: flex;
	align-items: center;
}

.wp-block-woocommerce-customer-account a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	min-width: 40px;
	color: var(--wp--preset--color--main);
	transition: opacity 0.2s ease;
	text-decoration: none;
}

.wp-block-woocommerce-customer-account a:hover {
	opacity: 0.5;
}

.wp-block-woocommerce-customer-account svg {
	width: 22px;
	height: 22px;
}

/* Mini Cart */
.wc-block-mini-cart {
	display: flex;
	align-items: center;
}

.wc-block-mini-cart__button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	min-width: 40px;
	padding: 8px !important;
	background: transparent !important;
	border: none !important;
	color: var(--wp--preset--color--main) !important;
	transition: opacity 0.2s ease;
	position: relative;
}

.wc-block-mini-cart__button:hover {
	opacity: 0.5;
}

.wc-block-mini-cart__icon {
	width: 22px;
	height: 22px;
}

.wc-block-mini-cart__badge {
	position: absolute;
	top: 2px;
	right: 2px;
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	font-size: 0.6rem !important;
	font-weight: 700 !important;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 50%;
	line-height: 16px;
	text-align: center;
}

/* -- Desktop Only: Hide hamburger -- */
@media (min-width: 783px) {
	.header-desktop-nav .wp-block-navigation__responsive-container-open {
		display: none !important;
	}
}

/* -- Mobile: Compact Header -- */
@media (max-width: 782px) {
	.header-main-inner {
		gap: 0.5rem;
	}
	
	.header-left .wp-block-site-logo img {
		height: 28px;
	}
	
	.header-center {
		flex: 0;
	}
	
	.header-desktop-nav .wp-block-navigation__responsive-container-open {
		min-height: 44px;
		min-width: 44px;
		background: transparent;
		border: none;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	
	.header-desktop-nav .wp-block-navigation__responsive-container-open svg {
		width: 22px;
		height: 22px;
		stroke: var(--wp--preset--color--main);
		fill: none;
		stroke-width: 1.5;
	}
	
	.header-right {
		gap: 0.125rem;
	}
	
	.header-right .wp-block-search__button,
	.wp-block-woocommerce-customer-account a,
	.wc-block-mini-cart__button {
		min-height: 40px;
		min-width: 40px;
	}
	
	.header-announcement p {
		font-size: 0.6rem;
		letter-spacing: 1.5px;
	}
	
	/* Mobile menu drawer */
	.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--wp--preset--color--base) !important;
	}
	
	.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 1.5rem;
	}
	
	.header-desktop-nav .wp-block-navigation__responsive-container.is-menu-open a {
		font-size: 0.9rem;
		text-transform: uppercase;
		letter-spacing: 1px;
		padding: 1em 0;
		min-height: 48px;
		display: flex;
		align-items: center;
		border-bottom: 1px solid var(--wp--preset--color--border-light);
	}
	
	.header-desktop-nav .wp-block-navigation__responsive-container-close {
		min-height: 48px;
		min-width: 48px;
		background: transparent;
		border: none;
	}
}

/* ============================================
   Shopify-Style Search Drawer
   ============================================ */

/* Search toggle button */
.nd-search-toggle {
	background: transparent;
	border: none;
	padding: 8px;
	min-height: 40px;
	min-width: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--main);
	cursor: pointer;
	transition: opacity 0.2s ease;
}

/* Search drawer overlay */
/* Search panel: expands in-flow directly beneath the header row (NOT a top overlay).
   Grid-rows animation tracks the intrinsic height exactly: no magic max-height
   (old 240px cap clipped tall content and mistimed short content). */
/* Search drawer: in-flow expanding panel under the header row.
   Fast close (150ms, barely perceptible reflow) + smooth open (300ms).
   Duration lives on each state so open/close differ. */
.nd-search-drawer {
	position: static;
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	visibility: hidden;
	background: var(--wp--preset--color--base);
	transition: grid-template-rows .15s ease-out, opacity .15s ease, visibility .15s ease;
}
.nd-search-drawer[hidden] {
	display: none;
}
.nd-search-drawer.is-open {
	grid-template-rows: 1fr;
	opacity: 1;
	visibility: visible;
	margin: 0;
	border-bottom: 0;
	transition: grid-template-rows .3s cubic-bezier(.22,.9,.3,1), opacity .25s ease, visibility .3s ease;
}
/* Grid item must be allowed to collapse to zero */
.nd-search-drawer > .nd-search-inner {
	min-height: 0;
	overflow: hidden;
	padding-bottom: 0;
}
@media (prefers-reduced-motion: reduce) {
	.nd-search-drawer {
		transition: none;
	}
}

/* Search inner container */
.nd-search-inner {
	background: var(--wp--preset--color--base);
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 18px var(--wp--preset--spacing--medium) 22px;
}

/* Search form */
.nd-search-form {
	display: flex;
	align-items: center;
	padding: 0;
}

/* Search input */
.nd-search-input {
	flex: 1;
	border: none;
	outline: none;
	font-family: var(--wp--preset--font-family--primary);
	color: var(--wp--preset--color--main);
	background: transparent;
}

.nd-search-input::placeholder {
	color: var(--wp--preset--color--secondary);
	opacity: 0.6;
}

/* Close button (size/shape come from the newer rules below) */
.nd-search-close {
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--main);
	cursor: pointer;
}

/* Mobile: full width with padding */
@media (max-width: 782px) {
	.nd-search-drawer {
		padding-top: 0;
	}
	
	.nd-search-inner {
		max-width: 100%;
	}
	
	.nd-search-input {
		font-size: 1rem;
		padding: 1rem 1.25rem;
	}
}

/* Remove old WP search styles from header */
.header-search {
	display: none !important;
}

/* ============================================
   Hide WC order attribution inputs (hidden inputs only, no visible content)
   ============================================ */
wc-order-attribution-inputs {
	display: none;
}

/* ============================================
   Mobile Header - Compact Design
   ============================================ */

@media (max-width: 782px) {
	/* Header main row */
	.header-main {
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}
	
	/* Logo - smaller */
	.header-center .wp-block-site-logo img {
		height: 28px !important;
		width: auto !important;
	}
	
	/* Mobile nav button */
	.header-mobile-nav .wp-block-navigation__responsive-container-open {
		min-height: 44px;
		min-width: 44px;
		background: transparent;
		border: none;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0;
	}
	
	.header-mobile-nav .wp-block-navigation__responsive-container-open svg {
		width: 24px;
		height: 24px;
		stroke: var(--wp--preset--color--main);
		fill: none;
		stroke-width: 1.5;
	}
	
	/* Right icons */
	.header-right {
		gap: 4px !important;
	}
	
	.header-right .nd-search-toggle,
	.wp-block-woocommerce-customer-account a,
	.wc-block-mini-cart__button {
		min-height: 44px;
		min-width: 44px;
	}
	
	/* Hide desktop nav on mobile (scoped to <nav> so inner list keeps flex) */
	nav.header-desktop-nav {
		display: none !important;
	}
}

/* Desktop: show desktop nav, hide mobile nav */
@media (min-width: 783px) {
	nav.header-mobile-nav {
		display: none !important;
	}

	nav.header-desktop-nav {
		display: block !important;
	}
	
	.header-center .wp-block-site-logo img {
		height: 36px !important;
	}
}

/* Hide WP Mail SMTP Pro ads */
.wp-mail-smtp-upgrade-license-banner,
.wp-mail-smtp-dash-widget-chart-upgrade,
#wp-mail-smtp-setting-row-license_heading,
.wp-mail-smtp-upgrade-license-banner__upgrade-btn,
a[href*="upgrade"] {
    display: none !important;
}

/* ============================================
   Header beauty pass — Glamnetic-style polish
   ============================================ */

/* --- Announcement: gradient + rotating messages --- */
.header-announcement {
	background: linear-gradient(100deg, #1E1E26 0%, #33334d 50%, #1E1E26 100%);
	background-size: 200% 100%;
	animation: ann-sheen 12s ease-in-out infinite;
	overflow: hidden;
	max-height: 60px;
	transition: max-height .35s ease, opacity .3s ease;
}
@keyframes ann-sheen {
	0%, 100% { background-position: 0% 0; }
	50% { background-position: 100% 0; }
}
.header-announcement p.ann-rotator {
	display: grid;
	justify-items: center;
}
.header-announcement .ann-msg {
	grid-area: 1 / 1;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .32s ease, transform .32s ease;
	white-space: nowrap;
}
.header-announcement .ann-msg.is-active {
	opacity: 1;
	transform: none;
}

/* --- Slim sticky header on scroll ---
   NOTE: backdrop-filter stays desktop-only. On mobile it would trap the
   fullscreen menu overlay (position:fixed) inside the header. --- */
.site-header .header-main {
	background: #fff;
	transition: box-shadow .3s ease;
}
@media (min-width: 783px) {
	.site-header .header-main {
		background: rgba(255, 255, 255, .94);
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
	}
}


/* --- Logo presence --- */
.site-header .wp-block-site-logo img {
	transition: transform .25s ease;
}
.site-header .wp-block-site-logo a:hover img {
	opacity: 1;
	transform: scale(1.07) rotate(-3deg);
}

/* --- Desktop nav: animated underline --- */
@media (min-width: 783px) {
	.site-header .header-center .wp-block-navigation__container > li.wp-block-navigation-item {
		position: relative;
	}
	.site-header .header-center .wp-block-navigation__container > li.wp-block-navigation-item::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 1px;
		height: 2px;
		border-radius: 2px;
		background: var(--wp--preset--color--primary);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform .28s ease;
		pointer-events: none;
	}
	.site-header .header-center .wp-block-navigation__container > li.wp-block-navigation-item:hover::before,
	.site-header .header-center .wp-block-navigation__container > li.wp-block-navigation-item.current-menu-item::before {
		transform: scaleX(1);
	}
	/* No hover gap on desktop dropdowns: margin-top is dead space for the pointer.
	   Horizontal margins zeroed too: Ollie's overlay compensation
	   (margin-left: spacing-medium * -1) otherwise shifts every desktop panel 32px left. */
	.site-header .header-desktop-nav .wp-block-navigation__submenu-container {
		margin-top: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
/* Mega dropdown: roomier panel */
.site-header .stn-type-mega > .wp-block-navigation__submenu-container {
	min-width: 300px;
}
}

/* Desktop navigation hover underline */
@media (min-width: 783px) {
	.site-header .header-desktop-nav ul.wp-block-navigation__container,
	.site-header nav.header-desktop-nav,
	.site-header .header-desktop-nav .wp-block-navigation__responsive-dialog,
	.site-header .header-desktop-nav div.wp-block-navigation__responsive-container {
		position: static !important;
	}
	.site-header .header-desktop-nav li.stn-type-mega {
		position: static !important;
	}
	.site-header .header-desktop-nav li.stn-type-mega::before {
		content: none !important;
	}
	.site-header .header-desktop-nav li.stn-type-mega > a.wp-block-navigation-item__content {
		position: relative;
	}
	.site-header .header-desktop-nav li.stn-type-mega > a.wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 1px;
		height: 2px;
		border-radius: 2px;
		background: var(--wp--preset--color--primary);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform .28s ease;
		pointer-events: none;
	}
	.site-header .header-desktop-nav li.stn-type-mega:hover > a.wp-block-navigation-item__content::after,
	.site-header .header-desktop-nav li.stn-type-mega.current-menu-item > a.wp-block-navigation-item__content::after {
		transform: scaleX(1);
	}
}

/* --- Dropdown polish --- */
.site-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 14px;
	background: rgba(255, 255, 255, .98);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: 0 20px 48px rgba(30, 30, 38, .14);
	padding: 10px;
}
.site-header .wp-block-navigation__submenu-container a {
	border-radius: 8px;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
.site-header .wp-block-navigation__submenu-container a:hover {
	background: var(--wp--preset--color--tertiary);
	color: var(--wp--preset--color--primary) !important;
	transform: translateX(2px);
}

/* --- Icon buttons: unified 40px circles --- */
.nd-search-toggle {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid transparent;
	color: var(--wp--preset--color--main);
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.site-header .wc-block-customer-account {
	display: inline-flex;
}
.site-header .wc-block-customer-account a,
.site-header .wc-block-mini-cart__button {
	width: 40px !important;
	height: 40px !important;
	min-height: 40px !important;
	min-width: 40px !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent !important;
	background: transparent !important;
	color: var(--wp--preset--color--main) !important;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease !important;
}
.nd-search-toggle:hover,
.site-header .wc-block-customer-account a:hover,
.site-header .wc-block-mini-cart__button:hover {
	background: var(--wp--preset--color--tertiary) !important;
	border-color: var(--wp--preset--color--border-light) !important;
	color: var(--wp--preset--color--primary) !important;
	transform: translateY(-1px);
	opacity: 1 !important;
}
.site-header .wc-block-customer-account svg,
.site-header .wc-block-mini-cart__button svg {
	width: 21px;
	height: 21px;
}
/* Cart count badge */
.site-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-weight: 700;
	border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(83, 68, 244, .45);
}

/* --- Search panel: focus ring + polish --- */
.nd-search-form {
	transition: border-color .2s ease, box-shadow .2s ease;
}
.nd-search-form:focus-within {
	border-color: var(--wp--preset--color--primary);
}
.nd-search-submit {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
	border-radius: 999px !important;
	border: none !important;
	min-height: 48px !important;
	min-width: 48px !important;
	padding: 0 !important;
	transition: transform .2s ease, background-color .2s ease !important;
}
.nd-search-submit:hover {
	opacity: 1 !important;
	background: var(--wp--preset--color--main) !important;
	transform: scale(1.05);
}
.nd-search-inner {
	border-radius: 0 0 18px 18px;
	overflow: hidden;
}

/* --- Mobile menu overlay polish --- */
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: #fff;
}

/* Mobile overlay: submenu parent buttons match link rows (mobile only — WP 7.1 nests all items in the overlay container) */
@media (max-width: 782px) {
	.site-header .wp-block-navigation__responsive-container button.wp-block-navigation-submenu__toggle {
		font-family: var(--wp--preset--font-family--primary);
		font-size: 0.9rem;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 1px;
		padding: 1em 0;
		border-bottom: 1px solid var(--wp--preset--color--border-light);
		width: 100%;
		justify-content: space-between;
		margin: 0;
	}
}

/* --- Announcement: fit small screens --- */
@media (max-width: 782px) {
	.header-announcement p.ann-rotator {
		font-size: 0.62rem !important;
		letter-spacing: 1px !important;
		padding-left: 12px;
		padding-right: 12px;
	}
	.header-announcement .ann-msg {
		white-space: normal;
	}
}

/* --- Hero mobile: stack, fluid image, calmer eyebrow --- */
@media (max-width: 782px) {
	.nd-hero .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}
	.nd-hero .wp-block-button {
		width: 100%;
	}
	.nd-hero .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
	.nd-hero figure.wp-block-image img {
		max-width: 100% !important;
		width: 100% !important;
		height: auto !important;
	}
	.nd-hero p[style*="letter-spacing:3px"] {
		letter-spacing: 2px !important;
	}
}

/* --- Mobile header: compact Glamnetic-like density --- */
@media (max-width: 782px) {
	.header-main {
		padding-top: 8px !important;
		padding-bottom: 8px !important;
	}
	.header-announcement {
		padding-top: 6px !important;
		padding-bottom: 6px !important;
	}
	.header-right {
		gap: 2px !important;
	}
	.header-left {
		gap: 6px !important;
	}
	.nd-search-toggle,
	.site-header .wc-block-customer-account a,
	.site-header .wc-block-mini-cart__button {
		width: 40px !important;
		height: 40px !important;
		min-height: 40px !important;
		min-width: 40px !important;
	}
	.site-header .wc-block-site-logo img {
		width: 32px !important;
		height: auto !important;
	}
}

/* Overlay submenu toggles: real 44px chevron buttons (mobile only) */
@media (max-width: 782px) {
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content button.wp-block-navigation__submenu-icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		min-width: 44px;
		height: 44px;
		background: transparent;
		border: none;
		cursor: pointer;
		color: inherit;
		flex-shrink: 0;
	}
	.site-header .wp-block-navigation__responsive-container button.wp-block-navigation__submenu-icon svg {
		display: none;
	}
	.site-header .wp-block-navigation__responsive-container button.wp-block-navigation__submenu-icon::after {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		transition: transform .25s ease;
	}
	.site-header .wp-block-navigation__responsive-container button.wp-block-navigation__submenu-icon[aria-expanded="true"]::after {
		transform: rotate(225deg);
	}
	/* Mobile overlay renders BOTH button.submenu__toggle::after (middle, next to
	   label) AND span.submenu-icon (far right). Keep #2 (far right), drop #1. */
	.site-header .wp-block-navigation__responsive-container.is-menu-open button.wp-block-navigation-submenu__toggle::after,
	.site-header button.wp-block-navigation-item__content.wp-block-navigation-submenu__toggle::after {
		content: none !important;
		display: none !important;
		width: 0 !important;
		height: 0 !important;
		border: none !important;
	}
}

/* --- Header flush stack + roomier logo, tighter gutters --- */
.site-header,
header.site-header {
	--wp--style--block-gap: 0px;
}
.site-header .header-announcement,
.site-header .header-main {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}
/* Desktop wordmark presence (explicit size: SVG has huge mm intrinsics) */
.header-left .wp-block-site-logo img,
.header-center .wp-block-site-logo img,
.site-header .wp-block-site-logo img {
	width: 120px !important;
	max-width: 120px !important;
	height: auto !important;
}
@media (max-width: 782px) {
	/* Narrow side gutters on phones */
	.header-main {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}
	/* Bigger wordmark on phones */
	.site-header .wp-block-site-logo img {
		width: 104px !important;
		height: auto !important;
	}
}

/* --- Search panel editorial restyle: single underline, no stacked frames --- */
.nd-search-form {
	border-bottom: none;
	gap: 12px;
}
.nd-search-drawer form.nd-search-form input.nd-search-input {
	border: none;
	border-bottom: 2px solid var(--wp--preset--color--border-light);
	border-radius: 0;
	padding: 14px 4px;
	font-size: 1.05rem;
	background: transparent;
	box-shadow: none;
}
.nd-search-drawer form.nd-search-form input.nd-search-input:focus {
	border-bottom-color: var(--wp--preset--color--primary);
	outline: none;
	box-shadow: none;
}
.nd-search-close {
	border-radius: 999px;
	min-height: 44px;
	min-width: 44px;
	padding: 0;
	border: none;
}
.nd-search-close:hover {
	background: var(--wp--preset--color--tertiary);
	opacity: 1;
}

/* --- Mobile fullscreen menu + refined accordion --- */
@keyframes nd-submenu-in {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}
@media (max-width: 782px) {
	/* Fullscreen panel, not a side drawer */
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		width: 100% !important;
		max-width: 100% !important;
		border-right: none !important;
		padding: 0 !important;
	}
	/* Top-level rows */
	.site-header .is-menu-open .wp-block-navigation__container > li > a,
	.site-header .is-menu-open .wp-block-navigation__container > li > button,
	.site-header .is-menu-open .wp-block-navigation__container > li > div > button {
		font-size: 1rem !important;
		letter-spacing: 1.5px !important;
	}
	/* Submenu panels: flat, flush, fade-in on open */
	.site-header .is-menu-open .wp-block-navigation__submenu-container {
		border: none !important;
		box-shadow: none !important;
		border-radius: 0 !important;
		background: transparent !important;
		padding: 2px 0 14px !important;
		min-width: 0 !important;
		animation: nd-submenu-in .28s ease;
	}
	/* Child links: sentence case, indented, accent rail */
	.site-header .is-menu-open .wp-block-navigation__submenu-container a {
		border-bottom: none !important;
		text-transform: none !important;
		font-size: 0.95rem !important;
		letter-spacing: 0.2px !important;
		font-weight: 400 !important;
		padding: 0.6em 0 0.6em 14px !important;
		margin-left: 2px;
		border-left: 2px solid var(--wp--preset--color--border-light) !important;
		color: var(--wp--preset--color--secondary) !important;
	}
	.site-header .is-menu-open .wp-block-navigation__submenu-container a:hover {
		color: var(--wp--preset--color--primary) !important;
		border-left-color: var(--wp--preset--color--primary) !important;
	}
	/* Grandchildren indent one more level */
	.site-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container a {
		padding-left: 28px !important;
	}
}

/* --- Mobile fullscreen menu: single source of truth --- */
.nd-mobile-menu-footer {
	display: none;
}
@media (max-width: 782px) {
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		inset: 0 !important;
		background: var(--wp--preset--color--base) !important;
	}
	/* Scrim is painted by the panel itself: structurally below panel content, above the page.
	   (A body-level element can never sit between them: .site-header is sticky+z-index,
	   so it caps everything inside into its own stacking context.) */
	@keyframes nd-scrim-in {
		from { opacity: 0; }
	}
	.site-header .wp-block-navigation__responsive-container.is-menu-open::before {
		content: '';
		position: fixed;
		inset: 0;
		background: rgba(0,0,0,.45);
		z-index: -1;
		animation: nd-scrim-in .25s ease;
	}
	.site-header .wp-block-navigation__responsive-container.is-menu-open::after {
		content: none !important;
	}
	.site-header .is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 64px 20px 32px !important;
		padding-bottom: 24px !important;
		padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
		max-width: 560px;
		margin: 0 auto;
		width: 100%;
		display: flex;
		flex-direction: column;
	}
	/* Uniform 56px rows, dividers strictly inside the panel */
	.site-header .is-menu-open .wp-block-navigation__container > li > a,
	.site-header .is-menu-open .wp-block-navigation__container > li > button.wp-block-navigation-submenu__toggle {
		min-height: 56px !important;
		display: flex !important;
		align-items: center !important;
		width: 100% !important;
	}
	/* Chevron toggles: real 44px targets pinned right with breathing room */
	.site-header .is-menu-open button.wp-block-navigation__submenu-icon,
	.site-header .is-menu-open button.wp-block-navigation-submenu__toggle {
		min-height: 44px !important;
	}
	.site-header .is-menu-open button.wp-block-navigation__submenu-icon {
		min-width: 44px !important;
		margin-left: auto !important;
		flex-shrink: 0 !important;
	}
	/* Top-level parent rows: a + toggle + submenu are siblings — flex pins chevron right */
	.site-header .is-menu-open .wp-block-navigation__container > li.has-child {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		border-bottom: 1px solid var(--wp--preset--color--border-light);
	}
	.site-header .is-menu-open .wp-block-navigation__container > li.has-child > a.wp-block-navigation-item__content {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0 !important;
		border-bottom: none !important;
	}
	.site-header .is-menu-open .wp-block-navigation__container > li.has-child > button.wp-block-navigation__submenu-icon {
		position: static !important;
		width: auto !important;
		margin-left: auto !important;
		flex-shrink: 0 !important;
		align-self: center !important;
	}
	.site-header .is-menu-open .wp-block-navigation__container > li.has-child > ul.wp-block-navigation__submenu-container {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
	/* Close button lives inside the panel, above content */
	.site-header .wp-block-navigation__responsive-container-close {
		top: 12px !important;
		right: 20px !important;
		z-index: 2;
		color: var(--wp--preset--color--main);
	}
	/* Injected footer fills the dead space below the links */
	.site-header .is-menu-open .nd-mobile-menu-footer {
		display: block;
		margin-top: auto;
		padding: 22px 0 8px;
		text-align: center;
	}
	.site-header .is-menu-open .nd-mobile-menu-footer .wp-block-buttons {
		margin: 0;
	}
	.site-header .is-menu-open .nd-mobile-menu-footer .wp-block-button {
		width: 100%;
		margin: 0;
	}
	.site-header .is-menu-open .nd-mobile-menu-footer .wp-block-button__link {
		display: block;
		width: 100%;
		box-sizing: border-box;
		background: var(--wp--preset--color--primary) !important;
		color: #fff !important;
		border: none !important;
		border-bottom: none !important;
		border-radius: 4px;
		padding: 0.95em 1em !important;
		font-size: 0.85rem !important;
		font-weight: 600 !important;
		letter-spacing: 1px !important;
		text-transform: uppercase !important;
		text-decoration: none !important;
		min-height: 0 !important;
		text-align: center;
	}
	.nd-mobile-menu-utils {
		margin-top: 16px;
		text-align: center;
	}
	.nd-mobile-menu-utils a {
		border-bottom: none !important;
		padding: 0.4em 0 !important;
		min-height: 0 !important;
		font-size: 0.8rem !important;
		color: var(--wp--preset--color--secondary) !important;
		text-transform: none !important;
		letter-spacing: 0.2px !important;
	}
	/* Override the overlay's display:flex on links: utils must flow in one centered row */
	.site-header .is-menu-open .nd-mobile-menu-footer .nd-mobile-menu-utils a {
		display: inline !important;
	}
	.site-header .is-menu-open .nd-mobile-menu-footer .nd-mobile-menu-promo {
		text-align: center !important;
	}
	/* Footer links must never inherit the overlay row dividers (higher specificity wins) */
	.site-header .is-menu-open .nd-mobile-menu-footer a {
		border-bottom: none !important;
	}
	.nd-mobile-menu-utils span {
		color: var(--wp--preset--color--border-light);
	}
	.nd-mobile-menu-promo {
		margin-top: 14px;
		font-size: 0.75rem;
		letter-spacing: 0.5px;
		color: var(--wp--preset--color--secondary);
	}
}

/* --- Mobile left drawer (mirrors the right-side cart drawer) --- */
@media (max-width: 782px) {
	@keyframes nd-drawer-in {
		from { transform: translateX(-102%); }
		to { transform: translateX(0); }
	}
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		inset: 0 auto 0 0 !important;
		width: min(400px, 88vw) !important;
		max-width: 400px !important;
		height: auto !important;
		background: transparent !important;
		z-index: 100001 !important;
		animation: nd-drawer-in .32s cubic-bezier(.32,.72,0,1);
	}
	/* White panel face lives on the content box so the ::before scrim
	   can only darken the area OUTSIDE the drawer (negative-z children
	   always paint above their root's own background). */
	.site-header .is-menu-open .wp-block-navigation__responsive-container-content {
		height: 100%;
		min-height: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		overflow-y: auto;
		background: var(--wp--preset--color--base);
		border-right: 1px solid var(--wp--preset--color--border-light);
		box-shadow: 24px 0 48px rgba(0,0,0,.18);
	}
}

/* --- Newsletter CF7 form (dark section) --- */
.nd-newsletter-form {
	max-width: 560px;
	margin: var(--wp--preset--spacing--medium) auto 0;
}
.nd-newsletter-row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
/* CF7 autop wraps the controls in a <p>; make it the real flex row. */
.nd-newsletter-row > p {
	display: flex;
	gap: inherit;
	align-items: flex-start;
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}
.nd-newsletter-row .wpcf7-form-control-wrap {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-width: 0;
	position: relative;
}
.nd-newsletter-row .wpcf7-not-valid-tip {
	position: static;
	font-size: 0.78rem;
	color: #dc2626;
	background: transparent;
	border: none;
	padding: 6px 0 0;
	margin: 0;
	line-height: 1.3;
	white-space: normal;
}
.nd-newsletter-row .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
}
.nd-newsletter-row .wpcf7-form-control-wrap:has(.wpcf7-not-valid-tip) {
	padding-bottom: 22px;
}
.nd-newsletter-row .nd-newsletter-submit,
.nd-newsletter-row input[type="submit"] {
	align-self: flex-start;
}
.nd-newsletter-row input.wpcf7-not-valid {
	border-color: #dc2626 !important;
}
.nd-newsletter-row input[type="email"] {
	width: 100%;
    padding: 0.6em;
    border-radius: 0;
	border: 1px solid rgb(0 0 0 / 25%);
	background: rgba(255,255,255,.08);
	color: #333;
	font-size: 0.95rem;
	outline: none;
}
.nd-newsletter-row input[type="email"]::placeholder {
	color: #222;
}
.nd-newsletter-row input[type="email"]:focus {
	border-color: var(--wp--preset--color--primary-alt);
	background: rgba(255,255,255,.12);
}
.nd-newsletter-row .nd-newsletter-submit,
.nd-newsletter-row input[type="submit"] {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border: none;
	padding: 0.9em 1.6em;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	white-space: nowrap;
	transition: transform .2s ease, background-color .2s ease;
}
.nd-newsletter-row .nd-newsletter-submit:hover,
.nd-newsletter-row input[type="submit"]:hover {
	background: var(--wp--preset--color--main);
	transform: translateY(-1px);
}
/* CF7 spinner: hidden until the form is actually submitting. */
.nd-newsletter-row .wpcf7-spinner {
	display: none;
	width: 24px;
	height: 24px;
	margin: 0;
	align-self: center;
	flex: 0 0 auto;
}
form.submitting .nd-newsletter-row .wpcf7-spinner {
	display: block;
	visibility: visible;
}
.nd-newsletter-form .wpcf7-response-output:empty,
.nd-newsletter-form .wpcf7-response-output[style*="display: none"] {
	display: none !important;
	padding: 0 !important;
	border: none !important;
	margin: 0 !important;
}
.nd-newsletter-form .wpcf7-response-output {
	margin: 16px 0 0;
	text-align: center;
	border-radius: 0;
	color: #333;
	padding: 14px 20px;
	font-size: 0.92rem;
	line-height: 1.5;
	border: 0px solid transparent;
	background: #f8f7fc;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	animation: nd-fade-in .3s ease;
}
.nd-newsletter-form .wpcf7-response-output:empty {
	display: none !important;
}
.nd-newsletter-form .wpcf7-response-output.wpcf7-mail-sent-ok,
.nd-newsletter-form form.sent .wpcf7-response-output {
	border-color: #16a34a;
	background: #f0fdf4;
	color: #14532d;
}
.nd-newsletter-form form.sent .wpcf7-response-output::before {
	content: "";
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	background: no-repeat center / 18px 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}
.nd-newsletter-form .wpcf7-response-output.wpcf7-validation-errors,
.nd-newsletter-form form.invalid .wpcf7-response-output {
	border-color: #f59e0b;
	background: #fffbeb;
	color: #92400e;
}
.nd-newsletter-form .wpcf7-response-output.wpcf7-mail-sent-ng,
.nd-newsletter-form form.failed .wpcf7-response-output,
.nd-newsletter-form form.aborted .wpcf7-response-output {
	border-color: #dc2626;
	background: #fef2f2;
	color: #991b1b;
}
@keyframes nd-fade-in {
	from { opacity: 0; transform: translateY(4px); }
	to { opacity: 1; transform: translateY(0); }
}
/* Light-surface usage (e.g. Circle page): dark text, visible border. */
body.page-id-1180 .nd-newsletter-row input[type="email"] {
	border: 1px solid var(--wp--preset--color--border-light);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
}
body.page-id-1180 .nd-newsletter-row input[type="email"]::placeholder {
	color: var(--wp--preset--color--secondary);
}
body.page-id-1180 .nd-newsletter-form .wpcf7-response-output {
	color: var(--wp--preset--color--main);
}
@media (max-width: 600px) {
	/* Keep email + button on one row (Glamnetic-style); tighten instead of stacking. */
	.nd-newsletter-row {
		gap: 8px;
	}
	.nd-newsletter-row .nd-newsletter-submit,
	.nd-newsletter-row input[type="submit"] {
		padding: 0.8em 1.2em;
	}
}

/* --- Custom footer --- */
.nd-footer {
	border-top: 1px solid var(--wp--preset--color--border-light);
}
/* Footer logo: site-logo width attr gets stripped at render, cap it here */
.site-footer .wp-block-site-logo img {
	width: 150px;
	height: auto;
}
.nd-footer-heading {
	margin-bottom: 0.25rem;
}
/* Footer columns: brand left, link columns spread to fill, flush both edges */
.nd-footer-cols {
	justify-content: space-between;
}
.nd-footer-nav a {
	text-decoration: none;
	color: var(--wp--preset--color--secondary);
	font-size: 0.9rem;
	padding: 0.3em 0;
	transition: color 0.18s ease, transform 0.18s ease;
	display: inline-block;
}
.nd-footer-nav a:hover {
	color: var(--wp--preset--color--primary);
	transform: translateX(2px);
}
.nd-footer-bottom {
	border-top: 1px solid var(--wp--preset--color--border-light);
	margin-top: var(--wp--preset--spacing--medium);
	padding-top: var(--wp--preset--spacing--small);
	align-items: center;
	row-gap: 12px;
}
.nd-footer-bottom p {
	margin: 0;
}
.nd-footer-bottom a {
	color: var(--wp--preset--color--secondary);
	text-decoration: none;
}
.nd-footer-bottom a:hover {
	color: var(--wp--preset--color--primary);
}
.nd-pay-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.nd-pay-badges svg {
	display: block;
	height: 20px;
	width: auto;
}
.nd-pay-credit {
	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: 782px) {
	.nd-footer-bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* --- Hero rhythm: tighter section, even breathing, softer image (desktop) --- */
@media (min-width: 783px) {
	.nd-hero {
		padding-top: var(--wp--preset--spacing--medium) !important;
		padding-bottom: var(--wp--preset--spacing--medium) !important;
	}
	.nd-hero p:first-of-type {
		margin-bottom: 14px;
	}
	.nd-hero h1 {
		margin-top: 0;
		margin-bottom: 18px;
	}
	.nd-hero figure.wp-block-image img {
		height: 420px !important;
		border-radius: 16px !important;
	}
}

/* --- Hero B: aligned columns, rhythmic spacing --- */
.nd-hero-row {
	gap: var(--wp--preset--spacing--large);
}
/* 2: force Mona Sans for hero title, override global Fraunces serif */
.nd-hero .nd-hero-title {
	font-family: var(--wp--preset--font-family--primary) !important;
	letter-spacing: -0.02em !important;
}
/* 3: eyebrow contrast on dark background (#DEC9FF on #1E1E26) */
.nd-hero .nd-eyebrow {
	color: var(--wp--preset--color--primary-alt) !important;
}
.nd-hero .nd-hero-media img {
	box-shadow: 0 24px 48px rgba(0,0,0,.35);
}
/* 6: description natural wrap, no hard <br> */
.nd-hero-desc {
	opacity: .88;
	max-width: 46ch;
}
/* 4: outline button readable + hover feedback */
.nd-hero .nd-hero-outline .wp-block-button__link {
	border-width: 1px !important;
	transition: border-color .2s ease, background .2s ease;
}
.nd-hero .nd-hero-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--primary-alt) !important;
	color: var(--wp--preset--color--primary-alt) !important;
}
/* 5: tablet - prevent squeeze between 783-1100px, stack gracefully */
@media (max-width: 1024px) and (min-width: 783px) {
	.nd-hero-row {
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: var(--wp--preset--spacing--medium);
	}
	.nd-hero .nd-hero-media {
		flex-basis: 100%;
		max-width: 560px;
	}
	.nd-hero .nd-hero-media img {
		width: 100% !important;
		height: 420px !important;
		object-fit: cover;
	}
}
@media (max-width: 782px) {
	.nd-hero-row {
		gap: var(--wp--preset--spacing--medium);
	}
	.nd-hero .nd-hero-media {
		width: 100%;
	}
	.nd-hero .nd-hero-media img {
		width: 100% !important;
		height: auto !important;
		max-width: 100% !important;
	}
}

/* --- Home category tiles: horizontal snap scroll on mobile --- */
@media (max-width: 782px) {
	.nd-cat-tiles {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		padding-bottom: 8px;
	}
	.nd-cat-tiles::-webkit-scrollbar {
		display: none;
	}
	.nd-cat-tiles > .wp-block-column {
		flex: 0 0 78% !important;
		max-width: 78%;
		scroll-snap-align: start;
		position: relative;
	}
	.nd-cat-tiles .wp-block-image img {
		height: 210px !important;
	}
	/* Stretched link: whole tile tappable, hide the button chrome. */
	.nd-cat-tiles .wp-block-buttons {
		position: static;
		width: auto !important;
		flex-direction: row !important;
		margin-top: 0 !important;
	}
	.nd-cat-tiles .wp-block-button {
		position: static;
		width: auto !important;
	}
	.nd-cat-tiles .wp-block-buttons .wp-block-button__link {
		position: absolute;
		inset: 0;
		width: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
		font-size: 0 !important;
		background: transparent !important;
		border: none !important;
		color: transparent !important;
	}
}


/* ============================================
   Checkout Header Enhancement
   ============================================ */

/* Checkout progress bar */
.nd-checkout-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 10px 20px;
    background: var(--wp--preset--color--base);
    border-bottom: 1px solid var(--wp--preset--color--border-light);
}

.nd-checkout-progress-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--wp--preset--color--secondary);
    letter-spacing: 0.3px;
    text-transform: uppercase;
    white-space: nowrap;
}

.nd-checkout-progress-item.is-active {
    color: var(--wp--preset--color--main);
}

.nd-checkout-progress-item.is-done {
    color: var(--wp--preset--color--main);
}

.nd-checkout-progress-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 700;
    border: 1.5px solid var(--wp--preset--color--border-light);
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--secondary);
    flex-shrink: 0;
}

.nd-checkout-progress-item.is-active .nd-checkout-progress-num {
    border-color: var(--wp--preset--color--main);
    background: var(--wp--preset--color--main);
    color: var(--wp--preset--color--base);
}

.nd-checkout-progress-item.is-done .nd-checkout-progress-num {
    border-color: var(--wp--preset--color--main);
    background: var(--wp--preset--color--main);
    color: var(--wp--preset--color--base);
}

.nd-checkout-progress-arrow {
    display: inline-block;
    width: 24px;
    height: 1.5px;
    background: var(--wp--preset--color--border-light);
    margin: 0 8px;
}

/* Secure pill hover */
.nd-secure-pill {
    transition: border-color 0.2s ease, color 0.2s ease;
}

.nd-secure-pill:hover {
    border-color: var(--wp--preset--color--main);
    color: var(--wp--preset--color--main);
}

/* Back link hover arrow */
.nd-back-cart {
    transition: color 0.2s ease, gap 0.2s ease;
}

.nd-back-cart:hover {
    gap: 8px;
}

/* Mobile: hide progress labels, show compact dots */
@media (max-width: 600px) {
    .nd-checkout-progress {
        gap: 4px;
        padding: 8px 12px;
    }
    .nd-checkout-progress-item {
        font-size: 0;
        gap: 0;
    }
    .nd-checkout-progress-item .nd-checkout-progress-num {
        width: 18px;
        height: 18px;
        font-size: 0.65rem;
    }
    .nd-checkout-progress-arrow {
        width: 16px;
        margin: 0 4px;
    }
}

/* Checkout header: ensure sticky works above everything */
.nd-checkout-header {
	z-index: 100;
}

/* ============================================
   Checkout Order summary sticky (desktop only)
   左侧表单滚动时，右侧 Order summary 跟随吸顶
   ============================================ */
@media (min-width: 782px) {
	/* 行高拉满(stretch)保证分割线顶天立地；右侧靠自身
	   align-self: flex-start 实现吸顶，不受影响 */
	.wc-block-components-sidebar-layout {
		align-items: stretch;
		margin-bottom: 0;
	}
	.wp-block-woocommerce-checkout-totals-block,
	.wc-block-checkout__sidebar {
		position: sticky;
		top: 24px;
		align-self: flex-start;
		z-index: 1;
	}
	/* 原分割线画在左侧栏 border-right 上，高度只能跟左栏内容走；
	   改为行容器的伪元素，直达整行顶部和底部 */
	body .wc-block-components-sidebar-layout .wc-block-components-main {
		border-right: none;
	}
	.wc-block-components-sidebar-layout::after {
		content: "";
		position: absolute;
		top: calc(-1 * var(--wp--preset--spacing--40, 40px));
		bottom: calc(-1 * var(--wp--preset--spacing--40, 40px));
		left: 65%;
		width: 1px;
		background: hsla(0, 0%, 7%, 0.11);
		pointer-events: none;
	}
}
@media (max-width: 781px) {
	.wp-block-woocommerce-checkout-totals-block,
	.wc-block-checkout__sidebar {
		position: static;
		max-height: none;
		overflow: visible;
	}
}

/* Free-shipping progress inside the Totals sidebar: full-width of the
   narrow column, smaller text, tight spacing so it reads as one card. */
.wp-block-woocommerce-checkout-totals-block .nd-free-shipping-progress {
	--nd-free-shipping-max-width: 100%;
	--nd-free-shipping-text-size: 15px;
	--nd-free-shipping-bar-height: 10px;
	--nd-free-shipping-content-gap: 10px;
	margin-bottom: var(--wp--preset--spacing--small);
}

/* ============================================
   Checkout — 修复问题
   1) 手机版 Order summary 重复：Woo 在手机会渲染 fill-wrapper 副本，隐藏它只保留顶部可折叠版
   2) Express Checkout 文字被裁：标题 absolute 悬在边框上，父容器 overflow 裁剪导致上半截消失
   ============================================ */
@media (max-width: 781px) {
	.checkout-order-summary-block-fill-wrapper {
		display: none !important;
	}
}
@container (max-width: 699px) {
	.checkout-order-summary-block-fill-wrapper {
		display: none !important;
	}
}
/* Express Checkout 标题被裁修复（与 woocommerce.css 同步，style.css 后加载确保覆盖） */
.wc-block-components-express-payment--checkout {
	overflow: visible !important;
	padding-top: 6px;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
	top: 10px !important;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__content {
	margin-top: 14px !important;
	padding-top: 24px !important;
}
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title {
	background: var(--wp--preset--color--base);
	padding: 0 12px !important;
	line-height: 1.2 !important;
	white-space: nowrap;
}

/* --- Contact page (page-id-1169) — scoped, theme-matched --- */
body.page-id-1169 main .wpcf7 {
	max-width: 760px;
	margin: 12px auto 0;
	background: var(--wp--preset--color--base);
	border: none;
	border-radius: 16px;
	padding: 28px;
	box-shadow: none;
}
body.page-id-1169 main .wpcf7 form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 20px;
}
body.page-id-1169 main .wpcf7 form > div[style*="display: none"] { display: none !important; }
body.page-id-1169 main .wpcf7 form > p {
	margin: 0;
}
body.page-id-1169 main .wpcf7 form > p:nth-of-type(3),
body.page-id-1169 main .wpcf7 form > p:nth-of-type(4),
body.page-id-1169 main .wpcf7 form > p:last-of-type,
body.page-id-1169 main .wpcf7 .wpcf7-response-output {
	grid-column: 1 / -1;
}
body.page-id-1169 main .wpcf7 label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--wp--preset--color--main);
	margin: 0;
}
body.page-id-1169 main .wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}
body.page-id-1169 main .wpcf7 input[type="text"],
body.page-id-1169 main .wpcf7 input[type="email"],
body.page-id-1169 main .wpcf7 textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
	font-size: 0.95rem;
	line-height: 1.5;
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
	box-sizing: border-box;
}
body.page-id-1169 main .wpcf7 textarea {
	min-height: 160px;
	resize: vertical;
}
body.page-id-1169 main .wpcf7 input[type="text"]:focus,
body.page-id-1169 main .wpcf7 input[type="email"]:focus,
body.page-id-1169 main .wpcf7 textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(83,68,244,.12);
	background: var(--wp--preset--color--base);
}
body.page-id-1169 main .wpcf7 input.wpcf7-not-valid,
body.page-id-1169 main .wpcf7 textarea.wpcf7-not-valid {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px rgba(220,38,38,.1);
}
body.page-id-1169 main .wpcf7 .wpcf7-not-valid-tip {
	font-size: 0.78rem;
	color: #dc2626;
	margin-top: 6px;
}
body.page-id-1169 main .wpcf7 input[type="submit"] {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border: none;
	border-radius: 10px;
	padding: 12px 22px;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
	box-shadow: 0 4px 14px rgba(83,68,244,.22);
}
body.page-id-1169 main .wpcf7 input[type="submit"]:hover {
	background: var(--wp--preset--color--main);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(20,17,31,.16);
}
body.page-id-1169 main .wpcf7 .wpcf7-spinner {
	margin-left: 8px;
	vertical-align: middle;
}
body.page-id-1169 main .wpcf7 .wpcf7-response-output {
	margin-top: 4px;
	border-radius: 10px;
	font-size: 0.9rem;
}
@media (max-width: 600px) {
	body.page-id-1169 main .wpcf7 {
		padding: 20px;
		border-radius: 14px;
	}
	body.page-id-1169 main .wpcf7 form {
		grid-template-columns: 1fr;
	}
}
/* Halloween icon: use the icon set in the Navigation block (pumpkin).
   Do NOT add a second icon via CSS ::before — it renders on both sides. */
