/* ============================================
   FILO EDIZIONI — Stylesheet tema WordPress
   Casa editrice — collane di manuali pratici
   ============================================ */

/* I font sono caricati separatamente in functions.php (wp_enqueue_style)
   per non violare le policy Google Fonts / GDPR con un @import diretto */

/* ---- Compatibilità WordPress ---- */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Allineamenti Gutenberg dentro il contenuto delle pagine */
.legal-content .alignwide { max-width: 100%; }
.legal-content .aligncenter { margin-left: auto; margin-right: auto; }
.legal-content img { border-radius: var(--radius-sm); margin: 12px 0; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); overflow: hidden; height: 1px; width: 1px; }

/* ---- Rifiniture editoriali aggiuntive ---- */
::selection { background: var(--color-brand-soft); color: var(--color-brand-deep); }

/* Cover libro con immagine reale in evidenza (se presente) */
.book-cover .book-cover-image {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;
}

/* Le copertine reali nelle card possono avere proporzioni non standard.
   Devono essere visibili per intero, senza tagli laterali. Le videoguide
   mantengono invece il loro comportamento 16:9. */
.book-cover.has-real-cover:not(.is-video) .book-cover-image {
  object-fit: contain;
  object-position: center center;
  background: var(--color-paper);
}
.book-cover .book-cover-image + .book-cover-texture { z-index: 1; }
.book-cover .book-cover-inner { z-index: 2; }
.book-detail-cover .book-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ---- Design tokens ---- */
:root {
  /* Base neutrals — carta e inchiostro, non bianco/nero puri */
  --color-ink: #1e2420;
  --color-ink-soft: #454f47;
  --color-muted: #6b7169;
  --color-faint: #99988c;
  --color-paper: #faf8f2;
  --color-paper-alt: #efe9da;
  --color-paper-deep: #e4dcc7;
  --color-line: #ddd5bf;
  --color-line-soft: #eae4d4;

  /* Brand — rosso porpora, come una rilegatura in pelle */
  --color-brand: #7d1f3d;
  --color-brand-deep: #4f1027;
  --color-brand-bright: #a32c50;
  --color-brand-soft: #f6e4e9;
  --color-brand-tint: #fbf1ee;

  /* Verde bosco — riservato alle copertine e a tocchi editoriali */
  --color-forest: #1f4d3a;
  --color-forest-deep: #11291e;
  --color-forest-soft: #e7ede8;

  /* Accento editoriale — ottone, come lettere dorate su un dorso */
  --color-brass: #ab7c34;
  --color-brass-soft: #f5e9d2;

  --color-danger: #a13d2e;
  --color-success: #2f6b45;

  --font-display: 'Libre Caslon Display', 'Libre Caslon Text', Georgia, serif;
  --font-serif: 'Libre Caslon Text', Georgia, serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 6px;

  --shadow-sm: 0 1px 3px rgba(30,36,32,0.06);
  --shadow-md: 0 6px 20px rgba(30,36,32,0.08);
  --shadow-lg: 0 18px 48px rgba(17,41,30,0.16);
  --shadow-spine: inset 3px 0 0 rgba(0,0,0,0.14), 0 10px 28px rgba(17,41,30,0.20);

  --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---- Reset & base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--color-ink);
  background: var(--color-paper);
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; transition: var(--transition); }

button { font-family: inherit; cursor: pointer; border: none; background: none; }

h1, h2, h3, h4 { font-family: var(--font-display); color: var(--color-ink); }

/* ============================================
   LAYOUT
   ============================================ */

.container {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 28px;
}

.container-narrow {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 28px;
}

/* ============================================
   HEADER & NAVIGATION
   ============================================ */

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(250,248,242,0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-line);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}

.logo {
  display: flex;
  align-items: center;
  gap: 11px;
  flex: 0 0 auto;                  /* il logo non si allarga e non si comprime */
  max-width: min(58%, 460px);      /* su schermi stretti non schiaccia la navigazione */
}

.logo img,
.logo .logo-img,
.logo .custom-logo {
  height: var(--logo-height, 44px);
  width: auto;
  max-width: 100%;
  display: block;

  /* Con height fissa e max-width in percentuale, su schermi stretti la
     larghezza veniva compressa mentre l'altezza restava: il logo si
     schiacciava. object-fit lo lascia rimpicciolire in proporzione invece
     di deformarlo. */
  object-fit: contain;
  object-position: left center;
}

.logo-text { font-family: var(--font-display); font-size: 22px; color: var(--color-ink); }

/* Rete di sicurezza: se una cache o un plugin serve ancora il markup di
   the_custom_logo(), l'immagine si trova fuori da .logo. Senza queste righe
   tornerebbe a dimensione naturale e sfonderebbe l'header. */
.header-inner .custom-logo-link {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  order: -1;           /* comunque prima della navigazione */
}

.header-inner .custom-logo-link .custom-logo {
  height: var(--logo-height, 44px);
  width: auto;
  display: block;
}

.nav-desktop { flex: 0 1 auto; }

.nav-desktop { display: flex; align-items: center; gap: 2px; }

.nav-desktop a {
  padding: 8px 15px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 500;
  color: var(--color-ink-soft);
  transition: var(--transition);
}

.nav-desktop a:hover { color: var(--color-brand-deep); }

/* Header azioni: ricerca + icone */
.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin-left: 12px;
}
.header-search {
  display: flex;
  align-items: center;
  width: clamp(210px, 21vw, 300px);
  height: 40px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: rgba(255,255,255,.62);
  overflow: hidden;
}
.header-search input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0 12px 0 15px;
  font: inherit;
  font-size: 12px;
  color: var(--color-ink);
}
.header-search button {
  flex: 0 0 42px;
  height: 100%;
  border: 0;
  background: transparent;
  color: var(--color-brand-deep);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.header-icon-link {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: var(--color-ink-soft);
  border-radius: 50%;
  transition: var(--transition);
}
.header-icon-link:hover {
  color: var(--color-brand-deep);
  background: var(--color-paper-alt);
}
.mobile-header-search, .mobile-nav-publish { display: none; }

.nav-desktop a.active,
.nav-desktop .current-menu-item > a,
.nav-desktop .current-menu-ancestor > a,
.nav-desktop .current_page_parent > a {
  color: var(--color-brand-deep);
  box-shadow: inset 0 -2px 0 var(--color-brand);
}

.nav-mobile-toggle { display: none; padding: 8px; border-radius: var(--radius-sm); color: var(--color-ink); }
.nav-mobile-toggle:hover { background: var(--color-paper-alt); }

/* Mobile nav overlay — drawer editoriale */
.mobile-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(25, 21, 18, .48);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity .28s ease;
}
.mobile-nav-overlay.open { display: block; opacity: 1; }

.mobile-nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(430px, 91vw);
  max-width: 100%;
  box-sizing: border-box;
  padding: max(20px, env(safe-area-inset-top)) 22px max(22px, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, var(--color-paper) 0%, #fbf8f0 100%);
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  transform: translateX(102%);
  transition: transform .36s cubic-bezier(.22, .8, .24, 1);
  box-shadow: -18px 0 55px rgba(34, 22, 18, .18);
  border-left: 1px solid rgba(93, 20, 48, .08);
}
.mobile-nav-overlay.open .mobile-nav-drawer { transform: translateX(0); }

.mobile-nav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(93, 20, 48, .14);
}
.mobile-nav-brand {
  display: inline-flex !important;
  align-items: center;
  gap: 11px;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--color-ink) !important;
}
.mobile-nav-brand:hover { background: transparent !important; }
.mobile-nav-brand img {
  display: block;
  width: 50px;
  height: 50px;
  object-fit: contain;
}
.mobile-nav-brand-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.05;
}
.mobile-nav-brand-text strong {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--color-brand-deep);
}
.mobile-nav-brand-text small {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.mobile-nav-close {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  margin: 0;
  border: 1px solid rgba(93, 20, 48, .16);
  border-radius: 50%;
  background: rgba(255,255,255,.42);
  color: var(--color-brand-deep);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.mobile-nav-close:hover {
  background: var(--color-brand-deep);
  color: #fff;
  border-color: var(--color-brand-deep);
  transform: rotate(4deg);
}

.mobile-header-search {
  display: flex;
  align-items: center;
  width: 100%;
  height: 50px;
  box-sizing: border-box;
  margin: 20px 0 18px;
  border: 1px solid rgba(93, 20, 48, .14);
  border-radius: 999px;
  background: #fffdf8;
  box-shadow: 0 5px 18px rgba(46, 30, 23, .055);
  overflow: hidden;
}
.mobile-header-search:focus-within {
  border-color: rgba(93, 20, 48, .42);
  box-shadow: 0 0 0 3px rgba(93, 20, 48, .06);
}
.mobile-header-search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0 10px 0 18px;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 15px;
}
.mobile-header-search input::placeholder { color: #8b8580; opacity: 1; }
.mobile-header-search button {
  flex: 0 0 50px;
  height: 100%;
  border: 0;
  background: transparent;
  color: var(--color-brand-deep);
  display: grid;
  place-items: center;
}

.mobile-nav-menu {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(93,20,48,.22) transparent;
  padding: 2px 2px 18px;
}
.mobile-nav-menu > ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mobile-nav-drawer li { display: block; }
.mobile-nav-drawer > ul > li {
  border-bottom: 1px solid rgba(93, 20, 48, .09);
}
.mobile-nav-drawer > ul > li:last-child { border-bottom: 0; }
.mobile-nav-drawer > ul > li > a,
.mobile-nav-drawer .fe-menu-riga > a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 56px;
  box-sizing: border-box;
  padding: 12px 8px;
  border-radius: 10px;
  color: #39332f;
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.01em;
  transition: color .18s ease, background .18s ease, padding-left .18s ease;
}
.mobile-nav-drawer > ul > li > a::after,
.mobile-nav-drawer .fe-menu-riga > a::after {
  content: '→';
  margin-left: auto;
  padding-left: 12px;
  font-family: var(--font-sans);
  font-size: 14px;
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity .18s ease, transform .18s ease;
  color: var(--color-brand);
}
.mobile-nav-drawer > ul > li > a:hover,
.mobile-nav-drawer .fe-menu-riga > a:hover,
.mobile-nav-drawer a.active,
.mobile-nav-drawer .current-menu-item > a {
  color: var(--color-brand-deep);
  background: rgba(93, 20, 48, .055);
  padding-left: 13px;
}
.mobile-nav-drawer > ul > li > a:hover::after,
.mobile-nav-drawer .fe-menu-riga > a:hover::after,
.mobile-nav-drawer a.active::after,
.mobile-nav-drawer .current-menu-item > a::after {
  opacity: 1;
  transform: translateX(0);
}

.mobile-nav-publish {
  display: block;
  flex: 0 0 auto;
  margin-top: 6px;
  padding: 15px 18px;
  border-radius: 10px;
  background: var(--color-brand-deep);
  color: #fff !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 700;
  letter-spacing: .01em;
  text-align: center;
  box-shadow: 0 8px 20px rgba(93,20,48,.16);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.mobile-nav-publish:hover {
  background: #73183d;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(93,20,48,.21);
}

/* ---- Menu a più livelli ---------------------------------------------
   Prima le liste erano appiattite con display:contents, così un menu di
   soli link funzionava ma i sottomenu finivano tutti in fila
   nell'intestazione. Ora la lista è una vera lista e i figli stanno in un
   pannello che si apre. */
.nav-desktop > ul {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-desktop > ul > li { position: relative; }
.nav-desktop a { display: block; }

/* Freccina solo sulle voci che hanno davvero un sottomenu. */
.nav-desktop .menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.nav-desktop .menu-item-has-children > a::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  opacity: 0.55;
  transition: transform 0.18s ease, opacity 0.18s ease;
}
.nav-desktop .menu-item-has-children:hover > a::after,
.nav-desktop .menu-item-has-children.fe-open > a::after {
  opacity: 1;
  transform: translateY(1px) rotate(225deg);
}

.nav-desktop .sub-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 120;
  min-width: 240px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--color-paper);
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
  box-shadow: 0 14px 34px rgba(17, 41, 30, 0.13);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}

/* Ponte invisibile fra la voce e il pannello: senza, spostando il mouse
   verso il sottomenu si attraversa un vuoto e il pannello si chiude. */
.nav-desktop .menu-item-has-children::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 8px;
}

.nav-desktop li:hover > .sub-menu,
.nav-desktop li:focus-within > .sub-menu,
.nav-desktop li.fe-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.nav-desktop .sub-menu a {
  padding: 10px 20px;
  border-radius: 0;
  font-size: 14.5px;
  white-space: nowrap;
}
.nav-desktop .sub-menu a:hover { background: var(--color-brand-tint); }
.nav-desktop .sub-menu .current-menu-item > a { box-shadow: none; background: var(--color-brand-tint); }

/* Il pannello dell'ultima voce di menu esce dallo schermo a destra: si apre
   verso l'interno. */
.nav-desktop > ul > li:last-child .sub-menu { left: auto; right: 0; }

/* ---- Desktop: terzo livello a cascata orizzontale -------------------
   I sotto-argomenti non devono allungare il pannello principale verso il
   basso: ogni livello successivo si apre lateralmente verso destra. */
.nav-desktop .sub-menu .menu-item-has-children { position: relative; }
.nav-desktop .sub-menu .menu-item-has-children > a::after {
  transform: translateY(0) rotate(-45deg);
}
.nav-desktop .sub-menu .menu-item-has-children:hover > a::after,
.nav-desktop .sub-menu .menu-item-has-children.fe-open > a::after {
  transform: translateY(0) rotate(135deg);
}
.nav-desktop .sub-menu .sub-menu {
  top: -9px;
  left: calc(100% - 1px);
  right: auto;
  margin: 0;
}
.nav-desktop .sub-menu .menu-item-has-children::after {
  left: 100%;
  right: auto;
  top: 0;
  width: 8px;
  height: 100%;
}

/* ---- Mobile: gli stessi livelli, a fisarmonica ---------------------- */
.mobile-nav-drawer > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
}
.mobile-nav-drawer li { display: block; }

/* Nel cassetto il link e l'apertura del sottomenu sono due comandi
   distinti: toccando "Argomenti" si va alla pagina degli argomenti,
   toccando la freccia si aprono le sue voci. Un unico bersaglio che fa
   entrambe le cose renderebbe la pagina madre irraggiungibile da telefono. */
.mobile-nav-drawer .fe-menu-riga {
  display: flex;
  align-items: center;
  gap: 4px;
}
.mobile-nav-drawer .fe-menu-riga > a { flex: 1; }

.fe-submenu-toggle {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-ink-soft);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.fe-submenu-toggle:hover { background: var(--color-paper-alt); color: var(--color-brand-deep); }
.fe-submenu-toggle::before {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.2s ease;
}
.mobile-nav-drawer .fe-open > .fe-menu-riga .fe-submenu-toggle::before {
  transform: translateY(2px) rotate(225deg);
}

.mobile-nav-drawer .sub-menu {
  display: none;
  list-style: none;
  margin: 0 0 6px;
  padding: 0 0 0 14px;
  border-left: 1px solid var(--color-line-soft);
}
.mobile-nav-drawer .fe-open > .sub-menu { display: block; }
.mobile-nav-drawer .sub-menu a { font-size: 15px; padding: 11px 14px; }

/* ============================================
   HERO — spread editoriale asimmetrico
   ============================================ */

.hero {
  position: relative;
  padding: 96px 0 96px;
  overflow: hidden;
}

/* Sfondo dell'apertura: una velatura calda verso il basso e un alone appena
   accennato dietro la libreria. Serve a staccare la prima schermata dal resto
   della pagina senza mettere un'immagine di stock dietro al testo, che
   renderebbe il titolo meno leggibile e il sito uguale a mille altri. */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 90% at 82% 18%, var(--color-brand-tint) 0%, transparent 58%),
    linear-gradient(180deg, var(--color-paper-alt) 0%, transparent 62%);
  opacity: 0.85;
  pointer-events: none;
}
.hero > .container { position: relative; }

.hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 56px;
  align-items: center;
}

/* Se non c'è nemmeno un libro pubblicato (sito appena installato), l'apertura
   resta a una sola colonna invece di lasciare uno spazio vuoto a destra. */
.hero-grid:has(> :only-child) { grid-template-columns: 1fr; }

.hero-eyebrow {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--color-brand);
  margin-bottom: 18px;
}

.hero h1 {
  font-size: clamp(34px, 4.6vw, 54px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.2px;
  margin-bottom: 22px;
  max-width: 15ch;
}

.hero-lede {
  font-size: clamp(16.5px, 1.6vw, 18.5px);
  color: var(--color-ink-soft);
  max-width: 46ch;
  margin-bottom: 34px;
  line-height: 1.65;
}

.hero-figure {
  display: flex;
  justify-content: center;
  perspective: 1200px;
}

.hero-figure .book-cover {
  width: 100%;
  max-width: 280px;
  transform: rotate(2.5deg);
}

/* Barra di fiducia sotto i pulsanti dell'apertura */
.trust-bar {
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--color-line);
  list-style: none;
}
.trust-bar li {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--color-ink-soft); font-weight: 500;
}
.trust-bar svg { flex-shrink: 0; color: var(--color-forest); }

.hero.hero-simple { padding-bottom: 20px; text-align: left; }
.hero.hero-simple .hero-eyebrow { margin-bottom: 14px; }
.hero.hero-simple h1 { max-width: 22ch; }
.hero.hero-simple .hero-lede { margin-bottom: 0; }

/* ============================================
   BUTTONS
   ============================================ */

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 26px; border-radius: var(--radius-sm);
  font-size: 14.5px; font-weight: 600; letter-spacing: 0.1px;
  transition: var(--transition); border: 1.5px solid transparent;
  font-family: var(--font-sans);
}

.btn-primary { background: var(--color-brand-deep); color: var(--color-paper); border-color: var(--color-brand-deep); }
.btn-primary:hover { background: var(--color-brand); border-color: var(--color-brand); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-audio { background: transparent; color: var(--color-brand-deep); border-color: var(--color-brand-deep); }
.btn-audio:hover { background: var(--color-brand-deep); color: var(--color-paper); transform: translateY(-1px); box-shadow: var(--shadow-md); }

.btn-outline { background: transparent; color: var(--color-ink); border-color: var(--color-line); }
.btn-outline:hover { background: var(--color-paper-alt); border-color: var(--color-faint); }

.btn-accent { background: var(--color-brass); color: #fff; border-color: var(--color-brass); }
.btn-accent:hover { background: #8f6530; border-color: #8f6530; transform: translateY(-1px); box-shadow: var(--shadow-md); }

.btn-block { width: 100%; }
.btn-group { display: flex; gap: 12px; flex-wrap: wrap; }

.btn-lg { padding: 17px 34px; font-size: 16.5px; }

/* ============================================
   SECTIONS
   ============================================ */

.section { padding: 68px 0; }
.section-alt {
  position: relative;
  background:
    radial-gradient(120% 140% at 85% 0%, rgba(171, 124, 52, 0.07) 0%, rgba(171, 124, 52, 0) 55%),
    var(--color-brand-tint);
  overflow: hidden;
}
.section-alt::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    0deg,
    rgba(79, 16, 39, 0.02) 0px,
    rgba(79, 16, 39, 0.02) 1px,
    transparent 1px,
    transparent 7px
  );
}
.section-alt > .container { position: relative; z-index: 1; }
.section-rule-top { border-top: 1px solid var(--color-line); }

.section-header { margin-bottom: 44px; }
.section-header.text-center { text-align: center; }

.section-header .kicker {
  font-family: var(--font-serif); font-style: italic; font-size: 15.5px;
  color: var(--color-brand); margin-bottom: 8px;
}

.section-header h2 { font-size: clamp(27px, 3.2vw, 34px); font-weight: 400; margin-bottom: 10px; letter-spacing: -0.2px; }
.section-header p { font-size: 16.5px; color: var(--color-muted); max-width: 560px; }
.section-header.text-center p { margin: 0 auto; }

/* ============================================
   SERIE STRIP (collane)
   ============================================ */

.series-strip {
  display: flex; gap: 10px; flex-wrap: wrap; padding: 20px 0 0;
  border-top: 1px solid var(--color-line);
  margin-top: 44px;
}

.series-pill {
  font-family: var(--font-sans); font-size: 13.5px; font-weight: 500;
  color: var(--color-ink-soft); padding: 7px 15px; border: 1px solid var(--color-line);
  border-radius: 999px; transition: var(--transition);
}
.series-pill:hover { border-color: var(--color-brand); color: var(--color-brand-deep); background: var(--color-brand-soft); }

/* ============================================
   FEATURED BOOK — spread editoriale
   ============================================ */

.featured-spread {
  display: grid; grid-template-columns: 300px 1fr; gap: 56px; align-items: center;
}

.featured-spread .book-cover {
  width: 100%;
  box-shadow: 0 0 0 1px var(--color-brass-soft), 0 0 0 5px var(--color-paper), var(--shadow-lg);
}

.featured-text .book-meta { margin-bottom: 10px; }
.featured-text h3 { font-size: clamp(24px, 2.8vw, 30px); font-weight: 400; margin-bottom: 14px; }
.featured-text p { font-size: 16.5px; color: var(--color-ink-soft); line-height: 1.7; margin-bottom: 26px; max-width: 56ch; }

/* ============================================
   BOOK CARDS — griglia catalogo
   ============================================ */

.books-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px 28px;
}

.book-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: var(--transition);
}

.book-card:hover .book-cover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.book-card:hover .book-card-link { color: var(--color-forest-deep); }
.book-card:hover .book-card-link span { transform: translateX(3px); }

.book-card-soon { cursor: default; }
.book-card-soon .book-cover { opacity: 0.7; }

.book-cover {
  width: 100%; aspect-ratio: 2/3; border-radius: var(--radius-xs);
  margin-bottom: 18px; position: relative; overflow: hidden;
  box-shadow: var(--shadow-spine);
  transition: var(--transition);
}

.book-cover-texture {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.10) 0%, transparent 45%);
  mix-blend-mode: overlay;
}

.book-cover.cover-forest { background: linear-gradient(150deg, #0f2e1f 0%, #1a4d33 42%, #2d6a4f 100%); }
.book-cover.cover-brass  { background: linear-gradient(150deg, #3a2a12 0%, #6b4a1e 45%, #a3763a 100%); }
.book-cover.cover-ink    { background: linear-gradient(150deg, #12141c 0%, #1c2438 45%, #2c3a56 100%); }
.book-cover.cover-teal { background: linear-gradient(150deg, #0d2b2c 0%, #164a4c 45%, #237679 100%); }
.book-cover.cover-porpora { background: linear-gradient(150deg, #3a0d1e 0%, #5e1730 45%, #93335a 100%); }

.book-cover-inner {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  justify-content: flex-end; padding: 22px; color: #fff;
}

.cover-author {
  font-family: var(--font-sans); font-size: 10.5px; text-transform: uppercase;
  letter-spacing: 1.4px; opacity: 0.7; margin-bottom: 8px;
}

.cover-title {
  font-family: var(--font-display); font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.18; font-weight: 400;
}

.cover-rule { width: 26px; height: 1px; background: rgba(255,255,255,0.4); margin: 14px 0 8px; }

.cover-collana { font-family: var(--font-serif); font-style: italic; font-size: 12.5px; opacity: 0.78; }

.cover-soon-badge {
  position: absolute; top: 14px; right: 14px; background: rgba(250,248,242,0.92);
  color: var(--color-ink); font-size: 10.5px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.6px; padding: 5px 10px; border-radius: 999px;
}

.book-card h3 { font-size: 17px; font-weight: 400; margin-bottom: 5px; line-height: 1.3; }

.book-meta {
  font-family: var(--font-sans); font-size: 12px; color: var(--color-brass);
  margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.7px; font-weight: 600;
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px;
}

/* Etichetta di formato sulla card (oggi solo "Audiolibro"): il genere resta
   il dato principale, questa è un'aggiunta e non deve competere con lui. */
.book-card-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 999px;
  background: var(--color-brand-tint); color: var(--color-brand-deep);
  font-size: 10.5px; letter-spacing: 0.5px;
}
.book-card-badge svg { flex-shrink: 0; }

/* La griglia allunga già ogni card all'altezza della riga (comportamento
   di default di CSS Grid), ma prima il corpo della card era un blocco
   normale: lo spazio in più restava vuoto sotto al link invece di essere
   distribuito, e con descrizioni di lunghezza diversa "Scopri il libro"
   finiva a un'altezza diversa da una card all'altra. Ora il corpo è una
   colonna flessibile, l'estratto assorbe lo spazio e il link resta
   sempre ancorato in fondo, alla stessa altezza su tutta la riga. */
.book-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.book-card-body p {
  font-size: 14px; color: var(--color-muted); line-height: 1.55; margin-bottom: 12px;
  /* Testi molto più lunghi di altri rendevano la griglia disomogenea:
     l'estratto si ferma a 3 righe con puntini di sospensione, così ogni
     scheda occupa più o meno lo stesso spazio a colpo d'occhio. */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  line-clamp: 3;
  overflow: hidden;
}

.book-card-link {
  font-size: 13.5px; font-weight: 600; color: var(--color-ink-soft);
  display: inline-flex; align-items: center; gap: 4px; transition: var(--transition);
  margin-top: auto;
}
.book-card-link span { display: inline-block; transition: transform 0.2s ease; }
.book-card-link-muted { color: var(--color-faint); }

/* Filtri catalogo — compatti e scalabili: con molti generi non si crea una
   lunga fila di pillole, soprattutto su smartphone. */
.catalog-filterbar {
  display: grid;
  grid-template-columns: minmax(190px, .7fr) minmax(420px, 1.3fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 40px;
  padding: 18px 20px;
  background: var(--color-paper-alt);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
}
.catalog-filterbar-label { display: flex; flex-direction: column; gap: 4px; }
.catalog-filterbar-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-brand);
}
.catalog-filterbar-label strong {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 400;
  color: var(--color-ink);
}
.catalog-filter-select { display:flex; gap:10px; align-items:center; min-width:0; }
.catalog-filter-select select {
  flex:1 1 auto;
  min-width:0;
  appearance:none;
  -webkit-appearance:none;
  padding:12px 44px 12px 14px;
  border:1px solid var(--color-line);
  border-radius:8px;
  background-color:#fffdf9;
  color:var(--color-ink-soft);
  font:500 14px/1.2 var(--font-sans);
  background-image: linear-gradient(45deg, transparent 50%, var(--color-brand) 50%), linear-gradient(135deg, var(--color-brand) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}
.catalog-filter-select select:focus { outline:2px solid rgba(89,13,38,.16); outline-offset:2px; border-color:var(--color-brand); }
.catalog-filter-select .btn { flex:0 0 auto; white-space:nowrap; }
.catalog-filter-reset {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 12px;
  color:var(--color-brand-deep);
  font-size:12.5px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.catalog-filter-reset span { font-size:19px; line-height:1; font-weight:400; }
.catalog-filter-reset:hover { color:var(--color-brand); }

/* Seconda riga di filtri: le sottocategorie del genere scelto. Stesso
   componente, un gradino sotto, senza la riga di chiusura — appartiene alla
   riga di sopra, non è un secondo blocco. */
.catalog-subfilters {
  margin-top: -26px;
  margin-bottom: 34px;
  padding-bottom: 0;
  border-bottom: 0;
}
.filter-chip-sub {
  font-size: 12.5px;
  padding: 6px 13px;
  background: var(--color-paper-alt);
  border-color: transparent;
}
.filter-chip-sub:hover { border-color: var(--color-brand); }
.filter-chip-sub.active { background: var(--color-brand-deep); border-color: var(--color-brand-deep); color: var(--color-paper); }

/* Ricerca dentro una sezione del catalogo (oggi gli audiolibri): cerca solo
   fra i titoli di quella sezione, quindi sta dentro la sezione e non
   nell'intestazione del sito. */
.catalog-search {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 26px;
}
.catalog-search input[type="search"] {
  flex: 1 1 260px;
  min-width: 0;
  padding: 12px 16px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-xs, 4px);
  background: var(--color-paper);
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--color-ink);
}
.catalog-search input[type="search"]:focus {
  outline: none;
  border-color: var(--color-brand);
}
.catalog-search .btn { flex: 0 0 auto; }

.catalog-result-line {
  font-size: 14.5px;
  color: var(--color-ink-soft);
  margin: -14px 0 26px;
}
.catalog-result-line a { color: var(--color-brand-deep); text-decoration: underline; margin-left: 6px; }

.catalog-empty { color: var(--color-muted); font-size: 16px; line-height: 1.7; }
.catalog-empty a { color: var(--color-brand-deep); text-decoration: underline; }

/* ============================================
   COLLANE — griglia editoriale
   ============================================ */

.collane-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}

.collana-card {
  position: relative;
  padding: 32px 28px 28px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
  background: var(--color-paper);
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}
.collana-card::before {
  content: "";
  position: absolute;
  top: 0; left: 28px; right: 28px;
  height: 3px;
  border-radius: 0 0 2px 2px;
  background: linear-gradient(90deg, var(--color-brass) 0%, var(--color-brand) 100%);
  opacity: 0.7;
  transition: var(--transition);
}
.collana-card:hover {
  border-color: var(--color-brand);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}
.collana-card:hover::before { opacity: 1; }

.collana-card .collana-count {
  font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.6px;
  color: var(--color-brass); margin-bottom: 12px;
}
.collana-card h3 { font-size: 19px; font-weight: 400; margin-bottom: 10px; }
.collana-card p { font-size: 14.5px; color: var(--color-ink-soft); line-height: 1.6; }

/* ============================================
   METODO — sequenza numerata (processo reale)
   ============================================ */

.process-steps {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line);
}

.process-step {
  padding: 32px 26px; border-left: 1px solid var(--color-line);
}
.process-step:first-child { border-left: none; }

.process-step .process-number {
  font-family: var(--font-display); font-size: 26px; color: var(--color-brand);
  margin-bottom: 14px; line-height: 1;
}
.process-step h4 { font-size: 15.5px; font-weight: 600; font-family: var(--font-sans); margin-bottom: 8px; }
.process-step p { font-size: 14px; color: var(--color-ink-soft); line-height: 1.6; }

/* ============================================
   MANIFESTO — citazione editoriale
   ============================================ */

.manifesto-quote {
  max-width: 780px; margin: 0 auto; text-align: center; position: relative;
}
.manifesto-quote::before {
  content: "\201C";
  display: block;
  font-family: var(--font-display);
  font-size: 96px;
  line-height: 1;
  color: var(--color-brand-soft);
  margin-bottom: -34px;
}
.manifesto-quote blockquote {
  font-family: var(--font-display); font-style: normal; font-weight: 400;
  font-size: clamp(24px, 3.2vw, 32px); line-height: 1.4; color: var(--color-ink);
  margin-bottom: 18px;
  position: relative;
}
.manifesto-quote cite {
  font-style: normal; font-size: 13.5px; color: var(--color-brand); font-weight: 600;
  letter-spacing: 0.3px;
}

/* ============================================
   CHI SIAMO — teaser istituzionale in home
   ============================================ */

.about-teaser {
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center;
}
.about-teaser h2 { font-size: clamp(25px, 3vw, 30px); font-weight: 400; margin-bottom: 16px; }
.about-teaser p { font-size: 16px; color: var(--color-ink-soft); line-height: 1.7; margin-bottom: 22px; }

.about-teaser-stats { display: flex; gap: 14px; flex-wrap: wrap; }
.about-teaser-stats .author-stat {
  text-align: left;
  padding: 18px 22px;
  background: var(--color-paper-alt);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm);
}

/* ============================================
   DOMANDE FREQUENTI — home
   ============================================ */

.home-faq { padding: 66px 0 78px; background: var(--color-paper-alt); border-top: 1px solid var(--color-line-soft); }
.home-faq-layout { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:clamp(42px,7vw,96px); align-items:start; }
.home-faq-intro { position:sticky; top:110px; }
.home-faq-intro h2 { font-size:clamp(30px,3.5vw,42px); font-weight:400; line-height:1.08; letter-spacing:-.025em; margin-bottom:14px; }
.home-faq-intro p { max-width:36ch; color:var(--color-muted); font-size:15px; line-height:1.7; }
.faq-list { max-width:none; margin:0; }

.faq-item {
  border-bottom: 1px solid var(--color-line);
}
.faq-item:first-child { border-top: 1px solid var(--color-line); }

.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 21px 2px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-size: 17.5px;
  font-weight: 400;
  color: var(--color-ink);
  line-height: 1.4;
}

/* Il triangolino nativo del browser non segue lo stile del sito: si nasconde
   e si disegna un "+" che ruota in "×" quando la risposta è aperta. */
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ""; }

.faq-item summary::after {
  content: "+";
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-family: var(--font-sans);
  color: var(--color-brand);
  transition: transform 0.2s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); }

.faq-item p {
  margin: -4px 0 22px;
  padding-right: 44px;
  font-family: var(--font-serif);
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--color-ink-soft);
  max-width: 66ch;
}

@media (max-width: 780px) {
  .home-faq-layout { grid-template-columns:1fr; gap:28px; }
  .home-faq-intro { position:static; }
  .home-faq-intro p { max-width:62ch; }
}

@media (max-width: 560px) {
  .home-faq { padding:52px 0 60px; }
  .faq-item summary { font-size:16.5px; padding:18px 2px; }
  .faq-item p { padding-right:0; }
}

.author-section {
  display: grid; grid-template-columns: 188px 1fr; gap: 52px; align-items: start;
  max-width: 920px; margin: 0 auto;
}

.author-avatar {
  width: 188px; height: 188px; border-radius: 50%; background: var(--color-brand-soft);
  display: flex; align-items: center; justify-content: center; color: var(--color-brand); overflow: hidden;
}
.author-avatar img { width: 100%; height: 100%; object-fit: cover; }

.author-info h2 { font-size: 25px; font-weight: 400; margin-bottom: 14px; }
.author-info p { color: var(--color-ink-soft); margin-bottom: 14px; font-size: 15.5px; line-height: 1.7; }
.author-info p.author-note { font-family: var(--font-serif); font-style: italic; color: var(--color-muted); }

.author-stats { display: flex; gap: 44px; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--color-line); }
.author-stat { text-align: left; }
.author-stat strong {
  display: block; font-family: var(--font-display); font-size: 30px; font-weight: 400;
  font-variant-numeric: tabular-nums; color: var(--color-brand-deep); line-height: 1; margin-bottom: 6px;
}
.author-stat span { font-size: 11.5px; color: var(--color-faint); text-transform: uppercase; letter-spacing: 0.6px; }

/* ============================================
   CHI SIAMO PAGE
   ============================================ */

.story-content { max-width: 700px; margin: 0 auto; }
.story-content h2 { font-size: clamp(26px, 3.5vw, 33px); font-weight: 400; margin-bottom: 22px; line-height: 1.25; }
.story-content > p { font-size: 17.5px; color: var(--color-ink-soft); margin-bottom: 22px; line-height: 1.75; font-family: var(--font-serif); }

/* Manifesto — lista editoriale, non "SaaS card" */
.manifesto-list { margin-top: 52px; }

.manifesto-item {
  display: grid; grid-template-columns: 40px 1fr; gap: 20px;
  padding: 26px 0; border-top: 1px solid var(--color-line);
}
.manifesto-item:last-child { border-bottom: 1px solid var(--color-line); }

.manifesto-item .manifesto-icon { color: var(--color-brand); padding-top: 2px; }

.manifesto-item h4 { font-size: 17px; font-weight: 600; font-family: var(--font-sans); margin-bottom: 8px; color: var(--color-ink); }
.manifesto-item p { font-size: 15px; color: var(--color-ink-soft); line-height: 1.65; max-width: 58ch; }

.callout-box {
  background: var(--color-brand-tint); border-left: 3px solid var(--color-brand);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 22px 26px; font-size: 14.5px; color: var(--color-ink-soft); line-height: 1.65;
}
.callout-box strong { color: var(--color-ink); }


/* ============================================
   CHI SIAMO — nuova pagina istituzionale
   ============================================ */
.about-page-hero {
  background:
    radial-gradient(circle at 85% 20%, rgba(189,151,91,.18), transparent 30%),
    linear-gradient(135deg, var(--color-paper-alt) 0%, var(--color-paper) 62%, #efe7dd 100%);
  padding: 84px 0 78px;
  border-bottom: 1px solid var(--color-line-soft);
}
.about-page-hero-grid {
  display:grid; grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr); gap:72px; align-items:end;
}
.about-page-hero h1 { max-width: 780px; font-size: clamp(42px,6vw,72px); font-weight:400; line-height:1.02; letter-spacing:-.045em; margin:16px 0 22px; }
.about-page-lede { max-width: 690px; color:var(--color-ink-soft); font-size:19px; line-height:1.7; }
.about-page-statement {
  border-left: 2px solid var(--color-brand); padding: 18px 0 18px 28px; max-width:440px; justify-self:end;
}
.about-page-statement span { display:block; text-transform:uppercase; letter-spacing:1.4px; font-size:11px; font-weight:700; color:var(--color-brand); margin-bottom:12px; }
.about-page-statement p { font-family:var(--font-display); font-size:25px; line-height:1.35; color:var(--color-ink); }
.about-intro-section { padding-top:82px; padding-bottom:82px; }
.about-two-col { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr); gap:72px; align-items:start; }
.about-two-col .section-header-left h2 { max-width:520px; font-size:clamp(32px,4.3vw,48px); font-weight:400; line-height:1.08; letter-spacing:-.03em; }
.about-copy { max-width:700px; }
.about-copy p { font-family:var(--font-serif); font-size:18px; line-height:1.8; color:var(--color-ink-soft); margin-bottom:22px; }
.about-pillars-section { padding:82px 0; }
.about-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:44px; }
.about-pillar { padding:30px 28px 34px; background:rgba(255,255,255,.34); border:1px solid var(--color-line); border-radius:var(--radius-sm); }
.about-pillar-number { font-family:var(--font-display); color:var(--color-brand); font-size:14px; letter-spacing:1px; margin-bottom:28px; }
.about-pillar h3 { font-size:23px; font-weight:400; margin-bottom:12px; }
.about-pillar p { color:var(--color-ink-soft); font-size:15.5px; line-height:1.7; }
.about-formats-section { padding-top:82px; padding-bottom:86px; }
.about-format-list { border-top:1px solid var(--color-line); margin-top:40px; }
.about-format { display:grid; grid-template-columns:150px minmax(220px,1fr) minmax(230px,.85fr) 28px; gap:22px; align-items:center; padding:25px 0; border-bottom:1px solid var(--color-line); color:var(--color-ink); transition:padding .2s ease, color .2s ease; }
.about-format:hover { padding-left:10px; color:var(--color-brand-deep); }
.about-format-label { text-transform:uppercase; letter-spacing:1.2px; font-size:11px; font-weight:700; color:var(--color-brand); }
.about-format strong { font-family:var(--font-display); font-weight:400; font-size:21px; line-height:1.25; }
.about-format > span:not(.about-format-label) { color:var(--color-muted); font-size:14px; line-height:1.6; }
.about-format b { font-size:22px; font-weight:400; color:var(--color-brand); text-align:right; }
.about-manifesto-band { background:var(--color-brand-deep); color:var(--color-paper); padding:92px 0; }
.about-manifesto { max-width:820px; margin:0 auto; text-align:center; }
.about-manifesto .kicker { color:#eadcc8; }
.about-manifesto blockquote { font-family:var(--font-display); font-size:clamp(36px,5vw,62px); line-height:1.08; font-weight:400; letter-spacing:-.03em; margin:16px 0 24px; }
.about-manifesto p { max-width:650px; margin:0 auto; color:rgba(249,244,237,.78); font-size:16px; line-height:1.75; }
.about-community-section { padding:90px 0 72px; }
.about-quote-card { min-height:330px; padding:46px; background:linear-gradient(145deg, #f1e8dd 0%, #ddd0c4 100%); border-radius:var(--radius-sm); display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; }
.about-quote-card::before { content:""; position:absolute; width:180px; height:180px; border-radius:50%; border:1px solid rgba(103,57,48,.15); top:-40px; right:-40px; }
.about-quote-mark { font-family:var(--font-display); font-size:110px; color:rgba(103,57,48,.16); line-height:.7; position:absolute; top:36px; left:38px; }
.about-quote-card p { font-family:var(--font-display); font-size:31px; line-height:1.2; max-width:430px; position:relative; z-index:1; }
.about-quote-card span { margin-top:18px; color:var(--color-muted); font-size:12px; text-transform:uppercase; letter-spacing:1px; position:relative; z-index:1; }
.about-note-section { padding-top:10px; padding-bottom:80px; }
.about-note { margin:0; }
@media (max-width:900px) {
  .about-page-hero-grid, .about-two-col { grid-template-columns:1fr; gap:36px; }
  .about-page-statement { justify-self:start; }
  .about-pillars { grid-template-columns:1fr; }
  .about-format { grid-template-columns:115px 1fr 28px; }
  .about-format > span:not(.about-format-label) { grid-column:2; }
  .about-format b { grid-column:3; grid-row:1 / span 2; }
}
@media (max-width:560px) {
  .about-page-hero { padding:58px 0 52px; }
  .about-page-hero h1 { font-size:42px; }
  .about-page-lede { font-size:17px; }
  .about-page-statement p { font-size:21px; }
  .about-intro-section, .about-pillars-section, .about-formats-section, .about-community-section { padding-top:58px; padding-bottom:58px; }
  .about-format { grid-template-columns:1fr 24px; gap:9px; padding:20px 0; }
  .about-format strong, .about-format > span:not(.about-format-label) { grid-column:1; }
  .about-format b { grid-column:2; grid-row:1 / span 3; }
  .about-quote-card { min-height:280px; padding:32px; }
  .about-quote-card p { font-size:26px; }
  .about-manifesto-band { padding:66px 0; }
}

/* ============================================
   PAGINE LEGALI
   ============================================ */

.legal-updated { font-size: 13.5px; color: var(--color-faint); margin-bottom: 36px; font-style: italic; font-family: var(--font-serif); }

.legal-content h2 {
  font-size: 19px; font-weight: 600; font-family: var(--font-sans); color: var(--color-ink);
  margin-top: 40px; margin-bottom: 14px;
}
.legal-content h2:first-of-type { margin-top: 0; }

.legal-content p { font-size: 15px; color: var(--color-ink-soft); line-height: 1.75; margin-bottom: 16px; }

.legal-content ul { margin: 0 0 16px 0; padding-left: 22px; }
.legal-content li { font-size: 15px; color: var(--color-ink-soft); line-height: 1.7; margin-bottom: 8px; }

.legal-content strong { color: var(--color-ink); }
.legal-content a { color: var(--color-brand); text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:hover { color: var(--color-brand-deep); }

/* ============================================
   BOOK DETAIL PAGE
   ============================================ */

.book-detail-hero {
  display: grid; grid-template-columns: 320px 1fr; gap: 60px; align-items: start; padding: 60px 0;
}

.book-detail-cover {
  width: 100%; aspect-ratio: 2/3; border-radius: var(--radius-xs); box-shadow: var(--shadow-spine);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 32px; text-align: center; position: relative; overflow: hidden;
}

/* Nella scheda del singolo libro una copertina reale deve essere mostrata
   per intero. Alcune immagini fornite tramite URL hanno proporzioni diverse
   dal 2:3 standard: mantenere object-fit: cover le taglierebbe ai lati.
   Il contenitore si adatta quindi alle proporzioni reali dell'immagine. */
.book-detail-cover.has-cover-image {
  aspect-ratio: auto;
  height: auto;
  min-height: 0;
  padding: 12px;
  background: var(--color-paper);
}

.book-detail-cover.has-cover-image .book-cover-image {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center center;
  border-radius: var(--radius-xs);
}

/* Colonna copertina: contiene la cover + il pulsante d'acquisto, così
   restano "agganciati" insieme quando la colonna diventa sticky. */
.book-detail-cover-col { width: 100%; }

/* Box acquisto sotto la copertina: nascosto di default, appare sul
   desktop insieme allo sticky (vedi media query più sotto). */
.book-sticky-buy { display: none; }

/* CTA in alto, subito sotto la valutazione: dà un'azione immediata a chi
   non vuole scorrere fino al pulsante sticky della copertina o fino in
   fondo alla scheda. */
.book-cta-top { display: inline-flex; margin: 0; }

/* Il blocco in alto era incollato alla descrizione che lo segue: serve una
   pausa vera fra l'azione e il testo. */
.book-buy--top { margin: 6px 0 32px; }
.book-buy--bottom { margin-top: 28px; }

.book-detail-info h1 { font-size: clamp(28px, 4vw, 42px); font-weight: 400; line-height: 1.15; margin-bottom: 14px; }
.book-detail-info .subtitle { font-family: var(--font-serif); font-style: italic; font-size: 18.5px; color: var(--color-ink-soft); margin-bottom: 22px; line-height: 1.55; }

.book-badge {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; border-radius: 999px;
  font-size: 12px; font-weight: 600; background: var(--color-brand-soft); color: var(--color-brand);
  margin-bottom: 20px; letter-spacing: 0.2px;
}

/* Riga con collana + formato, quando ci sono entrambi: stanno affiancati
   invece che uno sopra l'altro. */
.book-badges-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.book-badges-row .book-badge { margin-bottom: 0; }

/* Formato (es. "Ebook Kindle"): un dato pratico, non promozionale come la
   collana, quindi un chip più neutro. */
.book-badge-muted { background: var(--color-paper-alt); color: var(--color-ink-soft); }

.book-description { font-size: 16px; color: var(--color-ink-soft); line-height: 1.75; margin-bottom: 26px; font-family: var(--font-serif); }

.features-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; margin: 26px 0; }

.feature-item {
  display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px;
  color: var(--color-ink-soft); padding: 11px 0; border-top: 1px solid var(--color-line-soft);
}
.feature-item svg { flex-shrink: 0; margin-top: 2px; color: var(--color-brand); }

.forwho-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 24px; margin: 10px 0 0; }

.forwho-item {
  padding: 16px 0; font-size: 15px; color: var(--color-ink-soft);
  display: flex; align-items: flex-start; gap: 12px; border-top: 1px solid var(--color-line-soft);
}
.forwho-item svg { flex-shrink: 0; margin-top: 2px; color: var(--color-brand); }

/* Lead Magnet */
.lead-magnet {
  background: linear-gradient(155deg, var(--color-brand-deep) 0%, #34101f 100%); color: var(--color-paper);
  border-radius: var(--radius-md); padding: 44px; max-width: 700px; margin: 52px auto 0;
}
.lead-magnet h2 { font-size: 23px; font-weight: 400; margin-bottom: 10px; color: var(--color-paper); }
.lead-magnet > p { font-size: 15px; color: rgba(250,248,242,0.75); margin-bottom: 26px; line-height: 1.6; }

.lead-form { display: flex; gap: 10px; flex-wrap: wrap; }

.lead-form input[type="email"] {
  flex: 1; min-width: 220px; padding: 13px 18px; border: 1.5px solid rgba(250,248,242,0.25);
  border-radius: var(--radius-sm); font-size: 15px; background: rgba(250,248,242,0.08); color: var(--color-paper);
  transition: var(--transition);
}
.lead-form input[type="email"]:focus { outline: none; border-color: var(--color-brand-bright); background: rgba(250,248,242,0.12); }
.lead-form input[type="email"]::placeholder { color: rgba(250,248,242,0.5); }

.lead-message { margin-top: 14px; font-size: 14px; display: none; }
.lead-message.success { color: #8fd4a3; display: block; }
.lead-message.error { color: #e6a89c; display: block; }

/* ============================================
   FOOTER — IDENTITÀ EDITORIALE
   ============================================ */

.site-footer {
  border-top: 1px solid var(--color-line);
  padding: 56px 0 34px;
  background: var(--color-paper-alt);
}

.footer-identity {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(240px,.75fr);
  gap: 56px;
  align-items: start;
  padding-bottom: 42px;
  border-bottom: 1px solid var(--color-line);
}

.footer-brand { max-width: 680px; }
.footer-wordmark { display: flex; justify-content: flex-start; margin-bottom: 8px; }
.footer-wordmark img { height: 40px; width: auto; }

.footer-tagline {
  margin: 0 0 16px;
  color: var(--color-brass);
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
}
.footer-tagline span { padding: 0 4px; color: var(--color-brand); }

.footer-about-intro {
  max-width: 650px;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}
.footer-about-intro p {
  margin: 0;
  color: var(--color-muted);
  font-size: 13.5px;
  line-height: 1.7;
}

.footer-connect {
  padding-top: 3px;
  padding-left: 28px;
  border-left: 1px solid var(--color-line);
}
.footer-connect-label {
  display: block;
  margin-bottom: 7px;
  color: var(--color-brass);
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.footer-connect p {
  margin: 0 0 16px;
  color: var(--color-muted);
  font-size: 13.5px;
  line-height: 1.6;
}

/* Icone social: cerchi discreti, allineati al linguaggio editoriale del tema. */
.footer-social {
  list-style: none;
  display: flex;
  justify-content: flex-start;
  gap: 9px;
  margin: 0;
  padding: 0;
}
.footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  color: var(--color-ink-soft);
  background: var(--color-paper);
  transition: var(--transition);
}
.footer-social a:hover {
  background: var(--color-brand-deep);
  border-color: var(--color-brand-deep);
  color: var(--color-paper);
}

.footer-columns {
  margin: 38px 0 36px;
  padding: 0;
  text-align: left;
}

.footer-links { display: flex; justify-content: center; gap: 28px; margin-bottom: 22px; flex-wrap: wrap; }
.footer-links a { color: var(--color-ink-soft); font-size: 14px; font-weight: 500; }
.footer-links a:hover { color: var(--color-brand-deep); }

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--color-line-soft);
}
.footer-copy { color: var(--color-faint); font-size: 12.5px; }

.footer-legal-links { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; }
.footer-legal-links a { color: var(--color-muted); font-size: 12.5px; }
.footer-legal-links a:hover { color: var(--color-brand-deep); }
.footer-legal-links span { color: var(--color-line); font-size: 12px; }

.footer-about-note {
  max-width: 760px;
  margin: 22px auto 0;
  padding-top: 18px;
  border-top: 1px solid var(--color-line-soft);
  text-align: center;
}
.footer-about-note p { margin: 0; }
.footer-about .footer-affiliate { color: var(--color-faint); font-size: 12px; line-height: 1.6; }

.footer-legal { margin-top: 10px; font-size: 12px; color: var(--color-faint); text-align: center; line-height: 1.55; }
.footer-legal a { color: var(--color-faint); text-decoration: underline; text-underline-offset: 2px; }
.footer-legal a:hover { color: var(--color-muted); }

/* ============================================
   UTILITIES
   ============================================ */

.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 980px) {
  .books-grid { grid-template-columns: repeat(2, 1fr); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-figure { order: -1; margin-bottom: 12px; }
  .hero-figure .book-cover { max-width: 220px; }
  .featured-spread { grid-template-columns: 1fr; }
  .featured-spread .book-cover { max-width: 240px; margin: 0 auto; }
  .collane-grid { grid-template-columns: 1fr; }
  .process-steps { grid-template-columns: repeat(2, 1fr); }
  .process-step:nth-child(3) { border-left: none; }
  .about-teaser { grid-template-columns: 1fr; }
}

/* Con la navigazione a sei-sette voci la barra sopra i 1100px sta larga, ma
   fra 1100 e 980 comincia a stringere: si accorciano le spaziature invece di
   mandare le voci a capo, che è quello che rompeva l'intestazione. */

@media (min-width: 1201px) {
  .catalog-layout-libri { grid-template-columns: 220px minmax(0, 1fr); gap: 34px; }
}

@media (max-width: 1100px) {
  .nav-desktop > ul { gap: 0; }
  .nav-desktop > ul > li > a { padding: 8px 10px; font-size: 13.5px; }
}

/* Sotto i 980 le voci non ci stanno più in una riga sola: si passa al
   cassetto, che i sottomenu li gestisce a fisarmonica. Prima il passaggio
   avveniva a 768 e nel mezzo la barra andava a capo. */
@media (max-width: 980px) {
  /* Su tablet e mobile il menu desktop deve essere completamente nascosto:
     il pulsante hamburger apre il cassetto .mobile-nav-overlay. */
  .nav-desktop { display: none !important; }
  .header-actions { display: none; }
  .nav-mobile-toggle { display: block; }
}

@media (max-width: 768px) {

  .hero { padding: 52px 0 44px; }

  .author-section { grid-template-columns: 1fr; text-align: center; gap: 28px; }
  .author-avatar { width: 156px; height: 156px; margin: 0 auto; }
  .author-stats { justify-content: center; }

  .book-detail-hero { grid-template-columns: 1fr; gap: 32px; padding: 32px 0; }
  .book-detail-cover-col { max-width: 260px; margin: 0 auto; }
  .book-cta-top { display: flex; width: 100%; }
  .book-buy-row { flex-direction: column; gap: 10px; }
  .book-buy-row .book-buy-audio--inline { width: 100%; }

  .features-grid { grid-template-columns: 1fr; }
  .forwho-grid { grid-template-columns: 1fr; }

  .lead-form { flex-direction: column; }
  .lead-form input[type="email"] { width: 100%; min-width: auto; }

  /* Il form della newsletter (dentro la scheda libro e nella fascia finale)
     ha sia .lead-form che .newsletter-form: qui sopra .lead-form lo porta
     in colonna, ma .newsletter-form imposta "flex: 1 1 220px" sull'input,
     pensato per un layout in riga. In colonna quel 220px viene letto come
     altezza minima, non larghezza: l'email diventava una casella enorme.
     Il selettore doppia-classe qui sotto ha specificità maggiore della
     regola ".newsletter-form input" (che nel file viene dopo e altrimenti
     vincerebbe comunque), quindi riporta l'altezza a quella naturale. */
  .lead-form.newsletter-form input[type="email"] { flex: 1 1 auto; }

  .btn-group { flex-direction: column; align-items: stretch; }

  .section { padding: 44px 0; }

  .manifesto-item { grid-template-columns: 1fr; gap: 8px; }
  .process-steps { grid-template-columns: 1fr; }
  .process-step { border-left: none; border-top: 1px solid var(--color-line); }
  .process-step:first-child { border-top: none; }
  .about-teaser-stats { flex-wrap: wrap; gap: 24px; }
}

@media (max-width: 820px) {
  .catalog-filterbar {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px;
  }
  .catalog-filter-select { width:100%; }
  .catalog-filter-reset { justify-content:flex-start; padding-left:0; min-height:auto; }
}

@media (max-width: 560px) {
  .books-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .container { padding: 0 18px; }
  .header-inner { height: 62px; }
  .logo-text { font-size: 18px; }
  .logo svg { width: 23px; height: 23px; }
  .lead-magnet { padding: 30px 22px; }
  .catalog-filterbar { margin-bottom: 28px; }
  .catalog-filter-select { flex-direction:column; align-items:stretch; }
  .catalog-filter-select select, .catalog-filter-select .btn { width:100%; }
}

@media (max-width: 420px) {
  /* Prima diventava 1 colonna qui sotto: sui telefoni più piccoli le
     card libro (anche quelle dei "consigliati" a fondo scheda) finivano
     enormi, una sotto l'altra. Restano 2 colonne, solo più strette. */
  .books-grid { gap: 20px 12px; }
}


/* ============================================
   CATALOGO — sidebar argomenti
   ============================================ */
.catalog-layout {
  display: grid;
  grid-template-columns: 238px minmax(0, 1fr);
  gap: 46px;
  align-items: start;
}
.catalog-sidebar { min-width: 0; }
.catalog-sidebar-mobile { display: none; }
.catalog-sidebar-inner {
  position: sticky;
  top: 104px;
  padding: 22px 18px 20px;
  background: var(--color-paper-alt);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm);
}
.catalog-sidebar-heading {
  padding: 0 4px 15px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--color-line);
}
.catalog-sidebar-kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--color-brand);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.catalog-sidebar-heading h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 25px;
  line-height: 1.1;
  font-weight: 400;
  color: var(--color-ink);
}
.catalog-sidebar-nav { display: flex; flex-direction: column; }
.catalog-sidebar-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 9px 8px;
  border-bottom: 1px solid var(--color-line-soft);
  color: var(--color-ink-soft);
  font-size: 13.5px;
  line-height: 1.35;
  text-decoration: none;
  transition: var(--transition);
}
.catalog-sidebar-link:last-child { border-bottom: 0; }
.catalog-sidebar-link span { min-width: 0; }
.catalog-sidebar-link small {
  flex: 0 0 auto;
  min-width: 24px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: var(--color-muted);
  font-size: 10px;
  line-height: 1.4;
  text-align: center;
}
.catalog-sidebar-link:hover {
  color: var(--color-brand);
  background: rgba(255,255,255,.55);
  padding-left: 11px;
}
.catalog-sidebar-link.is-active {
  color: var(--color-brand-deep);
  background: var(--color-brand-tint);
  font-weight: 700;
  border-radius: 6px;
  border-bottom-color: transparent;
}
.catalog-sidebar-link.is-active small { background: var(--color-brand); color: #fff; }
.catalog-main { min-width: 0; }
.catalog-main .catalog-result-line { margin-top: 0; }
.catalog-main .books-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog-layout-libri .catalog-main .genre-books-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog-main .content-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-main .genre-sections { gap: 54px; }
.catalog-main .genre-book-section + .genre-book-section { padding-top: 46px; }

/* ============================================
   CATALOGO LIBRI — sezioni per genere
   ============================================ */

.section-catalogo-libri { padding-top: 48px; }
.genre-sections { display: flex; flex-direction: column; gap: 64px; }
.genre-book-section { padding-top: 8px; }
.genre-section-head,
.catalogo-view-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  padding-bottom: 18px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--color-line);
}
.genre-section-head h2,
.catalogo-view-heading h2 {
  margin: 5px 0 0;
  font-family: var(--font-display);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--color-ink);
}
.catalog-section-kicker {
  display: block;
  color: var(--color-brand);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.genre-section-link,
.catalogo-back-link {
  flex: 0 0 auto;
  color: var(--color-brand);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.genre-section-link:hover,
.catalogo-back-link:hover { color: var(--color-forest-deep); }
.genre-section-link span,
.catalogo-back-link span { display: inline-block; transition: transform .2s ease; }
.genre-section-link:hover span,
.catalogo-back-link:hover span { transform: translateX(3px); }
.genre-books-grid { margin: 0; }
.genre-book-section + .genre-book-section { border-top: 1px solid var(--color-line-soft); padding-top: 56px; }

.catalogo-pager-wrap { margin-top: 58px; }
.catalogo-generi-pagination {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.catalogo-page-link { color: var(--color-brand); font-size: 13px; font-weight: 700; text-decoration: none; }
.catalogo-page-link.next { justify-self: end; }
.catalogo-page-count { color: var(--color-muted); font-size: 12px; text-align: center; }
.catalogo-more-generi {
  margin-top: 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  padding: 28px 30px;
  background: var(--color-paper-alt);
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
}
.catalogo-more-generi strong { display: block; margin-top: 5px; font-family: var(--font-display); font-size: 22px; font-weight: 400; }
.catalogo-more-generi p { margin: 7px 0 0; color: var(--color-muted); font-size: 14px; line-height: 1.55; }
.catalogo-back-catalogo { justify-content: flex-start; background: transparent; border: 0; padding: 0; }

@media (max-width: 1100px) {
  .catalog-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 30px; }
  .catalog-main .books-grid,
  .catalog-main .content-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-layout-libri .catalog-main .genre-books-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-sidebar-inner { padding-left: 14px; padding-right: 14px; }
  .catalog-sidebar-link { font-size: 13px; }
}

@media (max-width: 820px) {
  .catalog-layout { grid-template-columns: 1fr; gap: 24px; }
  .catalog-sidebar-inner { position: static; padding: 14px; }
  .catalog-sidebar-heading { padding: 0 2px 10px; margin-bottom: 10px; }
  .catalog-sidebar-heading h2 { font-size: 21px; }
  .catalog-sidebar-nav { display: none; }
  .catalog-sidebar-mobile { display: block; }
  .catalog-sidebar-mobile-select {
    display: block;
    width: 100%;
    min-height: 46px;
    padding: 10px 42px 10px 13px;
    border: 1px solid var(--color-line);
    border-radius: 6px;
    background: var(--color-paper);
    color: var(--color-ink);
    font: 600 14px/1.3 var(--font-body);
  }
  .catalog-main .books-grid,
  .catalog-main .content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-layout-libri .catalog-main .genre-books-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-main .genre-sections { gap: 40px; }
}

@media (max-width: 820px) {
  .genre-sections { gap: 46px; }
  .genre-section-head,
  .catalogo-view-heading { align-items: flex-start; flex-direction: column; gap: 13px; }
  .genre-section-link,
  .catalogo-back-link { white-space: normal; }
  .genre-book-section + .genre-book-section { padding-top: 42px; }
  .catalogo-generi-pagination { grid-template-columns: 1fr 1fr; }
  .catalogo-page-count { grid-column: 1 / -1; grid-row: 1; }
  .catalogo-page-link.next { grid-column: 2; grid-row: 2; }
  .catalogo-page-link.prev { grid-column: 1; grid-row: 2; }
  .catalogo-more-generi { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 560px) {
  .section-catalogo-libri { padding-top: 36px; }
  .genre-section-head,
  .catalogo-view-heading { padding-bottom: 14px; margin-bottom: 20px; }
  .genre-section-head h2,
  .catalogo-view-heading h2 { font-size: 28px; }
  .catalogo-generi-pagination { gap: 12px; }
  .catalogo-page-link { font-size: 12px; }
  .catalogo-more-generi { padding: 23px 20px; margin-top: 22px; }
  .catalogo-more-generi strong { font-size: 20px; }
}

/* ============================================
   ANIMATIONS
   ============================================ */

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeInUp 0.5s ease forwards; }

/* Accessibilità: focus visibile da tastiera */
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 2px solid var(--color-brand); outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ---- Scheda tecnica del libro (mostrata solo se i campi sono compilati) ---- */
.book-specs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 28px 0 4px;
  padding: 20px 0 4px;
  border-top: 1px solid var(--color-line, #e2e0d9);
}

.book-specs .book-spec {
  margin: 0;
  padding: 16px 20px 16px 0;
  border-bottom: 1px solid var(--color-line-soft);
}

.book-specs .book-spec:nth-child(-n+4) { padding-top: 0; }
.book-specs .book-spec:nth-child(4n) { padding-right: 0; }

.book-specs dt {
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--color-faint);
  margin: 0 0 3px;
}

.book-specs dd {
  margin: 0;
  font-size: 15px;
  color: var(--color-ink-soft, #454f47);
  font-family: var(--font-serif);
}

@media (max-width: 640px) {
  .book-specs { grid-template-columns: 1fr 1fr; gap: 2px 20px; }
}

/* ---- Larghezza della barra dell'header ----
   Il logo era vincolato al container da 1240px centrato: su uno schermo largo
   restava a circa 370px dal bordo. L'header ha ora un container proprio, più
   largo, così logo e menu si avvicinano ai bordi mentre il contenuto delle
   pagine resta dov'era.

   Per regolarlo basta cambiare --header-max-width qui sotto:
     1600px  impostazione attuale
     none    header a tutta larghezza, logo a filo del bordo
     1240px  comportamento precedente, logo allineato al contenuto */
:root {
  --header-max-width: 1600px;
  --header-side-padding: 24px;

  /* --logo-height viene scritta dal Personalizza (Aspetto → Personalizza →
     Dimensione del logo), con un valore per desktop, tablet e telefono.
     Questo è solo il valore di riserva se quel blocco non venisse stampato. */
  --logo-height: 52px;
}

.site-header .container {
  max-width: var(--header-max-width);
  padding-left: var(--header-side-padding);
  padding-right: var(--header-side-padding);
}

@media (max-width: 560px) {
  /* Su schermi stretti il container è comunque a tutta larghezza: conta solo
     il padding, che resta quello del resto del sito. */
  .site-header .container { padding-left: 18px; padding-right: 18px; }

  /* Con il solo pulsante del menu accanto, il logo può prendersi più spazio:
     è la differenza fra un payoff leggibile e una riga di puntini. */
  .logo { max-width: 76%; }
}

/* ---- Libri correlati sotto la scheda ---- */
.related-books { border-top: 1px solid var(--color-line); background: var(--color-paper-alt, #f4f1e9); }
.related-books .section-head { text-align: center; margin-bottom: 34px; }
.related-books .section-head p { max-width: 620px; margin: 10px auto 0; color: var(--color-ink-soft); }
.related-books .books-grid { margin-top: 0; }

/* ==========================================================================
   SCHEDA DEL LIBRO — impaginazione editoriale
   ==========================================================================
   La pagina aveva tutti gli elementi ma nessuna gerarchia: paragrafi, elenchi
   e blocchi avevano lo stesso peso e lo stesso margine, e l'occhio non aveva
   appigli. Qui si lavora su tre cose: rientri, un filo verticale che tiene
   insieme la colonna di testo, e riquadri che separano ciò che è descrizione
   da ciò che è promessa verificabile.
   ========================================================================== */

:root {
  --list-indent: 1.55em;   /* rientro degli elenchi nella descrizione */
}

/* ---- 1. Descrizione: rientri e ritmo ---- */

.book-description { max-width: 66ch; }

.book-description > *:first-child { margin-top: 0; }

.book-description p { margin: 0 0 1.15em; }

/* Il primo paragrafo fa da cappello: leggermente più grande e più scuro,
   così l'apertura ha un peso diverso dal resto. */
.book-description > p:first-of-type {
  font-size: 17.5px;
  line-height: 1.7;
  color: var(--color-ink);
}

.book-description h2,
.book-description h3 {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--color-ink);
  margin: 1.9em 0 0.65em;
  line-height: 1.25;
  position: relative;
  padding-left: 16px;
}

.book-description h2 { font-size: 23px; }
.book-description h3 { font-size: 19px; }

/* Trattino verticale a sinistra dei titoli: costa poco e dà alla colonna
   un asse che prima non aveva. */
.book-description h2::before,
.book-description h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.28em;
  bottom: 0.28em;
  width: 3px;
  border-radius: 2px;
  background: var(--color-brand-deep, #6b1f38);
  opacity: 0.55;
}

/* Elenchi: rientrati rispetto ai paragrafi, con il segno fuori dal testo. */
.book-description ul,
.book-description ol {
  margin: 0 0 1.25em;
  padding-left: var(--list-indent);
}

.book-description li {
  margin-bottom: 0.55em;
  padding-left: 0.3em;
  line-height: 1.7;
}

.book-description li::marker { color: var(--color-brand-deep, #6b1f38); }

.book-description ul { list-style: none; padding-left: 0; }

.book-description ul > li {
  position: relative;
  padding-left: calc(var(--list-indent) + 0.3em);
}

/* Il trattino lungo al posto del pallino: è il segno che si usa negli
   elenchi dei libri, e lega la pagina alla natura editoriale del sito. */
.book-description ul > li::before {
  content: "—";
  position: absolute;
  left: 0.15em;
  top: 0;
  color: var(--color-brand-deep, #6b1f38);
  opacity: 0.6;
  font-weight: 400;
}

.book-description ol { padding-left: calc(var(--list-indent) + 0.5em); }

.book-description blockquote {
  margin: 1.6em 0;
  padding: 4px 0 4px 22px;
  border-left: 2px solid var(--color-brand-deep, #6b1f38);
  font-style: italic;
  color: var(--color-ink);
}

.book-description strong { color: var(--color-ink); font-weight: 600; }

/* ---- 2. Riga autore ---- */

.book-byline {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: -8px 0 6px;
  font-size: 15px;
  color: var(--color-ink-soft);
}

.book-byline-label {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--color-faint);
}

.book-byline-name {
  font-weight: 600;
  color: var(--color-ink);
  letter-spacing: 0.2px;
}

/* ---- 2bis. Formato (testo semplice) e valutazione a stelle ---- */

.book-format-line {
  margin: 0 0 10px;
  font-size: 14px;
  color: var(--color-ink-soft);
}

.book-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 22px;
  font-size: 14px;
}

.book-rating-stars {
  position: relative;
  display: inline-flex;
  width: 90px;
  height: 16px;
}

.book-rating-stars-base,
.book-rating-stars-fill {
  position: absolute;
  inset: 0;
  display: flex;
  gap: 2px;
  overflow: hidden;
  white-space: nowrap;
}

.book-rating-stars-base svg,
.book-rating-stars-fill svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.book-rating-stars-base { color: var(--color-line, #ddd5bf); }
.book-rating-stars-fill { color: #d9a441; }

.book-rating-value { font-weight: 600; color: var(--color-ink); }
.book-rating-count { color: var(--color-faint); }

/* ---- 3. Punti di forza: da elenco sparso a riquadro ----
   I titoletti di sezione (qui e nella scheda tecnica subito sotto) erano
   grigio chiarissimo su 12px: si confondevano con lo sfondo e la scheda
   sembrava un unico blocco piatto. Ora sono scuri, in grassetto, con un
   trattino d'accento nel colore del brand davanti: fanno da "etichetta"
   riconoscibile per ogni sezione. */

.features-title,
.book-specs-title {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  color: var(--color-brand-deep);
  margin: 34px 0 14px;
}

.features-title::before,
.book-specs-title::before {
  content: "";
  width: 18px;
  height: 2px;
  border-radius: 1px;
  background: var(--color-brand);
  flex-shrink: 0;
}

.book-specs-title { margin: 34px 0 2px; }

.book-detail-info .features-grid,
.book-detail-info .forwho-grid {
  background: var(--color-paper-alt, #f4f1e9);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-sm, 6px);
  padding: 22px 24px;
  gap: 14px 26px;
}

.book-detail-info .features-grid .feature-item,
.book-detail-info .forwho-grid .forwho-item {
  align-items: flex-start;
}

/* ---- 4. Scheda tecnica ---- */

.book-specs { margin-top: 12px; }

/* ---- 5. Striscia di garanzie sotto i pulsanti ---- */

.book-trust {
  list-style: none;
  margin: 22px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--color-line);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
}

.book-trust li {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 13.5px;
  color: var(--color-ink-soft);
  line-height: 1.45;
}

.book-trust svg {
  flex: 0 0 auto;
  color: var(--color-brand-deep, #6b1f38);
  opacity: 0.75;
}

/* ---- 5bis. Breadcrumb sopra la scheda del libro ---- */

.book-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 14px 0 0;
  font-size: 12.5px;
  color: var(--color-faint);
}

.book-breadcrumb a { color: var(--color-faint); text-decoration: none; }
.book-breadcrumb a:hover { color: var(--color-brand); text-decoration: underline; text-underline-offset: 2px; }
.book-breadcrumb-sep { color: var(--color-line); }
.book-breadcrumb-current { color: var(--color-ink-soft); }

/* La sezione dell'hero usa .section per il padding laterale/di base, ma sotto
   un breadcrumb il tradizionale padding-top di .section (68px) lascia un
   vuoto enorme prima della copertina: qui basta lo spazio già dato dal
   breadcrumb stesso. */
.book-hero-section { padding-top: 8px; padding-bottom: 0; }

/* ---- 5ter. Fiducia + citazione sotto il pulsante d'acquisto (colonna copertina) ---- */

.book-sticky-trust {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.book-sticky-trust li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--color-ink-soft);
}

.book-sticky-trust svg {
  flex: 0 0 auto;
  margin-top: 1px;
  color: var(--color-brand-deep, #6b1f38);
  opacity: 0.85;
}

.book-quote-box {
  background: var(--color-paper-alt);
  border-radius: var(--radius-md, 10px);
  padding: 22px 22px;
  margin-top: 22px;
  text-align: center;
}

.book-quote-box blockquote {
  margin: 0;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 15px;
  line-height: 1.6;
  color: var(--color-ink-soft);
}

/* ---- 5quater. Newsletter contestuale, inline nella colonna testo ---- */

.book-newsletter-inline {
  background: var(--color-brand-soft);
  border-radius: var(--radius-md, 10px);
  padding: 26px 26px 22px;
  margin: 6px 0 32px;
}

/* Icona e titolo sulla stessa riga: l'icona da sola su una riga sua sembrava
   un elemento staccato e allontanava il titolo dal resto del riquadro.
   L'icona è inline-flex e il titolo inline, così scorrono insieme; il
   paragrafo che segue resta un blocco e va a capo da sé. */
.book-newsletter-inline-icon {
  display: inline-flex;
  align-items: center;
  color: var(--color-brand-deep);
  margin: 0 9px 0 0;
  vertical-align: -4px;
}

.book-newsletter-inline h2 {
  display: inline;
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 700;
  color: var(--color-brand-deep);
  margin: 0;
}

/* Il paragrafo dopo il titolo inline ha bisogno del suo stacco, che prima
   arrivava dal margine inferiore dell'h2. */
.book-newsletter-inline h2 + p { margin-top: 8px; }

.book-newsletter-inline > p {
  font-size: 14px;
  color: var(--color-ink-soft);
  line-height: 1.6;
  margin: 0 0 16px;
}

.book-newsletter-inline .lead-form input[type="email"] {
  background: var(--color-paper);
  border: 1.5px solid var(--color-line);
  color: var(--color-ink);
}
.book-newsletter-inline .lead-form input[type="email"]::placeholder { color: var(--color-faint); }
.book-newsletter-inline .lead-form input[type="email"]:focus {
  border-color: var(--color-brand);
  background: var(--color-paper);
}

.book-newsletter-inline .lead-message.success { color: var(--color-success, #2f6b45); }
.book-newsletter-inline .lead-message.error { color: var(--color-danger, #a13d2e); }

.book-newsletter-inline-note {
  font-size: 12px;
  color: var(--color-faint);
  margin: 12px 0 0;
}

/* ---- 6. Copertina: cornice e comportamento in scorrimento ---- */

.book-detail-cover {
  box-shadow: 0 1px 2px rgba(30,25,20,0.06), 0 18px 44px -14px rgba(30,25,20,0.32);
}

@media (min-width: 981px) {
  /* La copertina (e il pulsante d'acquisto appena sotto) restano in vista
     mentre si legge la descrizione: il libro è il soggetto della pagina,
     non deve uscire di scena alla prima rotellata, e chi ha deciso di
     comprare non deve tornare su a cercare il bottone. */
  .book-detail-cover-col { position: sticky; top: calc(var(--logo-height, 52px) + 46px); }

  .book-sticky-buy { display: block; margin-top: 18px; }
}

@media (max-width: 768px) {
  .book-description { max-width: none; }
  .book-description > p:first-of-type { font-size: 16.5px; }
  .book-trust { gap: 10px 18px; }
  .book-detail-info .features-grid,
  .book-detail-info .forwho-grid { padding: 18px 18px; }
}

/* La nota del modulo sta su fondo porpora: serve un chiaro, non un grigio */
.lead-magnet .lead-note {
  font-size: 12.5px;
  line-height: 1.55;
  margin-top: 16px;
  color: rgba(255,255,255,0.62);
}

/* ==========================================================================
   HOME — apertura con la fila di copertine
   ==========================================================================
   L'apertura mostrava una copertina sola, la stessa che tornava più sotto
   nella sezione "in evidenza". Ora mostra una fila sfalsata di titoli diversi:
   in un colpo d'occhio si capisce che dietro c'è un catalogo.
   ========================================================================== */

.hero-shelf {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  padding: 10px 0 24px;
}

.hero-shelf .shelf-item {
  display: block;
  width: 30%;
  max-width: 176px;
  flex: 0 0 auto;
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.3, 1);
}

/* I volumi si sovrappongono come su uno scaffale: il margine negativo li
   avvicina, lo z-index decide chi sta davanti. */
.hero-shelf .shelf-item + .shelf-item { margin-left: -13%; }

.hero-shelf .shelf-item .book-cover {
  display: block;
  width: 100%;
  aspect-ratio: 2/3;
  border-radius: var(--radius-xs);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(30,25,20,0.08), 0 16px 34px -12px rgba(30,25,20,0.36);
}

.hero-shelf .shelf-item .book-cover-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero-shelf .shelf-item-0 { z-index: 5; transform: rotate(-4deg) translateY(6px); }
.hero-shelf .shelf-item-1 { z-index: 4; transform: rotate(-2deg); }
.hero-shelf .shelf-item-2 { z-index: 3; transform: rotate(0deg) translateY(-10px); }
.hero-shelf .shelf-item-3 { z-index: 2; transform: rotate(2deg); }
.hero-shelf .shelf-item-4 { z-index: 1; transform: rotate(4deg) translateY(6px); }

.hero-shelf .shelf-item:hover,
.hero-shelf .shelf-item:focus-visible {
  transform: translateY(-14px) rotate(0deg);
  z-index: 6;
}

@media (prefers-reduced-motion: reduce) {
  .hero-shelf .shelf-item { transition: none; }
}

/* ---- Pulsante sotto la griglia del catalogo ---- */

.section-more { text-align: center; margin: 38px 0 0; }

/* ---- Blocco "in evidenza": due punti di forza come assaggio ---- */

.featured-subtitle {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--color-ink-soft);
  margin-bottom: 14px;
}

.featured-points {
  list-style: none;
  margin: 18px 0 24px;
  padding: 0;
  display: grid;
  gap: 10px;
}

.featured-points li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--color-ink-soft);
}

.featured-points svg {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--color-brand);
}

/* ---- Footer: identità del progetto e nota sui link ---- */

.footer-about {
  max-width: 640px;
  margin: 26px auto 0;
  padding-top: 22px;
  border-top: 1px solid var(--color-line-soft);
  text-align: center;
}

.footer-about p {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--color-muted);
  margin: 0 0 8px;
}

.footer-about .footer-affiliate { color: var(--color-faint); font-size: 12.5px; }

.footer-wordmark .footer-logo-img {
  height: 38px;
  width: auto;
  max-width: 240px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

@media (max-width: 980px) {
  .hero-shelf { padding-top: 0; }
  .hero-shelf .shelf-item { width: 32%; max-width: 148px; }
}

@media (max-width: 560px) {
  /* Cinque copertine sovrapposte su un telefono diventano illeggibili:
     ne restano tre. */
  .hero-shelf .shelf-item-3,
  .hero-shelf .shelf-item-4 { display: none; }
  .hero-shelf .shelf-item { width: 38%; max-width: 128px; }
  .hero-shelf .shelf-item + .shelf-item { margin-left: -10%; }
  .footer-wordmark .footer-logo-img { height: 32px; }
}

/* ==========================================================================
   IDENTITÀ DELLA HOME
   ==========================================================================
   La pagina era corretta ma tutta sullo stesso registro: fondi chiarissimi,
   nessun contrasto forte, nessun elemento ricorrente. Qui si introducono tre
   cose: il "filo" come segno grafico (è il nome del marchio, tanto vale
   usarlo), una fascia scura che spezza la sequenza di sezioni chiare, e una
   numerazione dei passaggi che pesa quanto merita.
   ========================================================================== */

/* ---- 1. Il filo: segno ricorrente ---- */

.hero-thread {
  display: block;
  width: 46px;
  height: 2px;
  margin-bottom: 20px;
  background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-brand-bright) 100%);
  border-radius: 2px;
}

/* Lo stesso segno davanti a ogni sopratitolo, in scala ridotta. */
.kicker { position: relative; }

.section-header .kicker::before,
.newsletter-text .kicker::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 1px;
  margin-right: 10px;
  vertical-align: middle;
  background: linear-gradient(90deg, var(--color-brass) 0%, var(--color-brand) 100%);
  opacity: 0.75;
}

.section-header.text-center .kicker::before { display: none; }

/* ---- 2. Apertura: fondo che non è più piatto ---- */

.hero {
  position: relative;
  background:
    radial-gradient(120% 90% at 78% 18%, rgba(125, 31, 61, 0.055) 0%, rgba(125, 31, 61, 0) 62%),
    linear-gradient(180deg, var(--color-paper) 0%, var(--color-paper-alt) 100%);
  overflow: hidden;
}

/* Righe orizzontali sottilissime: danno grana alla carta senza che si
   riconosca il motivo. */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    0deg,
    rgba(79, 16, 39, 0.028) 0px,
    rgba(79, 16, 39, 0.028) 1px,
    transparent 1px,
    transparent 7px
  );
}

.hero > .container { position: relative; z-index: 1; }

.hero h1 { letter-spacing: -0.015em; }

/* ---- 3. I quattro passaggi: numeri che pesano ---- */

.process-number {
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  color: var(--color-brand);
  opacity: 0.9;
  margin-bottom: 14px;
}

.process-steps { position: relative; }

/* Filo orizzontale che attraversa i quattro passaggi e li lega in una
   sequenza invece di lasciarli come quattro riquadri indipendenti. */
@media (min-width: 981px) {
  .process-steps::before {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    top: 17px;
    height: 1px;
    background: linear-gradient(90deg,
      transparent 0%,
      var(--color-line) 12%,
      var(--color-line) 88%,
      transparent 100%);
    z-index: 0;
  }

  .process-step { position: relative; z-index: 1; }

  .process-number {
    display: inline-block;
    padding-right: 14px;
    background: var(--color-paper-alt);
  }
}

/* ---- 4. Collane: griglia che si adatta al numero di collane ---- */

.collane-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* Con una collana sola, una card larga tutta la pagina sembrava un errore.
   Così resta della sua misura, allineata a sinistra col resto. */
.collane-grid:has(.collana-card:only-child) { grid-template-columns: minmax(280px, 420px); }

/* ---- 5. Fascia newsletter: il contrasto che mancava ---- */

.newsletter-band {
  background:
    radial-gradient(90% 140% at 12% 0%, rgba(163, 44, 80, 0.55) 0%, rgba(163, 44, 80, 0) 60%),
    var(--color-brand-deep);
  color: #fff;
  border: none;
}

.newsletter-inner {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
}

.newsletter-band .kicker { color: rgba(255, 255, 255, 0.68); }
.newsletter-band .kicker::before { background: rgba(255, 255, 255, 0.6); opacity: 1; }

.newsletter-band h2 {
  color: #fff;
  margin: 10px 0 12px;
  font-size: clamp(25px, 3.2vw, 34px);
  line-height: 1.18;
}

.newsletter-text p {
  color: rgba(255, 255, 255, 0.76);
  font-size: 16px;
  line-height: 1.65;
  margin: 0;
  max-width: 46ch;
}

.newsletter-form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.newsletter-form input[type="email"] {
  flex: 1 1 220px;
  padding: 14px 16px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 15px;
}

.newsletter-form input[type="email"]::placeholder { color: rgba(255, 255, 255, 0.5); }

.newsletter-form input[type="email"]:focus {
  outline: none;
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.12);
}

.newsletter-form .btn { flex: 0 0 auto; }

.newsletter-note {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.5);
  margin: 12px 0 0;
}

.newsletter-band .lead-message { color: #fff; margin: 12px 0 0; font-size: 14px; }
.newsletter-band .lead-message.error { color: #ffc9cf; }

@media (max-width: 980px) {
  .newsletter-inner { grid-template-columns: 1fr; gap: 28px; }
  .newsletter-text p { max-width: none; }
}

@media (max-width: 560px) {
  .newsletter-form { flex-direction: column; }
  .newsletter-form .btn { width: 100%; }
}


/* ---- 1.7.0: autore, paginazione, lead primo capitolo inline ---- */

.book-byline-name a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.book-byline-name a:hover { color: var(--color-brand-deep); }

.book-author { margin-top: 30px; }
.book-author-item + .book-author-item { margin-top: 18px; }
.book-author-name { font-family: var(--font-serif); font-size: 19px; font-weight: 700; margin: 0 0 6px; }
.book-author-name a { color: var(--color-ink); text-decoration: none; }
.book-author-name a:hover { color: var(--color-brand-deep); text-decoration: underline; }
.book-author-bio { font-size: 15px; line-height: 1.65; color: var(--color-ink-soft); }
.book-author-bio p { margin: 0 0 10px; }
.book-author-more { margin: 8px 0 0; font-size: 14px; font-weight: 600; }
.book-author-more a { color: var(--color-brand-deep); text-decoration: none; }
.book-author-more a:hover { text-decoration: underline; }

.author-bio p { margin: 0 0 10px; }
.author-count { font-size: 14px; opacity: 0.8; }

.books-pagination { margin-top: 40px; }
.books-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.books-pagination a,
.books-pagination span { display: inline-block; min-width: 40px; padding: 9px 14px; border: 1px solid var(--color-line); border-radius: 6px; text-align: center; text-decoration: none; color: var(--color-ink); font-size: 14px; }
.books-pagination .current { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-paper); }
.books-pagination a:hover { border-color: var(--color-brand); color: var(--color-brand-deep); }
.books-pagination .dots { border-color: transparent; }

.book-lead-capitolo { scroll-margin-top: 90px; }

@media (max-width: 560px) {
  .book-author-name { font-size: 17px; }
  .books-pagination a,
  .books-pagination span { padding: 8px 11px; min-width: 36px; }
}


/* =====================================================================
   1.7.3 — Scheda libro: canali di acquisto e gerarchia
   ===================================================================== */

/* ---- Blocco acquisto sotto la copertina ----------------------------
   Prima era una pila sciolta: pulsante, didascalia, elenco garanzie, tutto
   sullo stesso piano. Ora è un unico blocco riconoscibile, chiuso da un
   filo d'ottone in alto: è l'unico punto della pagina in cui il colore
   caldo compare, così l'occhio ci torna senza bisogno di alzare la voce
   altrove. */
.book-sticky-buy {
  background: var(--color-paper);
  border: 1px solid var(--color-line);
  border-top: 2px solid var(--color-brass);
  border-radius: var(--radius-sm, 6px);
  padding: 20px 18px 18px;
  box-shadow: 0 1px 2px rgba(30, 36, 32, 0.04);
}

.book-sticky-buy .book-sticky-trust {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--color-line-soft);
}

/* La citazione sta già dentro il pannello: senza sfondo proprio, altrimenti
   sarebbe un riquadro dentro un riquadro. */
.book-sticky-buy .book-quote-box {
  background: transparent;
  padding: 14px 0 0;
  margin-top: 14px;
  border-top: 1px solid var(--color-line-soft);
}

/* ---- Blocco di acquisto ---------------------------------------------
   Due gruppi distinti con l'etichetta sopra: il volume (Amazon, Il Giardino
   dei Libri) e l'audiolibro. Prima erano tutti sulla stessa fila e
   "Ascolta il libro" sembrava un terzo negozio invece di un altro formato. */
.book-buy-title {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0 0 14px;
}

.book-buy-section + .book-buy-section {
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid var(--color-line-soft);
}

.book-buy-section-label {
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--color-muted);
  margin: 0 0 9px;
}

.book-buy-main { text-align: center; }
.book-buy-icon { flex-shrink: 0; }

/* ---- Altri negozi dello stesso formato ------------------------------
   Separati dal pulsante principale da una riga, non solo dal colore: sono
   la stessa azione su un altro negozio, non un dettaglio secondario. */
.book-buy-alt { margin-top: 10px; }

.book-buy--top .book-buy-alt {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--color-line-soft);
}

.book-buy-alt-label {
  display: block;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--color-muted);
  margin-bottom: 9px;
}

.book-buy-alt-list { display: flex; flex-wrap: wrap; gap: 8px; }

/* Canali secondari (Il Giardino dei Libri, Macrolibrarsi): a riposo hanno
   già il colore del marchio su fondo tenue, così si leggono come pulsanti
   veri e non come note a margine. Al passaggio del mouse si riempiono,
   perché un hover che cambia appena non dice se il bersaglio è attivo. */
.btn-channel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 16px;
  border: 1px solid var(--color-brand);
  border-radius: var(--radius-xs, 4px);
  background: var(--color-brand-tint);
  color: var(--color-brand-deep);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.btn-channel:hover,
.btn-channel:focus-visible {
  border-color: var(--color-brand-deep);
  background: var(--color-brand-deep);
  color: var(--color-paper);
}

.book-buy-alt-icon { opacity: 0.6; }
.btn-channel:hover .book-buy-alt-icon,
.btn-channel:focus-visible .book-buy-alt-icon { opacity: 1; }

/* Nella colonna della copertina lo spazio è stretto: i pulsanti prendono
   tutta la larghezza e restano allineati al principale. */
.book-sticky-buy .book-buy-alt-list { flex-direction: column; }
.book-sticky-buy .btn-channel { width: 100%; }

/* ---- Audiolibro -----------------------------------------------------
   Formato diverso, quindi trattamento diverso: contorno invece di pieno,
   così non compete con l'acquisto del volume ma resta un pulsante vero. */
.book-buy-audio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* I due formati sulla stessa riga, sotto il titolo. Stessa altezza, peso
   diverso: pieno il volume, contorno l'audiolibro. */
.book-buy-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}

.book-buy-audio--inline {
  border-width: 1.5px;
  background: var(--color-paper);
}
.book-buy-audio--inline:hover,
.book-buy-audio--inline:focus-visible {
  background: var(--color-brand-deep);
  color: var(--color-paper);
}

.book-sticky-buy .book-buy-audio { width: 100%; }

/* A fine scheda l'audiolibro è l'ultima proposta, non l'azione principale:
   stessa forma degli altri canali, un gradino sotto il pulsante grande. */
.book-buy--bottom .book-buy-audio {
  padding: 12px 20px;
  font-size: 15px;
}

/* Anteprima audiolibro nei blocchi "Disponibile anche in audio":
   mantiene la copertina originale del libro ma la trasforma in un invito
   chiaramente riconoscibile all'ascolto, con badge AUDIO e play centrale. */
.book-audio-preview {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
  background: var(--color-paper-alt);
}
.book-audio-preview-media {
  display: block;
  text-decoration: none;
}
.book-audio-preview-cover {
  position: relative;
  width: 96px;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  border-radius: 5px;
  box-shadow: var(--shadow-sm);
  background: var(--color-paper);
}
.book-audio-preview-cover .book-cover-image,
.book-audio-preview-cover .book-cover-texture,
.book-audio-preview-cover .book-cover-inner {
  width: 100%;
  height: 100%;
}
.book-audio-preview-cover .book-cover-image { object-fit: cover; display: block; }
.book-audio-preview-cover .book-cover-inner { transform: scale(.72); transform-origin: center; }
.book-audio-badge {
  position: absolute;
  left: 7px;
  top: 7px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 7px;
  border-radius: 999px;
  background: rgba(92,17,45,.94);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .09em;
}
.book-audio-badge .book-buy-icon { width: 11px; height: 11px; }
.book-audio-play {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  width: 38px;
  height: 38px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--color-brand-deep);
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  transition: transform .18s ease, background .18s ease;
}
.book-audio-preview-media:hover .book-audio-play,
.book-audio-preview-media:focus-visible .book-audio-play {
  transform: translate(-50%, -50%) scale(1.08);
}
.book-audio-preview-copy strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.2;
  color: var(--color-ink);
}
.book-audio-preview-copy p {
  margin: 0 0 10px;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.5;
}
.book-audio-preview-copy .book-buy-audio {
  width: 100%;
  justify-content: center;
}
@media (max-width: 600px) {
  .book-audio-preview { grid-template-columns: 82px minmax(0,1fr); gap: 12px; padding: 12px; }
  .book-audio-preview-cover { width: 82px; }
  .book-audio-preview-copy strong { font-size: 16px; }
  .book-audio-preview-copy p { font-size: 12px; }
}

/* Il nome del negozio principale è lungo ("Acquista il libro su Il Giardino
   dei Libri") e nella colonna stretta va a capo: meglio due righe centrate e
   compatte che un testo tagliato. */
.book-sticky-buy .btn-primary {
  font-size: 15px;
  line-height: 1.3;
  text-align: center;
  white-space: normal;
  padding-top: 14px;
  padding-bottom: 14px;
}

/* ---- Gerarchia della scheda ----------------------------------------
   Il titolo era vicino per dimensione al resto del testo: qui prende più
   respiro e il sottotitolo si accorcia a una misura leggibile, così la
   prima cosa che si legge è il libro, non la pagina. */
.book-detail-info h1 {
  font-size: clamp(30px, 4.4vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.012em;
  margin-bottom: 12px;
}

.book-detail-info .subtitle {
  font-size: 19px;
  line-height: 1.5;
  max-width: 44ch;
  margin-bottom: 18px;
}

/* Primo paragrafo della descrizione: leggermente più grande, come l'attacco
   di un articolo. Il resto resta invariato. */
.book-description > p:first-of-type { font-size: 17.5px; line-height: 1.72; }

/* Titoli di sezione: stessa distanza fra tutte le sezioni, invece dei salti
   irregolari di prima. */
.book-detail-info .features-title,
.book-detail-info .book-specs-title { margin-top: 44px; }

/* ---- Punto di vista di FiloEdizioni ----------------------------------
   Nota editoriale separata dalla descrizione: chiusa di default per non
   interrompere il percorso principale della scheda. */
.book-point-of-view {
  margin-top: 36px;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

.book-point-of-view summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 18px 34px 18px 0;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-brand-deep);
}

.book-point-of-view summary::-webkit-details-marker { display: none; }
.book-point-of-view summary::after {
  content: '+';
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  line-height: 1;
  font-weight: 400;
}

.book-point-of-view[open] summary::after { content: '−'; }

.book-point-of-view-content {
  max-width: 760px;
  padding: 0 0 22px;
  color: var(--color-ink);
}

.book-point-of-view-content p {
  margin: 0 0 12px;
  line-height: 1.7;
}

.book-point-of-view-content p:last-child { margin-bottom: 0; }

.book-point-of-view-content strong { font-weight: 700; }

/* ---- Scheda del volume ----------------------------------------------
   I valori sono l'informazione, non le etichette: vanno in serif, più
   grandi, mentre le etichette arretrano. */
.book-specs dd {
  font-family: var(--font-serif);
  font-size: 17px;
  line-height: 1.35;
  color: var(--color-ink);
}

.book-specs dt { color: var(--color-muted); }

/* ---- Autore ---------------------------------------------------------- */
.book-author-name { font-size: 21px; }

@media (max-width: 980px) {
  /* Senza colonna sticky i pulsanti alternativi stanno in fila. */
  .book-buy-alt-list { flex-direction: row; }
}

@media (max-width: 560px) {
  .book-buy-alt-list { flex-direction: column; }
  .btn-channel { width: 100%; }
  .book-detail-info .subtitle { font-size: 17.5px; }
}

/* ---- 1.7.4: foto dell'autore ---------------------------------------
   La foto arriva dalla scheda del negozio ed è spesso piccola: si mostra a
   dimensione contenuta, tonda, accanto al testo, invece di ingrandirla e
   vederne i pixel. */
.book-author-item.has-photo {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 18px;
  align-items: start;
}

.book-author-photo img {
  width: 84px;
  height: 84px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  display: block;
}

.author-photo {
  margin-bottom: 16px;
}

.author-photo img {
  width: 110px;
  height: 110px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  display: block;
}

/* Sotto il titolo gli altri negozi stanno in fila, compatti: lì il pulsante
   principale è in linea e non deve nascere una colonna. */
.book-detail-info > .book-buy-alt {
  margin-top: 12px;
  padding-top: 12px;
  max-width: 520px;
}

@media (max-width: 560px) {
  .book-author-item.has-photo { grid-template-columns: 64px 1fr; gap: 14px; }
  .book-author-photo img { width: 64px; height: 64px; }
}

/* ============================================
   AUDIOLIBRI
   ============================================ */

/* Sezione in home. Non usa .section-alt perché è incastrata fra il catalogo
   e "In evidenza", che quello sfondo lo usa già: qui serve un segno diverso,
   più tenue, che dica "altro formato" senza spezzare il ritmo della pagina. */
.section-audio {
  background:
    linear-gradient(180deg, var(--color-brand-tint) 0%, transparent 70%);
  border-top: 1px solid var(--color-line-soft);
}

.kicker-audio { display: inline-flex; align-items: center; gap: 7px; }
.kicker-audio svg { color: var(--color-brand); }
.section-header .kicker-audio::before { display: none; }

/* Apertura della pagina /audiolibri/: stessa impaginazione degli altri
   archivi, con l'icona che chiarisce al primo sguardo di che sezione si
   tratta. */
.hero-audio-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  margin-bottom: 18px;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  background: var(--color-paper);
  color: var(--color-brand-deep);
}

.hero-audio-count {
  font-size: 14.5px;
  color: var(--color-muted);
  margin-top: 10px;
}

/* ============================================
   PIATTAFORMA EDITORIALE
   Argomenti, guide, approfondimenti, autori
   ============================================ */

/* ---- Blocchi di collegamento -------------------------------------- */
.hub-block { margin-bottom: 56px; }
.hub-block:last-of-type { margin-bottom: 0; }

.section-header-left {
  text-align: left;
  margin-bottom: 26px;
}
.section-header-left h2 { margin-bottom: 6px; }
.section-header-left p {
  font-size: 15.5px;
  color: var(--color-muted);
  max-width: 60ch;
  margin: 0;
}

.hub-more { margin-top: 44px; }

/* ---- Schede dei contenuti editoriali -------------------------------
   Volutamente diverse dalle schede dei libri: nessuna copertina verticale,
   nessun pulsante di acquisto. Un contenuto di Filo non deve somigliare a
   un prodotto in vendita. */
.content-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 26px;
}

.content-card {
  display: flex;
  flex-direction: column;
  background: var(--color-paper);
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: var(--transition);
}
.content-card:hover { border-color: var(--color-line); box-shadow: var(--shadow-sm, 0 6px 20px rgba(0,0,0,0.05)); }

.content-card-media { display: block; line-height: 0; background: var(--color-paper-alt); }
.content-card-media img { width: 100%; height: 168px; object-fit: cover; }

.content-card--video .content-card-media { position: relative; }
.content-card--video .content-card-media img { aspect-ratio: 16 / 9; height: auto; object-fit: cover; }
.content-card-play { position: absolute; left: 18px; bottom: 16px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(92, 17, 45, .95); color: #fff; font-size: 14px; line-height: 1; box-shadow: 0 5px 18px rgba(0,0,0,.18); }

/* Indicatore visivo per contenuti video: il play resta sopra l'immagine in
   tutte le superfici (scheda singola, card catalogo e percorsi digitali). */
.fe-media-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  padding-left: 3px;
  background: rgba(92, 17, 45, .95);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  box-shadow: 0 7px 24px rgba(0,0,0,.22);
  pointer-events: none;
  z-index: 5;
}
.book-detail-cover.is-video { position: relative; }
.book-cover.is-video { position: relative; }
.fe-digital-card-media { position: relative; }
.fe-digital-cover-frame { position: relative; }
.fe-media-play--course { width: 64px; height: 64px; font-size: 22px; }

.content-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 22px 22px;
}

.content-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.content-card-kind { color: var(--color-brand-deep); }
.content-card-topic { color: var(--color-brass); }

.content-card h3 {
  font-size: 19px;
  font-weight: 400;
  line-height: 1.3;
  margin: 0 0 10px;
}
.content-card h3 a { color: var(--color-ink); text-decoration: none; }
.content-card h3 a:hover { color: var(--color-brand-deep); }

.content-card-excerpt {
  font-size: 15px;
  line-height: 1.65;
  color: var(--color-ink-soft);
  flex: 1;
  margin: 0 0 14px;
}

.content-card-link {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-brand-deep);
  text-decoration: none;
}
.content-card-link::after { content: " →"; }
.content-card-link:hover { text-decoration: underline; }

/* ---- Indice degli argomenti ---------------------------------------- */
.topic-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

.topic-card {
  display: block;
  padding: 26px 26px 22px;
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
  background: var(--color-paper);
  text-decoration: none;
  transition: var(--transition);
}
.topic-card:hover { border-color: var(--color-brand); background: var(--color-brand-tint); }
.topic-card h2 { font-size: 21px; font-weight: 400; margin: 0 0 8px; color: var(--color-ink); }
.topic-card-desc { font-size: 15px; line-height: 1.6; color: var(--color-ink-soft); margin: 0 0 12px; }
.topic-card-count {
  font-family: var(--font-sans);
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--color-brass);
  margin: 0;
}

/* ---- Indice degli autori ------------------------------------------- */
.author-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 18px;
}

.author-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  padding: 24px 18px;
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-sm);
  background: var(--color-paper);
  text-decoration: none;
  transition: var(--transition);
}
.author-card:hover { border-color: var(--color-brand); }
.author-card-photo {
  width: 68px; height: 68px; border-radius: 50%; overflow: hidden;
  background: var(--color-paper-alt);
}
.author-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.author-card-name { font-size: 16.5px; color: var(--color-ink); }
.author-card-count {
  font-family: var(--font-sans);
  font-size: 11.5px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--color-muted);
}

/* ---- Pagine editoriali (guide, approfondimenti, pagine di servizio) - */
.editorial-head { margin-bottom: 30px; }
.editorial-head h1 { margin: 6px 0 14px; }
.editorial-topics { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.editorial-byline {
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.4px;
  color: var(--color-muted);
  margin: 0;
}

.editorial-media { margin: 0 0 32px; }
.editorial-media img { width: 100%; height: auto; border-radius: var(--radius-sm); }

.editorial-body { font-size: 17.5px; line-height: 1.78; color: var(--color-ink); }
.editorial-body h2 { font-size: 26px; font-weight: 400; margin: 42px 0 14px; }
.editorial-body h3 { font-size: 21px; font-weight: 400; margin: 32px 0 10px; }
.editorial-body p { margin: 0 0 20px; }
.editorial-body ul,
.editorial-body ol { margin: 0 0 22px 22px; }
.editorial-body li { margin-bottom: 8px; }
.editorial-body a { color: var(--color-brand-deep); text-decoration: underline; }
.editorial-body blockquote {
  margin: 30px 0;
  padding-left: 22px;
  border-left: 3px solid var(--color-brand);
  color: var(--color-ink-soft);
  font-style: italic;
}

/* ---- Footer a colonne ---------------------------------------------- */
.footer-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 32px;
  margin: 8px 0 34px;
  text-align: left;
}
.footer-column-title {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--color-brass);
  margin: 0 0 12px;
}
.footer-column-title a { color: inherit; text-decoration: none; }
.footer-column ul { list-style: none; margin: 0; padding: 0; }
.footer-column li { margin-bottom: 8px; }
.footer-column a { font-size: 14.5px; color: var(--color-ink-soft); text-decoration: none; }
.footer-column a:hover { color: var(--color-brand-deep); }

/* ---- Pannello di ricerca ------------------------------------------- */
.fe-search-panel {
  position: fixed;
  top: 0; left: 0; right: 0;
  /* Sopra l'intestazione (z-index 1000): con un valore più basso il pannello
     si apriva dietro l'header e se ne vedeva solo l'ombra spuntare sotto. */
  z-index: 1500;
  padding: 18px 0;
  background: var(--color-paper);
  border-bottom: 1px solid var(--color-line);
  box-shadow: 0 8px 24px rgba(0,0,0,0.07);
}
.fe-search-panel form {
  display: flex;
  gap: 10px;
  align-items: center;
}
.fe-search-panel input[type="search"] {
  flex: 1;
  min-width: 0;
  padding: 13px 16px;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-xs, 4px);
  background: var(--color-paper);
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--color-ink);
}
.fe-search-panel input[type="search"]:focus { outline: none; border-color: var(--color-brand); }
.fe-search-close {
  border: 0;
  background: none;
  font-size: 26px;
  line-height: 1;
  color: var(--color-muted);
  cursor: pointer;
  padding: 0 6px;
}
.fe-search-close:hover { color: var(--color-ink); }

/* Con la barra di amministrazione WordPress il pannello finirebbe sotto di
   essa. */
.admin-bar .fe-search-panel { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .fe-search-panel { top: 46px; }
}

@media (max-width: 768px) {
  .content-card-media img { height: 150px; }
  .footer-columns { text-align: center; gap: 26px; }
  .fe-search-panel form { flex-wrap: wrap; }
  .fe-search-panel input[type="search"] { flex: 1 1 100%; }
}

/* ---- Biografia dell'autore nella scheda del libro -------------------
   Troncata: alcune biografie sono lunghe quanto la descrizione del libro e
   spostavano l'attenzione dal libro all'autore. Chi vuole il resto lo trova
   nella pagina dell'autore, che è il posto giusto per quel testo. */
.book-author-bio-more {
  display: inline-block;
  margin-top: 6px;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-brand-deep);
  text-decoration: none;
}
.book-author-bio-more::after { content: " →"; }
.book-author-bio-more:hover { text-decoration: underline; }

/* ============================================
   APERTURA E FASCIA ARGOMENTI
   ============================================ */

/* Titolo un po' più grande e con meno interlinea: in apertura la prima riga
   deve arrivare prima del resto, non allinearsi al corpo del testo. */
.hero h1 { line-height: 1.08; letter-spacing: -0.015em; }
.hero .hero-lede { font-size: 18px; line-height: 1.7; max-width: 56ch; }

.hero .btn-group { margin-top: 30px; }
.btn-lg { padding: 15px 30px; font-size: 15.5px; }

/* La barra di fiducia era una riga di testo fra le altre. Ora è staccata da
   una linea e distanziata: si legge dopo i pulsanti, non insieme a loro. */
.hero .trust-bar {
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid var(--color-line-soft);
  gap: 10px 26px;
}

/* Fascia degli argomenti fra apertura e catalogo. Bassa di proposito: è un
   passaggio, non una sezione — deve far scorrere avanti, non fermare. */
.section-topics {
  padding: 26px 0;
  background: var(--color-paper);
  border-top: 1px solid var(--color-line-soft);
  border-bottom: 1px solid var(--color-line-soft);
}

.section-topics-label {
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0 0 14px;
}

.topic-row { display: flex; flex-wrap: wrap; gap: 9px; }

.topic-pill {
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  background: var(--color-paper);
  font-family: var(--font-sans);
  font-size: 14px;
  color: var(--color-ink);
  text-decoration: none;
  transition: var(--transition);
}
.topic-pill:hover {
  border-color: var(--color-brand);
  background: var(--color-brand-tint);
  color: var(--color-brand-deep);
}
.topic-pill-all {
  border-style: dashed;
  color: var(--color-brand-deep);
}

@media (max-width: 768px) {
  .hero { padding: 56px 0 48px; }
  .hero .trust-bar { margin-top: 26px; padding-top: 18px; }
  .section-topics { padding: 20px 0; }
  .topic-pill { font-size: 13.5px; padding: 8px 14px; }
}

/* ============================================
   VIDEOGUIDE
   ============================================ */

/* Le immagini dei videocorsi sono orizzontali, quelle dei libri verticali.
   Il 2:3 fisso delle copertine le ritaglierebbe a metà, quindi per le
   videoguide il contenitore prende le proporzioni dell'immagine: si adatta
   lui, invece di costringere l'immagine. */
/* Nella scheda l'immagine si vede intera: le copertine dei videocorsi non
   hanno proporzioni fisse — c'è di tutto, dal 16:9 al quadrato — e qualunque
   rapporto imposto ne taglierebbe una parte. Il contenitore prende l'altezza
   dall'immagine invece di ritagliarla. */
.book-detail-cover.is-video {
  aspect-ratio: auto;
  height: auto;
  background: none;
  box-shadow: none;
}
.book-detail-cover.is-video .book-cover-image {
  position: static;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm, 0 10px 30px rgba(0,0,0,0.10));
}

/* In griglia invece l'altezza fissa serve, altrimenti le card della stessa
   riga partono a altezze diverse: qui si riempie il riquadro senza tagliare
   il soggetto, che nelle copertine dei corsi sta al centro. */
.book-cover.is-video {
  aspect-ratio: 16 / 10;
  box-shadow: var(--shadow-sm, 0 8px 24px rgba(0,0,0,0.08));
}
.book-cover.is-video .book-cover-image {
  object-fit: contain;
  background: var(--color-paper-alt);
}

/* Nella scheda l'immagine non ha bisogno del dorso e della rotazione: non è
   un libro appoggiato, è un fotogramma. */
.book-detail-cover.is-video::before,
.book-detail-cover.is-video::after { display: none; }

/* Etichetta di formato sulla copertina, così in griglia si distingue a colpo
   d'occhio un videocorso da un libro senza doverlo leggere. */
.book-cover-formato {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(17, 24, 20, 0.82);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.4px;
}

/* ---- Anteprima video nella scheda ---- */
.video-preview {
  margin: 0 0 30px;
}
.video-preview video {
  width: 100%;
  max-height: 520px;
  display: block;
  background: #000;
  border-radius: var(--radius-sm);
}
.video-preview figcaption {
  margin-top: 8px;
  font-family: var(--font-sans);
  font-size: 12.5px;
  letter-spacing: 0.3px;
  color: var(--color-muted);
}

/* ---- Durata sulle card ---- */
.book-durata {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* Sezione videoguide in home: stessa impostazione di quella degli
   audiolibri, tinta diversa per non sembrare la stessa cosa due volte. */
.section-video {
  background: linear-gradient(180deg, var(--color-paper-alt) 0%, transparent 70%);
  border-top: 1px solid var(--color-line-soft);
}
.kicker-video { display: inline-flex; align-items: center; gap: 7px; }
.kicker-video svg { color: var(--color-brand); }
.section-header .kicker-video::before { display: none; }

/* Sottocategorie elencate nella scheda dell'argomento: dicono in una riga
   che cosa c'è dentro, senza obbligare ad aprire per scoprirlo. */
.topic-card-figli {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--color-muted);
  margin: 0 0 12px;
}


/* ================================================================
   1.15.3 — HOMEPAGE EDITORIALE, ispirata al nuovo art direction Filo
   ================================================================ */
.home .site-header { background: rgba(250,248,242,.97); border-bottom-color: #e8dfd0; }
.home .header-inner { height: 70px; }

.home-hero {
  position: relative; overflow: hidden; padding: 0;
  background: linear-gradient(110deg, #fbf4eb 0%, #f8efe5 52%, #efe4d5 100%);
}
.home-hero::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(50% 90% at 86% 30%, rgba(171,124,52,.12), transparent 65%);
}
.home-hero-background { position:absolute; inset:0; z-index:0; display:block; }
.home-hero-background img { width:100%; height:100%; display:block; object-fit:cover; object-position:center center; }
.home-hero-background-overlay { position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(251,244,235,.98) 0%, rgba(251,244,235,.92) 24%, rgba(251,244,235,.58) 42%, rgba(251,244,235,.12) 62%, rgba(251,244,235,0) 76%), linear-gradient(180deg, rgba(251,244,235,.05) 0%, rgba(251,244,235,0) 28%, rgba(251,244,235,.06) 100%);
}
.home-hero.has-custom-bg { min-height: max(540px, 37.5vw); }
.home-hero.has-custom-bg .container { position:relative; z-index:2; min-height: max(540px, 37.5vw); display:flex; align-items:center; }
.home-hero.has-custom-bg .home-hero-copy { max-width:650px; padding:64px 0 56px; }
.home-hero.has-custom-bg .home-hero-background img { object-position:center center; }
.home-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns: 1.02fr .98fr; gap:56px; align-items:center; min-height:430px; padding:52px 0 34px; }
.home-hero-copy { max-width:680px; }
.home-eyebrow, .home-kicker {
  font-family:var(--font-sans); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  font-weight:700; color:var(--color-brand); margin-bottom:12px;
}
.home-eyebrow { margin-bottom:16px; }
.home-hero h1 { font-size:clamp(44px,5.5vw,72px); line-height:1.01; font-weight:400; letter-spacing:-.035em; max-width:12.5ch; margin-bottom:20px; }
.home-hero h1 em { font-style:normal; color:var(--color-brand); }
.hero-title-mobile, .hero-lede-mobile { display:none; }
.home-hero-copy > p { font-size:18px; line-height:1.65; color:var(--color-ink-soft); max-width:54ch; margin-bottom:26px; }
.home-hero-actions { margin-top:0 !important; }
.home-hero-actions .btn { min-height:48px; }
.home-hero-art { position:relative; min-height:420px; display:flex; align-items:center; justify-content:center; }
.home-book-pile { position:relative; width:min(560px,100%); height:390px; }
.home-pile-item { position:absolute; width:180px; transition:transform .25s ease; }
.home-pile-item .book-cover { margin-bottom:0; box-shadow:0 16px 34px rgba(79,51,30,.18); }
.home-pile-0 { left:12%; top:62px; z-index:4; transform:rotate(-4deg); }
.home-pile-1 { left:29%; top:24px; z-index:5; transform:rotate(-1deg); }
.home-pile-2 { left:47%; top:44px; z-index:3; transform:rotate(3deg); }
.home-pile-3 { left:62%; top:10px; z-index:2; transform:rotate(6deg); }
.home-pile-4 { left:27%; top:122px; z-index:1; transform:rotate(-8deg); opacity:.92; }
.home-pile-item:hover { transform:translateY(-8px) rotate(0deg); z-index:9; }
.home-pile-note { position:absolute; z-index:7; background:#f7efe3; padding:9px 16px; font-family:var(--font-sans); font-size:13px; box-shadow:0 8px 22px rgba(79,51,30,.08); }
.note-1 { top:12px; left:40%; transform:rotate(-2deg); }
.note-2 { top:92px; right:0; transform:rotate(2deg); }
.note-3 { bottom:44px; left:45%; transform:rotate(-2deg); }
.note-4 { bottom:6px; right:3%; transform:rotate(2deg); font-size:11px; }
.home-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:30px; padding-top:20px; border-top:1px solid rgba(125,31,61,.14); }
.home-trust-grid div { display:grid; grid-template-columns:22px 1fr; column-gap:9px; align-items:start; }
.home-trust-icon { grid-row:span 2; color:var(--color-brand); font-size:19px; line-height:1; }
.home-trust-grid strong { font-size:12px; font-weight:600; line-height:1.35; }
.home-trust-grid small { font-size:11px; color:var(--color-muted); line-height:1.35; }
.home-hero-mobile-trust { display:none; }
.home-hero-mobile-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:18px 0 20px; }
.home-hero-mobile-trust-grid > div { display:grid; grid-template-columns:20px 1fr; column-gap:8px; align-items:start; }
.home-hero-mobile-trust-grid strong { font-size:12px; line-height:1.35; font-weight:600; }

.home-topics { padding:28px 0 34px; background:var(--color-paper); border-bottom:1px solid var(--color-line-soft); }
.home-section-heading-inline { display:flex; justify-content:space-between; gap:28px; align-items:flex-end; }
.home-section-heading h2 { font-size:clamp(28px,3.3vw,38px); font-weight:400; line-height:1.12; letter-spacing:-.02em; margin-bottom:9px; }
.home-section-heading p { color:var(--color-muted); max-width:650px; font-size:15px; }
.home-text-link { color:var(--color-brand); font-size:13px; font-weight:700; white-space:nowrap; padding-bottom:6px; }
.home-text-link span { display:inline-block; transition:transform .2s; }
.home-text-link:hover span { transform:translateX(4px); }
.home-topic-grid { display:grid; grid-template-columns:repeat(9,1fr); gap:10px; margin-top:22px; }
.home-topic-card { min-height:86px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:12px; background:#f7f4ee; border:1px solid #ece6da; border-radius:8px; text-align:center; font-family:var(--font-serif); font-size:14px; line-height:1.18; }
.home-topic-card:hover { background:#fffaf4; border-color:#d7c4ab; transform:translateY(-2px); }
.home-topic-icon { font-family:Georgia,serif; font-size:23px; line-height:1; color:var(--color-brand); }

.home-books { padding-top:54px; }
.home-books .home-section-heading { margin-bottom:28px; }
.home-book-grid { grid-template-columns:repeat(6,1fr); gap:26px 18px; }
.home .home-book-grid .book-card p,
.home .home-book-grid .book-card-link { display:none; }
.home .home-book-grid .book-card h3 { font-size:15px; line-height:1.25; margin-bottom:4px; }
.home .home-book-grid .book-card .book-meta { font-size:11px; margin-bottom:5px; }
.book-card-author { font-size:12px; color:var(--color-muted); line-height:1.35; }

.home-hubs { padding-top:18px; }
.home-hub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.home-hub-card { position:relative; min-height:230px; overflow:hidden; border-radius:8px; background:linear-gradient(135deg,#f0e1da,#eee8dd); }
.home-hub-card:hover .home-hub-image { transform:scale(1.03); }
.home-hub-image { position:absolute; inset:0; background-position:center; background-size:cover; transition:transform .45s ease; }
.home-hub-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(30,20,20,.04) 20%,rgba(40,20,20,.78) 100%); }
.home-hub-content { position:absolute; inset:auto 24px 22px; z-index:2; color:#fff; display:flex; flex-direction:column; }
.home-hub-content .home-kicker { color:rgba(255,255,255,.8); margin-bottom:7px; }
.home-hub-content strong { font-family:var(--font-display); font-size:28px; line-height:1.07; font-weight:400; margin-bottom:8px; max-width:12ch; }
.home-hub-content > span:not(.home-kicker) { font-size:13px; line-height:1.5; max-width:38ch; color:rgba(255,255,255,.84); }
.home-hub-content small { margin-top:12px; font-size:12px; font-weight:700; }
.home-hub-audiolibro { background:linear-gradient(135deg,#e3d4c8,#cdb8a8); }
.home-hub-videoguida { background:linear-gradient(135deg,#dbe3df,#bec8c0); }
.home-hub-approfondimento { background:linear-gradient(135deg,#eee1d8,#dac5b9); }

.home-featured { background:linear-gradient(180deg,#fbfaf6 0%,#f6eee8 100%); overflow:hidden; }
.home-featured-wrap { position:relative; display:grid; grid-template-columns:290px 1fr 190px; gap:54px; align-items:center; min-height:420px; }
.home-featured-cover .book-cover { width:260px; margin:0 auto; box-shadow:0 20px 40px rgba(79,51,30,.18); }
/* La cover reale del libro in evidenza deve essere visibile per intero,
   anche quando la sorgente esterna ha proporzioni diverse dal 2:3. */
.home-featured-cover .book-cover.has-real-cover {
  aspect-ratio:auto;
  height:auto;
  padding:12px;
  background:var(--color-paper);
}
.home-featured-cover .book-cover.has-real-cover .book-cover-image {
  position:static;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
  object-position:center center;
  border-radius:var(--radius-xs);
}
.home-featured-copy h2 { font-size:clamp(32px,4vw,48px); font-weight:400; line-height:1.05; letter-spacing:-.03em; margin-bottom:8px; }
.home-featured-author { font-family:var(--font-serif); font-size:16px; color:var(--color-brand); margin-bottom:12px; }
.home-featured-copy > p { max-width:56ch; color:var(--color-ink-soft); line-height:1.7; margin-bottom:22px; }
.home-featured-quote { padding:15px 18px; background:rgba(255,255,255,.55); border:1px solid rgba(125,31,61,.08); border-radius:8px; font-family:var(--font-serif); font-size:16px; line-height:1.5; margin-bottom:20px; max-width:56ch; }
.home-featured-note { font-family:var(--font-serif); font-style:italic; color:var(--color-brand); font-size:27px; line-height:1.1; transform:rotate(-4deg); }
.home-featured-leaf { position:absolute; color:#d6c0ae; font-family:Georgia,serif; font-size:140px; opacity:.45; left:-70px; bottom:-70px; }

.home-newsletter { padding:32px 0; background:var(--color-brand-deep); color:#fff; }
.home-newsletter-inner { display:grid; grid-template-columns:1fr .9fr; gap:48px; align-items:center; }
.home-newsletter .home-kicker { color:rgba(255,255,255,.7); }
.home-newsletter h2 { color:#fff; font-size:clamp(27px,3.4vw,40px); line-height:1.1; font-weight:400; margin-bottom:8px; }
.home-newsletter p { color:rgba(255,255,255,.74); font-size:14px; }
.home-newsletter-form .newsletter-form { display:flex; gap:10px; }
.home-newsletter-form input { min-height:48px; background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.22); border-radius:6px; padding:0 16px; flex:1; }
.home-newsletter-form input::placeholder { color:rgba(255,255,255,.52); }
.home-newsletter-form .btn-accent { min-height:48px; }

.home-values { padding:58px 0 74px; }
.home-values .home-section-heading { margin-bottom:32px; }
.home-values-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.home-values-grid > div { text-align:center; }
.home-value-icon { display:block; color:var(--color-brand); font-size:26px; margin-bottom:12px; }
.home-values-grid strong { display:block; font-family:var(--font-serif); font-size:18px; margin-bottom:7px; }
.home-values-grid p { color:var(--color-muted); font-size:13px; line-height:1.55; }

.home .site-footer { background:#f3ebdd; }
.home .site-footer .container { padding-top:40px; padding-bottom:40px; }
.home .footer-wordmark { margin-bottom:18px; }

@media (max-width:1100px) {
  .home-topic-grid { grid-template-columns:repeat(5,1fr); }
  .home-book-grid { grid-template-columns:repeat(4,1fr); }
  .home-hero-grid { grid-template-columns:1fr .8fr; gap:28px; }
  .home-pile-item { width:160px; }
  .home-trust-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:780px) {
  .home-hero {
    min-height:0;
    padding:0;
    position:relative;
    overflow:hidden;
    background:#fbf4eb;
  }
  .home-hero::before { background:none; }
  .home-hero.has-custom-bg {
    min-height:0;
    height:auto;
    aspect-ratio:2 / 3;
    position:relative;
    isolation:isolate;
  }
  .home-hero.has-custom-bg .home-hero-background {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:0;
    overflow:hidden;
  }
  .home-hero.has-custom-bg .home-hero-background img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center center;
  }
  .home-hero.has-custom-bg .home-hero-background-overlay {
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(90deg, rgba(251,244,235,.96) 0%, rgba(251,244,235,.93) 42%, rgba(251,244,235,.67) 60%, rgba(251,244,235,.18) 76%, rgba(251,244,235,0) 100%);
  }
  .home-hero.has-custom-bg .container {
    min-height:0;
    height:100%;
    display:flex;
    align-items:flex-start;
    position:relative;
    z-index:2;
  }
  .home-hero.has-custom-bg .home-hero-copy {
    width:68%;
    max-width:330px;
    padding:52px 0 34px;
  }
  .hero-title-desktop, .hero-lede-desktop { display:none; }
  .hero-title-mobile, .hero-lede-mobile { display:inline; }
  .home-eyebrow {
    font-size:10px;
    line-height:1.45;
    letter-spacing:.13em;
    margin-bottom:18px;
  }
  .home-hero h1 {
    font-size:29px;
    line-height:1.03;
    max-width:19ch;
    margin-bottom:16px;
    letter-spacing:-.035em;
  }
  .home-hero-copy > p {
    font-size:14px;
    line-height:1.48;
    max-width:32ch;
    margin-bottom:22px;
    color:#30404b;
  }
  .home-hero-actions {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    width:100%;
    max-width:300px;
  }
  .home-hero-actions .btn {
    width:100%;
    min-width:0;
    min-height:46px;
    justify-content:center;
    padding:11px 16px;
    line-height:1.15;
  }
  .home-trust-grid { display:none; }
  .home-hero-mobile-trust {
    display:block;
    background:#fbf4eb;
    border-top:1px solid rgba(125,31,61,.12);
    border-bottom:1px solid var(--color-line-soft);
  }
  .home-hero-mobile-trust-grid {
    grid-template-columns:1fr 1fr;
    gap:12px 18px;
    padding:16px 0 18px;
  }
  .home-hero-mobile-trust-grid > div {
    grid-template-columns:18px 1fr;
    column-gap:8px;
  }
  .home-hero-mobile-trust-grid > div:nth-child(3) {
    grid-column:1 / -1;
    justify-self:start;
    max-width:100%;
  }
  .home-hero-mobile-trust-grid strong {
    font-size:11px;
    line-height:1.3;
  }
  .home-hero-grid {
    grid-template-columns:1fr;
    min-height:0;
  }
  .home-hero-art { min-height:300px; margin-top:-10px; }
  .home-book-pile { height:300px; }
  .home-pile-item { width:126px; }
  .home-pile-0 { left:8%; top:52px; }
  .home-pile-1 { left:27%; top:20px; }
  .home-pile-2 { left:45%; top:44px; }
  .home-pile-3 { left:60%; top:16px; }
  .home-pile-4 { left:22%; top:112px; }
  .home-section-heading-inline { align-items:flex-start; flex-direction:column; gap:12px; }
  .home-topic-grid { grid-template-columns:repeat(3,1fr); }
  .home-book-grid { grid-template-columns:repeat(3,1fr); }
  .home-hub-grid { grid-template-columns:1fr; }
  .home-featured-wrap { grid-template-columns:220px 1fr; gap:28px; }
  .home-featured-note { display:none; }
  .home-featured-cover .book-cover { width:200px; }
  .home-newsletter-inner { grid-template-columns:1fr; gap:20px; }
  .home-values-grid { grid-template-columns:repeat(2,1fr); gap:28px 20px; }
}

@media (max-width:560px) {
  .home-hero.has-custom-bg {
    aspect-ratio:2 / 3;
  }
  .home-hero.has-custom-bg .home-hero-background img {
    object-position:center center;
  }
  .home-hero.has-custom-bg .home-hero-copy {
    width:68%;
    max-width:300px;
    padding-top:48px;
  }
  .home-hero h1 {
    font-size:28px;
    max-width:19ch;
  }
  .home-hero-copy > p {
    font-size:13.5px;
    max-width:31ch;
  }
  .home-topic-grid { grid-template-columns:repeat(2,1fr); }
  .home-book-grid { grid-template-columns:repeat(2,1fr); }
  .home-featured-wrap { grid-template-columns:1fr; text-align:center; }
  .home-featured-copy > p, .home-featured-quote { margin-left:auto; margin-right:auto; }
  .home-newsletter-form .newsletter-form { flex-direction:column; }
  .home-values-grid { grid-template-columns:1fr; }
}

/* ============================================
   EXIT NEWSLETTER POPUP — 1.17.2
   ============================================ */
.fe-exit-popup {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.fe-exit-popup.is-open { display: flex; }
.fe-exit-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(34,18,22,.58);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.fe-exit-popup-dialog {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  padding: 44px 44px 40px;
  border: 1px solid rgba(104,14,43,.14);
  border-radius: 14px;
  background: var(--color-paper);
  box-shadow: 0 28px 90px rgba(26,14,18,.26);
  text-align: left;
}
.fe-exit-popup-kicker {
  margin-bottom: 10px;
  color: var(--color-brand-deep);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
}
.fe-exit-popup-dialog h2 {
  max-width: 460px;
  margin: 0 0 14px;
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.08;
  font-weight: 400;
}
.fe-exit-popup-text {
  max-width: 490px;
  margin: 0 0 24px;
  color: var(--color-ink-soft);
  font-size: 16px;
  line-height: 1.62;
}
.fe-exit-popup-fields {
  display: flex;
  gap: 8px;
}
.fe-exit-popup-fields input {
  flex: 1 1 auto;
  min-width: 0;
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--color-line);
  border-radius: 7px;
  background: #fff;
  color: var(--color-ink);
  font: inherit;
  outline: 0;
}
.fe-exit-popup-fields input:focus {
  border-color: var(--color-brand);
  box-shadow: 0 0 0 3px rgba(104,14,43,.08);
}
.fe-exit-popup-fields button {
  flex: 0 0 auto;
  min-width: 124px;
  height: 52px;
  padding: 0 20px;
  border-radius: 7px;
  background: var(--color-brand-deep);
  color: #fff;
  font-weight: 700;
}
.fe-exit-popup-fields button:hover { opacity: .92; }
.fe-exit-popup-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: var(--color-ink-soft);
  font-size: 28px;
  line-height: 1;
}
.fe-exit-popup-close:hover { background: var(--color-paper-alt); color: var(--color-brand-deep); }
.fe-exit-popup-note {
  margin-top: 10px;
  color: var(--color-muted);
  font-size: 12px;
}
.fe-exit-popup-form .lead-message { margin-top: 12px; }
body.fe-popup-open { overflow: hidden; }

@media (max-width: 640px) {
  .fe-exit-popup { padding: 14px; align-items: flex-end; }
  .fe-exit-popup-dialog {
    width: 100%;
    padding: 34px 22px 24px;
    border-radius: 16px;
    margin-bottom: env(safe-area-inset-bottom);
  }
  .fe-exit-popup-dialog h2 { font-size: 30px; }
  .fe-exit-popup-text { font-size: 15px; }
  .fe-exit-popup-fields { display: grid; grid-template-columns: 1fr; }
  .fe-exit-popup-fields input,
  .fe-exit-popup-fields button { width: 100%; }
}

.fe-exit-popup-continue {
  display: inline-block;
  margin-top: 8px;
  padding: 0;
  color: var(--color-muted);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.fe-exit-popup-continue:hover { color: var(--color-brand-deep); }


/* Catalogo: quando un genere è filtrato, la sua intestazione è già mostrata sopra.
   Manteniamo una sola gerarchia visiva senza il kicker ridondante. */
.genre-section-head-filtered {
  margin-top: 0;
}
.genre-section-head-filtered h2 {
  margin-top: 0;
}

/* =========================================================
   PAGINA CONTATTI
   ========================================================= */
.contact-hero {
  padding: 58px 0 50px;
  border-bottom: 1px solid var(--color-line);
  background: var(--color-paper);
}
.contact-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 64px;
  align-items: end;
}
.contact-hero-copy h1 {
  max-width: 12ch;
  margin-bottom: 16px;
  font-size: clamp(40px, 5.6vw, 64px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.035em;
}
.contact-hero-lede {
  max-width: 690px;
  margin: 0;
  color: var(--color-muted);
  font-size: 18px;
  line-height: 1.68;
}
.contact-hero-note {
  padding: 28px 30px;
  border: 1px solid var(--color-line);
  background: var(--color-paper-alt);
  box-shadow: var(--shadow-sm);
}
.contact-note-kicker,
.contact-side-kicker,
.contact-form-kicker {
  display: block;
  margin-bottom: 10px;
  color: var(--color-brand);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.15px;
  text-transform: uppercase;
}
.contact-hero-note strong {
  display: block;
  margin-bottom: 7px;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.2;
}
.contact-hero-note p,
.contact-side-block p,
.contact-side-item p,
.contact-bottom-card p {
  color: var(--color-muted);
  font-size: 14.5px;
  line-height: 1.7;
}
.contact-main-section { padding-top: 70px; padding-bottom: 68px; }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr);
  gap: 58px;
  align-items: start;
}
.contact-sidebar { padding-top: 8px; }
.contact-side-block + .contact-side-block { margin-top: 50px; }
.contact-side-block h2 {
  max-width: 12ch;
  margin-bottom: 14px;
  font-size: clamp(28px, 3.8vw, 40px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.025em;
}
.contact-side-list { border-top: 1px solid var(--color-line); }
.contact-side-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  padding: 20px 0;
  border-bottom: 1px solid var(--color-line);
}
.contact-side-number {
  color: var(--color-brand);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .8px;
}
.contact-side-item strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 400;
}
.contact-side-item p { margin: 0; font-size: 13.5px; }
.contact-form-card {
  padding: 34px 36px 38px;
  border: 1px solid var(--color-line);
  background: #fff;
  box-shadow: var(--shadow-md);
}
.contact-form-heading {
  margin-bottom: 28px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--color-line);
}
.contact-form-heading h2 {
  margin-bottom: 8px;
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -.025em;
}
.contact-form-heading p { margin: 0; color: var(--color-muted); font-size: 14.5px; line-height: 1.65; }
.contact-form-content > *:first-child { margin-top: 0; }
.contact-form-content > *:last-child { margin-bottom: 0; }
.contact-form-content .wpforms-container { margin: 0 !important; }
.contact-form-content .wpforms-field-label { font-weight: 600; color: var(--color-ink); }
.contact-form-content .wpforms-field-description { color: var(--color-muted); }
.contact-form-content .wpforms-field input,
.contact-form-content .wpforms-field textarea,
.contact-form-content .wpforms-field select {
  border-color: var(--color-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
}
.contact-form-content .wpforms-submit-container { margin-top: 8px; }
.contact-form-content .wpforms-submit {
  min-height: 48px;
  padding: 12px 22px !important;
  border: 1px solid var(--color-brand-deep) !important;
  border-radius: 0 !important;
  background: var(--color-brand-deep) !important;
  color: var(--color-paper) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .2px;
}
.contact-form-content .wpforms-submit:hover { background: var(--color-brand) !important; border-color: var(--color-brand) !important; }
.contact-bottom-section { padding: 0 0 84px; }
.contact-bottom-card {
  display: flex;
  justify-content: space-between;
  gap: 34px;
  align-items: center;
  padding: 34px 38px;
  background: var(--color-brand-deep);
  color: var(--color-paper);
}
.contact-bottom-card h2 {
  color: var(--color-paper);
  max-width: 17ch;
  margin-bottom: 8px;
  font-size: clamp(25px, 3vw, 35px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.025em;
}
.contact-bottom-card .contact-side-kicker { color: rgba(250,248,242,.72); }
.contact-bottom-card p { max-width: 640px; margin: 0; color: rgba(250,248,242,.76); }
.contact-bottom-card .btn-group { flex: 0 0 auto; }
.contact-bottom-card .btn-outline { color: var(--color-paper); border-color: rgba(250,248,242,.35); }
.contact-bottom-card .btn-outline:hover { background: rgba(250,248,242,.09); border-color: rgba(250,248,242,.55); }

@media (max-width: 900px) {
  .contact-hero-grid,
  .contact-layout { grid-template-columns: 1fr; gap: 34px; }
  .contact-hero { padding-top: 44px; }
  .contact-hero-copy h1 { max-width: none; }
  .contact-side-block + .contact-side-block { margin-top: 34px; }
  .contact-bottom-card { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 640px) {
  .contact-hero { padding: 34px 0 32px; }
  .contact-hero-lede { font-size: 16px; }
  .contact-hero-note { padding: 22px 20px; }
  .contact-main-section { padding-top: 44px; padding-bottom: 44px; }
  .contact-form-card { padding: 24px 18px 26px; box-shadow: var(--shadow-sm); }
  .contact-form-heading { margin-bottom: 22px; padding-bottom: 18px; }
  .contact-bottom-section { padding-bottom: 52px; }
  .contact-bottom-card { padding: 26px 20px; }
  .contact-bottom-card .btn-group { width: 100%; }
  .contact-bottom-card .btn-group .btn { width: 100%; justify-content: center; }
}


/* Card audiolibro nel catalogo: la copertina resta quella originale del libro,
   ma badge + play rendono immediatamente riconoscibile il formato audio. */
.audiobook-card .book-card-audio-media { display:block; text-decoration:none; }
.audiobook-card .audiobook-cover { position:relative; overflow:hidden; }
.audiobook-card .audiobook-card-badge {
  position:absolute; left:10px; top:10px; z-index:5;
  display:inline-flex; align-items:center; gap:5px;
  padding:6px 9px; border-radius:999px;
  background:rgba(92,17,45,.94); color:#fff;
  font-family:var(--font-sans); font-size:10px; font-weight:700;
  letter-spacing:.08em; line-height:1;
}
.audiobook-card .audiobook-card-play {
  position:absolute; left:50%; top:50%; z-index:5;
  width:54px; height:54px; transform:translate(-50%,-50%);
  display:grid; place-items:center; border-radius:50%;
  background:rgba(255,255,255,.96); color:var(--color-brand-deep);
  box-shadow:0 8px 24px rgba(0,0,0,.20);
  transition:transform .18s ease, background .18s ease;
}
.audiobook-card .audiobook-card-play svg { margin-left:3px; }
.audiobook-card:hover .audiobook-card-play,
.audiobook-card:focus-within .audiobook-card-play { transform:translate(-50%,-50%) scale(1.08); }
.audiobook-card .book-card-format-label {
  margin-left:7px; padding-left:7px; border-left:1px solid var(--color-line-soft);
  color:var(--color-brand-deep); font-weight:700; letter-spacing:.04em;
}
.audiobook-card .book-card-link { font-weight:700; }
@media (max-width: 600px) {
  .audiobook-card .audiobook-card-badge { left:8px; top:8px; font-size:9px; padding:5px 8px; }
  .audiobook-card .audiobook-card-play { width:48px; height:48px; }
}

/* ================================================================
   SEZIONI AUDIO NELLE PAGINE ARGOMENTO/AUTORE
   Il blocco "Disponibili anche in audio" deve distinguersi dal
   normale elenco libri, pur mantenendo la copertina originale.
   ================================================================ */
.hub-block-audio {
  margin-top: 48px;
  padding: 34px 32px 38px;
  border: 1px solid var(--color-line-soft);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(248, 239, 232, .92), rgba(255, 251, 247, .98));
}
.hub-block-audio .section-header {
  margin-bottom: 26px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--color-line-soft);
}
.hub-block-audio .section-header h2 {
  margin-bottom: 0;
}
.hub-block-audio .books-grid {
  margin-top: 0;
}
.hub-block-audio .audiobook-card {
  background: transparent;
}
.hub-block-audio .audiobook-card .book-card-body {
  padding-left: 2px;
  padding-right: 2px;
}
@media (max-width: 760px) {
  .hub-block-audio { padding: 24px 18px 28px; }
}

/* ---- Pagina Autore Premium ---------------------------------------- */
.fe-author-premium-hero {
  padding: 108px 0 92px;
  background: var(--color-paper-alt);
  border-bottom: 1px solid var(--color-line);
}
.fe-author-premium-eyebrow,
.fe-author-premium-label,
.fe-author-premium-number,
.section-kicker {
  font-family: var(--font-sans);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 11px;
  font-weight: 700;
  color: var(--color-brand-deep);
}
.fe-author-premium-hero h1 {
  max-width: 900px;
  margin: 14px 0 24px;
  font-size: clamp(48px, 7vw, 84px);
  line-height: 1.02;
  font-weight: 400;
}
.fe-author-premium-hero h1 em { color: var(--color-brand-deep); }
.fe-author-premium-lede {
  max-width: 760px;
  margin: 0;
  font-size: 20px;
  line-height: 1.65;
  color: var(--color-ink-soft);
}
.fe-author-premium-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 34px;
  flex-wrap: wrap;
}
.fe-author-premium-text-link { color: var(--color-brand-deep); text-decoration: none; font-family: var(--font-sans); font-weight: 600; }
.fe-author-premium-intro h2,
.fe-author-premium-standard h2,
.fe-author-premium-process h2,
.fe-author-premium-final-cta h2 { max-width: 820px; font-size: clamp(32px, 4vw, 52px); line-height: 1.08; font-weight: 400; margin: 10px 0 20px; }
.fe-author-premium-intro p { max-width: 780px; font-size: 18px; line-height: 1.75; color: var(--color-ink-soft); }
.fe-author-premium-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.fe-author-premium-card { padding: 28px; background: var(--color-paper); border:1px solid var(--color-line-soft); border-radius: var(--radius-sm); min-height: 210px; }
.fe-author-premium-card h3 { margin: 18px 0 10px; font-size: 22px; font-weight: 400; }
.fe-author-premium-card p { margin:0; color:var(--color-ink-soft); line-height:1.65; }
.fe-author-premium-number { color: var(--color-brass); }
.fe-author-premium-compare { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:start; }
.fe-author-premium-compare-intro p { max-width: 640px; color: var(--color-ink-soft); font-size:18px; line-height:1.7; }
.fe-author-premium-compare-boxes { display:grid; gap:16px; }
.fe-author-premium-compare-box { padding:26px; border:1px solid var(--color-line); border-radius: var(--radius-sm); background:var(--color-paper); }
.fe-author-premium-compare-box.is-featured { border-color: var(--color-brand); box-shadow:0 12px 32px rgba(0,0,0,.05); }
.fe-author-premium-compare-box h3 { margin:10px 0 8px; font-size:21px; font-weight:400; }
.fe-author-premium-compare-box p { margin:0; color:var(--color-ink-soft); line-height:1.6; }
.fe-author-premium-price { padding-top: 40px; }
.fe-author-premium-price-box { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center; padding:42px; border-radius: var(--radius-sm); background: var(--color-brand-deep); color: #fff; }
.fe-author-premium-price-box .section-kicker { color: rgba(255,255,255,.82); }
.fe-author-premium-price-box h2 { margin:10px 0; font-size: clamp(32px,4vw,48px); font-weight:400; color:#fff; }
.fe-author-premium-price-box p { max-width:700px; margin:0; color:rgba(255,255,255,.84); line-height:1.65; }
.fe-author-premium-price-side { min-width:190px; text-align:center; }
.fe-author-premium-price-value { font-family:var(--font-serif); font-size:56px; line-height:1; }
.fe-author-premium-price-value span { font-size:30px; vertical-align:top; margin-left:2px; }
.fe-author-premium-price-note { margin:7px 0 18px; color:rgba(255,255,255,.7); font-family:var(--font-sans); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.fe-author-premium-price-box .btn-primary { background:#fff; color:var(--color-brand-deep); }
.fe-author-premium-note { margin:14px 0 0; font-family:var(--font-sans); font-size:12px; color:var(--color-muted); }
.fe-author-premium-steps { margin-top:30px; border-top:1px solid var(--color-line); }
.fe-author-premium-step { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--color-line); }
.fe-author-premium-step > span { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--color-paper-alt); color:var(--color-brand-deep); font-family:var(--font-sans); font-weight:700; }
.fe-author-premium-step h3 { margin:0 0 6px; font-size:21px; font-weight:400; }
.fe-author-premium-step p { margin:0; color:var(--color-ink-soft); line-height:1.65; }
.fe-author-premium-final-cta { padding-top:40px; }
.fe-author-premium-final-box { padding:52px; border:1px solid var(--color-line); background:var(--color-paper-alt); border-radius:var(--radius-sm); text-align:center; }
.fe-author-premium-final-box h2 { margin-left:auto; margin-right:auto; }
.fe-author-premium-final-box p { max-width:680px; margin:0 auto 26px; color:var(--color-ink-soft); font-size:18px; line-height:1.7; }
@media (max-width: 900px) {
  .fe-author-premium-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fe-author-premium-compare { grid-template-columns:1fr; gap:30px; }
  .fe-author-premium-price-box { grid-template-columns:1fr; }
  .fe-author-premium-price-side { text-align:left; }
}
@media (max-width: 640px) {
  .fe-author-premium-hero { padding: 78px 0 64px; }
  .fe-author-premium-hero h1 { font-size: 44px; }
  .fe-author-premium-lede { font-size:17px; }
  .fe-author-premium-grid { grid-template-columns:1fr; }
  .fe-author-premium-price-box,
  .fe-author-premium-final-box { padding:28px; }
  .fe-author-premium-price-value { font-size:48px; }
}

/* ============================================
   PUBBLICA CON FILO — Inserisci il tuo libro
   Integrato nel tema: nessun header/footer proprietario.
   ============================================ */
.fe-inserisci-libro { overflow: clip; }
.fe-inserisci-libro .fe-il-hero,
.fe-inserisci-libro .fe-il-section,
.fe-inserisci-libro .fe-il-final-cta { position: relative; }
.fe-inserisci-libro .fe-il-hero { background: var(--color-paper-alt); padding: 84px 0 90px; }
.fe-il-hero-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(320px, .96fr); gap: 64px; align-items: center; }
.fe-il-eyebrow { font-size: 11px; line-height: 1.3; text-transform: uppercase; letter-spacing: .15em; font-weight: 700; color: var(--color-brand); margin-bottom: 13px; }
.fe-il-hero h1,
.fe-il-section h2,
.fe-il-card h3,
.fe-il-step h3,
.fe-il-price-right h3,
.fe-il-faq summary,
.fe-il-final-cta h2 { font-family: var(--font-display); font-weight: 500; line-height: 1.1; color: var(--color-ink); }
.fe-il-hero h1 { font-size: clamp(44px, 5.2vw, 68px); margin-bottom: 24px; max-width: 760px; }
.fe-il-lead { max-width: 650px; font-size: 18px; color: var(--color-ink-soft); margin: 0 0 26px; }
.fe-il-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.fe-il-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: var(--radius-sm); padding: 13px 20px; font-size: 14px; font-weight: 700; text-decoration: none; transition: var(--transition); }
.fe-il-btn-primary { background: var(--color-brand); color: #fff; }
.fe-il-btn-primary:hover { background: var(--color-brand-deep); color: #fff; transform: translateY(-1px); }
.fe-il-btn-light { background: #fff; color: var(--color-brand); }
.fe-il-btn-light:hover { background: var(--color-brand-soft); color: var(--color-brand-deep); transform: translateY(-1px); }
.fe-il-note { color: var(--color-muted); font-size: 12px; }
.fe-il-hero-card { background: rgba(255,255,255,.72); border: 1px solid var(--color-line); box-shadow: var(--shadow-lg); padding: 34px; }
.fe-il-book-mock { position: relative; aspect-ratio: 4 / 5.8; max-width: 320px; margin: 0 auto; padding: 27px 24px; display: flex; flex-direction: column; justify-content: space-between; color: #fff; background: linear-gradient(145deg, #536b55, #a7ae70 56%, #f0c05e); box-shadow: 12px 16px 35px rgba(50,45,35,.18); overflow: hidden; }
.fe-il-book-mock::after { content: ""; position: absolute; inset: 10% 7% 8%; border: 1px solid rgba(255,255,255,.45); border-radius: 50% 50% 44% 44%; opacity: .65; }
.fe-il-book-top,
.fe-il-book-author,
.fe-il-book-center { position: relative; z-index: 2; }
.fe-il-book-top { font-size: 10px; letter-spacing: .18em; font-weight: 700; }
.fe-il-book-center { margin-top: auto; margin-bottom: auto; }
.fe-il-book-title { font-family: var(--font-serif); font-size: 34px; line-height: .95; font-weight: 700; }
.fe-il-book-subtitle { margin-top: 10px; font-size: 19px; line-height: 1.05; letter-spacing: .06em; font-weight: 800; }
.fe-il-book-author { font-size: 11px; letter-spacing: .18em; font-weight: 700; }
.fe-il-section { padding: 88px 0; }
.fe-il-section-head { max-width: 760px; margin-bottom: 48px; }
.fe-il-section-head h2 { font-size: clamp(38px, 4vw, 50px); margin-bottom: 15px; }
.fe-il-section-head p { margin: 0; color: var(--color-muted); font-size: 17px; }
.fe-il-center { margin-left: auto; margin-right: auto; text-align: center; }
.fe-il-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.fe-il-card { padding: 30px; background: #fff; border: 1px solid var(--color-line); box-shadow: var(--shadow-sm); }
.fe-il-number { font-family: var(--font-serif); font-size: 28px; color: var(--color-brand); margin-bottom: 8px; }
.fe-il-card h3 { font-size: 25px; margin-bottom: 10px; }
.fe-il-card p { color: var(--color-muted); font-size: 14px; margin: 0; }
.fe-il-pink { background: var(--color-brand-tint); }
.fe-il-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 58px; align-items: start; }
.fe-il-split h2 { font-size: clamp(38px,4vw,50px); margin-bottom: 18px; }
.fe-il-split > div > p { color: var(--color-muted); }
.fe-il-checklist { list-style: none; padding: 0; margin: 26px 0 0; }
.fe-il-checklist li { position: relative; padding: 12px 0 12px 30px; border-bottom: 1px solid rgba(125,31,61,.14); font-size: 15px; }
.fe-il-checklist li::before { content: "✓"; position: absolute; left: 0; top: 11px; color: var(--color-brand); font-weight: 800; }
.fe-il-quote { background: #fff; border: 1px solid var(--color-line); padding: 34px; font-family: var(--font-serif); color: var(--color-brand); font-size: 30px; line-height: 1.25; box-shadow: var(--shadow-sm); }
.fe-il-small-note { font-size: 14px; color: var(--color-muted); margin-top: 22px; }
.fe-il-pricing { background: var(--color-paper-alt); }
.fe-il-price-wrap { max-width: 930px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.35fr; box-shadow: var(--shadow-lg); }
.fe-il-price-left { background: var(--color-brand); color: #fff; padding: 44px; }
.fe-il-price-left .fe-il-eyebrow { color: #f2d9de; }
.fe-il-price { font-family: var(--font-display); font-size: 64px; line-height: 1; margin: 12px 0 16px; }
.fe-il-price span { font-size: .55em; vertical-align: top; margin-left: 4px; }
.fe-il-price-left p { color: #f2e5e7; font-size: 14px; margin-bottom: 26px; }
.fe-il-price-right { background: #fff; padding: 44px; }
.fe-il-price-right h3 { font-size: 29px; margin-bottom: 18px; }
.fe-il-price-right ul { margin: 0; padding-left: 20px; color: var(--color-ink-soft); }
.fe-il-price-right li { margin: 8px 0; }
.fe-il-process { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.fe-il-step { padding: 28px 22px; border-right: 1px solid var(--color-line); }
.fe-il-step:last-child { border-right: 0; }
.fe-il-step strong { display: block; margin-bottom: 8px; color: var(--color-brand); font-size: 11px; letter-spacing: .12em; }
.fe-il-step h3 { font-size: 22px; margin-bottom: 8px; }
.fe-il-step p { color: var(--color-muted); font-size: 13px; margin: 0; }
.fe-il-faq { background: #fff; }
.fe-il-faq-wrap { max-width: 900px; }
.fe-il-faq details { border-top: 1px solid var(--color-line); padding: 20px 0; }
.fe-il-faq details:last-child { border-bottom: 1px solid var(--color-line); }
.fe-il-faq summary { cursor: pointer; font-size: 21px; }
.fe-il-faq details p { color: var(--color-muted); font-size: 14px; margin: 13px 0 0; }
.fe-il-final-cta { background: var(--color-brand); color: #fff; text-align: center; padding: 82px 0; }
.fe-il-final-inner { max-width: 820px; }
.fe-il-final-cta .fe-il-eyebrow { color: #f0d5da; }
.fe-il-final-cta h2 { color: #fff; font-size: clamp(39px, 4.4vw, 52px); margin-bottom: 16px; }
.fe-il-final-cta p { max-width: 650px; margin: 0 auto 28px; color: #f3e4e7; }
.fe-il-final-note { margin-top: 14px; font-size: 12px; color: #ead8dc; }
@media (max-width: 900px) {
  .fe-il-hero-grid,.fe-il-split,.fe-il-price-wrap { grid-template-columns: 1fr; }
  .fe-il-cards { grid-template-columns: 1fr; }
  .fe-il-process { grid-template-columns: 1fr 1fr; }
  .fe-il-step:nth-child(2) { border-right: 0; }
  .fe-il-step { border-bottom: 1px solid var(--color-line); }
}
@media (max-width: 560px) {
  .fe-inserisci-libro .fe-il-hero { padding: 55px 0 62px; }
  .fe-il-hero h1 { font-size: 43px; }
  .fe-il-section { padding: 64px 0; }
  .fe-il-section-head h2,.fe-il-split h2 { font-size: 36px; }
  .fe-il-process { grid-template-columns: 1fr; }
  .fe-il-step,.fe-il-step:nth-child(2) { border-right: 0; }
  .fe-il-price-left,.fe-il-price-right,.fe-il-hero-card { padding: 30px; }
  .fe-il-book-mock { max-width: 280px; }
}

/* ============================================
   PERCORSI DIGITALI — scheda singola
   ============================================ */
.fe-digital-card-media img{aspect-ratio:3/2;height:auto;object-fit:cover}
.fe-digital-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto}
.fe-digital-card-price{font-family:var(--font-display);font-size:22px;color:var(--color-brand-deep);white-space:nowrap}
.fe-digital-archive-hero .hero-lede{max-width:700px}
.fe-digital-filters{margin-bottom:30px}
.fe-digital-breadcrumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding-top:22px;font-size:12px;color:var(--color-muted);font-family:var(--font-sans)}
.fe-digital-breadcrumb a{color:var(--color-brand-deep);text-decoration:none}
.fe-digital-breadcrumb a:hover{text-decoration:underline}

/* HERO */
/* Il CPT deve occupare tutta la larghezza disponibile del tema. Alcuni
 * stili/plugin esterni possono applicare un max-width al <main>: questa
 * regola lo neutralizza solo per la scheda dei Percorsi digitali. */
.fe-digital-single{width:100%;max-width:none;margin:0;padding:0;min-width:0;overflow:clip}
.fe-digital-single > section{width:100%}
.fe-digital-hero-new{padding:42px 0 78px;background:var(--color-paper)}
.fe-digital-hero-new-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(0,1fr);gap:64px;align-items:center;max-width:1240px;margin:0 auto}
.fe-digital-cover-wrap{display:flex;flex-direction:column;align-items:center}
.fe-digital-cover-frame{width:min(100%, 540px);padding:14px;background:#fff;border:1px solid var(--color-line);box-shadow:0 22px 50px rgba(30,36,32,.11);transform:rotate(-.35deg)}
.fe-digital-cover-frame img{display:block;width:100%;height:auto;max-height:620px;aspect-ratio:auto;object-fit:contain;object-position:center;background:var(--color-paper-alt)}
.fe-digital-cover-note{margin-top:15px;max-width:400px;font-size:11px;line-height:1.55;text-align:center;color:var(--color-faint);font-family:var(--font-sans)}
.fe-digital-hero-new-copy{min-width:0}
.fe-digital-eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--color-brand);font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.fe-digital-eyebrow::before{content:"";width:28px;height:1px;background:var(--color-brand)}
.fe-digital-hero-new-copy h1{font-size:clamp(52px,5.3vw,76px);font-weight:400;line-height:.98;letter-spacing:-.035em;margin:12px 0 15px;max-width:13ch}
.fe-digital-subtitle-new{font-family:var(--font-serif);font-size:clamp(21px,2.2vw,28px);line-height:1.38;color:var(--color-ink-soft);max-width:650px;margin:0 0 22px}
.fe-digital-topic-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.fe-digital-intro-new{max-width:680px;color:var(--color-ink-soft);font-size:16.5px;line-height:1.75}
.fe-digital-intro-new p{margin:0 0 14px}
.fe-digital-intro-new p:last-child{margin-bottom:0}
.fe-digital-buy-card{margin-top:30px;padding:21px 22px 19px;border:1px solid var(--color-line);background:rgba(255,255,255,.68);box-shadow:var(--shadow-sm)}
.fe-digital-buy-main{display:flex;align-items:center;justify-content:space-between;gap:24px}
.fe-digital-buy-main.is-no-price{justify-content:flex-start}
.fe-digital-buy-main.is-no-price .fe-digital-buy-button{max-width:none}
.fe-digital-price-new{display:flex;flex-direction:column;min-width:106px}
.fe-digital-price-new del{font-size:12px;color:var(--color-muted);margin-bottom:2px}
.fe-digital-price-new strong{font-family:var(--font-display);font-weight:400;color:var(--color-brand-deep);font-size:42px;line-height:1}
.fe-digital-price-new span{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--color-muted);margin-top:6px}
.fe-digital-buy-button{white-space:normal;text-align:center;max-width:380px}
.fe-digital-trust-new{display:flex;flex-wrap:wrap;gap:16px;margin-top:15px;padding-top:14px;border-top:1px solid var(--color-line-soft)}
.fe-digital-trust-new span{display:flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:11.5px;color:var(--color-muted)}
.fe-digital-trust-new svg{color:var(--color-forest);flex:0 0 auto}

/* FACTS */
.fe-digital-facts-band{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);background:var(--color-paper-alt)}
.fe-digital-facts-new{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1110px;margin:0 auto}
.fe-digital-fact-new{padding:21px 24px;border-right:1px solid var(--color-line);min-height:92px;display:flex;flex-direction:column;justify-content:center}
.fe-digital-fact-new:first-child{border-left:1px solid var(--color-line)}
.fe-digital-fact-new span{font-family:var(--font-sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--color-muted);margin-bottom:7px}
.fe-digital-fact-new strong{font-family:var(--font-serif);font-size:18px;font-weight:400;line-height:1.3;color:var(--color-ink)}

/* GENERIC SECTIONS */
.fe-digital-section-clean{background:var(--color-paper)}
.fe-digital-section-soft{background:var(--color-paper-alt)}
.fe-digital-section-intro{max-width:720px;margin-bottom:28px}
.fe-digital-section-intro h2{font-size:clamp(34px,4vw,50px);font-weight:400;line-height:1.08;margin:6px 0 10px;letter-spacing:-.018em}
.fe-digital-section-intro p{font-size:16px;color:var(--color-muted);line-height:1.7;max-width:58ch}

/* BENEFITS */
.fe-digital-benefits-grid-new{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;max-width:1120px}
.fe-digital-benefit-new{padding:26px 27px 28px;border:1px solid var(--color-line);background:rgba(255,255,255,.46);min-height:170px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease, box-shadow .2s ease}
.fe-digital-benefit-new:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.fe-digital-benefit-number{font-family:var(--font-display);font-size:15px;color:var(--color-brand);margin-bottom:18px}
.fe-digital-benefit-new p{font-family:var(--font-serif);font-size:19px;line-height:1.48;color:var(--color-ink);margin:0;max-width:34ch}

/* TIMELINE */
.fe-digital-narrow-new{max-width:840px}
.fe-digital-timeline{border-top:1px solid var(--color-line)}
.fe-digital-timeline-item{display:grid;grid-template-columns:70px 1fr;gap:22px;padding:25px 0;border-bottom:1px solid var(--color-line)}
.fe-digital-timeline-num{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--color-paper);border:1px solid var(--color-line);font-family:var(--font-sans);font-size:11px;font-weight:700;color:var(--color-brand-deep)}
.fe-digital-timeline-item h3{font-size:26px;font-weight:400;line-height:1.2;margin:1px 0 7px;color:var(--color-ink)}
.fe-digital-timeline-item p{margin:0;color:var(--color-ink-soft);font-size:15.5px;line-height:1.7;max-width:65ch}

/* BONUS */
.fe-digital-bonus-grid-new{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1120px}
.fe-digital-bonus-new{background:#fff;border:1px solid var(--color-line);box-shadow:var(--shadow-sm);overflow:hidden}
.fe-digital-bonus-media-new img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--color-paper-alt)}
.fe-digital-bonus-body-new{padding:23px 23px 25px}
.fe-digital-bonus-label{font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand);margin-bottom:8px}
.fe-digital-bonus-body-new h3{font-size:24px;font-weight:400;line-height:1.2;margin:0 0 9px}
.fe-digital-bonus-meta-new{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--color-brass);margin-bottom:12px}
.fe-digital-bonus-body-new p{margin:0;color:var(--color-ink-soft);font-size:14.5px;line-height:1.65}

/* AUTHOR */
.fe-digital-author-section{background:var(--color-paper)}
.fe-digital-author-new{max-width:930px;margin:0 auto;padding-top:6px;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:64px;align-items:start}
.fe-digital-author-copy-new h2{font-size:clamp(38px,4vw,54px);font-weight:400;line-height:1.05;margin:6px 0 6px}
.fe-digital-author-role-new{font-family:var(--font-sans);font-size:12px;letter-spacing:.04em;color:var(--color-brand);margin:0 0 20px}
.fe-digital-author-bio-new{font-family:var(--font-serif);font-size:18px;line-height:1.78;color:var(--color-ink-soft);max-width:62ch}
.fe-digital-author-bio-new p{margin:0 0 17px}
.fe-digital-author-media-new{padding:7px;background:#fff;border:1px solid var(--color-line);box-shadow:var(--shadow-sm);transform:rotate(.5deg)}
.fe-digital-author-media-new img{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--color-paper-alt)}

/* FAQ */
.fe-digital-faqs-new details{border-top:1px solid var(--color-line)}
.fe-digital-faqs-new details:last-child{border-bottom:1px solid var(--color-line)}
.fe-digital-faqs-new summary{cursor:pointer;list-style:none;padding:21px 34px 21px 0;font-family:var(--font-serif);font-size:20px;line-height:1.4;position:relative;color:var(--color-ink)}
.fe-digital-faqs-new summary::-webkit-details-marker{display:none}
.fe-digital-faqs-new summary::after{content:"+";position:absolute;right:2px;top:19px;font-family:var(--font-sans);font-size:19px;font-weight:400;color:var(--color-brand)}
.fe-digital-faqs-new details[open] summary::after{content:"–"}
.fe-digital-faqs-new details>div{padding:0 0 21px;color:var(--color-ink-soft);font-size:15px;line-height:1.75}
.fe-digital-faqs-new details p{margin:0 0 13px}

/* DISCLAIMER */
.fe-digital-disclaimer-wrap{padding:0 0 36px;background:var(--color-paper-alt)}
.fe-digital-disclaimer-new{max-width:840px;margin:0 auto;padding:17px 0 0;border-top:1px solid var(--color-line);font-size:12.5px;line-height:1.65;color:var(--color-faint)}
.fe-digital-disclaimer-label{display:block;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:6px}
.fe-digital-disclaimer-new p{margin:0}

/* TOPIC CTA */
.fe-digital-topic-cta{background:var(--color-paper)}
.fe-digital-topic-cta-inner{max-width:1110px;margin:0 auto;padding:35px 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);display:flex;align-items:center;justify-content:space-between;gap:30px}
.fe-digital-topic-cta-inner h2{font-size:clamp(30px,3.2vw,42px);font-weight:400;line-height:1.1;margin:5px 0 9px;max-width:22ch}
.fe-digital-topic-cta-inner p{margin:0;color:var(--color-muted);font-size:15px;line-height:1.65}

/* FINAL CTA */
.fe-digital-final-new{padding:72px 0 82px;background:var(--color-brand-deep);color:var(--color-paper)}
.fe-digital-final-inner-new{text-align:center;max-width:740px;margin:0 auto}
.fe-digital-final-inner-new .kicker{color:#e8cfd5}
.fe-digital-final-inner-new h2{font-size:clamp(38px,4.8vw,56px);font-weight:400;line-height:1.06;color:#fff;margin:7px 0 13px}
.fe-digital-final-inner-new p{max-width:620px;margin:0 auto 26px;color:#eadde0;font-size:16px;line-height:1.75}
.fe-digital-final-inner-new .btn-primary{background:#fff;color:var(--color-brand-deep);border-color:#fff}
.fe-digital-final-inner-new .btn-primary:hover{background:var(--color-brand-soft);border-color:var(--color-brand-soft)}

.fe-digital-single .container{width:100%;max-width:1240px;margin-left:auto;margin-right:auto}
.fe-digital-single .container-narrow{width:100%;max-width:840px;margin-left:auto;margin-right:auto}

@media(min-width:1100px){.fe-digital-cover-frame{width:min(100%,560px)} }

@media(max-width:900px){
  .fe-digital-hero-new-grid{grid-template-columns:1fr;gap:42px;max-width:760px}
  .fe-digital-cover-frame{max-width:540px}
  .fe-digital-hero-new-copy h1{max-width:13ch}
  .fe-digital-benefits-grid-new,.fe-digital-bonus-grid-new{grid-template-columns:1fr 1fr}
  .fe-digital-facts-new{grid-template-columns:1fr 1fr}
  .fe-digital-fact-new:nth-child(2){border-right:0}
  .fe-digital-fact-new:nth-child(n+3){border-top:1px solid var(--color-line)}
  .fe-digital-author-new{grid-template-columns:1fr 190px;gap:34px}
}
@media(max-width:640px){
  .fe-digital-breadcrumb{padding-top:17px;font-size:11px}
  .fe-digital-hero-new{padding:28px 0 54px}
  .fe-digital-cover-frame{max-width:420px;padding:10px}
  .fe-digital-cover-note{font-size:10.5px;padding:0 14px}
  .fe-digital-hero-new-copy h1{font-size:clamp(43px,13vw,58px);max-width:100%;margin-top:10px}
  .fe-digital-subtitle-new{font-size:21px}
  .fe-digital-intro-new{font-size:15.5px}
  .fe-digital-buy-card{padding:18px;margin-top:24px}
  .fe-digital-buy-main{align-items:flex-start;flex-direction:column;gap:17px}
  .fe-digital-buy-button{width:100%;max-width:none}
  .fe-digital-trust-new{flex-direction:column;gap:9px}
  .fe-digital-facts-new{grid-template-columns:1fr}
  .fe-digital-fact-new,.fe-digital-fact-new:nth-child(2),.fe-digital-fact-new:nth-child(n+3){border-left:1px solid var(--color-line);border-right:1px solid var(--color-line);border-top:0}
  .fe-digital-fact-new+ .fe-digital-fact-new{border-top:1px solid var(--color-line)}
  .fe-digital-benefits-grid-new,.fe-digital-bonus-grid-new{grid-template-columns:1fr}
  .fe-digital-benefit-new{min-height:auto;padding:22px}
  .fe-digital-benefit-new p{font-size:18px}
  .fe-digital-timeline-item{grid-template-columns:48px 1fr;gap:14px;padding:22px 0}
  .fe-digital-timeline-num{width:36px;height:36px}
  .fe-digital-timeline-item h3{font-size:23px}
  .fe-digital-author-new{grid-template-columns:1fr;gap:28px}
  .fe-digital-author-media-new{max-width:220px}
  .fe-digital-topic-cta-inner{align-items:flex-start;flex-direction:column;padding:30px 0}
  .fe-digital-topic-cta-inner .btn{width:100%;justify-content:center}
  .fe-digital-final-new{padding:58px 0 64px}
}


/* ============================================
   PERCORSI DIGITALI 1.18.5 — rifinitura scheda singola
   ============================================ */
.fe-digital-single{overflow:visible}
.fe-digital-hero-new{padding:48px 0 72px}
.fe-digital-hero-new-grid{grid-template-columns:minmax(500px,1.02fr) minmax(0,.98fr);gap:76px;align-items:start}
.fe-digital-cover-wrap{align-items:stretch;position:sticky;top:calc(var(--logo-height,52px) + 34px);align-self:start}
.fe-digital-cover-frame{width:min(100%,620px);margin:0 auto;padding:14px;}
.fe-digital-cover-frame img{max-height:none}
.fe-digital-cover-note{margin:12px auto 0;max-width:520px;font-size:11px}
.fe-digital-cover-details{margin:24px auto 0;width:min(100%,520px);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
.fe-digital-cover-details-head{padding:13px 0 9px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand)}
.fe-digital-cover-detail-row{display:grid;grid-template-columns:105px 1fr;gap:16px;padding:10px 0;border-top:1px solid var(--color-line-soft);font-size:13px;line-height:1.45}
.fe-digital-cover-detail-row span{font-family:var(--font-sans);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}
.fe-digital-cover-detail-row strong{font-family:var(--font-serif);font-size:15px;font-weight:400;color:var(--color-ink);}
.fe-digital-sticky-buy{margin:18px auto 0;width:min(100%,520px);padding:18px;border:1px solid var(--color-line);border-top:2px solid var(--color-brass);background:var(--color-paper);box-shadow:var(--shadow-sm)}
.fe-digital-sticky-buy-label{font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-bottom:10px}
.fe-digital-sticky-buy .btn{width:100%;justify-content:center}
.fe-digital-sticky-trust{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:13px;padding-top:12px;border-top:1px solid var(--color-line-soft)}
.fe-digital-sticky-trust span{display:flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:10.5px;color:var(--color-muted)}
.fe-digital-sticky-trust svg{color:var(--color-forest);flex:0 0 auto}
.fe-digital-hero-new-copy{padding-top:4px}
.fe-digital-eyebrow{font-size:10.5px}
.fe-digital-hero-new-copy h1{font-size:clamp(52px,5vw,72px);max-width:12ch;margin:13px 0 14px}
.fe-digital-subtitle-new{font-size:clamp(20px,2vw,26px);line-height:1.36;max-width:34ch;margin-bottom:20px}
.fe-digital-intro-new{font-size:17px;line-height:1.78;max-width:640px}
.fe-digital-intro-new p{margin:0 0 17px}
.fe-digital-intro-new p:first-child{font-size:18px;line-height:1.72;color:var(--color-ink)}
.fe-digital-intro-new strong{color:var(--color-ink);font-weight:650}
.fe-digital-buy-card{margin-top:26px}
.fe-digital-buy-button{max-width:440px}
.fe-digital-section-intro h2{max-width:20ch}
.fe-digital-benefits-grid-new{gap:18px}
.fe-digital-benefit-new{min-height:190px;padding:28px 29px 30px}
.fe-digital-benefit-number{font-size:14px;margin-bottom:22px}
.fe-digital-benefit-new p{font-size:20px;line-height:1.5;max-width:36ch}
.fe-digital-timeline{position:relative;border-top:0;margin-top:8px}
.fe-digital-timeline::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:1px;background:var(--color-line)}
.fe-digital-timeline-item{position:relative;grid-template-columns:70px 1fr;gap:22px;padding:25px 0}
.fe-digital-timeline-num{position:relative;z-index:1;background:var(--color-paper-alt)}
.fe-digital-timeline-item h3{font-size:27px}
.fe-digital-timeline-item p{font-size:15.5px}
.fe-digital-final-new{padding:62px 0 70px}
.fe-digital-topic-cta-inner{padding:30px 0}

@media(max-width:1100px) and (min-width:901px){
  .fe-digital-hero-new-grid{grid-template-columns:minmax(420px,1fr) minmax(0,.95fr);gap:52px}
  .fe-digital-cover-frame{width:min(100%,560px)}
}

@media(max-width:900px){
  .fe-digital-hero-new-grid{grid-template-columns:1fr;gap:34px}
  .fe-digital-cover-wrap{position:static;align-items:center}
  .fe-digital-cover-frame{width:min(100%,560px)}
  .fe-digital-cover-details,.fe-digital-sticky-buy{width:min(100%,560px)}
  .fe-digital-hero-new-copy{padding-top:0}
  .fe-digital-hero-new-copy h1{max-width:14ch}
}

@media(max-width:640px){
  .fe-digital-hero-new{padding:28px 0 54px}
  .fe-digital-cover-frame{padding:10px}
  .fe-digital-cover-detail-row{grid-template-columns:92px 1fr;gap:12px}
  .fe-digital-intro-new{font-size:15.5px;line-height:1.72}
  .fe-digital-intro-new p:first-child{font-size:16px}
  .fe-digital-benefit-new{min-height:auto}
  .fe-digital-benefit-new p{font-size:18px}
  .fe-digital-timeline::before{left:18px}
}

/* ============================================
   PERCORSI DIGITALI 1.18.6 — hero desktop/mobile
   ============================================
   La CTA del prodotto vive una sola volta, nella colonna editoriale.
   La colonna della cover resta sticky su desktop e contiene solo immagine
   + informazioni editoriali, mentre su mobile l'ordine diventa:
   cover → titolo/testo → CTA → informazioni.
*/
.fe-digital-cover-wrap{align-self:start}
.fe-digital-hero-new-grid{align-items:start}
.fe-digital-cover-details{margin-top:22px}

@media(min-width:901px){
  .fe-digital-cover-wrap{
    position:sticky;
    top:calc(var(--logo-height,52px) + 34px);
  }
}

@media(max-width:900px){
  .fe-digital-hero-new-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    max-width:760px;
  }
  /* Permette di portare i figli del blocco cover nell'ordine corretto
     della griglia mobile senza duplicare markup. */
  .fe-digital-cover-wrap{display:contents}
  .fe-digital-cover-frame{
    order:1;
    width:min(100%,560px);
    margin:0 auto;
  }
  .fe-digital-cover-note{
    order:2;
    margin:12px auto 0;
    padding:0 12px;
  }
  .fe-digital-hero-new-copy{
    order:3;
    padding-top:34px;
  }
  .fe-digital-cover-details{
    order:4;
    width:min(100%,560px);
    margin:32px auto 0;
  }
}

@media(max-width:640px){
  .fe-digital-hero-new{padding:22px 0 48px}
  .fe-digital-cover-frame{max-width:100%;padding:9px}
  .fe-digital-cover-note{font-size:10.5px;line-height:1.5}
  .fe-digital-hero-new-copy{padding-top:28px}
  .fe-digital-hero-new-copy h1{
    font-size:clamp(39px,12.5vw,54px);
    line-height:1.01;
    margin:8px 0 13px;
  }
  .fe-digital-subtitle-new{font-size:20px;line-height:1.4;margin-bottom:18px}
  .fe-digital-topic-row{margin-bottom:20px}
  .fe-digital-intro-new{font-size:15.5px;line-height:1.72}
  .fe-digital-intro-new p:first-child{font-size:16px;line-height:1.68}
  .fe-digital-buy-card{margin-top:24px;padding:17px}
  .fe-digital-cover-details{margin-top:30px;padding-bottom:2px}
  .fe-digital-cover-detail-row{grid-template-columns:88px 1fr;gap:11px;padding:9px 0}
  .fe-digital-cover-detail-row strong{font-size:14.5px}
}


/* ============================================
   PERCORSI DIGITALI 1.18.7 — gerarchia hero
   ============================================
   Una sola informazione tecnica: il pannello "Informazioni" sotto la cover.
   La fascia riepilogativa duplicata è stata eliminata.
   Desktop: cover sticky a sinistra, informazioni sotto la cover, contenuto a destra.
   Mobile: cover → contenuto/CTA → informazioni.
*/
.fe-digital-hero-new-grid{
  display:grid;
  grid-template-columns:minmax(430px,0.86fr) minmax(0,1.14fr);
  grid-template-rows:auto auto;
  column-gap:72px;
  row-gap:0;
  align-items:start;
  max-width:1240px;
  margin:0 auto;
}
.fe-digital-cover-wrap{
  grid-column:1;
  grid-row:1;
  position:sticky;
  top:calc(var(--logo-height,52px) + 34px);
  align-self:start;
}
.fe-digital-cover-details{
  grid-column:1;
  grid-row:2;
  width:min(100%,520px);
  margin:24px auto 0;
  align-self:start;
}
.fe-digital-hero-new-copy{
  grid-column:2;
  grid-row:1 / span 2;
  padding-top:4px;
  min-width:0;
}

@media(max-width:1100px) and (min-width:901px){
  .fe-digital-hero-new-grid{
    grid-template-columns:minmax(390px,0.9fr) minmax(0,1.1fr);
    column-gap:52px;
  }
}

@media(max-width:900px){
  .fe-digital-hero-new-grid{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    gap:0;
    max-width:760px;
  }
  .fe-digital-cover-wrap{
    grid-column:1;
    grid-row:1;
    position:static;
    display:block;
    width:100%;
  }
  .fe-digital-hero-new-copy{
    grid-column:1;
    grid-row:2;
    padding-top:34px;
  }
  .fe-digital-cover-details{
    grid-column:1;
    grid-row:3;
    width:min(100%,560px);
    margin:32px auto 0;
  }
}

@media(max-width:640px){
  .fe-digital-hero-new-grid{gap:0}
  .fe-digital-hero-new-copy{padding-top:28px}
  .fe-digital-cover-details{margin-top:28px}
  .fe-digital-cover-detail-row{
    grid-template-columns:88px 1fr;
    gap:11px;
  }
  .fe-digital-cover-detail-row strong{font-size:14.5px}
}


/* ============================================
   PERCORSI DIGITALI 1.18.8 — sticky cover + informazioni
   ============================================
   La cover e il pannello Informazioni fanno parte dello stesso blocco sticky.
   In questo modo le informazioni non restano ferme mentre la cover scorre.
   Su mobile il wrapper torna a display:contents per mantenere l'ordine editoriale:
   cover → contenuto/CTA → informazioni.
*/
@media(min-width:901px){
  .fe-digital-cover-wrap{
    position:sticky;
    top:calc(var(--logo-height,52px) + 24px);
    align-self:start;
    z-index:2;
  }
  .fe-digital-cover-details{
    position:static;
    margin-top:24px;
  }
}

@media(max-width:900px){
  .fe-digital-cover-wrap{
    display:contents;
    position:static;
  }
  .fe-digital-cover-frame{
    order:1;
    grid-column:auto;
    grid-row:auto;
  }
  .fe-digital-cover-note{
    order:2;
    grid-column:auto;
    grid-row:auto;
  }
  .fe-digital-hero-new-copy{
    order:3;
    grid-column:auto;
    grid-row:auto;
  }
  .fe-digital-cover-details{
    order:4;
    grid-column:auto;
    grid-row:auto;
  }
}

/* 1.18.10 — CTA finale chiaramente legata al prodotto */
.fe-digital-product-cta .fe-digital-final-inner-new h2{max-width:18ch;margin-left:auto;margin-right:auto}
.fe-digital-product-cta .fe-digital-final-inner-new p{max-width:720px;margin-left:auto;margin-right:auto}
@media(max-width:640px){
  .fe-digital-product-cta .fe-digital-final-inner-new h2{max-width:none}
  .fe-digital-product-cta .fe-digital-final-inner-new p{max-width:none}
}

/* ============================================
   ARCHIVIO APPROFONDIMENTI — layout editoriale
   ============================================ */
.fe-approfondimenti-archive { padding-top: 46px; }
.fe-approfondimenti-filterbar { margin-bottom: 46px; }
.fe-approfondimenti-topic-intro {
  max-width: 62ch;
  margin: 10px 0 0;
  color: var(--color-muted);
  font-size: 14px;
  line-height: 1.6;
}
.fe-approfondimenti-results-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}
.fe-approfondimenti-results-head h2 {
  margin: 4px 0 0;
  font-family: var(--font-display);
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 400;
  line-height: 1.08;
}
.fe-approfondimenti-count {
  flex: 0 0 auto;
  padding-bottom: 4px;
  color: var(--color-muted);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.fe-approfondimenti-grid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  align-items: stretch;
}
.fe-approfondimenti-grid--single {
  grid-template-columns: minmax(0, 1fr);
}
.fe-approfondimenti-grid--single .content-card {
  display: grid;
  grid-template-columns: minmax(320px, 42%) minmax(0, 1fr);
}
.fe-approfondimenti-grid--single .content-card-media {
  height: 100%;
  min-height: 320px;
}
.fe-approfondimenti-grid--single .content-card-media img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
}
.fe-approfondimenti-grid--single .content-card-body {
  padding: 30px 32px 32px;
}
.fe-approfondimenti-grid--single .content-card h3 {
  font-size: clamp(23px, 2.4vw, 31px);
  max-width: 28ch;
}
.fe-approfondimenti-grid--single .content-card-excerpt {
  max-width: 62ch;
  font-size: 15.5px;
}
.fe-approfondimenti-related-hub {
  margin-top: 72px;
  padding-top: 52px;
  border-top: 1px solid var(--color-line);
}
.fe-approfondimenti-related-heading {
  max-width: 760px;
  margin-bottom: 8px;
}
.fe-approfondimenti-related-heading h2 {
  margin: 4px 0 8px;
  font-family: var(--font-display);
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.1;
}
.fe-approfondimenti-related-heading p {
  margin: 0 0 30px;
  color: var(--color-muted);
}
.fe-approfondimenti-related-hub .hub-block {
  margin-top: 42px;
}
.fe-approfondimenti-related-hub .hub-block:first-of-type {
  margin-top: 26px;
}
.fe-approfondimenti-pagination {
  margin-top: 36px;
}
.fe-approfondimenti-pagination .nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.fe-approfondimenti-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid var(--color-line);
  border-radius: 7px;
  color: var(--color-ink-soft);
  text-decoration: none;
  font-size: 13px;
}
.fe-approfondimenti-pagination .page-numbers.current {
  border-color: var(--color-brand-deep);
  background: var(--color-brand-deep);
  color: var(--color-paper);
}
.fe-approfondimenti-pagination .page-numbers:hover:not(.current) {
  border-color: var(--color-brand);
  color: var(--color-brand-deep);
}
.fe-approfondimenti-empty {
  max-width: 720px;
  padding: 36px 0 10px;
}
.fe-approfondimenti-empty h2 {
  margin: 6px 0 10px;
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.15;
}
.fe-approfondimenti-empty p {
  max-width: 58ch;
  margin-bottom: 22px;
  color: var(--color-muted);
}

@media (max-width: 800px) {
  .fe-approfondimenti-results-head {
    align-items: flex-start;
  }
  .fe-approfondimenti-grid--single .content-card {
    display: flex;
  }
  .fe-approfondimenti-grid--single .content-card-media,
  .fe-approfondimenti-grid--single .content-card-media img {
    min-height: 220px;
    height: auto;
  }
  .fe-approfondimenti-grid--single .content-card-body {
    padding: 22px 20px 24px;
  }
}

@media (max-width: 540px) {
  .fe-approfondimenti-archive { padding-top: 34px; }
  .fe-approfondimenti-results-head {
    display: block;
    margin-bottom: 20px;
  }
  .fe-approfondimenti-count {
    display: inline-block;
    margin-top: 8px;
    padding-bottom: 0;
  }
  .fe-approfondimenti-grid {
    grid-template-columns: 1fr;
  }
  .fe-approfondimenti-related-hub {
    margin-top: 54px;
    padding-top: 38px;
  }
}


/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.1
   Percorso editoriale + conversione: lettura, interlink,
   newsletter, risorse e CTA argomento.
   ============================================ */
.fe-editorial-single{padding-top:62px;padding-bottom:76px}
.fe-editorial-layout{width:100%;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,840px) minmax(220px,280px);gap:64px;align-items:start}
.fe-editorial-main{min-width:0}
.fe-editorial-main .editorial-head{margin-bottom:34px;max-width:900px}
.fe-editorial-main .editorial-head h1{font-size:clamp(42px,4.8vw,58px);line-height:1.06;letter-spacing:-.024em;margin:7px 0 16px;max-width:18ch}
.fe-editorial-main .editorial-byline{font-size:13px}
.fe-editorial-reading-time{color:var(--color-muted)}
.fe-editorial-main .editorial-media{margin:0 0 40px}
.fe-editorial-main .editorial-media img{width:100%;max-width:none;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.fe-editorial-main .editorial-body{max-width:820px;font-size:18px;line-height:1.82}
.fe-editorial-main .editorial-body h2{font-size:clamp(30px,3.2vw,36px);line-height:1.12;margin:52px 0 16px;letter-spacing:-.012em}
.fe-editorial-main .editorial-body h3{font-size:24px;line-height:1.2;margin:36px 0 12px}
.fe-editorial-main .editorial-body p{margin-bottom:21px}
.fe-editorial-main .editorial-body ul,.fe-editorial-main .editorial-body ol{margin-bottom:24px}
.fe-editorial-main .editorial-body strong{font-weight:650}

.fe-editorial-inline-box{margin:38px 0;padding:22px 24px;border-radius:var(--radius-sm);border:1px solid var(--color-line);background:var(--color-paper-alt)}
.fe-editorial-inline-kicker{display:block;margin-bottom:8px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand)}
.fe-editorial-inline-box h3{margin:0 0 9px;font-family:var(--font-display);font-size:24px;line-height:1.2;font-weight:400}
.fe-editorial-inline-box p{margin:0 0 13px;color:var(--color-ink-soft);font-size:15px;line-height:1.65}
.fe-editorial-inline-box>a:not(.btn){font-weight:650;color:var(--color-brand-deep);text-decoration:none}
.fe-editorial-inline-box>a:not(.btn):hover{text-decoration:underline}
.fe-editorial-inline-link{background:var(--color-brand-soft);border-color:rgba(123,36,56,.18)}
.fe-editorial-inline-resource{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;align-items:center;background:var(--color-paper);box-shadow:var(--shadow-sm)}
.fe-editorial-inline-resource-media{width:96px;min-height:130px;display:flex;align-items:center;justify-content:center;background:var(--color-paper-alt);overflow:hidden;border-radius:4px}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{width:96px;height:130px;aspect-ratio:auto;margin:0;border-radius:4px;box-shadow:none;background:transparent}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover .book-cover-image{display:block;width:100%;height:100%;object-fit:contain}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover .book-cover-inner{padding:12px}
.fe-editorial-inline-resource-media img{display:block;width:100%;height:130px;object-fit:contain}
.fe-editorial-inline-resource-media>span{font-family:var(--font-serif);font-size:13px;color:var(--color-muted)}
.fe-editorial-inline-resource-body p{margin-bottom:15px}

.fe-editorial-sidebar{min-width:0;position:sticky;top:112px;align-self:start}
.fe-editorial-sidebar-inner{position:relative;padding:18px 17px 16px;border:1px solid var(--color-line);background:rgba(255,255,255,.42);border-radius:var(--radius-sm)}
.fe-editorial-sidebar-block + .fe-editorial-sidebar-block{margin-top:18px;padding-top:17px;border-top:1px solid var(--color-line)}
.fe-editorial-sidebar-kicker{display:block;margin-bottom:11px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand)}
.fe-editorial-toc{display:flex;flex-direction:column;gap:0}
.fe-editorial-toc a{position:relative;display:block;padding:9px 0;border-bottom:1px solid var(--color-line-soft);color:var(--color-ink-soft);font-size:13px;line-height:1.45;transition:color .18s ease,padding-left .18s ease,border-color .18s ease}
.fe-editorial-toc a:last-child{border-bottom:0}
.fe-editorial-toc a:hover{color:var(--color-brand-deep)}
.fe-editorial-toc a.is-active{color:var(--color-brand-deep);font-weight:650;padding-left:10px}
.fe-editorial-toc a.is-active::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;background:var(--color-brand)}
.fe-editorial-sidebar-newsletter{margin-top:18px;padding-top:17px;border-top:1px solid var(--color-line)}
.fe-editorial-sidebar-newsletter p{margin:0 0 13px;color:var(--color-ink-soft);font-size:13px;line-height:1.55}
.fe-editorial-sidebar-newsletter .btn{width:100%;justify-content:center}
.fe-editorial-topic-links{display:flex;flex-direction:column;gap:8px}
.fe-editorial-topic-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--font-serif);font-size:16px;line-height:1.35;color:var(--color-ink)}
.fe-editorial-topic-links a span{color:var(--color-brand);font-family:var(--font-sans);font-size:13px}
.fe-editorial-mobile-toc{display:none}

.fe-editorial-newsletter{padding:48px 0 30px;background:transparent;color:var(--color-ink)}
.fe-editorial-newsletter-inner{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:42px;align-items:center;max-width:900px;margin:0 auto;padding:34px 38px;background:var(--color-paper);border:1px solid rgba(123,36,56,.22);border-left:4px solid var(--color-brand);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.fe-editorial-newsletter .section-kicker{color:var(--color-brand)}
.fe-editorial-newsletter h2{margin:7px 0 12px;font-family:var(--font-display);font-weight:400;font-size:clamp(28px,3vw,38px);line-height:1.1;color:var(--color-brand-deep)}
.fe-editorial-newsletter-copy p{margin:0;max-width:650px;color:var(--color-ink-soft);font-size:15px;line-height:1.65}
.fe-editorial-newsletter-form{padding:18px;background:var(--color-paper-alt);border:1px solid var(--color-line);border-radius:var(--radius-sm)}
.fe-editorial-newsletter-form .newsletter-form{display:flex;gap:10px}
.fe-editorial-newsletter-form input{min-width:0;flex:1;background:#fff;border:1px solid var(--color-line);color:var(--color-ink)}
.fe-editorial-newsletter-form .btn{white-space:nowrap}
.fe-editorial-newsletter-form .lead-message{margin:10px 0 0;color:var(--color-ink-soft);font-size:13px}
.fe-editorial-newsletter-form .lead-message.error{color:var(--color-brand)}
.fe-editorial-newsletter-form .lead-message.success{color:#356b49}

.fe-editorial-related-posts{padding:62px 0 68px}
.fe-editorial-related-head{max-width:760px;margin:0 auto 34px;text-align:center}
.fe-editorial-related-head h2{margin:5px 0 9px;font-family:var(--font-display);font-weight:400;font-size:clamp(31px,3.4vw,42px);line-height:1.08}
.fe-editorial-related-head p{margin:0;color:var(--color-muted);font-size:15.5px}
.fe-editorial-related-post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:0 auto}
.fe-editorial-related-post-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-line);background:var(--color-paper);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);min-height:0;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.fe-editorial-related-post-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-line)}
.fe-editorial-related-post-media{display:block;aspect-ratio:16/8.5;overflow:hidden;background:var(--color-paper-alt)}
.fe-editorial-related-post-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.fe-editorial-related-post-card:hover .fe-editorial-related-post-media img{transform:scale(1.015)}
.fe-editorial-related-post-body{display:flex;flex-direction:column;align-items:flex-start;padding:20px 20px 21px;min-height:190px}
.fe-editorial-related-post-body h3{margin:0 0 10px;font-family:var(--font-display);font-size:25px;line-height:1.16;font-weight:400}
.fe-editorial-related-post-body h3 a{color:var(--color-ink);text-decoration:none}
.fe-editorial-related-post-body h3 a:hover{color:var(--color-brand-deep)}
.fe-editorial-related-post-body p{margin:0 0 13px;color:var(--color-ink-soft);font-size:14px;line-height:1.6}
.fe-editorial-related-post-link{font-size:13px;font-weight:650;color:var(--color-brand-deep);text-decoration:none}
.fe-editorial-related-post-link:hover{text-decoration:underline}

.fe-editorial-related{padding-top:58px;padding-bottom:64px}
.fe-editorial-related .hub-block{margin-bottom:34px}
.fe-editorial-related .hub-block:last-of-type{margin-bottom:0}
.fe-editorial-related .section-header-left{margin-bottom:18px}
.fe-editorial-resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:32px auto 0}
.fe-editorial-resource-card{position:relative;padding:20px;border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-paper);box-shadow:var(--shadow-sm)}
.fe-editorial-resource-kicker{display:block;margin-bottom:12px;font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-brand)}
.fe-editorial-resource-card .book-card,.fe-editorial-resource-card .content-card{height:100%;box-shadow:none;border:0;background:transparent;padding:0}
.fe-editorial-resource-card .book-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center}
.fe-editorial-resource-card .book-card .book-cover{margin:0}
.fe-editorial-resource-card .content-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:center}
.fe-editorial-resource-card .content-card-media{border-radius:4px;overflow:hidden}
.fe-editorial-resource-card .content-card-media img{height:120px}
.fe-editorial-resource-card .content-card-body{padding:0}
.fe-editorial-resource-card .book-card-body{padding:0}

.fe-editorial-final-cta{padding:58px 0 76px;background:var(--color-paper-alt)}
.fe-editorial-final-cta-inner{max-width:800px;margin:0 auto;text-align:center;padding:40px 32px;background:var(--color-paper);border:1px solid rgba(123,36,56,.18);border-top:3px solid var(--color-brand);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.fe-editorial-final-cta h2{margin:7px auto 12px;max-width:680px;font-family:var(--font-display);font-weight:400;font-size:clamp(31px,3.5vw,44px);line-height:1.08}
.fe-editorial-final-cta p{max-width:640px;margin:0 auto 23px;color:var(--color-muted);font-size:15.5px;line-height:1.65}

@media(max-width:1040px) and (min-width:901px){
  .fe-editorial-layout{grid-template-columns:minmax(0,1fr) 240px;gap:42px}
  .fe-editorial-main .editorial-body{font-size:17px}
}
@media(max-width:900px){
  .fe-editorial-single{padding-top:40px}
  .fe-editorial-layout{grid-template-columns:1fr;gap:30px;max-width:840px}
  .fe-editorial-sidebar{order:2;position:static}
  .fe-editorial-sidebar-inner{position:static;padding:20px}
  .fe-editorial-main .editorial-head h1{max-width:20ch}
  .fe-editorial-main .editorial-body{max-width:none}
  .fe-editorial-mobile-toc{display:block;margin:0 0 24px}
  .fe-editorial-mobile-toc details{border:1px solid var(--color-line);background:var(--color-paper);border-radius:var(--radius-sm);padding:0 16px}
  .fe-editorial-mobile-toc summary{cursor:pointer;padding:14px 0;font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-brand-deep)}
  .fe-editorial-mobile-toc .fe-editorial-toc{padding-bottom:8px}
  .fe-editorial-sidebar .fe-editorial-sidebar-inner{display:none}
}
@media(max-width:760px){
  .fe-editorial-newsletter-inner{grid-template-columns:1fr;gap:25px}
  .fe-editorial-related-post-grid{grid-template-columns:1fr}
  .fe-editorial-related-post-card{display:flex}
}
@media(max-width:640px){
  .fe-editorial-single{padding-top:28px;padding-bottom:54px}
  .fe-editorial-main .editorial-head{margin-bottom:25px}
  .fe-editorial-main .editorial-head h1{font-size:clamp(36px,11.5vw,50px);line-height:1.07}
  .fe-editorial-main .editorial-media{margin-bottom:28px}
  .fe-editorial-main .editorial-body{font-size:16px;line-height:1.75}
  .fe-editorial-main .editorial-body h2{font-size:28px;margin-top:40px}
  .fe-editorial-main .editorial-body h3{font-size:22px}
  .fe-editorial-inline-resource{grid-template-columns:76px minmax(0,1fr);gap:15px;padding:18px}
  .fe-editorial-inline-resource-media{width:76px;min-height:104px}
  .fe-editorial-inline-resource-media img{height:104px}
  .fe-editorial-newsletter{padding:36px 0 18px}
  .fe-editorial-newsletter-inner{padding:28px 22px}
  .fe-editorial-newsletter-form .newsletter-form{display:grid;grid-template-columns:1fr}
  .fe-editorial-newsletter-form .btn{width:100%;justify-content:center}
  .fe-editorial-related-post-card{grid-template-columns:1fr}
  .fe-editorial-related-post-media{aspect-ratio:16/9}
  .fe-editorial-resource-grid{grid-template-columns:1fr;gap:18px}
  .fe-editorial-resource-card .book-card,.fe-editorial-resource-card .content-card{grid-template-columns:92px minmax(0,1fr);gap:16px}
  .fe-editorial-related{padding-top:48px;padding-bottom:42px}
  .fe-editorial-related-head{text-align:left}
  .fe-editorial-final-cta{padding:42px 0 54px}
  .fe-editorial-final-cta-inner{padding:28px 20px}
}

/* 1.19.3 — Scansionabilità editoriale */
.fe-editorial-main .editorial-body > p{max-width:72ch}
.fe-editorial-main .editorial-body h2 + p{margin-top:0}
.fe-editorial-main .editorial-body blockquote{margin:30px 0;padding:18px 22px;border-left:3px solid var(--color-brand);background:var(--color-brand-soft);color:var(--color-ink);border-radius:4px}
.fe-editorial-main .editorial-body ul li,.fe-editorial-main .editorial-body ol li{margin-bottom:7px}

/* ---- Risultati di ricerca ------------------------------------------ */
.fe-search-results {
  max-width: 1020px;
  margin: 0 auto;
}
.fe-search-result {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 38px;
  align-items: stretch;
  margin: 0 0 42px;
  padding: 0 0 42px;
  border-bottom: 1px solid var(--color-line);
}
.fe-search-result-media {
  display: block;
  min-height: 210px;
  background: var(--color-paper-alt);
  overflow: hidden;
  border: 1px solid var(--color-line-soft);
}
.fe-search-result-media img,
.fe-search-result-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
}
.fe-search-result-placeholder {
  background:
    linear-gradient(135deg, rgba(123,36,56,.06), rgba(186,150,82,.06)),
    var(--color-paper-alt);
}
.fe-search-result-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6px 0;
}
.fe-search-result-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0 0 10px;
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .7px;
  text-transform: uppercase;
  color: var(--color-muted);
}
.fe-search-result-kind { color: var(--color-brand-deep); }
.fe-search-result h2 {
  margin: 0 0 12px;
  font-family: var(--font-serif);
  font-size: clamp(25px, 3vw, 38px);
  font-weight: 400;
  line-height: 1.15;
}
.fe-search-result h2 a { color: var(--color-ink); text-decoration: none; }
.fe-search-result h2 a:hover { color: var(--color-brand-deep); }
.fe-search-result-excerpt {
  max-width: 700px;
  color: var(--color-ink-soft);
  font-size: 16px;
  line-height: 1.7;
}
.fe-search-result-excerpt p { margin: 0 0 14px; }
.fe-search-result-link {
  display: inline-block;
  margin-top: 4px;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-brand-deep);
  text-decoration: none;
}
.fe-search-result-link:hover { text-decoration: underline; }
@media (max-width: 760px) {
  .fe-search-result {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-bottom: 32px;
    padding-bottom: 32px;
  }
  .fe-search-result-media,
  .fe-search-result-media img,
  .fe-search-result-placeholder {
    min-height: 0;
    height: auto;
    aspect-ratio: 16 / 9;
  }
  .fe-search-result-body { padding: 0; }
  .fe-search-result h2 { font-size: 28px; }
}

/* ================================================================
   LIBRI CORRELATI — copertine reali a proporzioni naturali
   Nella sezione "Altri libri che potrebbero interessarti" non forziamo
   una cornice 2:3 per le immagini provenienti da URL o da copertine
   originali con proporzioni diverse. L'immagine deve essere interamente
   visibile, senza bande bianche artificiali e senza ritagli.
   ================================================================ */
.related-books .book-cover.has-real-cover:not(.is-video) {
  aspect-ratio: auto;
  height: auto;
  min-height: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
  border-radius: 0;
  margin-bottom: 18px;
}
.related-books .book-cover.has-real-cover:not(.is-video) .book-cover-image {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  object-fit: fill;
  object-position: center center;
  background: transparent;
  border-radius: var(--radius-xs);
  box-shadow: var(--shadow-spine);
}
@media (max-width: 760px) {
  .related-books .book-cover.has-real-cover:not(.is-video) {
    margin-bottom: 14px;
  }
}

/* Filo Edizioni 1.18.28 — anteprime Approfondimenti più visibili */

/*
 * Le anteprime degli Approfondimenti devono mostrare l'immagine in modo
 * naturale, senza il taglio orizzontale introdotto dall'altezza fissa delle
 * card generiche. La larghezza resta al 100% e l'altezza segue il rapporto
 * originale dell'immagine. La regola non modifica il layout speciale a
 * singolo risultato né le anteprime 16:9 delle Videoguide.
 */
.fe-approfondimenti-grid:not(.fe-approfondimenti-grid--single) .content-card-media img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* PERCORSI DIGITALI 1.18.30 — CTA principale subito sotto la descrizione */
.fe-digital-buy-card-top{margin-top:24px;max-width:100%;padding:18px 20px;border:1px solid var(--color-line);border-top:2px solid var(--color-brass);background:rgba(255,255,255,.72);box-shadow:var(--shadow-sm)}
.fe-digital-buy-card-top .fe-digital-buy-main{display:flex;align-items:center;justify-content:space-between;gap:22px}
.fe-digital-buy-card-top .fe-digital-buy-price{display:flex;flex-direction:column;gap:3px}
.fe-digital-buy-card-top .fe-digital-buy-price-label{font-family:var(--font-sans);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--color-muted)}
.fe-digital-buy-card-top .fe-digital-buy-price strong{font-family:var(--font-serif);font-size:28px;font-weight:400;color:var(--color-ink);line-height:1.1}
.fe-digital-buy-card-top .fe-digital-buy-trust{margin-top:12px;padding-top:11px;border-top:1px solid var(--color-line-soft);font-size:11px;color:var(--color-faint)}
.fe-digital-buy-card-top .fe-digital-buy-trust span+span{margin-left:16px}
@media(max-width:640px){
  .fe-digital-buy-card-top{padding:16px;margin-top:22px}
  .fe-digital-buy-card-top .fe-digital-buy-main{align-items:stretch;flex-direction:column;gap:14px}
  .fe-digital-buy-card-top .fe-digital-buy-button{width:100%;max-width:none;justify-content:center}
  .fe-digital-buy-card-top .fe-digital-buy-price strong{font-size:25px}
  .fe-digital-buy-card-top .fe-digital-buy-trust{display:flex;flex-direction:column;gap:7px}
  .fe-digital-buy-card-top .fe-digital-buy-trust span+span{margin-left:0}
}

/* =====================================================================
   FOOTER — FINITURA EDITORIALE 1.18.39
   Ridisegno finale: gerarchia più chiara, logo leggibile, colonne ordinate,
   meno spazio vuoto e una fascia finale distinta per copyright/legale.
   ===================================================================== */
.site-footer{
  background:var(--color-paper-alt);
  border-top:1px solid var(--color-line);
  padding:56px 0 28px;
}
.site-footer > .container{max-width:1200px}

.site-footer .footer-identity{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);
  gap:64px;
  align-items:start;
  padding:0 0 38px;
  border-bottom:1px solid var(--color-line);
}
.site-footer .footer-brand{max-width:720px}
.site-footer .footer-wordmark{
  display:block;
  margin:0 0 10px;
}
.site-footer .footer-wordmark .footer-logo-img{
  display:block;
  width:auto;
  height:48px;
  max-width:290px;
  object-fit:contain;
  object-position:left center;
  margin:0;
}
.site-footer .footer-about-intro{
  max-width:680px;
  margin:0;
  padding:0;
  border:0;
  text-align:left;
}
.site-footer .footer-about-intro p{
  margin:0;
  max-width:66ch;
  color:var(--color-muted);
  font-size:14px;
  line-height:1.72;
}

.site-footer .footer-connect{
  padding:22px 24px;
  border:1px solid rgba(125,31,61,.18);
  border-left:3px solid var(--color-brand);
  border-radius:10px;
  background:rgba(255,255,255,.38);
}
.site-footer .footer-connect-label{
  margin-bottom:8px;
  color:var(--color-brand-deep);
  font-size:11.5px;
  letter-spacing:.12em;
}
.site-footer .footer-connect p{
  margin:0 0 16px;
  color:var(--color-ink-soft);
  font-size:13.5px;
  line-height:1.65;
}
.site-footer .footer-social{gap:8px}
.site-footer .footer-social a{
  width:34px;
  height:34px;
  background:var(--color-paper);
}

.site-footer .footer-columns{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:42px;
  margin:38px 0 36px;
  padding:0;
  text-align:left;
}
.site-footer .footer-column-title{
  margin:0 0 14px;
  color:var(--color-brand-deep);
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
}
.site-footer .footer-column li{margin:0 0 9px}
.site-footer .footer-column a{
  font-size:14px;
  line-height:1.45;
  color:var(--color-ink-soft);
  transition:color .2s ease;
}
.site-footer .footer-column a:hover{color:var(--color-brand-deep)}

.site-footer .footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 0 0;
  border-top:1px solid var(--color-line-soft);
}
.site-footer .footer-copy{
  color:var(--color-faint);
  font-size:12px;
  line-height:1.5;
}
.site-footer .footer-legal-links{
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.site-footer .footer-legal-links a{
  font-size:12px;
  color:var(--color-muted);
}
.site-footer .footer-legal-links span{color:var(--color-line)}

.site-footer .footer-legal{
  margin-top:8px;
  color:var(--color-faint);
  font-size:11.5px;
  line-height:1.55;
  text-align:center;
}

/* La home eredita il footer ma non deve aggiungere spazio vuoto attorno al
   contenitore: il footer stesso gestisce ora il proprio respiro verticale. */
.home .site-footer .container{padding-top:0;padding-bottom:0}
.home .footer-wordmark{margin-bottom:10px}

@media (max-width: 980px){
  .site-footer .footer-identity{
    grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
    gap:40px;
  }
  .site-footer .footer-columns{gap:30px}
}

@media (max-width: 760px){
  .site-footer{padding:44px 0 24px}
  .site-footer .footer-identity{
    grid-template-columns:1fr;
    gap:28px;
    padding-bottom:30px;
  }
  .site-footer .footer-wordmark .footer-logo-img{
    height:42px;
    margin:0 auto;
  }
  .site-footer .footer-about-intro{text-align:center;margin:0 auto}
  .site-footer .footer-connect{max-width:520px;margin:0 auto;width:100%}
  .site-footer .footer-columns{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px 24px;
    margin:30px 0;
  }
  .site-footer .footer-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .site-footer .footer-legal-links{justify-content:center}
}

@media (max-width: 520px){
  .site-footer .footer-columns{grid-template-columns:1fr;gap:24px;text-align:center}
  .site-footer .footer-column ul{max-width:260px;margin:0 auto}
}

/* ============================================
   1.18.52 — Pagina Catalogo: card editoriali compatte
   Immagine laterale su desktop, stacked su mobile.
   ============================================ */
/* ============================================
   1.18.44 — Pagina Catalogo
   ============================================ */
.fe-catalogo-page { background: var(--color-paper); }
.fe-catalogo-hero {
  padding: 28px 0 52px;
  background:
    radial-gradient(circle at 78% 22%, rgba(171,124,52,.10), transparent 32%),
    linear-gradient(180deg, var(--color-paper) 0%, var(--color-paper-alt) 100%);
  border-bottom: 1px solid var(--color-line-soft);
}
.fe-catalogo-breadcrumb {
  display:flex; align-items:center; gap:10px; margin-bottom:42px;
  font: 500 14px/1.4 var(--font-sans); color:var(--color-muted);
}
.fe-catalogo-breadcrumb a { color:inherit; text-decoration:none; }
.fe-catalogo-breadcrumb a:hover { color:var(--color-brand); }
.fe-catalogo-hero-grid {
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:48px; align-items:center;
}
.fe-catalogo-hero-copy h1 {
  margin:8px 0 18px; max-width:780px; color:var(--color-brand-deep);
  font:400 clamp(44px,6vw,78px)/.98 var(--font-display); letter-spacing:-.025em;
}
.fe-catalogo-lede { max-width:760px; margin:0; color:var(--color-ink); font:400 clamp(20px,2.2vw,28px)/1.35 var(--font-serif); }
.fe-catalogo-intro { max-width:650px; margin:24px 0 0; color:var(--color-muted); font:500 16px/1.65 var(--font-sans); }
.fe-catalogo-hero-mark {
  justify-self:end; width:min(100%,380px); padding:36px 38px; border:1px solid rgba(171,124,52,.45); border-radius:var(--radius-md);
  background:rgba(255,255,255,.42); box-shadow:var(--shadow-md); transform:rotate(1deg);
}
.fe-catalogo-hero-mark span { display:block; color:var(--color-brand); font:400 31px/1.2 var(--font-display); }
.fe-catalogo-hero-mark span + span { margin-top:12px; padding-top:12px; border-top:1px solid var(--color-line); }
.fe-catalogo-sections { padding-top:72px; padding-bottom:72px; }
.fe-catalogo-heading { max-width:760px; margin:0 auto 40px; text-align:center; }
.fe-catalogo-heading h2 { margin:6px 0 12px; color:var(--color-brand-deep); font:400 clamp(32px,4vw,50px)/1.05 var(--font-display); }
.fe-catalogo-heading p { margin:0; color:var(--color-muted); font:400 17px/1.65 var(--font-sans); }
.fe-catalogo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.fe-catalogo-card {
  display:grid; grid-template-columns:minmax(220px, 42%) minmax(0, 1fr); overflow:hidden; text-decoration:none; color:inherit;
  min-height:300px; background:#fffdfa; border:1px solid var(--color-line-soft); border-radius:16px; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.fe-catalogo-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--color-line); }
.fe-catalogo-card-media { width:100%; aspect-ratio:1 / 1; overflow:hidden; background:#fffdfa; align-self:start; }
.fe-catalogo-card-media img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; transition:transform .35s ease; }
.fe-catalogo-card:hover .fe-catalogo-card-media img { transform:scale(1.015); }
.fe-catalogo-card-body { display:flex; flex-direction:column; align-items:flex-start; padding:24px 26px 24px; min-width:0; }
.fe-catalogo-card-eyebrow { color:var(--color-brass); font:700 12px/1.2 var(--font-sans); letter-spacing:.13em; }
.fe-catalogo-card h3 { margin:7px 0 9px; color:var(--color-brand-deep); font:400 clamp(27px,2.5vw,36px)/1.05 var(--font-display); }
.fe-catalogo-card p { margin:0; max-width:520px; color:var(--color-ink-soft); font:400 15px/1.55 var(--font-sans); }
.fe-catalogo-card-link { margin-top:auto; padding-top:18px; color:var(--color-brand); font:700 13px/1.3 var(--font-sans); }
.fe-catalogo-card-link span { display:inline-block; margin-left:5px; transition:transform .2s ease; }
.fe-catalogo-card:hover .fe-catalogo-card-link span { transform:translateX(4px); }
.fe-catalogo-closing { padding:0 0 72px; text-align:center; }
.fe-catalogo-rule { width:min(100%,700px); height:1px; margin:0 auto 24px; background:linear-gradient(90deg,transparent,var(--color-brass),transparent); }
.fe-catalogo-closing p { margin:0; color:var(--color-ink); font:italic 400 clamp(21px,2.3vw,29px)/1.35 var(--font-serif); }
.fe-catalogo-closing span { display:block; margin-top:8px; color:var(--color-brass); font:500 13px/1.4 var(--font-sans); letter-spacing:.08em; }
@media (max-width: 820px) {
  .fe-catalogo-hero { padding-top:22px; }
  .fe-catalogo-breadcrumb { margin-bottom:28px; }
  .fe-catalogo-hero-grid { grid-template-columns:1fr; gap:28px; }
  .fe-catalogo-hero-mark { justify-self:start; width:100%; max-width:460px; }
  .fe-catalogo-grid { grid-template-columns:1fr; gap:22px; }
  .fe-catalogo-card { grid-template-columns:minmax(200px, 40%) minmax(0, 1fr); min-height:0; }
  .fe-catalogo-card-media { width:100%; aspect-ratio:1 / 1; }
  .fe-catalogo-card-body { min-height:0; }
}
@media (max-width: 520px) {
  .fe-catalogo-hero { padding-bottom:38px; }
  .fe-catalogo-sections { padding-top:52px; padding-bottom:52px; }
  .fe-catalogo-card { display:flex; flex-direction:column; min-height:0; }
  .fe-catalogo-card-media { width:100%; aspect-ratio:1 / 1; height:auto; }
  .fe-catalogo-card-body { padding:22px 22px 24px; }
  .fe-catalogo-hero-mark { padding:26px 24px; }
  .fe-catalogo-hero-mark span { font-size:26px; }
}


/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.5
   Rifinitura visuale: newsletter, interlink e risorse.
   ============================================ */
/* Interlink editoriale: più compatto, meno "box promozionale". */
.fe-editorial-inline-link{
  margin:34px 0;
  padding:17px 20px 18px;
  background:var(--color-paper);
  border:1px solid var(--color-line);
  border-left:3px solid var(--color-brand);
  border-radius:4px;
  box-shadow:none;
}
.fe-editorial-inline-link .fe-editorial-inline-kicker{margin-bottom:6px}
.fe-editorial-inline-link h3{
  margin:0 0 5px;
  font-family:var(--font-display);
  font-size:21px;
  line-height:1.2;
  font-weight:400;
  color:var(--color-ink);
}
.fe-editorial-inline-link p{
  margin:0 0 8px;
  max-width:62ch;
  font-size:14px;
  line-height:1.55;
}
.fe-editorial-inline-link>a:not(.btn){font-size:14px;font-weight:700}

/* Risorsa inline: proporzioni più editoriali e meno ingombranti. */
.fe-editorial-inline-resource{
  grid-template-columns:88px minmax(0,1fr);
  gap:18px;
  margin:34px 0;
  padding:18px;
}
.fe-editorial-inline-resource-media{width:88px;min-height:120px}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{width:88px;height:120px}
.fe-editorial-inline-resource-media img{height:120px}
.fe-editorial-inline-resource-body h3{font-size:22px}
.fe-editorial-inline-resource-body p{font-size:14px;line-height:1.55;margin-bottom:12px}

/* Newsletter: più compatta, leggibile e senza placeholder quasi invisibile. */
.fe-editorial-newsletter{padding:42px 0 26px}
.fe-editorial-newsletter-inner{
  grid-template-columns:minmax(0,1.18fr) minmax(290px,.82fr);
  gap:34px;
  max-width:980px;
  padding:28px 32px;
}
.fe-editorial-newsletter h2{
  margin:6px 0 10px;
  max-width:560px;
  font-size:clamp(29px,3vw,35px);
  line-height:1.12;
}
.fe-editorial-newsletter-copy p{font-size:14.5px;line-height:1.6}
.fe-editorial-newsletter-form{
  padding:14px;
  background:var(--color-paper-alt);
}
.fe-editorial-newsletter-form .newsletter-form{display:grid;grid-template-columns:1fr;gap:9px}
.fe-editorial-newsletter-form input[type="email"]{
  width:100%;
  min-height:50px;
  padding:0 15px;
  background:#fff !important;
  color:var(--color-ink) !important;
  border:1px solid var(--color-line) !important;
  border-radius:5px;
  box-sizing:border-box;
}
.fe-editorial-newsletter-form input[type="email"]::placeholder{
  color:var(--color-muted) !important;
  opacity:1;
}
.fe-editorial-newsletter-form input[type="email"]:focus{
  background:#fff !important;
  color:var(--color-ink) !important;
  border-color:var(--color-brand) !important;
  outline:none;
}
.fe-editorial-newsletter-form .btn{width:100%;justify-content:center;min-height:50px}

/* Card videoguida: elimina la ridondanza "Videoguida + topic" e compatta il blocco. */
.fe-editorial-resource-card .content-card{
  grid-template-columns:130px minmax(0,1fr);
  gap:20px;
  align-items:center;
}
.fe-editorial-resource-card .content-card-media{
  height:108px;
  aspect-ratio:16/9;
  background:var(--color-paper-alt);
}
.fe-editorial-resource-card .content-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.fe-editorial-resource-card .content-card-kind{display:none}
.fe-editorial-resource-card .content-card-meta{margin-bottom:6px}
.fe-editorial-resource-card .content-card-topic{
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-brand);
}
.fe-editorial-resource-card .content-card-body h3{
  margin:0 0 8px;
  font-family:var(--font-display);
  font-size:22px;
  line-height:1.18;
  font-weight:400;
}
.fe-editorial-resource-card .content-card-excerpt{
  margin:0 0 9px;
  font-size:13.5px;
  line-height:1.55;
  color:var(--color-ink-soft);
}
.fe-editorial-resource-card .content-card-link{font-size:13px;font-weight:700;color:var(--color-brand-deep)}
.fe-editorial-resource-card .content-card-play{width:42px;height:42px;font-size:15px}

/* Intestazioni delle sezioni finali: meno spazio vuoto, più gerarchia. */
.fe-editorial-related-posts{padding:52px 0 58px}
.fe-editorial-related-head{margin-bottom:26px}
.fe-editorial-related-head h2{font-size:clamp(29px,3.2vw,38px)}
.fe-editorial-resource-grid{margin-top:24px}
.fe-editorial-resource-card{padding:18px}
.fe-editorial-final-cta{padding:50px 0 66px}
.fe-editorial-final-cta-inner{padding:34px 28px}

@media(max-width:760px){
  .fe-editorial-newsletter-inner{grid-template-columns:1fr;gap:22px;padding:25px 22px}
  .fe-editorial-newsletter h2{font-size:30px}
}
@media(max-width:640px){
  .fe-editorial-inline-link{padding:16px 17px}
  .fe-editorial-inline-resource{grid-template-columns:72px minmax(0,1fr);gap:14px;padding:16px}
  .fe-editorial-inline-resource-media{width:72px;min-height:98px}
  .fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{width:72px;height:98px}
  .fe-editorial-inline-resource-media img{height:98px}
  .fe-editorial-inline-resource-body h3{font-size:20px}
  .fe-editorial-resource-card .content-card{grid-template-columns:88px minmax(0,1fr);gap:14px}
  .fe-editorial-resource-card .content-card-media{height:76px}
  .fe-editorial-resource-card .content-card-body h3{font-size:20px}
}

/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.5
   Correzioni finali: box bianchi e card videoguida.
   ============================================ */

/* I richiami editoriali dentro l'articolo devono restare bianchi,
   così non competono visivamente con i box tematici rosa/beige. */
.fe-editorial-inline-link,
.fe-editorial-inline-resource {
  background: #fff;
}

.fe-editorial-inline-resource-media {
  background: #fff;
}

/* La risorsa videoguida nel blocco finale deve rispettare realmente
   la griglia 130px + contenuto: impedisce all'immagine di espandersi
   e sovrapporsi al testo. */
.fe-editorial-resource-card .content-card {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  min-width: 0;
}

.fe-editorial-resource-card .content-card-media {
  width: 130px;
  min-width: 130px;
  max-width: 130px;
  height: 108px;
  min-height: 0;
  aspect-ratio: auto;
  overflow: hidden;
  position: relative;
  border-radius: 4px;
  background: #fff;
}

.fe-editorial-resource-card .content-card-media img,
.fe-editorial-resource-card .content-card--video .content-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  aspect-ratio: auto;
}

.fe-editorial-resource-card .content-card-body {
  min-width: 0;
  overflow-wrap: break-word;
}

@media (max-width: 640px) {
  .fe-editorial-resource-card .content-card {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 14px;
  }
  .fe-editorial-resource-card .content-card-media {
    width: 88px;
    min-width: 88px;
    max-width: 88px;
    height: 76px;
  }
}

/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.7
   Rifinitura premium: interlink con immagine,
   risorsa inline più importante, newsletter editoriale.
   ============================================ */

/* CONTINUA A LEGGERE — richiamo editoriale con immagine */
.fe-editorial-inline-link{
  margin:42px 0;
  padding:20px;
  background:#fff !important;
  border:1px solid rgba(123,36,56,.16);
  border-left:3px solid var(--color-brand);
  border-radius:6px;
  box-shadow:0 8px 24px rgba(45,41,39,.06);
}
.fe-editorial-inline-link .fe-editorial-inline-kicker{margin-bottom:12px}
.fe-editorial-inline-link-grid{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:20px;
  align-items:center;
}
.fe-editorial-inline-link-media{
  display:block;
  width:120px;
  height:86px;
  overflow:hidden;
  border-radius:4px;
  background:var(--color-paper-alt);
}
.fe-editorial-inline-link-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.fe-editorial-inline-link-body h3{
  margin:0 0 7px;
  font-family:var(--font-display);
  font-size:24px;
  line-height:1.18;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-editorial-inline-link-body p{
  margin:0 0 9px;
  max-width:62ch;
  font-size:14px;
  line-height:1.55;
  color:var(--color-ink-soft);
}
.fe-editorial-inline-link-body>a:not(.btn){
  font-size:14px;
  font-weight:700;
  color:var(--color-brand-deep);
  text-decoration:none;
}
.fe-editorial-inline-link-body>a:not(.btn):hover{text-decoration:underline}

/* RISORSA INLINE — più premium e con cover realmente protagonista */
.fe-editorial-inline-resource{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:28px;
  align-items:center;
  margin:44px 0;
  padding:26px 28px;
  background:#fff !important;
  border:1px solid rgba(123,36,56,.18);
  border-radius:8px;
  box-shadow:0 12px 30px rgba(45,41,39,.08);
  position:relative;
  overflow:hidden;
}
.fe-editorial-inline-resource:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:var(--color-brand);
}
.fe-editorial-inline-resource-media{
  width:140px;
  min-height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--color-paper-alt);
  border-radius:5px;
  overflow:hidden;
  box-shadow:0 6px 18px rgba(45,41,39,.12);
}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{
  width:140px;
  height:190px;
  margin:0;
  background:transparent;
  border-radius:5px;
  overflow:hidden;
}
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover .book-cover-image,
.fe-editorial-inline-resource-media .fe-editorial-inline-book-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.fe-editorial-inline-resource-media img{display:block;width:100%;height:190px;object-fit:contain}
.fe-editorial-inline-resource-body .fe-editorial-inline-kicker{margin-bottom:9px}
.fe-editorial-inline-resource-body h3{
  margin:0 0 10px;
  font-family:var(--font-display);
  font-size:28px;
  line-height:1.15;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-editorial-inline-resource-body p{
  margin:0 0 17px;
  max-width:58ch;
  font-size:15px;
  line-height:1.65;
  color:var(--color-ink-soft);
}
.fe-editorial-inline-resource-body .btn{
  min-height:44px;
  padding:10px 18px;
}

/* NEWSLETTER — più distintiva, editoriale e invitante */
.fe-editorial-newsletter{padding:52px 0 34px}
.fe-editorial-newsletter-inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);
  gap:42px;
  max-width:980px;
  margin:0 auto;
  padding:38px 42px;
  color:#fff;
  background:linear-gradient(135deg,var(--color-brand-deep),var(--color-brand));
  border:0;
  border-radius:10px;
  box-shadow:0 18px 42px rgba(95,23,41,.20);
  overflow:hidden;
}
.fe-editorial-newsletter-inner:after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-80px;
  top:-90px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  pointer-events:none;
}
.fe-editorial-newsletter .section-kicker{
  position:relative;
  z-index:1;
  color:#f7dfe3;
}
.fe-editorial-newsletter h2{
  position:relative;
  z-index:1;
  margin:8px 0 13px;
  max-width:600px;
  font-family:var(--font-display);
  font-size:clamp(30px,3.3vw,42px);
  line-height:1.08;
  font-weight:400;
  color:#fff;
}
.fe-editorial-newsletter-copy>p{
  position:relative;
  z-index:1;
  margin:0;
  max-width:590px;
  color:rgba(255,255,255,.88);
  font-size:15px;
  line-height:1.65;
}
.fe-editorial-newsletter-benefits{
  position:relative;
  z-index:1;
  margin:18px 0 0;
  padding:0;
  list-style:none;
}
.fe-editorial-newsletter-benefits li{
  position:relative;
  margin:7px 0;
  padding-left:20px;
  color:rgba(255,255,255,.92);
  font-size:13.5px;
}
.fe-editorial-newsletter-benefits li:before{
  content:"✓";
  position:absolute;
  left:0;
  font-weight:700;
  color:#f3d2a0;
}
.fe-editorial-newsletter-form{
  position:relative;
  z-index:2;
  align-self:center;
  padding:22px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.20);
  border-radius:8px;
  backdrop-filter:blur(4px);
}
.fe-editorial-newsletter-form .newsletter-form{display:grid;grid-template-columns:1fr;gap:10px}
.fe-editorial-newsletter-form input[type="email"]{
  width:100%;
  min-height:54px;
  padding:0 16px;
  background:#fff !important;
  color:var(--color-ink) !important;
  border:1px solid rgba(255,255,255,.35) !important;
  border-radius:5px;
  box-sizing:border-box;
}
.fe-editorial-newsletter-form input[type="email"]::placeholder{color:#766e69 !important;opacity:1}
.fe-editorial-newsletter-form input[type="email"]:focus{border-color:#fff !important;outline:2px solid rgba(255,255,255,.28)}
.fe-editorial-newsletter-form .btn{
  width:100%;
  min-height:52px;
  justify-content:center;
  background:#d2a24c;
  color:#fff;
  border:0;
  font-weight:700;
}
.fe-editorial-newsletter-form .btn:hover{filter:brightness(.96)}
.fe-editorial-newsletter-form .lead-message{margin:10px 0 0;color:rgba(255,255,255,.9);font-size:13px}
.fe-editorial-newsletter-form .lead-message.error{color:#ffd9df}
.fe-editorial-newsletter-form .lead-message.success{color:#d9f0df}

@media(max-width:760px){
  .fe-editorial-inline-link-grid{grid-template-columns:96px minmax(0,1fr);gap:16px}
  .fe-editorial-inline-link-media{width:96px;height:76px}
  .fe-editorial-inline-link-body h3{font-size:21px}
  .fe-editorial-inline-resource{grid-template-columns:112px minmax(0,1fr);gap:20px;padding:22px}
  .fe-editorial-inline-resource-media{width:112px;min-height:154px}
  .fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{width:112px;height:154px}
  .fe-editorial-inline-resource-media img{height:154px}
  .fe-editorial-inline-resource-body h3{font-size:24px}
  .fe-editorial-newsletter-inner{grid-template-columns:1fr;gap:24px;padding:30px 24px}
  .fe-editorial-newsletter h2{font-size:31px}
}
@media(max-width:640px){
  .fe-editorial-inline-link{padding:17px}
  .fe-editorial-inline-link-grid{grid-template-columns:82px minmax(0,1fr);gap:14px}
  .fe-editorial-inline-link-media{width:82px;height:70px}
  .fe-editorial-inline-link-body h3{font-size:19px}
  .fe-editorial-inline-link-body p{font-size:13px;line-height:1.5}
  .fe-editorial-inline-resource{grid-template-columns:88px minmax(0,1fr);gap:14px;padding:17px;margin:34px 0}
  .fe-editorial-inline-resource-media{width:88px;min-height:122px}
  .fe-editorial-inline-resource-media .fe-editorial-inline-book-cover{width:88px;height:122px}
  .fe-editorial-inline-resource-media img{height:122px}
  .fe-editorial-inline-resource-body h3{font-size:20px}
  .fe-editorial-inline-resource-body p{font-size:13px;line-height:1.5;margin-bottom:12px}
  .fe-editorial-newsletter{padding:38px 0 22px}
  .fe-editorial-newsletter-inner{padding:27px 20px;border-radius:8px}
  .fe-editorial-newsletter h2{font-size:28px}
  .fe-editorial-newsletter-copy>p{font-size:14px}
  .fe-editorial-newsletter-form{padding:16px}
}


/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.7
   Rifinitura finale delle card editoriali:
   videoguida, sidebar e continua a leggere.
   ============================================ */

/* VIDEOGUIDA / RISORSA FINALE — griglia stabile e gerarchia pulita */
.fe-editorial-resource-card{
  padding:20px 20px 22px;
  background:#fff;
  border:1px solid rgba(123,36,56,.16);
  border-radius:7px;
  box-shadow:0 8px 24px rgba(45,41,39,.06);
}
.fe-editorial-resource-card > .fe-editorial-resource-kicker{
  display:block;
  margin:0 0 16px;
}
.fe-editorial-resource-card .content-card{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:22px;
  align-items:start;
  min-width:0;
  margin:0;
}
.fe-editorial-resource-card .content-card-media{
  width:150px;
  min-width:150px;
  max-width:150px;
  height:100px;
  min-height:100px;
  margin:0;
  border-radius:5px;
  overflow:hidden;
  background:#f7f1e8;
  align-self:start;
}
.fe-editorial-resource-card .content-card-media img,
.fe-editorial-resource-card .content-card--video .content-card-media img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:cover;
}
.fe-editorial-resource-card .content-card-body{
  min-width:0;
  overflow-wrap:anywhere;
  align-self:start;
  padding:0;
}
.fe-editorial-resource-card .content-card-meta{
  margin:0 0 7px;
  line-height:1;
}
.fe-editorial-resource-card .content-card-topic{
  font-size:10px;
  letter-spacing:.12em;
  color:var(--color-brand);
}
.fe-editorial-resource-card .content-card-body h3{
  margin:0 0 9px;
  font-family:var(--font-display);
  font-size:25px;
  line-height:1.15;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-editorial-resource-card .content-card-excerpt{
  margin:0 0 10px;
  font-size:14px;
  line-height:1.55;
  color:var(--color-ink-soft);
}
.fe-editorial-resource-card .content-card-link{
  font-size:14px;
  font-weight:700;
  color:var(--color-brand-deep);
}
.fe-editorial-resource-card .content-card-play{
  width:42px;
  height:42px;
  font-size:15px;
}

/* SIDEBAR NEWSLETTER — piccolo modulo editoriale, non semplice separatore */
.fe-editorial-sidebar-newsletter{
  margin-top:18px;
  padding:17px 15px 15px;
  border:1px solid rgba(123,36,56,.14);
  border-left:3px solid var(--color-brand);
  border-radius:6px;
  background:#fff;
  box-shadow:0 5px 16px rgba(45,41,39,.045);
}
.fe-editorial-sidebar-newsletter .fe-editorial-sidebar-kicker{margin-bottom:8px}
.fe-editorial-sidebar-newsletter p{
  margin:0 0 13px;
  color:var(--color-ink-soft);
  font-size:12.5px;
  line-height:1.55;
}
.fe-editorial-sidebar-newsletter .btn{
  width:100%;
  min-height:42px;
  justify-content:center;
  border-color:rgba(123,36,56,.22);
  background:#fff;
  color:var(--color-brand-deep);
}
.fe-editorial-sidebar-newsletter .btn:hover{
  background:var(--color-brand-soft);
  border-color:var(--color-brand);
}

/* CONTINUA A LEGGERE — più compatto, editoriale e con immagine ben integrata */
.fe-editorial-inline-link{
  margin:36px 0;
  padding:18px 20px 19px;
  background:#fff !important;
  border:1px solid rgba(123,36,56,.16);
  border-left:3px solid var(--color-brand);
  border-radius:6px;
  box-shadow:0 7px 20px rgba(45,41,39,.055);
}
.fe-editorial-inline-link .fe-editorial-inline-kicker{margin:0 0 5px}
.fe-editorial-inline-link-grid{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.fe-editorial-inline-link-media{
  display:block;
  width:112px;
  height:82px;
  margin:0;
  overflow:hidden;
  border-radius:4px;
  background:#f7f1e8;
}
.fe-editorial-inline-link-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.fe-editorial-inline-link-body{min-width:0}
.fe-editorial-inline-link-body h3{
  margin:0 0 6px;
  font-family:var(--font-display);
  font-size:22px;
  line-height:1.16;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-editorial-inline-link-body p{
  margin:0 0 8px;
  max-width:65ch;
  font-size:13.5px;
  line-height:1.5;
  color:var(--color-ink-soft);
}
.fe-editorial-inline-link-body>a:not(.btn){
  font-size:13.5px;
  font-weight:700;
  color:var(--color-brand-deep);
}

@media(max-width:760px){
  .fe-editorial-resource-card .content-card{
    grid-template-columns:120px minmax(0,1fr);
    gap:18px;
  }
  .fe-editorial-resource-card .content-card-media{
    width:120px;
    min-width:120px;
    max-width:120px;
    height:86px;
    min-height:86px;
  }
  .fe-editorial-resource-card .content-card-body h3{font-size:22px}
}

@media(max-width:640px){
  .fe-editorial-resource-card{padding:16px}
  .fe-editorial-resource-card > .fe-editorial-resource-kicker{margin-bottom:13px}
  .fe-editorial-resource-card .content-card{
    grid-template-columns:92px minmax(0,1fr);
    gap:14px;
  }
  .fe-editorial-resource-card .content-card-media{
    width:92px;
    min-width:92px;
    max-width:92px;
    height:70px;
    min-height:70px;
  }
  .fe-editorial-resource-card .content-card-body h3{font-size:20px}
  .fe-editorial-resource-card .content-card-excerpt{font-size:13px;line-height:1.5}
  .fe-editorial-inline-link{padding:16px 16px 17px}
  .fe-editorial-inline-link-grid{grid-template-columns:92px minmax(0,1fr);gap:14px}
  .fe-editorial-inline-link-media{width:92px;height:70px}
  .fe-editorial-inline-link-body h3{font-size:19px}
  .fe-editorial-inline-link-body p{font-size:12.5px;line-height:1.48}
}

/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.9
   Rifinitura finale interlink "Continua a leggere".
   ============================================ */
.fe-editorial-inline-link{
  margin:34px 0;
  padding:18px 22px 19px;
  background:#fff !important;
  border:1px solid rgba(123,36,56,.15);
  border-left:3px solid var(--color-brand);
  border-radius:6px;
  box-shadow:0 5px 16px rgba(45,41,39,.045);
}
.fe-editorial-inline-link-grid{
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:24px;
  align-items:start;
  margin-top:0;
}
.fe-editorial-inline-link-media{
  width:145px;
  height:100px;
  margin:0;
  overflow:hidden;
  border-radius:5px;
  background:#f7f1e8;
}
.fe-editorial-inline-link-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.fe-editorial-inline-link-body{min-width:0}
.fe-editorial-inline-link-body h3{
  margin:0 0 7px;
  font-family:var(--font-display);
  font-size:21px;
  line-height:1.18;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-editorial-inline-link-body p{
  margin:0 0 10px;
  max-width:62ch;
  font-size:14px;
  line-height:1.52;
  color:var(--color-ink-soft);
}
.fe-editorial-inline-link-body>a:not(.btn){
  font-size:13.5px;
  font-weight:700;
  color:var(--color-brand-deep);
}
.fe-editorial-inline-link-body>a:not(.btn):hover{text-decoration:underline}

@media(max-width:760px){
  .fe-editorial-inline-link-grid{grid-template-columns:128px minmax(0,1fr);gap:20px}
  .fe-editorial-inline-link-media{width:128px;height:92px}
  .fe-editorial-inline-link-body h3{font-size:20px}
}
@media(max-width:560px){
  .fe-editorial-inline-link{padding:16px 16px 17px;margin:30px 0}
  .fe-editorial-inline-link-grid{grid-template-columns:96px minmax(0,1fr);gap:15px;align-items:start}
  .fe-editorial-inline-link-media{width:96px;height:74px}
  .fe-editorial-inline-link-body h3{font-size:18px;line-height:1.2}
  .fe-editorial-inline-link-body p{font-size:12.5px;line-height:1.48;margin-bottom:7px}
  .fe-editorial-inline-link-body>a:not(.btn){font-size:12.5px}
}


/* ============================================
   APPROFONDIMENTO SINGOLO 1.19.9
   Riduzione dello spazio vuoto tra kicker e contenuto
   del box "Continua a leggere".
   ============================================ */
.fe-editorial-inline-link .fe-editorial-inline-kicker{margin-bottom:5px}
.fe-editorial-inline-link-grid{align-items:start;margin-top:0}

/* 1.20.0 — fix definitivo dello spazio sopra il contenuto del box “Continua a leggere”.
   La regola globale .fe-editorial-main .editorial-body h3/p aveva una specificità
   maggiore e reintroduceva il margine superiore dentro la card. */
.fe-editorial-main .editorial-body .fe-editorial-inline-link-body h3{
  margin:0 0 7px !important;
}
.fe-editorial-main .editorial-body .fe-editorial-inline-link-body p{
  margin:0 0 10px !important;
}
.fe-editorial-main .editorial-body .fe-editorial-inline-link-grid{
  align-items:start;
  margin-top:0;
}

/* FE 1.20.7 — componente nativa “Continua ad approfondire”, compatta ed editoriale. */
.fe-editorial-native-continue{
  position:relative;
  margin:42px 0 18px;
  padding:28px 30px 24px;
  overflow:hidden;
  background:#f7f1e8;
  border:1px solid #dfd3c7;
  border-radius:18px;
  box-shadow:0 8px 24px rgba(95,23,41,.04);
}
.fe-editorial-native-continue:after{
  content:"";
  position:absolute;
  left:30px;
  top:0;
  width:58px;
  height:3px;
  border-radius:0 0 4px 4px;
  background:#7b2438;
}
.fe-editorial-native-continue-head{
  position:relative;
  z-index:1;
  max-width:820px;
  margin:0 0 18px;
}
.fe-editorial-native-continue-head>.section-kicker,
.fe-editorial-native-continue-explore-kicker{
  display:block;
  margin:0 0 7px;
  color:#7b2438;
  font-size:.68rem;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.fe-editorial-native-continue h2{
  margin:0 0 6px;
  color:#5f1729;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.75rem,2.4vw,2.25rem);
  line-height:1.1;
  font-weight:500;
  letter-spacing:-.01em;
}
.fe-editorial-native-continue-head>p{
  margin:0;
  color:#5c554f;
  font-size:.94rem;
  line-height:1.5;
}
.fe-editorial-native-continue-posts{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.fe-editorial-native-continue-card{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  min-width:0;
  overflow:hidden;
  background:#fffdf9;
  border:1px solid #dfd3c7;
  border-radius:13px;
  color:#5f1729;
  text-decoration:none;
  box-shadow:0 4px 14px rgba(95,23,41,.035);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.fe-editorial-native-continue-card:hover{
  transform:translateY(-2px);
  border-color:#cdbdb0;
  box-shadow:0 9px 20px rgba(95,23,41,.07);
}
.fe-editorial-native-continue-card-media,
.fe-editorial-native-continue-card-placeholder{
  display:block;
  width:110px;
  height:104px;
  overflow:hidden;
  background:#eee4d7;
}
.fe-editorial-native-continue-card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.fe-editorial-native-continue-card-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px;
  color:#7b2438;
  font-family:Georgia,"Times New Roman",serif;
  text-align:center;
  font-size:.8rem;
}
.fe-editorial-native-continue-card-body{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:13px 15px;
}
.fe-editorial-native-continue-meta{
  display:block;
  margin:0 0 5px;
  color:#7b2438;
  font-size:.61rem;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
}
.fe-editorial-native-continue-card-title{
  display:block;
  color:#5f1729;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.16rem;
  line-height:1.18;
  text-decoration:none;
}
.fe-editorial-native-continue-card-excerpt{
  display:-webkit-box;
  margin-top:5px;
  overflow:hidden;
  color:#615a54;
  font-size:.79rem;
  line-height:1.38;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.fe-editorial-native-continue-read{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  color:#7b2438;
  font-size:.77rem;
  font-weight:800;
  text-decoration:none;
}
.fe-editorial-native-continue-card:hover .fe-editorial-native-continue-read{
  text-decoration:none;
}
.fe-editorial-native-continue-explore{
  position:relative;
  z-index:1;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #dfd3c7;
}
.fe-editorial-native-continue-explore-kicker{
  margin-bottom:7px;
}
.fe-editorial-native-continue-topic-list{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.fe-editorial-native-continue-topic{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:8px 11px;
  border:1px solid #dfd3c7;
  border-radius:999px;
  background:#fffdf9;
  color:#5f1729;
  text-decoration:none;
  font-size:.8rem;
  font-weight:700;
  line-height:1.2;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.fe-editorial-native-continue-topic:hover{
  background:#fff;
  border-color:#cdbdb0;
  transform:translateY(-1px);
  text-decoration:none;
}
@media(max-width:820px){
  .fe-editorial-native-continue-posts{grid-template-columns:1fr}
}
@media(max-width:680px){
  .fe-editorial-native-continue{
    margin:30px 0 10px;
    padding:22px 15px 18px;
    border-radius:14px;
  }
  .fe-editorial-native-continue:after{left:15px;width:46px}
  .fe-editorial-native-continue-head{margin-bottom:12px}
  .fe-editorial-native-continue-head>.section-kicker{font-size:.58rem}
  .fe-editorial-native-continue h2{font-size:1.58rem}
  .fe-editorial-native-continue-head>p{font-size:.86rem}
  .fe-editorial-native-continue-card{grid-template-columns:94px minmax(0,1fr)}
  .fe-editorial-native-continue-card-media,
  .fe-editorial-native-continue-card-placeholder{width:94px;height:92px}
  .fe-editorial-native-continue-card-body{padding:10px 11px}
  .fe-editorial-native-continue-card-title{font-size:1rem}
  .fe-editorial-native-continue-card-excerpt{font-size:.73rem}
  .fe-editorial-native-continue-read{font-size:.71rem;margin-top:5px}
  .fe-editorial-native-continue-topic{font-size:.74rem;padding:7px 9px}
}


/* FE 1.20.8 — gerarchia commerciale degli approfondimenti.
   Le risorse del catalogo precedono newsletter e contenuti editoriali correlati;
   “Continua ad approfondire” resta una navigazione secondaria e compatta. */
.fe-editorial-commercial-resources{
  padding:46px 0 38px;
  background:#f7f1e8;
  border-top:1px solid rgba(123,36,56,.08);
  border-bottom:1px solid rgba(123,36,56,.08);
}
.fe-editorial-commercial-resources .fe-editorial-related-head{
  max-width:820px;
  margin:0 0 24px;
  text-align:left;
}
.fe-editorial-commercial-resources .fe-editorial-related-head h2{
  margin:4px 0 8px;
  font-size:clamp(30px,3.1vw,40px);
}
.fe-editorial-commercial-resources .fe-editorial-related-head p{
  max-width:720px;
  font-size:15px;
}
.fe-editorial-commercial-resources .fe-editorial-resource-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:18px;
  max-width:1000px;
  margin:0;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card{
  min-width:0;
  padding:20px 22px 22px;
  background:#fff;
  border:1px solid rgba(123,36,56,.16);
  border-radius:10px;
  box-shadow:0 8px 24px rgba(45,41,39,.055);
}
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary{
  border-top:3px solid #7b2438;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card{
  grid-template-columns:176px minmax(0,1fr);
  gap:24px;
  align-items:center;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card .book-cover{
  max-width:176px;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card-body h3{
  font-size:26px;
  line-height:1.13;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card-body p,
.fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card-excerpt{
  max-width:520px;
}
.fe-editorial-commercial-resources .fe-editorial-resource-card:not(.fe-editorial-resource-card--primary){
  align-self:start;
}
.fe-editorial-commercial-resources .fe-editorial-resource-kicker{
  margin-bottom:14px;
}

.fe-editorial-native-continue-wrap{
  padding:28px 0 10px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue{
  max-width:1000px;
  margin:0 auto;
  padding:24px 26px 20px;
  background:#fff;
  border:1px solid #dfd3c7;
  border-radius:12px;
  box-shadow:none;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue:after{
  left:26px;
  width:52px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-head{
  margin-bottom:14px;
  max-width:720px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue h2{
  font-size:1.7rem;
  margin-bottom:4px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-head>p{
  font-size:.9rem;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-posts{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card{
  grid-template-columns:86px minmax(0,1fr);
  border-radius:10px;
  box-shadow:none;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-media,
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-placeholder{
  width:86px;
  height:78px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-body{
  padding:10px 12px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-title{
  font-size:1.03rem;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-excerpt{
  display:none;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-read{
  margin-top:4px;
  font-size:.73rem;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-explore{
  margin-top:10px;
  padding-top:10px;
}

@media (max-width: 820px){
  .fe-editorial-commercial-resources .fe-editorial-resource-grid{
    grid-template-columns:1fr;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-posts{
    grid-template-columns:1fr;
  }
}
@media (max-width: 680px){
  .fe-editorial-commercial-resources{
    padding:34px 0 28px;
  }
  .fe-editorial-commercial-resources .fe-editorial-related-head h2{
    font-size:1.82rem;
  }
  .fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card{
    grid-template-columns:104px minmax(0,1fr);
    gap:15px;
  }
  .fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card .book-cover{
    max-width:104px;
  }
  .fe-editorial-commercial-resources .fe-editorial-resource-card--primary .book-card-body h3{
    font-size:1.22rem;
  }
  .fe-editorial-native-continue-wrap{
    padding:22px 0 6px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue{
    padding:20px 15px 17px;
    border-radius:10px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue:after{
    left:15px;
    width:44px;
  }
}


/* FE 1.20.9 — hub commerciale per approfondimenti: categorie + sottocategorie */
.fe-editorial-commercial-resources{padding:48px 0 42px;background:#f7f1e8;border-top:1px solid rgba(123,36,56,.10);border-bottom:1px solid rgba(123,36,56,.10)}
.fe-editorial-commercial-resources .fe-editorial-related-head{max-width:820px;margin-bottom:26px}
.fe-commercial-books-head,.fe-commercial-other-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:26px 0 14px}
.fe-commercial-books-head h3,.fe-commercial-other-head h3{font-family:var(--font-display);font-size:clamp(1.55rem,2.2vw,2rem);color:var(--color-brand-deep);margin:3px 0 0}
.fe-commercial-view-all{font-size:13px;font-weight:700;color:var(--color-brand-deep);white-space:nowrap}
.fe-commercial-book-feature{max-width:980px}
.fe-commercial-book-feature-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;padding:24px;background:#fff;border:1px solid #dfd3c7;border-radius:16px;box-shadow:0 14px 32px rgba(45,41,39,.07);align-items:center}
.fe-commercial-book-feature-cover .book-card{height:100%}
.fe-commercial-book-feature-cover .book-cover{max-width:220px;margin:0}
.fe-commercial-book-feature-cover .book-card-body{display:none}
.fe-commercial-book-feature-copy{min-width:0}
.fe-commercial-book-feature-copy h3{font-family:var(--font-display);font-size:clamp(1.75rem,2.6vw,2.45rem);line-height:1.12;color:var(--color-brand-deep);margin:6px 0 10px}
.fe-commercial-book-feature-copy p{max-width:650px;color:var(--color-muted);font-size:1rem;line-height:1.65;margin:0 0 18px}
.fe-commercial-primary-cta{display:inline-flex;align-items:center;gap:6px;padding:11px 16px;border-radius:8px;background:var(--color-brand-deep);color:#fff;font-weight:700;transition:.2s ease}
.fe-commercial-primary-cta:hover{transform:translateY(-1px);color:#fff}
.fe-commercial-book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:980px;margin-top:14px}
.fe-commercial-book-mini{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:13px;background:#fff;border:1px solid #dfd3c7;border-radius:11px;box-shadow:0 6px 18px rgba(45,41,39,.04)}
.fe-commercial-book-mini-cover .book-cover{width:72px;aspect-ratio:2/3;margin:0;border-radius:4px}
.fe-commercial-book-mini-cover .book-cover-inner{padding:9px}
.fe-commercial-book-mini-cover .cover-title{font-size:12px}
.fe-commercial-book-mini-body{min-width:0}
.fe-commercial-book-source{font:600 10px/1.2 var(--font-sans);letter-spacing:.7px;text-transform:uppercase;color:var(--color-brass)}
.fe-commercial-book-mini h4{font-family:var(--font-display);font-size:1rem;line-height:1.25;color:var(--color-brand-deep);margin:5px 0 7px}
.fe-commercial-book-mini a{font-size:12px;font-weight:700;color:var(--color-brand-deep)}
.fe-commercial-other-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:980px}
.fe-commercial-other-card{min-width:0;padding:16px;background:#fff;border:1px solid #dfd3c7;border-radius:11px}
.fe-commercial-other-kicker{display:block;margin-bottom:10px;font:600 10px/1.2 var(--font-sans);letter-spacing:.8px;text-transform:uppercase;color:var(--color-brand-deep)}
.fe-commercial-other-card .content-card{box-shadow:none;border:0;padding:0;background:transparent}
.fe-commercial-other-card .content-card-media{height:125px}
.fe-commercial-other-card .content-card-body{padding:11px 0 0}
.fe-commercial-paths{display:flex;flex-wrap:wrap;gap:10px;max-width:980px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(123,36,56,.12)}
.fe-commercial-paths a{flex:1 1 280px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:16px;padding:13px 15px;border:1px solid #dfd3c7;border-radius:10px;background:rgba(255,255,255,.78)}
.fe-commercial-paths span{grid-column:1/2;font:600 10px/1.2 var(--font-sans);text-transform:uppercase;letter-spacing:.75px;color:var(--color-brass)}
.fe-commercial-paths strong{grid-column:1/2;color:var(--color-brand-deep);font-family:var(--font-display);font-size:1.12rem;margin-top:4px}
.fe-commercial-paths b{grid-column:2;grid-row:1/3;align-self:center;color:var(--color-brand-deep);font-size:1.25rem}
.fe-editorial-sidebar-resources{padding:14px 15px;margin-top:14px;border:1px solid #dfd3c7;border-left:3px solid var(--color-brand);border-radius:8px;background:#fff}
.fe-editorial-sidebar-resources p{margin:6px 0 10px;font-size:.86rem;color:var(--color-muted);line-height:1.45}
@media (max-width:820px){.fe-commercial-book-grid{grid-template-columns:1fr 1fr}.fe-commercial-other-grid{grid-template-columns:1fr 1fr}.fe-commercial-book-feature-card{grid-template-columns:160px minmax(0,1fr);gap:20px}.fe-commercial-book-feature-cover .book-cover{max-width:160px}}
@media (max-width:680px){.fe-editorial-commercial-resources{padding:34px 0 30px}.fe-commercial-books-head,.fe-commercial-other-head{align-items:flex-start;flex-direction:column;gap:8px}.fe-commercial-view-all{white-space:normal}.fe-commercial-book-feature-card{grid-template-columns:94px minmax(0,1fr);gap:14px;padding:15px}.fe-commercial-book-feature-cover .book-cover{max-width:94px}.fe-commercial-book-feature-copy h3{font-size:1.25rem}.fe-commercial-book-feature-copy p{font-size:.84rem;line-height:1.5;margin-bottom:12px}.fe-commercial-primary-cta{padding:9px 12px;font-size:.78rem}.fe-commercial-book-grid{grid-template-columns:1fr}.fe-commercial-other-grid{grid-template-columns:1fr}.fe-commercial-other-card .content-card-media{height:120px}.fe-commercial-paths{margin-top:16px}}

/* FE 1.21.1 — newsletter + gerarchia commerciale raffinata. */
.fe-editorial-newsletter{
  padding:42px 0 34px;
  background:#f7f1e8;
}
.fe-editorial-newsletter-inner{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:30px;
  align-items:center;
  max-width:1040px;
  margin:0 auto;
  padding:32px 34px;
  background:linear-gradient(135deg,#5f1729 0%,#7b2438 68%,#6a1f33 100%);
  border:1px solid rgba(95,23,41,.24);
  border-radius:16px;
  box-shadow:0 16px 34px rgba(95,23,41,.12);
}
.fe-editorial-newsletter-inner:after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-100px;
  top:-125px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
}
.fe-editorial-newsletter .section-kicker{color:#f2d8b0}
.fe-editorial-newsletter h2{
  margin:7px 0 11px;
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(29px,3.2vw,42px);
  line-height:1.08;
  color:#fffaf4;
  max-width:720px;
}
.fe-editorial-newsletter-copy>p{
  margin:0;
  max-width:680px;
  color:rgba(255,250,244,.92);
  font-size:15px;
  line-height:1.65;
}
.fe-editorial-newsletter-copy>p strong{color:#fff}
.fe-editorial-newsletter-benefits{
  display:flex;
  flex-wrap:wrap;
  gap:7px 16px;
  list-style:none;
  padding:0;
  margin:15px 0 0;
}
.fe-editorial-newsletter-benefits li{
  position:relative;
  padding-left:16px;
  color:rgba(255,250,244,.92);
  font-size:12px;
  line-height:1.45;
}
.fe-editorial-newsletter-benefits li:before{
  content:"✓";
  position:absolute;
  left:0;
  color:#e5bd78;
  font-weight:800;
}
.fe-editorial-newsletter-form{
  position:relative;
  z-index:1;
  padding:18px;
  background:#fffaf4;
  border:1px solid rgba(247,241,232,.55);
  border-radius:12px;
  box-shadow:0 10px 24px rgba(45,41,39,.08);
}
.fe-editorial-newsletter-form-kicker{
  display:block;
  margin:0 0 9px;
  font:700 10px/1.2 var(--font-sans);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#7b2438;
}
.fe-editorial-newsletter-form .newsletter-form{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.fe-editorial-newsletter-form input[type="email"]{
  min-height:50px;
  width:100%;
  padding:13px 14px;
  background:#fff;
  border:1px solid #d5c5b8;
  border-radius:8px;
  color:#2d2927;
  font-size:15px;
}
.fe-editorial-newsletter-form input[type="email"]::placeholder{color:#756d68;opacity:1}
.fe-editorial-newsletter-form .btn{
  width:100%;
  min-height:50px;
  justify-content:center;
  font-size:14px;
}
.fe-editorial-newsletter-note{
  margin:9px 0 0;
  color:#6d6460;
  font-size:11.5px;
  line-height:1.45;
}
.fe-editorial-newsletter-form .lead-message{margin:9px 0 0;font-size:12px}

.fe-commercial-format-chooser{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  max-width:980px;
  margin:0 0 24px;
}
.fe-commercial-format{
  position:relative;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:13px 14px;
  background:#fffdf9;
  border:1px solid #dfd3c7;
  border-radius:11px;
  color:var(--color-brand-deep);
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.fe-commercial-format:hover{
  transform:translateY(-2px);
  border-color:#c8b8aa;
  box-shadow:0 8px 18px rgba(45,41,39,.06);
  text-decoration:none;
  color:var(--color-brand-deep);
}
.fe-commercial-format-icon{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:8px;
  background:#f7f1e8;
  color:#7b2438;
  font-size:16px;
}
.fe-commercial-format strong{
  display:block;
  font-family:var(--font-display);
  font-size:1rem;
  line-height:1.1;
  font-weight:500;
}
.fe-commercial-format small{
  display:block;
  margin-top:4px;
  color:var(--color-muted);
  font-size:11px;
  line-height:1.25;
}
.fe-commercial-format b{
  color:#7b2438;
  font-size:1.05rem;
  font-weight:500;
}
.fe-commercial-resource-anchor{scroll-margin-top:110px;height:1px}
.fe-commercial-feature-note{
  display:block;
  margin-top:5px;
  color:#756d68;
  font-size:12px;
  line-height:1.45;
}
.fe-editorial-commercial-resources .fe-commercial-books-head{margin-top:8px}
.fe-commercial-other-card#fe-percorsi{scroll-margin-top:110px}

@media(max-width:900px){
  .fe-commercial-format-chooser{grid-template-columns:1fr 1fr}
  .fe-editorial-newsletter-inner{grid-template-columns:1fr;gap:20px}
}
@media(max-width:680px){
  .fe-editorial-newsletter{padding:30px 0 24px}
  .fe-editorial-newsletter-inner{padding:24px 16px;gap:17px;border-radius:12px}
  .fe-editorial-newsletter h2{font-size:1.9rem}
  .fe-editorial-newsletter-copy>p{font-size:14px}
  .fe-editorial-newsletter-benefits{display:grid;grid-template-columns:1fr;gap:5px;margin-top:12px}
  .fe-editorial-newsletter-form{padding:14px}
  .fe-commercial-format-chooser{grid-template-columns:1fr;margin-bottom:18px}
  .fe-commercial-format{padding:12px 13px}
}


/* FE 1.21.1 — rifinitura commerciale: gerarchia più chiara, meno catalogo, più conversione. */
.fe-editorial-commercial-resources{
  padding:42px 0 36px;
  background:linear-gradient(180deg,#f7f1e8 0%,#f9f4ec 100%);
}
.fe-editorial-commercial-resources .fe-editorial-related-head{
  max-width:760px;
  margin:0 auto 22px;
  text-align:center;
}
.fe-editorial-commercial-resources .fe-editorial-related-head .section-kicker{color:var(--color-brand)}
.fe-editorial-commercial-resources .fe-editorial-related-head h2{
  font-size:clamp(2rem,3.2vw,2.9rem);
  margin:6px 0 10px;
}
.fe-editorial-commercial-resources .fe-editorial-related-head p{
  max-width:680px;
  margin:0 auto;
  color:var(--color-ink-soft);
}
.fe-commercial-format-chooser{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  max-width:920px;
  margin:0 auto 26px;
}
.fe-commercial-format{
  padding:11px 12px;
  background:rgba(255,253,249,.78);
  border-color:#d9ccbf;
}
.fe-commercial-format-icon{width:30px;height:30px;font-size:15px}
.fe-commercial-books-head,.fe-commercial-other-head{
  max-width:980px;
  margin:23px auto 13px;
}
.fe-commercial-books-head h3,.fe-commercial-other-head h3{
  font-size:clamp(1.5rem,2.2vw,2rem);
}
.fe-commercial-book-feature{max-width:980px;margin:0 auto}
.fe-commercial-book-feature-card{
  grid-template-columns:190px minmax(0,1fr);
  gap:30px;
  padding:22px;
  border-radius:15px;
  box-shadow:0 12px 28px rgba(45,41,39,.06);
}
.fe-commercial-book-feature-cover .book-cover{max-width:190px}
.fe-commercial-book-feature-copy h3{font-size:clamp(1.7rem,2.5vw,2.35rem)}
.fe-commercial-book-feature-copy p{max-width:620px;margin-bottom:14px}
.fe-commercial-feature-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 15px}
.fe-commercial-feature-helper{font-size:11.5px;color:var(--color-muted);line-height:1.35}
.fe-commercial-secondary-head{max-width:980px;margin:20px auto 10px}
.fe-commercial-book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:980px;margin:0 auto}
.fe-commercial-book-mini{padding:11px;grid-template-columns:64px minmax(0,1fr);gap:10px;box-shadow:none;background:rgba(255,255,255,.82)}
.fe-commercial-book-mini-cover .book-cover{width:64px}
.fe-commercial-book-mini h4{font-size:.96rem;margin:4px 0 6px}
.fe-commercial-other-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:980px;margin:0 auto}
.fe-commercial-other-card{padding:14px;box-shadow:none;background:rgba(255,255,255,.86)}
.fe-commercial-other-card .content-card-media{height:112px}
.fe-commercial-paths{max-width:980px;margin:18px auto 0;padding-top:15px}
.fe-commercial-paths a{padding:11px 13px}

@media(max-width:900px){
  .fe-commercial-format-chooser{grid-template-columns:1fr 1fr}
  .fe-commercial-book-feature-card{grid-template-columns:150px minmax(0,1fr);gap:19px}
  .fe-commercial-book-feature-cover .book-cover{max-width:150px}
}
@media(max-width:680px){
  .fe-editorial-commercial-resources{padding:32px 0 27px}
  .fe-editorial-commercial-resources .fe-editorial-related-head{text-align:left;margin-bottom:18px}
  .fe-editorial-commercial-resources .fe-editorial-related-head p{margin:0}
  .fe-commercial-format-chooser{grid-template-columns:1fr;margin-bottom:18px}
  .fe-commercial-books-head,.fe-commercial-other-head{align-items:flex-start;margin-top:20px}
  .fe-commercial-book-feature-card{grid-template-columns:92px minmax(0,1fr);gap:13px;padding:14px}
  .fe-commercial-book-feature-cover .book-cover{max-width:92px}
  .fe-commercial-book-feature-copy h3{font-size:1.2rem}
  .fe-commercial-book-feature-copy p{font-size:.82rem;line-height:1.48}
  .fe-commercial-feature-actions{display:block}
  .fe-commercial-feature-helper{display:block;margin-top:7px}
  .fe-commercial-book-grid{grid-template-columns:1fr}
  .fe-commercial-other-grid{grid-template-columns:1fr}
}


/* ============================================
   APPROFONDIMENTO 1.21.2
   Micro-conversioni commerciali dentro l'articolo.
   Due inserimenti massimi: libro + formato alternativo.
   ============================================ */
.fe-inline-commercial{
  display:grid;
  grid-template-columns:108px minmax(0,1fr);
  gap:20px;
  align-items:center;
  margin:34px 0;
  padding:18px 20px;
  background:#fff;
  border:1px solid rgba(123,36,56,.16);
  border-left:3px solid var(--color-brand);
  border-radius:7px;
  box-shadow:0 8px 22px rgba(45,41,39,.055);
  overflow:hidden;
}
.fe-inline-commercial:before{
  content:"";
  position:absolute;
}
.fe-inline-commercial-book-media,
.fe-inline-commercial-alt-media{
  width:108px;
  min-width:108px;
  height:132px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--color-paper-alt);
  border-radius:4px;
  overflow:hidden;
}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
  width:108px;
  height:132px;
  margin:0;
  background:transparent;
  border-radius:4px;
  overflow:hidden;
}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover img,
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover .book-cover-image,
.fe-inline-commercial-alt-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.fe-inline-commercial-alt-media img{object-fit:cover}
.fe-inline-commercial-book-fallback,
.fe-inline-commercial-alt-fallback{
  font-family:var(--font-serif);
  font-size:14px;
  color:var(--color-muted);
}
.fe-inline-commercial-alt-fallback{
  font-family:var(--font-sans);
  font-size:28px;
  color:var(--color-brand);
}
.fe-inline-commercial-copy{min-width:0}
.fe-inline-commercial-kicker{
  display:block;
  margin:0 0 6px;
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:750;
  letter-spacing:.14em;
  line-height:1.2;
  text-transform:uppercase;
  color:var(--color-brand);
}
.fe-inline-commercial-copy h3{
  margin:0 0 8px;
  font-family:var(--font-display);
  font-size:23px;
  line-height:1.18;
  font-weight:400;
  color:var(--color-brand-deep);
}
.fe-inline-commercial-copy p{
  margin:0 0 10px;
  max-width:58ch;
  color:var(--color-ink-soft);
  font-size:13.5px;
  line-height:1.5;
}
.fe-inline-commercial-cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--color-brand-deep);
  font-size:13.5px;
  font-weight:750;
  text-decoration:none;
}
.fe-inline-commercial-cta:hover{text-decoration:underline}
.fe-inline-commercial-alt{
  grid-template-columns:160px minmax(0,1fr);
  background:linear-gradient(180deg,#fff,#fffdf9);
}
.fe-inline-commercial-alt-media{
  width:160px;
  min-width:160px;
  height:98px;
}
@media(max-width:760px){
  .fe-inline-commercial{
    grid-template-columns:88px minmax(0,1fr);
    gap:15px;
    padding:16px;
    margin:30px 0;
  }
  .fe-inline-commercial-book-media,
  .fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
    width:88px;
    min-width:88px;
    height:112px;
  }
  .fe-inline-commercial-alt{
    grid-template-columns:118px minmax(0,1fr);
  }
  .fe-inline-commercial-alt-media{
    width:118px;
    min-width:118px;
    height:82px;
  }
  .fe-inline-commercial-copy h3{font-size:20px}
  .fe-inline-commercial-copy p{font-size:13px}
}
@media(max-width:520px){
  .fe-inline-commercial{
    grid-template-columns:74px minmax(0,1fr);
    gap:12px;
    padding:14px;
  }
  .fe-inline-commercial-book-media,
  .fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
    width:74px;
    min-width:74px;
    height:96px;
  }
  .fe-inline-commercial-alt{
    grid-template-columns:96px minmax(0,1fr);
  }
  .fe-inline-commercial-alt-media{
    width:96px;
    min-width:96px;
    height:70px;
  }
  .fe-inline-commercial-copy h3{font-size:18px}
  .fe-inline-commercial-copy p{font-size:12.5px;line-height:1.45}
  .fe-inline-commercial-cta{font-size:12.5px}
}


/* -------------------------------------------------------------------------
 * APPROFONDIMENTI — correzione definitiva poster/play per le risorse video
 * ---------------------------------------------------------------------- */
.content-card--video .content-card-media{
  position:relative;
  overflow:hidden;
}
.content-card--video .content-card-play{
  left:50%;
  top:50%;
  right:auto;
  bottom:auto;
  transform:translate(-50%,-50%);
  width:52px;
  height:52px;
  font-size:17px;
  padding-left:3px;
}
.fe-digital-card-media{
  position:relative;
  overflow:hidden;
}
.fe-digital-card-media .fe-media-play--course{
  left:50%;
  top:50%;
  right:auto;
  bottom:auto;
  transform:translate(-50%,-50%);
  width:54px;
  height:54px;
  font-size:18px;
}
.fe-inline-commercial-alt-media{
  position:relative;
  overflow:hidden;
}
.fe-inline-commercial-alt-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.fe-inline-commercial-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  padding-left:2px;
  background:rgba(92,17,45,.95);
  color:#fff;
  font-size:15px;
  line-height:1;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
  pointer-events:none;
  z-index:2;
}
@media(max-width:760px){
  .fe-inline-commercial-play{width:40px;height:40px;font-size:13px}
  .content-card--video .content-card-play{width:46px;height:46px;font-size:15px}
  .fe-digital-card-media .fe-media-play--course{width:48px;height:48px;font-size:16px}
}


/* 1.21.4 — CTA inline completamente cliccabili + cover senza margini laterali */
.fe-inline-commercial{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:24px;
  align-items:center;
  color:inherit;
  text-decoration:none !important;
  cursor:pointer;
}
.fe-inline-commercial:hover{color:inherit;text-decoration:none !important}
.fe-inline-commercial:focus-visible{
  outline:3px solid rgba(125,31,61,.22);
  outline-offset:4px;
}
.fe-inline-commercial .fe-inline-commercial-book-media,
.fe-inline-commercial .fe-inline-commercial-alt-media{min-width:0}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
  width:140px !important;
  height:auto !important;
  aspect-ratio:2/3 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:5px;
  overflow:hidden;
  box-shadow:none;
  background:transparent !important;
  position:relative;
}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover .book-cover-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0 !important;
  object-fit:contain;
  object-position:center;
  background:transparent !important;
}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover .book-cover-inner,
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover .book-cover-texture{display:none}
.fe-inline-commercial-cta{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--color-brand-deep);
  font-weight:700;
  text-decoration:none;
  transition:transform .18s ease,color .18s ease;
}
.fe-inline-commercial:hover .fe-inline-commercial-cta{transform:translateX(3px);color:var(--color-brand)}

@media(max-width:760px){
  .fe-inline-commercial{grid-template-columns:112px minmax(0,1fr);gap:18px}
  .fe-inline-commercial-book-media .fe-inline-commercial-book-cover{width:112px !important}
}
@media(max-width:640px){
  .fe-inline-commercial{grid-template-columns:88px minmax(0,1fr);gap:14px}
  .fe-inline-commercial-book-media .fe-inline-commercial-book-cover{width:88px !important}
}

/* 1.21.5 — Newsletter mobile: layout completamente fluido e CTA avvolgibile. */
.fe-editorial-newsletter-inner,
.fe-editorial-newsletter-copy,
.fe-editorial-newsletter-form,
.fe-editorial-newsletter-form .newsletter-form{
  min-width:0;
  box-sizing:border-box;
}
.fe-editorial-newsletter-form .newsletter-form{
  width:100%;
}
.fe-editorial-newsletter-form input[type="email"],
.fe-editorial-newsletter-form .btn{
  max-width:100%;
  box-sizing:border-box;
}
@media (max-width:680px){
  .fe-editorial-newsletter{
    width:100%;
    overflow:hidden;
    padding:28px 0 22px;
  }
  .fe-editorial-newsletter .container{
    width:100%;
  }
  .fe-editorial-newsletter-inner{
    width:100%;
    margin:0;
    padding:22px 16px;
    gap:18px;
    border-radius:12px;
    grid-template-columns:minmax(0,1fr);
  }
  .fe-editorial-newsletter-copy,
  .fe-editorial-newsletter-form{
    width:100%;
    min-width:0;
  }
  .fe-editorial-newsletter h2{
    max-width:100%;
    font-size:clamp(24px,7.5vw,30px);
    line-height:1.12;
    overflow-wrap:anywhere;
  }
  .fe-editorial-newsletter-copy>p{
    max-width:100%;
    font-size:14px;
    line-height:1.55;
  }
  .fe-editorial-newsletter-benefits{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:6px;
    margin-top:12px;
  }
  .fe-editorial-newsletter-benefits li{
    min-width:0;
    font-size:12px;
    line-height:1.45;
  }
  .fe-editorial-newsletter-form{
    padding:12px;
    overflow:hidden;
  }
  .fe-editorial-newsletter-form .newsletter-form{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:9px;
  }
  .fe-editorial-newsletter-form input[type="email"]{
    min-width:0;
    width:100%;
    min-height:50px;
    padding:12px 13px;
    font-size:16px;
  }
  .fe-editorial-newsletter-form .btn{
    width:100%;
    min-width:0;
    min-height:50px;
    padding:12px 14px;
    white-space:normal !important;
    overflow-wrap:anywhere;
    word-break:normal;
    line-height:1.25;
    text-align:center;
  }
  .fe-editorial-newsletter-note,
  .fe-editorial-newsletter-form .lead-message{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}
@media (max-width:420px){
  .fe-editorial-newsletter-inner{padding:20px 14px}
  .fe-editorial-newsletter-form{padding:10px}
  .fe-editorial-newsletter .section-kicker{font-size:9px}
  .fe-editorial-newsletter h2{font-size:25px}
  .fe-editorial-newsletter-form .btn{font-size:13px}
}

/* ==========================================================================
   1.22.0 — moduli email: honeypot, nota privacy, form nel footer
   ========================================================================== */
.fe-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.lead-privacy { margin:10px 0 0; font-size:12px; line-height:1.45; color:var(--color-muted, #6b6b6b); }
.lead-privacy a { color:inherit; text-decoration:underline; }
.newsletter-band .lead-privacy { color:rgba(255,255,255,.72); }
.site-footer .lead-privacy { color:var(--color-muted, #6b6b6b); }
.lead-form.is-subscribed input[type="email"],
.lead-form.is-subscribed button[type="submit"] { opacity:.55; }
.footer-newsletter-form { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 0; max-width:420px; }
.footer-newsletter-form input[type="email"] { flex:1 1 200px; min-width:0; padding:11px 14px; border-radius:8px; border:1px solid var(--color-line, #ddd); background:#fff; color:inherit; font:inherit; font-size:14px; }
.footer-newsletter-form .lead-message.success { color:#2f6b45; }
.footer-newsletter-form .lead-message.error { color:#a13d2e; }
.footer-newsletter-form .btn { flex:0 0 auto; }
.footer-newsletter-form .lead-message { flex-basis:100%; margin:4px 0 0; }
.fe-digital-old-price { font-weight:400; opacity:.6; margin-right:6px; font-size:.8em; }
@media (max-width:600px) {
  .footer-newsletter-form { max-width:none; }
  .footer-newsletter-form .btn { flex:1 1 100%; }
}

/* 1.22.0 — barra di acquisto fissa (solo mobile/tablet) */
.fe-sticky-buy { display:none; }
@media (max-width: 980px) {
  .fe-sticky-buy:not([hidden]) {
    display:block; position:fixed; left:0; right:0; bottom:0; z-index:90;
    background:rgba(255,255,255,.97); border-top:1px solid var(--color-line, #e3ddd2);
    box-shadow:0 -6px 20px rgba(30,36,32,.10);
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    transform:translateY(110%); transition:transform .25s ease;
  }
  .fe-sticky-buy.is-visible { transform:translateY(0); }
  .fe-sticky-buy-inner { display:flex; align-items:center; gap:12px; max-width:720px; margin:0 auto; }
  .fe-sticky-buy-cover { flex:0 0 34px; width:34px; height:51px; border-radius:2px; overflow:hidden; font-size:0; }
  .fe-sticky-buy-cover img { width:100%; height:100%; object-fit:cover; }
  .fe-sticky-buy-cover .book-cover-inner, .fe-sticky-buy-cover .book-cover-texture { display:none; }
  .fe-sticky-buy-text { flex:1 1 auto; min-width:0; line-height:1.25; }
  .fe-sticky-buy-text strong { display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .fe-sticky-buy-text span { display:block; font-size:12px; color:var(--color-muted, #6b6b6b); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .fe-sticky-buy-btn { flex:0 0 auto; padding:11px 14px; font-size:14px; white-space:nowrap; }
  body.fe-has-sticky-buy { padding-bottom:80px; }
  body.fe-popup-open .fe-sticky-buy { display:none; }
}
@media (max-width: 380px) { .fe-sticky-buy-cover { display:none; } }
@media (prefers-reduced-motion: reduce) { .fe-sticky-buy { transition:none; } }

/* 1.22.0 — newsletter nelle pagine argomento */
.fe-topic-newsletter { margin:8px 0 48px; }

/* ==========================================================================
   1.22.1 — correzioni mobile
   ========================================================================== */

/* Moduli email in colonna (mobile): la base "flex:1" / flex-basis dell'input
   in colonna diventava altezza → casella enorme (visibile nel footer). */
@media (max-width: 768px) {
  .lead-form input[type="email"] { flex: 0 0 auto !important; height: auto; min-height: 48px; }
}
/* Modulo del footer: sfondo chiaro, serve testo e segnaposto scuri. */
.footer-newsletter-form input[type="email"] { flex: 1 1 200px; height: 48px; min-height: 48px; color: var(--color-ink, #1e2420); }
.footer-newsletter-form input[type="email"]::placeholder { color: var(--color-muted, #6b6b6b); opacity: 1; }
.footer-newsletter-form input[type="email"]:focus { outline: none; border-color: var(--color-brand, #7d1f3d); background: #fff; }
@media (max-width: 600px) {
  .footer-newsletter-form { flex-direction: column; }
  .footer-newsletter-form input[type="email"],
  .footer-newsletter-form .btn { flex: 0 0 auto !important; width: 100%; }
}

/* Intestazione: su mobile sparisce quando si arriva al footer. */
.site-header { transition: transform .25s ease; }
@media (max-width: 980px) {
  body.fe-at-footer .site-header { transform: translateY(-120%); }
  body.fe-at-footer .fe-sticky-buy { transform: translateY(110%); }
}

/* Barra di acquisto: pulsante "altre opzioni" e pannello dei canali. */
@media (max-width: 980px) {
  .fe-sticky-buy-toggle {
    flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-width: 48px; height: 44px; padding: 0 8px; border-radius: var(--radius-sm, 4px);
    border: 1px solid var(--color-line, #e3ddd2); background: #fff; color: var(--color-ink, #1e2420);
    font: inherit; line-height: 1; cursor: pointer;
  }
  .fe-sticky-buy-toggle[aria-expanded="true"] { border-color: var(--color-brand, #7d1f3d); color: var(--color-brand, #7d1f3d); }
  .fe-sticky-buy-toggle-n { font-size: 14px; font-weight: 700; }
  .fe-sticky-buy-toggle-l { font-size: 10px; margin-top: 3px; letter-spacing: .02em; }
  .fe-sticky-buy-more { max-width: 720px; margin: 0 auto 10px; padding: 4px 0 10px; border-bottom: 1px solid var(--color-line, #e3ddd2); }
  .fe-sticky-buy-more[hidden] { display: none; }
  .fe-sticky-buy-more-title { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--color-muted, #6b6b6b); margin: 4px 0 6px; }
  .fe-sticky-buy-more ul { list-style: none; margin: 0; padding: 0; }
  .fe-sticky-buy-more li + li { border-top: 1px solid var(--color-line, #eee8dc); }
  .fe-sticky-buy-more a { display: flex; justify-content: space-between; align-items: center; padding: 12px 2px; font-size: 15px; font-weight: 600; color: var(--color-ink, #1e2420); text-decoration: none; }
}
@media (max-width: 380px) {
  .fe-sticky-buy-btn { padding: 11px 10px; font-size: 13px; }
}

/* 1.22.2 — Copertine nelle griglie dei libri (correlati, stesso autore,
   catalogo, argomenti, audiolibri): la copertina si vede SEMPRE intera, con le
   sue proporzioni, senza tagli e senza bande colorate. La cornice 2:3 resta
   come spazio riservato (trasparente) così i titoli delle card restano
   allineati: una copertina più larga si appoggia in basso, una più alta
   viene ridotta in altezza e centrata. L'ombra è sull'immagine, non sulla
   cornice. Scheda libro e "Libro del momento" non sono toccati. */
.book-card .book-cover.has-real-cover:not(.is-video) {
  aspect-ratio: 2 / 3; height: auto; min-height: 0;
  display: flex; align-items: flex-end; justify-content: center;
  overflow: visible; background: transparent; box-shadow: none; border-radius: 0;
  margin-bottom: 18px;
}
.book-card .book-cover.has-real-cover:not(.is-video) .book-cover-image {
  position: static; inset: auto; display: block;
  width: auto; height: auto; max-width: 100%; max-height: 100%;
  object-fit: contain; background: transparent;
  border-radius: var(--radius-xs); box-shadow: var(--shadow-spine);
}
.book-card .book-cover.has-real-cover:not(.is-video) .book-cover-texture { display: none; }


/* ============================================
   APPROFONDIMENTO SINGOLO 1.22.4
   Correzioni inline commerciali:
   - cover libro sempre interamente visibile;
   - maggiore respiro tra poster videoguida e testo.
   ============================================ */
.fe-inline-commercial-book-media{
  height:auto;
  min-height:0;
  aspect-ratio:2 / 3;
}
.fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
  width:100% !important;
  height:100% !important;
  aspect-ratio:2 / 3 !important;
  min-height:0 !important;
}
.fe-inline-commercial-alt{
  column-gap:34px;
}
@media(max-width:760px){
  .fe-inline-commercial-book-media,
  .fe-inline-commercial-book-media .fe-inline-commercial-book-cover{
    height:auto;
    min-height:0;
    aspect-ratio:2 / 3;
  }
  .fe-inline-commercial-alt{
    column-gap:24px;
  }
}
@media(max-width:520px){
  .fe-inline-commercial-alt{
    column-gap:18px;
  }
}

/* ========================================================================
   SCHEDE LIBRO — LIBRI DELLO STESSO ARGOMENTO
   Fascia autonoma, allineata al container della scheda e coerente con la
   sezione "Altri libri che potrebbero interessarti". Quando i risultati sono
   meno di quattro, la griglia resta centrata per evitare l'effetto di una
   singola copertina dispersa a bordo pagina.
   ======================================================================== */
.same-topic-books {
  border-top: 1px solid var(--color-line);
  background: var(--color-paper);
}

.same-topic-books .section-head {
  text-align: center;
  margin-bottom: 34px;
}

.same-topic-books .section-head h2 {
  margin: 0 0 8px;
  font-family: var(--font-serif);
  font-size: clamp(27px, 3.2vw, 34px);
  font-weight: 400;
  line-height: 1.15;
  color: var(--color-ink);
}

.same-topic-books .section-head p {
  max-width: 620px;
  margin: 10px auto 0;
  color: var(--color-ink-soft);
  font-size: 15.5px;
  line-height: 1.6;
}

.same-topic-books .books-grid {
  grid-template-columns: repeat(4, minmax(0, 220px));
  justify-content: center;
  gap: 36px 28px;
  margin-top: 0;
}

.same-topic-books .book-card {
  width: 100%;
  max-width: 220px;
  justify-self: center;
}

@media (max-width: 980px) {
  .same-topic-books .books-grid {
    grid-template-columns: repeat(2, minmax(0, 220px));
    gap: 30px 24px;
  }
}

@media (max-width: 560px) {
  .same-topic-books .section-head {
    margin-bottom: 26px;
  }

  .same-topic-books .section-head h2 {
    font-size: 27px;
  }

  .same-topic-books .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
  }

  .same-topic-books .book-card {
    max-width: none;
  }
}


/* ---- Layout più chiaro quando convivono libro e audiolibro ---------
   Due card separate rendono immediato capire che si tratta di due formati
   diversi dello stesso titolo, non di una singola lista di negozi. */
.book-buy--grouped { margin: 10px 0 28px; }
.book-buy-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.book-buy-group {
  padding: 16px;
  border: 1px solid var(--color-line-soft);
  border-radius: 8px;
  background: var(--color-brand-tint);
}
.book-buy-group--audio {
  background: #faf6f4;
}
.book-buy-group-kicker {
  margin: 0 0 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.book-buy-group .book-buy-main,
.book-buy-group .book-buy-audio--card {
  width: 100%;
}
.book-buy-group-note {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--color-muted);
}
.book-buy-alt--inside-card {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--color-line-soft);
}
@media (max-width: 840px) {
  .book-buy-groups { grid-template-columns: 1fr; }
}

/* ==========================================================
   1.25.6 — Layout canali e sezioni stile mockup approvato
   ========================================================== */
.fe-section-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 36px 0 14px;
  color: var(--color-brand-deep);
}
.fe-section-heading-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--color-brand);
  flex-shrink: 0;
}
.fe-section-heading .features-title,
.fe-section-heading .book-specs-title,
.fe-section-heading-title {
  margin: 0;
}
.fe-section-heading .features-title::before,
.fe-section-heading .book-specs-title::before { display: none; }
.fe-section-heading-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-brand-deep);
}
.fe-section-heading-subtitle {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--color-muted);
}

.book-buy-group-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}
.book-buy-group-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--color-brand);
  flex-shrink: 0;
}
.book-buy-group-kicker {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color-brand-deep);
}
.book-buy-group-copy {
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-muted);
}
.book-buy-group .book-buy-main,
.book-buy-group .btn-channel {
  min-height: 48px;
}
.book-buy-alt-label {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  color: var(--color-muted);
}
.book-buy-alt-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.book-buy-alt-list .btn-channel {
  min-width: 155px;
  justify-content: center;
}
.book-buy--grouped { margin-bottom: 28px; }
.book-buy-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.book-buy-group {
  padding: 18px;
  border: 1px solid var(--color-line-soft);
  border-radius: 8px;
  background: #fbf7f4;
}
.book-buy-group--book { background: #fbf2f3; }
.book-buy-group--audio { background: #fbf7f2; }
.book-buy-groups--summary { margin-top: 18px; }
.book-buy--summary-panel {
  margin-top: 34px;
  padding: 20px 22px;
  border: 1px solid #ead7d8;
  border-radius: 8px;
  background: #fff8f8;
}
.book-buy--summary-panel .book-buy-group {
  background: #fff;
}
.book-buy-group-head.compact { margin-bottom: 12px; }

.book-buy--sticky-formats {
  padding: 18px 16px 16px;
}
.book-buy--sticky-formats .book-buy-title {
  margin-bottom: 14px;
}
.fe-format-sticky-card {
  border: 1px solid var(--color-line-soft);
  border-radius: 8px;
  background: #fbf7f4;
  padding: 12px;
}
.fe-format-sticky-card + .fe-format-sticky-card {
  margin-top: 14px;
}
.fe-format-sticky-card--book { background: #fbf2f3; }
.fe-format-sticky-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.fe-format-sticky-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  color: var(--color-brand);
  flex-shrink: 0;
}
.fe-format-sticky-head strong {
  display: block;
  font-size: 16px;
  line-height: 1.2;
  color: var(--color-ink);
}
.fe-format-sticky-head small {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  color: var(--color-muted);
}
.fe-format-sticky-arrow {
  margin-left: auto;
  font-size: 24px;
  line-height: 1;
  color: var(--color-brand);
}
.fe-format-sticky-alt-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.book-detail-info .features-grid,
.book-detail-info .forwho-grid {
  background: #fbf7f2;
}
@media (max-width: 840px) {
  .book-buy-groups { grid-template-columns: 1fr; }
}

/* ==========================================================
   1.25.8 — Home: formati più chiari, catalogo più leggibile
   ========================================================== */
.home-section-heading--icon .home-section-heading-copy {
  display: flex;
  align-items: flex-start;
  gap: 13px;
}
.home-section-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  color: var(--color-brand);
  border: 1px solid rgba(125,31,61,.14);
  border-radius: 8px;
  background: #fbf2f3;
}

/* Accessi immediati ai quattro formati principali del catalogo. */
.home-formats {
  padding: 0 0 36px;
  background: var(--color-paper);
  border-bottom: 1px solid var(--color-line-soft);
}
.home-format-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.home-format-card {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 96px;
  padding: 18px 20px;
  border: 1px solid #e9dfd3;
  border-radius: 9px;
  background: #fbf8f2;
  color: var(--color-ink);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.home-format-card:hover,
.home-format-card:focus-visible {
  transform: translateY(-2px);
  border-color: #d8bfc6;
  background: #fffafa;
  box-shadow: 0 10px 24px rgba(76,43,30,.07);
}
.home-format-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: var(--color-brand);
  border-radius: 9px;
  background: #f8eaed;
}
.home-format-copy strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--color-brand-deep);
}
.home-format-copy small {
  display: block;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--color-muted);
}
.home-format-arrow {
  font-size: 21px;
  color: var(--color-brand);
  transition: transform .18s ease;
}
.home-format-card:hover .home-format-arrow,
.home-format-card:focus-visible .home-format-arrow { transform: translateX(3px); }

/* Cinque copertine: un po' più grandi, meno effetto "miniatura". */
.home-book-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 30px 24px;
}
.home .home-book-grid .book-card h3 {
  font-size: 16px;
  line-height: 1.28;
}
.home .home-book-grid .book-card .book-meta { font-size: 11.5px; }
.home .home-book-grid .book-card-author { font-size: 12.5px; }

/* Libro del momento: più compatto e più prodotto editoriale. */
.home-featured { padding: 52px 0; }
.home-featured-wrap {
  grid-template-columns: 230px minmax(0,1fr);
  gap: 42px;
  min-height: 0;
  max-width: 980px;
  margin: 0 auto;
}
.home-featured-cover .book-cover { width: 220px; }
.home-featured-copy h2 {
  font-size: clamp(30px,3.4vw,42px);
  margin-top: 12px;
}
.home-featured-copy > p {
  max-width: 62ch;
  margin-bottom: 16px;
}
.home-featured-quote {
  max-width: 62ch;
  margin-bottom: 16px;
  padding: 12px 15px;
}
.home-featured-heading-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.home-featured-badge {
  display: inline-flex;
  margin-top: 5px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #f6e7eb;
  color: var(--color-brand-deep);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Newsletter: più forte e più comoda da compilare. */
.home-newsletter { padding: 46px 0; }
.home-newsletter-inner {
  grid-template-columns: minmax(0,1fr) minmax(420px,.95fr);
  gap: 64px;
}
.home-newsletter-heading {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.home-newsletter-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 9px;
  color: #fff;
  background: rgba(255,255,255,.06);
}
.home-newsletter h2 { font-size: clamp(30px,3.5vw,43px); }
.home-newsletter-copy > p { margin: 10px 0 0 56px; font-size: 14.5px; }
.home-newsletter-form .newsletter-form { gap: 12px; }
.home-newsletter-form input,
.home-newsletter-form .btn-accent { min-height: 56px; }
.home-newsletter-form input { font-size: 15px; padding: 0 18px; }
.home-newsletter-form .btn-accent { padding-left: 24px; padding-right: 24px; }

/* Chiusura pagina: più distinzione tra valori, FAQ e footer. */
.home-values { padding: 62px 0 70px; background: #fffdf8; }
.home-faq {
  padding: 62px 0 72px;
  background: #f1e8d8;
  border-top: 1px solid #e2d5c2;
  border-bottom: 1px solid #dfd0bb;
}
.home .site-footer { border-top: 0; background: #f7f0e4; }

@media (max-width: 1050px) {
  .home-format-grid { grid-template-columns: 1fr 1fr; }
  .home-book-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .home-newsletter-inner { grid-template-columns: 1fr; gap: 26px; }
  .home-newsletter-form { max-width: 680px; }
}
@media (max-width: 760px) {
  .home-format-grid { grid-template-columns: 1fr; }
  .home-format-card:last-child { grid-column: auto; }
  .home-format-card { min-height: 86px; padding: 15px 16px; }
  .home-book-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 26px 16px; }
  .home-featured-wrap { grid-template-columns: 1fr; gap: 26px; text-align: left; }
  .home-featured-cover .book-cover { width: min(210px,60vw); margin: 0 auto; }
  .home-featured-heading-row { justify-content: flex-start; }
  .home-featured-copy > p,
  .home-featured-quote { margin-left: 0; margin-right: 0; }
  .home-newsletter-copy > p { margin-left: 0; }
  .home-newsletter-form .newsletter-form { flex-direction: column; }
}

/* ==========================================================
   1.25.9 — Home: Approfondimenti + Servizi
   ========================================================== */
.home-insights {
  padding: 64px 0 70px;
  background: #fffdf8;
  border-top: 1px solid var(--color-line-soft);
}
.home-insights-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 22px;
}
.home-insights .content-card {
  overflow: hidden;
  height: 100%;
  border: 1px solid #eadfd2;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.home-insights .content-card:hover,
.home-insights .content-card:focus-within {
  transform: translateY(-3px);
  border-color: #d9c2c8;
  box-shadow: 0 12px 28px rgba(76,43,30,.08);
}
.home-insights .content-card-media img {
  width: 100%;
  height: 205px;
  object-fit: cover;
}
.home-insights .content-card-body {
  padding: 20px 20px 22px;
}
.home-insights .content-card-meta {
  margin-bottom: 9px;
}
.home-insights .content-card-kind {
  font-size: 10.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-insights .content-card h3 {
  margin-bottom: 9px;
  font-size: 22px;
  line-height: 1.22;
}
.home-insights .content-card-excerpt {
  margin-bottom: 16px;
  font-size: 13.5px;
  line-height: 1.58;
  color: var(--color-muted);
}
.home-insights .content-card-link {
  font-weight: 700;
  color: var(--color-brand-deep);
}

.home-services {
  padding: 0 0 68px;
  background: #fffdf8;
}
.home-services-panel {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 30px 34px;
  border: 1px solid #dfcfd1;
  border-radius: 12px;
  background: linear-gradient(135deg,#fbf1f3 0%,#fbf7ef 100%);
}
.home-services-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 12px;
  color: var(--color-brand);
  background: rgba(125,31,61,.07);
}
.home-services-copy h2 {
  margin: 2px 0 7px;
  font-size: clamp(27px,3vw,37px);
  font-weight: 400;
  line-height: 1.08;
}
.home-services-copy p {
  max-width: 62ch;
  margin: 0;
  color: var(--color-muted);
  font-size: 14.5px;
  line-height: 1.6;
}
.home-services-action {
  align-self: center;
}
.home-services-action .btn {
  white-space: nowrap;
}

@media (max-width: 900px) {
  .home-insights-grid { grid-template-columns: 1fr 1fr; }
  .home-insights .content-card:last-child { grid-column: 1 / -1; }
  .home-services-panel {
    grid-template-columns: 58px minmax(0,1fr);
  }
  .home-services-action {
    grid-column: 2;
    justify-self: start;
  }
}
@media (max-width: 680px) {
  .home-insights { padding: 48px 0 54px; }
  .home-insights-grid { grid-template-columns: 1fr; }
  .home-insights .content-card:last-child { grid-column: auto; }
  .home-insights .content-card-media img { height: 180px; }
  .home-services { padding-bottom: 52px; }
  .home-services-panel {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 24px 22px;
  }
  .home-services-action { grid-column: auto; }
  .home-services-icon { width: 50px; height: 50px; }
}

/* ==========================================================
   1.25.10 — Rifiniture finali home
   Approfondimenti, Servizi e FAQ
   ========================================================== */

/* Approfondimenti: più stacco rispetto al blocco precedente e maggiore
   gerarchia tra titolo, metadati ed estratto. */
.home-insights {
  padding: 76px 0 78px;
  background: #fcf8f2;
  border-top: 1px solid #e8ddd0;
  border-bottom: 1px solid #eee4d9;
}
.home-insights .home-section-heading {
  margin-bottom: 30px;
}
.home-insights .content-card h3 {
  margin-bottom: 10px;
  font-size: 24px;
  line-height: 1.18;
  letter-spacing: -.012em;
}
.home-insights .content-card-excerpt {
  margin-bottom: 18px;
  font-size: 13px;
  line-height: 1.62;
  color: #706762;
}
.home-insights .content-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
}

/* Pubblica con Filo: resta sobrio ma acquisisce più presenza editoriale. */
.home-services {
  padding: 8px 0 74px;
}
.home-services-panel {
  grid-template-columns: 72px minmax(0,1fr) auto;
  gap: 26px;
  padding: 34px 38px;
  border-color: #dcc8cc;
  box-shadow: 0 12px 34px rgba(74,35,47,.045);
}
.home-services-icon {
  width: 68px;
  height: 68px;
  border-radius: 16px;
  color: var(--color-brand-deep);
  background: rgba(125,31,61,.10);
}
.home-services-icon svg {
  width: 42px;
  height: 42px;
  stroke-width: 1.75;
}
.home-services-copy h2 {
  margin: 3px 0 8px;
  font-size: clamp(30px,3.2vw,40px);
  color: var(--color-ink);
}
.home-services-copy p {
  font-size: 15px;
  line-height: 1.65;
}
.home-services-action .btn {
  min-height: 48px;
  padding-left: 24px;
  padding-right: 24px;
}

/* FAQ: box più leggibili e gerarchia più curata, senza trasformarli in
   elementi pesanti. */
.home-faq {
  padding: 74px 0 84px;
  background: #f3ecdf;
}
.home-faq-layout {
  gap: clamp(48px,7vw,104px);
}
.faq-list {
  display: grid;
  gap: 10px;
}
.faq-item,
.faq-item:first-child {
  overflow: hidden;
  border: 1px solid #dfd3c4;
  border-radius: 8px;
  background: rgba(255,255,255,.42);
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.faq-item:hover,
.faq-item:focus-within,
.faq-item[open] {
  border-color: #cfbcc0;
  background: rgba(255,255,255,.72);
  box-shadow: 0 8px 20px rgba(68,44,30,.035);
}
.faq-item summary {
  min-height: 62px;
  padding: 19px 18px 19px 20px;
  font-size: 18px;
  line-height: 1.35;
}
.faq-item summary::after {
  width: 30px;
  height: 30px;
  border: 1px solid rgba(125,31,61,.20);
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  font-size: 19px;
}
.faq-item[open] summary::after {
  background: rgba(125,31,61,.07);
}
.faq-item p {
  margin: 0;
  padding: 0 64px 22px 20px;
  font-size: 15px;
  line-height: 1.76;
}

@media (max-width: 900px) {
  .home-services-panel {
    grid-template-columns: 68px minmax(0,1fr);
  }
}
@media (max-width: 680px) {
  .home-insights { padding: 56px 0 60px; }
  .home-insights .content-card h3 { font-size: 22px; }
  .home-services { padding-bottom: 56px; }
  .home-services-panel {
    grid-template-columns: 1fr;
    padding: 26px 22px;
  }
  .home-services-icon { width: 58px; height: 58px; }
  .home-services-icon svg { width: 35px; height: 35px; }
  .home-faq { padding: 58px 0 64px; }
  .faq-item summary { min-height: 58px; padding: 17px 15px; font-size: 16.5px; }
  .faq-item p { padding: 0 50px 19px 15px; font-size: 14.5px; }
}

/* ==========================================================
   1.25.13 — Immagini percorsi inline: mai ritagliate
   I poster video possono riempire il frame; le immagini dei percorsi
   digitali devono invece essere visibili per intero.
   ========================================================== */
.fe-inline-commercial-percorso .fe-inline-commercial-alt-media {
  background: var(--color-paper-alt);
}
.fe-inline-commercial-percorso .fe-inline-commercial-alt-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}

/* ==========================================================
   1.25.14 — Percorsi inline: il frame segue la cover
   La cover mantiene il rapporto naturale. Non viene più adattata a
   un riquadro orizzontale: è il contenitore media a prendere l'altezza
   reale dell'immagine renderizzata.
   ========================================================== */
.fe-inline-commercial-percorso {
  grid-template-columns: 140px minmax(0, 1fr);
  align-items: center;
}
.fe-inline-commercial-percorso .fe-inline-commercial-alt-media {
  width: 140px;
  min-width: 140px;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  display: block;
  overflow: hidden;
  background: transparent;
  border-radius: 5px;
}
.fe-inline-commercial-percorso .fe-inline-commercial-alt-media img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: none;
  aspect-ratio: auto;
  object-fit: initial;
  object-position: initial;
}

@media (max-width: 760px) {
  .fe-inline-commercial-percorso {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  .fe-inline-commercial-percorso .fe-inline-commercial-alt-media {
    width: 112px;
    min-width: 112px;
    height: auto;
  }
}

@media (max-width: 520px) {
  .fe-inline-commercial-percorso {
    grid-template-columns: 88px minmax(0, 1fr);
  }
  .fe-inline-commercial-percorso .fe-inline-commercial-alt-media {
    width: 88px;
    min-width: 88px;
    height: auto;
  }
}


/* ==========================================================
   1.25.15 — Audiolibri inline: cover reale e proporzioni da copertina
   Il box audio non è un poster orizzontale: usa la copertina del libro /
   audiolibro e mantiene una cornice verticale coerente con il catalogo.
   ========================================================== */
.fe-inline-commercial-audiolibro {
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: center;
}
.fe-inline-commercial-audiolibro .fe-inline-commercial-alt-media {
  width: 118px;
  min-width: 118px;
  height: 164px;
  background: transparent;
  border-radius: 5px;
  overflow: hidden;
}
.fe-inline-commercial-audiolibro .fe-inline-commercial-audio-cover {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 5px;
  overflow: hidden;
  background: transparent;
}
.fe-inline-commercial-audiolibro .fe-inline-commercial-audio-cover img,
.fe-inline-commercial-audiolibro .fe-inline-commercial-audio-cover .book-cover-image,
.fe-inline-commercial-audiolibro .fe-inline-commercial-alt-media > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}
@media (max-width: 760px) {
  .fe-inline-commercial-audiolibro {
    grid-template-columns: 96px minmax(0, 1fr);
  }
  .fe-inline-commercial-audiolibro .fe-inline-commercial-alt-media {
    width: 96px;
    min-width: 96px;
    height: 136px;
  }
}
@media (max-width: 520px) {
  .fe-inline-commercial-audiolibro {
    grid-template-columns: 82px minmax(0, 1fr);
  }
  .fe-inline-commercial-audiolibro .fe-inline-commercial-alt-media {
    width: 82px;
    min-width: 82px;
    height: 116px;
  }
}

/* ============================================================
   v1.26.1 — Posizionamento multi-catalogo Filo Edizioni
   Promessa leggibile + ricerca reale fra contenuti già importati
   ============================================================ */
.home-hero.has-custom-bg .home-hero-copy { max-width: min(570px, 52vw); padding: 65px 0 56px; }
.home-hero h1 { font-size: clamp(42px, 4.6vw, 64px); max-width: 15ch; margin-bottom: 15px; }
.home-hero-copy > p { max-width: 49ch; font-size: 16px; line-height: 1.52; margin-bottom: 15px; }
.home-hero-search {
  display: flex;
  align-items: stretch;
  width: min(100%, 510px);
  min-height: 51px;
  margin: 0 0 15px;
  overflow: hidden;
  border: 1px solid #d9c5b6;
  background: #fffdf9;
  border-radius: 7px;
  box-shadow: 0 8px 24px rgba(61, 30, 36, .07);
}
.home-hero-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 12px 15px;
  margin: 0;
  border: 0;
  border-radius: 0;
  outline-offset: -3px;
  background: transparent;
  color: var(--color-ink);
  font: 400 14px/1.3 var(--font-sans);
}
.home-hero-search button {
  flex: 0 0 auto;
  padding: 10px 19px;
  border: none;
  background: var(--color-brand-deep);
  color: #fff;
  font: 600 14px/1.2 var(--font-sans);
  cursor: pointer;
}
.home-hero-search button:hover,
.home-hero-search button:focus-visible { background: var(--color-brand); }
.home-hero .home-hero-actions { gap: 10px; }
.home-hero .home-trust-grid { margin-top: 16px; padding-top: 12px; }

.home-unified {
  padding: 43px 0 47px;
  background: #f9f4ec;
  border-top: 1px solid #e9dfd2;
  border-bottom: 1px solid #e9dfd2;
}
.home-unified-head { max-width: 760px; margin: 0 auto 26px; text-align: center; }
.home-unified-head h2 {
  font: 400 clamp(27px, 2.8vw, 37px)/1.18 var(--font-display);
  letter-spacing: -.02em;
  color: var(--color-ink);
  margin: 0 0 10px;
}
.home-unified-head p {
  margin: 0;
  font: 400 15px/1.65 var(--font-sans);
  color: var(--color-muted);
}
.home-unified-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  max-width: 1060px;
  margin: 0 auto;
}
.home-unified-item {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  padding: 19px 17px;
  background: #fffdfa;
  border: 1px solid #e9dfd2;
  border-radius: 8px;
}
.home-unified-symbol { color: var(--color-brand); display: inline-flex; flex-shrink: 0; }
.home-unified-item h3 {
  font: 600 16px/1.3 var(--font-sans);
  color: var(--color-brand-deep);
  margin: 1px 0 6px;
}
.home-unified-item p {
  font: 400 13px/1.55 var(--font-sans);
  color: var(--color-muted);
  margin: 0;
}
.home-unified-link {
  display: table;
  margin: 21px auto 0;
  font: 700 13px/1.3 var(--font-sans);
  color: var(--color-brand-deep);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
}
.home-unified-link:hover, .home-unified-link:focus-visible { color: var(--color-brand); }

@media (max-width: 1000px) {
  .home-hero.has-custom-bg .home-hero-copy { max-width: min(580px, 68vw); }
  .home-hero h1 { font-size: clamp(34px, 4.7vw, 52px); }
  .home-unified-grid { gap: 10px; }
  .home-unified-item { padding: 16px 13px; }
}
@media (max-width: 768px) {
  .home-hero.has-custom-bg { min-height: 0; aspect-ratio: auto; }
  .home-hero.has-custom-bg .container { min-height: 0; height: auto; }
  .home-hero.has-custom-bg .home-hero-copy {
    width: min(100%, 465px);
    max-width: 465px;
    padding: 50px 0 43px;
  }
  .home-hero.has-custom-bg .home-hero-background-overlay {
    background: linear-gradient(90deg, rgba(251,244,235,.97) 0%, rgba(251,244,235,.92) 68%, rgba(251,244,235,.70) 100%);
  }
  .home-hero h1 { font-size: clamp(32px, 6vw, 45px); max-width: 15ch; }
  .home-hero-copy > p { max-width: 49ch; font-size: 14px; line-height: 1.5; }
  .home-hero-search { width: 100%; }
  .home-unified { padding: 35px 0 39px; }
  .home-unified-grid { grid-template-columns: 1fr; gap: 10px; }
  .home-unified-item { padding: 14px 15px; }
}
@media (max-width: 560px) {
  .home-hero.has-custom-bg { aspect-ratio: auto; }
  .home-hero.has-custom-bg .home-hero-copy { width: 100%; max-width: 380px; padding: 44px 0 37px; }
  .home-hero h1 { font-size: clamp(31px, 8vw, 39px); max-width: 17ch; }
  .home-hero-copy > p { font-size: 13.5px; max-width: 48ch; }
  .home-hero-search { min-height: 48px; }
  .home-hero-search input[type="search"] { font-size: 13px; padding: 10px 11px; }
  .home-hero-search button { font-size: 13px; padding: 10px 12px; }
  .home-unified-head h2 { font-size: 27px; }
  .home-unified-head p { font-size: 14px; }
}

/* ============================================================
   1.26.3 — Catalogo raggruppato per azione: leggere/ascoltare/guardare
   Lo stesso markup viene usato su desktop e sul drawer mobile.
   ============================================================ */
.nav-desktop .fe-catalog-menu > .sub-menu {
  width: min(360px, 90vw);
  min-width: 320px;
  max-height: min(640px, calc(100vh - 100px));
  overflow-y: auto;
  padding: 12px;
  border-radius: 10px;
  box-shadow: 0 16px 36px rgba(39, 32, 29, .12);
}
.nav-desktop .fe-catalog-menu .fe-catalog-nav-item {
  position: relative;
}
.fe-catalog-nav-item.fe-catalog-heading {
  list-style: none;
  margin: 15px 0 4px;
}
.fe-catalog-nav-item.fe-catalog-heading:first-child { margin-top: 4px; }
.fe-catalog-section-title {
  display: block;
  padding: 6px 12px 4px;
  color: var(--color-brand-deep);
  font-size: 10px;
  line-height: 1.3;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.nav-desktop .fe-catalog-nav-item > a,
.mobile-nav-drawer .fe-catalog-nav-item > a {
  display: flex;
  align-items: center;
  gap: 12px;
  border-radius: 7px;
  white-space: normal;
  text-decoration: none;
  line-height: 1.3;
  transition: background .18s ease, color .18s ease;
}
.nav-desktop .fe-catalog-nav-item > a {
  min-height: 46px;
  padding: 10px 12px;
  font-size: 14px;
}
.nav-desktop .fe-catalog-nav-item.fe-catalog-all {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-line-soft);
}
.fe-catalog-nav-item.fe-catalog-all > a {
  background: var(--color-brand-tint);
  color: var(--color-brand-deep);
  font-weight: 700;
}
.fe-catalog-nav-item > a:hover,
.fe-catalog-nav-item > a:focus-visible,
.fe-catalog-nav-item.current-menu-item > a {
  background: var(--color-brand-tint);
  color: var(--color-brand-deep);
}
.fe-catalog-icon {
  flex: 0 0 21px;
  color: var(--color-brand);
}
.fe-catalog-text { display: block; min-width: 0; }
.fe-catalog-label { display: block; font-weight: 600; }
.fe-catalog-text small {
  display: block;
  margin-top: 3px;
  color: var(--color-muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
  white-space: normal;
}
.mobile-nav-drawer .fe-catalog-menu > .sub-menu {
  padding: 8px 8px 12px 10px;
  border-left: 2px solid var(--color-line-soft);
}
.mobile-nav-drawer .fe-catalog-nav-item > a {
  min-height: 44px;
  padding: 11px 10px;
  font-family: var(--font-sans);
  font-size: 14px;
}
.mobile-nav-drawer .fe-catalog-nav-item.fe-catalog-all {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-line-soft);
}
.mobile-nav-drawer .fe-catalog-nav-item.fe-catalog-heading { margin: 13px 0 3px; }
.mobile-nav-drawer .fe-catalog-section-title { padding: 4px 10px; }
/* Le intestazioni non sono link e quindi non ricevono hover o frecce. */
.fe-catalog-nav-item.fe-catalog-heading > .fe-catalog-section-title { pointer-events: none; }

/* ================================================================
   1.26.4 — Approfondimenti: chiusura editoriale ariosa e cover integre
   Scope: solo sezioni successive al corpo degli approfondimenti.
   ================================================================ */
.fe-editorial-commercial-resources {
  padding: clamp(56px, 6vw, 90px) 0 clamp(55px, 6vw, 84px);
  background: linear-gradient(180deg, #f8f5ef 0%, #f6f1e9 100%);
}
.fe-editorial-commercial-resources .fe-editorial-related-head {
  max-width: 780px;
  margin: 0 auto clamp(38px, 5vw, 60px);
  text-align: center;
}
.fe-editorial-commercial-resources .fe-editorial-related-head h2 {
  margin-top: 10px;
  margin-bottom: 14px;
  font-size: clamp(2.1rem, 3.8vw, 3.2rem);
  line-height: 1.14;
}
.fe-editorial-commercial-resources .fe-editorial-related-head p {
  max-width: 600px;
  margin: 0 auto;
  font-size: 1rem;
  line-height: 1.7;
}
.fe-editorial-commercial-resources .fe-resource-block {
  max-width: 1060px;
  margin: 0 auto 46px;
  padding: clamp(24px, 3.2vw, 42px);
  background: #fffdfb;
  border: 1px solid #e4d8cd;
  border-radius: 18px;
  box-shadow: 0 12px 38px rgba(52, 34, 36, .035);
}
.fe-editorial-commercial-resources .fe-resource-block:last-child {
  margin-bottom: 0;
}
.fe-editorial-commercial-resources .fe-resource-block--digital {
  background: #fcf8f3;
}
.fe-editorial-commercial-resources .fe-resource-block--video,
.fe-editorial-commercial-resources .fe-resource-block--listening {
  background: #fdfaf7;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-books-head,
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-head {
  max-width: none;
  margin: 0 0 25px;
  align-items: flex-start;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-books-head h3,
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-head h3 {
  margin: 7px 0 0;
  font-size: clamp(1.75rem, 2.7vw, 2.3rem);
  line-height: 1.18;
}
.fe-editorial-commercial-resources .fe-resource-intro {
  max-width: 640px;
  margin: 9px 0 0;
  font-size: .95rem;
  line-height: 1.55;
  color: var(--color-muted);
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-feature {
  max-width: none;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-feature-card {
  gap: clamp(22px, 3vw, 42px);
  padding: clamp(18px, 2.4vw, 28px);
  border-radius: 14px;
  box-shadow: none;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-feature-copy h3 {
  font-size: clamp(1.65rem, 2.5vw, 2.4rem);
  line-height: 1.16;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-secondary-head {
  max-width: none;
  margin: 31px 0 15px;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-grid {
  max-width: none;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: 16px;
  margin: 0;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-mini {
  padding: 15px;
  gap: 15px;
  grid-template-columns: 76px minmax(0,1fr);
  max-width: 480px;
  background: #fff;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-mini-cover .book-cover {
  width: 76px;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-mini h4 {
  font-size: 1.12rem;
  line-height: 1.3;
}

/* Il percorso digitale è un prodotto, non un poster video. La cornice prende
   la forma dalla cover reale: nessun rapporto forzato, crop o falsa icona play. */
.fe-editorial-commercial-resources .fe-resource-digital-feature {
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0,1fr);
  align-items: center;
  gap: clamp(24px, 4vw, 54px);
  padding: clamp(18px, 2.5vw, 30px);
  border: 1px solid #e3d7cd;
  border-radius: 15px;
  background: #fff;
}
.fe-editorial-commercial-resources .fe-resource-digital-media {
  display: block;
  width: fit-content;
  max-width: 100%;
  height: auto;
  overflow: visible;
  line-height: 0;
  border-radius: 6px;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(48, 31, 30, .09);
}
.fe-editorial-commercial-resources .fe-resource-digital-media img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto !important;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto !important;
  object-fit: initial !important;
  object-position: initial;
  border-radius: 6px;
}
.fe-editorial-commercial-resources .fe-resource-digital-placeholder {
  display: grid;
  place-items: center;
  width: 190px;
  max-width: 100%;
  min-height: 230px;
  background: #efe8dc;
  color: var(--color-brand);
  font-size: 2.6rem;
}
.fe-editorial-commercial-resources .fe-resource-digital-copy {
  min-width: 0;
}
.fe-editorial-commercial-resources .fe-resource-digital-copy h4 {
  margin: 12px 0 14px;
  font-family: var(--font-display);
  color: var(--color-brand-deep);
  font-size: clamp(1.7rem, 2.8vw, 2.6rem);
  font-weight: 500;
  line-height: 1.12;
}
.fe-editorial-commercial-resources .fe-resource-digital-copy h4 a {
  color: inherit;
  text-decoration: none;
}
.fe-editorial-commercial-resources .fe-resource-digital-copy h4 a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.fe-editorial-commercial-resources .fe-resource-digital-copy > p {
  max-width: 600px;
  margin: 0 0 25px;
  font-size: 1rem;
  line-height: 1.72;
  color: var(--color-ink-soft);
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-grid {
  max-width: none;
  gap: 22px;
  margin: 0;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-card {
  padding: 21px;
  background: #fff;
  border-radius: 13px;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-card--video .content-card-media {
  display: block;
  height: auto;
  min-height: 0;
  overflow: hidden;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-card--video .content-card-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-card .content-card-body {
  padding: 18px 0 0;
}

/* Gli approfondimenti correlati hanno una loro pausa visiva e card leggibili. */
.fe-editorial-native-continue-wrap {
  padding: clamp(55px, 6vw, 84px) 0;
  background: #fffdf9;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue {
  max-width: 1060px;
  padding: clamp(25px, 3.3vw, 42px);
  background: #fcf8f3;
  border: 1px solid #e3d7cb;
  border-radius: 18px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-head {
  max-width: 760px;
  margin-bottom: 28px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue h2 {
  font-size: clamp(1.8rem, 2.8vw, 2.45rem);
  margin: 8px 0 12px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-head > p {
  font-size: .98rem;
  line-height: 1.6;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-posts {
  gap: 18px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card {
  grid-template-columns: 148px minmax(0,1fr);
  min-height: 165px;
  border-radius: 12px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-media,
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-placeholder {
  width: 148px;
  height: 100%;
  min-height: 165px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-body {
  padding: 18px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-title {
  font-size: 1.23rem;
  line-height: 1.25;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-excerpt {
  display: -webkit-box;
  font-size: .83rem;
  line-height: 1.5;
  margin-top: 8px;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-read {
  margin-top: 13px;
  font-size: .83rem;
}
.fe-editorial-native-continue-wrap .fe-editorial-native-continue-explore {
  margin-top: 26px;
  padding-top: 21px;
}
.fe-editorial-final-cta {
  padding: 60px 0 82px;
  background: #f4eee5;
}
@media (max-width: 900px) {
  .fe-editorial-commercial-resources .fe-resource-block {
    margin-bottom: 34px;
  }
  .fe-editorial-commercial-resources .fe-resource-digital-feature {
    grid-template-columns: minmax(0,170px) minmax(0,1fr);
    gap: 26px;
  }
}
@media (max-width: 680px) {
  .fe-editorial-commercial-resources {
    padding: 44px 0 52px;
  }
  .fe-editorial-commercial-resources .fe-editorial-related-head {
    text-align: left;
    margin-bottom: 28px;
  }
  .fe-editorial-commercial-resources .fe-editorial-related-head p {
    margin-left: 0;
  }
  .fe-editorial-commercial-resources .fe-resource-block {
    padding: 20px 16px 24px;
    margin-bottom: 26px;
    border-radius: 14px;
  }
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-books-head,
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-head {
    margin-bottom: 20px;
  }
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-feature-card {
    grid-template-columns: 98px minmax(0,1fr);
    gap: 15px;
    padding: 13px;
  }
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-feature-cover .book-cover {
    max-width: 98px;
  }
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-book-grid,
  .fe-editorial-commercial-resources .fe-resource-block .fe-commercial-other-grid {
    grid-template-columns: 1fr;
  }
  .fe-editorial-commercial-resources .fe-resource-digital-feature {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 22px;
    padding: 18px;
  }
  .fe-editorial-commercial-resources .fe-resource-digital-media {
    max-width: min(100%, 180px);
  }
  .fe-editorial-commercial-resources .fe-resource-digital-copy h4 {
    font-size: 1.95rem;
  }
  .fe-editorial-commercial-resources .fe-resource-digital-copy > p {
    font-size: .94rem;
    line-height: 1.6;
  }
  .fe-editorial-native-continue-wrap {
    padding: 44px 0;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue {
    padding: 24px 18px;
    border-radius: 14px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-posts {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card {
    grid-template-columns: 110px minmax(0,1fr);
    min-height: 140px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-media,
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-placeholder {
    width: 110px;
    min-height: 140px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-body {
    padding: 13px;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-title {
    font-size: 1.08rem;
  }
  .fe-editorial-native-continue-wrap .fe-editorial-native-continue-card-excerpt {
    display: none;
  }
  .fe-editorial-final-cta {
    padding: 46px 0 62px;
  }
}
.fe-editorial-commercial-resources .fe-resource-block--listening .hub-block {
  margin-top: 10px;
}
.fe-editorial-commercial-resources .fe-resource-block--listening .hub-block .section-header {
  margin-bottom: 22px;
}
.fe-editorial-commercial-resources .fe-resource-block--listening .hub-block .section-header h2 {
  font-size: clamp(1.75rem, 2.7vw, 2.3rem);
  line-height: 1.2;
}


/* Video di presentazione del libro: distinto dalla videoguida acquistabile. */
.fe-book-presentation {
  margin: 24px 0 32px;
  padding: 18px;
  border: 1px solid var(--color-line-soft, #e8ded4);
  border-radius: 10px;
  background: #fbf7f2;
}
.fe-book-presentation-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}
.fe-book-presentation-heading-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-brand-deep, #5b1033);
  margin-top: 3px;
  flex-shrink: 0;
}
.fe-book-presentation-heading h2 {
  margin: 0 0 5px;
  font-size: clamp(18px, 2vw, 23px);
  font-family: var(--font-serif, Georgia, serif);
  color: var(--color-brand-deep, #5b1033);
  line-height: 1.25;
}
.fe-book-presentation-heading p {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--color-muted, #655d54);
}
.fe-book-presentation-media {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}
.fe-book-presentation-media video,
.fe-book-presentation-external iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
  border-radius: 8px;
  background: #191318;
}
.fe-book-presentation-external {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  background: #261c21 center / contain no-repeat;
  overflow: hidden;
}
.fe-book-presentation-play {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 8px;
  color: #fff;
  background: #5b1033;
  padding: 14px 22px;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 8px 22px rgba(0,0,0,.2);
}
.fe-book-presentation-play:hover,
.fe-book-presentation-play:focus-visible { background: #7b1a45; }
.fe-book-presentation-loaded { display: block; }
@media(max-width:600px){
  .fe-book-presentation { padding: 14px; margin: 20px 0 26px; }
  .fe-book-presentation-play { padding: 11px 14px; font-size: 13px; }
}

/* ================================================================
   1.26.6 — Collane in rotazione nella homepage (ogni 3 giorni)
   ================================================================ */
.home-collane-rotation {
  padding: 54px 0 60px;
  background: #f7f3ec;
  border-top: 1px solid var(--color-line-soft);
  border-bottom: 1px solid var(--color-line-soft);
}
.home-collane-rotation .home-section-heading { margin-bottom: 24px; }
.home-collane-rotation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.home-collane-rotation-grid--1 { grid-template-columns: minmax(280px, 440px); }
.home-collane-rotation-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
.home-collana-rotation-card {
  min-width: 0;
  min-height: 188px;
  display: flex;
  gap: 17px;
  align-items: center;
  text-decoration: none;
  color: var(--color-ink);
  padding: 16px;
  border: 1px solid var(--color-line);
  border-radius: 10px;
  background: var(--color-paper);
  box-shadow: 0 4px 18px rgba(40,25,25,.035);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.home-collana-rotation-card:hover,
.home-collana-rotation-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(104,22,51,.5);
  box-shadow: 0 12px 30px rgba(40,25,25,.11);
}
.home-collana-rotation-cover.book-cover {
  display: block;
  flex: 0 0 92px;
  width: 92px;
  height: 140px;
  min-width: 0;
  margin: 0;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 2 / 3;
  box-shadow: 0 5px 12px rgba(30,18,22,.13);
  background: #fff;
}
.home-collana-rotation-cover.book-cover .book-cover-image {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}
.home-collana-rotation-cover.book-cover .book-cover-inner { padding: 10px; }
.home-collana-rotation-cover .cover-title { font-size: 13px; }
.home-collana-rotation-cover .cover-author { font-size: 8px; margin-bottom: 4px; }
.home-collana-rotation-cover .cover-collana { font-size: 9px; }
.home-collana-rotation-fallback { display: flex; justify-content: center; align-items: center; height: 100%; color: var(--color-brand); }
.home-collana-rotation-copy {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}
.home-collana-rotation-label {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--color-brass);
}
.home-collana-rotation-name {
  font-family: var(--font-display, var(--font-serif));
  font-size: clamp(19px, 1.6vw, 23px);
  line-height: 1.14;
  color: var(--color-ink);
}
.home-collana-rotation-description {
  font-family: var(--font-sans);
  color: var(--color-muted);
  font-size: 12.5px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-collana-rotation-link {
  margin-top: auto;
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--color-brand-deep);
}
.home-collana-rotation-link span { display: inline-block; transition: transform .2s ease; }
.home-collana-rotation-card:hover .home-collana-rotation-link span { transform: translateX(4px); }
@media (max-width: 1000px) {
  .home-collane-rotation-grid:not(.home-collane-rotation-grid--1) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .home-collane-rotation { padding: 36px 0 42px; }
  .home-collane-rotation-grid,
  .home-collane-rotation-grid:not(.home-collane-rotation-grid--1) { grid-template-columns: 1fr; gap: 12px; }
  .home-collana-rotation-card { min-height: 150px; padding: 12px; gap: 14px; }
  .home-collana-rotation-cover.book-cover { flex-basis: 83px; width: 83px; height: 126px; }
  .home-collana-rotation-name { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-collana-rotation-card, .home-collana-rotation-link span { transition: none; }
  .home-collana-rotation-card:hover { transform: none; }
}

/* v1.26.7 — Link newsletter nel menu e nel footer */
.nav-desktop .fe-menu-newsletter > a { color:var(--color-brand-deep);font-weight:650; }
.nav-desktop .fe-menu-newsletter.current-menu-item > a {box-shadow:inset 0 -2px 0 var(--color-brand);}
.fe-footer-newsletter-link {display:inline-flex;align-items:center;gap:7px;color:#f0d0d6;font-size:12px;font-weight:650;margin:4px 0 17px;text-decoration:underline;text-underline-offset:4px;}
.fe-footer-newsletter-link:hover {color:#fff;}
/* Con la nuova voce Newsletter, su laptop stretti il menu passa prima
   alla navigazione a cassetto invece di comprimere ricerca e logo. */
@media (min-width:981px) and (max-width:1180px) {
  .nav-desktop { display:none !important; }
  .header-actions { display:none; }
  .nav-mobile-toggle { display:block; }
}


/* 1.26.8 — confronto consapevole dei canali partner (prezzi sul negozio) */
.home-unified-disclaimer {
  max-width: 900px;
  margin: 16px auto 0;
  color: var(--color-muted);
  text-align: center;
  font: 400 12px/1.55 var(--font-sans);
}
.fe-price-how { padding-top: 66px; padding-bottom: 66px; }
.fe-price-how .section-header { max-width: 780px; margin-left: auto; margin-right: auto; }
.fe-price-how-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px;
}
.fe-price-how-grid article {
  background: #fffdfa;
  border: 1px solid var(--color-line, #e9dfd2);
  border-radius: 9px;
  padding: 24px;
}
.fe-price-how-num { display: block; color: var(--color-brand); font: 700 12px/1.3 var(--font-sans); letter-spacing: .11em; margin-bottom: 13px; }
.fe-price-how-grid h3 { margin: 0 0 10px; color: var(--color-brand-deep); font: 600 19px/1.35 var(--font-display); }
.fe-price-how-grid p { color: var(--color-muted); font: 400 14px/1.6 var(--font-sans); margin: 0; }
.fe-price-how-note { margin: 18px auto 0; font: 400 12px/1.6 var(--font-sans); text-align: center; color: var(--color-muted); }
.fe-catalogo-compare { padding: 36px 0 55px; }
.fe-catalogo-compare-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 32px;
  background: #faf5f1;
  border: 1px solid var(--color-line, #e9dfd2);
  border-left: 3px solid var(--color-brand);
  border-radius: 8px;
}
.fe-catalogo-compare-inner > div { max-width: 770px; }
.fe-catalogo-compare h2 { margin: 9px 0; color: var(--color-brand-deep); font: 400 clamp(24px, 2vw, 33px)/1.22 var(--font-display); }
.fe-catalogo-compare p { font: 400 15px/1.65 var(--font-sans); margin: 0 0 12px; }
.fe-catalogo-compare small { display: block; color: var(--color-muted); font: 400 12px/1.6 var(--font-sans); }
.fe-catalogo-compare a { flex-shrink: 0; }
.fe-book-compare-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 780px;
  margin: -12px 0 22px;
  padding: 12px 15px;
  border-left: 2px solid var(--color-brand);
  background: #fbf7f1;
  border-radius: 0 5px 5px 0;
  color: var(--color-muted);
}
.fe-book-compare-note-icon { display: inline-flex; color: var(--color-brand); flex: 0 0 19px; margin-top: 1px; }
.fe-book-compare-note p { font: 400 13px/1.55 var(--font-sans); margin: 0; }
.fe-book-compare-note strong { color: var(--color-brand-deep); font-weight: 700; }
@media (max-width: 800px) {
  .fe-price-how { padding-top: 44px; padding-bottom: 44px; }
  .fe-price-how-grid { grid-template-columns: 1fr; gap: 12px; }
  .fe-price-how-grid article { padding: 19px; }
  .fe-catalogo-compare-inner { flex-direction: column; align-items: flex-start; padding: 22px; }
  .fe-book-compare-note { margin-top: 0; }
}

/* 1.27.2 — autori compatti nelle schede libro, audio, video e percorsi.
   Dopo i primi due, i nomi e i profili si aprono solo su richiesta.
   Native details/summary: accessibili da tastiera, nessuno script. */
.book-byline--compact {
  flex-wrap: wrap;
  align-items: baseline;
  row-gap: 7px;
}
.fe-author-expander {
  min-width: 0;
  max-width: 100%;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 500;
  color: var(--color-brand-deep);
}
.fe-author-expander > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  padding: 7px 11px;
  border: 1px solid var(--color-line);
  border-radius: 7px;
  background: #fbf7f4;
  color: var(--color-brand-deep);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: border-color .2s, background-color .2s;
}
.fe-author-expander > summary::-webkit-details-marker { display: none; }
.fe-author-expander > summary::after {
  content: '';
  display: block;
  width: 7px;
  height: 7px;
  border-bottom: 1.6px solid currentColor;
  border-right: 1.6px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  margin-left: 3px;
  transition: transform .2s;
}
.fe-author-expander[open] > summary::after {
  transform: translateY(2px) rotate(225deg);
}
.fe-author-expander > summary:hover { background: #f5eaea; border-color: var(--color-brand); }
.fe-author-expander > summary:focus-visible { outline: 2px solid var(--color-brand); outline-offset: 3px; }
.fe-author-expander .fe-author-expand-open { display: none; }
.fe-author-expander[open] .fe-author-expand-closed { display: none; }
.fe-author-expander[open] .fe-author-expand-open { display: inline; }
.fe-author-expander--byline > summary { padding: 4px 9px; }
.fe-author-expander--byline .fe-author-extra-names {
  padding: 8px 0 3px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.book-byline--compact .fe-author-expander--byline[open] {
  flex-basis: 100%;
  margin-left: 20px;
}
.fe-author-expander--profiles { margin-top: 20px; }
.fe-author-extra-profiles { padding-top: 4px; }
.fe-author-extra-profiles > .book-author-item { margin-top: 18px; }
.fe-author-expander--digital { margin-top: 8px; }
.fe-author-expander--digital .fe-author-extra-names {
  padding: 8px 0 0;
  overflow-wrap: anywhere;
  color: var(--color-ink-soft);
  font-size: 14px;
  font-weight: 400;
}
.fe-digital-authors-compact { min-width: 0; }
@media (max-width: 560px) {
  .book-byline--compact { align-items: flex-start; }
  .book-byline--compact .fe-author-expander--byline { flex-basis: 100%; margin-left: 17px; }
}

/* 1.27.4 — Copertine nelle schede: proporzioni naturali e immagini valorizzate.
   La precedente versione 1.27.3 limitava via JavaScript la larghezza delle
   copertine piccole, creando cornici grandi e copertine minuscole. Le URL
   originali restano invariate: il browser le renderizza al formato della
   colonna, come già faceva il sito partner. */
.book-detail-cover.has-cover-image .book-cover-image {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  margin: 0 auto;
}

/* Il badge AUDIO e la CTA non devono trasformare una cover quadrata in
   una copertina 2:3 tagliata: anche l'anteprima usa le proporzioni reali. */
.book-audio-preview {
  grid-template-columns: 112px minmax(0, 1fr);
}
.book-audio-preview-cover {
  width: 112px;
}
.book-audio-preview-cover.has-real-cover {
  width: 112px;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  overflow: hidden;
}
.book-audio-preview-cover.has-real-cover .book-cover-image {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
}
/* L'icona di riproduzione non copre più il titolo stampato sulla cover. */
.book-audio-preview .book-audio-play {
  left: auto;
  top: auto;
  right: 7px;
  bottom: 7px;
  transform: none;
  width: 32px;
  height: 32px;
}
.book-audio-preview-media:hover .book-audio-play,
.book-audio-preview-media:focus-visible .book-audio-play {
  transform: scale(1.08);
}
@media (max-width: 600px) {
  .book-audio-preview { grid-template-columns: 84px minmax(0, 1fr); }
  .book-audio-preview-cover,
  .book-audio-preview-cover.has-real-cover { width: 84px; }
}

/* 1.27.5 — Vetrine dinamiche dei formati nella homepage.
   Copertine sempre integre, soprattutto per audiolibri quadrati e prodotti
   digitali verticali. Nessun ritaglio né falso Play sui percorsi. */
.fe-home-format-listen { background: #fbf8f4; }
.fe-home-format-watch { background: #f8f4ee; }
.fe-home-formats.section { padding: 35px 0 43px; }
.fe-home-formats + .fe-home-formats.section { padding-top: 11px; }
.fe-home-format-heading { margin-bottom: 21px; }
.fe-home-format-icon { flex: 0 0 37px; width:37px; height:37px; display:grid; place-items:center;
  font: 26px/1 Georgia,serif; color:var(--color-brand); border:1px solid rgba(114,35,61,.17);
  border-radius:11px; background:#fffaf6; }
.fe-home-formats-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.fe-home-format-card { display:flex; flex-direction:column; min-width:0; background:#fffdfb;
  border:1px solid rgba(129,83,72,.14); border-radius:9px; overflow:hidden;
  box-shadow:0 8px 24px rgba(56,39,33,.035);
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.fe-home-format-card:hover { transform:translateY(-3px); box-shadow:0 16px 35px rgba(56,39,33,.09); border-color:rgba(114,35,61,.25); }
.fe-home-format-card-image { position:relative; min-height:220px; height:220px;
  display:flex; align-items:center; justify-content:center; padding:14px 18px;
  background:linear-gradient(140deg,#f5ede3 0%,#faf6ee 70%,#f1e9df 100%); overflow:hidden; }
.fe-home-format-card-image img { display:block; max-width:100%; max-height:100%; width:auto; height:auto;
  object-fit:contain; object-position:center; border-radius:3px;
  box-shadow:0 6px 15px rgba(34,23,28,.12); }
.fe-home-format-card--videoguida .fe-home-format-card-image img { box-shadow:0 4px 12px rgba(34,23,28,.09); }
.fe-home-format-card-placeholder { display:flex; color:var(--color-brand); opacity:.7; }
.fe-home-format-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  background:rgba(255,255,255,.95); color:var(--color-brand); display:grid; place-items:center;
  border-radius:50%; width:43px; height:43px; padding-left:3px; box-shadow:0 4px 15px rgba(15,15,15,.16); }
.fe-home-format-card-content { padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; gap:7px; }
.fe-home-format-card-kind { font:700 10px/1.4 var(--font-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--color-brass); }
.fe-home-format-card-content h3 { margin:0; font:400 clamp(21px,2vw,27px)/1.13 var(--font-display); color:var(--color-brand-deep); }
.fe-home-format-card-content h3 a { color:inherit; text-decoration:none; }
.fe-home-format-card-content h3 a:hover { color:var(--color-brand); }
.fe-home-format-card-content p { font:400 13px/1.55 var(--font-sans); color:var(--color-ink-soft); margin:3px 0 0; }
.fe-home-format-card-link { color:var(--color-brand); font:700 12px/1.4 var(--font-sans); text-decoration:none; margin-top:auto; padding-top:12px; }
.fe-home-format-card-link:hover { text-decoration:underline; }
.fe-home-format-card-link span { margin-left:4px; }
@media(max-width:900px) {
  .fe-home-formats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
}
@media(max-width:640px) {
  .fe-home-formats.section { padding:27px 0 31px; }
  .fe-home-formats + .fe-home-formats.section { padding-top:10px; }
  .fe-home-format-heading { align-items:flex-start; gap:12px; }
  .fe-home-formats-grid { grid-template-columns:1fr; gap:13px; }
  .fe-home-format-card { display:grid; grid-template-columns:112px minmax(0,1fr); min-height:170px; }
  .fe-home-format-card-image { padding:10px; height:auto; min-height:170px; }
  .fe-home-format-card-content { padding:15px 14px; gap:6px; }
  .fe-home-format-card-content h3 { font-size:21px; }
  .fe-home-format-card-content p { font-size:12px; }
  .fe-home-format-card-link { padding-top:6px; }
  .fe-home-format-play { width:31px; height:31px; }
}


/* 1.27.6 — Ingresso al formato se non ci sono ancora schede pubblicate.
   Non fingiamo l'esistenza di prodotti, ma manteniamo la navigazione. */
.fe-home-format-empty {
  grid-column:1/-1;
  display:flex;align-items:center;gap:18px;
  padding:24px 28px;border:1px solid rgba(129,83,72,.18);border-radius:9px;
  background:#fffdfb;color:var(--color-ink);
}
.fe-home-format-empty-icon {display:grid;place-items:center;width:52px;height:52px;
  flex:0 0 52px;border-radius:12px;background:#f4ebe2;color:var(--color-brand);font-size:25px;}
.fe-home-format-empty strong{display:block;font:400 24px/1.2 var(--font-display);color:var(--color-brand-deep);}
.fe-home-format-empty p{margin:5px 0 0;color:var(--color-ink-soft);font:400 13px/1.5 var(--font-sans);}
.fe-home-format-empty a {margin-left:auto;white-space:nowrap;color:var(--color-brand);font:700 12px/1.5 var(--font-sans);text-decoration:none;}
.fe-home-format-empty a:hover{text-decoration:underline;}
@media(max-width:640px){.fe-home-format-empty{align-items:flex-start;flex-wrap:wrap;padding:20px 18px;gap:13px;}
.fe-home-format-empty strong{font-size:21px;}.fe-home-format-empty a{width:100%;margin-left:0;white-space:normal;}}
