/* Gajna design system — GENERATED by build.sh from src/*.css. Edit the files in src/, then run ./build.sh */

/* ===== 00-tokens.css ===== */
/* ==========================================================================
   GAJNA design system  ·  00 · fonts + tokens
   Palette comes straight from the logo: crimson wordmark, forest-green hen
   outline, butter-yellow beak, on warm cream.
   ========================================================================== */

@font-face {
	font-family: 'Fredoka';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/fredoka-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
}

:root {
	/* brand */
	--g-red: #A80010;
	--g-red-dark: #85000C;
	--g-red-soft: #FCE9EB;
	--g-green: #004020;
	--g-green-mid: #0B5A33;
	--g-green-soft: #E7F1EA;
	--g-yellow: #F8A800;
	--g-yellow-soft: #FFF3D6;

	/* neutrals (warm) */
	--g-ink: #241A1B;
	--g-text: #4A3E3F;
	--g-muted: #6F6263;
	--g-line: #ECE3DA;
	--g-bg: #FFF9F2;
	--g-bg-alt: #F7EFE6;
	--g-white: #FFFFFF;

	/* type */
	--g-font-head: 'Fredoka', ui-rounded, 'Nunito', system-ui, sans-serif;
	--g-font-body: 'Nunito', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	/* shape + depth */
	--g-r-sm: 12px;
	--g-r: 20px;
	--g-r-lg: 32px;
	--g-pill: 999px;
	--g-sh-sm: 0 1px 2px rgba(36, 26, 27, .05), 0 4px 12px rgba(36, 26, 27, .06);
	--g-sh: 0 2px 4px rgba(36, 26, 27, .04), 0 12px 32px rgba(36, 26, 27, .10);
	--g-sh-lg: 0 8px 16px rgba(36, 26, 27, .06), 0 28px 60px rgba(36, 26, 27, .16);
	--g-ease: cubic-bezier(.2, .7, .2, 1);

	/* layout */
	--g-wrap: 1240px;
	--g-gutter: clamp(20px, 4vw, 40px);
	--g-section-y: clamp(56px, 8vw, 104px);
	--g-header-h: 92px;

	/* ---- re-skin Blocksy natively (it is fully variable-driven) ---- */
	--theme-palette-color-1: var(--g-red);
	--theme-palette-color-2: var(--g-red-dark);
	--theme-palette-color-3: var(--g-text);
	--theme-palette-color-4: var(--g-ink);
	--theme-palette-color-5: var(--g-line);
	--theme-palette-color-6: var(--g-bg-alt);
	--theme-palette-color-7: var(--g-bg);
	--theme-palette-color-8: var(--g-white);

	--theme-font-family: var(--g-font-body);
	--theme-font-size: 17px;
	--theme-line-height: 1.7;
	--theme-normal-container-max-width: var(--g-wrap);

	--theme-button-font-weight: 800;
	--theme-button-font-size: 15px;
	--theme-button-min-height: 48px;
	--theme-button-padding: 8px 28px;
	--theme-button-border-radius: var(--g-pill);
	--theme-button-shadow: 0 6px 16px rgba(168, 0, 16, .22);
	--theme-button-text-initial-color: #fff;
	--theme-button-text-hover-color: #fff;

	--theme-form-field-border-radius: 14px;
	--theme-form-field-height: 50px;
	--theme-form-field-border-focus-color: var(--g-red);
}

/* ===== 10-base.css ===== */
/* ==========================================================================
   10 · base: typography, links, buttons, forms, page layout, inner-page banner
   ========================================================================== */

html { overflow-x: clip; scroll-behavior: smooth; }
body {
	background: var(--g-bg);
	color: var(--g-text);
	font-family: var(--g-font-body);
	overflow-x: clip; /* clip, not hidden: keeps the sticky header working */
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ---- headings ---- */
h1, h2, h3, h4, h5, h6,
.page-title, .entry-title, .product_title {
	font-family: var(--g-font-head);
	font-weight: 600;
	color: var(--g-ink);
	letter-spacing: -.01em;
	line-height: 1.12;
	text-wrap: balance;
}
.entry-content h1, .page-title { font-size: clamp(2.1rem, 5vw, 3.3rem); }
.entry-content h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); }
.entry-content h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }
p { line-height: 1.7; }
.entry-content p { text-wrap: pretty; }

/* ---- links ---- */
a { text-underline-offset: .2em; text-decoration-thickness: .08em; }
.entry-content a:not(.wp-block-button__link):not(.button) { font-weight: 700; }

/* ---- focus + selection ---- */
:focus-visible { outline: 3px solid var(--g-yellow); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--g-red); color: #fff; }
img { height: auto; }

/* ==========================================================================
   Buttons: pill shaped, crimson, with a gentle lift
   ========================================================================== */
.wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wpforms-container .wpforms-submit, .ct-button, button.ct-button-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 48px;
	padding: 10px 28px;
	border: 2px solid var(--g-red);
	border-radius: var(--g-pill);
	background: var(--g-red);
	color: #fff;
	font-family: var(--g-font-body);
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(168, 0, 16, .22);
	transition: transform .2s var(--g-ease), box-shadow .2s var(--g-ease), background-color .2s, color .2s, border-color .2s;
	cursor: pointer;
}
.wp-block-button__link:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wpforms-container .wpforms-submit:hover, .ct-button:hover {
	background: var(--g-red-dark);
	border-color: var(--g-red-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(168, 0, 16, .28);
}
.wp-block-button__link:active, .woocommerce a.button:active, .woocommerce button.button:active { transform: translateY(0); }

/* outline / secondary */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--g-red);
	border: 2px solid var(--g-red);
	box-shadow: none;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--g-red); color: #fff; }

/* button groups: don't stretch on mobile, keep a clean gap */
.wp-block-buttons { gap: 12px; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }

/* disabled */
.woocommerce a.button.disabled, .woocommerce button.button:disabled, .woocommerce button.button.disabled {
	opacity: .45; cursor: not-allowed; transform: none; box-shadow: none;
}

/* ==========================================================================
   Forms (WPForms + WooCommerce + search)
   ========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], textarea, select, .select2-selection {
	border-radius: 14px;
	border: 1.5px solid var(--g-line);
	background: #fff;
	font-family: var(--g-font-body);
	color: var(--g-ink);
}
input:focus, textarea:focus, select:focus { border-color: var(--g-red); box-shadow: 0 0 0 4px rgba(168, 0, 16, .12); outline: 0; }
label { font-weight: 700; color: var(--g-ink); }

.wpforms-container { max-width: 560px; margin-inline: auto; width: 100%; }
.wpforms-container-full .wpforms-form .wpforms-field { width: 100% !important; max-width: 100% !important; padding: 0 0 18px !important; box-sizing: border-box; }
.wpforms-container input[type="email"], .wpforms-container input[type="text"], .wpforms-container textarea,
.wpforms-container .wpforms-field-medium, .wpforms-container .wpforms-field-large, .wpforms-container .wpforms-field-small {
	width: 100% !important; max-width: 100% !important; box-sizing: border-box !important;
	padding: 14px 18px !important; border-radius: 14px !important; border: 1.5px solid var(--g-line) !important;
	font-family: var(--g-font-body) !important;
}
.wpforms-container button[type="submit"].wpforms-submit { width: 100% !important; }
.wpforms-container .wpforms-field-label { font-weight: 800 !important; color: var(--g-ink) !important; }

/* WPForms ships its own (blue, square) button + field styles via CSS variables and high-specificity rules */
div.wpforms-container.wpforms-container-full {
	--wpforms-button-background-color: var(--g-red);
	--wpforms-button-background-color-alt: var(--g-red-dark);
	--wpforms-button-text-color: #fff;
	--wpforms-button-border-radius: 999px;
	--wpforms-button-border-color: var(--g-red);
	--wpforms-field-border-radius: 14px;
	--wpforms-field-border-color: var(--g-line);
	--wpforms-field-background-color: #fff;
	--wpforms-label-color: var(--g-ink);
}
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit,
div.wpforms-container-full .wpforms-form .wpforms-submit-container .wpforms-submit {
	min-height: 52px !important;
	border: 2px solid var(--g-red) !important;
	border-radius: 999px !important;
	background: var(--g-red) !important;
	color: #fff !important;
	font-family: var(--g-font-body) !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	box-shadow: 0 6px 16px rgba(168, 0, 16, .22) !important;
}
div.wpforms-container-full .wpforms-form button[type="submit"].wpforms-submit:hover {
	background: var(--g-red-dark) !important;
	border-color: var(--g-red-dark) !important;
}
.wpforms-confirmation-container-full, .wpforms-confirmation-container { border-radius: var(--g-r) !important; background: var(--g-green-soft) !important; border: 0 !important; color: var(--g-green) !important; font-weight: 700; }
.wpforms-container .hm-consent-field label { font-size: 13px !important; color: var(--g-muted); font-weight: 600 !important; }

/* ==========================================================================
   Page layout.  Plain pages read at ~860px; patterns can go wide / full-bleed.
   ========================================================================== */
body.home .entry-content,
body:not(.home) .entry-content { max-width: none !important; padding: 0 !important; }
/* full-bleed sections sit flush against each other (no theme paragraph-spacing between them) */
.entry-content > .gajna-hero, .entry-content > .gajna-section { margin-block: 0 !important; }

body:not(.home) .entry-content > :where(:not(.alignfull):not(.alignwide)) {
	max-width: 860px;
	margin-inline: auto;
	padding-inline: var(--g-gutter);
	box-sizing: border-box;
}
.entry-content > .alignwide { max-width: var(--g-wrap); margin-inline: auto; padding-inline: var(--g-gutter); box-sizing: border-box; }
.entry-content > .alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
body:not(.home) .entry-content { padding-bottom: clamp(40px, 6vw, 80px) !important; }
body:not(.home) .entry-content > :first-child { margin-top: clamp(28px, 4vw, 48px); }

/* ==========================================================================
   Inner-page banner (title band). Home has its own hero.
   ========================================================================== */
body.home .hero-section, body.home .page-header { display: none; }

body:not(.home) .hero-section {
	width: min(100% - 2 * var(--g-gutter), var(--g-wrap));
	max-width: none;
	margin: 28px auto 0;
	padding: 0;
	background: none;
}
body:not(.home) .hero-section .entry-header,
body:not(.home) .hero-section .entry-header.ct-container-narrow {
	min-height: 0 !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(34px, 5vw, 58px) 24px !important;
	text-align: center;
	border-radius: var(--g-r-lg);
	background-color: var(--g-red-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='%23A80010' stroke-opacity='.11' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l5 7 5-7M17 19l5 7 5-7'/%3E%3C/svg%3E");
}
body:not(.home) .hero-section .page-title { margin: 0; font-size: clamp(2rem, 4.6vw, 3rem); color: var(--g-red-dark); }

/* the shop archive template has no .ct-container-full top padding of its own */
body.archive.woocommerce .hero-section { margin-top: 28px; }

/* single product: breadcrumbs only, slim and left-aligned */
body.single-product .hero-section { margin: 18px auto 0; }
body.single-product .hero-section .entry-header,
body.single-product .hero-section .entry-header.ct-container-narrow {
	background: none; text-align: left; border-radius: 0; padding: 4px 0 !important;
}
body.single-product .ct-breadcrumbs { font-size: .85rem; font-weight: 700; justify-content: flex-start; }
body.single-product .ct-breadcrumbs a { color: var(--g-muted); text-decoration: none; }
body.single-product .ct-breadcrumbs a:hover { color: var(--g-red); }

/* ===== 20-header.css ===== */
/* ==========================================================================
   20 · header, navigation, cart/search/language controls, mobile drawer
   ========================================================================== */

/* sticky, frosted */
header#header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--g-line);
}
body.admin-bar header#header { top: var(--wp-admin--admin-bar--height, 32px); }

.ct-header [data-row*="middle"] { background: transparent !important; border: 0 !important; min-height: var(--g-header-h); }
.ct-header [data-row*="middle"] .ct-container { min-height: var(--g-header-h); }

/* logo (the file already contains the wordmark, so no text title) */
.site-branding .site-title-container { display: none; }
.site-logo-container img { width: auto; height: 78px; max-width: none; display: block; mix-blend-mode: multiply; }
@media (max-width: 689px) {
	:root { --g-header-h: 72px; }
	.site-logo-container img { height: 56px; }
}

/* ---- main navigation ---- */
.ct-header .menu-container > ul { gap: 4px; align-items: center; }
.ct-header .ct-menu-link {
	position: relative;
	padding: 10px 14px !important;
	font-family: var(--g-font-body);
	font-size: .98rem !important;
	font-weight: 800 !important;
	letter-spacing: .01em !important;
	text-transform: none !important;
	color: var(--g-ink) !important;
	transition: color .2s;
}
.ct-header .ct-menu-link::after {
	content: "";
	position: absolute;
	left: 14px; right: 14px; bottom: 4px;
	height: 3px;
	border-radius: 3px;
	background: var(--g-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s var(--g-ease);
}
.ct-header .ct-menu-link:hover,
.ct-header li.current-menu-item > .ct-menu-link,
.ct-header li.current-menu-ancestor > .ct-menu-link { color: var(--g-red) !important; }
.ct-header .ct-menu-link:hover::after,
.ct-header li.current-menu-item > .ct-menu-link::after,
.ct-header li.current-menu-ancestor > .ct-menu-link::after { transform: scaleX(1); }

/* language switch: small outlined pill */
.hm-lang-switch { margin-left: 6px; }
.hm-lang-switch > a {
	display: inline-flex !important;
	align-items: center;
	min-height: 0 !important;
	padding: 5px 12px !important;
	border: 1.5px solid var(--g-line);
	border-radius: var(--g-pill);
	font-size: .8rem !important;
	font-weight: 800 !important;
	letter-spacing: .08em !important;
	color: var(--g-muted) !important;
	background: #fff;
}
.hm-lang-switch > a::after { display: none; }
.hm-lang-switch > a:hover { color: var(--g-red) !important; border-color: var(--g-red); }

/* search + cart + hamburger share one icon-button treatment */
.ct-header .ct-header-search,
.ct-header .ct-header-cart .ct-cart-item,
.ct-header .ct-header-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	border-radius: var(--g-pill);
	color: var(--g-ink);
	transition: background-color .2s, color .2s;
}
.ct-header .ct-header-search:hover,
.ct-header .ct-header-cart .ct-cart-item:hover,
.ct-header .ct-header-trigger:hover { background: var(--g-red-soft); color: var(--g-red); }
.ct-header .ct-header-search .ct-icon,
.ct-header .ct-header-cart .ct-icon-container svg { width: 22px; height: 22px; fill: currentColor; }

/* cart: amount label only on wide screens, count badge always */
.ct-header .ct-header-cart .ct-cart-item { padding: 0 12px; gap: 8px; }
.ct-header .ct-header-cart .ct-label { font-size: .85rem; font-weight: 800; }
@media (max-width: 999px) { .ct-header .ct-header-cart .ct-label { display: none; } .ct-header .ct-header-cart .ct-cart-item { padding: 0; } }
.ct-header .ct-dynamic-count-cart {
	position: absolute;
	top: -8px; right: -10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 19px; height: 19px;
	padding: 0 5px;
	border-radius: var(--g-pill);
	background: var(--g-red);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 0 0 2px #fff;
}
.ct-header .ct-dynamic-count-cart[data-count="0"] { display: none; }

.ct-header .ct-header-cart .ct-icon-container { position: relative; }

/* mini-cart panel: light, like the rest of the shop (Blocksy's default is dark) */
.ct-header .ct-cart-content, .ct-cart-content {
	--theme-text-color: var(--g-text);
	--theme-link-initial-color: var(--g-ink);
	--theme-link-hover-color: var(--g-red);
	background: #fff !important;
	color: var(--g-text) !important;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	box-shadow: var(--g-sh-lg);
	min-width: min(360px, 92vw);
}
.ct-cart-content .woocommerce-mini-cart-item { border-color: var(--g-line) !important; }
.ct-cart-content .woocommerce-mini-cart-item > a:not(.remove) { color: var(--g-ink) !important; font-weight: 800; }
.ct-cart-content .woocommerce-mini-cart-item .quantity,
.ct-cart-content .woocommerce-mini-cart__total { color: var(--g-text) !important; }
.ct-cart-content .remove { color: var(--g-red) !important; }
.ct-cart-content .woocommerce-mini-cart__buttons { display: grid; gap: 8px; }
.ct-cart-content .woocommerce-mini-cart__buttons .button { width: 100%; margin: 0; min-height: 46px; padding: 8px 16px; text-align: center; }
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout) { color: var(--g-red) !important; }
.ct-cart-content .woocommerce-mini-cart__buttons .button:not(.checkout):hover { color: #fff !important; }
.ct-cart-content .woocommerce-mini-cart__empty-message { color: var(--g-muted) !important; }

/* search modal */
#search-modal .ct-search-form-inner { border-radius: 20px; }
#search-modal .ct-search-form input[type="search"] { font-family: var(--g-font-head); font-size: 1.4rem; }

/* ==========================================================================
   Mobile drawer
   ========================================================================== */
#offcanvas .ct-panel-inner {
	background: var(--g-bg) !important;
}
#offcanvas .ct-panel-actions { position: sticky; top: 0; z-index: 20; padding: 16px !important; }
#offcanvas .ct-toggle-close {
	background: #fff !important;
	border-radius: 50% !important;
	box-shadow: var(--g-sh-sm);
}
#offcanvas .ct-toggle-close svg, #offcanvas .ct-toggle-close svg path { fill: var(--g-ink) !important; }
#offcanvas .ct-panel-content-inner { padding: 8px 12px 32px; }
#offcanvas ul.menu { display: flex; flex-direction: column; gap: 2px; }
#offcanvas .menu-item { border-bottom: 1px solid var(--g-line); }
#offcanvas .menu-item:last-child { border-bottom: 0; }
#offcanvas .ct-menu-link {
	display: block;
	padding: 16px 12px !important;
	font-family: var(--g-font-head) !important;
	font-size: 1.45rem !important;
	font-weight: 600 !important;
	color: var(--g-ink) !important;
	text-decoration: none !important;
	transition: color .2s, padding-left .2s;
}
#offcanvas .ct-menu-link::after { display: none; }
#offcanvas .ct-menu-link:hover, #offcanvas li.current-menu-item > .ct-menu-link { color: var(--g-red) !important; padding-left: 20px !important; }
#offcanvas .menu-item.hm-lang-switch { border: 0; margin: 10px 0 0; }
#offcanvas .hm-lang-switch > a { padding: 8px 18px !important; font-size: .9rem !important; }

/* drawer search field */
#offcanvas .menu-item.hm-mobile-search { padding: 4px 4px 18px; margin-bottom: 6px; border-bottom: 1px solid var(--g-line); }
#offcanvas .ct-search-form .ct-search-form-inner { border-radius: 20px; }

/* ===== 30-components.css ===== */
/* ==========================================================================
   30 · components (the building blocks the "Gajna" block patterns use)
   Everything here is applied through plain `className`s on core blocks, so each
   piece stays a normal, fully editable Gutenberg block.
   ========================================================================== */

/* ---- eyebrow chip + lead text ---- */
.gajna-eyebrow {
	display: flex;
	align-items: center;
	gap: .5em;
	width: fit-content;
	max-width: 100%;
	margin: 0 0 1rem !important;
	padding: 6px 14px;
	border-radius: var(--g-pill);
	background: var(--g-red-soft);
	color: var(--g-red);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.2;
}
.gajna-eyebrow.has-text-align-center { margin-inline: auto !important; }
.gajna-cta .gajna-eyebrow, .is-green .gajna-eyebrow { background: rgba(255, 255, 255, .14); color: #fff; }
.gajna-lead { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--g-text); line-height: 1.65; max-width: 34em; }
.has-text-align-center.gajna-lead { margin-inline: auto; }

/* ---- sections ---- */
.gajna-section { padding: var(--g-section-y) var(--g-gutter); box-sizing: border-box; position: relative; }
.gajna-section.is-alt { background: var(--g-bg-alt); }
.gajna-section.is-soft-red { background: var(--g-red-soft); }
.gajna-section.is-soft-yellow { background: var(--g-yellow-soft); }
.gajna-section.is-green { background: var(--g-green); color: rgba(255, 255, 255, .88); }
.gajna-section.is-green :is(h2, h3, h4) { color: #fff; }
.gajna-section.is-green .gajna-eyebrow { background: rgba(255, 255, 255, .12); color: var(--g-yellow); }
.gajna-section > :not(.gajna-section__head), .gajna-hero > * { max-width: var(--g-wrap) !important; margin-inline: auto !important; }
.gajna-section > .gajna-section__head { margin-bottom: clamp(28px, 4vw, 52px); }
.gajna-section__head { text-align: center; max-width: 720px !important; }
.gajna-section__head h2 { margin: 0 0 .5rem; }
.gajna-section__head p:last-child { margin-bottom: 0; color: var(--g-muted); font-size: 1.1rem; }
.gajna-section__head .gajna-eyebrow { margin-bottom: .9rem !important; }

/* ==========================================================================
   HERO
   ========================================================================== */
.gajna-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(36px, 6vw, 80px) var(--g-gutter) clamp(52px, 8vw, 104px);
	background: linear-gradient(180deg, var(--g-bg) 0%, var(--g-bg-alt) 100%);
}
.gajna-hero::before,
.gajna-hero::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.gajna-hero::before { width: min(60vw, 720px); aspect-ratio: 1; right: -12vw; top: -14%; background: var(--g-yellow-soft); }
.gajna-hero::after { width: min(36vw, 420px); aspect-ratio: 1; left: -10vw; bottom: -22%; background: var(--g-red-soft); }

.gajna-hero__cols { max-width: var(--g-wrap) !important; margin-inline: auto !important; gap: clamp(28px, 5vw, 72px) !important; align-items: center; }
.gajna-hero h1 {
	margin: 0 0 1.1rem;
	font-size: clamp(2.5rem, 6.2vw, 4.5rem);
	line-height: 1.02;
	letter-spacing: -.02em;
	color: var(--g-ink);
}
.gajna-hero h1 strong {
	font-weight: inherit;
	background: linear-gradient(transparent 62%, var(--g-yellow) 62%, var(--g-yellow) 92%, transparent 92%);
	padding: 0 .1em;
	margin: 0 -.1em;
	border-radius: 4px;
}
.gajna-hero .gajna-lead { margin: 0 0 1.8rem; }
.gajna-hero .wp-block-buttons { margin-bottom: 1.6rem; }
.gajna-hero__note { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; font-size: .95rem; font-weight: 700; color: var(--g-muted); }

/* product photo "stack": three rounded cards, slightly tilted */
.gajna-hero__visual { position: relative; min-height: clamp(340px, 46vw, 560px); }
.gajna-hero__visual > figure.wp-block-image,
.gajna-hero__visual .wp-block-image {
	position: absolute;
	margin: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r-lg);
	box-shadow: var(--g-sh-lg);
}
.gajna-hero__visual .wp-block-image img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 6%; box-sizing: border-box; }
.gajna-hero__img--1 { width: 62%; aspect-ratio: 1 / 1.08; left: 20%; top: 6%; z-index: 2; transform: rotate(-2deg); }
.gajna-hero__img--2 { width: 36%; aspect-ratio: 3 / 4; left: 0; bottom: 2%; z-index: 3; transform: rotate(-7deg); }
.gajna-hero__img--3 { width: 42%; aspect-ratio: 4 / 3; right: 0; bottom: 4%; z-index: 3; transform: rotate(5deg); }
@media (max-width: 781px) {
	.gajna-hero__visual { min-height: 108vw; order: 2; }
	.gajna-hero__text { text-align: center; }
	.gajna-hero__text .wp-block-buttons { justify-content: center; }
	.gajna-hero__note { justify-content: center; }
	.gajna-hero .gajna-lead { margin-inline: auto; }
}

/* ==========================================================================
   FEATURE CARDS
   ========================================================================== */
.gajna-features { gap: 22px !important; }
.gajna-feature {
	display: block !important;
	padding: clamp(24px, 3vw, 34px);
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	box-shadow: var(--g-sh-sm);
	transition: transform .3s var(--g-ease), box-shadow .3s var(--g-ease);
}
.gajna-feature:hover { transform: translateY(-4px); box-shadow: var(--g-sh); }
.gajna-feature__icon {
	display: grid;
	place-items: center;
	width: 60px; height: 60px;
	margin: 0 0 18px !important;
	border-radius: 18px;
	background: var(--g-yellow-soft);
	font-size: 1.8rem;
	line-height: 1;
}
.gajna-features > .gajna-feature:nth-child(2) .gajna-feature__icon { background: var(--g-red-soft); }
.gajna-features > .gajna-feature:nth-child(3) .gajna-feature__icon { background: var(--g-green-soft); }
.gajna-feature h3 { margin: 0 0 .4rem; }
.gajna-feature p:last-child { margin: 0; color: var(--g-muted); }

/* ==========================================================================
   STORY (image + text)
   ========================================================================== */
.gajna-story { gap: clamp(28px, 6vw, 80px) !important; align-items: center; }
.gajna-story__img { position: relative; margin: 0; }
.gajna-story__img::before {
	content: "";
	position: absolute;
	inset: 6% -5% -6% 5%;
	border-radius: var(--g-r-lg);
	background: var(--g-yellow);
	z-index: 0;
}
.gajna-story__img img {
	position: relative; z-index: 1;
	width: 100%;
	border-radius: var(--g-r-lg);
	background: #fff;
	border: 1px solid var(--g-line);
	box-shadow: var(--g-sh);
	object-fit: contain;
	aspect-ratio: 1 / 1;
	padding: 6%;
	box-sizing: border-box;
}
.gajna-story h2 { margin: 0 0 1rem; }
.gajna-checks { list-style: none; padding: 0; margin: 1.2rem 0 1.6rem; display: grid; gap: .7rem; }
.gajna-checks li { position: relative; padding-left: 2rem; font-weight: 700; color: var(--g-ink); }
.gajna-checks li::before {
	content: "";
	position: absolute; left: 0; top: .2em;
	width: 1.3rem; height: 1.3rem;
	border-radius: 50%;
	background: var(--g-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* ==========================================================================
   PHOTO GALLERY ("bento" grid of product photos)
   ========================================================================== */
.gajna-gallery { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: clamp(10px, 1.6vw, 18px); }
.gajna-gallery > figure.wp-block-image {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	transition: transform .4s var(--g-ease), box-shadow .4s var(--g-ease);
}
.gajna-gallery > figure.wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.gajna-gallery > figure.wp-block-image img { width: 100%; height: 100%; object-fit: contain; padding: 5%; box-sizing: border-box; transition: transform .6s var(--g-ease); }
.gajna-gallery > figure.wp-block-image:hover { box-shadow: var(--g-sh); transform: translateY(-3px); }
.gajna-gallery > figure.wp-block-image:hover img { transform: scale(1.05); }
@media (max-width: 689px) { .gajna-gallery { grid-template-columns: repeat(2, 1fr); } }

/* ==========================================================================
   CTA band
   ========================================================================== */
.gajna-cta {
	position: relative;
	overflow: hidden;
	text-align: center;
	background-color: var(--g-red);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none' stroke='white' stroke-opacity='.10' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l5 7 5-7M17 19l5 7 5-7'/%3E%3C/svg%3E");
	color: #fff;
}
.gajna-cta h2 { color: #fff; margin: 0 0 .6rem; }
.gajna-cta p { color: rgba(255, 255, 255, .9); font-size: 1.15rem; max-width: 36em; margin-inline: auto; }
.gajna-cta .wp-block-button__link { background: #fff; border-color: #fff; color: var(--g-red); box-shadow: 0 8px 20px rgba(0, 0, 0, .2); }
.gajna-cta .wp-block-button__link:hover { background: var(--g-yellow); border-color: var(--g-yellow); color: var(--g-ink); }

/* ==========================================================================
   Newsletter card
   ========================================================================== */
.gajna-newsletter > * { max-width: 680px; }
.gajna-newsletter .gajna-newsletter__card {
	padding: clamp(26px, 4vw, 48px);
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r-lg);
	box-shadow: var(--g-sh);
	text-align: center;
}
.gajna-newsletter small, .gajna-newsletter .gajna-note { display: block; font-size: .85rem; color: var(--g-muted); margin-top: 12px; }

/* ==========================================================================
   FAQ accordion (core "details" block)
   ========================================================================== */
.entry-content details {
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r-sm);
	padding: 0;
	margin: 0 0 12px;
	box-shadow: var(--g-sh-sm);
	overflow: hidden;
}
.entry-content details summary {
	position: relative;
	padding: 18px 56px 18px 22px;
	font-family: var(--g-font-head);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--g-ink);
	cursor: pointer;
	list-style: none;
}
.entry-content details summary::-webkit-details-marker { display: none; }
.entry-content details summary::after {
	content: "+";
	position: absolute; right: 18px; top: 50%;
	width: 28px; height: 28px;
	display: grid; place-items: center;
	margin-top: -14px;
	border-radius: 50%;
	background: var(--g-red-soft);
	color: var(--g-red);
	font-size: 1.3rem; font-weight: 700; line-height: 1;
	transition: transform .25s var(--g-ease), background .2s;
}
.entry-content details[open] summary { color: var(--g-red); }
.entry-content details[open] summary::after { content: "–"; background: var(--g-red); color: #fff; }
.entry-content details > :not(summary) { padding: 0 22px 18px; margin: 0; }

/* ---- value / info cards (About, Contact) ---- */
.hm-icon-card, .gajna-card {
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	padding: 28px 22px;
	text-align: center;
	box-shadow: var(--g-sh-sm);
}

/* ===== 40-woo.css ===== */
/* ==========================================================================
   40 · WooCommerce: product cards, shop page, single product
   ========================================================================== */

/* ---- grid: flex so an incomplete last row is centred, with column-count rules ---- */
.woocommerce ul.products,
ul.products[data-products] {
	--gap: clamp(14px, 2vw, 26px);
	--cols: 4;
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gap) !important;
	grid-template-columns: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.woocommerce ul.products > li.product,
ul.products[data-products] > li.product {
	flex: 0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));
	width: calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols)) !important;
	max-width: none;
	margin: 0 !important;
	float: none !important;
}
/* exactly 5 products: one clean row on wide screens; 6/9: 3 columns */
@media (min-width: 1200px) {
	ul.products:has(> li.product:nth-child(5):last-child) { --cols: 5; }
	ul.products:has(> li.product:nth-child(6):last-child),
	ul.products:has(> li.product:nth-child(9):last-child) { --cols: 3; }
}
@media (max-width: 1099px) { .woocommerce ul.products, ul.products[data-products] { --cols: 3; } }
@media (max-width: 767px)  { .woocommerce ul.products, ul.products[data-products] { --cols: 2; } }

/* ---- card ---- */
li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 0 !important;
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	overflow: hidden;
	box-shadow: none;
	text-align: left;
	transition: transform .3s var(--g-ease), box-shadow .3s var(--g-ease), border-color .3s;
}
li.product:hover { transform: translateY(-5px); box-shadow: var(--g-sh); border-color: transparent; }

li.product > figure { margin: 0; position: relative; }
li.product .ct-media-container {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1 !important;
	overflow: hidden;
	background: #fff;
	border-radius: 0 !important;
}
li.product .ct-media-container img {
	position: absolute; inset: 0;
	width: 100% !important; height: 100% !important;
	object-fit: contain;
	padding: 3%;
	box-sizing: border-box;
	aspect-ratio: auto !important;
	transition: transform .6s var(--g-ease), opacity .35s;
}
li.product:hover .ct-media-container img.wp-post-image { transform: scale(1.04); }
/* second photo fades in on hover (added by gajna-design/inc/woo.php) */
li.product .ct-media-container img.gajna-hover { opacity: 0; }
@media (hover: hover) {
	li.product:hover .ct-media-container img.gajna-hover { opacity: 1; transform: scale(1.02); }
	li.product:has(img.gajna-hover):hover .ct-media-container img.wp-post-image { opacity: 0; }
}

li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 4px 18px 0;
	font-family: var(--g-font-head);
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--g-ink);
}
li.product .woocommerce-loop-product__title a { color: inherit; text-decoration: none; }
li.product .woocommerce-loop-product__title a:hover { color: var(--g-red); }
li.product .price {
	display: block;
	padding: 6px 18px 0;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--g-red);
}
li.product .price del { color: var(--g-muted); font-weight: 600; font-size: .9em; opacity: .8; }
li.product .price ins { text-decoration: none; }
li.product .entry-meta { display: none; }

/* add to cart: full-width pill, always visible (also on touch) */
li.product .ct-woo-card-actions {
	margin-top: auto;
	padding: 14px 18px 18px;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	position: static !important;
	height: auto !important;
}
li.product .ct-woo-card-actions .button { width: 100%; min-height: 44px; padding: 8px 14px; font-size: 14px; }
li.product .ct-woo-card-actions .added_to_cart { display: block; text-align: center; margin-top: 8px; font-weight: 800; font-size: .85rem; color: var(--g-green); }
li.product .button.loading { opacity: .7; }
li.product .button.added::after { content: " ✓"; }
@media (max-width: 767px) {
	li.product .woocommerce-loop-product__title { padding: 2px 12px 0; font-size: .98rem; }
	li.product .price { padding: 4px 12px 0; font-size: 1rem; }
	li.product .ct-woo-card-actions { padding: 10px 12px 14px; }
	li.product .ct-woo-card-actions .button { font-size: 13px; padding: 8px 10px; }
}

/* badges */
li.product .onsale, .single-product span.onsale {
	position: absolute; top: 12px; left: 12px; z-index: 3;
	min-height: 0; min-width: 0; line-height: 1;
	padding: 7px 12px;
	border-radius: var(--g-pill);
	background: var(--g-yellow);
	color: var(--g-ink);
	font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.gajna-badge {
	position: absolute; top: 12px; left: 12px; z-index: 3;
	padding: 7px 12px;
	border-radius: var(--g-pill);
	background: var(--g-green);
	color: #fff;
	font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; line-height: 1;
}
.gajna-badge--soldout { background: var(--g-ink); }
li.product.outofstock .ct-media-container img { opacity: .55; }

/* ==========================================================================
   Shop / category page
   ========================================================================== */
.woo-listing-top {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-bottom: 24px;
}
.woocommerce-result-count { margin: 0 !important; font-size: .9rem; font-weight: 700; color: var(--g-muted); text-transform: none; letter-spacing: 0; }
.woocommerce-ordering select {
	min-height: 44px; padding: 8px 40px 8px 18px;
	border: 1.5px solid var(--g-line); border-radius: var(--g-pill);
	font-weight: 700; color: var(--g-ink); background-color: #fff;
}
@media (max-width: 689px) { .woo-listing-top { flex-wrap: wrap; } }

/* category chips (output by gajna-design/inc/woo.php) */
.gajna-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 clamp(22px, 3vw, 34px); padding: 0; list-style: none; }
.gajna-chips a {
	display: inline-flex; align-items: center; gap: .45em;
	padding: 9px 18px;
	border: 1.5px solid var(--g-line); border-radius: var(--g-pill);
	background: #fff; color: var(--g-ink);
	font-size: .92rem; font-weight: 800; text-decoration: none;
	transition: background .2s, color .2s, border-color .2s, transform .2s var(--g-ease);
}
.gajna-chips a:hover { border-color: var(--g-red); color: var(--g-red); transform: translateY(-2px); }
.gajna-chips a.is-active { background: var(--g-red); border-color: var(--g-red); color: #fff; }
.gajna-chips small { font-weight: 700; opacity: .65; font-size: .8em; }

/* pagination */
.woocommerce-pagination, .hm-shop-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.woocommerce-pagination .page-numbers, .hm-shop-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 14px;
	border-radius: var(--g-pill); background: #fff; border: 1.5px solid var(--g-line);
	color: var(--g-ink); font-weight: 800; text-decoration: none;
}
.woocommerce-pagination .page-numbers.current, .hm-shop-pagination .page-numbers.current { background: var(--g-red); border-color: var(--g-red); color: #fff; }

/* the hand-built English shop page (hm_shop_archive shortcode) */
.hm-shop-archive { width: 100%; }
body.page-id-46 .entry-content > .woocommerce,
body.page-id-46 .entry-content > .hm-shop-archive { max-width: var(--g-wrap) !important; }

/* "no products" */
.woocommerce-info, .woocommerce-no-products-found .woocommerce-info {
	padding: 22px 26px; border: 0; border-radius: var(--g-r); background: var(--g-yellow-soft); color: var(--g-ink); font-weight: 700;
}

/* ==========================================================================
   Home: product section built with the [products] shortcode
   ========================================================================== */
.gajna-products .woocommerce { max-width: none; }
.gajna-products .wp-block-buttons { margin-top: clamp(28px, 4vw, 44px); justify-content: center; }

/* ==========================================================================
   Single product
   ========================================================================== */
@media (min-width: 901px) {
	.single-product .product-entry-wrapper {
		display: grid !important;
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
		gap: clamp(32px, 5vw, 72px);
		align-items: start;
		width: 100% !important;
		max-width: var(--g-wrap);
		margin: 0 auto;
		padding: 0 var(--g-gutter);
		box-sizing: border-box;
	}
	.single-product .product-entry-wrapper > .woocommerce-product-gallery,
	.single-product .product-entry-wrapper > .summary { width: 100% !important; max-width: none !important; flex: none !important; }
	.single-product .woocommerce-product-gallery { position: sticky; top: calc(var(--g-header-h) + 24px); }
}
.single-product div.product { padding-top: 12px; }
.single-product .woocommerce-product-gallery .flexy-item figure.ct-media-container,
.single-product .woocommerce-product-gallery .flexy-items {
	border-radius: var(--g-r-lg); overflow: hidden; background: #fff; border: 1px solid var(--g-line);
}
.single-product .woocommerce-product-gallery img { object-fit: contain; background: #fff; }
.single-product .flexy-nav { margin-top: 14px !important; gap: 10px !important; }
.single-product .flexy-nav .flexy-item {
	border: 2px solid var(--g-line) !important; border-radius: 14px !important; overflow: hidden; background: #fff;
	opacity: .75; transition: opacity .2s, border-color .2s, transform .2s var(--g-ease); cursor: pointer;
}
.single-product .flexy-nav .flexy-item:hover { opacity: 1; transform: translateY(-2px); }
.single-product .flexy-nav .flexy-item.flexy-active, .single-product .flexy-nav .flexy-item[aria-current="true"] { opacity: 1; border-color: var(--g-red) !important; }

.single-product .product_title { margin: 0 0 .5rem !important; font-size: clamp(2rem, 4vw, 3rem) !important; line-height: 1.05 !important; }
.single-product .summary .price { margin: 0 0 1rem !important; font-family: var(--g-font-head); font-size: clamp(1.7rem, 3vw, 2.3rem) !important; font-weight: 600; color: var(--g-red) !important; }
.single-product .woocommerce-product-details__short-description { font-size: 1.08rem; line-height: 1.7; color: var(--g-text); margin: 0 0 1.4rem; }
.single-product .stock { display: inline-flex; align-items: center; gap: .4em; margin: 0 0 1rem; padding: 5px 12px; border-radius: var(--g-pill); font-size: .82rem; font-weight: 800; background: var(--g-green-soft); color: var(--g-green); }
.single-product .stock.out-of-stock { background: var(--g-red-soft); color: var(--g-red); }

.single-product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 14px; margin: 0 0 1.4rem; padding: 0; border: 0; }
.single-product .quantity { height: 54px; }
.single-product .quantity input.qty { height: 54px !important; border-radius: var(--g-pill) !important; border: 1.5px solid var(--g-line) !important; font-weight: 800; }
.single-product .single_add_to_cart_button { flex: 1 1 220px; min-height: 54px !important; font-size: 1.05rem !important; }

/* reassurance row under the button (handmade-toys-product-page.php) */
.gajna-trust { list-style: none; margin: 0 0 1.4rem; padding: 18px 20px; display: grid; gap: 12px; background: #fff; border: 1px solid var(--g-line); border-radius: var(--g-r); }
.gajna-trust li { display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--g-ink); font-size: .98rem; }
.gajna-trust__icon { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 12px; background: var(--g-yellow-soft); font-size: 1.15rem; }
.gajna-trust li:nth-child(2) .gajna-trust__icon { background: var(--g-red-soft); }
.gajna-trust li:nth-child(3) .gajna-trust__icon { background: var(--g-green-soft); }
.gajna-trust a { color: var(--g-red); text-decoration: none; }
.gajna-trust a:hover { text-decoration: underline; }

.single-product .product_meta { font-size: .9rem; color: var(--g-muted); display: grid; gap: 4px; }
.single-product .product_meta a { color: var(--g-muted); text-decoration: underline; }
.single-product .product_meta a:hover { color: var(--g-red); }

/* description tabs */
.single-product .woocommerce-tabs { max-width: var(--g-wrap); margin: clamp(40px, 6vw, 72px) auto 0; padding-inline: var(--g-gutter); box-sizing: border-box; }
.single-product .woocommerce-tabs ul.tabs { border-bottom: 2px solid var(--g-line); margin-bottom: 28px; }
.single-product .woocommerce-tabs ul.tabs li a { font-family: var(--g-font-head); font-size: 1.15rem; font-weight: 500; padding: 12px 22px !important; }
.single-product .woocommerce-tabs .panel { max-width: 780px; }
.single-product .woocommerce-tabs .panel h3 { display: inline-block; margin: 28px 0 8px; padding: 8px 16px; border-radius: var(--g-pill); background: var(--g-red-soft); color: var(--g-red-dark); font-size: 1.05rem; }
.single-product .woocommerce-tabs .panel ul { list-style: none; padding: 0; margin: 10px 0 0; }
.single-product .woocommerce-tabs .panel ul li { position: relative; padding: 6px 0 6px 28px; }
.single-product .woocommerce-tabs .panel ul li::before { content: ""; position: absolute; left: 0; top: .65em; width: 14px; height: 14px; border-radius: 50%; background: var(--g-green-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23004020' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8'/%3E%3C/svg%3E") center / 80% no-repeat; }

/* related / upsells */
.single-product .related.products, .single-product .upsells.products { max-width: var(--g-wrap); margin: clamp(48px, 7vw, 88px) auto 0; padding-inline: var(--g-gutter); box-sizing: border-box; }
.single-product .related.products > h2, .single-product .upsells.products > h2 { text-align: center; margin-bottom: 28px; font-size: clamp(1.6rem, 3vw, 2.2rem); }

/* mobile: sticky add-to-cart bar (simple products) */
@media (max-width: 767px) {
	.single-product.gajna-sticky-atc .product.product-type-simple form.cart {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
		margin: 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		flex-wrap: nowrap; gap: 12px;
		background: rgba(255, 255, 255, .96);
		-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
		border-top: 1px solid var(--g-line);
		box-shadow: 0 -10px 30px rgba(36, 26, 27, .12);
	}
	.single-product.gajna-sticky-atc .product.product-type-simple form.cart .quantity { flex: 0 0 auto; }
	.single-product.gajna-sticky-atc .product.product-type-simple form.cart .single_add_to_cart_button { flex: 1 1 auto; }
	.single-product.gajna-sticky-atc { padding-bottom: 86px; }
}

/* ===== 50-cart.css ===== */
/* ==========================================================================
   50 · cart, checkout, account, notices
   ========================================================================== */

/* the shortcode wrapper must be wider than the 860px reading column */
body.woocommerce-cart .entry-content > .woocommerce,
body.woocommerce-checkout .entry-content > .woocommerce,
body.woocommerce-account .entry-content > .woocommerce {
	max-width: var(--g-wrap) !important;
	padding-inline: var(--g-gutter) !important;
}

/* ---- notices ---- */
.woocommerce-message, .woocommerce-error, .woocommerce-info {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	margin: 0 0 22px !important;
	padding: 16px 22px !important;
	border: 0 !important;
	border-radius: var(--g-r);
	background: var(--g-green-soft);
	color: var(--g-green);
	font-weight: 700;
}
.woocommerce-error { background: var(--g-red-soft); color: var(--g-red-dark); list-style: none; }
.woocommerce-info { background: var(--g-yellow-soft); color: var(--g-ink); }
.woocommerce-message a.button, .woocommerce-info a.button { margin-left: auto; min-height: 40px; padding: 6px 20px; }

/* ---- cart ---- */
.ct-woocommerce-cart-form { gap: clamp(24px, 4vw, 56px) !important; align-items: start !important; }
.woocommerce table.shop_table {
	border: 1px solid var(--g-line) !important;
	border-radius: var(--g-r);
	overflow: hidden;
	background: #fff;
	border-collapse: separate;
}
.woocommerce table.shop_table th { background: var(--g-bg-alt); font-family: var(--g-font-head); font-weight: 500; color: var(--g-ink); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: 16px 14px !important; border-color: var(--g-line) !important; }
.woocommerce table.shop_table td.product-thumbnail img { width: 88px; border-radius: 14px; background: #fff; border: 1px solid var(--g-line); }
.woocommerce table.shop_table .product-name a { color: var(--g-ink); font-weight: 800; text-decoration: none; }
.woocommerce table.shop_table .product-name a:hover { color: var(--g-red); }
.woocommerce-cart .quantity input.qty { border-radius: var(--g-pill) !important; font-weight: 800; }
.woocommerce a.remove { color: var(--g-red) !important; }
.woocommerce a.remove:hover { background: var(--g-red) !important; color: #fff !important; }

/* quantity steppers submit the form on their own (gajna auto-update), so the manual button is redundant */
.woocommerce-cart .cart button[name="update_cart"] { display: none !important; }
.woocommerce-cart .cart .coupon button[name="apply_coupon"] { background: transparent; color: var(--g-red); border: 2px solid var(--g-red); box-shadow: none; }
.woocommerce-cart .cart .coupon button[name="apply_coupon"]:hover { background: var(--g-red); color: #fff; }

.woocommerce .cart-collaterals .cart_totals, .woocommerce-cart .cart_totals {
	padding: 10px 26px 26px !important;
	background: #fff;
	border: 1px solid var(--g-line) !important;
	border-radius: var(--g-r-lg);
	box-shadow: var(--g-sh-sm);
}
.woocommerce-cart .cart_totals h2 { font-size: 1.4rem; }
@media (min-width: 901px) { .woocommerce-cart .cart_totals { position: sticky; top: calc(var(--g-header-h) + 24px); } }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 54px; font-size: 1.05rem; }
.woocommerce-cart .cart-empty { text-align: center; padding: 36px 24px; }
.woocommerce-cart .return-to-shop { text-align: center; }

@media (max-width: 600px) {
	.woocommerce-cart .cart .actions { display: flex; flex-direction: column; gap: 10px; }
	.woocommerce-cart .cart .coupon { display: flex; flex-direction: column; gap: 10px; float: none !important; width: 100% !important; }
	.woocommerce-cart .cart .coupon input#coupon_code { width: 100% !important; box-sizing: border-box; }
	.woocommerce-cart .cart .coupon button { width: 100% !important; margin: 0 !important; }
}
@media (max-width: 782px) {
	.woocommerce-cart table.shop_table thead { display: none; }
	.woocommerce-cart table.shop_table tr { display: block; padding: 14px 0; border-bottom: 1px solid var(--g-line); }
	.woocommerce-cart table.shop_table td { display: flex; align-items: center; justify-content: space-between; border: 0 !important; padding: 6px 12px !important; }
}

/* ---- checkout ---- */
.woocommerce-checkout .woocommerce h3, .woocommerce-checkout #order_review_heading { font-family: var(--g-font-head); font-size: 1.4rem; }
.woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order {
	padding: 24px; background: #fff; border: 1px solid var(--g-line); border-radius: var(--g-r-lg); box-shadow: var(--g-sh-sm);
}
.woocommerce-checkout #payment { background: transparent; border-radius: var(--g-r); }
.woocommerce-checkout #payment ul.payment_methods { border-color: var(--g-line); }
.woocommerce-checkout #place_order { width: 100%; min-height: 56px; font-size: 1.1rem; }
.woocommerce form .form-row label { font-size: .92rem; }
.woocommerce form .form-row .required { color: var(--g-red); }
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-checkbox-text { font-size: .88rem; color: var(--g-muted); }

/* ---- my account ---- */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: inline-flex; padding: 9px 18px; border: 1.5px solid var(--g-line); border-radius: var(--g-pill);
	background: #fff; color: var(--g-ink); font-weight: 800; text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--g-red); border-color: var(--g-red); color: #fff; }

/* ---- mini cart (slide-in / dropdown) ---- */
.woocommerce-mini-cart-item { border-color: var(--g-line) !important; }
.woocommerce-mini-cart__total { font-weight: 800; color: var(--g-ink); }
.woocommerce-mini-cart__buttons .button { width: 100%; margin-bottom: 8px; }
.woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent; color: var(--g-red); border: 2px solid var(--g-red); box-shadow: none; }
.woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--g-red); color: #fff; }

/* ===== 60-footer.css ===== */
/* ==========================================================================
   60 · footer + cookie notice
   ========================================================================== */

/* rich footer (gajna-design/inc/footer.php) */
.gajna-footer {
	margin-top: clamp(48px, 7vw, 96px);
	padding: clamp(40px, 6vw, 72px) var(--g-gutter) clamp(28px, 4vw, 44px);
	background: var(--g-bg-alt);
	border-top: 3px dashed rgba(168, 0, 16, .28); /* a "stitched" edge */
}
.gajna-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 56px);
	max-width: var(--g-wrap);
	margin: 0 auto;
}
.gajna-footer__logo img { width: 160px; height: auto; display: block; margin-bottom: 14px; mix-blend-mode: multiply; }
.gajna-footer__brand p { max-width: 24em; margin: 0 0 18px; color: var(--g-text); font-size: 1.02rem; }
.gajna-footer__cta {
	display: inline-flex; align-items: center; padding: 10px 22px;
	border: 2px solid var(--g-red); border-radius: var(--g-pill);
	color: var(--g-red); font-weight: 800; text-decoration: none;
	transition: background .2s, color .2s;
}
.gajna-footer__cta:hover { background: var(--g-red); color: #fff; }
.gajna-footer__col h2 { margin: 0 0 14px; font-family: var(--g-font-head); font-size: 1.1rem; font-weight: 600; color: var(--g-ink); }
.gajna-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.gajna-footer__col a { color: var(--g-text); font-weight: 700; text-decoration: none; transition: color .2s, padding-left .2s; }
.gajna-footer__col a:hover { color: var(--g-red); padding-left: 4px; }
@media (max-width: 900px) { .gajna-footer__inner { grid-template-columns: 1fr 1fr; } .gajna-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .gajna-footer__inner { grid-template-columns: 1fr 1fr; gap: 28px 20px; } }

/* Blocksy's own bottom bar: just the copyright line */
footer.ct-footer { background: var(--g-bg-alt) !important; }
footer.ct-footer [data-row="bottom"] { border-top: 1px solid var(--g-line); background: transparent !important; padding: 18px 0; }
footer.ct-footer .ct-footer-copyright { text-align: center; color: var(--g-muted); font-size: .9rem; font-weight: 600; }
footer.ct-footer .ct-footer-copyright a { color: var(--g-muted); }
.hm-footer-legal { display: none; } /* legacy markup, legal links are in the rich footer now */

/* ---- cookie notice ---- */
#hm-cookie-banner {
	position: fixed;
	left: 50%; bottom: 16px; z-index: 9999;
	display: none;
	align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 20px;
	width: min(calc(100% - 24px), 760px);
	transform: translateX(-50%);
	padding: 14px 18px 14px 22px;
	background: #fff;
	border: 1px solid var(--g-line);
	border-radius: var(--g-r);
	box-shadow: var(--g-sh-lg);
}
#hm-cookie-banner.hm-visible { display: flex; animation: gajna-rise .5s var(--g-ease) both; }
#hm-cookie-banner p { margin: 0; flex: 1 1 320px; font-size: .92rem; font-weight: 600; color: var(--g-text); line-height: 1.5; }
#hm-cookie-banner a { color: var(--g-red); font-weight: 800; }
#hm-cookie-banner .hm-cookie-accept {
	min-height: 42px; padding: 8px 24px; border: 0; border-radius: var(--g-pill);
	background: var(--g-red); color: #fff; font-weight: 800; font-size: .92rem; cursor: pointer; box-shadow: none;
}
#hm-cookie-banner .hm-cookie-accept:hover { background: var(--g-red-dark); }
@keyframes gajna-rise { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }
/* keep the sticky add-to-cart bar visible when both would stack */
@media (max-width: 767px) { body.single-product #hm-cookie-banner { bottom: 92px; } }
