/* Attribute classes are shared by the editor and renderer. Default cards keep preset design. */
body.kfn-storefront .kfn-columns-1{--kfn-columns:1}
body.kfn-storefront .kfn-columns-2{--kfn-columns:2}
body.kfn-storefront .kfn-columns-3{--kfn-columns:3}
body.kfn-storefront .kfn-columns-4{--kfn-columns:4}
body.kfn-storefront .kfn-columns-5{--kfn-columns:5}
body.kfn-storefront .kfn-columns-6{--kfn-columns:6}
body.kfn-storefront :is(.kfn-hero-fit-contain,.kfn-editorial-fit-contain){--kfn-media-fit:contain}
body.kfn-storefront :is(.kfn-hero-fit-cover,.kfn-editorial-fit-cover){--kfn-media-fit:cover}
body.kfn-storefront .kfn-hero[class] .kfn-hero__media img,body.kfn-storefront .kfn-editorial[class] .kfn-editorial__media img{object-fit:var(--kfn-media-fit,cover)}
body.kfn-storefront .kfn-media-ratio-portrait{--kfn-media-ratio:4/5}
body.kfn-storefront .kfn-media-ratio-square{--kfn-media-ratio:1}
body.kfn-storefront .kfn-media-ratio-landscape{--kfn-media-ratio:3/2}
body.kfn-storefront .kfn-media-ratio-wide{--kfn-media-ratio:16/9}
body.kfn-storefront .kfn-editorial[class] .kfn-editorial__image--primary{aspect-ratio:var(--kfn-media-ratio,4/5)}
body.kfn-storefront .kfn-editorial.kfn-editorial--stacked[class]{grid-template-columns:minmax(0,1fr)}
body.kfn-storefront .kfn-category-grid.kfn-category-grid--carousel .kfn-category-grid__items{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(220px,30%);overflow-x:auto}
/* Height is a lower bound: natural media and copy may require a taller hero. */
body.kfn-storefront .kfn-hero[style*="--kfn-hero-min-height"]{min-height:var(--kfn-hero-min-height)}
body.kfn-storefront .kfn-hero--immersive[style*="--kfn-hero-min-height"] .kfn-hero__content{min-height:var(--kfn-hero-min-height)}
/* Limit actual copy, without expanding a preset's narrower padded content shell. */
body.kfn-storefront .kfn-hero[style*="--kfn-hero-copy-width"] .kfn-hero__content>.kfn-section-header{max-width:min(100%,var(--kfn-hero-copy-width))}
body.kfn-storefront .kfn-product-grid[class] .woocommerce ul.products li.product a img{object-fit:contain}
body.kfn-storefront .kfn-card-minimal:is(.kfn-product-grid,.kfn-category-grid) :is(.woocommerce ul.products li.product,.kfn-category-card){background:transparent;border:0;box-shadow:none}
body.kfn-storefront .kfn-card-bordered:is(.kfn-product-grid,.kfn-category-grid) :is(.woocommerce ul.products li.product,.kfn-category-card){border:1px solid var(--kfn-line);border-radius:var(--kfn-radius);box-shadow:none}
body.kfn-storefront .kfn-card-editorial:is(.kfn-product-grid,.kfn-category-grid) :is(.woocommerce ul.products li.product,.kfn-category-card){background:transparent;border:0;box-shadow:none}
body.kfn-storefront .kfn-card-editorial:is(.kfn-product-grid,.kfn-category-grid) :is(.woocommerce ul.products li.product a img,.kfn-category-card img){aspect-ratio:4/5}
body.kfn-storefront .kfn-card-editorial:is(.kfn-product-grid,.kfn-category-grid) :is(.woocommerce ul.products li.product .woocommerce-loop-product__title,.kfn-category-card>span:last-child){font-family:var(--kfn-heading-font,var(--kfn-font));font-size:18px;font-weight:400;line-height:1.3}
@media(min-width:782px){
body.kfn-storefront .kfn-category-grid.kfn-category-grid--grid .kfn-category-grid__items,body.kfn-storefront .kfn-benefits[class] .kfn-benefits__items{grid-template-columns:repeat(var(--kfn-columns,3),minmax(0,1fr))}
}
/* Existing preset mobile grid defaults stay intact. Only the explicit mobile hero field changes height. */
@media(max-width:781px){
body.kfn-storefront .kfn-hero[style*="--kfn-hero-mobile-min-height"],body.kfn-storefront .kfn-hero--immersive[style*="--kfn-hero-mobile-min-height"] .kfn-hero__content{min-height:var(--kfn-hero-mobile-min-height)}
}
