/* Shared product layout: four consistent columns on desktop, two on tablet,
   and one on mobile. Short categories leave the remaining columns empty. */
body .brand-product-grid[class],
body .ingredient-product-grid[class],
body .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    justify-content: start;
}
.brand-page-intro { padding: 136px 0 58px; background: var(--paper); }
.brand-title-row { display: flex; align-items: center; gap: 34px; margin-bottom: 20px; }
.brand-title-row .brand-title-logo { display: block; width: 145px; height: 125px; flex: 0 0 145px; object-fit: contain; mix-blend-mode: multiply; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.brand-title-row h1 { font-size: clamp(38px,4.7vw,58px); line-height: 1.12; letter-spacing: -1.8px; color: var(--primary-red); margin: 0; min-width: 0; }
.brand-page-intro p { max-width: 1000px; }
.brand-page-intro .brand-lead { font-size: 19px; line-height: 1.65; color: var(--ink); margin-bottom: 22px; }
.brand-page-intro .button-row { margin-top: 38px; }
.brand-page-intro + .section:not(.brand-range-section) { padding-top: 18px; }
.brand-page .brand-intro { display: block; }
.brand-page .brand-intro-copy p { max-width: 1000px; }
.brand-page .brand-range-header { display: block; }
.brand-product-image img { mix-blend-mode: multiply; }
.shop-product, .ingredient-product-card { transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .brand-page .brand-product-card:hover { transform: translateY(-5px); }
    .shop-product:hover, .ingredient-product-card:hover { transform: translateY(-5px); border-color: rgba(225,37,27,.32); box-shadow: 0 18px 42px rgba(27,26,25,.11); }
}
@media (prefers-reduced-motion: reduce), (hover: none) {
    .brand-product-card:hover, .shop-product:hover, .ingredient-product-card:hover { transform: none; }
}
.brand-back-link { display: inline-block; margin-bottom: 36px; font-weight: 700; color: var(--primary-red); }
.eclipse-brand-page .brand-intro { align-items: center; }
.eclipse-brand-page .brand-intro-logo img { width: auto; height: auto; max-width: min(100%, 320px); max-height: 180px; }
.eclipse-brand-page .brand-range-header { display: block; margin-bottom: 38px; }
.eclipse-brand-page .brand-range-header h2 { margin-bottom: 16px; }
.eclipse-brand-page .brand-range-header p { max-width: 70ch; }
.eclipse-brand-page .brand-family-heading h3 { margin: 0; }
.eclipse-brand-page .brand-product-card { text-decoration: none; }
.eclipse-brand-page .product-note { font-weight: 600; margin-top: 8px; }
.catalogue-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 44px; background: var(--warm); }
.catalogue-panel h2 { font-size: clamp(30px,3.1vw,44px); }
.catalogue-panel p { margin-bottom: 0; }
.catalogue-panel .btn { justify-self: start; }
@media (min-width: 1024px) and (max-width: 1279px) {
    body .ingredient-product-card { padding: 20px; }
    body .product-open > span:last-child:not(.product-picture),
    body .product-controls { padding-inline: 16px; }
    body .product-open strong { font-size: 19px; }
}
@media (min-width: 700px) and (max-width: 1023px) {
    body .brand-product-grid[class],
    body .ingredient-product-grid[class],
    body .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
    .brand-page-intro { padding: 110px 0 42px; }
    .brand-page-intro .brand-back-link { margin-bottom: 26px; }
    .brand-title-row { gap: 18px; align-items: center; margin-bottom: 24px; }
    .brand-title-row .brand-title-logo { flex-basis: 90px; width: 90px; height: 94px; }
    .brand-title-row h1 { font-size: clamp(26px,6.4vw,38px); letter-spacing: -.8px; }
    .brand-page-intro .brand-lead { font-size: 17px; }
    body .brand-product-grid[class],
    body .ingredient-product-grid[class],
    body .product-grid { grid-template-columns: minmax(0, 1fr); }
    body .brand-product-image { height: 255px; padding: 26px; }
    body .brand-product-image img { height: 205px; }
    .catalogue-panel { grid-template-columns: minmax(0,1fr); gap: 24px; padding: 28px; }
}
