/* Catalogue extension: approved Fiderva brand palette and typography. */
.main-nav { gap: 1.15rem; }
.main-nav > a:not(.button) { font-size: .875rem; white-space: nowrap; letter-spacing: 0; }
.main-nav > .nav-work-link { color:var(--emerald); font-weight:800; }
.main-nav > .nav-work-link::after { transform:scaleX(1); background:var(--gold); }
.header-work-link { display:none; }
.header-inner { gap: 1.25rem; }
.brand-logo { width: 210px; }
.main-nav .button { font-size: .75rem; padding-inline: 1rem; }
.category-card { display: block; transition: border-color 160ms ease, box-shadow 160ms ease; }
.category-card:hover { border-color: var(--category); box-shadow: 0 8px 30px #00223f10; }
.category-card:focus-visible, .range-card:focus-visible, .catalogue-category:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.category-card p { font-size: 1rem; }
.category-action { display:flex; justify-content:space-between; gap:1rem; margin-top:1.5rem; font-size:.875rem; }
.category-action span { font-size:1.2rem; color:var(--navy); }
.catalogue-main { --accent:var(--turquoise); background:#fff; }
.catalogue-intro { padding:1.5rem 0 3rem; background:var(--paper); border-bottom:1px solid var(--line); border-top:4px solid var(--accent,var(--turquoise)); }
.catalogue-intro .eyebrow { margin:2.2rem 0 1rem; font-size:.875rem; letter-spacing:.1em; }
.catalogue-intro h1 { margin:0; font-size:clamp(2.4rem,4.5vw,4.25rem); line-height:1.12; letter-spacing:-.035em; max-width:1040px; }
.catalogue-intro p { max-width:820px; margin:1rem 0 0; color:var(--muted); font-size:1.0625rem; }
.catalogue-intro-small h1 { font-size:clamp(2.1rem,4vw,3.5rem); }
.catalogue-intro .supply-explanation { font-size:1rem; max-width:900px; padding-top:1rem; }
.origin-line { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.25rem; font-size:.875rem; font-weight:600; color:var(--navy); }
.formats-link { display:inline-block; margin-top:1.25rem; font-size:1rem; font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.ceo-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.8fr); gap:clamp(2rem,5vw,5rem); }
.ceo-introduction h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.15; margin:1rem 0 1.5rem; }
.ceo-portrait { display:block; width:100%; max-width:340px; height:auto; margin:0 0 1.5rem; border:1px solid var(--line); }
.ceo-pullquote { border-left:3px solid var(--turquoise); padding-left:1.25rem; font-size:1.25rem; line-height:1.5; color:var(--navy); }
.ceo-signature { display:flex; flex-direction:column; gap:.2rem; font-size:.875rem; margin-top:2rem; }
.ceo-signature strong { font-size:1.125rem; }
.ceo-letter { margin:0; font-size:1.0625rem; line-height:1.8; }
.ceo-letter p { margin:0 0 1.25rem; }
.ceo-letter .ceo-closing { font-weight:700; color:var(--navy); margin-top:2rem; }
.ceo-home-quote { padding-block:3rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ceo-home-quote blockquote { margin:1rem 0; max-width:52rem; font-size:clamp(1.5rem,2.6vw,2.25rem); line-height:1.35; font-weight:600; color:var(--navy); }
.ceo-home-attribution { font-size:1rem; color:var(--muted); }
.ceo-home-quote .text-link { display:inline-block; margin-top:.5rem; }
.seafood-services { display:grid; grid-template-columns:1fr 1.3fr; gap:3rem; padding-block:3rem 4rem; border-top:3px solid var(--turquoise); scroll-margin-top:110px; }
.seafood-services-heading .eyebrow { font-size:.875rem; }
.seafood-services-heading h2 { font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.2; margin:0 0 1.25rem; }
.seafood-services-heading p { color:var(--muted); font-size:1rem; max-width:28rem; }
.seafood-services-heading .text-link { font-size:1rem; margin-top:1rem; }
.seafood-specifications { margin:0; font-size:1rem; }
.seafood-specifications > div { display:grid; grid-template-columns:135px 1fr; gap:1.5rem; border-bottom:1px solid var(--line); padding:1.1rem 0; }
.seafood-specifications > div:first-child { padding-top:0; }
.seafood-specifications dt { font-weight:700; }
.seafood-specifications dd { margin:0; color:var(--muted); }
.pack-weights { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 .75rem; }
.pack-weights > span { padding:.3rem .65rem; background:var(--navy); color:#fff; font-size:1rem; font-weight:600; }
.breadcrumbs { font-size:.875rem; color:var(--muted); }
.breadcrumbs ol { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.45rem .75rem; }
.breadcrumbs li { display:flex; gap:.75rem; }
.breadcrumbs li+li::before { content:'/'; color:#74818b; }
.breadcrumbs a:hover { text-decoration:underline; }
.breadcrumbs [aria-current] { color:var(--navy); }
.catalogue-body { padding-block:3rem 4rem; }
.catalogue-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.catalogue-category { display:flex; flex-direction:column; border:1px solid var(--line); border-bottom:4px solid var(--accent); background:#fff; transition:box-shadow 180ms ease; }
.catalogue-category:hover, .range-card:hover { box-shadow:0 10px 40px #00223f14; }
.catalogue-category-photo { aspect-ratio:16/9; overflow:hidden; background:#edf2f3; }
.catalogue-category-photo img { width:100%; height:100%; object-fit:cover; }
.catalogue-category-copy { display:flex; flex:1; flex-direction:column; padding:1.75rem; }
.category-label { text-transform:uppercase; letter-spacing:.12em; font-weight:700; font-size:.75rem; color:var(--muted); }
.catalogue-category h2 { font-size:1.875rem; margin:.4rem 0 .8rem; letter-spacing:-.025em; }
.catalogue-category p { font-size:1rem; color:var(--muted); margin:0 0 1.4rem; }
.catalogue-origin { margin-top:auto; font-size:.875rem; color:var(--muted); }
.catalogue-open { display:flex; justify-content:space-between; align-items:center; font-size:.875rem; font-weight:700; border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.catalogue-open > span { font-size:1.5rem; line-height:1; }
.catalogue-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin:0 0 1.5rem; }
.catalogue-section-heading h2 { margin:0; font-size:1.6rem; letter-spacing:-.025em; line-height:1.3; }
.catalogue-section-heading > span { font-size:.875rem; color:var(--muted); white-space:nowrap; }
.range-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.range-card { display:flex; flex-direction:column; border:1px solid var(--line); border-top:3px solid var(--accent); transition:box-shadow 180ms ease; }
.range-photo { aspect-ratio:16/9; background:#f2f5f6; overflow:hidden; }
.range-photo img { width:100%; height:100%; object-fit:cover; }
.range-copy { padding:1.6rem; display:flex; flex-direction:column; flex:1; }
.range-count { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.range-copy h2 { font-size:1.5rem; line-height:1.25; margin:.65rem 0; }
.range-copy p { font-size:1rem; color:var(--muted); margin:0 0 1rem; }
.range-origin { font-size:.875rem; color:var(--muted); margin-top:auto; }
.catalogue-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:2.5rem; padding-block:2.5rem 4rem; align-items:start; }
.catalogue-sidebar { position:sticky; top:110px; border:1px solid var(--line); border-top:3px solid var(--accent); }
.catalogue-sidebar h2 { font-size:1rem; padding:1.25rem; margin:0; border-bottom:1px solid var(--line); }
.catalogue-sidebar nav { display:grid; }
.catalogue-sidebar nav a { font-size:.875rem; padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
.catalogue-sidebar nav a[aria-current] { color:#fff; background:var(--navy); font-weight:700; }
.catalogue-sidebar nav a:hover:not([aria-current]) { background:var(--paper); }
.all-catalogues { display:block; padding:1.25rem; font-size:.875rem; font-weight:700; text-decoration:underline; }
.product-jumps { display:flex; flex-wrap:wrap; gap:.6rem; padding:0 0 1.75rem; }
.product-jumps a { padding:.6rem 1rem; border:1px solid var(--line); background:var(--paper); font-size:.875rem; font-weight:600; }
.product-jumps a:hover { background:var(--navy); color:white; }
.product-section { scroll-margin-top:120px; margin-bottom:3rem; }
.product-family { margin-block:2rem 3rem; scroll-margin-top:120px; }
.product-family > h2 { font-size:1.875rem; padding-block:1rem; border-block:1px solid var(--line); margin-bottom:2rem; }
.product-family .catalogue-section-heading h3 { margin:0; font-size:1.6rem; letter-spacing:-.025em; line-height:1.3; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.product-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--line); background:#fff; }
.product-photo { aspect-ratio:4/3; margin:0; position:relative; background:#f7f8f8; overflow:hidden; }
.product-photo img { width:100%; height:100%; object-fit:contain; padding:.7rem; }
.product-photo figcaption { position:absolute; right:.5rem; bottom:.4rem; background:#ffffffed; color:#4b5e6c; font-size:.75rem; padding:.05rem .4rem; }
.product-copy { padding:1.2rem; flex:1; display:flex; flex-direction:column; }
.product-copy :is(h3,h4) { font-size:1.125rem; line-height:1.35; margin:.65rem 0 .3rem; }
.species-source { font-size:.875rem; margin:0 0 1rem; text-decoration:underline; }
.scientific-name { font-size:.875rem; line-height:1.5; color:var(--muted); margin:0; }
.supply-label { font-size:.75rem; font-weight:700; color:#475d6d; align-self:flex-start; border:1px solid #cad6dd; padding:.15rem .5rem; }
.supply-own { color:var(--emerald); border-color:#a9cabb; }
.product-copy dl { margin:1.1rem 0; font-size:.875rem; }
.product-copy dl > div { padding:.6rem 0; border-top:1px solid #e5e9ec; }
.product-copy dt { font-size:.875rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.product-copy dd { margin:.2rem 0 0; }
.product-enquiry { font-size:.875rem; font-weight:600; color:var(--navy); border-top:1px solid var(--line); margin-top:auto; padding-top:1rem; }
.product-enquiry:hover { text-decoration:underline; }
.cut-card { border-top:3px solid var(--accent); }
.cut-card .product-copy :is(h3,h4) { margin-top:0; }
.range-reference { height:240px; background:var(--paper); margin-bottom:1.75rem; position:relative; overflow:hidden; }
.range-reference img { width:100%; height:100%; object-fit:cover; }
.range-reference span { position:absolute; left:1rem; bottom:1rem; background:#ffffffed; padding:.4rem .75rem; font-size:.875rem; font-weight:700; }
.catalogue-note { background:var(--paper); border-left:3px solid var(--accent); padding:1.5rem; }
.catalogue-note h2 { font-size:1rem; margin:0; }
.catalogue-note p { margin:.75rem 0 0; font-size:.875rem; color:var(--muted); }
.catalogue-note a { text-decoration:underline; }
.catalogue-cta { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:2.5rem 0 3.5rem; border-top:1px solid var(--line); }
.catalogue-cta h2 { font-size:1.75rem; margin:0; line-height:1.25; }
.catalogue-cta p { margin:.8rem 0 0; color:var(--muted); max-width:650px; }
.catalogue-cta .eyebrow { font-size:.875rem; }
.catalogue-cta .button { flex-shrink:0; font-size:.875rem; }
.image-credit-list { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.image-credit-list li { border-bottom:1px solid var(--line); padding:1rem 0; font-size:.875rem; overflow-wrap:anywhere; }
.image-credit-list span,.image-credit-list a { display:block; }
.image-credit-list a { text-decoration:underline; }
/* Content remains readable when JS is disabled or observers are unavailable. */
.reveal { opacity:1; transform:none; }
:focus-visible { outline:3px solid var(--turquoise); outline-offset:4px; }
@media (max-width:1240px) {
 .header-inner { min-height:78px; }
 .brand-logo { width:194px; }
 .brand-logo img { height:68px; }
 .header-work-link { display:inline-flex; align-items:center; justify-content:center; min-height:42px; margin-inline-start:auto; padding:.6rem .85rem; border:1px solid var(--gold); color:var(--navy); background:var(--paper); font-size:.75rem; font-weight:800; line-height:1.2; white-space:nowrap; }
 .header-work-link:hover,.header-work-link:focus-visible,body[data-page="work-with-us"] .header-work-link { background:var(--gold); }
 .menu-toggle { display:inline-flex; }
 .main-nav { position:absolute; z-index:95; inset:100% 0 auto; display:none; flex-direction:column; align-items:stretch; gap:0; padding:1rem 1.5rem 2rem; transform:none; background:var(--white); max-height:calc(100dvh - 120px); overflow-y:auto; border-bottom:1px solid var(--line); }
 .nav-open .main-nav { display:flex; transform:none; }
 .main-nav > a:not(.button) { padding:1rem 0; border-bottom:1px solid var(--line); font-size:1rem; }
 .main-nav > .nav-work-link { margin:.35rem 0; padding-inline:.75rem; border-inline-start:3px solid var(--gold); background:var(--paper); }
 .main-nav > a:not(.button)::after { display:none; }
 .main-nav .button { margin-top:1rem; }
 .catalogue-layout { grid-template-columns:200px minmax(0,1fr); gap:1.5rem; }
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
 .header-inner { gap:.5rem; }
 .brand-logo { width:112px; }
 .brand-logo img { height:50px; }
 .header-work-link { min-height:42px; max-width:92px; padding:.4rem .5rem; font-size:.65rem; line-height:1.15; text-align:center; white-space:normal; }
 .menu-toggle { width:42px; height:42px; }
}
@media (max-width:900px) {
 .ceo-layout { grid-template-columns:1fr; }
 .seafood-services { grid-template-columns:1fr; gap:1.5rem; }
 .catalogue-category-grid, .range-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catalogue-layout { grid-template-columns:1fr; }
 .catalogue-sidebar { position:static; }
 .catalogue-sidebar nav { display:flex; flex-wrap:wrap; }
 .catalogue-sidebar nav a { border-right:1px solid var(--line); flex:1 1 180px; }
 .catalogue-sidebar .all-catalogues { padding:.75rem 1.25rem; }
 .catalogue-cta { flex-direction:column; align-items:flex-start; }
}
@media (max-width:620px) {
 .seafood-specifications > div { grid-template-columns:1fr; gap:.5rem; }
 .catalogue-intro { padding-bottom:2rem; }
 .catalogue-intro .eyebrow { font-size:.75rem; }
 .catalogue-category-grid,.range-grid,.product-grid,.image-credit-list { grid-template-columns:1fr; }
 .catalogue-category-photo,.range-photo { aspect-ratio:16/8; }
 .product-photo { aspect-ratio:16/10; }
 .catalogue-category-copy,.range-copy { padding:1.35rem; }
 .catalogue-body { padding-block:2rem; }
 .catalogue-layout { padding-block:1.5rem 2rem; }
 .catalogue-section-heading { align-items:start; }
 .catalogue-section-heading h2, .product-family .catalogue-section-heading h3 { font-size:1.35rem; }
 .product-copy { padding:1.4rem; }
 .product-copy :is(h3,h4) { font-size:1.3rem; }
 .product-copy dd { font-size:1rem; }
 .catalogue-sidebar nav a { flex-basis:140px; }
 .catalogue-cta .button { width:100%; }
}

/* Reference captions distinguish prepared dishes from supplied product forms. */
.catalogue-category-photo,.range-photo{position:relative}
.overview-caption{position:absolute;inset-inline-start:.75rem;bottom:.75rem;padding:.25rem .55rem;border-radius:3px;background:rgba(0,34,63,.88);color:#fff;font-size:.72rem;line-height:1.35}
