/* ==========================================================================
   CollectionZF — inner pages: shop/category/search, cart, checkout, thank-you,
   account, 404, content pages (Livraison, FAQ, Contact, Guide des tailles…).
   ========================================================================== */

/* ---------- Glozin title band (cart, checkout, account, pages) ---------- */
body.zf .page-header {
	background: var(--zf-cream);
	padding: clamp(36px, 5vw, 64px) 0 clamp(30px, 4vw, 52px) !important;
	margin-bottom: clamp(32px, 4vw, 56px) !important;
	border-bottom: 1px solid var(--zf-line);
}
body.zf .page-header__title { font: 400 clamp(30px, 4vw, 52px)/1.05 var(--zf-font-display) !important; letter-spacing: .06em !important; margin: 0 !important; }
body.zf .page-header .woocommerce-breadcrumb, body.zf .page-header .glozin-breadcrumb { font-size: 12px !important; letter-spacing: .06em; color: var(--zf-muted) !important; margin-bottom: 12px !important; }
body.zf .page-header .woocommerce-breadcrumb a { color: var(--zf-muted) !important; }

/* ---------- archive banner ---------- */
.zf-banner { background: var(--zf-cream); border-bottom: 1px solid var(--zf-line); margin-bottom: clamp(28px, 3.5vw, 48px); }
.zf-banner__inner { display: grid; grid-template-columns: 1.1fr .9fr; align-items: stretch; gap: 40px; min-height: 340px; }
.zf-banner--plain .zf-banner__inner { grid-template-columns: 1fr; min-height: 0; }
.zf-banner__txt { align-self: center; padding: 48px 0 36px; }
.zf-crumbs { font-size: 12px; letter-spacing: .06em; color: var(--zf-muted); margin-bottom: 26px; display: flex; flex-wrap: wrap; gap: 8px; }
.zf-crumbs a { color: var(--zf-muted) !important; text-decoration: none; }
.zf-crumbs a:hover { color: var(--zf-ink) !important; }
.zf-banner__title { font: 400 clamp(36px, 5vw, 68px)/1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .04em !important; margin: 0 0 18px !important; }
.zf-banner__desc { color: var(--zf-ink-2); max-width: 460px; line-height: 1.7; margin: 0 0 14px; }
.zf-banner__count { font: 500 12px/1 var(--zf-font); letter-spacing: .16em; text-transform: uppercase; color: var(--zf-muted); margin: 0; }
.zf-banner__media { position: relative; overflow: hidden; margin-right: calc(-1 * var(--zf-gutter)); }
.zf-banner__media picture, .zf-banner__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.zf-banner__media img { object-fit: cover; object-position: 50% 28%; }
.zf-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 18px 0 20px; }
.zf-chips::-webkit-scrollbar { display: none; }
.zf-chip {
	flex: none; padding: 10px 18px; border-radius: 40px; border: 1px solid var(--zf-line); background: #fff;
	font: 500 13px/1 var(--zf-font); color: var(--zf-ink) !important; text-decoration: none !important; transition: all .25s;
}
.zf-chip:hover { border-color: var(--zf-ink); }
.zf-chip.is-active { background: var(--zf-ink); border-color: var(--zf-ink); color: #fff !important; }

/* ---------- catalog grid (our cards inside Woo's ul.products) ---------- */
body.zf.woocommerce-shop ul.products,
body.zf.tax-product_cat ul.products,
body.zf.tax-product_tag ul.products,
body.zf.search ul.products {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 20px; margin: 0 0 40px !important; padding: 0 !important;
}
body.zf ul.products li.zf-li { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; list-style: none; flex: none !important; }
body.zf ul.products li.zf-li::before, body.zf ul.products li.zf-li::after { display: none !important; }
body.zf .catalog-toolbar, body.zf .glozin-catalog-toolbar { border: 0 !important; padding: 0 0 22px !important; margin: 0 !important; font-size: 13px; }
body.zf .catalog-toolbar__columns, body.zf .glozin-toolbar-columns, body.zf [class*="toolbar"] .columns-switcher, body.zf .catalog-toolbar .view-switcher { display: none !important; }
body.zf .woocommerce-result-count { font-size: 13px; color: var(--zf-muted); }
body.zf .woocommerce-ordering select { border: 1px solid var(--zf-line) !important; border-radius: 40px !important; padding: 9px 36px 9px 16px !important; font-size: 13px !important; background-color: #fff; }
body.zf .woocommerce-pagination { margin: 20px 0 60px; }
body.zf .woocommerce-pagination .page-numbers { border-radius: 50% !important; }

/* ---------- steps ---------- */
.zf-steps { list-style: none; display: flex; justify-content: center; gap: 0; margin: 0 auto 40px !important; padding: 0 !important; max-width: 640px; }
.zf-steps li { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0 !important; text-align: center; }
.zf-steps li + li::before { content: ""; position: absolute; top: 17px; right: calc(50% + 24px); width: calc(100% - 48px); height: 1px; background: var(--zf-line); }
.zf-steps li.is-done + li::before, .zf-steps li.is-current::before { background: var(--zf-ink); }
.zf-steps__n {
	width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--zf-line); background: #fff; font: 500 13px/1 var(--zf-font); color: var(--zf-muted);
}
.zf-steps__n .zf-ico { width: 16px; height: 16px; }
.zf-steps li.is-current .zf-steps__n, .zf-steps li.is-done .zf-steps__n { background: var(--zf-ink); border-color: var(--zf-ink); color: #fff; }
.zf-steps__l { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--zf-muted); }
.zf-steps li.is-current .zf-steps__l { color: var(--zf-ink); font-weight: 500; }

/* ---------- cart ---------- */
body.zf.woocommerce-cart .shop_table { border: 0 !important; }
body.zf.woocommerce-cart .shop_table thead th { font: 500 11px/1 var(--zf-font) !important; letter-spacing: .14em; text-transform: uppercase; color: var(--zf-muted) !important; border-bottom: 1px solid var(--zf-line) !important; padding-bottom: 14px !important; }
body.zf.woocommerce-cart .shop_table td { border-color: var(--zf-line) !important; padding-top: 22px !important; padding-bottom: 22px !important; }
body.zf.woocommerce-cart .product-thumbnail img { width: 88px !important; height: 110px !important; object-fit: cover; object-position: center top; border-radius: 8px; }
body.zf.woocommerce-cart .product-name a { font: 500 15px/1.35 var(--zf-font) !important; color: var(--zf-ink) !important; }
body.zf.woocommerce-cart .product-price del, body.zf .cart_totals del { color: var(--zf-muted) !important; }
body.zf.woocommerce-cart .product-price ins, body.zf.woocommerce-cart .product-price .amount { color: var(--zf-ink) !important; text-decoration: none; }
body.zf.woocommerce-cart [class*="saving"], body.zf.woocommerce-cart [class*="economie"], body.zf.woocommerce-cart .glozin-price-saved {
	border: 0 !important; background: #e9f2ec !important; color: var(--zf-ok) !important; border-radius: 4px !important; font-weight: 500 !important;
}
body.zf.woocommerce-cart .coupon input.input-text { border-radius: 40px !important; border: 1px solid var(--zf-line) !important; height: 46px; padding: 0 18px !important; }
body.zf.woocommerce-cart .coupon .button { border-radius: 40px !important; height: 46px; }
body.zf .cart-collaterals .cart_totals,
body.zf.woocommerce-cart .cart-collaterals > div:first-child {
	background: var(--zf-cream) !important; border-radius: var(--zf-radius-lg) !important; border: 0 !important;
}
body.zf .cart_totals h2 { font: 500 18px/1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .08em !important; }
body.zf .cart_totals .order-total .amount { font-size: 22px; font-weight: 600; }
body.zf .wc-proceed-to-checkout .checkout-button { min-height: 56px; border-radius: 8px !important; font-size: 14px !important; }
.zf-mini-trust { list-style: none; margin: 20px 0 0 !important; padding: 18px 0 0 !important; border-top: 1px solid var(--zf-line); display: grid; gap: 12px; }
.zf-mini-trust li { display: flex; align-items: center; gap: 12px; margin: 0 !important; font-size: 13px; color: var(--zf-ink-2); }
.zf-mini-trust .zf-ico { width: 20px; height: 20px; color: var(--zf-ink); }
body.zf.woocommerce-cart .cross-sells h2, body.zf.woocommerce-cart .cross-sells > h2 { font: 400 22px/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .05em !important; }

/* empty cart */
body.zf .cart-empty.woocommerce-info, body.zf .wc-empty-cart-message, body.zf .return-to-shop { display: none !important; }
.zf-empty { text-align: center; padding: clamp(40px, 6vw, 80px) 20px; }
.zf-empty__icon { width: 84px; height: 84px; margin: 0 auto 22px; border-radius: 50%; background: var(--zf-cream); display: flex; align-items: center; justify-content: center; }
.zf-empty__icon .zf-ico { width: 34px; height: 34px; stroke-width: 1.2; }
.zf-empty h2 { font: 400 clamp(26px, 3vw, 36px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .05em !important; margin: 0 0 12px !important; }
.zf-empty p { color: var(--zf-muted); margin: 0 0 26px; }
.zf-empty--inline { padding: 40px 20px; background: var(--zf-cream); border-radius: var(--zf-radius-lg); }
.zf-related--page { margin: 40px 0 80px; }

/* ---------- checkout ---------- */
body.zf.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { background: transparent !important; border: 1px dashed var(--zf-line) !important; border-radius: 8px; text-align: center; font-size: 14px; }
body.zf.woocommerce-checkout #customer_details,
body.zf.woocommerce-checkout .woocommerce-checkout-review-order,
body.zf.woocommerce-checkout #order_review { border-radius: var(--zf-radius-lg) !important; }
body.zf.woocommerce-checkout h3#order_review_heading,
body.zf.woocommerce-checkout .woocommerce-billing-fields > h3 {
	font: 500 20px/1.2 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .06em !important;
	display: flex; align-items: center; gap: 12px;
}
body.zf.woocommerce-checkout .woocommerce-billing-fields > h3::before,
body.zf.woocommerce-checkout h3#order_review_heading::before {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%;
	background: var(--zf-ink); color: #fff; font: 500 13px/1 var(--zf-font); letter-spacing: 0;
}
body.zf.woocommerce-checkout .woocommerce-billing-fields > h3::before { content: "1"; }
body.zf.woocommerce-checkout h3#order_review_heading::before { content: "2"; }
body.zf.woocommerce-checkout .form-row label { font: 500 13px/1.2 var(--zf-font) !important; color: var(--zf-ink); margin-bottom: 8px !important; }
body.zf.woocommerce-checkout .form-row input.input-text,
body.zf.woocommerce-checkout .form-row textarea,
body.zf.woocommerce-checkout .form-row select,
body.zf.woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 50px !important; border-radius: 8px !important; border: 1px solid var(--zf-line) !important; background: #fff !important; font-size: 14px !important;
	transition: border-color .2s, box-shadow .2s;
}
body.zf.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px !important; padding-left: 16px !important; }
body.zf.woocommerce-checkout .form-row input.input-text:focus,
body.zf.woocommerce-checkout .form-row textarea:focus { border-color: var(--zf-ink) !important; box-shadow: 0 0 0 3px rgba(21,21,21,.07) !important; outline: none; }
body.zf.woocommerce-checkout .woocommerce-checkout-review-order-table .amount { color: var(--zf-ink) !important; }
body.zf.woocommerce-checkout .woocommerce-checkout-review-order-table ins { text-decoration: none; }
body.zf.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount { font-size: 22px; font-weight: 600; }
body.zf.woocommerce-checkout #payment { background: transparent !important; }
body.zf.woocommerce-checkout #payment .payment_box { background: var(--zf-cream) !important; border-radius: 8px; }
body.zf.woocommerce-checkout #payment .payment_box::before { display: none !important; }
body.zf.woocommerce-checkout #place_order { min-height: 56px; border-radius: 8px !important; font-size: 14px !important; width: 100%; }
body.zf.woocommerce-checkout .woocommerce-privacy-policy-text p { font-size: 12px; color: var(--zf-muted); line-height: 1.6; }
.zf-checkout-note { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0 !important; font-size: 13px; color: var(--zf-ink-2); line-height: 1.5; }
.zf-checkout-note .zf-ico { width: 20px; height: 20px; color: var(--zf-ok); flex: none; }

/* ---------- thank you ---------- */
.zf-thanks { text-align: center; max-width: 720px; margin: 0 auto 40px; padding: 44px 28px; background: var(--zf-cream); border-radius: var(--zf-radius-lg); }
.zf-thanks__icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; background: var(--zf-ok); color: #fff; display: flex; align-items: center; justify-content: center; }
.zf-thanks__icon .zf-ico { width: 30px; height: 30px; stroke-width: 2; }
.zf-thanks h2 { font: 400 clamp(28px, 3.4vw, 40px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .05em !important; margin: 0 0 12px !important; }
.zf-thanks p { color: var(--zf-ink-2); line-height: 1.7; margin: 0 auto 26px; max-width: 520px; }
.zf-thanks__next { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0 !important; padding: 0 !important; }
.zf-thanks__next li { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0 !important; padding: 18px 10px; background: #fff; border-radius: 8px; font-size: 12px; color: var(--zf-muted); }
.zf-thanks__next strong { display: block; color: var(--zf-ink); font-size: 13px; font-weight: 500; }
.zf-thanks__next .zf-ico { width: 24px; height: 24px; color: var(--zf-ink); }
body.zf .woocommerce-order-overview { border-radius: 8px; }
body.zf .woocommerce-thankyou-order-received { display: none !important; }

/* ---------- account / login ---------- */
.zf-auth { display: grid; grid-template-columns: 1fr 1fr; gap: 0; max-width: 1180px; margin: 0 auto 80px; border-radius: var(--zf-radius-lg); overflow: hidden; border: 1px solid var(--zf-line); background: #fff; }
.zf-auth__aside { position: relative; min-height: 560px; color: #fff; }
.zf-auth__aside picture, .zf-auth__aside img { position: absolute; inset: 0; width: 100%; height: 100%; }
.zf-auth__aside img { object-fit: cover; object-position: 60% 50%; }
.zf-auth__aside::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10,10,10,.65) 0%, rgba(10,10,10,.1) 60%); }
.zf-auth__aside-txt { position: absolute; left: 40px; right: 40px; bottom: 40px; z-index: 2; }
.zf-auth__aside h2 { color: #fff !important; font: 400 clamp(26px, 2.6vw, 36px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .04em !important; margin: 0 0 20px !important; }
.zf-auth__aside ul { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.zf-auth__aside li { display: flex; align-items: center; gap: 12px; margin: 0 !important; font-size: 14px; color: rgba(255,255,255,.9); }
.zf-auth__aside .zf-ico { width: 20px; height: 20px; }
.zf-auth__forms { padding: clamp(28px, 4vw, 56px); align-self: center; }
.zf-auth__forms h2 { font: 400 24px/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .06em !important; text-align: left !important; }
.zf-auth__forms .u-columns, .zf-auth__forms .col2-set { display: grid !important; grid-template-columns: 1fr; gap: 36px; }
.zf-auth__forms .u-column1, .zf-auth__forms .u-column2, .zf-auth__forms .col-1, .zf-auth__forms .col-2 { width: 100% !important; max-width: none !important; float: none !important; padding: 0 !important; }
.zf-auth__forms .u-column2 { padding-top: 32px !important; border-top: 1px solid var(--zf-line); }
.zf-auth__forms input.input-text { min-height: 50px; border-radius: 8px !important; border: 1px solid var(--zf-line) !important; }
.zf-auth__forms .button { min-height: 52px; border-radius: 8px !important; width: 100%; }
body.zf.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0 !important; border: 1px solid var(--zf-line); border-radius: var(--zf-radius-lg); overflow: hidden; }
body.zf.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0 !important; border-bottom: 1px solid var(--zf-line); }
body.zf.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.zf.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 14px 18px; color: var(--zf-ink) !important; font-size: 14px; text-decoration: none; }
body.zf.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: var(--zf-ink); color: #fff !important; }

/* ---------- 404 ---------- */
body.zf.error404 .page-header { display: none !important; }
.zf-404__hero { text-align: center; padding: clamp(56px, 8vw, 110px) 0 clamp(40px, 6vw, 70px); background: radial-gradient(ellipse at 50% 0%, var(--zf-cream) 0%, #fff 70%); }
.zf-404__code { font: 300 clamp(110px, 20vw, 240px)/.85 var(--zf-font-display); letter-spacing: .02em; margin: 0 0 10px; background: linear-gradient(180deg, var(--zf-ink) 30%, var(--zf-sand) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.zf-404 h1 { font: 400 clamp(26px, 3.4vw, 40px)/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .05em !important; margin: 0 0 14px !important; }
.zf-404__hero > .zf-wrap > p:not(.zf-404__code) { color: var(--zf-ink-2); max-width: 500px; margin: 0 auto 30px; line-height: 1.7; }
.zf-404__search { display: flex; align-items: center; gap: 10px; max-width: 520px; margin: 0 auto 26px; padding: 6px 6px 6px 18px; border: 1px solid var(--zf-line); border-radius: 60px; background: #fff; box-shadow: var(--zf-shadow); }
.zf-404__search .zf-ico { width: 20px; height: 20px; color: var(--zf-muted); }
.zf-404__search input[type="search"] { flex: 1; min-width: 0; border: 0 !important; box-shadow: none !important; background: transparent !important; font-size: 15px; padding: 10px 0 !important; outline: none; }
.zf-404__search .zf-btn { border-radius: 40px; }
.zf-404__links { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 24px; }

/* ---------- content pages ---------- */
.zf-page { max-width: 880px; margin: 0 auto clamp(48px, 6vw, 90px); font-size: 16px; line-height: 1.75; color: var(--zf-ink-2); }
.zf-page--wide { max-width: var(--zf-wrap); }
.zf-page .zf-lead { font: 300 clamp(20px, 2vw, 26px)/1.5 var(--zf-font-display); color: var(--zf-ink); margin: 0 0 36px; }
.zf-page h2 { font: 500 clamp(20px, 2vw, 26px)/1.2 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .05em !important; color: var(--zf-ink) !important; margin: 48px 0 16px !important; }
.zf-page h3 { font: 500 17px/1.3 var(--zf-font) !important; color: var(--zf-ink) !important; margin: 28px 0 10px !important; }
.zf-page p { margin: 0 0 14px; }
.zf-page ul { padding-left: 20px; }
.zf-page li { margin-bottom: 8px; }
.zf-page a:not(.zf-btn):not(.zf-contact__card) { color: var(--zf-ink); text-underline-offset: 3px; }
.zf-page .zf-sc-trust { margin: 0 calc(50% - 50vw) 48px; background: var(--zf-cream); border-block: 1px solid var(--zf-line); }
.zf-page .zf-how { margin: 24px 0 !important; }
.zf-page .zf-table { min-width: 520px; }
.zf-page .zf-table-wrap { border: 1px solid var(--zf-line); border-radius: var(--zf-radius-lg); }
.zf-page .zf-table tbody tr:last-child td { border-bottom: 0; }
.zf-callout { display: flex; gap: 16px; padding: 22px 24px; border-radius: var(--zf-radius-lg); background: var(--zf-cream); margin: 28px 0; }
.zf-callout .zf-ico { width: 26px; height: 26px; flex: none; color: var(--zf-ink); }
.zf-callout strong { color: var(--zf-ink); }
.zf-cta--inline { border-radius: var(--zf-radius-lg); margin: 56px 0 0; padding: 0 clamp(20px, 3vw, 40px); }
.zf-page .zf-grid { margin-top: 10px; }

/* FAQ */
.zf-faq__group { margin-top: 40px !important; }
.zf-faq__group:first-child { margin-top: 0 !important; }
.zf-faq__item { border-bottom: 1px solid var(--zf-line); }
.zf-faq__item summary {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px;
	padding: 20px 0; font: 500 16px/1.4 var(--zf-font); color: var(--zf-ink);
}
.zf-faq__item summary::-webkit-details-marker { display: none; }
.zf-faq__item summary .zf-ico { width: 20px; height: 20px; flex: none; transition: transform .3s var(--zf-ease); }
.zf-faq__item[open] summary .zf-ico { transform: rotate(45deg); }
.zf-faq__a { padding: 0 40px 20px 0; animation: zf-fade .35s var(--zf-ease); }
.zf-faq__a p { margin: 0; }
@keyframes zf-fade { from { opacity: 0; transform: translateY(-4px); } }

/* Contact */
.zf-contact { display: grid; gap: 40px; }
.zf-contact__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.zf-contact__card {
	display: flex; flex-direction: column; gap: 6px; padding: 26px 24px; border-radius: var(--zf-radius-lg); border: 1px solid var(--zf-line);
	color: var(--zf-ink) !important; text-decoration: none !important; transition: border-color .25s, transform .3s var(--zf-ease), box-shadow .3s;
}
.zf-contact__card:hover { border-color: var(--zf-ink); transform: translateY(-3px); box-shadow: var(--zf-shadow); }
.zf-contact__card .zf-ico { width: 28px; height: 28px; margin-bottom: 12px; stroke-width: 1.3; }
.zf-contact__card strong { font-weight: 500; font-size: 16px; }
.zf-contact__card span { font-size: 13px; color: var(--zf-muted); }
.zf-contact__form { padding: clamp(24px, 3vw, 40px); background: var(--zf-cream); border-radius: var(--zf-radius-lg); }
.zf-contact__form h2 { margin-top: 0 !important; }
.zf-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.zf-field { margin: 0 0 16px !important; }
.zf-field label { display: block; font: 500 13px/1 var(--zf-font); color: var(--zf-ink); margin-bottom: 8px; }
.zf-field input, .zf-field textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--zf-line) !important; border-radius: 8px !important; background: #fff !important; padding: 14px 16px !important; font: 400 15px/1.4 var(--zf-font); }
.zf-field input:focus, .zf-field textarea:focus { border-color: var(--zf-ink) !important; outline: none; box-shadow: 0 0 0 3px rgba(21,21,21,.07); }
.zf-hp { position: absolute !important; left: -9999px !important; }
.zf-notice-ok { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-radius: 8px; background: #e9f2ec; color: var(--zf-ok); font-weight: 500; }

/* ---------- responsive ---------- */
@media (max-width: 1199px) {
	body.zf.woocommerce-shop ul.products, body.zf.tax-product_cat ul.products, body.zf.search ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
	.zf-banner__inner { grid-template-columns: 1fr; min-height: 0; gap: 0; }
	.zf-banner__media { order: -1; height: 220px; margin: 0 calc(-1 * var(--zf-gutter)); }
	.zf-banner__txt { padding: 28px 0 8px; }
	.zf-auth { grid-template-columns: 1fr; }
	.zf-auth__aside { min-height: 260px; }
	.zf-contact__cards { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	body.zf.woocommerce-shop ul.products, body.zf.tax-product_cat ul.products, body.zf.search ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
	.zf-banner__media { height: 180px; }
	.zf-crumbs { margin-bottom: 16px; }
	.zf-steps__l { font-size: 10px; letter-spacing: .04em; }
	.zf-thanks__next { grid-template-columns: 1fr; }
	.zf-auth__aside-txt { left: 22px; right: 22px; bottom: 22px; }
	.zf-field-row { grid-template-columns: 1fr; gap: 0; }
	.zf-404__search { flex-wrap: wrap; border-radius: 16px; padding: 12px; }
	.zf-404__search .zf-btn { width: 100%; }
	.zf-faq__a { padding-right: 0; }
}

/* ---------- v2 QA fixes ---------- */
body.zf.woocommerce-shop .catalog-toolbar__center,
body.zf.tax-product_cat .catalog-toolbar__center,
body.zf.search .catalog-toolbar__center { visibility: hidden; }
.zf-banner__media { margin: 28px calc(-1 * var(--zf-gutter)) 28px 0; border-radius: var(--zf-radius-lg) 0 0 var(--zf-radius-lg); }
body.zf .woocommerce .bg-light-grey, body.zf.woocommerce-cart .cart-collaterals .bg-light-grey { background: var(--zf-cream) !important; }
/* login: aside + one roomy column (login, then register) */
.zf-auth { grid-template-columns: .9fr 1.1fr; }
.zf-auth .woocommerce-customer-login { flex-direction: column !important; gap: 32px !important; }
.zf-auth .woocommerce-customer-login > * { width: 100% !important; max-width: none !important; flex: none !important; }
.zf-auth .woocommerce-customer-login > * + * { padding-top: 30px; border-top: 1px solid var(--zf-line); }
.zf-auth .woocommerce-customer-login__title { text-align: left !important; font: 400 24px/1.1 var(--zf-font-display) !important; text-transform: uppercase; letter-spacing: .06em !important; }
.zf-auth .woocommerce-form-login__rememberme { white-space: nowrap; }
@media (max-width: 991px) {
	.zf-banner__media { margin: 0 calc(-1 * var(--zf-gutter)); border-radius: 0; }
	.zf-auth { grid-template-columns: 1fr; }
	.zf-auth__aside::after { background: linear-gradient(0deg, rgba(10,10,10,.78) 0%, rgba(10,10,10,.35) 100%); }
}

/* banner framing: keep faces in the crop at every size */
.zf-banner__media--slide-street img { object-position: 72% 22%; }
.zf-banner__media--tile-studio img { object-position: 50% 18%; }
@media (max-width: 991px) {
	.zf-banner__media { height: 240px; }
	.zf-banner__media--slide-street img { object-position: 66% 18%; }
	.zf-banner__media--tile-studio img { object-position: 50% 14%; }
}
@media (max-width: 600px) { .zf-banner__media { height: 210px; } }
