/* Compact owned-product browsing and clear order availability. */
.storefront-visual #recipients { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:18px; }
.storefront-visual #recipients .section-heading { flex:1; margin:0; }
.storefront-visual #recipients .section-heading > .text-button { display:none; }
.storefront-visual #recipients .recipient-photo-list { display:flex; width:auto; gap:16px; overflow-x:auto; justify-content:flex-start; }
.storefront-visual #recipients .recipient-photo-card { flex:0 0 108px; }
.storefront-visual #recipients .recipient-photo-card img { width:74px; height:74px; }
.theme-tabs { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.theme-tabs button { min-height:38px; padding:7px 16px; border:1px solid var(--line); border-radius:999px; background:white; color:var(--ink); font:inherit; font-size:14px; cursor:pointer; }
.theme-tabs button[aria-pressed="true"] { border-color:#81d8d0; background:#e3f5f3; font-weight:700; }
.theme-tabs button:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.pictured-color-note { padding:10px 12px; border-radius:8px; background:#f0f7f6; font-size:13px; line-height:1.5; }
.cart-picture-note { display:block; color:var(--muted); font-size:12px; line-height:1.4; margin-bottom:6px; }
.product-add-bar .primary[disabled] { cursor:default; opacity:.65; }
.catalog-filter-actions:has(.occasion-navigation:empty) { display:none; }
.storefront-visual #catalog .catalog-filter-actions #shop-filters { display:none; }
.order-opening-note { margin:14px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.cart-summary .button[disabled] { opacity:1; background:#edf2f1; color:#53625f; cursor:default; }
.cart-summary [data-action="checkout"][hidden] { display:none; }
.cart-summary .order-contact { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:8px; text-decoration:none; }
.storefront-visual .order-info-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1000px){
  .storefront-visual .order-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .storefront-visual .order-info-card:nth-child(n) { grid-column:auto; }
}
.pdp-price-row small { max-width:180px; text-align:right; }
.product-form-side .pdp-details { margin-top:16px; }
.product-add-bar .primary { min-width:0; }
.prepared-qty-note { margin:0 0 10px; color:var(--muted); font-size:13px; }
/* A filled selection stays distinct from the white choices and unavailable stock. */
.storefront-visual .product-dialog :is(.size-options,.mode-switch) button[aria-pressed="true"]:not(:disabled),
.storefront-visual .fulfilment-options > button[aria-pressed="true"]:not(:disabled) {
  background:var(--hh-accent,#81d8d0);
  border-color:var(--hh-link,#17615e);
  color:var(--hh-accent-ink,#153f3b);
  font-weight:700;
  box-shadow:inset 0 0 0 1px var(--hh-link,#17615e);
}
.storefront-visual .product-dialog .size-options button:not(:disabled) {
  color:var(--hh-ink,#253633);
  transition:background-color 140ms ease,border-color 140ms ease;
}
.storefront-visual .product-dialog .size-options button:not(:disabled):hover {
  border-color:var(--hh-link,#17615e);
}
.storefront-visual .product-dialog .color-options button {
  position:relative;
}
.storefront-visual .product-dialog .color-options button[aria-pressed="true"]:not(:disabled) {
  border-color:var(--hh-accent,#81d8d0);
  box-shadow:0 0 0 2px var(--hh-link,#17615e);
}
.storefront-visual .product-dialog .color-options button[aria-pressed="true"]:not(:disabled)::after {
  content:"✓";
  position:absolute;
  right:-6px;
  bottom:-5px;
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border:2px solid white;
  border-radius:50%;
  background:var(--hh-link,#17615e);
  color:white;
  font-size:12px;
  font-weight:700;
  line-height:1;
}
.storefront-visual .product-dialog .photo-gallery > button[aria-pressed="true"]:not(:disabled) {
  background:var(--hh-accent,#81d8d0);
  border-color:var(--hh-link,#17615e);
  box-shadow:0 0 0 1px var(--hh-link,#17615e);
}
.storefront-visual .product-dialog :is(.size-options,.color-options) button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.storefront-visual .product-dialog .size-options button:disabled {
  background:#f0f2f1;
  border-color:#dce2df;
  color:#66746f;
  text-decoration:line-through;
  box-shadow:none;
}
.storefront-visual .product-dialog :is(.size-options,.color-options,.photo-gallery,.mode-switch) button:focus-visible {
  outline:3px solid var(--hh-focus,#17615e);
  outline-offset:4px;
}
@media(max-width:600px){
  .storefront-visual #recipients { display:block; padding-block:16px; }
  .storefront-visual #recipients .section-heading { margin-bottom:12px; }
  .storefront-visual #recipients .recipient-photo-list { display:grid; width:100%; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; overflow:visible; }
  .storefront-visual #recipients .recipient-photo-card { width:100%; min-width:0; gap:6px; }
  .storefront-visual #recipients .recipient-photo-card img { width:58px; height:58px; }
  .storefront-visual #recipients .recipient-photo-card b { font-size:12px; line-height:1.3; }
  .pdp-price-row { flex-wrap:wrap; }
  .pdp-price-row small { text-align:left; max-width:none; }
}

/* Recipient portraits fill the circular gift navigation at every viewport. */
.storefront-visual #recipients .recipient-photo-card img {
  padding: 0;
  object-fit: cover;
  object-position: center;
  aspect-ratio: 1;
  filter: none;
}

/* Keep the complete menu together when the desktop header has little room. */
@media (min-width:1101px) and (max-width:1249px) {
  .storefront-visual .compact-header { display:block; padding:0; }
  .storefront-visual .compact-header .header-main {
    width:calc(100% - clamp(36px,6.7vw,112px));
    max-width:1360px;
    margin-inline:auto;
    pointer-events:auto;
  }
  .storefront-visual .compact-header .nav-shell {
    width:calc(100% - clamp(36px,6.7vw,112px));
    max-width:1360px;
    min-height:52px;
    margin:0 auto;
    justify-content:flex-start;
  }
  .storefront-visual .compact-header .nav-links {
    justify-content:flex-start;
    flex-wrap:nowrap;
  }
}
