/* Image provenance stays in alt text/data and source records, not visual captions. */
body #heroCredit,
body .hero-art-credit,
body .official-art-caption,
body .official-category-card > div > small,
body .catalogue-detail-art > figcaption,
body .catalogue-gallery-zoom-figure > figcaption,
body [data-gallery-view-label],
body .pe-v12-pack-caption,
body .media-note-v44,
body .le-v29-photo-note,
body .bundle-slot-caption,
body .beauty-discovery-grid article > small,
body .bundle-world-product > small,
body .pe-v12-serving-note,
body .pp-v29-hero > figcaption,
body .beauty-v26-featured-caption,
body .campaign-v26-product-hero > figcaption,
body .bundle-campaign-composition > figcaption,
body .cf-home-art > figcaption,
body .cf-hero-art > figcaption,
body .cf-idea-media > figcaption,
body .cf-source-art > figcaption {
  display:none !important;
}

/* Keep the existing keyboard, arrow, zoom and variant-gallery behavior. Each
   visible dot retains a 44px target and a descriptive button aria-label. */
body .presentation-v37 .catalogue-gallery-thumbnails {
  display:flex !important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:8px 0 0;
  margin:0;
  min-height:44px;
  overflow:visible;
}
body .presentation-v37 .catalogue-gallery-thumb {
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  padding:0;
  margin:0;
  border:0;
  border-radius:50%;
  background:transparent !important;
  box-shadow:none;
}
body .presentation-v37 .catalogue-gallery-thumb > span {
  display:none !important;
}
body .presentation-v37 .catalogue-gallery-thumb::after {
  content:"";
  display:block;
  width:8px;
  height:8px;
  border:1px solid currentColor;
  border-radius:50%;
  background:transparent;
  opacity:.55;
  transition:width .16s ease, opacity .16s ease;
}
body .presentation-v37 .catalogue-gallery-thumb[aria-pressed="true"]::after {
  width:20px;
  border-radius:6px;
  background:currentColor;
  opacity:1;
}
body .presentation-v37 .catalogue-gallery-thumb:focus-visible {
  outline:2px solid currentColor;
  outline-offset:-4px;
}

/* Stretch every rail card to its row's tallest title. Copy and purchase actions
   use separate rows so wrapping never shifts Showcase/Details or Add to bag. */
body #heroProducts {
  align-items:stretch;
  gap:16px;
}
body #heroProducts .hero-product-card[data-hero-id] {
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,112px) minmax(0,1fr);
  grid-template-rows:minmax(176px,1fr) auto;
  align-content:stretch;
  align-items:stretch;
  gap:16px;
  padding:16px;
  height:auto;
  min-width:0;
}
body #heroProducts .hero-product-card[data-hero-beauty-card] {
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  align-items:stretch;
  box-sizing:border-box;
  gap:16px;
  padding:16px;
}
body #heroProducts .hero-product-card > div {
  display:flex;
  flex-direction:column;
  min-width:0;
  align-self:stretch;
}
body #heroProducts .hero-product-card strong {
  padding-right:0;
  min-height:2.8em;
  overflow-wrap:anywhere;
}
body #heroProducts .hero-product-card small {
  margin:8px 0 12px;
  overflow-wrap:anywhere;
}
body #heroProducts .hero-product-card small:empty {
  display:none;
}
body #heroProducts .hero-product-card .card-links {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  margin-top:auto;
  padding-top:12px;
  align-items:stretch;
}
body #heroProducts .hero-product-card .card-links > * {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:44px;
  padding:6px 2px;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
}
body #heroProducts .hero-product-card > img,
body #heroProducts .hero-product-card > .pagoto-geometry-thumb,
body #heroProducts .hero-product-card > .original-photo-stage-v47 {
  align-self:center;
}
body #heroProducts .hero-product-card .rail-add {
  grid-column:1 / -1;
  grid-row:2;
  align-self:end;
  justify-self:stretch;
  margin:0;
}
/* Collapsed source-caption rows must not leave a blank band in legacy grids. */
body .products > .product {
  grid-template-rows:auto auto minmax(2.9em,auto) minmax(3.2em,auto) auto auto 1fr auto;
}
@media(max-width:760px) {
  body #heroProducts .hero-product-card[data-hero-id] {
    grid-template-columns:minmax(0,82px) minmax(0,1fr);
    grid-template-rows:minmax(156px,1fr) auto;
    gap:12px;
    padding:14px;
  }
}
@media(prefers-reduced-motion:reduce) {
  body .presentation-v37 .catalogue-gallery-thumb::after {transition:none;}
}

/* Recipe releases use four compact cards per desktop row. Dedicated dish art
   stays independent of the product-only campaign rules loaded earlier. */
body .pp-v29-recipes {scroll-margin-top:100px;}
body .pp-v55-recipes-intro {max-width:360px;}
body .pp-v55-recipes-intro > p {font-size:15px;line-height:1.6;margin:0 0 16px;}
body .pp-v55-explore {display:inline-flex;align-items:center;gap:24px;min-height:44px;padding:11px 19px;border:1px solid #65437b;border-radius:30px;color:#65437b;font-size:13px;font-weight:750;text-decoration:none;}
body .pp-v55-explore:hover {background:#65437b;color:#fff;}
body .pp-v29-recipe-grid {grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch;}
body .pp-v29-recipe-card {border-radius:18px;}
body .pp-v29-recipe-art,
body .pp-v29-recipe-art:has(>img[src^="/assets/eggsential-v48-"]) {aspect-ratio:3/2;min-height:0!important;max-height:none!important;height:auto!important;padding:0!important;overflow:hidden;}
body .pp-v29-recipe-art > img,
body .pp-v29-recipe-art > img[src^="/assets/eggsential-v48-"] {width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;aspect-ratio:auto;object-fit:contain;mix-blend-mode:normal;}
body .pp-v29-recipe-art.pp-v55-dish-art > img {object-fit:contain;}
body .pp-v29-recipe-copy {display:flex;flex-direction:column;flex:1;padding:18px;min-width:0;}
body .pp-v29-recipe-copy .pp-v29-kicker {font-size:9px;letter-spacing:.1em;min-height:1.6em;margin:0;}
body .pp-v29-recipe-copy h4 {font-size:clamp(20px,1.7vw,25px);line-height:1.15;min-height:2.3em;margin:8px 0 12px;}
body .pp-v29-recipe-meta {flex-wrap:wrap;gap:6px 14px;font-size:12px;line-height:1.4;margin:0 0 12px;}
body .pp-v29-recipe-copy > .pp-v55-recipe-pack {display:flex;align-items:center;min-height:44px;font-size:11px;line-height:1.5;overflow-wrap:anywhere;margin:0 0 16px;}
body .pp-v29-recipe-copy details {margin-top:auto;padding-top:0;}
body .pp-v29-recipe-copy summary {display:list-item;min-height:44px;padding:14px 0;line-height:1.4;}
body .pp-v29-recipe-copy details p {font-size:12px;line-height:1.6;}
@media(max-width:1050px) {
  body .pp-v29-recipe-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  body .pp-v29-recipe-copy h4 {font-size:24px;}
}
@media(max-width:720px) {
  body .pp-v55-recipes-intro {max-width:none;margin-top:20px;}
}
@media(max-width:480px) {
  body .pp-v29-recipe-grid {grid-template-columns:minmax(0,1fr);gap:20px;}
  body .pp-v29-recipe-art {aspect-ratio:3/2;}
  body .pp-v29-recipe-copy h4 {min-height:0;}
}

/* Keep the in-page Eggsential feature proportionate to the editorial grid. */
body .feature.feature-eggsential-v56 {
  width:calc(100% - 2 * clamp(20px,5vw,72px));max-width:1280px;
  margin:clamp(32px,5vw,64px) auto;padding:28px;
  grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(28px,4vw,56px);
  align-items:center;min-height:0;border:1px solid #e6d8dc;border-radius:26px;
}
body .feature.feature-eggsential-v56 > .feature-image {
  width:100%;max-width:440px;aspect-ratio:1;min-height:0!important;
  height:auto!important;max-height:none!important;padding:0!important;
  justify-self:center;align-self:center;overflow:hidden;border-radius:18px;
}
body .feature.feature-eggsential-v56 > .feature-image > img {
  display:block;width:100%!important;height:auto!important;max-width:100%!important;
  max-height:none!important;aspect-ratio:1;object-fit:contain!important;padding:0!important;
  margin:0!important;filter:none;border-radius:0!important;
}
body .feature.feature-eggsential-v56 > .feature-copy {padding:12px 0;min-width:0;}
body .feature.feature-eggsential-v56 .feature-copy h2 {font-size:clamp(32px,3.2vw,48px);line-height:1.14;margin:16px 0 20px;}
body .feature.feature-eggsential-v56 .feature-copy p {font-size:15px;line-height:1.7;max-width:480px;margin:0;}
body .feature.feature-eggsential-v56 .feature-tags {display:flex;flex-wrap:wrap;gap:12px 20px;margin:20px 0 24px;font-size:12px;}
body .feature.feature-eggsential-v56 .feature-copy .button {min-height:48px;max-width:100%;font-size:15px;padding:13px 22px;}
body .feature.feature-eggsential-v56 .feature-copy small {max-width:440px;font-size:12px;line-height:1.6;margin-top:18px;}
@media(max-width:900px) {
  body .feature.feature-eggsential-v56 {grid-template-columns:minmax(0,1fr);gap:24px;padding:24px;}
  body .feature.feature-eggsential-v56 > .feature-image {max-width:360px;}
  body .feature.feature-eggsential-v56 > .feature-copy {max-width:560px;width:100%;justify-self:center;padding:0;}
}
@media(max-width:480px) {
  body .feature.feature-eggsential-v56 {width:calc(100% - 32px);padding:18px;gap:22px;border-radius:20px;}
  body .feature.feature-eggsential-v56 > .feature-image {max-width:320px;}
  body .feature.feature-eggsential-v56 .feature-copy h2 {font-size:32px;}
}

/* V57: a product title belongs on the same centre line as its photograph.
   Apply to both related/recent legacy rails and the live catalogue's history. */
body .recommendation-grid,
body .recent-grid {grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;}
body .recommendation-grid > a,
body .recent-grid > a {
  display:block;min-width:0;text-align:center;
}
body .recommendation-grid > a > img,
body .recent-grid > a > img {display:block;margin-inline:auto;}
body .recommendation-grid > a > span:not(.merch-v34-frame),
body .recent-grid > a > span:not(.merch-v34-frame) {
  display:block;box-sizing:border-box;width:100%;max-width:32ch;
  margin-inline:auto;padding:0 8px;text-align:center;line-height:1.55;
  min-height:3.1em;overflow-wrap:anywhere;text-wrap:balance;
}
body .atelier-recent .atelier-recent-link {
  display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;
  justify-items:center;align-items:start;gap:14px;min-width:0;text-align:center;
}
body .atelier-recent .atelier-recent-link > img {
  display:block;width:min(100%,200px);height:auto;aspect-ratio:1;
  margin:0 auto;object-fit:contain;
}
body .atelier-recent .atelier-recent-link > span {
  display:block;box-sizing:border-box;width:100%;max-width:32ch;
  min-width:0;min-height:3.1em;margin:0 auto;padding:0 8px;text-align:center;
  overflow-wrap:anywhere;text-wrap:balance;
}
@media(max-width:800px) {
  body .recommendation-grid,
  body .recent-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;}
}

/* Preserve visible link text while providing the audited minimum hit area. */
.guide-section .related>a{display:inline-flex;align-items:center;min-height:24px}

/* Below-fold sections retain their DOM and native links while avoiding offscreen layout/paint. */
main > section:not(#heroLuxury) { content-visibility: auto; contain-intrinsic-size: auto 900px; }
@media print { main > section:not(#heroLuxury) { content-visibility: visible; contain-intrinsic-size: none; } }
/* Comfortable touch targets for catalogue text links and ingredient filters. */
.pe-v12-flavour-copy h3>a,.official-product-copy h3>a,article.product>h3>a{display:inline-flex;align-items:center;min-height:32px;max-width:100%;scroll-margin-block:180px 24px}
.pp-v29-filter-checks>label{display:inline-flex;align-items:center;min-height:32px;gap:6px}
.pp-v29-filter-checks>label>input{width:24px;height:24px;flex:0 0 24px;margin:4px}
