
/* Zairi Commerce UI - brand-first progressive visuals, no commerce overrides. */
:root {--zf-ui-forest:#0F5123;--zf-ui-coral:#D76C48;--zf-ui-sage:#8CA97C;--zf-ui-cream:#FFF8EA}
.zf-ui-icon{inline-size:1.35em;block-size:1.35em;flex:none;vertical-align:middle;overflow:visible;--zf-icon-ink:currentColor;--zf-icon-accent:var(--zf-ui-coral);--zf-icon-sage:var(--zf-ui-sage)}
:is(.cart-link,.header-actions,.add-form .button,.pdp-builder-link,.builder-promo-steps) .zf-ui-icon{inline-size:1.5rem;block-size:1.5rem}
.products-grid>.product-card{position:relative;grid-row:auto;grid-template-rows:none;display:flex;flex-direction:column;min-inline-size:0;gap:.6rem;padding:.65rem .65rem .95rem;border:1px solid color-mix(in srgb,var(--zf-ui-forest) 14%,transparent);border-radius:1.3rem;background:#fffdf8;box-shadow:0 3px 12px rgba(15,81,35,.035);transition:border-color .2s,box-shadow .2s,transform .2s}
.products-grid>.product-card .product-image{inline-size:100%;aspect-ratio:1;overflow:hidden;border-radius:.92rem;background:#f0e8d8}
.products-grid>.product-card .product-image img{transition:transform .35s ease}
.products-grid>.product-card .product-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .65rem;margin:0}
.products-grid>.product-card .product-info h3{font-size:clamp(.97rem,1.15vw,1.19rem);line-height:1.34;min-inline-size:0}
.products-grid>.product-card .product-info .price{margin-inline-start:auto;color:#1F2A21;font-weight:750}
.products-grid>.product-card .product-facts{display:flex;flex-wrap:wrap;gap:.4rem .6rem}
.products-grid>.product-card .product-facts li{display:inline-flex;flex-direction:row;gap:.25rem;text-align:start;font-size:.75rem}
.products-grid>.product-card .product-note{font-size:.78rem;line-height:1.4;color:#536456}
.products-grid>.product-card :is(.add-form,.text-link){margin-block-start:auto}
.products-grid>.product-card .add-form .button{min-block-size:46px}
.products-grid>.product-card .zf-favorite{position:absolute;inset-block-start:1rem;inset-inline-end:1rem;z-index:2}
.products-grid>.product-card:has(.zf-favorite)>.product-image{isolation:isolate}
.products-grid>.product-card :is(.product-info a,.text-link):focus-visible{outline:3px solid var(--zf-ui-coral);outline-offset:3px}
@media(hover:hover) and (pointer:fine){.products-grid>.product-card:hover{border-color:rgba(15,81,35,.4);box-shadow:0 14px 30px rgba(15,81,35,.11);transform:translateY(-2px)}.products-grid>.product-card:hover .product-image img{transform:scale(1.035)}}
:is(.tax-product_cat,.post-type-archive-product) .category-heading{margin-block:clamp(1rem,3vw,2.5rem) 1.1rem;padding:clamp(1.4rem,3vw,2.6rem);border:1px solid #e3e6da;background:linear-gradient(120deg,#FFF8EA,#f7f2e9);border-radius:1.7rem}
:is(.tax-product_cat,.post-type-archive-product) .category-heading h1{margin-block:.5rem 0;line-height:1.12;color:var(--zf-ui-forest)}
:is(.tax-product_cat,.post-type-archive-product) .category-description{max-inline-size:54ch;line-height:1.7}
:is(.tax-product_cat,.post-type-archive-product) .category-nav a{border-radius:999px}
:is(.tax-product_cat,.post-type-archive-product) .category-nav a[aria-current]{background:var(--zf-ui-forest);color:#fff;border-color:var(--zf-ui-forest)}
:is(.tax-product_cat,.post-type-archive-product) .catalog-filters{padding:1rem 1.2rem;border-radius:1.2rem;background:#fffdf8;border:1px solid #e1e6db}
:is(.tax-product_cat,.post-type-archive-product) .results-meta{align-items:center;margin-block:1.15rem}
.zf-living-pdp__hero .zf-living-pdp__buy-grid{align-items:start;gap:clamp(1.3rem,3vw,3rem)}
.zf-living-pdp__hero .zf-living-pdp__gallery figure{margin:0;background:#f8f4eb;padding:clamp(.5rem,1.4vw,1rem);border-radius:1.4rem}
.zf-living-pdp__hero .zf-living-pdp__gallery figure img{border-radius:1rem;max-block-size:780px}
.zf-living-pdp__hero .zf-living-pdp__summary{min-inline-size:0;padding:clamp(.2rem,1.4vw,1.5rem);border-radius:1.4rem}
.zf-living-pdp__hero .zf-living-pdp__summary>h1{line-height:1.14;letter-spacing:-.025em;margin-block:0 .75rem}
.zf-living-pdp__hero .zf-living-pdp__summary>.price{font-size:clamp(1.6rem,2.6vw,2.3rem)}
.zf-living-pdp__hero .zf-living-pdp__summary .zf-favorite{display:inline-flex!important;position:relative;vertical-align:middle;margin-block:.1rem .7rem}
.zf-living-pdp__hero .zf-living-pdp__summary .add-form .button{min-block-size:52px;border-radius:999px}
.zf-living-pdp__hero .zf-living-pdp__summary details{border-block-start:1px solid #dfdfd5}
.zf-favorite{display:inline-flex;align-items:center;justify-content:center;inline-size:44px;block-size:44px;border-radius:50%;border:1px solid rgba(15,81,35,.22);background:#fffcf4;color:var(--zf-ui-forest);cursor:pointer;box-shadow:0 1px 8px rgba(0,0,0,.06);overflow:visible;touch-action:manipulation;transition:background .2s,border-color .2s}
.zf-favorite[hidden]{display:none!important}
.zf-favorite svg{inline-size:27px;block-size:27px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.zf-favorite .zf-heart-fill{fill:var(--zf-ui-coral);stroke:var(--zf-ui-coral);opacity:0;transform-origin:50% 50%;transition:opacity .15s}
.zf-favorite .zf-heart-sprout{stroke:var(--zf-ui-forest);opacity:0;transition:opacity .16s}
.zf-favorite[data-active=true] .zf-heart-fill,.zf-favorite[data-active=true] .zf-heart-sprout{opacity:1}
.zf-favorite .zf-heart-shards{opacity:0}
.zf-favorite .zf-heart-piece{transform-origin:50% 30%}
.zf-favorite .zf-heart-piece path:first-child{stroke:var(--zf-ui-forest);fill:var(--zf-ui-sage)}
.zf-favorite .zf-heart-vein{stroke:#476e42}
.zf-favorite[data-phase=remove] svg{animation:zf-fav-hop .35s cubic-bezier(.2,.8,.3,1) both}
.zf-favorite[data-phase=remove] :is(.zf-heart-outline,.zf-heart-fill,.zf-heart-sprout){opacity:0}
.zf-favorite[data-phase=remove] .zf-heart-shards{opacity:1}
.zf-favorite[data-phase=remove] .zf-heart-left{animation:zf-leaf-left 1.15s .12s ease-in forwards}
.zf-favorite[data-phase=remove] .zf-heart-right{animation:zf-leaf-right 1.15s .12s ease-in forwards}
.zf-favorite[data-phase=add] svg{animation:zf-fav-grow .48s ease-out both}
@keyframes zf-fav-hop{0%{transform:translateY(0) scale(1)}55%{transform:translateY(-13px) scale(1.12)}100%{transform:translateY(-4px) scale(1)}}
@keyframes zf-leaf-left{0%{transform:translate(0,0) rotate(0);opacity:1}45%{transform:translate(-9px,3px) rotate(-18deg);opacity:1}100%{transform:translate(-27px,40px) rotate(-85deg);opacity:0}}
@keyframes zf-leaf-right{0%{transform:translate(0,0) rotate(0);opacity:1}45%{transform:translate(8px,5px) rotate(17deg);opacity:1}100%{transform:translate(26px,41px) rotate(82deg);opacity:0}}
@keyframes zf-fav-grow{0%{transform:scale(.86)}45%{transform:scale(1.2)}100%{transform:scale(1)}}
.zf-favorite:focus-visible{outline:3px solid var(--zf-ui-coral);outline-offset:4px}
[data-zf-basket-phase=adding] .zf-ui-icon{animation:zf-basket-anticipate .32s ease-in-out infinite alternate}
[data-zf-basket-phase=success] .zf-ui-icon{animation:zf-basket-success .55s ease-out}
[data-zf-basket-phase=revert] .zf-ui-icon{animation:zf-basket-revert .42s ease-out}
@keyframes zf-basket-anticipate{to{transform:translateY(-2px) rotate(-4deg)}}
@keyframes zf-basket-success{30%{transform:translateY(3px) scale(1.1)}70%{transform:translateY(-2px)}}
@keyframes zf-basket-revert{30%{transform:translateX(3px)}60%{transform:translateX(-3px)}}
.zf-cart-flying-flower{position:fixed;pointer-events:none;z-index:9999;inline-size:28px;block-size:28px;opacity:0;transform-origin:center;will-change:transform,opacity}
.zf-budget-bloom{display:flex;align-items:center;gap:.3rem;flex-direction:column;min-inline-size:90px;max-inline-size:140px}
.zf-budget-bloom-svg{inline-size:106px;block-size:65px;overflow:visible}
.zf-budget-stems path{fill:none;stroke:var(--zf-ui-forest);stroke-width:1.9;stroke-linecap:round}
.zf-budget-blossom path:first-child{stroke:var(--zf-ui-coral);fill:#f8a17b;stroke-width:1.5}
.zf-budget-blossom path:nth-child(2){stroke:var(--zf-ui-forest);stroke-width:1.1}
.zf-budget-ribbon{stroke:var(--zf-ui-coral);fill:none;stroke-width:2.5;opacity:0;transition:opacity .3s}
.zf-budget-bloom[data-tied=true] .zf-budget-ribbon{opacity:1}
.zf-budget-track{inline-size:100%;block-size:4px;overflow:hidden;border-radius:5px;background:#e6e2d7}
.zf-budget-track span{display:block;inline-size:0;block-size:100%;background:var(--zf-ui-coral);transition:inline-size .26s}
@media(max-width:640px){.products-grid>.product-card{padding:.42rem .42rem .7rem;gap:.42rem;border-radius:.95rem}.products-grid>.product-card .product-info{display:flex;flex-direction:column;gap:.2rem}.products-grid>.product-card .product-info .price{margin:0}.products-grid>.product-card .product-facts li:nth-child(n+3){display:none}.products-grid>.product-card .product-note{font-size:.72rem}.products-grid>.product-card .zf-favorite{inset-block-start:.65rem;inset-inline-end:.65rem}.zf-living-pdp__hero .zf-living-pdp__buy-grid{display:flex;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.zf-favorite *,.zf-favorite svg,[data-zf-basket-phase] .zf-ui-icon,.zf-budget-track span{animation:none!important;transition:none!important}.products-grid>.product-card,.products-grid>.product-card .product-image img{transition:none!important}}

.zf-product-fact-icon{display:inline-flex;align-items:center;justify-content:center;inline-size:1.45em;block-size:1.45em;flex:none;color:var(--zf-ui-forest)}
.zf-product-fact-icon .zf-ui-icon{inline-size:100%;block-size:100%}
.product-facts--summary .zf-product-fact-icon{inline-size:2.75rem;block-size:2.75rem;border:1px solid color-mix(in srgb,var(--zf-ui-forest) 18%,transparent);border-radius:50%;background:#fffaf0;padding:.5rem}
.products-grid>.product-card .product-facts .zf-product-fact-icon{inline-size:1.25rem;block-size:1.25rem}
