@charset "utf-8";
/* Winnita — recensione editoriale. Archetipo: rivista accademica monocroma.
   Serif Spectral, carta calda, accento corallo, angoli vivi, filetti 1px. */

/* ====================================================================
   RESET
   ==================================================================== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
ul[class], ol[class] { list-style: none; padding: 0; }
a { color: inherit; }
table { border-collapse: collapse; width: 100%; }

/* ====================================================================
   TOKEN — :root con tutte le variabili
   ==================================================================== */
:root {
  /* tono — carta calda monocroma */
  --fru-bg:        #f4f1e9;
  --fru-surface:   #faf7f0;
  --fru-surface-2: #ece5d6;
  --fru-ink:       #191712;
  --fru-ink-2:     #45413a;
  --fru-ink-3:     #5d584b;
  --fru-hairline:  color-mix(in srgb, var(--fru-ink) 16%, transparent);
  --fru-hairline-2:color-mix(in srgb, var(--fru-ink) 30%, transparent);

  /* accento corallo (dosato) */
  --fru-accent:     #c5411e;
  --fru-accent-2:   #e05a2b;
  --fru-accent-ink: #fbf6ee;
  --fru-accent-soft:color-mix(in srgb, var(--fru-accent) 12%, transparent);
  --fru-accent-glow:color-mix(in srgb, var(--fru-accent) 24%, transparent);

  /* tipografia */
  --fru-serif: "Spectral", Georgia, "Times New Roman", serif;
  --fru-mono:  "Spline Sans Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;

  /* scala tipografica — ratio 1.25 */
  --fru-step--1: 0.82rem;
  --fru-step-0:  1rem;
  --fru-step-1:  1.25rem;
  --fru-step-2:  1.5rem;
  --fru-step-3:  1.85rem;
  --fru-step-4:  2.3rem;
  --fru-step-5:  clamp(2.4rem, 1.7rem + 3.1vw, 3.4rem);

  /* spaziatura compatta */
  --fru-s1: 6px;
  --fru-s2: 10px;
  --fru-s3: 16px;
  --fru-s4: 22px;
  --fru-s5: 30px;
  --fru-s6: 44px;

  --fru-wrap: 1206px;
  --fru-pad:  clamp(16px, 4vw, 28px);
  --fru-r: 0;                 /* angoli vivi */
  --fru-head-h: 64px;

  accent-color: var(--fru-accent);
}

/* ====================================================================
   BASE
   ==================================================================== */
body {
  min-height: 100vh;
  background: var(--fru-bg);
  color: var(--fru-ink);
  font-family: var(--fru-serif);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--fru-serif);
  font-weight: 600;
  line-height: 1.12;
  text-wrap: balance;
  color: var(--fru-ink);
}
h1 { font-weight: 800; letter-spacing: -0.015em; }
p { text-wrap: pretty; }

a { text-decoration: none; }

::selection { background: color-mix(in srgb, var(--fru-accent) 22%, transparent); color: var(--fru-ink); }

/* numeri tabellari ovunque */
table, .fru-fact__v, .fru-rating, .fru-stars, td, th, time { font-variant-numeric: tabular-nums lining-nums; }

.fru-kicker {
  display: block;
  font-family: var(--fru-mono);
  font-size: var(--fru-step--1);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--fru-accent);
  margin-bottom: var(--fru-s2);
}

/* ---- tabella nuda (anche senza classe) ---- */
table {
  font-size: var(--fru-step-0);
  margin: var(--fru-s4) 0;
  border-top: 2px solid var(--fru-ink);
  border-bottom: 2px solid var(--fru-ink);
}
caption { caption-side: top; text-align: left; font-style: italic; color: var(--fru-ink-2); padding-bottom: var(--fru-s2); }
th, td {
  text-align: left;
  padding: 10px 14px;
  border-bottom: 1px solid var(--fru-hairline);
  vertical-align: top;
}
thead th { font-weight: 600; background: var(--fru-surface-2); border-bottom: 1px solid var(--fru-hairline-2); }
tbody tr:hover { background: color-mix(in srgb, var(--fru-accent) 5%, transparent); }
tbody td:first-child, tbody th:first-child { font-weight: 600; }

/* ---- details/FAQ nudo ---- */
details {
  border-bottom: 1px solid var(--fru-hairline);
  padding: var(--fru-s3) 0;
}
details > summary {
  list-style: none;
  cursor: pointer;
  font-family: var(--fru-serif);
  font-weight: 600;
  font-size: var(--fru-step-1);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--fru-s3);
  color: var(--fru-ink);
}
details > summary::-webkit-details-marker { display: none; }
details > summary::after {
  content: "›";
  font-family: var(--fru-mono);
  color: var(--fru-accent);
  font-size: 1.4em;
  line-height: 1;
  transform: rotate(90deg);
  transition: transform .18s ease;
}
details[open] > summary::after { transform: rotate(-90deg); }
details > summary + * { margin-top: var(--fru-s3); }
details p { color: var(--fru-ink-2); }

/* ====================================================================
   LAYOUT
   ==================================================================== */
.fru-wrap {
  width: 100%;
  max-width: var(--fru-wrap);
  margin-inline: auto;
  padding-inline: var(--fru-pad);
}

.fru-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--fru-ink); color: var(--fru-bg); padding: 10px 16px; z-index: 100;
}
.fru-skip:focus { left: 8px; top: 8px; }

/* ---- testata ---- */
.fru-head {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--fru-bg) 92%, transparent);
  backdrop-filter: saturate(1.1);
  border-bottom: 1px solid var(--fru-hairline-2);
}
.fru-head__bar {
  display: flex; align-items: center; gap: var(--fru-s4);
  min-height: var(--fru-head-h);
  flex-wrap: nowrap;
}
.fru-brand { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.fru-brand__logo{height:clamp(30px,4vw,42px);width:auto;display:block}
.fru-foot__logo{height:42px;width:auto;display:block}

.fru-nav { flex: 1 1 auto; min-width: 0; }
.fru-nav__list { display: flex; flex-wrap: nowrap; justify-content: flex-end; align-items: center; gap: clamp(8px, 1vw, 16px); }
.fru-nav__list a {
  white-space: nowrap;
  font-family: var(--fru-mono); font-size: 0.78rem; letter-spacing: 0.02em;
  text-transform: uppercase; color: var(--fru-ink-2);
  padding: 6px 2px; border-bottom: 2px solid transparent;
}
.fru-nav__list a[aria-current="page"] { color: var(--fru-ink); border-bottom-color: var(--fru-accent); }

.fru-head__cta { flex: 0 0 auto; }
.fru-head__cta .fru-cta { padding: 8px 16px; font-size: 0.82rem; white-space: nowrap; }

/* ---- burger (mobile) ---- */
.fru-burger { display: none; position: relative; flex: 0 0 auto; }
.fru-burger__btn {
  list-style: none; cursor: pointer; font-size: 1.6rem; line-height: 1;
  width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--fru-hairline-2); color: var(--fru-ink);
}
.fru-burger__btn::-webkit-details-marker { display: none; }
.fru-burger__list {
  display: block; list-style: none;
  position: absolute; right: 0; top: 100%; margin-top: 8px; z-index: 60;
  min-width: 220px; max-width: calc(100vw - 28px); background: var(--fru-surface);
  border: 1px solid var(--fru-hairline-2); border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.16);
  padding: var(--fru-s2);
}
.fru-burger:not([open]) .fru-burger__list { display: none; }
.fru-burger[open] .fru-burger__list { display: block; }
.fru-burger__list li { border-bottom: 1px solid var(--fru-hairline); }
.fru-burger__list li:last-child { border-bottom: 0; }
.fru-burger__list a {
  display: block; padding: 11px 10px; font-family: var(--fru-mono);
  font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--fru-ink-2);
}
.fru-burger__cta { padding-top: var(--fru-s2); }
.fru-burger__cta .fru-cta { display: block; text-align: center; }

@media (max-width: 1100px) {
  .fru-nav { display: none; }
  .fru-head__cta { display: none; }
  .fru-burger { display: inline-block; }
  .fru-brand { margin-right: auto; }   /* прижать бургер к правому краю, иначе панель right:0 уезжает влево за экран */
}

/* ---- breadcrumbs ---- */
.fru-crumbs { border-bottom: 1px solid var(--fru-hairline); }
.fru-crumbs__list { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 0; font-family: var(--fru-mono); font-size: 0.74rem; letter-spacing: 0.03em; text-transform: uppercase; color: var(--fru-ink-3); }
.fru-crumbs__item + .fru-crumbs__item::before { content: "/"; margin-right: 6px; color: var(--fru-hairline-2); }
.fru-crumbs__item a { color: var(--fru-ink-2); }
.fru-crumbs__item [aria-current] { color: var(--fru-accent); }

/* ---- byline ---- */
.fru-byline {
  display: flex; align-items: center; gap: var(--fru-s3); flex-wrap: wrap;
  padding-block: var(--fru-s3);
  border-bottom: 1px solid var(--fru-hairline);
}
.fru-byline__img { width: 48px; height: 48px; object-fit: cover; border: 1px solid var(--fru-hairline-2); flex: 0 0 auto; }
.fru-byline__meta { display: flex; flex-direction: column; min-width: 0; }
.fru-byline__name { font-weight: 600; font-size: var(--fru-step-0); }
.fru-byline__name a { border-bottom: 1px solid var(--fru-accent); }
.fru-byline__role { font-size: 0.88rem; color: var(--fru-ink-3); }
.fru-byline__date { margin-left: auto; font-family: var(--fru-mono); font-size: 0.76rem; color: var(--fru-ink-3); white-space: nowrap; }

/* ---- hero ---- */
.fru-hero { padding-block: clamp(18px, 3vw, 30px); overflow-x: clip; }
.fru-hero__wrap { display: flex; flex-direction: column; gap: var(--fru-s4); }
.fru-hero__grid { display: flex; flex-direction: column; gap: var(--fru-s3); }

.fru-hero__kicker { margin-bottom: 0; }
.fru-hero__h1 { font-size: var(--fru-step-5); }
.fru-hero-lead { font-size: var(--fru-step-1); color: var(--fru-ink-2); font-style: italic; max-width: 46ch; }
.fru-hero__cta { margin-block: var(--fru-s1); }

.fru-hero__media {
  position: relative;
  align-self: center;
  width: 100%;
  max-width: 360px;
}
.fru-hero__media::before {
  content: ""; position: absolute; inset: -8% -6% -6% -6%; z-index: 0;
  background: radial-gradient(60% 60% at 60% 40%, var(--fru-accent-glow), transparent 70%);
  filter: blur(22px);
}
.fru-hero__img {
  position: relative; z-index: 1;
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
  border: 1px solid var(--fru-hairline-2);
  box-shadow: 0 18px 40px -22px rgba(22,16,10,.7);
}

/* fatti hero — carta-striscia */
.fru-hero__facts {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
  border: 1px solid var(--fru-hairline-2); background: var(--fru-surface);
  box-shadow: 0 8px 22px -18px rgba(22,16,10,.55);
}
.fru-fact { padding: 12px 16px; border-left: 1px solid var(--fru-hairline); min-width: 0; }
.fru-fact:first-child { border-left: 0; }
.fru-fact__k { display: block; font-family: var(--fru-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fru-ink-3); }
.fru-fact__v { display: block; font-weight: 600; font-size: var(--fru-step-0); margin-top: 3px; }

@media (max-width: 640px) {
  .fru-hero__grid { text-align: center; }                 /* заголовок/кикер по центру — в тон центрированным картинке и CTA (не лепить влево) */
  .fru-hero__media { max-width: none; margin-inline: auto; }
  .fru-hero__img { max-height: 38vh; width: auto; aspect-ratio: 1 / 1; object-fit: contain; margin-inline: auto; }
  .fru-hero__cta { text-align: center; }
  .fru-hero-lead { margin-inline: auto; }                  /* центрируем и сам блок лида (у него max-width:46ch) */
}

@media (min-width: 901px) {
  .fru-hero__wrap { gap: var(--fru-s5); }
  .fru-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    column-gap: clamp(24px, 4vw, 48px);
    align-items: center;
  }
  .fru-hero__kicker { grid-column: 1; grid-row: 1; align-self: end; }
  .fru-hero__h1     { grid-column: 1; grid-row: 2; }
  .fru-hero-lead    { grid-column: 1; grid-row: 3; }
  .fru-hero__cta    { grid-column: 1; grid-row: 4; text-align: left; align-self: start; }
  .fru-hero__media  { grid-column: 2; grid-row: 1 / 5; align-self: center; max-width: 420px; justify-self: end; }
  .fru-hero__facts  { order: -1; }
}

/* ---- footer ---- */
.fru-foot { margin-top: var(--fru-s6); border-top: 2px solid var(--fru-ink); background: var(--fru-surface); }
.fru-foot__grid {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 2fr);
  gap: var(--fru-s5); padding-block: var(--fru-s5);
}
.fru-foot__brand { min-width: 0; }
.fru-foot__note, .fru-foot__rg, .fru-foot__contact { font-size: 0.9rem; color: var(--fru-ink-2); margin-top: var(--fru-s2); }
.fru-foot__rg a, .fru-foot__contact a, .fru-foot__note a { border-bottom: 1px solid var(--fru-accent); }
.fru-foot__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fru-s4); min-width: 0; }
.fru-foot__h { font-family: var(--fru-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fru-ink-3); margin-bottom: var(--fru-s2); }
.fru-foot__nav ul li { padding: 4px 0; }
.fru-foot__nav a { font-size: 0.92rem; color: var(--fru-ink-2); }
.fru-foot__legal { border-top: 1px solid var(--fru-hairline); padding-block: var(--fru-s3); }
.fru-foot__legal p { font-size: 0.82rem; color: var(--fru-ink-3); }

@media (max-width: 760px) {
  .fru-foot__grid { grid-template-columns: minmax(0, 1fr); gap: var(--fru-s4); }
  .fru-foot__nav { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ====================================================================
   BLOCK
   ==================================================================== */
/* ---- contenitore prosa ---- */
.fru-prose { max-width: none; }
.fru-prose > * + * { margin-top: var(--fru-s3); }
.fru-prose p, .fru-prose li { font-size: 1.075rem; line-height: 1.68; color: var(--fru-ink); overflow-wrap: break-word; word-break: break-word; }
.fru-prose h2 { font-size: var(--fru-step-3); margin-top: var(--fru-s5); scroll-margin-top: calc(var(--fru-head-h) + 14px); }
.fru-prose h3 { font-size: var(--fru-step-2); margin-top: var(--fru-s4); }
.fru-prose h4 { font-size: var(--fru-step-1); margin-top: var(--fru-s4); }
.fru-prose a:not(.fru-cta):not(.fru-slotcard) { color: var(--fru-ink); border-bottom: 1px solid var(--fru-hairline-2); text-underline-offset: 2px; }
.fru-prose strong { font-weight: 600; }
.fru-prose .fru-lead { font-size: var(--fru-step-1); color: var(--fru-ink-2); font-style: italic; max-width: none; }

/* ---- sezione numerata 01/02 ---- */
.fru-section { padding-block: clamp(20px, 3vw, 32px); border-top: 1px solid var(--fru-hairline); scroll-margin-top: calc(var(--fru-head-h) + 14px); }
.fru-section__head { display: flex; align-items: baseline; gap: var(--fru-s3); margin-bottom: var(--fru-s3); }
.fru-section__num { font-family: var(--fru-mono); font-weight: 500; color: var(--fru-accent); font-size: var(--fru-step-0); letter-spacing: 0.02em; flex: 0 0 auto; }
.fru-section__titles { min-width: 0; }
.fru-section__dek { font-style: italic; color: var(--fru-ink-3); margin-top: var(--fru-s1); font-size: var(--fru-step-0); }

/* ---- TOC chips ---- */
.fru-toc { border: 1px solid var(--fru-hairline); padding: var(--fru-s3); margin-block: var(--fru-s4); background: var(--fru-surface); }
.fru-toc__h { font-family: var(--fru-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--fru-ink-3); margin-bottom: var(--fru-s2); }
.fru-toc__list { display: flex; flex-wrap: wrap; gap: 8px; }
.fru-toc__list a {
  display: inline-block; font-family: var(--fru-mono); font-size: 0.78rem;
  padding: 5px 11px; border: 1px solid var(--fru-hairline-2); color: var(--fru-ink-2);
}

/* ---- CTA ---- */
.fru-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--fru-mono); font-weight: 600; font-size: 0.92rem;
  text-transform: uppercase; letter-spacing: 0.04em;
  padding: 13px 26px; min-height: 48px;
  background: var(--fru-accent); color: var(--fru-accent-ink);
  border: 1px solid var(--fru-accent);
}
.fru-cta::after { content: "→"; font-family: var(--fru-mono); }
.fru-ctarow { text-align: center; margin-block: var(--fru-s4); }

/* ---- figure contenuto ---- */
.fru-figure { width: min(70%, 760px); margin: var(--fru-s4) auto; }
.fru-figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--fru-hairline-2); }
.fru-figure figcaption { font-style: italic; font-size: 0.86rem; color: var(--fru-ink-3); margin-top: var(--fru-s2); text-align: center; }

/* ---- callout ---- */
.fru-callout { border-left: 3px solid var(--fru-accent); background: var(--fru-surface); padding: var(--fru-s3) var(--fru-s4); margin-block: var(--fru-s4); }
.fru-callout__h { font-family: var(--fru-mono); font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fru-accent); margin-bottom: var(--fru-s2); }

/* ---- liste numerate stilizzate ---- */
.fru-steps { list-style: none; padding: 0; counter-reset: fru; }
.fru-steps > li { position: relative; padding-left: 44px; margin-top: var(--fru-s3); min-height: 30px; }
.fru-steps > li::before {
  counter-increment: fru; content: counter(fru, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  font-family: var(--fru-mono); font-size: 0.82rem; color: var(--fru-accent);
  width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--fru-hairline-2);
}

.fru-check { list-style: none; padding: 0; }
.fru-check > li { position: relative; padding-left: 28px; margin-top: var(--fru-s2); }
.fru-check > li::before {
  content: ""; position: absolute; left: 0; top: 0.45em;
  width: 11px; height: 11px; border: 2px solid var(--fru-accent); border-top: 0; border-right: 0;
  transform: rotate(-50deg);
}

/* ---- pro / contro ---- */
.fru-verdict { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--fru-s4); margin-block: var(--fru-s4); }
.fru-verdict__col { border: 1px solid var(--fru-hairline-2); padding: var(--fru-s3) var(--fru-s4); background: var(--fru-surface); min-width: 0; }
.fru-verdict__h { font-family: var(--fru-mono); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: var(--fru-s2); }
.fru-verdict__col ul { list-style: none; padding: 0; }
.fru-verdict__col li { padding: 6px 0 6px 22px; position: relative; border-bottom: 1px solid var(--fru-hairline); font-size: 0.98rem; }
.fru-verdict__col li:last-child { border-bottom: 0; }
.fru-pro li::before { content: "+"; position: absolute; left: 0; color: var(--fru-accent); font-family: var(--fru-mono); font-weight: 600; }
.fru-con li::before { content: "–"; position: absolute; left: 0; color: var(--fru-ink-3); font-family: var(--fru-mono); font-weight: 600; }

/* ---- rating ---- */
.fru-rating { display: flex; align-items: center; gap: var(--fru-s3); border: 1px solid var(--fru-hairline-2); padding: var(--fru-s3) var(--fru-s4); margin-block: var(--fru-s4); background: var(--fru-surface); }
.fru-rating__score { font-family: var(--fru-mono); font-weight: 600; font-size: var(--fru-step-3); line-height: 1; }
.fru-rating__score small { font-size: 0.9rem; color: var(--fru-ink-3); }
.fru-rating__body { min-width: 0; }
.fru-rating__label { display: block; font-family: var(--fru-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fru-ink-3); }
.fru-rating__plate { display: inline-block; height: 4px; width: 64px; background: var(--fru-accent); margin-top: 6px; }
.fru-stars { position: relative; display: inline-block; font-size: 1.15rem; line-height: 1; letter-spacing: 3px; color: var(--fru-hairline-2); }
.fru-stars::before { content: "★★★★★"; }
.fru-stars__fill { position: absolute; inset: 0; overflow: hidden; white-space: nowrap; color: var(--fru-accent); }
.fru-stars__fill::before { content: "★★★★★"; }

/* ---- griglia slot compatta ---- */
.fru-slots { padding-block: clamp(20px, 3vw, 32px); border-top: 1px solid var(--fru-hairline); }
.fru-slots__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--fru-s3); margin-bottom: var(--fru-s4); flex-wrap: wrap; }
.fru-slots__title { font-size: var(--fru-step-3); }
.fru-slots__intro { color: var(--fru-ink-2); font-style: italic; margin-top: var(--fru-s1); }
.fru-slots__more { font-family: var(--fru-mono); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--fru-accent); white-space: nowrap; border-bottom: 1px solid var(--fru-accent); }
.fru-slots__grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; }
.fru-slotcard { display: block; color: inherit; text-decoration: none; border: 1px solid var(--fru-hairline); background: var(--fru-surface); }
.fru-slotcard__media { display: block; overflow: hidden; }
.fru-slotcard__media img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .18s ease; }
.fru-slotcard__name { display: block; padding: 7px 8px 1px; font-size: 0.82rem; font-weight: 600; line-height: 1.2; }
.fru-slotcard__tag { display: block; padding: 0 8px 8px; font-family: var(--fru-mono); font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--fru-accent); }

/* ---- card autore (fondo articolo) ---- */
.fru-author {
  display: flex; gap: var(--fru-s4); align-items: flex-start;
  max-width: 780px; margin: var(--fru-s5) auto 0;
  border: 1px solid var(--fru-hairline-2); background: var(--fru-surface);
  padding: var(--fru-s4);
}
.fru-author__photo { width: 104px; height: 104px; object-fit: cover; border: 1px solid var(--fru-hairline-2); flex: 0 0 auto; aspect-ratio: auto; }
.fru-prose .fru-author__photo { width: 104px; height: 104px; aspect-ratio: auto; }
.fru-author__body { min-width: 0; }
.fru-author__name { font-size: var(--fru-step-1); font-weight: 600; }
.fru-author__name a { border-bottom: 1px solid var(--fru-accent); }
.fru-author__role { font-family: var(--fru-mono); font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--fru-ink-3); margin: 4px 0 var(--fru-s2); }
.fru-author__bio { font-size: 0.98rem; color: var(--fru-ink-2); }
.fru-author__more { display: inline-block; margin-top: var(--fru-s2); font-family: var(--fru-mono); font-size: 0.78rem; color: var(--fru-accent); border-bottom: 1px solid var(--fru-accent); }

/* ---- ritratto pagina autore ---- */
.fru-prose img.fru-portrait { width: 220px; height: auto; aspect-ratio: 3 / 4; object-fit: cover; float: none; margin: 0 0 var(--fru-s3); border: 1px solid var(--fru-hairline-2); }

/* ---- pagetitle (pagine fiducia/legale) ---- */
.fru-pagetitle { padding-block: clamp(22px, 4vw, 40px); border-bottom: 1px solid var(--fru-hairline); }
.fru-pagetitle__h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 2.9rem); }
.fru-pagetitle__lead { margin-top: var(--fru-s3); font-size: var(--fru-step-1); color: var(--fru-ink-2); font-style: italic; max-width: 60ch; }

/* ---- table wrapper scroll ---- */
.fru-tablewrap { overflow-x: auto; margin: var(--fru-s4) 0; }
.fru-tablewrap table { margin: 0; }

/* ---- cookie ---- */
.fru-cookie { border-top: 1px solid var(--fru-hairline-2); background: var(--fru-surface-2); }
.fru-cookie__inner { display: flex; align-items: center; gap: var(--fru-s4); padding-block: var(--fru-s3); flex-wrap: wrap; }
.fru-cookie__text { font-size: 0.88rem; color: var(--fru-ink-2); flex: 1 1 320px; min-width: 0; }
.fru-cookie__text a { border-bottom: 1px solid var(--fru-accent); }
.fru-cookie__ok { cursor: pointer; font-family: var(--fru-mono); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; padding: 10px 20px; min-height: 44px; background: var(--fru-ink); color: var(--fru-bg); border: 0; }

@media (max-width: 1100px) { .fru-slots__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 820px)  { .fru-slots__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .fru-verdict { grid-template-columns: minmax(0, 1fr); } .fru-figure { width: 100%; } }
@media (max-width: 560px)  { .fru-author { flex-direction: column; } }
@media (max-width: 520px)  { .fru-slots__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } }

/* ====================================================================
   STATE — hover / focus-visible / selection (in coda, vince per ordine)
   ==================================================================== */
a, .fru-cta, .fru-cookie__ok, summary, .fru-slotcard {
  transition: color .15s ease, background-color .15s ease, border-color .15s ease, transform .12s ease;
}
.fru-nav__list a:hover { color: var(--fru-ink); border-bottom-color: var(--fru-hairline-2); }
.fru-prose a:not(.fru-cta):not(.fru-slotcard):hover { color: var(--fru-accent); border-bottom-color: var(--fru-accent); }
.fru-cta:hover { background: #a8330f; border-color: #a8330f; color: var(--fru-accent-ink); }
.fru-cta:active { transform: translateY(1px); }
.fru-cookie__ok:hover { background: var(--fru-accent); color: var(--fru-accent-ink); }
.fru-toc__list a:hover { border-color: var(--fru-accent); color: var(--fru-accent); }
.fru-slotcard:hover { border-color: var(--fru-accent); }
.fru-slotcard:hover .fru-slotcard__media img { transform: scale(1.04); }
.fru-foot__nav a:hover, .fru-crumbs__item a:hover { color: var(--fru-accent); }

:focus-visible { outline: 2px solid var(--fru-accent); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}
