/* Shared wine cards: saved Figma shop/home desktop and phone references.
 * Search, wishlist and rarity cards retain their separate page layouts.
 */
.twc-wine-card { min-width:0; height:100%; }
/* Keep each exported icon's intrinsic dimensions, above legacy SVG sizing. */
.twc-wine-card.product-card svg,.home-rarities .twc-rarity-card svg { width:revert-layer; height:revert-layer; max-width:none; flex-shrink:0; }
:is(.twc-wine-card,.twc-rarity-card) span.twc-search-desktop-icon { display:flex; flex:none; }
:is(.twc-wine-card,.twc-rarity-card) span.twc-search-mobile-icon { display:none; }
.twc-wine-card :is(.card-meta,.card-details,.twc-search-meta,.twc-search-details)>span:not(.stars):not(.twc-search-stars) { display:flex; align-items:center; gap:4px; min-width:0; }
.twc-wine-card :is(.card-details,.twc-search-details)>span { align-items:flex-start; overflow-wrap:anywhere; }
.twc-wine-card.product-card .card-details>span:not(:last-child) svg { color:#555; }
.twc-wine-card.product-card .card-details>span:not(:last-child) svg path { fill:currentColor; }
.twc-wine-card :is(.stars,.twc-search-stars) { display:flex; flex:none; gap:2px; margin-left:auto; }
.twc-wine-card :is(.stars,.twc-search-stars)>span { display:flex; }
.twc-wine-card :is(.card-heart,.twc-search-heart) { width:32px; height:32px; padding:0; border:1px solid #e3d7ce; border-radius:4px; background:#fff; display:flex; align-items:center; justify-content:center; }
.home-rarities .twc-rarity-card .card-heart { padding:0; }
.home-rarities .twc-rarity-card .rarity-details>span:last-child svg { color:#a9163f; }
.twc-wine-card :is(.card-buy,.twc-search-buy) { align-items:center; }
.twc-wine-card :is(.card-buy,.twc-search-buy)>button { display:flex; align-items:center; justify-content:center; padding:0; flex-shrink:0; }
.twc-wine-card .card-stepper { flex:1; min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr) 32px; }
.twc-wine-card .card-stepper button { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.twc-wine-card :is(button,a,input):focus-visible { outline:2px solid #ab876c; outline-offset:3px; }

/* Vertical catalogue, home new/promotion and related-wine cards. */
.twc-wine-card:not(.twc-search-card) { display:flex; flex-direction:column; padding:16px; border:1px solid #e3d7ce; border-radius:16px; background:#fff; }
.twc-wine-card:not(.twc-search-card) .card-image { height:330px; min-height:330px; margin:0; }
.twc-wine-card:not(.twc-search-card) .card-image img.attachment-medium { height:310px; width:auto; max-width:100%; max-height:100%; object-fit:contain; }
.twc-wine-card:not(.twc-search-card) .card-meta { flex-wrap:wrap; font:400 14px/max(16px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; gap:4px 8px; border-block:1px solid #e3d7ce; padding:8px 0; }
.twc-wine-card:not(.twc-search-card) .card-title { font:600 24px/28px Urbanist,sans-serif; margin:16px 0 8px; min-height:0; overflow-wrap:anywhere; }
.twc-wine-card:not(.twc-search-card) .card-details { display:grid; gap:4px; min-height:0; margin:0 0 16px; font:400 14px/max(17px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; color:#555; }
.twc-wine-card:not(.twc-search-card) .card-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:auto 0 16px; padding:0 0 16px; border-bottom:1px solid #e3d7ce; }
.twc-wine-card:not(.twc-search-card) .card-price strong { font:700 24px/29px Urbanist,sans-serif; }
.twc-wine-card:not(.twc-search-card) .card-price del { font:400 14px/max(17px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; color:#777; }
.twc-wine-card:not(.twc-search-card) .card-buy { display:flex; gap:16px; margin:0; }
.twc-wine-card:not(.twc-search-card) .card-stepper { height:50px; border-radius:8px; }
.twc-wine-card:not(.twc-search-card) .card-buy>button { width:96px; flex-basis:96px; height:50px; border-radius:var(--twc-button-radius); }
.twc-wine-card:not(.twc-search-card) .card-tag { top:0; left:0; border-radius:4px; padding:8px 12px; font:400 14px/max(16px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; }
.twc-wine-card .card-tag.card-tag-sale { background:#f84e4e; color:#fff; font-weight:700; }

/* Recommendation cards use the shared horizontal body rather than grid rows. */
.home-horizontal-track>.twc-wine-card.twc-recommendation-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; gap:16px; height:100%; min-height:336px; padding:16px; border:1px solid #e3d7ce; border-radius:16px; background:#fff; }
.twc-wine-card.twc-recommendation-card .card-image { grid-area:auto; margin:0; height:100%; min-height:300px; border:0; }
.twc-wine-card.twc-recommendation-card .card-image>a { min-height:300px; }
.twc-wine-card.twc-recommendation-card .card-image img.attachment-medium { height:270px!important; }
.twc-wine-card.twc-recommendation-card .twc-search-meta { border-top:0; padding:0 0 8px; margin:0 0 16px; font:400 14px/max(16px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; gap:4px 8px; }
.twc-wine-card.twc-recommendation-card .card-title { grid-area:auto; font:600 24px/28px Urbanist,sans-serif; min-height:0; margin:0 0 8px; overflow-wrap:anywhere; }
.twc-wine-card.twc-recommendation-card .twc-search-details { font:400 14px/max(17px,var(--twc-mobile-leading-min,0px)) Urbanist,sans-serif; margin:0 0 16px; }
.twc-wine-card.twc-recommendation-card .card-price { grid-area:auto; margin:auto 0 0; padding:0; border:0; gap:8px; }
.twc-wine-card.twc-recommendation-card .card-price strong { font:700 24px/29px Urbanist,sans-serif; }
.twc-wine-card.twc-recommendation-card .twc-search-buy { gap:16px; margin:16px 0 0; padding-top:16px; }
.twc-wine-card.twc-recommendation-card .twc-search-buy>button { width:64px; flex-basis:64px; height:50px; border-radius:var(--twc-button-radius); }

@media(min-width:761px) and (max-width:1200px) {
  .twc-wine-card:not(.twc-search-card) .card-title { font-size:20px; line-height:24px; }
  .twc-wine-card:not(.twc-search-card) .card-buy>button { width:64px; flex-basis:64px; }
  .twc-wine-card.twc-recommendation-card .card-title { font-size:20px; line-height:24px; }
}
/* Tablet recommendations keep full-size purchase controls readable. */
@media(min-width:761px) and (max-width:1200px) {
  .home-horizontal-track>.twc-wine-card.twc-recommendation-card { height:auto; }
  .twc-wine-card.twc-recommendation-card .twc-search-buy { flex-wrap:wrap; gap:8px; }
  .twc-wine-card.twc-recommendation-card .card-stepper,
  .twc-wine-card.twc-recommendation-card .twc-search-buy>button { flex-basis:100%; }
}
@media(max-width:760px) {
  /* Product cards retain their original type sizes and matching leading. */
  :is(.product-card,.twc-rarity-card) { --twc-mobile-text-min:0px; --twc-mobile-leading-min:0px; }
  :is(.twc-wine-card,.twc-rarity-card) span.twc-search-desktop-icon { display:none; }
  :is(.twc-wine-card,.twc-rarity-card) span.twc-search-mobile-icon { display:flex; flex:none; }
  .twc-wine-card :is(.card-heart,.twc-search-heart) { width:24px; height:24px; }
  .home-rarities .twc-rarity-card .card-heart { width:24px; height:24px; }
  .twc-wine-card :is(.stars,.twc-search-stars) { gap:2px; }
  .twc-wine-card .card-stepper { grid-template-columns:26px minmax(0,1fr) 26px; }
  .twc-wine-card:not(.twc-search-card),
  .home-rarities .home-horizontal-track>.rarity-card { padding:12px; border-radius:8px; }
  .twc-wine-card:not(.twc-search-card) .card-image { height:178px; min-height:178px; }
  .twc-wine-card:not(.twc-search-card) .card-image img.attachment-medium { height:166px; }
  .twc-wine-card:not(.twc-search-card) .card-meta { font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(14px,var(--twc-mobile-leading-min,0px)); gap:4px; padding:8px 0; }
  .twc-wine-card:not(.twc-search-card) .card-title { font-size:20px; line-height:24px; margin:12px 0 4px; }
  .twc-wine-card:not(.twc-search-card) .card-details { font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(15px,var(--twc-mobile-leading-min,0px)); gap:4px; margin-bottom:12px; }
  .twc-wine-card:not(.twc-search-card) .card-price { gap:8px; margin-bottom:12px; padding-bottom:12px; }
  .twc-wine-card:not(.twc-search-card) .card-price strong { font-size:16px; line-height:19px; }
  .twc-wine-card:not(.twc-search-card) .card-price del { font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(15px,var(--twc-mobile-leading-min,0px)); }
  .twc-wine-card:not(.twc-search-card) .card-buy { gap:8px; }
  .twc-wine-card:not(.twc-search-card) .card-stepper { height:38px; border-radius:4px; }
  .twc-wine-card:not(.twc-search-card) .card-buy>button { width:64px; flex-basis:64px; height:38px; border-radius:var(--twc-button-radius); }
  .twc-wine-card:not(.twc-search-card) .card-tag,
  .home-rarities .rarity-badge { padding:4px 8px; font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(16px,var(--twc-mobile-leading-min,0px)); }
  .home-horizontal-track>.twc-wine-card.twc-recommendation-card { padding:12px; gap:8px; border-radius:8px; min-height:235px; grid-template-columns:minmax(0,.808fr) minmax(0,1fr); }
  .twc-wine-card.twc-recommendation-card .card-image,.twc-wine-card.twc-recommendation-card .card-image>a { min-height:211px; }
  .twc-wine-card.twc-recommendation-card .card-image img.attachment-medium { height:211px!important; }
  .twc-wine-card.twc-recommendation-card .twc-search-meta { font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(14px,var(--twc-mobile-leading-min,0px)); margin-bottom:12px; }
  .twc-wine-card.twc-recommendation-card .card-title { font-size:20px; line-height:24px; }
  .twc-wine-card.twc-recommendation-card .twc-search-details { font-size:max(12px,var(--twc-mobile-text-min,0px)); line-height:max(15px,var(--twc-mobile-leading-min,0px)); margin-bottom:12px; }
  .twc-wine-card.twc-recommendation-card .card-price strong { font-size:16px; line-height:19px; }
  .twc-wine-card.twc-recommendation-card .twc-search-buy { gap:8px; padding-top:8px; margin-top:8px; }
  .twc-wine-card.twc-recommendation-card .card-stepper { height:38px; grid-template-columns:20px minmax(0,1fr) 20px; }
  .twc-wine-card.twc-recommendation-card .twc-search-buy>button { height:38px; border-radius:var(--twc-button-radius); }
}
/* Two-column cards still fit at narrow phone widths; facts wrap above controls. */
@media(max-width:390px) {
  .twc-wine-card:not(.twc-search-card),
  .home-rarities .home-horizontal-track>.rarity-card { padding:8px; }
  .twc-wine-card:not(.twc-search-card) .card-title { font-size:18px; line-height:22px; }
  .twc-wine-card:not(.twc-search-card) .card-buy { gap:4px; }
  .twc-wine-card:not(.twc-search-card) .card-buy>button { width:44px; flex-basis:44px; }
  .twc-wine-card:not(.twc-search-card) .card-stepper { grid-template-columns:20px minmax(0,1fr) 20px; }
}
/* Reserve two title lines on phones, while allowing longer wine names to grow. */
@media(max-width:760px) {
  .twc-wine-card:not(.twc-search-card) .card-title,
  .twc-wine-card.twc-search-card .card-title,
  .home-rarities .twc-rarity-card .card-title { min-height:2lh; }
}
