/* Keep comparison, options and totals readable without repeating stock notices. */
.header-search-clear { position:absolute; right:48px; top:3px; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:transparent; color:#536b5c; font:inherit; font-size:24px; line-height:1; }
.header-search-clear:hover { background:#e9eee4; }
.header-search:has(.header-search-clear:not([hidden])) input { padding-right:94px; }
.header-search-clear:focus-visible { outline:2px solid #927236; outline-offset:0; }
.product-stock-card.midocean-stock { margin:10px 0 0; padding:10px 0 0; border:0; border-top:1px solid #e6dfcf; border-radius:0; background:transparent; }
.product-stock-card .midocean-stock-note, .product-stock-card .midocean-stock-contact,
.product-stock-panel .midocean-stock-note { display:none; }
.product-stock-card.midocean-stock strong { display:none; }
.product-stock-card .midocean-stock-variant { margin-top:3px; }
.product-stock-panel > .midocean-stock { margin:0; padding:0; border:0; background:transparent; }
.product-description h2, .product-description p, .marking-note { overflow-wrap:anywhere; }
.product-card-action { text-align:center; }
.clear-filters { min-height:44px; padding:8px 4px; font-size:12px; }
.selection-feedback button { min-width:44px; min-height:44px; }
.product-zoom-heading { position:sticky; top:0; z-index:2; background:#fffefa; }
.catalog-error .button { margin-top:14px; }
@media (min-width:761px) {
  .product-visual { position:sticky; top:0; align-self:start; min-height:0; }
  .product-visual .photo-wrap { flex:none; height:clamp(260px,44dvh,420px); min-height:0; margin:20px 0; }
  .product-visual .photo-wrap img { height:100%; max-height:100%; }
  .product-visual .visual-caption p { font-size:19px; }
  .product-visual .product-gallery { gap:8px; }
  .product-visual .gallery-choice { flex:1 1 130px; min-width:0; padding:7px; font-size:11px; }
}
/* A tall photograph and its gallery must remain reachable on short screens. */
@media (min-width:761px) and (max-height:740px) {
  .product-visual { position:static; }
}
@media (max-width:760px) {
  .header-search.search-field input { font-size:16px; }
  .header-search.search-field input::placeholder { font-size:12px; }
  .product-description { margin-bottom:18px; padding-bottom:18px; }
  .product-description h2 { font-size:24px; line-height:1.35; }
  .product-controls { padding-top:20px; }
  .product-stock-panel { padding:12px 14px; }
  .product-dialog { scroll-padding-bottom:24px; }
}
@media (max-width:520px) {
  .featured-packs-host .bottle-highlight-label { font-size:10px; }
}
@media (max-width:460px) {
  .price-card { grid-template-columns:minmax(0,1fr); gap:12px; }
  .price-card .unit-price { flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:0 7px; }
  .price-card .unit-price > span { flex-basis:100%; }
  .price-card .unit-price strong { font-size:23px; }
  .price-card .lot-price { align-items:flex-start; padding-top:12px; border-top:1px solid #d6c8a7; text-align:left; }
  .price-card .lot-price strong { max-width:100%; font-size:29px; overflow-wrap:anywhere; }
  .catalogue-browse-heading { flex-wrap:wrap; }
  .catalogue-browse-actions { width:100%; display:flex; align-items:center; justify-content:space-between; }
  .catalogue-browse-actions .product-count { max-width:none; text-align:left; }
}
@media print { .header-search-clear { display:none; } .product-visual { position:static; } }

/* The seasonal mug stays easy to find and quick to configure. */
.product-card.is-mug-favorite { border-color:#bdab77; background:#fffdf8; }
.mug-favorite-label { display:block; margin:0 0 9px; color:#856222; font-size:11px; font-weight:700; letter-spacing:1px; }
.mug-favorite-benefits { display:block; margin-top:11px; color:#315b48; font-size:11px; font-weight:600; line-height:1.6; }
.mug-other-models { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; width:100%; padding:11px 14px 12px; border-bottom:1px solid #e5dcc9; background:#fffdf8; }
.mug-other-model { display:flex; flex-direction:column; align-items:center; gap:5px; min-width:0; color:#315b48; text-align:center; }
.mug-other-model img { display:block; width:100%; height:70px; padding:2px 5px; object-fit:contain; mix-blend-mode:normal; }
.mug-other-model > span { display:block; max-width:100%; color:inherit; font-size:10px; font-weight:500; line-height:1.3; overflow-wrap:normal; }
@media (min-width:420px) and (max-width:760px) {
  .mug-other-models { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 6px; padding:10px; }
  .mug-other-model img { height:64px; }
}
.product-technical-details { margin:14px 0 0; border-top:1px solid #e4dcc9; }
.product-technical-details summary { display:list-item; min-height:44px; padding:13px 0; color:#214b3b; font-size:12px; font-weight:600; cursor:pointer; }
.product-technical-details summary:focus-visible { outline:2px solid #927236; outline-offset:3px; }
.product-technical-details .product-facts { margin:0 0 8px; }
.is-mug-friandises-dialog .photo-wrap img { mix-blend-mode:normal; }
@media (max-width:760px) {
  .is-mug-friandises-dialog .product-gallery { display:none; }
  .is-mug-friandises-dialog .photo-wrap { height:220px; margin:6px 0 10px; }
  .is-mug-friandises-dialog .product-visual { padding-bottom:10px; }
  .is-mug-friandises-dialog .product-description { padding-top:0; }
  .is-mug-friandises-dialog .marking-note { font-size:11px; line-height:1.6; padding:10px 12px; }
}

.is-mug-favorite .product-card-image img { mix-blend-mode:normal; }

/* Row heights follow the rendered content, including asynchronously loaded stock. */
#product-grid > .product-card:not(.is-gourmand-feature) .product-card-price { min-height:var(--aligned-price,68px); }
#product-grid > .product-card:not(.is-gourmand-feature) .product-stock-card { min-height:var(--aligned-stock,0px); margin:10px 0 0; padding-top:10px; }
#product-grid > .product-card:not(.is-gourmand-feature) .product-card-action { min-height:var(--aligned-action,44px); }
@media (min-width:420px) and (max-width:540px) {
  #product-grid > .product-card:not(.is-gourmand-feature) .product-card-price { min-height:var(--aligned-price,88px); }
}
