/* Layout: photo-led, after the Granarolo reference. Mint bar, white page, full-width photo cards with white serif headlines, round red sticker. Photos are placeholders until real shots exist (set --photo on .hero / .line). Single light look by choice. */
:root {
  --mint: #B4492F; --mint-dk: #983A22; --mint-tint: #F4E8DA; --mint-line: #E0C4AC;
  --red: #2D1A13; --ink: #2D1A13; --ink-2: #6B574C; --paper: #FBF6EF; --deep: #2D1A13;
  --f-display: "Source Serif 4", "Georgia", "Times New Roman", serif;
  --f-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font: 400 16px/1.6 var(--f-body); padding-inline: 16px; padding-block: 0; overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.wrap { max-width: 1160px; margin-inline: auto; }
h1, h2, h3 { font-family: var(--f-display); font-weight: 500; margin: 0; text-wrap: balance; letter-spacing: -0.01em; }
.label { font: 600 11px/1.4 var(--f-body); letter-spacing: 0.16em; text-transform: uppercase; }
.ph { border-bottom: 2px dashed currentColor; }

/* bar */
.bar { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 5; background: var(--mint); color: #fff; box-shadow: 0 0 0 100vmax var(--mint); clip-path: inset(0 -100vmax); }
.bar-in { max-width: 1160px; margin-inline: auto; display: flex; align-items: center; gap: 22px; padding-block: 16px; flex-wrap: wrap; }
.logo { font: 800 22px/1 var(--f-body); letter-spacing: -0.02em; text-transform: uppercase; text-decoration: none; margin-right: auto; color: #fff; }
.tri { display: none; }
.nav { display: flex; gap: 26px; font: 700 13px/1 var(--f-body); letter-spacing: 0.1em; text-transform: uppercase; }
.nav a { text-decoration: none; color: #fff; padding-block: 6px; border-bottom: 2px solid transparent; }
.nav a:hover { border-bottom-color: #fff; }
.lang { display: flex; gap: 2px; }
.lang a, .lang button { font: 700 12px/1 var(--f-body); padding: 8px 9px; border: 0; background: transparent; color: #fff; cursor: pointer; border-radius: 999px; }
.lang a[aria-current="page"], .lang button[aria-pressed="true"] { background: #fff; color: var(--mint-dk); }
@media (max-width: 900px) { .nav { display: none; } }

.btn { display: inline-flex; align-items: center; justify-content: center; font: 700 13px/1 var(--f-body); letter-spacing: 0.1em; text-transform: uppercase; padding: 17px 26px; border: 2px solid var(--mint-dk); border-radius: 999px; background: var(--mint-dk); color: #fff; text-decoration: none; cursor: pointer; }
.btn.sm { padding: 10px 16px; font-size: 12px; background: #fff; color: var(--mint-dk); border-color: #fff; }
.btn.ghost { background: transparent; color: inherit; border-color: currentColor; }

/* hero: photo card */
.hero { --photo: radial-gradient(120% 90% at 78% 12%, #E7B66E 0%, rgba(231,182,110,0) 55%), linear-gradient(165deg, #B9793D 0%, #7A4A25 48%, #2E2016 100%);
  position: relative; margin-top: 16px; min-height: clamp(460px, 56vw, 660px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  padding: 72px 24px 88px; color: #fff; background: linear-gradient(rgba(26,12,6,.28), rgba(26,12,6,.52)), var(--photo); background-size: cover; background-position: center; }
.hero::after { content: "PHOTO"; position: absolute; left: 16px; top: 14px; font: 600 10px/1 var(--f-body); letter-spacing: .2em; opacity: .55; }
.hero > *:not(.sticker) { position: relative; max-width: 780px; }
.hero .label { opacity: .92; }
.hero h1 { font-weight: 500; font-size: clamp(2.3rem, 6.6vw, 4.6rem); line-height: 1.04; margin-block: 16px 14px; }
.hero .it { font: italic 400 clamp(1.1rem, 2.2vw, 1.5rem)/1.3 var(--f-display); margin: 0 0 18px; opacity: .95; }
.hero p { font-size: 17px; max-width: 54ch; margin: 0 auto 28px; opacity: .95; }
.actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.hero .btn { background: #fff; color: var(--mint-dk); border-color: #fff; }
.hero .btn.ghost { background: transparent; color: #fff; border-color: #fff; }
.badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.badges span { font: 700 11px/1 var(--f-body); letter-spacing: 0.14em; text-transform: uppercase; padding: 9px 14px; border: 1.5px solid rgba(255,255,255,.8); border-radius: 999px; }
.badges span.on { background: var(--mint); border-color: var(--mint); }
.sticker { position: absolute; z-index: 2; right: clamp(12px, 4vw, 56px); bottom: -44px; width: clamp(108px, 14vw, 150px); aspect-ratio: 1; border-radius: 50%; background: var(--mint-dk); color: #F4E8DA; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transform: rotate(-9deg); box-shadow: 0 8px 22px rgba(0,0,0,.28); gap: 4px; }
.sticker b { font: 800 clamp(.8rem, 1.5vw, 1rem)/1.05 var(--f-body); text-transform: uppercase; letter-spacing: -.01em; }
.sticker i { font: normal 700 clamp(.55rem, 1vw, .65rem)/1 var(--f-body); letter-spacing: .14em; text-transform: uppercase; background: #E3B77C; color: #2D1A13; padding: 4px 8px; border-radius: 999px; }

.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 72px 24px; }
.fact { padding: 6px 20px; border-left: 1px solid var(--mint-line); }
.fact:first-child { border-left: 0; padding-left: 0; }
.fact b { display: block; font: 500 clamp(2.2rem, 5vw, 3.6rem)/1 var(--f-display); color: var(--mint-dk); margin-bottom: 8px; }
.fact .label { color: var(--ink-2); }
@media (max-width: 700px) { .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } .fact:nth-child(odd) { border-left: 0; padding-left: 0; } }

section { padding-block: 84px; scroll-margin-top: 80px; }
section > .label { color: var(--mint-dk); }
section h2 { font-size: clamp(2rem, 4.8vw, 3.2rem); line-height: 1.05; margin-block: 12px 14px; }
.lead { max-width: 56ch; color: var(--ink-2); margin: 0 0 40px; font-size: 17px; }
@media (max-width: 700px) { section { padding-block: 56px; } }

/* groups: stacked photo cards */
.lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.line { --photo: linear-gradient(160deg, #D7B66A, #8A5E24); position: relative; min-height: clamp(340px, 38vw, 460px); display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 28px; color: #fff; min-width: 0;
  background: linear-gradient(to top, rgba(26,12,6,.78) 0%, rgba(26,12,6,.18) 62%, rgba(26,12,6,.05) 100%), var(--photo); background-size: cover; background-position: center; }
.line:nth-child(1) { --photo: radial-gradient(90% 70% at 70% 20%, #F2DCA0 0%, rgba(242,220,160,0) 60%), linear-gradient(160deg, #D2A94D, #7B521C); }
.line:nth-child(2) { --photo: radial-gradient(90% 70% at 30% 25%, #D9776A 0%, rgba(217,119,106,0) 60%), linear-gradient(160deg, #A83F37, #4F1815); }
.line:nth-child(3) { --photo: radial-gradient(90% 70% at 65% 25%, #C5C36B 0%, rgba(197,195,107,0) 60%), linear-gradient(160deg, #8A8A34, #343812); }
.line:nth-child(4) { --photo: radial-gradient(90% 70% at 35% 25%, #F0D26B 0%, rgba(240,210,107,0) 60%), linear-gradient(160deg, #D79A3B, #8C4A1B); }
.line .label { order: -1; margin-bottom: auto; opacity: .95; }
.line h3 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); line-height: 1.02; font-weight: 500; }
.line p { margin: 0; font-size: 15px; max-width: 40ch; opacity: .95; }
.line .items { margin-top: 6px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.5); font: 600 11px/1.6 var(--f-body); letter-spacing: .1em; text-transform: uppercase; overflow-wrap: anywhere; }
.more { margin: 28px 0 0; color: var(--ink-2); font-weight: 500; }
@media (max-width: 760px) { .lines { grid-template-columns: minmax(0, 1fr); } .line { min-height: 380px; padding: 24px; } }

/* terms */
.terms { list-style: none; margin: 0; padding: 0; }
.terms li { display: grid; grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.8fr); gap: 8px 32px; padding-block: 22px; border-top: 1px solid var(--mint-line); align-items: baseline; }
.terms li:last-child { }
.terms h3 { font: 700 13px/1.4 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--mint-dk); }
.terms p { margin: 0; font-size: 17px; }
@media (max-width: 700px) { .terms li { grid-template-columns: minmax(0, 1fr); gap: 6px; } }

/* steps */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: s; }
.steps li { counter-increment: s; background: var(--mint-tint); padding: 24px 22px 28px; }
.steps li::before { content: counter(s); font: 500 3.2rem/1 var(--f-display); color: var(--mint-dk); display: block; margin-bottom: 14px; }
.steps h3 { font: 600 19px/1.25 var(--f-display); margin-bottom: 8px; }
.steps p { margin: 0; font-size: 15px; color: var(--ink-2); }
@media (max-width: 760px) { .steps { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .steps { grid-template-columns: minmax(0, 1fr); } }

/* request */
#request { box-shadow: 0 0 0 100vmax var(--mint-tint); clip-path: inset(0 -100vmax); background: var(--mint-tint); }
.req { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 56px; }
@media (max-width: 860px) { .req { grid-template-columns: minmax(0, 1fr); gap: 16px; } }
form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
.fld { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.fld > .label { color: var(--ink-2); }
.fld.full, form > .btn, .check, .gdpr { grid-column: 1 / -1; }
form > .btn { justify-self: start; }
@media (max-width: 520px) { form { grid-template-columns: minmax(0, 1fr); } }
input[type=text], select, textarea { font: 500 16px/1.4 var(--f-body); color: var(--ink); background: #fff; border: 1px solid var(--mint-line); border-radius: 0; padding: 14px; width: 100%; min-width: 0; }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--mint-dk); outline-offset: 0; border-color: var(--mint-dk); }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; }
.check input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--mint-dk); }
.gdpr { margin: 0; font-size: 13px; color: var(--ink-2); }
.result { grid-column: 1 / -1; background: #fff; border: 1px solid var(--mint-line); padding: 22px; }
.result h3 { font: 600 20px/1.2 var(--f-display); margin-bottom: 6px; }
.result p { margin: 0 0 12px; font-size: 15px; color: var(--ink-2); }
.result pre { margin: 0 0 14px; white-space: pre-wrap; overflow-wrap: anywhere; font: 500 13px/1.7 ui-monospace, Menlo, monospace; }
.result .acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.result .btn.ghost { color: var(--mint-dk); }
.status { font-size: 14px; color: var(--ink-2); }

.contacts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0; }
.contacts dt { margin-bottom: 8px; color: var(--mint-dk); }
.contacts dd { margin: 0; font: 500 clamp(1.2rem, 2.4vw, 1.7rem)/1.25 var(--f-display); overflow-wrap: anywhere; }
@media (max-width: 700px) { .contacts { grid-template-columns: minmax(0, 1fr); } }
footer { box-shadow: 0 0 0 100vmax var(--deep); clip-path: inset(0 -100vmax); background: var(--deep); color: #E8D8C6; padding-block: 28px; font: 500 13px/1.6 var(--f-body); letter-spacing: .05em; overflow-wrap: anywhere; }

@media (max-width: 560px) { .bar-in { flex-wrap: nowrap; gap: 8px; } .logo { font-size: 19px; white-space: nowrap; } .lang a, .lang button { padding: 7px 6px; font-size: 10.5px; } .bar .btn.sm { padding: 10px 11px; font-size: 11px; white-space: nowrap; } }
.line .ico { position: absolute; right: 24px; top: 22px; width: 68px; height: 68px; opacity: .9; }
.pluses { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.pluses li { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; font-size: 16px; line-height: 1.4; }
.pluses li::before { content: "✓"; flex: none; font-weight: 800; color: var(--mint-dk); }
.steps-cta { margin-top: 36px; }
[hidden] { display: none !important; }
.logo { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.logo-row { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.logo .tri { display: inline-flex; flex: none; width: 40px; height: 27px; margin: 0; border-radius: 3px; overflow: hidden; vertical-align: baseline; }
.tag { font: 500 12px/1.3 var(--f-body); letter-spacing: 0.02em; text-transform: none; white-space: normal; opacity: .8; }
.mbar { display: none; }
@media (max-width: 760px) {
  .bar .btn.sm { display: none; }
  .mbar { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .mbar .btn { flex: 1; min-width: 0; padding: 13px 8px; font-size: 13px; line-height: 1.15; text-align: center; letter-spacing: 0.02em; text-transform: none; }
  .wrap { padding-bottom: 80px; }
  .mbar { transition: transform .25s ease, opacity .25s ease; }
  .mbar.mbar-off { transform: translateY(110%); opacity: 0; pointer-events: none; }
}
.bar .btn.sm.call, .mbar .btn.call { background: var(--ink); color: #F4E8DA; border-color: var(--ink); }
.mbar .btn.offer { background: var(--mint-dk); color: #fff; border-color: var(--mint-dk); }
.mbar { background: var(--paper); border-top: 1px solid var(--mint-line); }
@media (max-width: 1359px) { .nav { display: none; } }
@media (min-width: 1360px) { .bar-in { max-width: 1280px; } }
.bar-in { flex-wrap: nowrap; gap: 14px; }
.tri i { flex: 1; } .tri i:nth-child(1) { background: #008C45; } .tri i:nth-child(2) { background: #fff; } .tri i:nth-child(3) { background: #CD212A; }

.label.rq::after { content: " *"; }
input.bad { border-color: #B3261E !important; outline: 2px solid #B3261E; outline-offset: 0; }

.gdpr p { margin: 0 0 6px; }
.gdpr summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.gdpr ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.badges { display: none; }

/* hero photo: salumi */
.hero { --photo: url("../img/hero.jpg"); background: linear-gradient(rgba(38,16,8,.55), rgba(38,16,8,.66)), var(--photo); background-size: cover; background-position: 50% 50%; }
.hero::after { content: none; }

/* card photo: formaggi */

/* card photos */

.down { display: none; }
/* mobile: compact hero so the sticker (half outside the photo) stays in the first screen */
@media (max-width: 760px) {
  .hero { min-height: 0; padding: 44px 20px 66px; }
  .hero h1 { font-size: 2.1rem; margin-block: 12px 10px; }
  .hero .it { margin-bottom: 12px; }
  .hero p { font-size: 15.5px; line-height: 1.5; margin-bottom: 20px; }
  .hero .btn { padding: 15px 22px; }
  .sticker { top: auto; bottom: -46px; right: 14px; width: 96px; }
  .hero { margin-bottom: 0; }
  .down { display: flex; justify-content: center; align-items: flex-start; height: 175px; padding-top: 44px; color: var(--mint-dk); }
  .down svg { animation: nudge 1.8s ease-in-out infinite; }
  @keyframes nudge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
  @media (prefers-reduced-motion: reduce) { .down svg { animation: none; } }
}


/* partners (collapsible) */
.partners { border-top: 1px solid var(--mint-line, currentColor); border-bottom: 1px solid var(--mint-line, currentColor); }
.partners summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 0; font: 600 clamp(1.1rem, 2.4vw, 1.5rem)/1.2 var(--f-display, inherit); }
.partners summary::-webkit-details-marker { display: none; }
.partners summary::after { content: "+"; font: 400 28px/1 var(--f-body, inherit); flex: none; }
.partners[open] summary::after { content: "–"; }
.partners ul { list-style: none; margin: 0; padding: 0 0 24px; display: flex; flex-wrap: wrap; gap: 10px 12px; }
.partners li { padding: 9px 16px; border: 1px solid var(--mint-line, currentColor); border-radius: 999px; font: 600 14px/1.2 var(--f-body, inherit); }
.partners li a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* partner logo tiles */
.partners ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 761px) { .partners ul { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.partners li { padding: 0; border: 1px solid var(--mint-line, #ddd); border-radius: 6px; background: #fff; overflow: hidden; }
.partners li img { display: block; width: 100%; height: auto; }
.partners li a { display: block; }

/* partners: smaller tiles; footer a bit more readable */
.partners ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 761px) { .partners ul { grid-template-columns: repeat(auto-fill, 132px); } }
footer { font-size: 14px; color: #F4E8DA; }
footer .fine { opacity: .75; font-size: 13px; }

.logo-img { display: none; }

/* header logo image (terracotta) */
.logo-img { display: block; height: 46px; width: auto; border-radius: 3px; }
.logo-text { display: none; }
.logo { gap: 8px; }
@media (max-width: 560px) { .logo-img { height: 38px; } }

/* white header with a terracotta shadow */
.bar { background: none; box-shadow: none; clip-path: none; color: var(--ink); }
.bar::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: #fff; box-shadow: 0 6px 20px rgba(180, 73, 47, .42), 0 2px 0 var(--mint); }
.logo { color: var(--ink); }
.logo-img { border-radius: 0; height: 50px; }
.tag { color: var(--ink-2); opacity: 1; }
.lang a, .lang button { color: var(--ink-2); }
.lang a[aria-current="page"], .lang button[aria-pressed="true"] { background: var(--mint-dk); color: #fff; }
.bar .btn.sm.offer { background: var(--mint-dk); color: #fff; border-color: var(--mint-dk); }
@media (max-width: 560px) { .logo-img { height: 40px; } }
.nav { display: none !important; }

/* tagline: first part under the logo (same width, tracked caps), "since 2012" continues after it */
.logo { align-items: flex-start; }
.logo-row { display: inline-flex; }
.tag { display: flex; align-items: baseline; gap: 10px; width: auto; min-width: 0; white-space: nowrap; font: 600 10px/1.3 var(--f-body); text-transform: uppercase; letter-spacing: 0; }
.tag-a { --fit: 1; display: block; flex: none; width: 138px; overflow: visible; }
.tag-b { display: block; letter-spacing: .1em; }

/* new logo already says "Italian food products · Anno 2012": tagline without the year, natural width */
.tag-a { --fit: 0; width: auto; letter-spacing: .08em; }
.tag-b { display: none; }

/* no tagline under the logo (logo already says it) */
.logo .tag { display: none; }

/* Cormorant variant */
:root { --f-display: "Cormorant Garamond", "Cormorant", Georgia, serif; }
h1, h2, h3 { font-weight: 600; letter-spacing: -.005em; }
.hero h1 { font-weight: 600; line-height: 1.04; }
.fact b, .steps li::before { font-weight: 600; }

/* DOP seal replaces the round sticker */
.sticker { background: url(../img/sticker.png) center/contain no-repeat !important; border-radius: 0 !important; box-shadow: none !important; transform: none; filter: drop-shadow(0 8px 14px rgba(60,30,15,.28)); width: clamp(108px, 14vw, 150px); }
.sticker b, .sticker i { display: none !important; }
@media (max-width: 760px) { .sticker { width: 96px !important; bottom: -46px !important; right: -6px !important; } }
@media (min-width: 761px) { .sticker { right: clamp(0px, 1.5vw, 20px) !important; } }

.fnote { display: block; margin-top: 10px; font-size: .78rem; line-height: 1.35; opacity: .7; }

.line:nth-child(5) { --photo: radial-gradient(90% 70% at 35% 25%, #B5546A 0%, rgba(181,84,106,0) 60%), linear-gradient(160deg, #7A2236, #33101A); }
.line:nth-child(6) { --photo: radial-gradient(90% 70% at 65% 25%, #F4D98A 0%, rgba(244,217,138,0) 60%), linear-gradient(160deg, #D9A441, #8A5A1C); }

@media (max-width: 700px) { .fact b[data-i18n="f4n"] { font-size: clamp(1.5rem, 7.4vw, 2rem); line-height: 1.25; } }
@media (min-width: 1001px) { .lines { grid-template-columns: repeat(3, minmax(0, 1fr)); } .line { min-height: 440px; padding: 24px; } .line h3 { font-size: clamp(1.8rem, 2.4vw, 2.3rem); } .line .items { font-size: 10.5px; letter-spacing: .08em; } .line .ico { width: 56px; height: 56px; right: 20px; top: 20px; } }
@media (min-width: 1001px) { .line .label { max-width: calc(100% - 84px); line-height: 1.4; } }

/* category cards: photo/gradient by class */
.line.c-cheese { --photo: url("../img/cheese.jpg"); background-position: 50% 40%; }
.line.c-meat { --photo: url("../img/meat.jpg"); background-position: 50% 50%; }
.line.c-olio { --photo: url("../img/olio.jpg"); background-position: 50% 60%; }
.line.c-bev { --photo: url("../img/bev.jpg"); background-position: 50% 60%; }
.line.c-wine { --photo: url("../img/wine.jpg"); background-position: 50% 50%; }
.line.c-pasta { --photo: url("../img/pasta.jpg"); background-position: 50% 50%; }
.line.c-conserve { --photo: radial-gradient(90% 70% at 40% 25%, #F1C48A 0%, rgba(0,0,0,0) 60%), linear-gradient(160deg, #E0A15A, #8A4A1C); }
.line.c-tomato { --photo: radial-gradient(90% 70% at 40% 25%, #F09A86 0%, rgba(0,0,0,0) 60%), linear-gradient(160deg, #E26A55, #8E2218); }
.line.c-olive { --photo: radial-gradient(90% 70% at 40% 25%, #C9C778 0%, rgba(0,0,0,0) 60%), linear-gradient(160deg, #A7A649, #4C5A1B); }
.line.c-flour { --photo: radial-gradient(90% 70% at 40% 25%, #F6EBCF 0%, rgba(0,0,0,0) 60%), linear-gradient(160deg, #E9D8B0, #A98B52); }
.line.c-truffle { --photo: radial-gradient(90% 70% at 40% 25%, #8F7762 0%, rgba(0,0,0,0) 60%), linear-gradient(160deg, #6B5646, #241A14); }

.line.c-ask { --photo: linear-gradient(160deg, #A24E30, #5A2616); text-decoration: none; }
.line.c-ask .items { text-transform: uppercase; }
.line.c-ask .items::after { content: " \2192"; }

/* category modal */
.line[data-cat] { cursor: pointer; transition: transform .2s ease, filter .2s ease; }
.line[data-cat]:hover { filter: brightness(1.06); }
.line[data-cat]:focus-visible { outline: 3px solid var(--accent, #9B3F27); outline-offset: 3px; }
.line[data-cat] .items::after { content: " \2192"; }
html.cm-open { overflow: hidden; }
.cm[hidden] { display: none; }
.cm { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.cm-bg { position: absolute; inset: 0; background: rgba(30,14,8,.62); }
.cm-box { position: relative; width: min(720px, 100%); max-height: calc(100vh - 40px); overflow: auto; background: #FBF6EF; color: #2B1A12; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.cm-ph { height: clamp(180px, 30vh, 280px); background: linear-gradient(to top, rgba(26,12,6,.35), rgba(26,12,6,0) 60%), var(--photo); background-size: cover; background-position: center; }
.cm-x { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #2B1A12; font-size: 26px; line-height: 1; cursor: pointer; }
.cm-body { padding: 26px 28px 30px; }
.cm-body h2 { margin: 0 0 12px; font-size: clamp(1.8rem, 4vw, 2.4rem); line-height: 1.05; }
.cm-body p { margin: 0 0 18px; font-size: 16px; line-height: 1.6; }
.cm-chips { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cm-chips li { padding: 7px 12px; border: 1px solid rgba(155,63,39,.35); border-radius: 999px; font: 600 12px/1.2 var(--f-body); letter-spacing: .04em; color: #7A3320; background: rgba(155,63,39,.06); }
@media (max-width: 700px) { .cm { align-items: flex-end; padding: 0; } .cm-box { width: 100%; max-height: 92vh; border-radius: 18px 18px 0 0; } .cm-body { padding: 22px 20px 26px; } }
/* mobile: tall hero, photo fills most of the first screen, arrow stays */
@media (max-width: 760px) {
  .hero { min-height: calc(100vh - 255px); min-height: calc(100svh - 255px); display: flex; flex-direction: column; align-items: center; justify-content: center; }
}
@media (max-width: 760px) { .down { height: 84px; padding-top: 30px; } }

/* new category photos */
.line.c-olive { --photo: url("../img/olive.jpg"); background-position: 50% 50%; }
.line.c-conserve { --photo: url("../img/conserve.jpg"); background-position: 50% 50%; }
.line.c-flour { --photo: url("../img/flour.jpg"); background-position: 50% 50%; }
.line.c-truffle { --photo: url("../img/truffle.jpg"); background-position: 50% 50%; }
.line.c-ask { --photo: url("../img/ask.jpg"); background-position: 50% 50%; }
.line.c-tomato { --photo: url("../img/tomato.jpg"); background-position: 50% 50%; }

/* ---- production additions ---- */
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lang a { display: inline-block; text-decoration: none; font: 700 12px/1 var(--f-body); padding: 8px 9px; border-radius: 999px; color: var(--ink-2); }
.lang a[aria-current="page"] { background: var(--mint-dk); color: #fff; }
@media (max-width: 560px) { .lang a { padding: 7px 6px; font-size: 10.5px; } }
footer .fine a { color: inherit; text-underline-offset: 3px; }
#sent { border-color: var(--mint-dk); }
.doc { max-width: 760px; margin: 0 auto; padding: 56px 0 96px; }
.doc h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.08; margin: 18px 0 14px; }
.doc .lead { color: var(--ink-2); font-size: 17px; margin: 0 0 28px; }
.docl { padding-left: 20px; display: grid; gap: 14px; line-height: 1.6; }
.fine2 { margin-top: 36px; font-size: 13px; color: var(--ink-2); }
.doc a { text-underline-offset: 3px; }

/* partners */
#partners .pluses { margin-bottom: 18px; }
.p-it { margin: 0 0 28px; max-width: 62ch; font: italic 400 1.15rem/1.5 var(--f-display); color: var(--ink-2); }
.pform { margin-top: 4px; }
.pform summary { list-style: none; cursor: pointer; display: inline-flex; user-select: none; }
.pform summary::-webkit-details-marker { display: none; }
.pform summary::after { content: "+"; margin-left: 12px; font-size: 18px; line-height: 1; }
.pform[open] summary::after { content: "\2212"; }
.pform form { margin-top: 28px; padding: 28px; background: var(--mint-tint); max-width: 860px; }
@media (max-width: 520px) { .pform form { padding: 20px 16px; } }

/* contact on its own background (partners stays on paper) */
#contact { box-shadow: 0 0 0 100vmax var(--mint-tint); clip-path: inset(0 -100vmax); background: var(--mint-tint); }
