/**
 * eKrasnale brand token layer.
 *
 * Semantic roles preserved from the design-system contract; values map to a
 * warm bronze / clay / rust craft palette (not Bunch floral pink/blue).
 * Loaded after theme.min.css — prefer tokens here over scattered hex overrides.
 */
:root {
	/* Core surfaces */
	--color-background: #fbf7f0;
	--color-surface: #ffffff;
	--color-surface-alt: #e6d8cc; /* warm stone — general alternate */
	--color-text: #1f1a18;
	--color-text-muted: #6b6560;
	--color-primary: #b8953d;
	--color-primary-hover: #9a7a2f;
	/*
	 * Accessible gold for small text on cream paper (#fbf7f0).
	 * Decorative/fill gold stays --color-primary; small labels use this token.
	 * Target: WCAG AA ≥4.5:1 (MOB-A11Y-CONTRAST-EYEBROW-01).
	 */
	--color-primary-text: #6f5218;
	--color-secondary: #3d3832;
	--color-accent: #9a4f3d; /* muted rust accent (sparing) */
	--color-border: rgba(31, 26, 24, 0.14);
	--color-focus: #744a39;
	--color-success: #2f6b3c;
	--color-error: #9a4f3d;
	--color-warning: #b8953d;

	/* Semantic action hierarchy
	 * Primary filled CTAs: warm soft-brown + WHITE text.
	 * #b58463 @ 3.26:1 with white failed WCAG AA — minimally darkened to #966e52 (~4.52:1).
	 */
	--color-action-primary: #966e52;
	--color-action-primary-hover: #8a6248;
	--color-action-primary-active: #805a42;
	--color-action-primary-text: #ffffff;
	--color-action-primary-focus: #744a39;
	--color-action-secondary-bg: #f1e4da;
	--color-action-secondary-border: #987a6d;
	--color-action-secondary-text: #171412;
	--color-action-tertiary-text: #6b6560;
	--color-action-disabled-bg: #ddd3ca;
	--color-action-disabled-border: #bdaea2;
	--color-action-disabled-text: #5d5651;

	/* Footer semantics */
	--color-footer-bg: #8a6656;
	--color-footer-text: #fbf7f0;
	--color-footer-text-muted: #f8f2ea;
	--color-footer-link: #fbf7f0;
	--color-footer-border: rgba(251, 247, 240, 0.18);

	/* Decorative accents remain distinct from commercial primary actions */
	--color-accent-decorative: #b8953d;
	--color-accent-decorative-contrast: #171412;
	--color-accent-text: #6f5218;

	/* eKrasnale semantic surfaces */
	--surface-page: #fbf7f0;
	--surface-card: #ffffff;
	--surface-clay: #f1e0d4;
	--surface-rust-soft: #ecd8d4;
	--surface-warm: #e6d8cc;
	--surface-footer-deep: var(--color-footer-bg);
	--surface-muted: #f3e8dc;

	/* Accents (5–10% usage) */
	--accent-commerce: var(--color-accent-decorative);
	--accent-bronze: #8a5a32;
	--accent-rust: #9a4f3d;
	--accent-terracotta: #c87858;
	--border-warm: #cdbbaF;

	/* On-dark footer foreground */
	--text-on-dark: var(--color-footer-text);
	--text-on-dark-muted: var(--color-footer-text-muted);

	/* Role aliases (design system contract) */
	--paper: var(--surface-page);
	--surface: var(--surface-card);
	--surface-alt: var(--surface-warm);
	--surface-editorial: var(--surface-warm);
	--surface-footer: var(--surface-footer-deep);
	--ink: var(--color-text);
	--muted: var(--color-text-muted);
	--accent: var(--color-accent-decorative);
	--accent-text: var(--color-accent-text);
	--accent-soft: #f5e6c8;
	--line: var(--color-border);
	--line-strong: rgba(31, 26, 24, 0.28);

	/* Remap Bunch aqueous / footer / topbar into warm craft surfaces */
	--aqueous: var(--surface-warm);
	--footer-bg: var(--surface-footer-deep);
	--topbar-bg: var(--surface-clay);

	/*
	 * Button hierarchy tokens
	 * PRIMARY = shared soft-brown action family across commerce and page CTAs
	 * SECONDARY (.btn-outline/.btn-secondary) = outline / quiet surface
	 * TERTIARY = text/link treatments
	 */
	--button-commerce-bg: var(--color-action-primary);
	--button-commerce-text: var(--color-action-primary-text);
	--button-commerce-hover: var(--color-action-primary-hover);
	--button-commerce-active: var(--color-action-primary-active);
	--button-task-bg: var(--color-action-primary);
	--button-task-text: var(--color-action-primary-text);
	--button-task-hover: var(--color-action-primary-hover);
	--button-task-active: var(--color-action-primary-active);
	--button-secondary-bg: transparent;
	--button-secondary-border: var(--color-action-secondary-border);
	--button-secondary-text: var(--color-action-secondary-text);
	--button-secondary-hover-bg: var(--color-action-secondary-bg);
	--button-secondary-strong-bg: var(--color-action-secondary-bg);
	--button-tertiary-text: var(--color-action-tertiary-text);
	--button-tertiary-hover: var(--ink);

	/* Legacy aliases for existing button and WooCommerce bridge selectors */
	--action-primary-bg: var(--button-commerce-bg);
	--action-primary-text: var(--button-commerce-text);
	--primary-fill: var(--button-commerce-bg);
	--primary-fill-hover: var(--button-commerce-hover);
	--primary-text: var(--button-commerce-text);
	--action-secondary-bg: var(--button-secondary-bg);
	--action-secondary-text: var(--button-secondary-text);
	--action-secondary-border: var(--button-secondary-border);

	/* Typography: keep Bunch Corbel stack (Polish diacritics via system faces) */
	--font: Corbel, "Trebuchet MS", Arial, sans-serif;
}

::selection {
	background: var(--color-primary);
	color: #fff;
}

:focus-visible {
	outline-color: var(--color-focus);
}

.skip-link {
	border-color: var(--color-primary);
}

meta[name="theme-color"] {
	/* hint only — actual meta set in header.php */
}

/* —— Site-wide surface remaps (Bunch pink/blue → eKrasnale clay/warm/footer) —— */
body {
	background: var(--surface-page);
	color: var(--ink);
}

.collection-section,
.hero-decoration-two {
	background: var(--surface-clay) !important;
}

.cta-band,
.cta-band--compact,
.landing-cta .cta-banner,
.location-cta .cta-banner,
.wedding-cta .cta-banner,
.landing-cta__banner,
.product-editorial,
.article-cta .landing-cta__banner {
	background: var(--surface-warm) !important;
}

.why-section {
	background: var(--surface-muted) !important;
}

.testimonial-section {
	background: var(--surface-rust-soft) !important;
}

.hero-decoration-one,
.featured-card {
	background: var(--surface-clay) !important;
}

.hero-section,
.trust-section,
.featured-section,
.locations-section,
.related-section {
	background: var(--surface-page);
}

.products-section {
	background: var(--surface-card);
}

/* Soft pink leftover panels → rust wash (restrained) */
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
[class*="notice"] .woocommerce-info {
	/* leave functional notice chrome alone unless pink */
}

/* —— Deep warm footer —— */
.site-footer {
	background: var(--surface-footer-deep) !important;
	color: var(--text-on-dark) !important;
	border-top: 1px solid var(--color-footer-border);
	padding-top: clamp(36px, 4.5vw, 56px);
	padding-bottom: calc(clamp(28px, 4vw, 40px) + var(--safe-bottom, 0px));
}

.site-footer h2,
.site-footer h3,
.site-footer .footer-payments__title {
	color: var(--text-on-dark) !important;
}

.site-footer p,
.site-footer address,
.site-footer .footer-contact p,
.site-footer .footer-brand p {
	color: var(--text-on-dark-muted) !important;
}

.site-footer nav a,
.site-footer .footer-links a,
.site-footer .footer-contact > a,
.site-footer .footer-bottom a,
.site-footer .footer-bottom .button-link {
	color: var(--text-on-dark-muted) !important;
	font-weight: 600;
	text-decoration: none;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.site-footer nav a:hover,
.site-footer nav a:focus-visible,
.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible,
.site-footer .footer-contact a:hover,
.site-footer .footer-contact a:focus-visible,
.site-footer .footer-bottom a:hover,
.site-footer .footer-bottom a:focus-visible {
	color: var(--color-footer-link) !important;
	text-decoration: underline;
}

.site-footer .footer-bottom {
	border-top-color: var(--color-footer-border);
	color: var(--text-on-dark-muted);
}

.site-footer .footer-payments {
	border-top-color: var(--color-footer-border);
}

.site-footer .footer-brand .custom-logo-link img,
.site-footer .footer-brand img.custom-logo {
	/* Real logo asset — no invert/filter; umber ground must keep peach wordmark clear */
	filter: none !important;
	mix-blend-mode: normal;
}

/* Shared primary CTA fill */
.btn-commerce {
	background-color: var(--button-commerce-bg);
	border-color: var(--button-commerce-bg);
	color: var(--button-commerce-text);
}

/* Decorative badges stay distinct from primary commerce CTA */
.action-count,
.icon-button .action-count {
	background-color: var(--accent);
	border-color: var(--accent);
	color: var(--color-accent-decorative-contrast);
}

/* Catalog / card Buy Now may still use commerce gold; PDP Buy Now is secondary. */
.btn-buy-now:not(.ekrasnale-buy-now) {
	background-color: var(--button-commerce-bg);
	border-color: var(--button-commerce-bg);
	color: var(--button-commerce-text);
}

.single-product .single_add_to_cart_button,
.single-product .single_add_to_cart_button.add-to-cart-main,
.single-product form.cart .single_add_to_cart_button.add-to-cart-main,
.single-product .btn-commerce {
	background-color: var(--button-commerce-bg) !important;
	border-color: var(--button-commerce-bg) !important;
	color: var(--button-commerce-text) !important;
}

.single-product .ekrasnale-buy-now,
.single-product form.cart .ekrasnale-buy-now {
	background-color: transparent !important;
	border: 1px solid var(--line-strong, rgba(31, 26, 24, 0.28)) !important;
	color: var(--ink) !important;
	font-weight: 600 !important;
}

.btn-primary {
	background-color: var(--button-task-bg);
	border-color: var(--button-task-bg);
	color: var(--button-task-text);
}

/*
 * Global primary filled CTA contract:
 * warm-brown background + white foreground on every interactive state.
 * Covers both <button> and <a> so :visited never recolors purple/dark.
 * Scoped to known primary surfaces — not every Woo .button.
 */
.btn-primary,
.btn-primary:link,
.btn-primary:visited,
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus-visible,
.btn-commerce,
.btn-commerce:link,
.btn-commerce:visited,
.btn-commerce:hover,
.btn-commerce:active,
.btn-commerce:focus-visible,
.btn-buy-now:not(.ekrasnale-buy-now),
.btn-buy-now:not(.ekrasnale-buy-now):link,
.btn-buy-now:not(.ekrasnale-buy-now):visited,
.btn-buy-now:not(.ekrasnale-buy-now):hover,
.btn-buy-now:not(.ekrasnale-buy-now):active,
.btn-buy-now:not(.ekrasnale-buy-now):focus-visible,
.quick-cart,
.quick-cart:link,
.quick-cart:visited,
.quick-cart:hover,
.quick-add,
.quick-add:link,
.quick-add:visited,
.quick-add:hover,
a.ajax_add_to_cart.quick-add,
a.ajax_add_to_cart.quick-add:link,
a.ajax_add_to_cart.quick-add:visited,
a.ajax_add_to_cart.quick-add:hover,
.product-card-actions .btn-add-to-cart,
.product-card-actions .btn-add-to-cart:link,
.product-card-actions .btn-add-to-cart:visited,
.product-card-actions .btn-add-to-cart:hover,
.product-card-actions a.add_to_cart_button,
.product-card-actions a.add_to_cart_button:visited,
.product-card-actions a.add_to_cart_button:hover,
.product-card-actions--v2 .btn-add-to-cart,
.product-card-actions--v2 .btn-add-to-cart:visited,
.product-card-actions--v2 a.ajax_add_to_cart,
.product-card-actions--v2 a.ajax_add_to_cart:visited,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce a.button.alt:visited,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:visited,
.woocommerce-checkout #place_order,
.single-product .single_add_to_cart_button,
.single-product .single_add_to_cart_button:visited {
	color: var(--button-commerce-text, #fff) !important;
}

.btn-primary .icon,
.btn-commerce .icon,
.btn-buy-now:not(.ekrasnale-buy-now) .icon,
.quick-cart .icon,
.product-card-actions .btn-add-to-cart .icon,
.single-product .single_add_to_cart_button .icon {
	color: currentColor;
	stroke: currentColor;
	fill: currentColor;
}

.btn-primary:hover,
.btn-commerce:hover,
.btn-buy-now:not(.ekrasnale-buy-now):hover,
.quick-cart:hover,
.quick-add:hover,
a.ajax_add_to_cart.quick-add:hover,
.product-card-actions .btn-add-to-cart:hover,
.product-card-actions a.add_to_cart_button:hover,
.single-product .single_add_to_cart_button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	box-shadow: none !important;
}

.btn-primary:active,
.btn-commerce:active,
.btn-buy-now:not(.ekrasnale-buy-now):active,
.quick-cart:active,
.quick-add:active,
a.ajax_add_to_cart.quick-add:active,
.product-card-actions .btn-add-to-cart:active,
.product-card-actions a.add_to_cart_button:active,
.single-product .single_add_to_cart_button:active,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:active,
.woocommerce-checkout #place_order:active {
	background-color: var(--button-commerce-active, var(--button-commerce-hover)) !important;
	border-color: var(--button-commerce-active, var(--button-commerce-hover)) !important;
	color: var(--button-commerce-text) !important;
}

.btn-primary:focus-visible,
.btn-commerce:focus-visible,
.quick-cart:focus-visible,
.quick-add:focus-visible,
a.ajax_add_to_cart.quick-add:focus-visible,
.product-card-actions .btn-add-to-cart:focus-visible,
.product-card-actions a.add_to_cart_button:focus-visible,
.single-product .single_add_to_cart_button:focus-visible,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus-visible,
.woocommerce-checkout #place_order:focus-visible,
.page-template-contact .btn-primary:focus-visible,
.page-template-order-dwarf .btn-primary:focus-visible {
	outline: 2px solid var(--color-action-primary-focus) !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 2px var(--surface), 0 0 0 5px var(--color-action-primary-focus) !important;
}

.btn-primary:disabled,
.btn-commerce:disabled,
.btn-buy-now:not(.ekrasnale-buy-now):disabled,
.single-product .single_add_to_cart_button:disabled,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:disabled,
.woocommerce-checkout #place_order:disabled {
	background: var(--color-action-disabled-bg) !important;
	border-color: var(--color-action-disabled-border) !important;
	color: var(--color-action-disabled-text) !important;
	opacity: 1 !important;
	box-shadow: none !important;
	cursor: not-allowed;
}

.btn-primary[aria-busy="true"],
.btn-commerce.loading,
.quick-cart.loading,
.quick-add.loading,
a.ajax_add_to_cart.loading,
.single-product .single_add_to_cart_button.loading,
.woocommerce-checkout #place_order.is-loading {
	background: var(--button-commerce-bg) !important;
	border-color: var(--button-commerce-bg) !important;
	color: var(--button-commerce-text) !important;
	opacity: 0.92 !important;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-action-primary-text) 12%, transparent) !important;
	cursor: progress;
}

.eyebrow,
h1 em,
h2 em,
.shop-hero .eyebrow,
.page-hero .eyebrow,
.commerce-page-header .eyebrow,
.bof-consent__eyebrow,
[data-catalog-eyebrow],
.product-mood,
.hero-product-label small,
.why-card > span,
.featured-copy .eyebrow,
.product-summary .eyebrow,
.editorial-card .eyebrow,
.collection-section .section-heading-center .eyebrow,
.hero-copy .eyebrow {
	color: var(--accent-text, var(--color-primary-text));
}

.wishlist-button.is-active,
.product-wishlist.is-active,
.product-wishlist[aria-pressed="true"] {
	background: var(--accent) !important;
	color: var(--color-accent-decorative-contrast) !important;
}

.category-chips input:checked + span,
.filter-chip.is-active,
.search-chips a[aria-current="true"],
.blog-category-nav__chip.is-active,
.blog-category-nav__chip[aria-current="page"],
.woocommerce-pagination .current,
.blog-pagination__list .current,
.blog-pagination__item.is-current span,
.size-selector input:checked + span {
	background: var(--color-action-secondary-bg) !important;
	border-color: var(--color-action-secondary-border) !important;
	color: var(--color-action-secondary-text) !important;
	box-shadow: none !important;
}

.size-selector input:checked + span small {
	color: color-mix(in srgb, var(--color-action-secondary-text) 72%, transparent) !important;
}

/* Location pages — hours + hero (Bunch spacing language) */
.location-hero__grid {
	display: grid;
	gap: 1.5rem;
	align-items: center;
}

@media (min-width: 900px) {
	.location-hero__grid {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
		gap: 2.5rem;
	}
}

.location-hero__media {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 160px;
	padding: 1.5rem;
	background: var(--surface-alt);
	border: 1px solid var(--line);
	border-radius: var(--radius-md, 22px);
}

.location-status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0.2rem 0 0;
	padding: 0.28rem 0.7rem;
	border-radius: 999px;
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.2;
	background: var(--surface-alt);
	color: var(--ink);
}

.location-status__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}

.location-status.is-open {
	background: color-mix(in srgb, var(--color-success, #2f6b3c) 14%, var(--paper));
	color: var(--color-success, #2f6b3c);
}

.location-status.is-closed {
	background: color-mix(in srgb, var(--color-error, #8a3b32) 12%, var(--paper));
	color: var(--color-error, #8a3b32);
}

.location-hours {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.location-hours--compact {
	margin: 0;
}

.location-hours__head {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.85rem;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 0.55rem;
}

.location-hours__title,
.location-hours__head h2,
.location-hours__head h3 {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted);
}

.location-hours__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.location-hours__list--grouped .location-hours__row {
	padding: 0.4rem 0;
	font-size: 0.95rem;
}

.location-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.45rem 0;
	border-top: 1px solid var(--line);
	font-size: 0.92rem;
}

.location-hours__row:first-child {
	border-top: 0;
}

.location-hours__row.is-today {
	font-weight: 700;
}

.location-hours__day {
	min-width: 0;
}

.location-hours__time {
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.location-hours__details {
	margin-top: 0.55rem;
	font-size: 0.85rem;
}

.location-hours__details summary {
	cursor: pointer;
	color: var(--muted);
	min-height: 36px;
	display: inline-flex;
	align-items: center;
}

.location-hours__details .location-hours__list {
	margin-top: 0.35rem;
}

.location-detail__intro,
.location-detail__contact,
.location-detail__actions {
	margin: 1.75rem 0;
}

.location-card__actions {
	margin-top: 0.75rem;
}

.location-map-placeholder,
.location-map-fallback {
	display: grid;
	place-content: center;
	gap: 0.5rem;
	height: 100%;
	min-height: 180px;
	padding: 1rem;
	text-align: center;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px) 0 0 / 28px 28px,
		linear-gradient(0deg, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px) 0 0 / 28px 28px,
		var(--surface-alt);
	border-radius: var(--radius-sm, 10px);
}

.location-map-fallback .btn {
	justify-self: center;
	margin-top: 0.35rem;
}

.breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.55rem;
	align-items: center;
	padding: 1rem 0 0;
	font-size: 0.9rem;
	color: var(--muted);
}

.breadcrumbs a {
	color: inherit;
}

/* —— Location Experience v2 —— */
.location-page--v2 .location-hero--visit {
	padding-block: clamp(20px, 3vw, 40px);
}

.location-page--v2 .location-hero__copy h1,
.location-page--v2 .location-hero h1 {
	font-size: clamp(1.75rem, 3.2vw, 2.35rem);
	line-height: 1.12;
	letter-spacing: -0.03em;
	max-width: var(--heading-measure-editorial, min(22ch, 100%));
	font-weight: 700;
}

.location-page--v2 .location-hero__address {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.4;
	color: var(--ink);
}

.location-page--v2 .location-hero__hours,
.location-page--v2 .location-hero__lead {
	margin: 0;
	color: var(--muted);
	font-size: 0.95rem;
	line-height: 1.45;
	max-width: 36ch;
}

.location-page--v2 .location-hero__phone {
	margin: 0;
}

.location-page--v2 .location-hero__actions {
	margin-top: 0.35rem;
}

.location-page--v2 .location-hero__actions .btn-primary {
	min-height: 48px;
	padding-inline: 1.25rem;
	font-size: 0.95rem;
}

.location-page--v2 .location-hero__media,
.location-page--v2 .location-hero__map {
	aspect-ratio: auto;
	max-height: none;
	background: transparent;
	overflow: visible;
	border-radius: var(--radius-sm, 10px);
	padding: 0;
	border: 0;
	min-height: 0;
}

.location-page--v2 .location-hero__map .ekrasnale-map-frame {
	width: 100%;
	--map-aspect: 16 / 9;
}

.location-page--v2 .location-hero__map .ekrasnale-map-frame__slot {
	min-height: 200px;
	border-radius: var(--radius-sm, 10px);
	border: 1px solid var(--line);
}

@media (min-width: 900px) {
	.location-page--v2 .location-hero__grid {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		align-items: start;
		gap: clamp(24px, 3.5vw, 40px);
	}

	.location-page--v2 .location-hero__map .ekrasnale-map-frame__slot {
		min-height: 0;
		/* Soft cap so the map cannot outgrow the left copy column. */
		max-height: clamp(280px, 30vw, 420px);
	}
}

@media (max-width: 899px) {
	.location-page--v2 .location-hero__map .ekrasnale-map-frame {
		/* Prefer readable mobile map over desktop compression. */
		--map-aspect: 4 / 3 !important;
	}
}

.location-page--v2 .location-products {
	padding-block: var(--section-space-md, clamp(28px, 4vw, 48px));
}

.location-page--v2 .location-products .section-heading {
	margin-bottom: 1.25rem;
}

.location-page--v2 .location-products .section-heading h2 {
	margin: 0;
}

.locations-section--compact,
.locations-section--siblings {
	padding-block: clamp(28px, 4vw, 48px);
}

.locations-section--siblings .section-heading {
	margin-bottom: 1rem;
}

.locations-section--siblings .section-heading h2 {
	font-size: clamp(1.2rem, 2vw, 1.45rem);
}

.location-card--compact .location-map,
.location-card--v2.location-card--compact .location-card__media {
	max-height: 200px;
}

.location-card--compact .ekrasnale-map-frame__slot {
	max-height: 200px;
	min-height: 160px;
}

.location-card--v2 .location-content {
	padding: 0.85rem 0.9rem 1rem;
}

.location-card--v2 .location-content h3 {
	font-size: 1rem;
}

.locations-grid--v2[data-location-count="2"] {
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.locations-grid--v2[data-location-count="2"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Homepage contact band — compact conversion strip */
.cta-band--compact {
	padding-block: clamp(20px, 2.8vw, 32px) !important;
	background: var(--surface-alt);
	border-block: 1px solid var(--line);
}

.cta-band--compact.section {
	padding-block: clamp(20px, 2.8vw, 32px);
}

.cta-band__grid {
	display: grid;
	gap: 1rem 1.25rem;
	align-items: center;
	width: 100%;
}

.cta-band__copy {
	display: grid;
	gap: 0.4rem;
	justify-items: start;
}

.cta-band__copy h2 {
	margin: 0;
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	line-height: 1.15;
	letter-spacing: -0.025em;
	max-width: none;
}

@media (min-width: 900px) {
	.cta-band__copy h2 {
		max-width: var(--heading-measure-section-wide, min(36ch, 100%));
	}
}

.cta-band__copy p:not(.eyebrow) {
	margin: 0;
	color: var(--muted);
	max-width: 42ch;
	line-height: 1.5;
	font-size: 0.98rem;
}

.cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

@media (min-width: 900px) {
	.cta-band__grid {
		grid-template-columns: minmax(0, 1.2fr) auto;
		gap: 1.25rem 2rem;
		max-width: none;
	}

	.cta-band__actions {
		justify-content: flex-end;
		justify-self: end;
		align-self: center;
	}
}

@media (min-width: 1280px) {
	.cta-band--compact .cta-band__grid {
		max-width: none;
		margin-inline: 0;
		grid-template-columns: minmax(0, 1.25fr) auto;
		gap: 1.25rem 2.5rem;
		align-items: center;
	}

	.cta-band--compact .cta-band__actions {
		justify-content: flex-end;
		justify-self: end;
	}

	.cta-band--compact {
		padding-block: clamp(16px, 2vw, 24px) !important;
	}
}

/* Map placeholder: subtle street motif (decorative, not a fake map) */
.ekrasnale-map-frame__placeholder {
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--line) 40%, transparent) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(0deg, color-mix(in srgb, var(--line) 40%, transparent) 1px, transparent 1px) 0 0 / 24px 24px,
		transparent;
}

/* Catalog primary CTA shares buy-now visual weight without checkout semantics. */
.product-card-actions .btn-add-to-cart,
.product-card-actions a.btn-add-to-cart,
.product-card-actions a.add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	min-height: 44px !important;
	height: 44px !important;
	padding: 0 0.85rem;
	border-radius: 999px;
	background: var(--button-commerce-bg, var(--action-primary-bg, var(--accent)));
	color: var(--button-commerce-text, var(--action-primary-text, #fff));
	font-weight: 700;
	text-decoration: none;
	border: 0;
	cursor: pointer;
	white-space: nowrap;
	box-sizing: border-box;
}

.product-card-actions .btn-add-to-cart:hover,
.product-card-actions a.btn-add-to-cart:hover,
.product-card-actions a.add_to_cart_button:hover {
	background: var(--button-commerce-hover, var(--primary-fill-hover, var(--color-primary-hover)));
	color: var(--button-commerce-text, #fff);
}

.product-card-actions .btn-add-to-cart:focus-visible,
.product-card-actions a.add_to_cart_button:focus-visible {
	outline: 2px solid var(--color-focus, var(--accent));
	outline-offset: 2px;
	color: var(--button-commerce-text, #fff);
}

.product-card-actions .btn-add-to-cart:visited,
.product-card-actions a.btn-add-to-cart:visited,
.product-card-actions a.add_to_cart_button:visited,
.product-card-actions--v2 > .btn-add-to-cart:visited,
.product-card-actions--v2 > a.ajax_add_to_cart:visited {
	color: var(--button-commerce-text, #fff) !important;
}

.product-card-actions .ajax_add_to_cart.added,
.product-card-actions .ajax_add-to_cart.is-added {
	background: var(--color-success, #2f6b3c);
}

/* Product Card v2 — balanced primary / secondary action row */
.product-card-body {
	container-type: inline-size;
	container-name: product-card;
}

.product-card-actions--v2 {
	display: grid !important;
	grid-template-columns: minmax(0, 1.55fr) minmax(108px, 1fr) !important;
	gap: 12px !important;
	max-width: none !important;
	align-items: stretch;
}

.product-card-actions--v2:has(> :only-child),
.product-card-actions--v2:has(.product-details-link--solo) {
	grid-template-columns: 1fr !important;
}

/* Keep ATC + Details columns stable when Woo injects .added_to_cart */
.product-card-actions--v2 > .btn-add-to-cart,
.product-card-actions--v2 > a.ajax_add_to_cart,
.product-card-actions--v2 > .button.btn-add-to-cart {
	grid-column: 1;
	grid-row: 1;
	min-width: 0;
	background: var(--button-commerce-bg, var(--action-primary-bg, var(--accent))) !important;
	border-color: var(--button-commerce-bg, var(--action-primary-bg, var(--accent))) !important;
	color: var(--button-commerce-text, var(--action-primary-text, #fff)) !important;
}

.product-card-actions--v2 > .product-details-link {
	grid-column: 2;
	grid-row: 1;
}

.product-card-actions--v2 > .added_to_cart {
	/* Theme success copy stays on ATC ("Dodano ✓"); hide WC view-cart inject to avoid layout shift */
	display: none !important;
}

.product-card-actions--v2:has(> :only-child) > .product-details-link,
.product-card-actions--v2:has(.product-details-link--solo) > .product-details-link {
	grid-column: 1;
}

@media (max-width: 359px) {
	.product-card-actions--v2 > .btn-add-to-cart,
	.product-card-actions--v2 > a.ajax_add_to_cart,
	.product-card-actions--v2 > .button.btn-add-to-cart,
	.product-card-actions--v2 > .product-details-link {
		grid-column: 1;
		grid-row: auto;
	}
}

@container product-card (max-width: 230px) {
	.product-card-actions--v2 > .btn-add-to-cart,
	.product-card-actions--v2 > a.ajax_add_to_cart,
	.product-card-actions--v2 > .button.btn-add-to-cart,
	.product-card-actions--v2 > .product-details-link {
		grid-column: 1;
		grid-row: auto;
	}
}

.product-card-actions--v2 .product-details-link,
.product-card-actions--v2 .btn.btn-secondary.product-details-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-width: 0;
	min-height: 44px !important;
	height: 44px !important;
	padding: 0 10px !important;
	margin: 0;
	border-radius: 999px !important;
	border: 1px solid var(--button-secondary-border, var(--line-strong, var(--ink))) !important;
	background: var(--button-secondary-bg, transparent) !important;
	color: var(--button-secondary-text, var(--ink)) !important;
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
	box-sizing: border-box;
	box-shadow: none !important;
}

.product-card-actions--v2 .product-details-link:hover,
.product-card-actions--v2 .product-details-link:focus-visible,
.product-card-actions--v2 .btn.btn-secondary.product-details-link:hover,
.product-card-actions--v2 .btn.btn-secondary.product-details-link:focus-visible {
	background: var(--button-secondary-hover-bg, var(--color-surface-alt, var(--surface-alt)));
	border-color: var(--ink);
	color: var(--ink);
}

/* Stack when the card body itself is too narrow for a comfortable dual row */
@container product-card (max-width: 230px) {
	.product-card-actions--v2 {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 359px) {
	.product-card-actions--v2 {
		grid-template-columns: 1fr !important;
	}
}

.cart-continue-shopping {
	margin: 1rem 0 0;
}

.mobile-bottom-nav {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 979px) {
	body.post-type-archive-product .site-main,
	body.tax-product_cat .site-main,
	body.woocommerce-shop .site-main,
	body.woocommerce .site-main,
	body .product-grid {
		padding-bottom: 0; /* body --mobile-content-pad-bottom owns clearance */
	}

	.product-card-actions {
		margin-bottom: 8px;
	}
}

/* ========== Final micro-polish (freeze pass) ========== */

/* Location hero density */
.location-page--v2 .location-hero--visit {
	padding-block: var(--section-space-md);
}

.location-page--v2 .location-hero__copy {
	gap: 0.55rem;
}

@media (min-width: 900px) {
	.location-page--v2 .location-hero__grid {
		align-items: start;
	}
}

@media (max-width: 899px) {
	.location-page--v2 .location-hero--visit {
		padding-block: var(--section-space-sm) var(--section-space-md);
	}

	.location-page--v2 .location-hero__map {
		margin-top: 0.35rem;
	}

	.location-page--v2 .location-hero__map .ekrasnale-map-frame__slot {
		min-height: 180px;
	}
}

/* Other locations — secondary navigation density */
.locations-section--compact,
.locations-section--siblings {
	padding-block: var(--section-space-md);
}

.locations-section--siblings .section-heading h2,
.locations-section--compact .section-heading h2 {
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	max-width: var(--heading-measure-section-wide, min(36ch, 100%));
	line-height: 1.2;
}

.locations-section--siblings .section-heading,
.locations-section--compact .section-heading {
	margin-bottom: 0.85rem;
}

.location-card--compact .location-map,
.location-card--v2.location-card--compact .location-card__media {
	max-height: 180px;
}

.location-card--compact .ekrasnale-map-frame__slot {
	max-height: 180px;
	min-height: 140px;
}

.location-card--v2 .location-content {
	padding: 0.7rem 0.8rem 0.85rem;
	gap: 0.25rem;
}

@media (max-width: 639px) {
	.locations-section--compact,
	.locations-section--siblings {
		padding-block: var(--section-space-sm) var(--section-space-md);
	}

	.locations-grid--editorial,
	.locations-grid--v2 {
		gap: 0.75rem;
	}

	.location-card--compact .location-map,
	.location-card--v2.location-card--compact .location-card__media {
		max-height: 150px;
	}

	.location-card--compact .ekrasnale-map-frame__slot {
		max-height: 150px;
		min-height: 120px;
	}

	.location-card--v2 .location-content {
		padding: 0.6rem 0.7rem 0.75rem;
	}

	.location-card--editorial .location-card__actions {
		margin-top: 0.35rem;
		gap: 0.4rem 0.65rem;
	}
}

/* Footer mobile densify — brand full, Katalog|Informacje, Kontakt full */
@media (max-width: 639px) {
	.site-footer {
		padding-top: var(--section-space-md) !important;
	}

	.site-footer .footer-grid,
	.site-footer .footer-main {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 0.85rem 1rem !important;
	}

	.site-footer .footer-brand {
		grid-column: 1 / -1 !important;
		gap: 0.4rem !important;
	}

	.site-footer .footer-brand p {
		font-size: 0.9rem;
		max-width: none;
	}

	.site-footer .footer-contact {
		grid-column: 1 / -1 !important;
	}

	.site-footer .footer-contact p {
		margin-bottom: 0.45rem !important;
	}

	.site-footer nav,
	.site-footer .footer-links {
		gap: 0.35rem !important;
	}

	.site-footer h2 {
		margin-bottom: 0.3rem !important;
		font-size: 0.72rem !important;
	}

	.site-footer nav a,
	.site-footer .footer-contact p,
	.site-footer .footer-contact > a {
		font-size: 0.88rem !important;
		line-height: 1.4 !important;
	}

	.site-footer .footer-payments {
		margin-top: 0.85rem !important;
		padding-top: 0.65rem !important;
	}

	.site-footer .footer-bottom {
		margin-top: 0.65rem !important;
		padding-top: 0.6rem !important;
		gap: 0.4rem 0.75rem !important;
	}
}

/* Desktop footer micro-align only */
@media (min-width: 980px) {
	.site-footer .footer-grid {
		align-items: start;
	}

	.site-footer .footer-payments {
		margin-top: var(--section-space-sm);
	}
}

/* PDP purchase: stack ATC / Buy Now on narrow screens (override mobile-final 2-col). */
@media (max-width: 767px) {
	.single-product form.cart .purchase-row .purchase-actions.action-group,
	.single-product form.cart .purchase-actions.action-group {
		grid-template-columns: 1fr !important;
		width: 100%;
	}
}

/* Heading width contract — brand layer loads last; release stale ch caps when stacked. */
@media (max-width: 899px) {
	.location-page--v2 .location-hero__copy h1,
	.location-page--v2 .location-hero h1,
	.locations-section--siblings .section-heading h2,
	.locations-section--compact .section-heading h2,
	.cta-band__copy h2 {
		max-width: none;
		width: 100%;
		inline-size: 100%;
	}
}

@media (max-width: 979px) {
	.section-heading h2,
	.section-heading-center h2,
	.why-section .section-heading-center h2 {
		max-width: none;
		width: 100%;
		inline-size: 100%;
	}
}

