/* 2.0: one card component. Independent of old quickview/CTA classes. */
.icf-column { display:flex; align-items:stretch; }
article.product-miniature.icf-card {
 display:flex; flex-direction:column; width:100%; min-width:0;
 height:auto; border-radius:16px; overflow:visible;
}
article.icf-card .product-thumbnail {
 display:block; width:100%; aspect-ratio:1; flex-shrink:0; overflow:hidden;
}
article.icf-card .product-thumbnail img {
 display:block; width:100%; height:100%; object-fit:contain;
 transform:none; transition:none;
}
article.icf-card .product-description {
 display:flex; flex-direction:column; flex:1; width:100%; min-width:0;
}
article.icf-card .product-title, article.icf-card .product-resume {
 height:auto; min-height:0; overflow-wrap:anywhere;
}
#products article.icf-card .product-title, #products article.icf-card .product-title a,
.product-accessories article.icf-card .product-title, .product-accessories article.icf-card .product-title a {
 font-size:17px; line-height:1.35; font-weight:700; color:#602f10;
}
article.icf-card .product-resume { margin-bottom:12px; }
article.icf-card .product-resume p { margin:0; }
.icf-card .icf-purchase {
 display:flex; flex-direction:column; gap:12px; margin-top:auto;
 padding:12px 0 0; color:#602f10; text-align:center; min-width:0;
}
.icf-formats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.icf-format {
 display:flex; flex-direction:column; align-items:center; justify-content:center;
 min-width:0; min-height:96px; padding:10px 5px; border:2px solid #d5c6b9;
 color:#602f10; background:#fbf7ed; border-radius:11px; cursor:pointer;
 font:inherit; font-size:12px; line-height:1.3; white-space:normal;
}
.icf-format.is-selected { border-color:#64b928; background:#f2f8e9; box-shadow:inset 0 0 0 1px #64b928; }
.icf-icon { width:36px; height:36px; flex-shrink:0; margin-bottom:5px; }
.icf-price { display:grid; grid-template-columns:auto auto; grid-template-rows:17px 30px 17px;
 justify-content:center; align-items:baseline; gap:5px 8px; }
.icf-amount { font-size:23px; font-weight:700; }
.icf-tax { font-size:11px; }
.icf-amount { grid-row:2; grid-column:1; }
.icf-tax { grid-row:2; grid-column:2; }
.icf-unit { grid-row:3; grid-column:1 / -1; min-height:17px; font-size:12px; }
.icf-regular { grid-row:1; grid-column:1 / -1; font-size:13px; }
.icf-regular[hidden] { display:none; }
article.icf-card .product-description .icf-cart-form { display:block; margin:0; padding:0; width:100%; }
.icf-button-shell { display:block; position:relative; width:calc(100% - 6px); margin:0 auto; isolation:isolate; }
.icf-add {
 display:flex; align-items:center; justify-content:center; position:relative;
 width:100%; min-width:0; min-height:44px; padding:9px 6px;
 color:white; background:#64b928; border:0; border-radius:50px;
 font-family:Lato,sans-serif; font-size:12px; font-weight:700; line-height:1.3;
 white-space:normal; cursor:pointer;
}
.icf-button-shell::after { content:''; position:absolute; inset:0; border:2px solid #602f10;
 border-radius:50px; pointer-events:none; transform:translate(3px,2px) rotate(-2deg); }
.icf-add:disabled { opacity:.6; cursor:not-allowed; }
.icf-format:focus-visible,.icf-add:focus-visible { outline:3px solid #602f10; outline-offset:3px; }
.icf-detail { color:#602f10; text-decoration:underline; font-size:12px; }
/* The status cannot enlarge the card, even during a long error. Text remains scrollable. */
.icf-status-slot { height:3.9em; flex-shrink:0; font-size:12px; line-height:1.3; }
.icf-card .icf-status { margin:0; max-height:100%; overflow:auto; font-size:inherit; line-height:inherit; color:#602f10; }
@media(max-width:767px) {
 #products article.icf-card .product-title, #products article.icf-card .product-title a,
 .product-accessories article.icf-card .product-title, .product-accessories article.icf-card .product-title a { font-size:15px; }
 .icf-formats { grid-template-columns:minmax(0,1fr); gap:6px; }
 .icf-format { flex-direction:row; min-height:44px; gap:6px; padding:6px; font-size:11px; }
 .icf-icon { width:24px; height:24px; margin:0; }
 .icf-card .icf-purchase { gap:10px; }
 .icf-add { font-size:11px; }
}

/* Cart-modal recommendations: isolate cards from the legacy modal image/title rules. */
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card {
 height:auto; min-width:0; position:relative;
}
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card,
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card:hover {
 transform:none !important; transition:none;
}
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-thumbnail {
 aspect-ratio:auto; height:205px;
}
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-description {
 position:relative; top:auto; bottom:auto; left:auto; right:auto;
}
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .thumbnail img {
 width:100% !important; height:100% !important; max-height:none !important;
 object-fit:contain; transform:none !important; transition:none;
}
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-title,
#blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-title a {
 font-size:17px !important; font-weight:700; min-height:0; height:auto;
}
/* Certishopping's asynchronous widget must stay in the card's normal flow. */
#blockcart-modal .infuthes-cart-modal__recommendations .product-miniature [certishopping-widget-product-stars],
#blockcart-modal .infuthes-cart-modal__recommendations .product-miniature .certi-reviews-bottomlin-float,
#blockcart-modal .infuthes-cart-modal__recommendations .product-miniature .product-list-reviews {
 position:static !important; inset:auto !important; float:none !important;
 transform:none !important; margin:0 auto 8px !important;
}
#blockcart-modal .infuthes-cart-modal__recommendations .product-miniature [certishopping-widget-product-stars] {
 display:flex !important; justify-content:center !important; width:100%; flex-shrink:0;
}
@media(max-width:767px) {
 #blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-title,
 #blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations article.icf-card .product-title a {
  font-size:15px !important;
 }
}

/* Certishopping ships .certi_catalog { z-index:999999 }.
   Keep catalogue stars below Bootstrap's backdrop/modal, including legacy cards
   behind the cart window. This wins even if the widget CSS arrives later. */
.product-miniature [certishopping-widget-product-stars].certi_catalog {
 position:relative !important; z-index:0 !important;
}

/* Restore the theme's signature CTA animation on the inline button. */
.icf-button-shell::after {
 transform:translate(4px,3px) rotate(-3deg);
 transform-origin:center;
 transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.icf-add { transition:background-color .28s ease,box-shadow .28s ease; }
@media(hover:hover) and (pointer:fine) {
 .icf-button-shell:hover::after { transform:translate(0,0) rotate(0deg); }
 .icf-button-shell:hover .icf-add:not(:disabled) {
  background:#70c832; box-shadow:0 0 12px rgba(100,185,40,.45);
 }
}
.icf-button-shell:focus-within::after,.icf-button-shell:active::after {
 transform:translate(0,0) rotate(0deg);
}
.icf-add:active:not(:disabled) { background:#70c832; }
@media(prefers-reduced-motion:reduce) {
 .icf-button-shell::after,.icf-add { transition:none; }
}

/* Fine brand outline for every product miniature, including native fallback cards. */
article.product-miniature {
 border:1px solid #602f10 !important;
 border-radius:16px;
 box-sizing:border-box;
}

/* Cards display recipe names and ingredients; summaries remain on product pages. */
article.product-miniature .product-description .product-resume {
 display:none !important;
}

/* Recipe ingredients and their separators retain distinct brand colours. */
html body#index .product-miniature .infuthes-card-ingredients,
html body#category .product-miniature .infuthes-card-ingredients,
html body#product .product-miniature .infuthes-card-ingredients,
html #blockcart-modal.infuthes-cart-modal .infuthes-cart-modal__recommendations .product-miniature .infuthes-card-ingredients,
html #blockcart-modal .product-accessories .product-miniature .infuthes-card-ingredients {
 color:#64b928 !important; font-weight:700 !important;
}
html body .product-miniature .infuthes-card-ingredients .infuthes-ingredient-separator {
 color:#602f10 !important; font-weight:700 !important;
}

/* Clip the thumbnail at the inside of the card border, not the CTA outline. */
html body article.product-miniature .product-thumbnail {
 border-radius:15px 15px 0 0 !important;
 overflow:hidden;
}

/* Home recipe cards use h3; share the catalogue title style with them. */
html body#index article.product-miniature .product-description .product-title,
html body#index article.product-miniature .product-description .product-title a {
 font-family:"Catenary Stamp","Lato",sans-serif !important;
 font-size:17px !important;
 font-weight:700 !important;
 line-height:1.35 !important;
 color:#602f10 !important;
 text-transform:uppercase;
 overflow-wrap:anywhere;
}
@media(max-width:767px) {
 html body#index article.product-miniature .product-description .product-title,
 html body#index article.product-miniature .product-description .product-title a {
  font-size:15px !important;
 }
}

/* Home rows stretch native fallback cards as well as inline-format cards. */
html body#index .infuthes-bestsellers .products { align-items:stretch; }
html body#index .infuthes-bestsellers .products > .product {
 display:flex; align-items:stretch;
}
html body#index .infuthes-bestsellers .products > .product > article.product-miniature {
 display:flex; flex-direction:column; width:100%; height:auto; min-width:0;
}
html body#index .infuthes-bestsellers article.product-miniature .product-description {
 display:flex; flex-direction:column; flex:1; width:100%; min-width:0;
}
html body#index .infuthes-bestsellers article.product-miniature:not(.icf-card) .product-price-and-shipping {
 margin-top:auto;
}
