/* Che Regalo Fare. Mondo: incarto di pasticceria italiana. Carta a righe rosa e acqua, nastro rosso, vassoio dorato, mensola in marmo.
   Crema come fondo, inchiostro verde-nero per il testo, rosso nastro per le azioni. Le immagini (incarto, nastro, vassoio, pacchetti)
   sono tavole generate e stanno in /assets/img/incarto/: il codice disegna solo testo, controlli e struttura.
   Mobile first; punti di rottura in rem: 36 (telefono grande), 48 (tablet), 64 (tablet orizzontale), 70 (desktop). */

@font-face { font-family: "Newsreader"; src: url("/assets/fonts/newsreader.woff2") format("woff2"); font-weight: 450 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Catamaran"; src: url("/assets/fonts/catamaran.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
/* Ripiego con metriche vicine, per non far saltare il testo mentre arrivano i font. */
@font-face { font-family: "Serif Fallback"; src: local("Georgia"); size-adjust: 94%; ascent-override: 98%; descent-override: 26%; }
@font-face { font-family: "Sans Fallback"; src: local("Arial"); size-adjust: 92%; ascent-override: 105%; descent-override: 30%; }

:root {
  --paper: #f6e6d9;
  --paper-2: #f0dccc;
  --paper-3: #e7cdb9;
  --card: #fbf3ec;
  --rule: #dcc3b0;
  --ink: #13201c;
  --ink-2: #564c48;
  --ribbon: #a8393d;
  --ribbon-2: #8c2a2f;
  --on-ribbon: #fdf5ee;
  --rose: #b2445d;
  --blush: #f6d2d4;
  --blush-2: #f0bec4;
  --aqua: #83c7c3;
  --aqua-ink: #1d5c57;
  --gold: #c98d39;
  --gold-2: #9c6c26;
  --ok-bg: #d9eeea; --ok-ink: #1d5c57;
  --late-bg: #f6e0c8; --late-ink: #7a4312;
  --err-bg: #f7dcd9; --err-ink: #862b2b;
  --focus: #1d6b66;
  --on-ink: #f3e6da; --on-ink-2: #cdbdb1; --ink-rule: #34413c;
  --ink-3: #6b605a; --field-rule: #b8a89d;

  --f-display: "Newsreader", "Serif Fallback", Georgia, serif;
  --f-text: "Catamaran", "Sans Fallback", Arial, sans-serif;

  --s-3xs: .25rem; --s-2xs: .5rem; --s-xs: .75rem; --s-s: 1rem; --s-m: 1.5rem; --s-l: 2rem; --s-xl: 3rem; --s-2xl: 4rem; --s-3xl: 6rem;
  --r-card: 14px; --r-ctl: 12px; --r-pill: 999px;
  --shadow: 0 1px 2px rgb(74 40 24 / .08), 0 10px 26px -12px rgb(74 40 24 / .32);
  --shadow-lift: 0 2px 4px rgb(74 40 24 / .1), 0 18px 34px -14px rgb(74 40 24 / .4);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --t-fast: 120ms; --t-mid: 220ms; --t-slow: 480ms;
  --wrap: 76rem;
  --gutter: clamp(1rem, 4vw, 3rem);
  --band-h: clamp(4.25rem, 2.6rem + 5vw, 6.5rem);
  color-scheme: light;
}
.is-home { --band-h: clamp(5rem, 2.2rem + 11vw, 9.4rem); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; overflow-x: clip; scroll-padding-top: 1rem; }
body {
  margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink);
  font: 400 1.0625rem/1.55 var(--f-text); font-kerning: normal; text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); }
a:hover { text-decoration-thickness: 2px; text-decoration-color: currentColor; }
::selection { background: var(--blush-2); color: var(--ink); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 6px; }
input, button, textarea, select { font: inherit; color: inherit; }
input { caret-color: var(--ribbon); }
button { cursor: pointer; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: anywhere; min-width: 0; margin: 0; }
p { margin: 0 0 var(--s-s); text-wrap: pretty; }
[hidden] { display: none !important; }
html { scrollbar-color: var(--paper-3) var(--paper); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: var(--s-s); top: -3rem; z-index: 50; background: var(--ink); color: var(--paper); padding: var(--s-2xs) var(--s-s); border-radius: var(--r-ctl); }
.skip:focus { top: var(--s-s); }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }

/* Pulsanti e risposte pronte */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 2.875rem; padding: 0 1.3rem;
  border-radius: var(--r-ctl); border: 1px solid transparent; font-weight: 600; font-size: 1rem; line-height: 1; white-space: nowrap; text-decoration: none;
  transition: background-color var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out);
}
.btn:active { transform: translateY(1px); }
.btn--accent { background: var(--ribbon); color: var(--on-ribbon); box-shadow: 0 1px 0 rgb(255 255 255 / .18) inset, 0 6px 14px -8px rgb(140 42 47 / .7); }
.btn--accent:hover { background: var(--ribbon-2); }
.btn--line { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn--line:hover { background: var(--ink); color: var(--paper); }
.btn--ghost { border-color: var(--rule); background: var(--card); }
.btn--ghost:hover { border-color: var(--ink); }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.linklike { background: none; border: 0; padding: .25rem 0; color: var(--ink); text-decoration: underline; text-underline-offset: .2em; font-weight: 600; }
.linklike[data-show]:not([hidden]), .linklike[data-restart]:not([hidden]) { display: inline-flex; align-items: center; min-height: 2.75rem; }

.chips { display: flex; flex-wrap: wrap; gap: var(--s-2xs); }
.chip {
  display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0 1.1rem; border-radius: var(--r-pill);
  border: 0; background: var(--blush); color: var(--ink); font-family: var(--f-display); font-weight: 500; font-size: 1.08rem; line-height: 1.1;
  text-decoration: none; white-space: nowrap; transition: background-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
}
.chip:hover { background: var(--blush-2); }
.chip[aria-pressed="true"], .chip.is-on { background: var(--rose); color: var(--on-ribbon); }
.chip--sm { min-height: 2.5rem; font-size: 1rem; padding: 0 .9rem; }

/* Testata: una fascia di carta a righe, il cartellino del nome appeso in alto a sinistra */
.masthead {
  position: relative; height: calc(var(--band-h) + env(safe-area-inset-top));
  background: var(--aqua) image-set(url("/assets/img/incarto/stripe-paper.webp") type("image/webp"), url("/assets/img/incarto/stripe-paper.png") type("image/png")) repeat -4.2vw top / clamp(18rem, 58.9vw, 38rem) auto;
  box-shadow: 0 1px 0 rgb(74 40 24 / .12), 0 6px 14px -10px rgb(74 40 24 / .45);
}
.is-home .masthead { box-shadow: none; }
.masthead__row { position: relative; z-index: 4; height: 100%; display: flex; align-items: flex-start; justify-content: flex-end; gap: var(--s-s); padding-top: calc(env(safe-area-inset-top) + var(--band-h) * .2 - 4px); }
.masthead__tail { position: absolute; left: 0; top: 0; width: clamp(1.75rem, 6.84vw, 4.4rem); height: auto; pointer-events: none; }
body:not(.is-home) .masthead__tail { height: calc(var(--band-h) + .75rem); object-fit: cover; object-position: top; }
.brandtag { position: absolute; left: clamp(2.2rem, 8.8vw, 7.5rem); top: 0; display: block; width: calc(var(--band-h) * 1.66); transform-origin: 10% 0; transition: transform var(--t-slow) var(--ease-out); z-index: 3; }
.brandtag img { width: 100%; height: auto; filter: drop-shadow(0 6px 8px rgb(74 40 24 / .28)); }
@media (hover: hover) and (pointer: fine) { .brandtag:hover { transform: rotate(-3deg); } }
.nav { display: none; gap: .25rem; align-items: center; background: rgb(251 243 236 / .94); border-radius: var(--r-pill); padding: .3rem; box-shadow: var(--shadow); }
.nav a { text-decoration: none; font-weight: 600; font-size: .98rem; padding: .55rem 1rem; border-radius: var(--r-pill); }
.nav a:hover { background: var(--paper-2); }
.nav a[aria-current="page"] { background: var(--blush); }
.masthead__cta { display: none; }
.menu { position: relative; z-index: 4; margin-right: -.6rem; }
.menu summary { list-style: none; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; cursor: pointer; color: var(--ink); transition: background-color var(--t-fast) var(--ease-out); }
.menu summary:hover { background: rgb(251 243 236 / .55); }
.menu summary svg { width: 2.4rem; height: 2.4rem; }
.menu summary::-webkit-details-marker { display: none; }
.menu[open] summary { background: var(--card); }
.menu__sheet { position: absolute; right: 0; top: calc(100% + .5rem); width: min(82vw, 18rem); background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-lift); padding: var(--s-2xs); display: grid; }
.menu__sheet a { padding: .8rem 1rem; text-decoration: none; border-radius: 10px; font-weight: 600; }
.menu__sheet a:hover { background: var(--paper-2); }
.menu__sheet a:first-child { background: var(--ribbon); color: var(--on-ribbon); }
@media (min-width: 70rem) {
  .nav { display: flex; }
  .masthead__cta { display: inline-flex; }
  .menu { display: none; }
}

/* Home: nastro, vassoio con la chat, dolci e fiori ai lati */
.hero { position: relative; padding: clamp(1.25rem, .5rem + 2.6vw, 2rem) 0 clamp(1rem, .5rem + 1vw, 1.25rem); text-align: center; }
.hero__ribbon { position: absolute; right: 0; top: calc(-1 * var(--band-h)); width: min(54.1vw, 42rem); height: auto; pointer-events: none; z-index: 2; }
.hero__copy { position: relative; z-index: 3; padding-inline: var(--gutter); }
.hero__title { font-family: var(--f-display); font-weight: 600; font-size: clamp(2.15rem, 1rem + 4.4vw, 4.1rem); line-height: 1.02; letter-spacing: -.022em; margin-inline: auto; }
.hero__title span { display: block; }
.hero__lead { font-size: clamp(1.0625rem, .6rem + 1.6vw, 1.625rem); line-height: 1.3; font-weight: 500; color: var(--ink-2); max-width: 25em; margin: .6rem auto 0; }
.hero__stage { position: relative; margin-top: clamp(.75rem, .5rem + .3vw, .8rem); }
.hero__side { position: absolute; pointer-events: none; z-index: 1; display: none; }
.hero__side--left { left: calc(-1 * min(29vw, 22rem)); top: -16rem; width: min(50vw, 38rem); transform: scaleX(-1); }
.hero__side--right { right: 0; top: 3.75rem; width: min(12.6vw, 10rem); height: auto; aspect-ratio: 129 / 510; object-fit: cover; object-position: left center; }
@media (min-width: 64rem) { .hero__side { display: block; } }
.tray {
  position: relative; z-index: 2; width: min(100% - 2 * var(--s-xs), 44rem); margin-inline: auto; text-align: left;
  border: clamp(1.4rem, .5rem + 3.4vw, 2.75rem) solid transparent;
  border-image: image-set(url("/assets/img/incarto/gold-tray-frame.webp") type("image/webp"), url("/assets/img/incarto/gold-tray-frame.png") type("image/png")) 92 fill / clamp(1.4rem, .5rem + 3.4vw, 2.75rem) round;
  filter: drop-shadow(0 14px 18px rgb(74 40 24 / .22));
}
.tray > .finder { margin: -.2rem; }

/* Mensola delle ricorrenze */
.shelf { position: relative; padding: .25rem 0 0; }
.shelf::after { content: ""; display: block; height: clamp(2.2rem, 1rem + 3.6vw, 3.3rem); margin-top: -2.05rem; background: var(--paper-3) image-set(url("/assets/img/incarto/marble-shelf.webp") type("image/webp"), url("/assets/img/incarto/marble-shelf.png") type("image/png")) repeat-x left top / auto 100%; box-shadow: 0 12px 16px -12px rgb(74 40 24 / .5); }
.shelf__row { position: relative; z-index: 1; list-style: none; margin: 0 auto; padding: 0 var(--gutter); display: flex; gap: clamp(.75rem, 2.4vw, 1.8rem); justify-content: center; max-width: 62rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.shelf__row::-webkit-scrollbar { display: none; }
.shelf__row li { flex: 1 1 0; min-width: 8.5rem; max-width: 10.2rem; scroll-snap-align: center; display: grid; justify-items: center; padding-bottom: clamp(2rem, 1.3rem + 1.9vw, 2.6rem); background: image-set(url("/assets/img/incarto/occasion-stand.webp") type("image/webp"), url("/assets/img/incarto/occasion-stand.png") type("image/png")) no-repeat center bottom / auto clamp(2.4rem, 1.6rem + 2.6vw, 3.3rem); }
.shelf__tag {
  display: grid; place-content: center; width: 100%; min-height: clamp(3.4rem, 2.4rem + 3.3vw, 4.6rem); padding: .15rem .2rem; text-align: center;
  color: var(--ink); text-decoration: none;
  border: 11px solid transparent; border-image: image-set(url("/assets/img/incarto/label-card.webp") type("image/webp"), url("/assets/img/incarto/label-card.png") type("image/png")) 44 fill / 11px stretch;
  font-family: var(--f-display); font-weight: 700; font-size: clamp(1rem, .75rem + .95vw, 1.4rem); line-height: 1.1; letter-spacing: -.01em;
  filter: drop-shadow(0 6px 6px rgb(74 40 24 / .25)); transition: transform var(--t-mid) var(--ease-out);
}
.shelf__tag:has(small) { font-size: clamp(.92rem, .7rem + .8vw, 1.2rem); line-height: 1.05; }
.shelf__tag small { display: block; white-space: nowrap; font-size: max(.72em, .8rem); font-weight: 500; color: var(--ink-2); margin-top: .15rem; }
.shelf__tag:hover { transform: translateY(-3px); }
@media (max-width: 47.99rem) { .shelf__row { justify-content: flex-start; } }

/* Raccolte come pacchetti */
.parcels { list-style: none; margin: 0 auto; padding: clamp(.75rem, .4rem + 1vw, 1rem) var(--gutter) var(--s-2xl); max-width: calc(59rem + 2 * var(--gutter)); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-s) clamp(1rem, 1.5vw, 1rem); }
@media (min-width: 36rem) { .parcels { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.parcel { position: relative; display: block; text-decoration: none; color: var(--ink); transition: transform var(--t-mid) var(--ease-out); }
.parcel img { width: 100%; height: auto; filter: drop-shadow(0 10px 12px rgb(74 40 24 / .22)); }
.parcel__label {
  position: absolute; left: 43%; top: 18%; width: 44%; height: 64%; display: grid; place-content: center; text-align: center; transform: rotate(7deg); text-wrap: balance;
  font-family: var(--f-display); font-weight: 600; font-size: clamp(1.05rem, .5rem + 2vw, 2rem); line-height: 1.02; letter-spacing: -.015em;
}
@media (hover: hover) and (pointer: fine) { .parcel:hover { transform: translateY(-4px) rotate(-.6deg); } .parcel:hover .parcel__label { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; } }

/* Telefono: il nastro resta nella fascia, i pacchetti scorrono di lato come la mensola */
@media (max-width: 47.99rem) {
  .hero__ribbon { width: 31vw; }
  .hero__copy { padding-inline: max(var(--gutter), 1.75rem); }
  .parcels { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: min(78vw, 22rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: var(--s-l); }
  .parcels::-webkit-scrollbar { display: none; }
  .parcels li { scroll-snap-align: center; }
}
@media (min-width: 70rem) {
  .masthead__row { justify-content: flex-start; padding-left: calc(clamp(2.2rem, 8.8vw, 7.5rem) + var(--band-h) * 1.66 + 1.5rem); }
  .masthead__cta { margin-left: .5rem; margin-top: calc((51.5px - 46px) / 2); }
  .shelf__row li { max-width: 11.5rem; }
}

/* Assistente */
.finder { background: var(--card); border-radius: var(--r-card); box-shadow: 0 1px 0 rgb(255 255 255 / .8) inset, var(--shadow); padding: clamp(.9rem, .6rem + .6vw, 1rem) clamp(1rem, .2rem + 3.6vw, 2.6rem) clamp(1rem, .6rem + 1.4vw, 1.5rem); display: grid; gap: var(--s-s); min-width: 0; }
.finder--hero { gap: clamp(1rem, .6rem + 1vw, 1.3rem); }
.finder--inline { box-shadow: none; border: 1px solid var(--rule); }
.finder__profile { list-style: none; margin: 0; padding: 0 0 var(--s-xs); border-bottom: 1px dashed var(--rule); display: flex; flex-wrap: wrap; gap: .4rem; }
.finder__profile li { font-size: .85rem; font-weight: 600; background: var(--paper-2); border-radius: var(--r-pill); padding: .3rem .75rem; }
.finder__log { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-xs); max-height: min(52vh, 30rem); overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; }
.finder__log:empty { display: none; }
.msg { max-width: 88%; padding: .7rem 1rem; border-radius: 16px; font-size: 1.02rem; line-height: 1.5; animation: rise var(--t-mid) var(--ease-out) both; }
.msg--ai { background: var(--paper-2); border-top-left-radius: 4px; }
.msg--me { background: var(--ribbon); color: var(--on-ribbon); justify-self: end; border-top-right-radius: 4px; }
.msg--wait { color: var(--ink-2); display: inline-flex; gap: .5rem; align-items: center; }
.msg--wait i { width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; opacity: .35; animation: blink 1s infinite; }
.msg--wait i:nth-child(2) { animation-delay: .15s; } .msg--wait i:nth-child(3) { animation-delay: .3s; }
.msg--err { background: var(--err-bg); color: var(--err-ink); }
.finder__ask { display: grid; gap: clamp(.75rem, .5rem + .5vw, .8rem); }
.finder__ask > .finder__free { margin-top: .35rem; }
.finder__q { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.5rem, .8rem + 3vw, 2.75rem); line-height: 1.08; letter-spacing: -.03em; margin: 0; }
.finder .chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.5rem, .2rem + 1.4vw, 1.2rem) clamp(.5rem, .3rem + .8vw, .8rem); }
.finder .chip { min-height: clamp(2.75rem, 2.2rem + 1.4vw, 3.15rem); font-size: clamp(1.1rem, .75rem + 1.4vw, 1.7rem); padding: 0 .8rem; }
/* Risposte brevi: 2 colonne su telefono, 3 da 36rem; l'ultima riga non resta mai con una cella vuota (la scheda dispari occupa la riga, due avanzate si dividono la riga). */
@media (max-width: 35.999rem) { .finder .chips:not(.chips--long) .chip:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 36rem) {
  .finder .chips:not(.chips--long) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .finder .chips:not(.chips--long) .chip { grid-column: span 2; }
  .finder .chips:not(.chips--long) .chip:last-child:nth-child(3n+1) { grid-column: span 6; }
  .finder .chips:not(.chips--long) .chip:nth-last-child(2):nth-child(3n+1), .finder .chips:not(.chips--long) .chip:last-child:nth-child(3n+2) { grid-column: span 3; }
}
.finder .chip { min-width: 0; white-space: normal; text-align: center; line-height: 1.15; padding-block: .45rem; overflow-wrap: anywhere; text-wrap: balance; }
.finder .chips--long { grid-template-columns: minmax(0, 1fr); }
.finder .chips--long .chip { justify-content: flex-start; text-align: left; border-radius: 16px; padding-inline: 1.1rem; font-size: clamp(1.05rem, .95rem + .4vw, 1.25rem); }
@media (min-width: 36rem) { .finder .chips--long { grid-template-columns: repeat(2, minmax(0, 1fr)); } .finder .chips--long .chip:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.finder__free { display: grid; gap: clamp(.6rem, .4rem + .6vw, .9rem); }
.finder__free input { width: 100%; text-overflow: ellipsis; min-height: clamp(2.9rem, 2.3rem + 1.8vw, 3.45rem); padding: 0 1rem; border: 2px solid var(--field-rule); border-radius: 14px; background: #f6ede5; font-size: clamp(1rem, .9rem + .3vw, 1.15rem); }
.finder__free input:focus-visible { outline-offset: 0; border-color: var(--focus); }
.finder__free input::placeholder { color: var(--ink-3); }
.finder__free .btn { min-height: clamp(3.1rem, 2.5rem + 2.4vw, 4.1rem); border-radius: 16px; font-family: var(--f-display); font-size: clamp(1.25rem, .9rem + 1.2vw, 1.8rem); font-weight: 600; }
.finder__confirm { justify-self: start; }
.finder__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2xs) var(--s-m); }
.finder--hero .finder__note { display: none; }
.finder--hero .finder__foot:not(:has(> button:not([hidden]))) { display: none; }
.tray-note { font-size: .88rem; color: var(--ink-2); margin: -2rem auto 0; text-align: center; padding-inline: var(--gutter); }
.finder__note { font-size: .85rem; color: var(--ink-2); margin: 0; flex-basis: 100%; }
.finder.is-busy .chips, .finder.is-busy .finder__free { opacity: .55; pointer-events: none; }
.finder__results { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-m); min-width: 0; }
.finder { grid-template-columns: minmax(0, 1fr); container-type: inline-size; }
/* Nella chat le schede seguono la larghezza del vassoio, non quella della finestra. */
.finder .finder__results .pgrid { grid-template-columns: minmax(0, 1fr); }
@container (min-width: 30rem) { .finder .finder__results .pgrid:where(:not(.pgrid--n3)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 36rem) { .finder .finder__results .pgrid--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (min-width: 50rem) { .finder .finder__results .pgrid--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (min-width: 56rem) { .finder .finder__results .pgrid--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.finder .results__refine .chip { min-height: 2.6rem; font-size: 1.05rem; padding: .35rem 1rem; }
.finder-page .tray:has(> .finder > [data-results]:not([hidden])) { width: min(100% - 2 * var(--s-xs), 68rem); }
.finder-page { padding-bottom: var(--s-2xl); }
.finder-page .tray { width: min(100% - 2 * var(--s-xs), 52rem); margin-inline: 0; }
[data-results-slot]:not(:empty) { padding-block: 0 var(--s-2xl); }

.results__intro { font-family: var(--f-display); font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); line-height: 1.15; font-weight: 600; margin: 0; max-width: 32ch; }
.results__tip { background: var(--paper-2); border-radius: var(--r-card); padding: var(--s-s) var(--s-m); margin: 0; }
.results__tip strong { font-weight: 700; }
.results__refine { display: flex; flex-wrap: wrap; gap: var(--s-2xs); align-items: center; }
.results__refine p { margin: 0 var(--s-2xs) 0 0; font-weight: 700; }
.results__ideas { font-size: .95rem; color: var(--ink-2); }
.results__ideas { margin: 0; line-height: 1.7; }
.results__ideas a { overflow-wrap: anywhere; }
.results__ideas a + a::before { content: "·"; display: inline-block; margin: 0 .55rem; color: var(--ink-2); text-decoration: none; }

/* Schede prodotto */
.pgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-l) var(--s-m); }
@media (min-width: 36rem) { .pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 60rem) { .pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 90rem) { .pgrid:not(.pgrid--2, .pgrid--n3, .pgrid--n6) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 60rem) and (max-width: 89.99rem) { .pgrid--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Colonne scelte sul numero di schede (grid_cols): mai una riga a metà. */
@media (min-width: 36rem) { .pgrid.pgrid--t1 { grid-template-columns: minmax(0, 1fr); } .pgrid.pgrid--t2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pgrid.pgrid--t3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 60rem) { .pgrid.pgrid--d2, .pgrid.pgrid--d4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pgrid.pgrid--d3, .pgrid.pgrid--d12 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Prima scheda visibile in evidenza: larga due colonne, foto accanto al testo. */
@media (min-width: 36rem) {
  .pgrid--lead > .pcard:not([hidden]):not(.pcard:not([hidden]) ~ .pcard) { grid-column: span 2; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; column-gap: var(--s-m); align-items: start; }
  .pgrid--lead > .pcard:not([hidden]):not(.pcard:not([hidden]) ~ .pcard) .pcard__body { padding-top: 0; }
}
@media (min-width: 90rem) { .pgrid:is(.pgrid--d4, .pgrid--d12):not(.pgrid--2) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pcard { display: grid; grid-template-rows: auto 1fr; min-width: 0; }
.pcard[hidden] { display: none; }
.pcard__media { display: block; aspect-ratio: 1; overflow: hidden; border-radius: var(--r-card); background: var(--paper-3); box-shadow: var(--shadow); }
.pcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .pcard:hover .pcard__media img { transform: scale(1.03); } }
.pcard__body { display: flex; flex-direction: column; gap: .45rem; padding-top: var(--s-xs); min-width: 0; }
.pcard__angle { font-size: .82rem; font-weight: 700; color: var(--ribbon-2); margin: 0; }
.pcard__title { font-family: var(--f-display); font-weight: 600; font-size: 1.2rem; line-height: 1.2; }
.pcard__title a { text-decoration: none; }
.pcard__title a:hover { text-decoration: underline; }
.pcard__meta { display: flex; flex-wrap: wrap; gap: .2rem .8rem; align-items: baseline; font-size: .92rem; color: var(--ink-2); margin: 0; }
.pcard__price { font-weight: 700; color: var(--ink); font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.pcard__rating { display: inline-flex; gap: .25rem; align-items: center; flex-basis: 100%; }
.pcard__rating svg { color: var(--gold); }
.pcard__why { font-size: .98rem; line-height: 1.5; }
.pcard__why p { margin: 0; }
.pcard__facts { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.pcard__facts li { font-size: .8rem; font-weight: 600; background: var(--paper-2); border-radius: 6px; padding: .2rem .5rem; }
.pcard__facts .is-ok { background: var(--ok-bg); color: var(--ok-ink); }
.pcard__facts .is-late { background: var(--late-bg); color: var(--late-ink); }
.pcard__go { margin: auto 0 0; padding-top: .35rem; display: flex; align-items: center; gap: var(--s-xs); flex-wrap: wrap; }
.pcard__vote { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.pcard__vote button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; white-space: nowrap; padding: 0 .7rem; border-radius: var(--r-ctl); border: 1px solid var(--rule); background: transparent; font-size: .88rem; font-weight: 600; }
.pcard__vote button[aria-pressed="true"] { background: var(--blush); border-color: var(--rose); }
.adv { font-size: .78rem; color: var(--ink-2); }
/* Negozio di provenienza: etichetta sull'angolo della foto; le foto di Amazon stanno intere su fondo bianco. */
.pcard__media { position: relative; }
.pcard__store { position: absolute; top: .6rem; left: .6rem; font-size: .8rem; font-weight: 700; letter-spacing: .02em; line-height: 1.2; padding: .22rem .6rem; border-radius: var(--r-pill); box-shadow: 0 1px 2px rgb(74 40 24 / .2); }
.pcard__store--etsy { background: var(--blush); color: var(--ribbon-2); }
.pcard__store--amazon { background: var(--ok-bg); color: var(--ok-ink); }
.pcard--amazon .pcard__media { background: #fff; }
.pcard--amazon .pcard__media img { object-fit: contain; padding: 5%; }
.pcard__was { font-size: .85rem; }
.pcard__price--ask { font-size: .95rem; font-weight: 600; color: var(--ink-2); }
.pcard__stamp { margin: 0; font-size: .78rem; line-height: 1.35; color: var(--ink-2); }
.results__notice { margin: 0; font-size: .82rem; line-height: 1.45; color: var(--ink-2); max-width: 62ch; }
.results__ideas .idea { display: inline-block; margin-right: 1.1rem; }
.results__ideas .idea__q { margin-right: .5rem; color: var(--ink); }
.icard { background: var(--card); border-radius: var(--r-card); padding: var(--s-m); display: flex; flex-direction: column; gap: var(--s-2xs); min-width: 0; box-shadow: var(--shadow); }
.icard__title { font-family: var(--f-display); font-weight: 600; font-size: 1.35rem; line-height: 1.15; }
.igrid { display: grid; gap: var(--s-s); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) { .igrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 70rem) { .igrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 70rem) { .post__picks .igrid:not(.igrid--n3) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 40rem) and (max-width: 47.99rem) { .igrid--n3 { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 48rem) { .igrid--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.icard .btn { max-width: 100%; white-space: normal; text-align: center; line-height: 1.2; padding-block: .6rem; }
.skeleton { border-radius: var(--r-card); background: linear-gradient(90deg, var(--paper-2), var(--paper-3), var(--paper-2)); background-size: 200% 100%; animation: shimmer 1.2s linear infinite; height: 11rem; }
@media (min-width: 36rem) { .skeleton { height: auto; aspect-ratio: .78; } }

/* Fasce */
.band { padding-block: var(--s-2xl); }
.band--paper { background: var(--paper-2); }
.h-section { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.75rem); line-height: 1.06; letter-spacing: -.018em; margin-bottom: var(--s-l); max-width: 24ch; }
.more { margin: var(--s-l) 0 0; font-weight: 700; }

.people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--rule); }
.people li { border-bottom: 1px solid var(--rule); }
.people a { display: flex; justify-content: space-between; align-items: center; gap: var(--s-s); padding: var(--s-s) 0; text-decoration: none; font-family: var(--f-display); font-weight: 500; font-size: clamp(1.3rem, 1.1rem + .9vw, 1.9rem); line-height: 1.15; }
.people a::after { content: ""; width: .6rem; height: .6rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); flex: none; transition: transform var(--t-fast) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .people a:hover::after { transform: translateX(4px) rotate(45deg); } .people a:hover { color: var(--ribbon-2); } }
@media (min-width: 40rem) { .people { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-xl); } }
.people--small a { font-size: 1.15rem; padding: var(--s-xs) 0; }
@media (min-width: 40rem) { .more-grid .people--small { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-l); } }
.more-grid { display: grid; gap: var(--s-l) var(--s-xl); }
.more-grid .h-section { margin-bottom: 0; }
.more-t { font-family: var(--f-text); font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); margin: 0 0 var(--s-2xs); }
@media (min-width: 60rem) { .more-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); } .more-grid .h-section { grid-column: 1 / -1; } }
@media (min-width: 60rem) { .people--small { grid-template-columns: repeat(3, minmax(0, 1fr)); } .more-grid .people--small { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Liste di link a colonne: l'ultima voce dispari occupa la riga intera, niente buchi. */
@media (min-width: 40rem) and (max-width: 59.99rem) { .people > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 60rem) {
  .people:not(.people--small) > li:last-child:nth-child(odd), .more-grid .people--small > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .people--small:has(> li:nth-child(4n):last-child):not(.more-grid .people--small) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.section-body td:first-child, .post__body td:first-child { white-space: nowrap; }
.budgets { display: flex; flex-wrap: wrap; gap: var(--s-2xs); margin-top: var(--s-l); }
.budget { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1.1rem; border-radius: var(--r-pill); background: var(--blush); color: var(--ink); font-family: var(--f-display); font-weight: 600; font-size: 1.08rem; text-decoration: none; white-space: nowrap; }
.budget:hover { background: var(--blush-2); }
.occasions { margin-top: var(--s-l); max-width: 70ch; color: var(--ink-2); }

.guides { display: grid; gap: var(--s-l); }
.guides:has(> :only-child) { max-width: 44rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 60rem) { .guides { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--s-2xl); } }
.guide-lead { display: grid; gap: var(--s-xs); text-decoration: none; }
.guide-lead img { border-radius: var(--r-card); aspect-ratio: 16 / 9; object-fit: cover; width: 100%; box-shadow: var(--shadow); }
.guide-lead__title { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); line-height: 1.1; }
.guide-lead:hover .guide-lead__title { text-decoration: underline; text-decoration-thickness: 2px; }
.guide-lead__ex { color: var(--ink-2); }
.guide-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.guide-list li { border-bottom: 1px solid var(--rule); }
.guide-list a { display: grid; gap: .2rem; padding: var(--s-s) 0; text-decoration: none; }
.guide-list a span { font-family: var(--f-display); font-weight: 600; font-size: 1.2rem; line-height: 1.2; }
.guide-list a:hover span { text-decoration: underline; }
.guide-list time, .guide-list small { color: var(--ink-2); font-size: .9rem; }
@media (min-width: 60rem) { .guide-list--row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--s-l); border-top: 0; } .guide-list--row li { border-top: 1px solid var(--rule); } }
@media (min-width: 60rem) { .guide-list--row:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } .guide-list--row:has(> li:only-child) { grid-template-columns: minmax(0, 1fr); } }

.how { display: grid; gap: var(--s-m); }
.how__steps { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--s-m); }
.how__steps li { max-width: 60ch; padding-left: var(--s-m); border-left: 2px solid var(--ribbon); }
.how__steps p { margin: 0; }
.how__steps strong { font-family: var(--f-display); font-weight: 600; font-size: 1.25rem; display: block; margin-bottom: .15rem; }
.how__more { font-weight: 700; margin: 0; }
@media (min-width: 60rem) { .how { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); column-gap: var(--s-2xl); } .how .h-section { grid-row: span 2; } }

.faq__list { border-top: 1px solid var(--rule); max-width: 52rem; }
.faq__item { border-bottom: 1px solid var(--rule); }
.faq__item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: var(--s-s); padding: var(--s-s) 0; font-family: var(--f-display); font-weight: 600; font-size: 1.2rem; line-height: 1.25; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; font-size: 1.6rem; line-height: .8; flex: none; color: var(--ribbon); }
.faq__item[open] summary::after { content: "\2212"; }
.faq__a { padding-bottom: var(--s-s); max-width: 65ch; color: var(--ink-2); }

/* Intestazioni di pagina */
.page-head { padding-block: var(--s-l) var(--s-xl); }
.page-head--tight { padding-bottom: var(--s-l); }
.page-head__grid { display: grid; gap: var(--s-l); align-items: center; }
@media (min-width: 60rem) { .page-head__grid:not(.page-head__grid--solo) { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: var(--s-2xl); } }
.page-head__art { margin: 0; }
.page-head__art img { border-radius: var(--r-card); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; box-shadow: var(--shadow); }
.page-head__art figcaption, .post__cover figcaption { font-size: .8rem; color: var(--ink-2); margin-top: .4rem; }
.crumbs { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .9rem; color: var(--ink-2); margin-bottom: var(--s-s); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.page-title { font-family: var(--f-display); font-weight: 600; font-size: clamp(2.2rem, 1.4rem + 3.2vw, 3.8rem); line-height: 1.03; letter-spacing: -.02em; max-width: 20ch; }
.page-lead { font-size: clamp(1.08rem, 1rem + .35vw, 1.28rem); color: var(--ink-2); max-width: 60ch; margin-top: var(--s-s); }
.page-lead p { margin-bottom: var(--s-xs); }
.updated { font-size: .88rem; color: var(--ink-2); margin-top: var(--s-s); }
.ask-strip { display: grid; gap: var(--s-xs); padding-bottom: var(--s-xl); }
.ask-strip__t { font-family: var(--f-display); font-weight: 600; font-size: 1.6rem; }
.ask-strip > p { color: var(--ink-2); margin: 0 0 var(--s-2xs); }
@media (min-width: 60rem) { .ask-strip .finder { max-width: 48rem; } }
.picks { padding-bottom: var(--s-2xl); }
.picks__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--s-s); margin-bottom: var(--s-l); }
.picks__head .h-section { margin: 0; }
.filters { display: flex; flex-wrap: wrap; gap: var(--s-2xs); }
.empty { padding: var(--s-l) 0; }
.ideas { padding-bottom: var(--s-2xl); }
.section-body { padding-bottom: var(--s-2xl); }
.index-groups { display: grid; gap: var(--s-2xl); padding-bottom: var(--s-3xl); }
.index-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--s-xl); }
@media (min-width: 60rem) { .index-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .index-list > li:last-child:nth-child(odd) { grid-column: 1 / -1; } .index-list > li:last-child:nth-child(odd) a { max-width: calc(50% - var(--s-xl) / 2); } }
.index-list li { border-bottom: 1px solid var(--rule); }
.index-list a { display: grid; gap: .25rem; padding: var(--s-s) 0; text-decoration: none; }
.index-list__t { font-family: var(--f-display); font-weight: 600; font-size: 1.4rem; line-height: 1.12; }
.index-list__d { color: var(--ink-2); font-size: .98rem; }
.index-list a:hover .index-list__t { text-decoration: underline; }

/* Articolo */
.post__head { padding-top: var(--s-l); }
.post__title { font-family: var(--f-display); font-weight: 600; font-size: clamp(2.2rem, 1.4rem + 3.2vw, 3.7rem); line-height: 1.04; letter-spacing: -.02em; max-width: 22ch; }
.post__byline { color: var(--ink-2); font-size: .98rem; margin-top: var(--s-s); max-width: 60ch; }
.post__cover { margin-block: var(--s-l); }
.post__cover img { border-radius: var(--r-card); width: 100%; aspect-ratio: 16 / 9; object-fit: cover; box-shadow: var(--shadow); }
.post__grid { display: grid; gap: var(--s-xl); padding-block: var(--s-l) var(--s-2xl); }
@media (min-width: 64rem) { .post__grid { grid-template-columns: minmax(0, 1fr) 17rem; gap: var(--s-2xl); } }
.post__main { min-width: 0; max-width: 46rem; }
.post__side { min-width: 0; }
.side-ask { position: sticky; top: var(--s-m); background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow); padding: var(--s-m); display: grid; gap: var(--s-2xs); }
.side-ask__t { font-family: var(--f-display); font-weight: 600; font-size: 1.45rem; line-height: 1.1; margin: 0; }
.side-ask p { margin: 0; color: var(--ink-2); font-size: .98rem; }
.side-ask .btn { margin-top: var(--s-2xs); }
.answer { background: var(--card); border-radius: var(--r-card); padding: var(--s-m); margin-bottom: var(--s-l); box-shadow: var(--shadow); }
.answer__t { font-weight: 700; font-size: .92rem; margin-bottom: var(--s-2xs); color: var(--ribbon-2); }
.toc { margin-bottom: var(--s-l); padding-left: var(--s-s); border-left: 1px solid var(--rule); }
.toc__t { font-weight: 700; margin-bottom: var(--s-2xs); }
.toc ol { margin: 0; padding-left: 1.2rem; display: grid; gap: .3rem; }
.post__picks, .post__faq { margin-top: var(--s-2xl); }
.post__picks h2, .post__faq h2 { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.6rem, 1.3rem + .9vw, 2.1rem); margin-bottom: var(--s-m); }
.pick-inline { margin-block: var(--s-l); padding: var(--s-m); background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow); }
.pick-inline .pcard { grid-template-rows: none; grid-template-columns: minmax(0, 1fr); gap: var(--s-s); }
@media (min-width: 36rem) { .pick-inline .pcard { grid-template-columns: 11rem minmax(0, 1fr); } .pick-inline .pcard__body { padding-top: 0; } }
.author { margin-top: var(--s-2xl); padding-top: var(--s-m); border-top: 1px solid var(--rule); color: var(--ink-2); font-size: .98rem; }
.author__name { font-weight: 700; color: var(--ink); margin-bottom: var(--s-3xs); }

.prose { max-width: 68ch; }
.prose--wide { max-width: 72ch; }
/* Il testo lungo parte allineato al titolo della pagina (come nelle guide), non centrato in una colonna a parte. */
.wrap.prose { max-width: var(--wrap); }
.wrap.prose > * { max-width: 68ch; }
.wrap.prose--wide > * { max-width: 72ch; }
.author-bio { padding-bottom: var(--s-2xl); }
.prose h2 { font-family: var(--f-display); font-weight: 600; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem); line-height: 1.12; letter-spacing: -.012em; margin: var(--s-xl) 0 var(--s-s); }
.prose h3 { font-family: var(--f-display); font-weight: 600; font-size: 1.35rem; line-height: 1.25; margin: var(--s-l) 0 var(--s-2xs); }
.prose ul, .prose ol { padding-left: 1.3rem; margin: 0 0 var(--s-s); }
.prose li { margin-bottom: .35rem; }
.prose li::marker { color: var(--ribbon); }
.prose blockquote { margin: var(--s-l) 0; padding-left: var(--s-m); border-left: 2px solid var(--ribbon); font-family: var(--f-display); font-size: 1.35rem; line-height: 1.35; }
.prose table { width: 100%; border-collapse: collapse; margin: var(--s-m) 0; font-size: .96rem; display: block; overflow-x: auto; font-variant-numeric: tabular-nums; }
.prose .table-wrap { overflow-x: auto; margin: var(--s-m) 0; }
.prose .table-wrap table { display: table; margin: 0; min-width: 34rem; }
/* Tabelle dei documenti a schede: ogni riga diventa un blocco con l'etichetta accanto al valore. */
.table-wrap:has(.table--stack) { overflow: visible; }
.prose .table-wrap table.table--stack { display: block; min-width: 0; }
.table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.table--stack :is(tbody, tr, td) { display: block; }
.table--stack tr { border-top: 1px solid var(--rule); padding: var(--s-xs) 0; }
.table--stack tr:last-child { border-bottom: 1px solid var(--rule); }
.prose .table--stack td { position: relative; border: 0; padding: .3rem 0 .3rem 9rem; }
.table--stack td::before { content: attr(data-label); position: absolute; left: 0; top: .4rem; width: 8rem; font-weight: 700; font-size: .88rem; color: var(--ink-2); }
@media (max-width: 47.99rem) {
  .table-wrap:has(.table--stack-sm) { overflow: visible; }
  .prose .table-wrap table.table--stack-sm { display: block; min-width: 0; }
  .table--stack-sm thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .table--stack-sm :is(tbody, tr, td) { display: block; }
  .table--stack-sm tr { border-top: 1px solid var(--rule); padding: var(--s-xs) 0; }
  .table--stack-sm tr:last-child { border-bottom: 1px solid var(--rule); }
  .prose .table--stack-sm td { position: relative; border: 0; padding: .3rem 0 .3rem 7.5rem; }
  .table--stack-sm td::before { content: attr(data-label); position: absolute; left: 0; top: .4rem; width: 6.5rem; font-weight: 700; font-size: .88rem; color: var(--ink-2); }
}
.prose th, .prose td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
.prose th { font-weight: 700; background: var(--paper-2); }
.prose code { font-size: .9em; background: var(--paper-2); padding: .1em .3em; border-radius: 4px; }
/* Le schede prodotto dentro il testo restano schede: niente margini e rientri del testo lungo. */
.prose .pcard :is(h2, h3, p, ul, li) { margin: 0; }
.prose .pcard ul { padding: 0; }
.prose .pcard li::marker { content: none; }
.prose .pcard__title { font-size: 1.2rem; line-height: 1.2; }
.lead-p { font-size: 1.22rem; color: var(--ink); }
.static-page { padding-bottom: var(--s-3xl); }

.post-list { list-style: none; margin: 0; padding: 0 0 var(--s-2xl); display: grid; gap: var(--s-xl) var(--s-l); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) { .post-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 40rem) and (max-width: 69.99rem) { .post-list:has(> li:last-child:nth-child(odd)) > li:first-child { grid-column: 1 / -1; } }
/* Da 70rem: griglia a 6 per tenere piene le righe con 4, 5, 7… guide. */
@media (min-width: 70rem) {
  .post-list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .post-list > li { grid-column: span 2; }
  .post-list:has(> li:last-child:nth-child(3n+1)) > li:first-child { grid-column: 1 / -1; }
  .post-list:has(> li:last-child:nth-child(3n+2)) > li:nth-child(-n+2) { grid-column: span 3; }
}
.post-item a { display: grid; gap: var(--s-2xs); text-decoration: none; }
.post-item img { border-radius: var(--r-card); aspect-ratio: 16 / 9; object-fit: cover; width: 100%; box-shadow: var(--shadow); }
.post-item__t { font-family: var(--f-display); font-weight: 600; font-size: 1.45rem; line-height: 1.12; }
.post-item a:hover .post-item__t { text-decoration: underline; }
.post-item__ex { color: var(--ink-2); font-size: 1rem; }
.post-item time { font-size: .88rem; color: var(--ink-2); }
.pager { display: flex; justify-content: space-between; align-items: center; gap: var(--s-s); padding-bottom: var(--s-2xl); font-weight: 700; }

/* Piede: un giro di carta a righe sopra, poi inchiostro */
.colophon { background: var(--ink); color: var(--on-ink); padding-block: 0 calc(var(--s-xl) + env(safe-area-inset-bottom)); }
.colophon::before { content: ""; display: block; height: 14px; margin-bottom: var(--s-2xl); background: image-set(url("/assets/img/incarto/stripe-paper.webp") type("image/webp"), url("/assets/img/incarto/stripe-paper.png") type("image/png")) repeat-x left center / auto 180px; }
.colophon a { color: var(--on-ink); }
.colophon__grid { display: grid; gap: var(--s-l); }
.colophon__sign img { width: 9.5rem; height: auto; margin-bottom: var(--s-s); }
.colophon__sign p { max-width: 42ch; color: var(--on-ink-2); }
.colophon__links { display: flex; flex-wrap: wrap; gap: 0 var(--s-m); }
.colophon__links a, .colophon__links .linklike { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--on-ink); text-decoration: none; font-weight: 600; font-size: .98rem; }
.colophon__links a:hover { text-decoration: underline; }
.colophon__fine { font-size: .84rem; color: var(--on-ink-2); padding-right: max(0px, 100% - 90ch); margin: 0; border-top: 1px solid var(--ink-rule); padding-top: var(--s-m); }
.colophon :focus-visible { outline-color: var(--aqua); }
@media (min-width: 60rem) { .colophon__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); } .colophon__fine { grid-column: 1 / -1; } .colophon__links { justify-content: flex-end; align-content: start; } }

/* Consenso statistiche */
.consent { position: fixed; z-index: 40; left: var(--s-s); right: var(--s-s); bottom: calc(var(--s-s) + env(safe-area-inset-bottom)); max-width: 30rem; background: var(--card); border-radius: var(--r-card); box-shadow: var(--shadow-lift); padding: var(--s-m); font-size: .98rem; }
.consent__t { font-family: var(--f-display); font-weight: 600; font-size: 1.2rem; margin-bottom: var(--s-3xs); }
.consent__btns { display: flex; gap: var(--s-2xs); }
.consent__btns .btn { flex: 1 1 0; }

/* Un solo momento animato: il cartellino del nome si posa appeso, il vassoio arriva sotto. */
@media (prefers-reduced-motion: no-preference) {
  .brandtag { animation: hang 900ms var(--ease-out) both; }
  .is-home .tray { animation: settle 700ms 120ms var(--ease-out) both; }
}
@keyframes hang { from { transform: rotate(-7deg); } 55% { transform: rotate(2deg); } to { transform: none; } }
@keyframes settle { from { transform: translateY(14px); filter: drop-shadow(0 4px 6px rgb(74 40 24 / .1)); } to { transform: none; } }
@keyframes rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes blink { 50% { opacity: 1; } }
@keyframes shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
@media print { .masthead, .colophon, .finder, .side-ask, .consent, .hero__ribbon, .hero__side { display: none !important; } }
@media (min-width: 36rem) { .pgrid--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.notfound-list { margin-top: var(--s-l); }
