/* ==========================================================================
   CollectionZF design system — tokens, shell (announce, header, drawer, footer),
   shared components (buttons, cards, rails, badges, modal). Loaded site-wide.
   ========================================================================== */

:root {
	--zf-ink: #151515;
	--zf-ink-2: #45413d;
	--zf-muted: #8a837b;
	--zf-line: #e8e3dc;
	--zf-bg: #ffffff;
	--zf-cream: #f7f4ef;
	--zf-stone: #eee8e0;
	--zf-sand: #d9c9b2;
	--zf-sky: #5f84b4;
	--zf-sky-deep: #3d6699;
	--zf-sale: #151515;
	--zf-ok: #3f7a52;

	--zf-font-display: "Jost", "Futura", "Helvetica Neue", Arial, sans-serif;
	--zf-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

	--zf-wrap: 1320px;
	--zf-gutter: clamp(16px, 3.2vw, 40px);
	--zf-radius: 2px;
	--zf-radius-lg: 6px;
	--zf-header-h: 72px;
	--zf-announce-h: 36px;
	--zf-ease: cubic-bezier(.2, .7, .2, 1);
	--zf-shadow: 0 18px 50px -24px rgba(21, 21, 21, .35);

	/* Glozin primary colour → ink */
	--gz-color-primary: var(--zf-ink);
	--gz-color-dark: var(--zf-ink);
}

/* ---------- base ---------- */
body.zf {
	font-family: var(--zf-font);
	color: var(--zf-ink);
	background: var(--zf-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.zf h1, body.zf h2, body.zf h3, body.zf h4,
body.zf .product_title, body.zf .page-header__title {
	font-family: var(--zf-font-display);
	letter-spacing: .01em;
	color: var(--zf-ink);
}
.zf-wrap {
	width: 100%;
	max-width: var(--zf-wrap);
	margin-inline: auto;
	padding-inline: var(--zf-gutter);
	box-sizing: border-box;
}
.zf-ico { width: 22px; height: 22px; flex: none; display: block; }
.zf-center { text-align: center; margin-top: 40px; }
.zf a:focus-visible, .zf button:focus-visible { outline: 2px solid var(--zf-sky); outline-offset: 3px; }

/* ---------- typography helpers ---------- */
.zf-eyebrow {
	font: 500 12px/1.2 var(--zf-font);
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 18px;
}
.zf-eyebrow--dark { color: var(--zf-muted); }
.zf-h2 {
	font: 400 clamp(28px, 3.4vw, 44px)/1.08 var(--zf-font-display) !important;
	text-transform: uppercase;
	letter-spacing: .04em !important;
	margin: 0;
}
.zf-h2--sm { font-size: clamp(22px, 2.4vw, 30px) !important; }
.zf-sub { color: var(--zf-muted); margin: 12px 0 0; }
.zf-head { margin-bottom: 36px; }
.zf-head--center { text-align: center; }
.zf-head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.zf-link {
	display: inline-flex; align-items: center; gap: 10px;
	font: 500 13px/1 var(--zf-font); letter-spacing: .06em; text-transform: uppercase;
	color: inherit; text-decoration: none;
	padding-bottom: 4px; border-bottom: 1px solid currentColor;
}
.zf-link .zf-ico { width: 18px; height: 18px; transition: transform .35s var(--zf-ease); }
a:hover > .zf-link .zf-ico, .zf-link:hover .zf-ico { transform: translateX(4px); }

/* ---------- buttons ---------- */
.zf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 0 30px;
	font: 500 13px/1 var(--zf-font); letter-spacing: .08em; text-transform: uppercase;
	border: 1px solid transparent; border-radius: var(--zf-radius);
	max-width: 100%; box-sizing: border-box; text-align: center;
	cursor: pointer; text-decoration: none !important;
	transition: background .3s var(--zf-ease), color .3s var(--zf-ease), border-color .3s var(--zf-ease), transform .3s var(--zf-ease);
}
.zf-btn .zf-ico { width: 18px; height: 18px; }
.zf-btn--sm { min-height: 42px; padding: 0 22px; font-size: 12px; }
.zf-btn--dark { background: var(--zf-ink); color: #fff !important; }
.zf-btn--dark:hover { background: #000; transform: translateY(-1px); }
.zf-btn--light { background: #fff; color: var(--zf-ink) !important; }
.zf-btn--light:hover { background: var(--zf-ink); color: #fff !important; }
.zf-btn--outline { background: transparent; color: var(--zf-ink) !important; border-color: var(--zf-ink); }
.zf-btn--outline:hover { background: var(--zf-ink); color: #fff !important; }
.zf-btn--ghost-light { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.7); }
.zf-btn--ghost-light:hover { background: #fff; color: var(--zf-ink) !important; border-color: #fff; }

/* ---------- announcement bar ---------- */
.zf-announce {
	height: var(--zf-announce-h);
	background: var(--zf-ink); color: #fff;
	overflow: hidden; display: flex; align-items: center;
	font: 400 12px/1 var(--zf-font); letter-spacing: .12em; text-transform: uppercase;
}
.zf-announce__track { display: flex; width: max-content; animation: zf-marquee 26s linear infinite; will-change: transform; }
.zf-announce__group { display: flex; align-items: center; }
.zf-announce__group span { padding: 0 28px; white-space: nowrap; }
.zf-announce__group i { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,.45); }
.zf-announce:hover .zf-announce__track { animation-play-state: paused; }
@keyframes zf-marquee { to { transform: translateX(-50%); } }

/* ---------- header ---------- */
body.zf #site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 90;
	background: transparent;
	box-shadow: none;
	border: 0;
}
.zf-header {
	height: var(--zf-header-h);
	background: rgba(255,255,255,.97);
	border-bottom: 1px solid var(--zf-line);
	color: var(--zf-ink);
	transition: background .35s var(--zf-ease), color .35s var(--zf-ease), border-color .35s var(--zf-ease), box-shadow .35s var(--zf-ease);
}
.zf-header.is-scrolled { box-shadow: 0 8px 30px -22px rgba(0,0,0,.45); }
.zf-header__inner {
	height: 100%;
	max-width: 1600px; margin: 0 auto; padding: 0 var(--zf-gutter);
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px;
}
.zf-header__left { display: flex; align-items: center; gap: 8px; min-width: 0; }
.zf-header__right { display: flex; align-items: center; justify-content: flex-end; gap: 2px; }
.zf-nav { display: flex; gap: 30px; }
.zf-nav a {
	position: relative; color: inherit !important; text-decoration: none;
	font: 500 13px/1 var(--zf-font); letter-spacing: .04em; padding: 8px 0; white-space: nowrap;
}
.zf-nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor;
	transform: scaleX(0); transform-origin: right; transition: transform .35s var(--zf-ease);
}
.zf-nav a:hover::after, .zf-nav a[aria-current]::after { transform: scaleX(1); transform-origin: left; }

.zf-logo {
	display: inline-flex; align-items: baseline; gap: 8px;
	color: inherit !important; text-decoration: none !important; white-space: nowrap;
	font-family: var(--zf-font-display); text-transform: uppercase;
}
.zf-logo__word { font-weight: 400; font-size: 24px; letter-spacing: .32em; margin-right: -.32em; }
.zf-logo__mark {
	font-weight: 500; font-size: 13px; letter-spacing: .12em;
	padding: 4px 6px 3px; border: 1px solid currentColor; line-height: 1; transform: translateY(-3px);
}
.zf-logo--sm .zf-logo__word { font-size: 18px; }
.zf-logo--light { color: #fff !important; }

.zf-icon-btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%;
	background: transparent; color: inherit !important; cursor: pointer;
	transition: background .25s;
}
.zf-icon-btn:hover { background: rgba(21,21,21,.06); }
.zf-count {
	position: absolute; top: 5px; right: 3px;
	min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; box-sizing: border-box;
	background: var(--zf-ink); color: #fff;
	font: 600 9.5px/16px var(--zf-font); text-align: center;
}
.zf-count.empty-counter { display: none; }
.zf-header__burger { display: none; }

/* overlay variant on the homepage (transparent over the hero until scroll) */
.zf-header--overlay:not(.is-scrolled):not(.is-hover) {
	background: transparent; border-color: transparent; color: #fff;
}
.zf-header--overlay:not(.is-scrolled):not(.is-hover) .zf-icon-btn:hover { background: rgba(255,255,255,.14); }
.zf-header--overlay:not(.is-scrolled):not(.is-hover) .zf-count:not(.empty-counter) { background: #fff; color: var(--zf-ink); }

/* hide Glozin leftovers if any header part slips through */
body.zf .site-header__desktop, body.zf .site-header__mobile, body.zf .campaign-bar, body.zf .topbar { display: none !important; }

/* ---------- mobile drawer ---------- */
.zf-drawer { position: fixed; inset: 0; z-index: 1000; }
.zf-drawer[hidden] { display: none; }
.zf-drawer__backdrop { position: absolute; inset: 0; background: rgba(21,21,21,.45); opacity: 0; transition: opacity .35s; }
.zf-drawer__panel {
	position: absolute; inset: 0 auto 0 0; width: min(88vw, 380px);
	background: #fff; display: flex; flex-direction: column;
	transform: translateX(-100%); transition: transform .4s var(--zf-ease);
	overflow-y: auto;
}
.zf-drawer.is-open .zf-drawer__backdrop { opacity: 1; }
.zf-drawer.is-open .zf-drawer__panel { transform: none; }
.zf-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 16px 16px 24px; border-bottom: 1px solid var(--zf-line); }
.zf-drawer__nav { display: flex; flex-direction: column; padding: 12px 24px; }
.zf-drawer__nav a {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 0; border-bottom: 1px solid var(--zf-line);
	font: 400 20px/1 var(--zf-font-display); text-transform: uppercase; letter-spacing: .06em;
	color: var(--zf-ink) !important; text-decoration: none;
}
.zf-drawer__nav .zf-ico { width: 18px; height: 18px; color: var(--zf-muted); }
.zf-drawer__links { display: flex; flex-direction: column; gap: 4px; padding: 16px 24px; }
.zf-drawer__links a { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: var(--zf-ink-2) !important; text-decoration: none; font-size: 14px; }
.zf-drawer__links .zf-ico { width: 20px; height: 20px; }
.zf-drawer__note { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 18px 24px; background: var(--zf-cream); font-size: 13px; color: var(--zf-ink-2); }
body.zf-no-scroll { overflow: hidden; }

/* ---------- badges / pills ---------- */
.zf-badge {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	padding: 6px 9px 5px; border-radius: var(--zf-radius);
	font: 600 10px/1 var(--zf-font); letter-spacing: .12em; text-transform: uppercase;
	background: #fff; color: var(--zf-ink);
}
.zf-badge--sale { background: var(--zf-sale); color: #fff; }
.zf-badge--soldout { background: rgba(255,255,255,.85); color: var(--zf-muted); }

/* ---------- product card ---------- */
.zf-card { position: relative; display: flex; flex-direction: column; }
.zf-card__media {
	position: relative; display: block; overflow: hidden;
	aspect-ratio: 3 / 4; background: var(--zf-stone); border-radius: var(--zf-radius);
}
.zf-card__img {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important;
	object-fit: cover; object-position: center top;
	transition: opacity .5s var(--zf-ease), transform 1.2s var(--zf-ease);
}
.zf-card__img--alt { opacity: 0; }
.zf-card:hover .zf-card__img { transform: scale(1.04); }
.zf-card:hover .zf-card__img--alt { opacity: 1; }
.zf-card__quick {
	position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 2;
	display: flex; align-items: center; justify-content: center; height: 42px;
	background: rgba(255,255,255,.95); color: var(--zf-ink);
	font: 500 12px/1 var(--zf-font); letter-spacing: .08em; text-transform: uppercase;
	transform: translateY(calc(100% + 12px)); transition: transform .45s var(--zf-ease);
}
.zf-card:hover .zf-card__quick { transform: none; }
.zf-card__fav {
	position: absolute; top: 10px; right: 10px; z-index: 3;
	width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.9); color: var(--zf-ink) !important;
	opacity: 0; transform: translateY(-4px); transition: opacity .3s, transform .3s var(--zf-ease);
}
.zf-card__fav .zf-ico { width: 17px; height: 17px; }
.zf-card:hover .zf-card__fav { opacity: 1; transform: none; }
.zf-card__body { padding: 14px 2px 0; display: grid; gap: 6px; }
.zf-card__title { margin: 0 !important; font: 400 14px/1.35 var(--zf-font) !important; letter-spacing: 0 !important; }
.zf-card__title a { color: var(--zf-ink) !important; text-decoration: none; }
.zf-card__price { font: 500 14px/1.2 var(--zf-font); color: var(--zf-ink); }
.zf-card__price del { color: var(--zf-muted); font-weight: 400; margin-right: 6px; opacity: 1; }
.zf-card__price ins { text-decoration: none; }
.zf-card__colors { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.zf-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.zf-dot-more { font-size: 11px; color: var(--zf-muted); }
.zf-card.is-soldout .zf-card__img { filter: grayscale(.35); opacity: .8; }
@media (hover: none) {
	.zf-card__fav { opacity: 1; transform: none; }
	.zf-card__quick { display: none; }
}

/* ---------- product grid / rail ---------- */
.zf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px 20px; }
.zf-rail { position: relative; }
.zf-rail__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 5 * 16px) / 6);
	gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
	padding-bottom: 4px;
}
.zf-rail__track::-webkit-scrollbar { display: none; }
.zf-rail__item { scroll-snap-align: start; }
.zf-rail__item[hidden] { display: none; }
.zf-rail__nav {
	position: absolute; top: calc(50% - 50px); z-index: 4;
	width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--zf-line);
	background: #fff; color: var(--zf-ink); cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--zf-shadow); transition: opacity .3s, transform .3s var(--zf-ease);
}
.zf-rail__nav:hover { transform: scale(1.06); }
.zf-rail__nav[disabled] { opacity: 0; pointer-events: none; }
.zf-rail__nav--prev { left: -22px; }
.zf-rail__nav--prev .zf-ico { transform: rotate(180deg); }
.zf-rail__nav--next { right: -22px; }

/* ---------- tabs (pill row) ---------- */
.zf-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 28px; margin-top: 22px; }
.zf-tabs button {
	position: relative; background: none; border: 0; padding: 8px 0; cursor: pointer;
	font: 400 14px/1 var(--zf-font); color: var(--zf-muted); letter-spacing: .02em;
}
.zf-tabs button[aria-selected="true"] { color: var(--zf-ink); font-weight: 500; }
.zf-tabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--zf-ink); }

/* ---------- section rhythm ---------- */
.zf-section { padding: clamp(56px, 8vw, 104px) 0; }
.zf-section--tight { padding-top: 0; }

/* ---------- modal ---------- */
.zf-modal { position: fixed; inset: 0; z-index: 1001; display: flex; align-items: center; justify-content: center; padding: 16px; }
.zf-modal[hidden] { display: none; }
.zf-modal__backdrop { position: absolute; inset: 0; background: rgba(21,21,21,.5); }
.zf-modal__box {
	position: relative; width: min(680px, 100%); max-height: calc(100vh - 32px); overflow: auto;
	background: #fff; padding: clamp(24px, 4vw, 44px); border-radius: var(--zf-radius-lg);
	animation: zf-pop .35s var(--zf-ease);
}
.zf-modal__box h2 { font: 400 26px/1.1 var(--zf-font-display); text-transform: uppercase; letter-spacing: .05em; margin: 0 0 12px; }
.zf-modal__box p { color: var(--zf-ink-2); font-size: 14px; line-height: 1.6; }
.zf-modal__close { position: absolute; top: 12px; right: 12px; }
.zf-modal__help { display: flex; align-items: center; gap: 10px; margin: 18px 0 0; }
.zf-modal__help a { color: var(--zf-ink); }
@keyframes zf-pop { from { opacity: 0; transform: translateY(12px); } }
.zf-table-wrap { overflow-x: auto; margin: 18px 0 0; }
.zf-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 460px; }
.zf-table th, .zf-table td { padding: 11px 12px; text-align: center; border-bottom: 1px solid var(--zf-line); }
.zf-table th { font-weight: 500; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--zf-muted); background: var(--zf-cream); }
.zf-table tbody tr:hover { background: var(--zf-cream); }

/* ---------- footer ---------- */
body.zf #site-footer { border: 0 !important; padding: 0 !important; background: var(--zf-ink); }
.zf-footer { background: var(--zf-ink); color: rgba(255,255,255,.72); padding: 72px 0 28px; }
.zf-footer__top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.4fr; gap: 48px; }
.zf-footer__brand p { margin: 22px 0 24px; line-height: 1.7; font-size: 14px; max-width: 340px; }
body.zf .zf-footer h4 { color: #fff; font: 500 12px/1 var(--zf-font) !important; letter-spacing: .2em !important; text-transform: uppercase; margin: 0 0 22px; }
.zf-footer__col { display: flex; flex-direction: column; gap: 12px; }
.zf-footer__col a { color: rgba(255,255,255,.72) !important; text-decoration: none; font-size: 14px; transition: color .25s; }
.zf-footer__col a:hover { color: #fff !important; }
.zf-footer__news p { font-size: 14px; margin: 0 0 6px; }
.zf-social { display: flex; gap: 8px; }
.zf-social a {
	width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22);
	display: flex; align-items: center; justify-content: center; color: #fff !important;
	transition: background .25s, color .25s;
}
.zf-social a:hover { background: #fff; color: var(--zf-ink) !important; }
.zf-social .zf-ico { width: 18px; height: 18px; }
.zf-news { display: flex; border-bottom: 1px solid rgba(255,255,255,.4); margin-top: 8px; }
.zf-news input {
	flex: 1; min-width: 0; background: transparent !important; border: 0 !important; box-shadow: none !important;
	color: #fff !important; padding: 14px 0 !important; font-size: 14px; outline: none;
}
.zf-news input::placeholder { color: rgba(255,255,255,.5); }
.zf-news button { background: none; border: 0; color: #fff; cursor: pointer; padding: 0 4px; }
.zf-news-ok { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 14px; }
.zf-footer__bottom {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
	margin-top: 64px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); font-size: 13px;
}
.zf-pay { display: inline-flex; align-items: center; gap: 8px; }
.zf-pay .zf-ico { width: 20px; height: 20px; }
.zf-footer__legal { display: flex; gap: 20px; }
.zf-footer__legal a { color: rgba(255,255,255,.72) !important; text-decoration: none; }
body.zf #gotop .gotop-height-scroll { display: none !important; }

/* ---------- Glozin shop/catalog harmonisation ---------- */
body.zf .page-header__title { text-transform: uppercase; font-weight: 400 !important; letter-spacing: .05em !important; }
body.zf ul.products li.product .woocommerce-loop-product__title,
body.zf ul.products li.product h2 a { font-family: var(--zf-font) !important; font-weight: 400 !important; }
body.zf ul.products li.product .product-thumbnail { position: relative; border-radius: var(--zf-radius); overflow: hidden; }
body.zf ul.products li.product .product-thumbnail img { aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; }
body.zf .woocommerce-badges, body.zf .onsale { display: none !important; }
body.zf .zf-badge--loop { top: 12px; left: 12px; }
body.zf .button, body.zf button.button, body.zf .single_add_to_cart_button, body.zf .checkout-button, body.zf #place_order {
	border-radius: var(--zf-radius) !important;
	letter-spacing: .08em; text-transform: uppercase; font-weight: 500 !important;
}

/* ---------- motion ---------- */
.zf-reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--zf-ease), transform .9s var(--zf-ease); }
.zf-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.zf-announce__track { animation-duration: 40s; } /* keep the right-to-left ticker, just calmer */
	.zf-reveal { opacity: 1; transform: none; transition: none; }
	* { scroll-behavior: auto !important; }
}

/* ---------- responsive ---------- */
@media (max-width: 1199px) {
	.zf-rail__track { grid-auto-columns: calc((100% - 3 * 16px) / 4); }
	.zf-nav { gap: 20px; }
}
@media (max-width: 991px) {
	:root { --zf-header-h: 62px; }
	.zf-nav { display: none; }
	.zf-header__burger { display: inline-flex; }
	.zf-logo__word { font-size: 19px; letter-spacing: .26em; margin-right: -.26em; }
	.zf-logo__mark { font-size: 11px; }
	.zf-grid { grid-template-columns: repeat(3, 1fr); }
	.zf-rail__track { grid-auto-columns: calc((100% - 2 * 14px) / 3); gap: 14px; }
	.zf-rail__nav { display: none; }
	.zf-footer__top { grid-template-columns: 1fr 1fr; }
	.zf-footer__brand, .zf-footer__news { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.zf-hide-sm { display: none !important; }
	.zf-header__inner { gap: 8px; grid-template-columns: 1fr auto 1fr; }
	.zf-logo { gap: 6px; }
	.zf-logo__word { font-size: 15px; letter-spacing: .16em; margin-right: -.16em; }
	.zf-logo__mark { font-size: 9.5px; padding: 3px 4px 2px; transform: translateY(-2px); }
	.zf-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; }
	.zf-rail__track { grid-auto-columns: 62%; gap: 12px; margin-inline: calc(-1 * var(--zf-gutter)); padding-inline: var(--zf-gutter); scroll-padding-inline: var(--zf-gutter); }
	.zf-head--split { flex-direction: column; align-items: flex-start; }
	.zf-footer { padding-top: 56px; }
	.zf-footer__top { gap: 36px; }
	.zf-footer__bottom { flex-direction: column; align-items: flex-start; }
	.zf-btn { min-height: 48px; padding: 0 22px; }
}

/* ---------- live QA: Glozin catalog ---------- */
body.zf ul.products li.product .glozin-rating,
body.zf ul.products li.product .star-rating,
body.zf ul.products li.product .product-rating { display: none !important; }
body.zf ul.products li.product .price ins,
body.zf ul.products li.product .price ins .amount { color: var(--zf-ink) !important; text-decoration: none; }
body.zf ul.products li.product .price del { color: var(--zf-muted) !important; }

/* ==========================================================================
   v2 — shared blocks: pre-footer trustline, how-to steps, delivery ETA
   ========================================================================== */
.zf-prefoot { background: var(--zf-cream); border-top: 1px solid var(--zf-line); }
.zf-trustline { display: grid; grid-template-columns: repeat(4, 1fr); }
.zf-trustline__item { display: flex; align-items: center; gap: 14px; padding: 28px 20px; color: var(--zf-ink); }
.zf-trustline__item + .zf-trustline__item { border-left: 1px solid var(--zf-line); }
.zf-trustline__item .zf-ico { width: 28px; height: 28px; stroke-width: 1.2; }
.zf-trustline__item strong { display: block; font: 500 14px/1.3 var(--zf-font); }
.zf-trustline__item span { display: block; font-size: 13px; color: var(--zf-muted); margin-top: 2px; }

.zf-how { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: none; }
.zf-how__step {
	position: relative; margin: 0 !important; padding: 36px 30px 32px; background: var(--zf-cream);
	border-radius: var(--zf-radius-lg); overflow: hidden; transition: transform .4s var(--zf-ease), box-shadow .4s var(--zf-ease);
}
.zf-how__step:hover { transform: translateY(-4px); box-shadow: var(--zf-shadow); }
.zf-how__n { position: absolute; top: 18px; right: 24px; font: 300 56px/1 var(--zf-font-display); color: rgba(21,21,21,.08); }
.zf-how__step .zf-ico { width: 34px; height: 34px; stroke-width: 1.2; margin-bottom: 26px; }
.zf-how__step h3 { margin: 0 0 10px !important; font: 500 19px/1.2 var(--zf-font-display) !important; letter-spacing: .02em !important; }
.zf-how__step p { margin: 0; color: var(--zf-ink-2); font-size: 14px; line-height: 1.65; }

.zf-eta {
	display: flex; align-items: center; gap: 10px; margin: 16px 0 0 !important;
	padding: 12px 14px; border-radius: 8px; background: var(--zf-cream); font-size: 13.5px; color: var(--zf-ink-2);
}
.zf-eta .zf-ico { width: 20px; height: 20px; color: var(--zf-ok); }
.zf-eta strong { color: var(--zf-ink); font-weight: 500; }

@media (max-width: 991px) {
	.zf-trustline { grid-template-columns: repeat(2, 1fr); }
	.zf-trustline__item:nth-child(3) { border-left: 0; }
	.zf-trustline__item:nth-child(n+3) { border-top: 1px solid var(--zf-line); }
	.zf-how { grid-template-columns: 1fr; gap: 12px; }
	.zf-how__step { padding: 26px 22px; display: grid; grid-template-columns: auto 1fr; column-gap: 18px; }
	.zf-how__step .zf-ico { grid-row: span 2; margin: 2px 0 0; }
}
@media (max-width: 600px) {
	.zf-trustline__item { padding: 18px 12px; gap: 10px; }
	.zf-trustline__item .zf-ico { width: 24px; height: 24px; }
	.zf-trustline__item strong { font-size: 13px; }
	.zf-trustline__item span { font-size: 12px; }
}

/* ---------- WhatsApp CTA ---------- */
.zf-cta { background: var(--zf-sky); color: #fff; }
.zf-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 44px; padding-bottom: 44px; }
.zf-cta h2 { color: #fff !important; margin: 0 0 6px; font: 400 clamp(22px, 2.4vw, 30px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .04em !important; }
.zf-cta p { margin: 0; color: rgba(255,255,255,.85); }

@media (max-width: 767px) {
	.zf-cta__inner { flex-direction: column; align-items: flex-start; }
	.zf-cta .zf-btn { width: 100%; }
}

/* v2 QA: price highlight + cards inside content pages */
.zf-card__price ins, .zf-card__price ins .amount, .zf-sticky__info ins { background: none !important; color: inherit !important; }
.zf-page .zf-card__title { font: 400 14px/1.35 var(--zf-font) !important; margin: 0 !important; letter-spacing: 0 !important; text-transform: none !important; }

/* ==========================================================================
   v2 — Glozin panels: side cart + search modal
   ========================================================================== */
body.zf #cart-panel .panel__header, body.zf #cart-panel .panel__title, body.zf #cart-panel .cart-panel__title {
	font: 500 18px/1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .1em;
}
body.zf #cart-panel .woocommerce-mini-cart-item img { border-radius: 8px !important; object-fit: cover; object-position: center top; }
body.zf #cart-panel .woocommerce-mini-cart-item a:not(.remove) { font-weight: 500; color: var(--zf-ink) !important; }
body.zf #cart-panel ins, body.zf #cart-panel ins .amount, body.zf #cart-panel .price .amount { color: var(--zf-ink) !important; background: none !important; text-decoration: none; }
body.zf #cart-panel del, body.zf #cart-panel del .amount { color: var(--zf-muted) !important; }
body.zf #cart-panel [class*="saving"], body.zf #cart-panel [class*="saved"], body.zf #cart-panel .glozin-price-saved {
	border: 0 !important; background: #e9f2ec !important; color: var(--zf-ok) !important; border-radius: 4px !important; font-weight: 500 !important;
}
body.zf #cart-panel .woocommerce-mini-cart__total, body.zf #cart-panel .widget_shopping_cart_footer { background: var(--zf-cream) !important; }
body.zf #cart-panel .woocommerce-mini-cart__buttons .button,
body.zf #cart-panel .widget_shopping_cart_footer .button { min-height: 52px; border-radius: 8px !important; letter-spacing: .08em; }
body.zf #cart-panel .woocommerce-mini-cart__empty-message { text-align: center; padding: 40px 0; color: var(--zf-muted); }

body.zf #search-modal .modal__title, body.zf #search-modal h2, body.zf #search-modal .search-modal__title {
	font: 400 clamp(24px, 3vw, 34px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .06em !important;
}
body.zf #search-modal input[type="search"], body.zf #search-modal input[type="text"] {
	min-height: 58px; border-radius: 60px !important; border: 1px solid var(--zf-line) !important; padding-left: 26px !important; font-size: 16px !important;
	box-shadow: var(--zf-shadow);
}
body.zf #search-modal input:focus { border-color: var(--zf-ink) !important; }

/* free delivery progress (cart, mini-cart, checkout) */
.zf-freeship { margin: 0 0 18px; padding: 14px 16px; border-radius: 10px; background: var(--zf-cream); }
.zf-freeship p { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 13.5px; color: var(--zf-ink-2); }
.zf-freeship p .zf-ico { width: 20px; height: 20px; color: var(--zf-ink); flex: none; }
.zf-freeship strong { color: var(--zf-ink); font-weight: 600; }
.zf-freeship__bar { height: 6px; border-radius: 6px; background: rgba(21,21,21,.1); overflow: hidden; }
.zf-freeship__bar i { display: block; height: 100%; border-radius: 6px; background: var(--zf-ink); transition: width .6s var(--zf-ease); }
.zf-freeship.is-unlocked { background: #e9f2ec; }
.zf-freeship.is-unlocked .zf-ico, .zf-freeship.is-unlocked strong { color: var(--zf-ok); }
.zf-freeship.is-unlocked .zf-freeship__bar i { background: var(--zf-ok); }
#cart-panel .zf-freeship { margin: 0 0 14px; }
.zf-footer__contact { list-style: none; margin: -8px 0 22px !important; padding: 0 !important; display: grid; gap: 10px; }
.zf-footer__contact li { display: flex; align-items: center; gap: 10px; margin: 0 !important; font-size: 14px; }
.zf-footer__contact .zf-ico { width: 18px; height: 18px; color: #fff; }
.zf-footer__contact a { color: rgba(255,255,255,.85) !important; text-decoration: none; }
.zf-footer__contact a:hover { color: #fff !important; }
/* newsletter removed: three-column footer */
.zf-footer__top { grid-template-columns: 2fr 1fr 1fr !important; }
@media (max-width: 991px) { .zf-footer__top { grid-template-columns: 1fr 1fr !important; } }

/* ==========================================================================
   v3 product card — image, title, price, one clear CTA (overrides earlier card rules)
   ========================================================================== */
.zf-card { height: 100%; display: flex; flex-direction: column; }
.zf-card__media { border-radius: 10px; }
.zf-card__fav, .zf-card__quick, .zf-card__colors { display: none !important; }
.zf-card__body { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 14px 2px 0; }
html body .zf-card__title {
	margin: 0 !important; font: 500 14.5px/1.35 var(--zf-font) !important; letter-spacing: 0 !important; text-transform: none !important;
	display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.35em);
}
.zf-card__title a { color: var(--zf-ink) !important; text-decoration: none; }
.zf-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.zf-card__price { font: 600 15px/1.2 var(--zf-font); color: var(--zf-ink); }
.zf-card__price del { font-size: 13px; font-weight: 400; }
.zf-card__cta {
	margin-top: auto; display: flex; align-items: center; justify-content: center; gap: 8px;
	height: 44px; border-radius: 8px; background: var(--zf-ink); color: #fff !important; text-decoration: none !important;
	font: 600 13px/1 var(--zf-font); letter-spacing: .06em; text-transform: uppercase;
	transition: background .25s, transform .25s var(--zf-ease);
}
.zf-card__body .zf-card__cta { margin-top: 10px; }
.zf-card__body > .zf-card__price { margin-bottom: auto; }
.zf-card__cta .zf-ico { width: 17px; height: 17px; }
.zf-card__cta:hover { background: #000; transform: translateY(-1px); }
.zf-card__cta--soldout { background: var(--zf-stone); color: var(--zf-muted) !important; letter-spacing: .1em; }
.zf-card__cta--soldout:hover { background: var(--zf-stone); transform: none; }
.zf-card.is-soldout .zf-card__img { filter: grayscale(.25); opacity: .85; }
@media (max-width: 600px) {
	html body .zf-card__title { font-size: 13.5px !important; }
	.zf-card__price { font-size: 14px; }
	.zf-card__cta { height: 40px; font-size: 12px; letter-spacing: .04em; }
	.zf-card__cta .zf-ico { width: 15px; height: 15px; }
}
/* price sits right under the title; CTA stays aligned at the bottom of each row */
html body .zf-card__title { min-height: 0; }
.zf-card__body { gap: 4px; }
.zf-card__body .zf-card__cta { margin-top: auto; }
.zf-card__body > .zf-card__price { margin-bottom: 12px; }

/* mobile: square corners on carousel photos, category tiles and category banners */
@media (max-width: 767px) {
	.zf-rail .zf-card__media,
	.zf-rail .zf-card__media img,
	.zf-tile, .zf-tile img,
	.zf-look, .zf-look__media,
	.zf-banner__media, .zf-banner__media img,
	.zf-hero, .zf-hero img { border-radius: 0 !important; }
}

/* bigger footer logo */
.zf-footer .zf-logo { gap: 12px; }
.zf-footer .zf-logo__word { font-size: 34px; letter-spacing: .3em; margin-right: -.3em; }
.zf-footer .zf-logo__mark { font-size: 17px; padding: 6px 8px 5px; transform: translateY(-5px); }
@media (max-width: 600px) {
	.zf-footer .zf-logo__word { font-size: 28px; letter-spacing: .24em; margin-right: -.24em; }
	.zf-footer .zf-logo__mark { display: inline-block; font-size: 14px; padding: 5px 7px 4px; transform: translateY(-4px); }
}
.zf-footer__credit a { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.zf-footer__credit a:hover { color: var(--zf-sand) !important; }
/* Glozin swaps the header counter via cart fragments: style its element exactly like ours */
.zf-cart-btn .header-cart__counter {
	position: absolute; top: 5px; right: 3px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; box-sizing: border-box;
	background: var(--zf-ink); color: #fff; font: 600 9.5px/16px var(--zf-font); text-align: center;
}
.zf-cart-btn .header-cart__counter.empty-counter { display: none; }
.zf-header--overlay:not(.is-scrolled):not(.is-hover) .zf-cart-btn .header-cart__counter { background: #fff; color: var(--zf-ink); }
/* logo order: [ZF] COLLECTION — letter-spacing compensation moves to the left edge */
.zf-logo { align-items: center; }
.zf-logo__mark { transform: none !important; }
.zf-logo__word { margin-right: 0 !important; margin-left: 0; }

/* ==========================================================================
   Audit pass — tap targets (≥40px on phones), minimum text size, overflow
   ========================================================================== */
body.zf { overflow-x: clip; } /* safety net: never a sideways scroll */
.zf-logo { padding: 7px 0; }
.zf-link { padding-top: 10px; padding-bottom: 6px; }
.zf-badge, .glozin-price-saved, .zf-card__price del { font-size: 12px !important; }
.zf-card__title a { display: inline-block; padding: 3px 0; }
@media (max-width: 767px) {
	/* homepage filter tabs */
	.zf-tabs { gap: 4px 6px; }
	.zf-tabs button { padding: 12px 10px; font-size: 14px; }
	/* footer links + contacts */
	.zf-footer__col { gap: 2px; }
	.zf-footer__col a { padding: 9px 0; }
	.zf-footer__contact a { display: inline-block; padding: 8px 0; }
	.zf-footer__legal a { display: inline-block; padding: 8px 0; }
	/* related carousel bleed matches the product page padding */
	.zf-related .zf-rail__track { margin-inline: 0; padding-inline: 0; }
}
/* hover photo only shows once it has actually loaded */
.zf-card__img--alt:not([src]) { display: none; }
