@font-face { font-family:"Parkinsans Product"; src:url("../fonts/parkinsans-variable.ttf") format("truetype"); font-style:normal; font-weight:700; font-display:swap; }
/* Scoped catalogue grid. Immersive opening and global typography remain shared. */
.products-page { --paper:#f8f7f2; --surface:#f8f7f2; --opening-focal:50% 45%; --opening-focal-mobile:50% 50%; background:var(--paper); }
.products-page main { padding-top:0; }
.catalog-opening { margin-bottom:0; }
.catalog-opening .page-opening__title { max-width:16ch; font-family:"Parkinsans",sans-serif; font-weight:600; font-size:clamp(64px,7.2vw,104px); line-height:1.04; letter-spacing:-.065em; text-wrap:initial; }
.catalog-filter-anchor { position:relative; z-index:2; padding-block:60px; background:var(--paper); }
.catalog-filters { display:flex; align-items:center; justify-content:center; gap:16px; min-height:48px; padding:0 16px; }
.catalog-filter { display:flex; align-items:center; justify-content:center; flex:0 1 156px; min-width:0; min-height:48px; color:#000; text-decoration:none; font:400 12px/1.1 "Hanken Grotesk",sans-serif; text-transform:uppercase; }
.catalog-filter span { display:grid; place-items:center; width:100%; height:34px; border-radius:20px; background:transparent; transition:background-color 180ms ease; }
.catalog-filter.is-current span, .catalog-filter:focus-visible span { background:#f7cee1; }
@media (hover:hover) { .catalog-filter:hover span { background:#f7cee1; } }
.catalog-filter:focus-visible { outline:2px solid var(--orange-text); outline-offset:2px; }
.catalog-filters--floating { position:fixed; z-index:40; bottom:0; left:0; right:0; width:100%; min-height:72px; background:var(--paper); border-radius:20px 20px 0 0; }
.catalog-filters--floating[hidden] { display:none; }
.catalog-section { padding-top:clamp(56px,7vw,108px); padding-bottom:clamp(80px,10vw,144px); scroll-margin-top:80px; }
#fresh { padding-top:0; }
.catalog-section__heading { margin-bottom:clamp(48px,6vw,88px); }
.catalog-section h2 { margin:0; color:#2e3e11; font:700 clamp(56px,7vw,80px)/1 "Parkinsans Product","Parkinsans",sans-serif; letter-spacing:-.065em; }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(36px,4.5vw,72px) clamp(14px,2vw,28px); list-style:none; margin:0; padding:0; }
.catalog-item { min-width:0; width:90%; margin-inline:auto; --catalog-card-scale:.9; }
.catalog-item__link,.catalog-item__static { display:block; color:var(--ink-deep); background:transparent; text-decoration:none; }
.catalog-item__link:focus-visible { outline:2px solid var(--orange-text); outline-offset:5px; border-radius:4px; }
.catalog-item__visual { position:relative; display:block; width:100%; overflow:hidden; aspect-ratio:1.18; background:#f2efe9; border-radius:calc(var(--media-radius) * var(--catalog-card-scale)); }
.catalog-item__visual img,.catalog-item__illustration { display:block; width:100%; height:100%; object-fit:cover; }
.catalog-item__illustration { background-image:url('../assets/catalog-fruit-illustrations.webp'); background-size:460% 600%; background-position:var(--sprite-x) var(--sprite-y); background-repeat:no-repeat; }
.catalog-item__meta { display:flex; align-items:flex-start; justify-content:space-between; gap:calc(12px * var(--catalog-card-scale)); padding-top:calc(14px * var(--catalog-card-scale)); }
.catalog-item__name { min-width:0; font:400 calc(20px * var(--catalog-card-scale))/1.2 "Hanken Grotesk",sans-serif; overflow-wrap:anywhere; text-transform:uppercase; }
.catalog-item__origin { display:inline-flex; align-items:center; justify-content:center; flex:none; width:calc(18px * var(--catalog-card-scale)); height:calc(24px * var(--catalog-card-scale)); }
.catalog-item__flag { display:block; width:calc(18px * var(--catalog-card-scale)); height:calc(18px * var(--catalog-card-scale)); opacity:.48; transition:opacity 180ms ease; }
.catalog-item:hover .catalog-item__flag,.catalog-item:focus-within .catalog-item__flag { opacity:1; }
.catalog-item__static { cursor:default; }
.catalog-contact { padding-block:0 var(--section-space); background:var(--paper); color:var(--ink-deep); }
.catalog-contact__inner { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; align-items:start; }
.catalog-contact h2 { grid-column:1/7; max-width:19ch; margin:0; font:500 clamp(36px,4vw,58px)/1.1 "Parkinsans",sans-serif; letter-spacing:-.055em; }
.catalog-contact__inner > div { grid-column:8/-1; }
.catalog-contact p { max-width:32ch; margin:0 0 24px; font:400 18px/1.5 "Hanken Grotesk",sans-serif; }
.catalog-contact .page-button { font-weight:600; }
.products-page .site-footer { margin-top:0; }
@media (min-width:1450px) { .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:1100px) { .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:800px) {
  .catalog-opening .page-opening__title { font-size:clamp(43px,10vw,76px); }
  .catalog-filters { gap:14px; }
  .catalog-filter-anchor { padding-block:44px; }
  .catalog-section { padding-top:56px; scroll-margin-top:70px; }
  #fresh { padding-top:0; }
  .catalog-section__heading { margin-bottom:44px; }
  .catalog-section h2 { font-size:clamp(56px,11vw,84px); }
  .catalog-contact__inner { grid-template-columns:1fr; gap:28px; }
  .catalog-contact h2,.catalog-contact__inner > div { grid-column:1; }
}
@media (max-width:620px) { .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 12px; } .catalog-item__meta { align-items:center; } .catalog-item__name { font-size:calc(16px * var(--catalog-card-scale)); } .catalog-item__visual { aspect-ratio:.94; }  }
@media (max-width:360px) { .catalog-filters { gap:8px; } .product-grid { gap-inline:8px; } }
@media (prefers-reduced-motion:no-preference) {
  .catalog-filters--floating:not([hidden]) { animation:catalog-filter-rise 420ms var(--ease-out) both; }
  @keyframes catalog-filter-rise { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:translateY(0); } }
  .products-page.has-card-reveal .catalog-item[data-card-reveal] { opacity:0; transform:translateY(28px); transition:opacity 480ms var(--ease-out),transform 620ms var(--ease-out); transition-delay:var(--card-delay,0ms); }
  .products-page.has-card-reveal .catalog-item[data-card-reveal].is-visible { opacity:1; transform:none; }
}
@media (prefers-reduced-motion:reduce) { .catalog-filter,.catalog-item__flag { transition:none; } }
html.motion-paused .catalog-item { transition:none!important; transform:none!important; opacity:1!important; }
