/* ==========================================================================
   Naimals — brand polish for WoodMart + WPBakery.
   Fonts, colours, buttons and backgrounds are set in Theme Settings; layout and
   content are WPBakery elements; the hero is a WoodMart Slider. This file only
   adds small finishing touches, mostly through "Extra class name" hooks (nm-*).
   ========================================================================== */

:root {
	--nm-cream: #f6f1e8;
	--nm-linen: #faf6ed;
	--nm-sage: #e3e9dc;
	--nm-line: #e6ddce;
	--nm-forest: #1f3329;
	--nm-forest-2: #2c4638;
	--nm-lily: #b3261e;
	--nm-ease: cubic-bezier(.22, .61, .36, 1);
}

body.naimals,
.naimals .wd-page-wrapper { background-color: var(--nm-cream); }
.naimals .wd-page-wrapper { overflow-x: clip; }
.naimals.page .wd-sidebar-opener { display: none; }
.naimals.home .wd-page-content,
.naimals .wd-page-content:has(.nm-page-hero) { padding-top: 0; }
.naimals .wd-content-layout:has(.nm-hero-slider),
.naimals .wd-content-layout:has(.nm-page-hero) { padding-top: 0; }

/* ---------- Header --------------------------------------------------------- */
.naimals .whb-general-header,
.naimals .whb-header-bottom { background-color: var(--nm-cream); }
.nm-topbar { display: block; width: 100%; text-align: center; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #e9efe4; }
.nm-topbar em { font-family: var(--wd-title-font); font-size: 15px; letter-spacing: .02em; text-transform: none; color: #fff; }
.naimals .whb-top-bar .wd-header-text { width: 100%; }
.naimals .whb-header-bottom .wd-nav-main > li > a { letter-spacing: .16em; padding-inline: 18px; }
.naimals .wd-nav.wd-style-underline .nav-link-text:after { background-color: var(--nm-lily); height: 1px; }
.naimals .whb-general-header .wd-search-form { max-width: 280px; }
/* Count badges only (wishlist / cart icons, mobile toolbar) — never the text counters. */
.naimals .wd-tools-icon > .wd-tools-count { background-color: var(--nm-lily); color: #fff; }
.naimals .whb-general-header .wd-tools-element > a { transition: color .25s; }
.naimals .whb-general-header .wd-tools-element:hover > a { color: var(--nm-forest-2); }

/* ---------- Headings (WoodMart Title element with class nm-heading) -------- */
.title-wrapper.nm-heading .title-subtitle {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
	font-family: var(--wd-text-font);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nm-forest-2);
}
.title-wrapper.nm-heading .title-subtitle::before,
.nm-heading.text-center .title-subtitle::after { content: ""; width: 26px; height: 1px; background: var(--nm-lily); }
.title-wrapper.nm-heading--light .title-subtitle { color: #c9d6c3; }
.nm-heading--light u { color: #f0c96d; }
.nm-heading .woodmart-title-container { letter-spacing: -.01em; }
.naimals :is(.wd-underline-colored, .wd-underline-colored-alt) u { font-style: italic; text-decoration: none; }
.nm-heading .title-after_title { margin-top: 18px; font-size: 18px; line-height: 1.7; max-width: 540px; color: inherit; }
.nm-heading.text-center .title-after_title { margin-inline: auto; }

/* ---------- Hero slider (WoodMart Slider "Naimals Hero") ------------------- */
.nm-hero-slider .wd-slide .wd-slide-container { padding-inline: 15px; }
.nm-slide-text .wd-button-wrapper { margin: 0 12px 12px 0; }
.nm-slide-media .wd-image { text-align: center; }
.nm-slide-media .wd-image img { width: 100%; height: auto; }
/* Product shots sit on near-white: multiply melts the photo edge into the slide background. */
.nm-slide-media .wd-image:not(.nm-arch) img { mix-blend-mode: multiply; }
.nm-arch img {
	width: 100%;
	max-width: 540px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 999px 999px 28px 28px;
	box-shadow: 0 40px 80px -40px rgba(31, 51, 41, .45);
}
.nm-slide-media .nm-arch--slide img { max-width: 400px; }
.nm-arch--about img { max-width: 480px; }

/* ---------- Marquee ------------------------------------------------------- */
.nm-marquee-row .wd-marquee { font-family: var(--wd-title-font); }

/* ---------- Category banners ---------------------------------------------- */
.nm-cat-banner .banner-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 30, 24, 0) 40%, rgba(20, 30, 24, .72) 100%);
	pointer-events: none;
	transition: opacity .5s var(--nm-ease);
}
.nm-cat-banner:hover .banner-image::after { opacity: .85; }
.nm-cat-banner .banner-image img { width: 100%; height: 100%; object-fit: cover; }
.nm-cat-banner .wrapper-content-banner { padding: clamp(20px, 2.5vw, 32px); }
.nm-cat-banner .content-banner { display: flex; flex-direction: column; transition: transform .5s var(--nm-ease); }
.nm-cat-banner:hover .content-banner { transform: translateY(-6px); }
.nm-cat-banner .banner-title { order: 1; }
.nm-cat-banner .banner-subtitle { order: 2; margin-top: 4px; font-size: 14px; }
.nm-cat-banner :is(.banner-btn-wrapper, .wd-button-wrapper) { order: 3; margin-top: 14px; }
.nm-head-link .wd-button-wrapper { text-align: right; }

/* ---------- Cards (Info box with class nm-card): links pinned to bottom ---- */
.wd-info-box.nm-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: transform .4s var(--nm-ease), box-shadow .4s var(--nm-ease);
}
.wd-info-box.nm-card:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -36px rgba(31, 51, 41, .45); }
.nm-card .info-box-content { display: flex; flex-direction: column; flex: 1 1 auto; }
.nm-card .info-box-inner { flex: 1 1 auto; }
.nm-card .info-btn-wrapper { margin-top: auto; padding-top: 18px; }
.nm-card .info-btn-wrapper .btn { white-space: nowrap; }
.nm-card .box-with-text { font-family: var(--wd-title-font); font-style: italic; font-size: 20px; transition: transform .5s var(--nm-ease); }
.nm-card:hover .box-icon-wrapper { transform: rotate(-8deg) scale(1.06); }
.nm-card .box-icon-wrapper { transition: transform .5s var(--nm-ease); }
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper,
.vc_row-o-equal-height .info-box-wrapper:has(.nm-card) { height: 100%; }
.nm-contact-email a { font-family: var(--wd-title-font); font-size: clamp(19px, 2.4vw, 30px); color: var(--wd-title-color); overflow-wrap: anywhere; }

/* ---------- Images & bands ------------------------------------------------- */
.nm-shadow img { box-shadow: 0 40px 80px -48px rgba(31, 51, 41, .5); }
.nm-fill,
.nm-fill img { width: 100%; display: block; }
.nm-story-media .wd-image { overflow: hidden; border-radius: 28px; width: 100%; }
.nm-story-media .wd-image img { width: 100%; height: auto; }
.nm-story-media .wd-image img { transition: transform 1.2s var(--nm-ease); }
.nm-story-media:hover .wd-image img { transform: scale(1.04); }
.nm-band-media .wd-image,
.nm-band-media img { width: 100%; display: block; }
.naimals .wd-images-gallery .wd-gallery-item { overflow: hidden; border-radius: 16px; }
.naimals .wd-images-gallery .wd-gallery-item img { transition: transform .8s var(--nm-ease); }
.naimals .wd-images-gallery .wd-gallery-item:hover img { transform: scale(1.06); }

/* ---------- Promises ------------------------------------------------------ */
.nm-promise li { line-height: 1.5; }
.nm-promise strong { color: var(--wd-title-color); font-weight: 500; }
.nm-promise a { text-decoration: underline; text-underline-offset: 3px; word-break: break-all; }

/* ---------- Products ------------------------------------------------------ */
.naimals .wd-product .product-element-top { border-radius: 18px; overflow: hidden; background: var(--nm-linen); }
.naimals .wd-product .wd-entities-title { font-size: 21px; line-height: 1.15; margin-top: 14px; }
.naimals .wd-product .wd-product-cats { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.naimals .wd-product .price { font-weight: 500; }
.naimals .product-label.featured { background: var(--nm-forest); }
.naimals .single-product-page .summary .price { font-family: var(--wd-title-font); font-size: 30px; }
.naimals .woocommerce-Tabs-panel .nm-tagline { font-family: var(--wd-title-font); font-style: italic; font-size: 24px; color: var(--nm-forest-2); }

/* ---------- Page title bar ------------------------------------------------- */
.naimals .wd-page-title { background-image: radial-gradient(120% 140% at 100% 0%, rgba(143, 166, 138, .35) 0%, transparent 55%); }
.naimals .wd-page-title .title { font-size: clamp(38px, 5vw, 60px); font-weight: 500; }

/* ---------- Footer -------------------------------------------------------- */
.naimals .wd-footer .main-footer { padding-block: 0; }
.nm-footer-title .woodmart-title-container { letter-spacing: .2em; text-transform: uppercase; }
.nm-footer-row .wd-list-content { color: #c9d4c4; transition: color .2s; }
.nm-footer-row a:hover .wd-list-content { color: #fff; }
.nm-footer-email { word-break: break-all; text-transform: none; }
.naimals .wd-copyrights { border-top: 1px solid rgba(255, 255, 255, .12); color: #c9d4c4; }
.nm-credit { font-size: 13px; color: #c9d4c4; }
.nm-credit a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.nm-credit a:hover { color: #f0c96d; }

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width: 991px) {
	.nm-slide-text { text-align: center; }
	.nm-slide-text .title-wrapper { text-align: center; }
	.nm-slide-text .nm-heading .title-after_title { margin-inline: auto; }
	.nm-slide-media { margin-top: 10px; }
	.nm-slide-media .wd-image img { max-height: 340px; width: auto; max-width: 100%; }
	.nm-slide-media .nm-arch--slide img { max-height: 340px; max-width: 280px; }
	.nm-arch img { margin-inline: auto; max-width: 460px; }
	.nm-story-media { margin-bottom: 30px; }
	.nm-head-link .wd-button-wrapper,
	.nm-head-link { text-align: left !important; }
}

@media (max-width: 767px) {
	.nm-slide-text .wd-button-wrapper { margin: 0 6px 10px; }
	.nm-hero-slider .wd-nav-arrows { display: none; }
	.nm-slide-media .wd-image img { max-height: 220px; }
	.nm-slide-media .nm-arch--slide img { max-height: 240px; max-width: 200px; }
	.nm-topbar { font-size: 10.5px; letter-spacing: .12em; }
	.naimals .wd-product .wd-entities-title { font-size: 17px; }
	.naimals .wd-copyrights .wd-grid-g { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.wd-info-box.nm-card, .nm-card .box-icon-wrapper, .nm-cat-banner .content-banner,
	.nm-story-media .wd-image img, .naimals .wd-images-gallery .wd-gallery-item img { transition: none; }
}
